ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Четверг
21 ноября
1041637 Топик полностью
fk0, легенда (02.10.2020 10:43, просмотров: 508) ответил Kabdim на Обычно все кто мне встречался приходили к примерно тем же выводам, без необходимости внешних аргументов. Ну ладно, требование аргументировать оно рациональное и правильное.
Метапрограммирование не решается внешним шаблонизатором. Потому, что последний работает исключительно на уровне исходного текста. Это совсем не то, потому, что шаблоны в C++ работают не на уровне отдельных буковок, а в пространстве типов языка. Это совсем другая история. Чтоб повторить то же самое во внешнем макропроцессоре на нём придётся написать половину компилятора C++, что очевидно невозможно. Внешний шаблонизатор не сможет, например, генерировать разный код в 

зависимости от свойств типа переданного ему параметром шаблона. Он может только тупо подставлять текст. Для такой задачи вообще существует C-препроцессор. Я раньше писал, что C++ -- на самом деле это три разных языка: C-препроцессор, C-с-классами, и система программирования в пространстве типов (шаблоны). И любая составляющая здесь -- нужная, для своих задач. У многих языков остаётся только C-с-классами. C-препроцессор для студентов тоже сложный, ноги прострелят...

[ZX]