Asignar una referencia desreferenciando un puntero NULO

int&  fun()
{
    int * temp = NULL;
    return *temp;
}

En el método anterior, estoy tratando de desreferenciar un puntero NULL. Cuando llamo a esta función no da excepción. Encontré que cuando el tipo de retorno es por referencia, no da una excepción si es por valor, entonces lo hace. Incluso cuando la desreferenciación del puntero NULL se asigna a la referencia (como la línea de abajo), entonces tampoco da.

int* temp = NULL:
int& temp1 = *temp;

¿Aquí mi pregunta es que el compilador no hace la desreferenciación en caso de referencia?

Respuestas a la pregunta(5)

Su respuesta a la pregunta