從範本函式呼叫範本類別的成員函式
在提供的程式碼片段中,從另一個範本呼叫成員函式範本會導致編譯錯誤。具體來說,程式碼嘗試從 g
要解決此問題,必須在成員函數呼叫之前明確指定模板關鍵字。這是因為根據C '03 標準14.2/4,當成員模板特化的名稱出現在依賴於模板參數的後綴表達式或限定ID 之後時,成員模板名稱必須以template 關鍵字為前綴.
因此,下面的程式碼是正確的:
template void g()
{
A a;
a.template f(); // Explicitly specify 'template' keyword
}
透過加入template關鍵字,編譯器可以正確地辨識f是A類模板的成員模板,並且可以成功呼叫A
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3