[問題] template特化 link的問題
標題下的很不好...
我不太知道怎麼描述這問題
嘗試google 沒有辦法找到答案
關鍵字 "template specialization" + "ODR" 或 "link" 之類的
https://wandbox.org/permlink/MBRv5lz1Bsz20ynW
問題出現在 main.cpp
這邊有全特化 一個class和 一個 function
q.h 是 原版template class和function的定義
我刻意在q.cpp 呼叫 Serialize<Foo>();
這行 Serialize<Foo>(); 我原本預期他根本不知道main.cpp有特化他 所以要走
原版q.h的code 沒想到他走特化版本...
這行為我真沒辦法理解 (但我認為就因為這樣才能做到 擴充Serialize 自訂type的方法)
請各位解釋這邊是什麼概念 讓q.cpp可以不需要看到宣告 就能找到定義
(全特化是這樣, 偏特化我猜也是)
請順便給我一些關鍵字
謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 39.12.193.155 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1592238320.A.88D.html
→
06/16 01:55,
4年前
, 1F
06/16 01:55, 1F
→
06/16 01:57,
4年前
, 2F
06/16 01:57, 2F
→
06/16 01:57,
4年前
, 3F
06/16 01:57, 3F
→
06/16 10:11,
4年前
, 4F
06/16 10:11, 4F
→
06/16 10:11,
4年前
, 5F
06/16 10:11, 5F
→
06/16 10:12,
4年前
, 6F
06/16 10:12, 6F
→
06/16 10:16,
4年前
, 7F
06/16 10:16, 7F
→
06/16 10:17,
4年前
, 8F
06/16 10:17, 8F