Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
"parametr" : nie można pobrać adresu parametru szablonu
Uwagi
Nie można podjąć adresu parametru szablonu, chyba że jest to lvalue. Parametry typu nie są wartościami lvalue, ponieważ nie mają adresu. Wartości nietypowe na listach parametrów szablonu, które nie są wartościami lvalue, również nie mają adresu.
Example
Jest to przykład kodu, który powoduje błąd kompilatora C2891, ponieważ wartość przekazana jako parametr szablonu jest kopię wygenerowaną przez kompilator argumentu szablonu.
template <int i> int* f() { return &i; }
Parametry szablonu, które są wartościami lvalue, takimi jak typy odwołań, mogą mieć ich adres.
template <int& r> int* f() { return &r; }
Aby naprawić ten błąd, nie należy przyjmować adresu parametru szablonu, chyba że jest to lvalue.