Có thể bằng cách nào đó cấm sử dụng chức năng templated cho các loại mà chuyên môn không được viết rõ ràng. Ý tôi là một cái gì đó như thếkhối không chuyên mẫu 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.
}
Tôi không thể bỏ qua phiên bản chung của hàm, do đó trình biên dịch cho biết, foo không phải là chức năng mẫu khi tôi cố gắng chuyên. Tôi chỉ đơn giản có thể viết một cái gì đó mà không biên dịch trong chức năng chung chung, và thêm một số bình luận giải thích lý do tại sao, nhưng điều này sẽ khá không thông tin. Những gì tôi muốn làm, là để có thể trực tiếp gây ra trình biên dịch để đi với lỗi như "foo() không được xác định".