Joel Falcou <joel.falcou <at> lri.fr> writes:
template<class T> struct M<T,typename boost::enable_if< boost::is_enum<T> >::type> { static void foo() { std::cout<< "enum"<< std::endl; } };
template<typename T> struct M<T, typename boost::enable_if_c< boost::is_scalar<T>::value && !boost::is_enum<T>::value >::type> { static void foo() { std::cout<< "scalar"<< std::endl; } };
This will not really work for me. This was just an artificial example. In reality I have generic header which defines the template, another common header which defines some not very specific specialization and multiple (number changes as project grows) headers where I define more specific specializations. I can't "NOT" all the specific conditions in "scalar" level specialization - It's just not maintainable. Any other options? Thank you, Gennadiy