Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
'parameter': kan het adres van een sjabloonparameter niet overnemen
Opmerkingen
U kunt het adres van een sjabloonparameter niet nemen tenzij het een lvalue is. Typeparameters zijn geen lvalues omdat ze geen adres hebben. Niet-typewaarden in sjabloonparameterlijsten die geen lvalues zijn, hebben ook geen adres.
Example
Dit is een voorbeeld van code die compilerfout C2891 veroorzaakt, omdat de waarde die als sjabloonparameter is doorgegeven, een door compiler gegenereerde kopie van het sjabloonargument is.
template <int i> int* f() { return &i; }
Sjabloonparameters die lvalues zijn, zoals referentietypen, kunnen hun adres laten nemen.
template <int& r> int* f() { return &r; }
Als u deze fout wilt corrigeren, neemt u het adres van een sjabloonparameter niet op, tenzij dit een lvalue is.