Aracılığıyla paylaş


Derleyici Hatası C2891

'parameter' : şablon parametresinin adresi alınamıyor

Açıklamalar

Bir şablon parametresinin adresini bir lvalue olmadığı sürece alamazsınız. Tür parametreleri lvalues değildir çünkü adresleri yoktur. Şablon parametre listelerindeki lvalue olmayan tür olmayan değerlerin de adresi yoktur.

Example

Bu, şablon parametresi olarak geçirilen değer şablon bağımsız değişkeninin derleyici tarafından oluşturulan bir kopyası olduğundan Derleyici Hatası C2891'e neden olan bir kod örneğidir.

template <int i> int* f() { return &i; }

Başvuru türleri gibi lvalues olan şablon parametrelerinin adresleri alınabilir.

template <int& r> int* f() { return &r; }

Bu hatayı düzeltmek için, bir şablon parametresinin adresini lvalue olmadığı sürece almayın.