Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > генерация класс из шаблона в момент выполнения


Автор: rukudias 3.4.2009, 10:48
Привет всем!
Код

template<int n>
class State2
{

};
void main()
{
              for(int i=0;i<4;i++)
    {
       State2<i> obj;
    }
}


при инстанциирование шаблона параметр должен быть константа?

Автор: azesmcar 3.4.2009, 10:59
rukudias
шаблоны генерируются во время компиляции, т.е. значение должно быть известно во время компиляции

Добавлено @ 11:00
Цитата

генерация класс из шаблона в момент выполнения

такого не бывает smile

Автор: zim22 3.4.2009, 13:44
Цитата(azesmcar @  3.4.2009,  10:59 Найти цитируемый пост)
шаблоны генерируются во время компиляции, т.е. значение должно быть известно во время компиляции

Разве значение переменной val не известно во время компиляции?
Код
void main()
{
  const int kSize = 5;
  int val = kSize;
  State2<val> obj;    
}

Автор: azesmcar 3.4.2009, 13:55
zim22
это не константа, компилятор не будет рассматривать логику твоего кода чтобы понять известно ли ему это или нет..потому он просто хочет константу и все тут.

Автор: mes 3.4.2009, 14:00
Цитата(zim22 @  3.4.2009,  12:44 Найти цитируемый пост)
Разве значение переменной val не известно во время компиляции?

Есть два вида констант :  константа_этапа_компиляции и константа_этапа_рантайма smile
В Вашем же случае используется вообще не константа.

Автор: zim22 3.4.2009, 14:07
ладно, буду дальше курить главу про шаблоны

Автор: azesmcar 3.4.2009, 14:20
zim22 про шаблоны - читай Вандервуда smile 

Автор: zim22 3.4.2009, 14:33
azesmcar, она у меня в очереди под номером пять smile
надо ещё Мейерса, Саттера почитать.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)