PTT
Submit
Submit
選擇語言
正體中文
简体中文
PTT
C_and_CPP
[問題] template特化 link的問題
作者:
lovejomi
(JOMI)
2020-06-16 00:25:18
標題下的很不好...
我不太知道怎麼描述這問題
嘗試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可以不需要看到宣告 就能找到定義
(全特化是這樣, 偏特化我猜也是)
請順便給我一些關鍵字
謝謝
作者:
loveme00835
(髮箍)
2020-06-16 01:55:00
https://bit.ly/2Y4Z6I0
你不同的 translation unit 都有實體, 只是誰會蓋掉誰是未定義的
作者:
lovejomi
(JOMI)
2020-06-16 10:11:00
https://ideone.com/g3oRzg
還是不是很清楚這範例會有這error 但我的case他根本也沒看到main.cpp的特化 宣告, 為什麼卻可以自己去找定義?
https://wandbox.org/permlink/VlRLdsCLbQm54U1L
刻意放在呼叫的後面定義...卻還是可以 跟ideone的搞混了
繼續閱讀
Re: [問題] 雙重指標
loveme00835
[問題] 雙重指標
spong
[問題] polling function timer問題
howard6066
[問題] 二維陣列與指標疑惑
spong
[問題] clang:no such file or directory
LittleLie
[討論] Dijkstra UVa-10986 [已解決]
darrenlee1
[問題] 關於互斥的問題
asdfg1597860
Re: [問題] cpp中if的==與=差別
loveme00835
[問題] cpp中if的==與=差別
HwangTW
[問題] 關於c的運算子優先權問題
ac01965159
Links
booklink
Contact Us: admin [ a t ] ucptt.com