模板类型推断:不同模板类型之间的比较
template type deduction: comparisons between different template types
我有一个模板结构体:
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 { };
相关文章:
- C++LinkedList问题.数据类型之间存在冲突?没有匹配的构造函数
- C ++中无符号位长度类型之间的隐式转换,即uint8_t,uint16_t
- 非类类型表达式的静态类型与动态类型之间的差异
- 如何使用静态多态性在 int 和指针类型之间进行转换?
- 在 Rcpp 中的字符串类型之间转换时出错
- 在硬件SIMD矢量指针和相应类型之间进行"interpret_cast"是一种未定义的行为吗
- "+=" 操作在类型之间不起作用 std::复杂<double>和__complex__双精度
- 您可以在具有相同表示形式的类型之间reinterpret_cast吗?
- 是std::memcpy在不同的可复制类型之间的未定义行为
- 包括数据类型之间的斗争
- 在不同类型之间转换常量指针
- 不同指针类型之间的无效比较:'type*' 和 'type&(*)()'
- 为什么 int 对象和函数类型之间不明确?
- C++20 中的严格别名规则是否允许标准 c++ unicode 字符和下划线类型之间"reinterpret
- 如何在任何两种类型之间reinterpret_cast
- 根据编译时条件在类型之间选择类型的惯用方法
- memcpy是否可以保留不同类型之间的数据
- 显式允许在主类型和用户定义类型之间进行类型转换
- 使用std::filesystem::path在分隔符类型之间进行转换
- 在函数指针类型之间转换