看板 C_and_CPP 關於我們 聯絡資訊
開發平台(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
Caesar08: 已經搞定 03/17 12:16