Il discorso è un po' più sottile... il fatto che i reference siano puntatori mascherati non è strettamente richiesto, e, dato che lo standard non consente né di prendere l'indirizzo di un reference né si chiederne le dimensioni, i compilatori sono particolarmente facilitati a farli sparire appena riescono. Per dire, qualunque compilatore farà sparire immediatamente un reference locale del tipo:
(anche se probabilmente farebbe la stessa cosa con un puntatore, a patto di non prenderne l'indirizzo)codice:int una_variabile_con_nome_lunghissimo = 2; void test() { int &t = una_variabile_con_nome_lunghissimo; t = 2; ... std::cin>>t; ... std::cout<<t; ... t=5; }