Zwracanie nieprawidłowego odwołania

Czasem, gdy programuję w C ++, chciałbym, żeby byłoundefined wartość dla każdej zmiennej podobna do Javascript !. Na przykład, gdy zwracam wartość elementu out-of-bounds tablicy, warto było zwrócićundefined zamiast rzucać wyjątek lub:

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; !!
  }
};

Inną brudną (moim zdaniem) opcją jest zwracanie odwołania do zmiennej sprzed defindu jako zmiennej o złym referencji. Wiem, że nie możemy przypisaćnull lub coś podobnego do zmiennej referencyjnej.

Czy istnieje inny dobrze uformowany wzór, który zwraca referencję, w przypadku gdy wywołujący ma możliwość stwierdzenia, że ​​zwrócona wartość jest nieprawidłowa?

EDYTOWAĆ: Nie mam na myślipointer

questionAnswers(4)

yourAnswerToTheQuestion