爲什麼按照C++
的作品,我想ODR
規則將進入圖片爲下面的代碼C++模板和ODR規則
typedef char int8;
class Sample {
public:
template <typename T>
void test(T param){
}
};
int main() {
Sample s;
s.test<char>('a');
s.test<int8>((int8)'b');
return 0;
}
有什麼不對?你認爲什麼是正確的行爲? – Vlad
爲什麼?這裏只有一個'void test(char param)的實例,' – jrok
@jrok:但編譯器不會生成兩個版本的測試函數 – Avinash