9 Mar
2012
9 Mar
'12
3:04 p.m.
I'm having a bit of punt into the murky world of metaprogramming, so this might be a bit naive...! I've been using Boost.enable_if for a while, and now I've just encountered Boost.MPL.if_ and wonder if enable_if is simply a special case of MPL.if_. Given struct empty { }; template <typename T> struct my_condition : /* boost true_ or false_ */; is template <typename T> typename enable_if<my_condition<T>, int>::type f( ) { /* .... */ } the same as template <typename T> typename eval_if<my_condition<T>, identity<int>, empty>::type f( ) { /* ... */ } Or is there some subtlety I'm missing (which is quite likely!) Thx - Rob.