gpt4 book ai didi

c++ - 'choose' 是否有标准构造?

转载 作者:太空狗 更新时间:2023-10-29 20:30:38 28 4
gpt4 key购买 nike

有时我发现自己需要以下东西:

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 ,但这并不完全相同(需要一个类型,而不是一个 bool 值),我不想为这个小东西包括 Boost。 :)

最佳答案

是的:它在 C++0x 中称为 std::conditional(或在 Boost 中称为 boost::conditional)。

您引用的 boost::mpl::if 有一个对应的 boost::mpl::if_c ,它取而代之的是 bool一种类型的;这是 Boost 类型特征库中的常见模式。

关于c++ - 'choose<bool,typename,typename>' 是否有标准构造?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6397734/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com