Ich habe gerade einen Teil meines eigenen Codes mit der -std=c++0xFlagge in GCC kompiliert , da ich vage auf dem Laufenden halten möchte, was alle jungen Leute tun (vorausgesetzt, sie bleiben auf meinem Rasen), und am Ende habe ich eine Menge Warnungen erhalten über auto_ptrveraltet zu sein. Natürlich wusste ich, dass auto_ptrdas in C ++ 0x veraltet war, aber ...
Ist Abschreibung nicht eine Verschwendung von Zeit und Mühe? Gründe für die Nichtbeachtung (am Beispiel von auto_ptr):
Es gibt eine Vielzahl von Codes, die noch unterstützt werden müssen. Millionen von Warnungen werden nur dazu verleiten, Warnungen auszuschalten.
auto_ptrist ein bisschen naff, aber es macht tatsächlich das, was es verspricht.Wenn wir wirklich Dinge missbilligen wollen, nominiere ich
printf(). Aber stellen Sie sich nur das Quietschen vor, das folgen würde.auto_ptrhat nicht zu viele Freunde, aber in meinem C ++ - Code wird es mehr als verwendetprintf, was überhaupt nicht verwendet wird.hat der Ausschuß eine schlechte Bilanz dieses Recht zu bekommen - sie statisch auf Namespacebereich ist veraltet, und jetzt scheint es undeprecated worden zu sein - ich würde nicht überrascht sein , wenn
auto_ptrein ähnlichen Come-back gemachtWas auch immer das Komitee sagt, die Compiler-Implementierer ignorieren sie - sie können es einfach nicht riskieren, ihren Kundencode zu brechen, sie können nur irritierende Warnungen ausgeben.
Also meine Frage - halten Sie Verfall (von irgendetwas, nicht nur auto_ptrs und nicht nur in C ++) für eine gute Idee, und wenn ja, warum?
unique_ptrund glücklicher sein.
auto_ptrals Beispiel.