c++11 其它的转换的traits

template

struct conditional;   如果B为true,则conditional::type为T,否则为F。

typedef conditional<(sizeof(long long) > sizeof(long double)),
        long long, long double>::type max_size;
    cout << typeid(max_size).name() << endl;        //long double

template

class result_of;

用来在编译期获取一个可调用对象的返回类型。

    typedef std::conditional::type A;        //int
    typedef std::conditional::type B;    //float

 

你可能感兴趣的:(C++11)