增加了元组类型的hana大小

时间:2015-09-26 21:12:53

标签: c++ tuples boost-hana

我知道如何在这样的boost::hana中获取元组对象的大小:

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

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

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

hana中是否有类似的特征?

1 个答案:

答案 0 :(得分:2)

没有。我的猜测是你在这里滥用Hana,或者有一个等效的方法来做你想要实现的,而不必在元组类型上调用size。但是,如果没有看到你的其余代码,我无法确定,所以请大家不要这么做。

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

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

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