是否有可能以某種方式禁止使用模板化功能的專業化未明確寫入的類型。我的意思是類似的東西塊非專業模板C++
template <typename T>
void foo(){}
template <>
void foo<int>(){}
int main(int argc, char* argv[]){
foo<int>(); //ok
foo<char>(); //Wrong - no specialized version for char.
}
我不能跳過的功能通用版本,因爲那樣編譯器說,foo是不是一個模板函數,當我嘗試專業化。我可以簡單地寫一些不能在泛型函數中編譯的東西,並添加一些解釋原因的評論,但這是非常不具信息性的。我想要做的是能夠直接導致編譯器出錯,如「foo()未定義」。