标题下的很不好...
我不太知道怎么描述这问题
尝试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可以不需要看到宣告 就能找到定义
(全特化是这样, 偏特化我猜也是)
请顺便给我一些关键字
谢谢