4 ms·
This is a bit strange to me. It has been possible to write refcounted pointers in C++ since ages. And everybody has them in their own private library. Of Course
by cjfd 7y ago
This is a bit strange to me. It has been possible to write refcounted pointers in C++ since ages. And everybody has them in their own private library. Of Course, this introduces compatibility issues because everyone's smart pointer is different, so it is really nice that it eventually ended up in the standard library. However, it seems really hard to argue that it only now is possible to use smart points.
- nikbackm 7y agostd::unique_ptr was made possible first in C++11 thanks to move semantics. Same goes for the similar smart pointers in wil.
- munchbunny 7y agoAs the other response mentions, a lot of the win32 stuff predates C++11/0x. Also, a lot of the win32 stuff are C API's by design, not C++. If your question was "why wasn't a C++ wrapper released sooner?" I think the answer is ".NET". If your question was "why didn't the API's have C++ semantics?" I think the answer is "because a lot of it is C, not C++."
- MaxBarraclough 7y agoMicrosoft provides the 'CComPtr' class template, a ref-counting smart-pointer for COM. It's been around since very roughly the year 2000 [0] [1]. Boost's smart pointers have apparently [2] been around for about as long. If people have been rolling their own smart pointers since that time, isn't that their own fault? [0] https://docs.microsoft.com/en-us/cpp/atl/reference/ccomptr-class https://docs.microsoft.com/en-us/cpp/atl/reference/ccomptr-c... [1] https://en.wikipedia.org/wiki/Active_Template_Library#History https://en.wikipedia.org/wiki/Active_Template_Library#Histor... [2] https://www.boost.org/doc/libs/1_31_0/libs/smart_ptr/smart_ptr.htm https://www.boost.org/doc/libs/1_31_0/libs/smart_ptr/smart_p...