Retornando uma referência inválida
Às vezes, quando estou programando em C ++, gostaria que houvesse umundefined
valor para cada variável algo como Javascript !. Por exemplo, quando estou retornando um valor para o elemento fora de limite de uma matriz, é útil retornar umundefined
em vez de lançar uma exceção ou:
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; !!
}
};
Outra opção suja (na minha opinião) está retornando uma referência de uma variável pré-defind como uma variável de referência ruim. Eu sei que não podemos atribuirnull
ou algo assim para uma variável de referência.
Existe um outro padrão bem formado para retornar uma referência onde o chamador tem a capacidade de descobrir que o valor retornado não é válido?
EDITAR: Eu não sou maupointer