Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Parametr : nemůže převzít adresu parametru šablony.
Poznámky
Adresu parametru šablony nemůžete vzít, pokud se nejedná o lvalue. Parametry typu nejsou lvalues, protože nemají žádnou adresu. Netypové hodnoty v seznamech parametrů šablony, které nejsou lvalue, nemají také adresu.
Example
Toto je příklad kódu, který způsobuje chybu kompilátoru C2891, protože hodnota předaná jako parametr šablony je kopie argumentu šablony vygenerovaná kompilátorem.
template <int i> int* f() { return &i; }
Parametry šablony, které jsou lvalues, jako jsou odkazové typy, mohou mít jejich adresu převzatou.
template <int& r> int* f() { return &r; }
Chcete-li tuto chybu opravit, nepoužívejte adresu parametru šablony, pokud se nejedná o hodnotu lvalue.