Возврат неверной ссылки

Иногда, когда я программирую на 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; !!
  }
};

Другая грязная (на мой взгляд) опция возвращает ссылку на предварительно определенную переменную как переменную с плохой ссылкой. Я знаю, мы не можем назначитьnull или что-то подобное ссылочной переменной.

Есть ли другой правильно сформированный шаблон для возврата ссылки, где вызывающая сторона может обнаружить, что возвращаемое значение недопустимо?

РЕДАКТИРОВАТЬ: Я не имею в видуpointer

Ответы на вопрос(4)

Ваш ответ на вопрос