繁体   English   中英

测试boost :: mpl :: or_的计算结果是true还是false

[英]testing if boost::mpl::or_ evaluates to true or false

如何测试or_评估为true还是false?

说我有

typedef boost::mpl::or_<
    boost::is_same<ExPolicy,sequential_execution_policy>,
    boost::is_same<InIter, std::input_iterator_tag>,
    boost::is_same<OutIter, std::output_iterator_tag>
> is_seq;

我该如何测试结果? 目前我试着做

auto h = is_seq();
if(h == boost::mpl::true_::value)

但是当我知道我的程序中至少有一个案例是真的时,一切都评估为假。 我该怎么做才能知道价值?

使用is_seq::value 例如:

template<typename T>
using type = boost::mpl::or_<
                std::is_same<T, char>,
                std::is_same<T, int>
             >;
int main() 
{
    std::cout << type<int>::value << std::endl;
    std::cout << type<long>::value << std::endl;
}

输出:

1
0

现场演示

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM