std::conditional
| Defined in header <type_traits> |  |  | 
|---|---|---|
| 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<B,T,F>::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。
本文档系腾讯云开发者社区成员共同维护,如有问题请联系 cloudcommunity@tencent.com

