Ich habe gerade einen Teil meines eigenen Codes mit der -std=c++0x
Flagge 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_ptr
veraltet zu sein. Natürlich wusste ich, dass auto_ptr
das 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_ptr
ist 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_ptr
hat 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_ptr
ein ä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_ptr
und glücklicher sein.
auto_ptr
als Beispiel.