Обсуждение:Шаблоны C++
Из Википедии, бесплатной энциклопедии
Проект «Информационные технологии» (уровень I, важность для проекта средняя) Эта статья тематически связана с вики-проектом «Информационные технологии», цель которого — создание и улучшение статей по темам, связанным с информационными технологиями. Вы можете её отредактировать, а также присоединиться к проекту, принять участие в его обсуждении и поработать над требуемыми статьями. |
![]() | Эта статья была переименована по результатам обсуждения от 28 июня 2008 года. Старое название Шаблон (программирование) было изменено на новое: Шаблоны C++. Для повторного выставления статьи на переименование нужны веские основания, иначе это может быть расценено как игра с правилами. |
Метапрограммирование
[править код]Мне кажется, что в статье нужно осветить метапрогрммирование на C++ шаблонами. Вот пример вычисления факториала на этапе компиляции: 79.170.166.66 12:32, 12 сентября 2012 (UTC)
template<int I> struct fact { enum{v = I*fact<I-1>::v}; }; template<> struct fact<1> { enum{v = 1}; }; template<> struct fact<0> { enum{v = 1}; };
Использовать это так: fact<10>::v. Этот код вернет факториал 10. Естественно, работает только для констант. Сам я статьи писать не умею, поэтому прошу кого-то более опытного осветить в статье эту тему. В статье можно упамянуть книгу А. Александреску "Современное проектирование на С++"(там эта тема хорошо освещается).
>Я думаю было бы неплохо сделать пример с вычислениями на этапе компиляции, только не с рекурсией.
Инстанцирование
[править код]А этот термин общепринятный? У Александреску в русском переводе я видел слово "конкретизация". 91.202.198.58 14:17, 5 сентября 2016 (UTC)