c++ - 增加元组类型的 hana 大小

标签 c++ tuples boost-hana

我知道如何在 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 中是否有类似的类型特征?

最佳答案

没有。我的猜测是,您在这里误用了 Hana,或者有一种等效的方法可以实现您想要实现的目标,而无需在元组类型上调用 size 。但如果没有看到你的代码的其余部分,我无法确定,所以对此持保留态度。

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

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

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

关于c++ - 增加元组类型的 hana 大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32802081/

相关文章:

c++ - 如何以编程方式结束对话框(i.n 属性表)

python - 展平未知长度的元组

python - 元组类型内容python

c++ - 如何通过地址获取元组中元素的索引?

c++ - boost::hana 如何检查类型是否为 std::optional?

c++ - 从 hana::tuple_t 到 hana::tuple

c++ - vector 容器的运算符 [] - 返回引用?

c++ - 为什么我从这个字符串到 char 转换得到随机输出?

c++ - Makefile,如何同时链接32位库和64位库

c++ - 当元组给出参数时如何检查方法是否存在?