C++ でプログラミングしているとき、undefined
Javascript! のようなすべての変数に値があればいいのにと思うことがあります。たとえば、配列の範囲外の要素の値を返す場合undefined
、例外をスローする代わりにを返すと便利でした。
template <typename T, int SIZE>
class MyArray
{
T arr[SIZE];
static T badref;
public:
T &operator[](int i)
{
if (i >=0 && i < SIZE)
return arr[i];
else
throw std::string("OUT-OF-BOUNDS"); // or: return badref; !!
}
};
もう 1 つの汚い (私の意見では) オプションは、事前定義された変数の参照を不適切な参照変数として返すことです。null
参照変数に代入できないことはわかっています。
呼び出し元が戻り値が無効であることを確認できる参照を返す別の適切なパターンはありますか?
編集:私は意地悪ではありませんpointer