模板类型推导:不同模板类型之间的比较

时间:2013-03-11 02:09:29

标签: c++ templates c++11

我有一个模板结构:

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

1 个答案:

答案 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 { };