Константа как параметр шаблона, не являющийся типом (ПЕРЕМЕННАЯ не может появляться в константном выражении)

Почему это работает?

char __nontype[] = "foo";
typedef TemplateClass<T, __nontype> MyClass;

Но это (с постоянной переменной) нет?

const char __nontype[] = "foo";
typedef TemplateClass<T, __nontype> MyClass;

Ошибка компилятора:

ошибка: '__nontype' не может появиться в константном выражении

ошибка: аргумент шаблона 2 недействителен

8
задан ejoerns 7 February 2012 в 20:37
поделиться