【发布时间】:2017-02-23 15:47:14
【问题描述】:
我试图弄清楚如何在编译时使用 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);
为 hana::tuple<int, int, int> 的 res 生成一个类型。我没有看到如何将 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>{};
}
【问题讨论】:
标签: c++ boost metaprogramming boost-hana