12

これは些細なことですが、私はそれを見つけることができないようです(そのようなクラスが存在しない限り!)

スマートポインタのSTLクラス(またはクラスのセット)とは何ですか?

アップデート

回答ありがとうござい
ます。標準の実装がないことに驚いています。

私はこれを使用することになりました: http: //archive.gamedev.net/reference/articles/article1060.asp

4

5 に答える 5

14

すでに述べたTR1shared_ptrを除いて、STLには参照カウントポインタはありません。

boost :: shared_ptrを使用することをお勧めします(boostをダウンロードするだけで十分であり、コンパイルするものはなく、その実装はヘッダーのみです)。

また、Lokiライブラリからのスマートポインタを確認することもできます(ここでも、ヘッダーのみの実装)。

使用可能なスマートポインタの概要については、を参照してください。

于 2009-03-17T06:54:52.250 に答える
9

Boostが不要/使用できずコンパイラがTR1を実装している場合は、次を使用できますshared_ptr(Boostから借用)。

#include <tr1/memory>

...

std::tr1::shared_ptr<Foo> ptr(new Foo);

std::auto_ptrそれ以外の場合、いいえ、バニラSTL以外にスマートポインタはありません。

于 2009-03-17T06:49:59.313 に答える
3

C++11 では、時間は進みます。

std::shared_ptr
std::weak_ptr

于 2014-11-22T00:41:09.787 に答える
1

COMオブジェクトの場合は、CComPtr<>を使用します。

于 2009-03-17T06:52:32.583 に答える
0

STL PLUS でしばらくの間実装された代替手段があります。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."

于 2012-02-25T18:20:28.573 に答える