|
MSTL 1.4.0
A Modern C++ Library with extended functionality, web components, and utility libraries
|
进行类型退化、公共化等操作 更多...
类 | |
| struct | decay< T > |
| 模拟函数参数传递中的类型退化 更多... | |
| struct | common_type< Types > |
| 查找多个类型的公共类型 更多... | |
| struct | is_specialization< T, Template > |
| 判断类型T是否为模板Template的特化 更多... | |
类型定义 | |
| template<typename T> | |
| using | decay_t = typename decay<T>::type |
| decay的便捷别名 | |
| template<typename Default, template< typename... > class Op, typename... Args> | |
| using | detected_or = _INNER __detector<Default, void, Op, Args...> |
| 检测Op<Args...>是否有效,如果无效则使用Default类型 | |
| template<typename Default, template< typename... > class Op, typename... Args> | |
| using | detected_or_t = typename detected_or<Default, Op, Args...>::type |
| detected_or的便捷别名,返回检测到的类型或默认类型 | |
| template<typename T1, typename T2> | |
| using | common_ternary_operator_t = decltype(true ? _MSTL declval<T1>() : _MSTL declval<T2>()) |
| 三目运算符的公共类型推导 | |
| template<typename... Types> | |
| using | common_type_t = typename common_type<Types...>::type |
| common_type的便捷别名 | |
函数 | |
| template<typename T, template< typename... > class Template> | |
| constexpr bool | is_specialization_v () |
| is_specialization的便捷函数模板 | |
进行类型退化、公共化等操作
| using common_ternary_operator_t = decltype(true ? _MSTL declval<T1>() : _MSTL declval<T2>()) |
三目运算符的公共类型推导
| T1 | 第一个类型 |
| T2 | 第二个类型 |
三目运算符的类型推导规则:
在文件 type_traits.hpp 第 3651 行定义.
| using detected_or = _INNER __detector<Default, void, Op, Args...> |
检测Op<Args...>是否有效,如果无效则使用Default类型
| Default | 默认类型 |
| Op | 要检测的模板 |
| Args | 模板参数 |
在文件 type_traits.hpp 第 3629 行定义.
|
constexpr |
is_specialization的便捷函数模板
| T | 要检查的类型 |
| Template | 要检查的模板 |
在文件 type_traits.hpp 第 3853 行定义.