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

template type deduction: comparisons between different template types

本文关键字:类型 之间 比较      更新时间:2023-10-16

我有一个模板结构体:

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

你可以这样做:

#include <type_traits>
template <typename T>
struct IsMyStruct : std::false_type { };
template <typename T1,typename T2>
struct IsMyStruct<MyStruct<T1,T2> > : std::true_type { };