コンストラクター クラスに 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
}