Desreferenciación de un puntero al pasar por referencia

¿Qué sucede cuando no se hace referencia a un puntero al pasar por referencia a una función?

Aquí hay un ejemplo simple.

int& returnSame( int &example ) { return example; }

int main()
{
  int inum = 3;
  int *pinum = & inum;

  std::cout << "inum: " <<  returnSame(*pinum) << std::endl;

  return 0;          

}

¿Hay un objeto temporal producido?

Respuestas a la pregunta(3)

Su respuesta a la pregunta