Re:Five Popular Myths about C++: Postscript
by StephanTLavavej on Tuesday December 30, 2014 @03:52PM
(#8816675)
Correction: shared_ptr wasn't in C++98/03. It was originally developed in Boost, then added to TR1 (in 2005), and finally incorporated into C++11.
One of the major differences between shared_ptr and CComPtr is that shared_ptr is non-intrusive - it can manage anything, even things like ints that don't know anything about strong/weak refcounts.
Re:Five Popular Myths about C++: Postscript
by dragontamer on Tuesday December 30, 2014 @06:21PM
(#8817330)
My history was off, thanks for the clarification.
Nonetheless, the concepts revolving around CComPtr and all that good stuff can be easily seen in C++98 / STL. STL Strings for instance automatically clean themselves up under the principles of RAII.
Auto_ptr<>, the first smart pointer, also was standardized in C++98. While crude and primitive by today's standards (especially compared to unique_ptr<>'s explicit RValue semantics), auto_ptr<> shows me that even in the mid 90s, people understood the principles of RAII.
At least, if you were a learned C++ programmer.
What's so hard about managing that? shared_ptr is basically equivalent to Python garbage collection.
Shared_ptr were standardized in 2003, and Microsoft implemented CComPtr<> way back in the 90s for this easy to use reference-counted smart-pointer concept.
http://msdn.microsoft.com/en-us/library/aa266806%28v=vs.60%2...
So... yeah. Stop doing manual memory management in C++. Something better has existed... since the 90s.
So how about you criticize something in C++ that wasn't solved at least 16 years ago?