Например:
Код: Выделить всё
template
int v = 0;
int main() {
auto nil = nullptr;
return v;
}
MSVC:
ошибка C2971: 'v': параметр шаблона 'P': 'nil': переменная с нестатической длительностью хранения не может использоваться в качестве аргумента, не являющегося типом.
EDG:
ошибка: аргумент типа. "std::nullptr_t" несовместим с параметром шаблона типа "int *"
Даже если я напишу template int v = 0; EDG всё равно не нравится:
ошибка: выражение должно иметь постоянное значение
Онлайн демо
Какая реализация правильная?
Подробнее здесь: https://stackoverflow.com/questions/798 ... e-argument
Мобильная версия