[問題] 模板 特化 與 Compiler Error C2888

看板C_and_CPP作者 (Caesar)時間11年前 (2014/12/05 07:22), 編輯推噓0(001)
留言1則, 1人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) VC++ 12 問題(Question): 我不想讓別的file使用某file的specialization of class template 解法: 我想到的辦法就是把template specialization放進unnamed namespace 但是編譯器會有symbol cannot be defined within namespace 'anonymous-namespace' 的錯誤訊息 我有測過,如果不放進unnamed namespace,在別的file進行specialization會發生什麼 事情 結果是會導致執行的結果不固定 只要將HeaderImpl.cpp重新編譯,並將main.cpp的15或16行其中一個註解,或都不註解 重新編譯後會有神奇的現象,沒有的話就多試幾次 這樣我也很難確保,不放進unnamed namespace能不能達到我的效果,難道我現在該放棄 我的目的嗎? 底下是測試code 程式碼(Code):(請善用置底文網頁, 記得排版) http://codepad.org/qEPWEHt5 //main.cpp http://codepad.org/hMuDzNPG //Header.h http://codepad.org/jN9Exbya //Source.cpp http://codepad.org/Q9LHrIbc //HeaderImpl.cpp -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 142.162.27.169 ※ 文章網址: http://www.ptt.cc/bbs/C_and_CPP/M.1417735366.A.FB3.html

03/17 12:16, , 1F
已經搞定
03/17 12:16, 1F
文章代碼(AID): #1KWEp6-p (C_and_CPP)