[問題] nested template class compile error

看板C_and_CPP作者 (恨怨悲苦憎怒嗔)時間13年前 (2011/02/25 19:51), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/2 (看更多)
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) linux g++ 4.4.3 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) 問題(Question): 只是純粹對template的研究 偶然發現這樣的code編譯不會過 錯誤訊息 error: template argument 1 is invalid error: expected unqualified-id before ‘>’ token 後來又發現在 outer 裡面加上 typedef 那一行 然後用 version 2 的 getInner 編譯就過了 不過基於好奇還是想知道為什麼 version 1 的 getInner 編不過 有神人知道為什麼嗎?? 餵入的資料(Input): 預期的正確結果(Expected Output): 錯誤結果(Wrong Output): 程式碼(Code):(請善用置底文網頁, 記得排版) template <typename T> class wapper { }; template <typename T> class outer { public: template <typename V> class inner { }; //typedef inner<T> Inner; wapper<inner<T> > getInner(); }; // version 1 template <typename T> wapper<typename outer<T>::inner<T> > outer<T>::getInner() { return inner<T>(); } // version 2 #if 0 template <typename T> wapper<typename outer<T>::Inner> outer<T>::getInner() { return inner<T>(); } #endif int main() { return 0; } 補充說明(Supplement): -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 122.147.15.66
文章代碼(AID): #1DPvV54y (C_and_CPP)
文章代碼(AID): #1DPvV54y (C_and_CPP)