基になる C 配列にアクセスするときにインデックスを制御するセーフ配列クラスを実装する必要があります。
template <typename T, int N> class SafeArray
{
public:
T &operator[](int index)
{
assert(0 <= index && index < N);
return m_data[index];
}
private:
T m_data[N];
};
そして、代わりにbool a[3];
、今私は書きSafeArray<bool, 3> a;
ます。
のような配列の初期化をサポートするにはどうすればよいbool b[3] = {false};
ですか? が構築されb.m_data[] = {false, false, false}
た後に取得するにはどうすればよいですか?SafeArray<bool, 3> b;
にコンストラクターを追加する必要があると思いSafeArray
ますが、そのコンストラクターの本体は何でしょうか? テンプレート パラメーターT
は何でもかまいませんが、必ずしも ではありませんbool
。私はpre-C++11を使用しています。