3 May
2002
3 May
'02
11:58 a.m.
I know how to use type traits to enable compile time seperate procedures, but not how to use it to define a procedure for some type and not others.
One way (for member functions) is to use inheritance: add an "implementation layer" that includes the member function or not depending on whether a trait is true or not: template <class T, bool b> struct mybase { // details T operator*(); }; template <class T, true> struct mybase { // details }; template <class T> struct mine : public mybase<T, ::boost::is_arithmetic<T>::value> { // details };