让我们看一个模板函数,它接受void参数并返回void:
template<class T>
void f() {
cout << "template" << endl;
}
Run Code Online (Sandbox Code Playgroud)
后来我们专门研究这个功能:
template<>
void f<int> () {
cout << "int" << endl;
}
template<>
void f<double> () {
cout << "double" << endl;
}
int main() {
f<int> ();
f<double> ();
}
Run Code Online (Sandbox Code Playgroud)
问题是为什么这个编译?我们有三个具有相同签名的功能:
void(void),我预计它应该打破多个声明?