Wie können wir einem Element, das von std::reference_wrapper
umschlossen ist, einen Wert zuweisen?
Nach dem Fehler wird die direkte Zuweisung gelöscht:
Fehler: Verwendung der gelöschten Funktion 'std :: reference_wrapper & lt; _Tp & gt; :: reference_wrapper (_Tp & amp; & amp;) [mit _Tp = int] '
Verwenden Sie die get()
-Memberfunktion:
Hier ist eine Liste aller Mitgliedsfunktionen von std::reference_wrapper
. Da ist ein operator=
:
Das int-Literal wird in einen Referenzwrapper konvertiert, der fehlschlägt und die Fehlermeldung anzeigt, die Sie sehen.
Alternativ können Sie den Konvertierungsoperator explizit aufrufen ( static_cast<int&>(v[0]) = 1111;
), aber besser die Methode get()
verwenden, wie oben gezeigt.