Following Template class type-specific functions, how can I customize my template code to not compile for certain types? If the question is not clear, take a look at this example.
///** template class ***/ template<typename T> class testClass{ testClass(); T parameter; } template<typename T> void testClass<T>::print(){cout<<parameter.value<<endl;} The above class is supposed to work for the following types:
//** types file **/ class paramtype1{ int value; } class paramtype2{ int value; } class paramtype3{ } As you see, paramtype3 doesn't have value, so I get a compile error saying that value is not defined. I know that if I want to specialize a template class function for a certain type (s), I need to do:
template<> void testClass<paramtype1>::print(){cout<<parameter.value<<endl;} But, is there any way to do the other way around, only excluding some certain types?
paramtype3... doesn't that mean it already didn't compile for that type?