小编Wum*_*Wum的帖子

C++ 14使用可变参数模板编译时间std :: array

我想使用c ++ 14可变参数模板构建编译时查找表.目前我在那里:

static const unsigned kCount = 5;

template<unsigned Index>
constexpr auto getRow(void)
{
    return std::array<unsigned, 2> { Index, Index * Index };
}

template<unsigned... Indices>
constexpr auto generateTable(std::index_sequence<Indices...>)
{
    return std::array<std::array<unsigned, 2>, sizeof...(Indices)>
    {
        // This is were I'm stuck. How to build a std::array using Indices as template parameter in getRow()?
    };
}

constexpr auto generate(void)
{
    return generateTable(std::make_index_sequence<kCount>{});
}
Run Code Online (Sandbox Code Playgroud)

我希望桌子在一个std::array.每行包含std::array2列.我被困在generateTable()我需要以某种方式将我的指数传递getRow()给模板参数的地方.

这是可以实现的使用std::integer_sequence和模板参数包扩展还是我需要自己实现递归?

(getRow()简化 - 值类型实际上来自模板类型. …

c++ variadic-templates c++11 stdarray c++14

3
推荐指数
1
解决办法
718
查看次数

标签 统计

c++ ×1

c++11 ×1

c++14 ×1

stdarray ×1

variadic-templates ×1