在线文档教程
C++
应用 | Utilities

std::conditional

STD::有条件

Defined in header
template< bool B, class T, class F > struct conditional;(since C++11)

提供成员类型type,它被定义为T如果Btrue在编译时,或F如果Bfalse...

成员类型

Member typeDefinition
typeT 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。

http://en.cppreference.com/w/cpp/type/条件