В какой-то момент обработки использования шаблона, D требуется all информация о шаблона.Тем не менее, нет причины, по которой эта информация должна быть закодирована как исходный исходный код (OTOH, как подробности реализации, все современные компиляторы D требуют этого).Это фундаментальная проблема любого языка, который имеет шаблоны сильнее, чем шаблоны.Последствия этого зависят от того, что вы пытаетесь сделать.
Если вы заинтересованы в разделении интерфейса и реализации, чтобы скрыть реализацию (например, доставку двоичных библиотек и заголовочных файлов в C), то это не можетбыть сделаноСамое близкое, что вы можете получить, - это какая-то система запутывания кода.
Если, с другой стороны, вы заинтересованы в том, чтобы избежать затрат на повторную обработку шаблонов для каждой перекомпиляции, что-то более общее, например, двоичный предварительно скомпилированный заголовокФормат может позволить повторное использование результатов лексического, синтаксического и некоторых проходов при компиляции нескольких других модулей.Фактически, это было бы проще сделать с D, чем с C.
Третий вариант - генерация временного кода связи, но это мало чем отличается от обычного связывания с агрессивным использованием анолога для предварительно скомпилированных заголовков..