@nippolo tu, un intero, lo passi per reference?
Studiati che cosa e' un refernce: E' UN PUNTATORE (e' responsabilita' del compilatore ottenerlo e accederci), che passi per COPIA!
Quindi, per gli interi, la tua osservazione non e' valida.
Partirei dal fatto che lo standard C++ non definisce come il compilatore debba implementare i riferimenti e anche se la maggior parte delle volte sono implementati come un puntatore costante, non escluderei del tutto casi particolari per cui il compilatore è ottimizzato in modo da non usare nessun puntatore.
Detto questo lo so che un riferimento è implementato internamente come un puntatore e che quindi il passaggio per riferimento avviene sempre per copia di un puntatore. Quindi è ovvio che se passi un int ad una funzione avverrà sempre 1 COPIA (di un puntatore nel passaggio per riferimento e di un int nel passaggio per valore).
Premesso che non avendo mai studiato informatica (mi sono avvicinato alla programmazione per hobby) non so quali siano le dimensioni di una variabile intera o di una variabile puntatore, vorrei far notare che oltre al numero di copie andrebbe considerata anche la dimensione della copia.
In ogni caso il mio era un consiglio generale che andava al di là del caso specifico...
Magari mi sbaglio, ma ho come l'impressione che nel tuo post utilizzi un tono inutilmente provocatorio...
Infatti non mi tornava sta cosa, se ho un argomento attuale costituito da un valore intero, quindi una costante, secondo me è lecito utilizzare l'attributo const ma la parola agli esperti.
Non ho capito, a quale codice ti riferisci?
Il codice riportato nel post iniziale come già detto non potrà mai compilare.