2D std :: array troughイニシャライザを初期化しようとしていますが、コンパイラはイニシャライザが多すぎると言っています。C++ 11で多次元std :: arrayを(イニシャライザのリストを通して)どのように初期化しますか?
例えば:
std::array<std::array<int, 2>, 2> shape = { {1, 1},
{1, 1} };
コンパイラエラー:エラー:あまりにも多くの初期化子‘std::array<std::array<int, 2ul>, 2ul>’
のためではなく、明らかにあまりにも多くはありません。私は何か間違っているのですか?
私はそれをやらなければならないということは、いつも私には抽象的なリークのように感じます。ライブラリの結果が、言語の "内部"ではなく、それと一緒に構築されたということだけです。 –
警告を出さない場合は、 'std :: array,2> shape = {{{{1,1}}、{{1,1}}}}'のようにしてください。 eww –
Jeff