std::array
初期化リストを介してネストされた(2D)を初期化する方法は?
template <std::size_t W, std::size_t H>
class Block
{
std::array<std::array<int, W>, H> block;
public:
template <typename ...E>
Block(E&&...e) : block {{std::forward<E>(e)...}} {}
};
クラスは、以下のようにメンバーBlock
を初期化できる必要があります。block
Block<3, 2> b {{ {1, 2, 3}, {4, 5, 6} }};
注: std::array
C++11 で直接初期化する機能があります。
std::array<std::array<int, 3>, 2> b {{ {1, 2, 3}, {4, 5, 6} }};
私はgcc-4.9.0を使用しています