2010/12/14 Igor R
How about adding this overload:
void test( int ) { }
Or if You want to disable implicit conversions to int, add this overload instead: template<typename Type> void test(Type, typename boost::enable_if< boost::is_same
::type* dummy = 0) { }
Well, it was just minimal reproducing sample... In my real code I look-up some type in an mpl::map, then I have to call a function, IF the type was found (i.e. it's not mpl::void_) AND its inner type passes meta-function filter. So the code looks like this:
typedef at
::type found_type; process(found_type()); template<typename Type> void process(Type, typename boost::enable_if < and_ < not_
>, typename apply ::type ::type* dummy = 0)
{ .... }
But do the solutions I proposed to Your simplified example compile on Your compiler? If they do, what's wrong with applying them to your process() funcions? Kris