0

コンストラクター クラスに 2 次元配列を渡そうとしています。

std::array<std::array<int, dimension>, dimension>

私はいくつかの検索を行い、テンプレートを使用しようとしました..しかし、動作しません

しかし、私のコードは次のエラーを生成します:

Undefined symbols for architecture x86_64:
 "state::state<std::__1::array<int, 4ul>, 4ul>(int, std::__1::array<std::__1::array<int, 4ul>, 4ul> const&)", referenced 
from:
  _main in main-d76757.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

メインのコード:

int main () {

  const int dimension = 4;
  std::array<int, dimension> j;
  std::array<std::array<int, dimension>, dimension> array;
  array[0][0] = 0;
  array[0][1] = 7;
  array[0][2] = 4;
  array[1][0] = 3;
  array[1][1] = 8;
  array[1][2] = 6;
  array[2][0] = 1;
  array[2][1] = 5;
  array[2][2] = 2;



  state t = state(dimension, array);

}

そしてここにコンストラクタのコード:

template<typename T, size_t N>
state::state(const int dim, std::array<T, N> const &array) : dimension(-1)
{
// DO STUFF

}
4

0 に答える 0