Suchergebnisse für Anfrage "rvalue"

4 die antwort

Zuweisung eines von der Funktion zurückgegebenen R-Werts an einen anderen R-Wert

class Test { public: int n1; }; Test func() { return Test(); } int main() { func() = Test(); }Das ergibt für mich keinen Sinn. Wie und warum ist das erlaubt? Ist es undefiniertes Verhalten? Wenn eine Funktion einen Wert zurückgibt, wie ist es ...

2 die antwort

Warum ist der c ++ - Funktionsaufruf mehrdeutig?

Wenn ich habe void foo(Bar c); void foo(Bar&& c); foo(Bar()); Warum ist der Aufruf von 'foo' nicht eindeutig? Ist Bar () im Argument foo nicht eindeutig ein rValue?

6 die antwort

Verlängert ein const-Verweis die Lebensdauer eines temporären Objekts, das von einem temporären Objekt zurückgegeben wird?

Ich weiß, dass const reference die Lebensdauer einer temporären lokalen Verbindung verlängert. Jetzt frage ich mich, ob diese Eigenschaft auf eine Kette temporärer Objekte ausgedehnt werden kann, das heißt, ob ich Folgendes sicher definieren ...

TOP-Veröffentlichungen

6 die antwort

Erlauben rWert-Referenzen baumelnde Referenzen?

Betrachten Sie das Folgende. #include <string> using std::string; string middle_name () { return "Jaan"; } int main () { string&& danger = middle_name(); // ?! return 0; }Dies berechnet nichts, aber es wird fehlerfrei kompiliert und zeigt etwas, ...

4 die antwort

Was macht static_cast <T> mit einem T &?

Also habe ich gefragtdiese Frag [https://stackoverflow.com/q/37967446/2642059] und ich bastelte daran, es über @ zu lösstatic_cast. (Übrigens löst es das Problem, ich bin mir nur nicht sicher, ob ich verstehe warum.) Im Code: vector<int> foo = ...

2 die antwort

Warum hat std :: forward zwei Überladungen?

Gegeben die folgenden Referenzkollapsregeln T& & ->T&T&& & ->T&T& && ->T&T&& && ->T&&Die dritte und vierte Regel implizieren, dassT(ref qualifer) && ist die Identitätstransformation, d. h.T& bleibt beiT& undT&& bleibt beiT&&. Warum haben wir ...