有时,我发现自己需要以下几点:
template<bool B, typename T1, typename T2>
struct choose{
typedef T1 type;
};
template<typename T1, typename T2>
struct choose<false, T1, T2>{
typedef T2 type;
};我使用它来有条件地选择一种或另一种类型。现在,在标准库中有没有什么东西可以做到这一点呢?Boost.MPL has something similar,但这并不完全相同(接受类型,而不是布尔值),我不想在这个小东西上包含Boost。:)
发布于 2011-06-19 01:40:36
是:在C++0x中称为std::conditional (或在Boost中称为boost::conditional )。
您引用的boost::mpl::if有一个对应的boost::mpl::if_c,它接受bool而不是类型;这是Boost类型特征库中的常见模式。
https://stackoverflow.com/questions/6397734
复制相似问题