C++(11):conditional条件选择类型

template 
struct conditional { // Choose _Ty1 if _Test is true, and _Ty2 otherwise
    using type = _Ty1;
};

template 
struct conditional {
    using type = _Ty2;
};

template 
using conditional_t = typename conditional<_Test, _Ty1, _Ty2>::type;

C++11提供了模板conditional,可以根据一定的条件来选择模板的类型,也就是说当第一个模板参数为true时, conditional::type的类型为_Ty1,当第一个模板参数为false时, conditional::type的类型为_Ty2:

#include 
#include 
using namespace std;

int main()
{
    using T1 = conditional::type;
    using T2 = conditional_t;
    cout<<<

运行程序输出:

1

你可能感兴趣的:(C/C++,c++)