Справочная информация: Я пытаюсь создать реализацию функциональности на чистом языке D, которая примерно эквивалентна memchr Си, но использует вместо указателей массивы и индексы. Причина в том, что std.string будет работать с функцией оценки времени компиляции. Для тех из вас, кто не знаком с W / D, функции могут быть оценены во время компиляции, если соблюдены определенные ограничения. Одно ограничение заключается в том, что они не могут использовать указатели. Другое - они не могут вызывать функции C или использовать встроенный язык ассемблера. Работа библиотеки строк во время компиляции полезна для некоторых хаков хаков кода времени компиляции.
Вопрос: Как работает memchr, чтобы работать так же быстро, как и он? На Win32 все, что я смог создать в чистом D с использованием простых циклов, по крайней мере в 2 раза медленнее, даже с очевидными методами оптимизации, такими как отключение проверки границ, развертывание циклов и т. Д. что-то такое простое, как поиск символа в строке?