Originariamente inviato da MItaly
Purtroppo un problema di questo approccio è che non è possibile fare cose come
codice:
v[0]++;
v[0]+=50;
e compagnia; non si possono neanche implementare gli operatori in questione manualmente nella classe proxy, dato che a quel punto la compilazione fallirebbe se il contenitore fosse usato su tipi che non implementano gli operatori su cui questi si basano.
Anche roba di questo genere
codice:
int * ptr=&v[0];
ha comportamento peculiare: non restituisce l'indirizzo dell'elemento in questione, ma dell'oggetto-proxy temporaneo; in effetti per ottenere l'indirizzo dell'elemento bisognerebbe fare
codice:
int * ptr = & static_cast<const int &>(v[0]);
Si, stavo notando. Grazie per l'ottimo esempio.