Uzmanlaşmanın açıkça yazılmadığı türler için şablonla yazılmış işlevi kullanmak bir şekilde yasaklanabilir mi? Ben uzmanlaşmak çalıştığınızda bu foo bir şablon işlevi değil, ben derleyici diyor sonra neden fonksiyonun jenerik versiyonu atlamak olamayacağınıözel olmayan şablonu engelle 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.
}
gibi bir şey yani. Genel işlevde derleme yapamayan bir şey yazabilirim ve nedenini açıklayan bir açıklama ekleyebilirim, ancak bu oldukça bilgilendirici olamaz. Yapmak istediğim şey, derleyicinin doğrudan "foo() tanımlanmamış" gibi bir hataya yol açabilmesidir.