Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
"parameter" : не может принимать адрес параметра шаблона
Замечания
Адрес параметра шаблона нельзя принимать, если только это не lvalue. Параметры типа не являются lvalues, так как они не имеют адреса. Значения, отличные от типа, в списках параметров шаблона, которые не являются lvalues, также не имеют адреса.
Example
Это пример кода, который вызывает ошибку компилятора C2891, так как значение, переданное в качестве параметра шаблона, является созданной компилятором копией аргумента шаблона.
template <int i> int* f() { return &i; }
Параметры шаблона, которые являются lvalues, например ссылочными типами, могут принимать их адрес.
template <int& r> int* f() { return &r; }
Чтобы исправить эту ошибку, не следует принимать адрес параметра шаблона, если он не является lvalue.