【问题标题】:template type deduction: comparisons between different template types [duplicate]模板类型推导:不同模板类型之间的比较
【发布时间】:2013-03-11 02:09:28
【问题描述】:

我有一个模板结构:

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

【问题讨论】:

    标签: c++ templates c++11


    【解决方案1】:

    你可以这样做:

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

    【讨论】:

    • 通常的习惯用法是分别从std::false_typestd::true_type 继承,就像旁注一样。
    猜你喜欢
    • 1970-01-01
    • 2018-01-07
    • 1970-01-01
    • 1970-01-01
    • 2021-01-03
    • 2020-07-09
    • 1970-01-01
    • 1970-01-01
    • 2012-09-08
    相关资源
    最近更新 更多