2

我有一个模板结构:

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

4

1 回答 1

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 { };
于 2013-03-11T03:14:38.833 回答