代码之家  ›  专栏  ›  技术社区  ›  Antoine Morrier

增强hana索引和类型

  •  2
  • Antoine Morrier  · 技术社区  · 6 年前

    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>>);
    

    对我来说,应该是 optional<hana::size_t<1>>

    我知道有 Boost hana get index of first matching 但这不是一个完全相同的问题

    1 回复  |  直到 6 年前
        1
  •  5
  •   Not a real meerkat    6 年前

    boost::hana::is_a 标签 对象的类型与给定的标记匹配。 [reference]

    hana::type 相反。

    例如,您可以测试参数是否为 hana::类型 ,和 i size_c<0> (因为元组中的第一项已经是 hana::类型 ):

    auto i = hana::index_if(t, hana::is_a<hana::type_tag>);
    

    如果要检查某个类型是否相等,请使用 equal::to

    auto i = hana::index_if(t, hana::equal.to(hana::type_c<double>));
    

    [Reference to hana::equal]

    Live example

    推荐文章