私はちょっとしたことがないと思っています。実装のためにテンプレート化されたクラスのコンストラクタを特殊化する必要があります。ここで、T =任意のパラメータを持つテンプレートクラスです。申し訳ありませんが私のボキャブスは少しオフです。 基本的には、ギザギザの2D配列を許容する必要があるので、ArEl<ArEl<int>>
があり、すべての配列長を事前に初期化したいと考えています。部分クラステンプレートの特殊化で継承を実装するにはどうすればよいですか?
using namespace std;
template <typename T>
class ArEl {
public:
ArEl(size_t size = 0)
: rSize(size), rArray(rSize ? new T[rSize]() : nullptr) {}
ArEl(const ArEl& other);
virtual ~ArEl() { delete[] rArray; }
void swap(ArEl& first, ArEl& second);
void redim(size_t size);
private:
std::size_t rSize;
T* rArray;
};
template <typename T, typename T1>
class ArEl<ArEl<T>> : public ArEl<T1>{
ArEl(size_t size = 0);
};
EDIT:
error: template parameters not deducible in partial specialization:
class ArEl<ArEl<T>> : public ArEl<T1>{