Обсуждение:Шаблоны 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)[ответить]