How can I lazy evaluate second arg in std::conditional?
#include \"stdafx.h\"
#include
struct Null{};
struct _1{enum {one = true,two = fal
The usual technique for this is to have the std::conditional
choose between two metafunctions:
template <typename T>
struct false_case {
typedef typename std::conditional<T::one,_1,_2>::type type;
};
struct always_null {typedef Null type;};
template<class T>
struct X :
std::conditional<is_nulltype<T>::value,
always_null,
false_case<T>
>::type::type { ... };
Note the two ::type
s after std::conditional
now.