2014-07-15 14 views
5

Scott Meyers says (per i parametri di funzionamento dei modelli):Perché C++ non ha un riferimento universale const?

riferimenti

universali possono avvenire solo in forma "T&&"! Anche l'aggiunta semplice di è sufficiente per disabilitare l'interpretazione di "&&" come riferimento universale.

Perché il C++ non ha un riferimento universale const? Qualche motivo tecnico?

+0

Poiché il modo in cui si utilizza un riferimento costante è identico al modo in cui si utilizza un riferimento costante nella maggior parte dei casi. – IdeaHat

risposta

8

Cosa sarebbe un riferimento universale const? Sarebbe un riferimento che non può essere modificato. E lo spostamento da un riferimento di rvalue è una modifica. Pertanto, se esiste una cosa come un riferimento universale const, è semplicemente const T&.

+0

Se è inutile, perché il compilatore non vieta 'const T &&'? Non dovrebbe essere proibito? –

+3

@ccsadegh Non è inutile, potrebbe essere necessario in alcuni casi rari e complicati di risoluzione del sovraccarico per rimuovere l'ambiguità. Non è utile solo per formare un "riferimento universale const". –

Problemi correlati