2

我知道如何获取元组对象的大小,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 中是否有类似的类型特征?

4

1 回答 1

2

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

您可以解决缺少类似tuple_size元功能的方法是使用declval. 你可以写:

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

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

于 2015-09-27T12:51:21.353 回答