template<bool B, class T, class F>
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 F, class... Args>
class result_of<F(Args...)>;
用来在编译期获取一个可调用对象的返回类型。
typedef std::conditional<true, int, float>::type A; //int
typedef std::conditional<false, int, float>::type B; //float
本文深入探讨了C++模板元编程中的conditional特化,通过实例解释了如何根据条件选择不同的类型,以及如何在编译期获取可调用对象的返回类型。这为高级C++编程提供了强大的类型操作工具。

被折叠的 条评论
为什么被折叠?



