我知道如何在这样的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中是否有类似的特征?
答案 0 :(得分:2)
没有。我的猜测是你在这里滥用Hana,或者有一个等效的方法来做你想要实现的,而不必在元组类型上调用size
。但是,如果没有看到你的其余代码,我无法确定,所以请大家不要这么做。
您可以使用tuple_size
解决缺少declval
类元函数的方法。你可以写:
constexpr size_t tupleSize = decltype(
hana::size(std::declval<hana::tuple<T...>>())
)::value;
请注意,根据您必须调用此内容的上下文,如果您有此信息,甚至可以使用sizeof...(T)
。