C'est le code de C++11 Notes de l'Échantillon par Scott Meyers,
int x;
auto&& a1 = x; // x is lvalue, so type of a1 is int&
auto&& a2 = std::move(x); // std::move(x) is rvalue, so type of a2 is int&&
Je vais avoir du mal à comprendre auto&&
.
J'ai une certaine compréhension de l' auto
, à partir de laquelle je dirais qu' auto& a1 = x
doivent faire type d' a1
comme int&
Qui, de la Cité de code, semble erroné.
J'ai écrit ce petit code, et a couru sous gcc.
#include <iostream>
using namespace std;
int main()
{
int x = 4;
auto& a1 = x; //line 8
cout << a1 << endl;
++a1;
cout << x;
return 0;
}
Sortie = 4 (newline) 5
Puis j'ai modifié la ligne 8 auto&& a1 = x;
, et a couru. Même sortie.
Ma question : Est - auto&
égal à auto&&
?
S'ils sont différents, qu'est - auto&&
faire?