
Zitat von Noah Roberts
struct operator { template < typename MetaField > void operator()(MetaField const&, boost::enable_if< some_test >::type * = 0); template < typename MetaField > void operator()(MetaField const&, boost::disable_if
::type * = 0); };
the point of code like this usually is to only instantiate the branch that is chosen, otherwise you could just use if(some_test::value)...else... that means that the two branches must be in different functions, so I don't see a way to make this any easier, or how a library like MPL could. you can however avoid the use of enable_if, if you prefer: void operator()(T t){ this->operator()(t,typename some_test<...>::type()); } void opeartor()(T t,mpl::true_ test_is_true){ ... } void opeartor()(T t,mpl::false_){ ... } this also makes writing 3 or more branches (if...elseif...else) easier because you can use more than one condition parameter for overloading.