コンストラクターで 2D 配列に動的メモリを割り当てると同時に、std::unique_ptr
その割り当て解除を処理し続けるにはどうすればよいですか? または、これを行うより良い方法はありますか?
私のエラーは「高さは定数式ではありません」です。
#include <iostream>
#include <vector>
#include <memory>
template<typename T>
class Matrix
{
private:
int Width, Height;
std::unique_ptr<T*> Elements;
public:
Matrix(int Width, int Height);
T* operator[](int Index);
const T* operator[](int Index) const;
};
template<typename T>
Matrix<T>::Matrix(int Width, int Height) : Width(Width), Height(Height), Elements(new T[Width][Height]) {}
template<typename T>
T* Matrix<T>::operator[](int Index) {return Elements[Index];}
int main()
{
Matrix<int> M(4, 4);
std::cout << M[2][2];
}