Возврат неверной ссылки
Иногда, когда я программирую на 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