Ich versuche zu const_cast unique_ptr und es gibt mir Fehler:Warum const_cast ist für unique_ptr nicht erlaubt?
const std::unique_ptr<int> myptr;
std::unique_ptr<int> myptr1 = std::move(const_cast<std::unique_ptr<int> >(myptr));
Deshalb möchte ich verstehen, warum const_cast nicht mit unique_ptr funktioniert, wenn es mit dem normalen Zeiger arbeiten können?
Natürlich können Sie nicht von einem const Objekt bewegen: move muss die Quelle ändern, um Ressourcen von ihm zu "stehlen". –
also das bedeutet ich kann nicht Vektor const std :: unique_ptr richtig? – Kapil
Ich bin mir ziemlich sicher, dass Sie das nicht können. Vektorelemente müssen entweder kopierbar oder beweglich sein und 'const unique_ptr' ist keines davon. –