Beispiel:Kann eine einfache Referenz nicht an ein Literal gebunden werden?
auto &h = 42; // error:we can't bind a plain reference to a literal.
const auto &j = 42; // right
Ich verstehe nicht, warum Compiler nicht &h
wissen kann, ist `const int & ich meine, "auto" ist in zwei Schritten haben: 1.know welche Art von R-Wert. 2.Vergewissern Sie sich, dass lvalue zum Typ wird, wenn der Schritt richtig ist, warum müssen wir "const" hinzufügen, wenn rvalue literal ist?
Mögliches Duplikat von [Warum erweitern const-Referenzen die Lebensdauer von rvalues?] (Https://stackoverflow.com/questions/39718268/why-do-const-references-ext-the-lifetime-of-rvalues) –
Sie sollten wissen, dass es nicht "const int &" ist, der Compiler ist nicht durcheinander. Es ist ein "int" reiner rvalue. Die Tatsache, dass eine const-Referenz an sie gebunden ist, bedeutet nicht, dass es sich um einen konstanten Referenztyp handelt. – StoryTeller
@StoryTeller _Sie sollten wissen_ klingt sehr nach _C++ ist eine expertenfreundliche Sprache_ in der Tat. :-D – skypjack