Может ли переменная not-const nullptr_t быть аргументом, не относящимся к типу шаблона?C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Может ли переменная not-const nullptr_t быть аргументом, не относящимся к типу шаблона?

Сообщение Anonymous »

Можно ли использовать неконстантную переменную со значением nullptr в качестве нетипового аргумента некоторого шаблона?
Например:

Код: Выделить всё

template
int v = 0;

int main() {
auto nil = nullptr;
return v;
}
Я вижу, что программа принимается как GCC, так и Clang. Но другие компиляторы с этим не согласны.
MSVC:

ошибка C2971: 'v': параметр шаблона 'P': 'nil': переменная с нестатической длительностью хранения не может использоваться в качестве аргумента, не являющегося типом.

EDG:

ошибка: аргумент типа. "std::nullptr_t" несовместим с параметром шаблона типа "int *"

Даже если я напишу template int v = 0; EDG всё равно не нравится:

ошибка: выражение должно иметь постоянное значение

Онлайн демо
Какая реализация правильная?

Подробнее здесь: https://stackoverflow.com/questions/798 ... e-argument
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»