我试图弄清楚如何在编译时使用 boost:hana 转换整数常量列表。
我的清单如下:
constexpr auto vals = hana::to<hana::tuple_tag>(hana::range_c<int, 0, 3>);
我想应用这个功能:
constexpr auto Pow2(int i) { return 1 << i; }
然而
constexpr auto res = hana::transform(list, Pow2);
为 的 res 生成一个类型hana::tuple<int, int, int>
。我没有看到如何将 lambda 的参数移动到模板参数中hana::int_c
// Compiler error: Non-type template argument is not a constant expression
constexpr auto Pow2(int i)
{
return hana::int_c<1 << i>{};
}