Tia*_* Li 3 c++ templates template-specialization
是否可以防止在没有专业化的情况下使用C++模板?
例如,我有
template<class T>
void foo() {}
Run Code Online (Sandbox Code Playgroud)
而且我不希望它被用于没有专门用于foo<int>
或foo<char>
.
您应该能够在通用情况下声明该函数而不实际定义它.这将导致对非特定模板的引用以发出未定义的符号链接器错误.
template<class T>
void foo();
template<>
void foo<int>() {
// do something here
}
Run Code Online (Sandbox Code Playgroud)
对我来说这很好用clang++
.