Poiché C++ fornisce riferimenti a rvalue, cioè riferimenti rvalue che vengono principalmente utilizzati per eseguire semantica del movimento e altre attività di memoria efficienti. Ma nel caso seguente il riferimento sta cambiando il valore di un letterale, ma come sappiamo che i letterali sono letti solo così come potrebbe un riferimento cambiare il valore di alcune variabili di sola lettura. Un riferimento di rvalue alloca la propria memoria o semplicemente modifica il valore letterale?C++: memoria di riferimento rvalore
#include <iostream>
using namespace std;
int main()
{
int a = 5;
int&& b = 3;
int& c = a;
b++;
c++;
cout << " Value for b " << b << " Value for c " << c << endl;
}
In secondo luogo, quando un oggetto temporaneo viene assegnato con un riferimento, il riferimento funziona con i dati di quell'oggetto. Ma secondo la definizione di oggetti temporanei vengono cancellati come quando termina l'espressione che li usa. In che modo il riferimento può fungere da alias per quell'oggetto temporaneo se quell'oggetto temporaneo non ha memoria?
Hey da cui riferimento si fa a dire i numeri di sezione come '(5.1.1) il paragrafo 1' –
@HarshulSharma: Sto citando lo standard C++ in atto al momento del post. Nel caso di questo articolo che è ISO/IEC 14882: 2014. Questi documenti possono essere acquistati da organizzazioni nazionali di standardizzazione. Alcuni _draft_ sono disponibili (vedere la pagina [open std] (http://www.open-std.org/JTC1/SC22/WG21/) per alcuni collegamenti). I miei riferimenti includono normalmente sia il numero di sezione che il riferimento_table come "[expr.prim.general]": il numero di sezione, la dicitura esatta ei numeri di paragrafo possono cambiare ma rimangono i riferimenti stabili. Il testo citato utilizza il riferimento come nel testo citato. –
Grazie non sapevo che WG21 pubblica anche una bozza finale. Ho solo pensato che rilasciassero diverse bozze per concetti diversi. Ora penso di avere un riferimento affidabile.Grazie mille :) :) –