std::conditional
STD::有条件
Defined in header | | |
---|---|---|
template< bool B, class T, class F > struct conditional; | | (since C++11) |
提供成员类型type
,它被定义为T
如果B
是true
在编译时,或F
如果B
是false
...
成员类型
Member type | Definition |
---|---|
type | T if B == true, F if B == false |
帮助者类型
template< bool B, class T, class F > using conditional_t = typename conditional::type; | | (since C++14) |
---|
可能的实施
模板<bool B,类T,类F>结构条件{ty胡枝子T型;};模板<类T,类F>结构条件<false,T,F>{ty胡枝子F型;};
*。
例
二次
#include <iostream>
#include <type_traits>
#include <typeinfo>
int main()
{
typedef std::conditional<true, int, double>::type Type1;
typedef std::conditional<false, int, double>::type Type2;
typedef std::conditional<sizeof(int) >= sizeof(double), int, double>::type Type3;
std::cout << typeid(Type1).name() << '\n';
std::cout << typeid(Type2).name() << '\n';
std::cout << typeid(Type3).name() << '\n';
}
二次
产出:
二次
i
d
d
二次
另见
enable_if (C++11) | hides a function overload or template specialization based on compile-time boolean (class template) |
---|
© cppreference.com
在CreativeCommonsAttribution下授权-ShareAlike未移植许可v3.0。