我有一个模板结构:
template <typename T, typename T2>
struct MyStruct {};
我想确定某个类型是否是“MyStruct”(我不关心模板参数是什么)。
template <typename OtherType, typename TestingType, typename = std::enable_if< IsMyStruct<TestingType>::value, TestingType>::type >
struct OtherStruct {};
如何撰写IsMyStruct
答案 0 :(得分:4)
你可以这样做:
#include <type_traits>
template <typename T>
struct IsMyStruct : std::false_type { };
template <typename T1,typename T2>
struct IsMyStruct<MyStruct<T1,T2> > : std::true_type { };