Xeo*_*Xeo 3 c++ conditional templates metaprogramming
我有时发现自己需要以下内容:
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;
};
Run Code Online (Sandbox Code Playgroud)
我用它来有条件地选择一种或另一种.现在,标准库中是否已经有了这样的功能呢?Boost.MPL有类似的东西,但是不完全相同(采用类型,而不是bool),我不想为这个小东西包含Boost.:)
是的:它std::conditional在C++ 0x(或boost::conditionalBoost)中调用.
在boost::mpl::if你举都有相应的是boost::mpl::if_c,需要一个bool,而不是一个类型; 这是Boost类型特征库中的常见模式.
| 归档时间: |
|
| 查看次数: |
127 次 |
| 最近记录: |