Je peux prendre une adresse d'une valeur en la liant à une référence (qui elle-même, si je comprends bien, ne peut être référencée que par une lvalue).Y at-il une valeur que je peux directement prendre une adresse?
Y at-il un moyen d'obtenir rvalue que je peux prendre directement une adresse de (c'est-à-dire comme &(<rvalue>)
serait une expression valide, sans déroger operator&()
)?
Ou peut-être est-ce au moins possible en 'liant' à une autre valeur? (Cela ne semble pas être le cas car nous ne pouvons que lier des références qui sont des lvalues, voir ci-dessus, mais peut-être qu'il me manque un concept similaire ici.)
La question plus générale que j'essaie de La réponse est de savoir si ce qui suit est vrai: rvalues correspondent strictement à un ensemble d'expressions que l'on peut prendre directement une adresse, à l'exception des lfields bitfields et peut-être d'autres types de lvalues 'spéciaux'.
A moins que votre valeur ne soit cachée dans une lvalue, vous ne pouvez pas prendre l'adresse de celle-ci comme '&' parce qu'elle contredit la définition de "référence lvalue" – AndyG
language-lawyer est une variable? Fais-moi rire – arynaq
Regardez ['std :: addressof()'] (http://fr.cppreference.com/w/cpp/memory/addressof), qui résout le problème des classes surchargeant 'operator &'. –