gpt4 book ai didi

c++ - 将 integral_constants 的元组转换为 int 的 constexpr 元组

转载 作者:行者123 更新时间:2023-11-30 02:20:57 26 4
gpt4 key购买 nike

假设我有一个 hana::integral_constant 的元组,如下所示:

auto tuple_of_int_const = hana::make_tuple(hana::integral_constant<int,0>(),
hana::integral_constant<int,1>());

我现在正尝试从中生成一个整数的 constexpr 元组,如下所示:

constexpr auto constexpr_tuple = hana::make_tuple(0,1);

我的尝试:

#include "boost/hana.hpp"


using namespace boost;

auto tuple_of_int_const = hana::make_tuple(hana::integral_constant<int,0>(),
hana::integral_constant<int,1>());

constexpr auto tuple = hana::transform(tuple_of_int_const,[](auto x){ return x(); });

问题是 lambda 不是 constexpr ......所以问题是这样的:如何将 integral_constant 元组转换为 constexpr lambda?

注意:

我正在使用 c++14

最佳答案

Boost.Hana 具有函数 value_of作为 Constant 的一部分概念。

#include <boost/hana.hpp>

namespace hana = boost::hana;

int main() {
auto tuple_of_int_const = hana::make_tuple(hana::integral_constant<int,0>(),
hana::integral_constant<int,1>());

constexpr auto tuple = hana::transform(tuple_of_int_const, hana::value_of);

static_assert(hana::make_tuple(0, 1) == tuple, "");
}

关于c++ - 将 integral_constants 的元组转换为 int 的 constexpr 元组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49195228/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com