儘管能夠在類別中建立建構函式模板,但編譯過程通常會從參數推斷出模板參數假如。然而,如果存在允許在此類建構函式中明確指定範本參數的語法,則會出現疑問。
以以下結構為例:
struct A { template<typename T> A() {} };
問題出現:是否有一種方法實例化此結構或明確定義其構造函數的模板參數?
在實務中,可能會出現編譯器無法辨識正確的模板化建構函式的情況,導致潛在的困難。顯式模板參數規格可以增強錯誤報告甚至解決問題。
答案:
令人失望的是,C 03 標準提供了明確的答案:
"因為轉換成員函數模板和建構函數成員函數模板是在不使用函數名的情況下調用的,所以無法提供明確的模板參數列表對於這些功能模板。 (§14.5.2/5)
本質上,C 03 標準不支援在建構子定義中明確指定模板參數。
以上是可以在建構函式定義中明確指定模板參數嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!