【问题标题】:Boost hana size of tuple type提升元组类型的hana大小
【发布时间】:2015-09-26 21:12:52
【问题描述】:

我知道如何在boost::hana 中获取元组对象的大小,如下所示:

auto tupleSize = hana::size(hana::make_tuple(1,2,3))

但是元组类型的大小呢? stl 已经提供了以下元组类型特征:

constexpr size_t tupleSize = std::tuple_size<std::tuple<int, int, int>>::value;

hana 中是否有类似的类型特征?

【问题讨论】:

    标签: c++ tuples boost-hana


    【解决方案1】:

    没有。我的猜测是您在这里误用了 Hana,或者有一种等效的方法可以完成您想要实现的目标,而无需在元组类型上调用 size。但是如果没有看到您的其余代码,我无法确定,因此请谨慎对待。

    您可以解决缺少类似tuple_size 的元函数的方法是使用declval。你可以写:

    constexpr size_t tupleSize = decltype(
        hana::size(std::declval<hana::tuple<T...>>())
    )::value;
    

    请注意,根据您必须调用它的上下文,如果您有此信息,甚至可以使用sizeof...(T)

    【讨论】:

    • 也许我误用了hana,但我真正想要实现的是两个参数包...T_A...T_B的大小,然后减去它的大小。然后将差异用作类的模板参数。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-22
    相关资源
    最近更新 更多