STL class for reference-counted pointers?

前端 未结 5 2023
花落未央
花落未央 2021-02-13 23:23

This should be trivial but I can\'t seem to find it (unless no such class exists!)

What\'s the STL class (or set of classes) for smart pointers?

UPDATE

相关标签:
5条回答
  • 2021-02-14 00:03

    If you don't want/can't use Boost and your compiler implements TR1, you can use shared_ptr (borrowed from Boost):

    #include <tr1/memory>
    
    ...
    
    std::tr1::shared_ptr<Foo> ptr(new Foo);
    

    Otherwise, no, there are no smart pointers except std::auto_ptr in vanilla STL.

    0 讨论(0)
  • 2021-02-14 00:03

    Time marches on, in C++11:

    std::shared_ptr
    std::weak_ptr
    

    etc.

    0 讨论(0)
  • 2021-02-14 00:03

    For COM objects, use CComPtr<>.

    0 讨论(0)
  • 2021-02-14 00:11

    With the exception of the already mentionned TR1 shared_ptr, there is no reference-counted pointer in STL.

    I suggest you use boost::shared_ptr (downloading boost will be enough, there is nothing to compile, its implementation is header-only).

    You may also want to have a look at smart pointers from Loki libraries (again, header-only implementation).

    For an overview of available smart pointers, see there.

    0 讨论(0)
  • 2021-02-14 00:20

    There is an alternative implemented for some time in STL PLUS, see at source forge

    "STLplus was originally intended as a library to extend the STL by providing missing container data structures such as smart-pointers, matrices, trees and graphs."

    0 讨论(0)
提交回复
热议问题