Ant*_*ier 2 c++ boost boost-hana
我想知道为什么在这段代码中,类型i是一个空的可选项.
auto t = boost::hana::make_tuple(boost::hana::type_c<int>, boost::hana::type_c<double>);
auto i = boost::hana::index_if(t, boost::hana::is_a<boost::hana::type<double>>);
Run Code Online (Sandbox Code Playgroud)
对我来说应该是 optional<hana::size_t<1>>
我知道有Boost hana得到第一个匹配的索引,但它不是完全相同的问题
boost::hana::is_a返回对象的标记是否与给定标记匹配.[参考]
你没有传递一个标签,hana::type而是传递它.
例如,您可以测试参数是否为a hana::type,并且i将包含a size_c<0>(因为元组中的第一项已经是a hana::type):
auto i = hana::index_if(t, hana::is_a<hana::type_tag>);
Run Code Online (Sandbox Code Playgroud)
如果要检查某些类型的相等性,请使用equal::to:
auto i = hana::index_if(t, hana::equal.to(hana::type_c<double>));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
81 次 |
| 最近记录: |