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