Hi, I'm writing a templated class, and i dont want to use the class otherthan for some predetermined types, say, int, double etc. This class has no meaning for typenames other than those few. ========================= template <class T> myClass {....} ; myClass<int> intClass ; myClass<float> floatClass ; myClass<char> charClass ; ========================= The compiler should not complain for the first 2 instantiations, but should bail out at the 3rd instantiation (charClass). Is there any way i can achieve this, using standard c++ or boost. I've tried explicit template instantiation, (by passing a flag to my compiler), but in that case, i've to do that for every class suppose i try to invoke std::vector <someOtherClass> someVector; I've to instantiate this also explicitly. (which is a problem for me, because, I use a lot of standard library, and its a pain for me to instantiate every time. Also, if i do the above, i can always instantiate myClass also like this. template class myClass <someOtherClass> ; and which i want to avoid this.. to summarize my question, is there any way i can restrict the compiler to accept only few type names for my templated class (i.e., using standard c++ or boost) Thanks, Surya