共用方式為


編譯器錯誤 C2891

'parameter' : 無法取得範本參數的位址

除非範本參數是左值,否則您無法取得範本參數的位址。 類型參數不是左值,因為它們沒有位址。 不是左值之範本參數清單中的非類型值也不具有位址。 這是導致編譯程式錯誤 C2891 的程式代碼範例,因為當樣板參數傳遞的值是範本自變數的編譯程式產生的複本。

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

做為左值的範本參數,例如參考型別,可以取得其位址。

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

若要更正此錯誤,除非範本參數是左值,否則請勿採用範本參數的位址。