还有新标准:
typedef typename std::conditional<std::is_same<T, PlaceHolder>::value, void, T>::type usefulType
我认为这是你追求的原则:
template< class T >
struct DefineMyTpe
{
typedef T usefulType;
};
template<>
struct DefineMyType< PlaceHolder >
{
typedef void usefulType;
};
template< class T >
class C
{
typedef typename DefineMyType< T >::usefulType usefulType;
};
Run Code Online (Sandbox Code Playgroud)