
18 Feb
2011
18 Feb
'11
5:50 p.m.
Is it possible to determine at compile-time if a type has subtraction semantics? E.g. in struct A<T> I would like to decide at compile-time not to execute &A::subtract in the register_fns method. Then the subtract method is not instantiated and there is no error. template< typename T > struct A { void register_fns() { &A::subtract; } T subtract( T x, T y ) { return x - y; } }; void test() { A< int >().register_fns(); // int: Fine A< std::string >().register_fns(); // string: Compile error } I didn't see anything in Boost.TypeTraits Thanks, John.