スマートポインタ
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/04/27 10:00 UTC 版)
「ガベージコレクション」の記事における「スマートポインタ」の解説
なお、C言語で参照カウント方式のガベージコレクションを利用する場合、通常煩雑なコーディングを必要とするが、C++では以下のようなRAIIを活用したスマートポインタ(英語版)を利用することで緩和できる。 Boost C++ライブラリのboost::shared_ptrおよびboost::shared_array。参照カウントの増減処理をカスタマイズできるboost::intrusive_ptrもある。 C++11以降のstd::shared_ptr Active Template LibraryのATL::CComPtr - COMオブジェクトのスマートポインタ。 Windows Runtime LibraryのMicrosoft::WRL::ComPtr - Windowsランタイムオブジェクトのスマートポインタ。COMオブジェクトにも使用可能。
※この「スマートポインタ」の解説は、「ガベージコレクション」の解説の一部です。
「スマートポインタ」を含む「ガベージコレクション」の記事については、「ガベージコレクション」の概要を参照ください。
スマートポインタ
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/08/06 09:06 UTC 版)
「ポインタ (プログラミング)」の記事における「スマートポインタ」の解説
動的確保したメモリのアドレスをポインタにより管理するとき、注意深くプログラミングしないと解放忘れやダングリングポインタといった問題が発生しやすい。C++ではポインタをクラスでラップし、デストラクタの機構を利用して解放処理を自動化した「スマートポインタ」が利用されることが多い。またオブジェクトの所有権の移動や共有といった、生のポインタでは扱いが難しい概念をスマートポインタの機能として簡潔に実現するライブラリも存在する。 詳細は「RAII」を参照
※この「スマートポインタ」の解説は、「ポインタ (プログラミング)」の解説の一部です。
「スマートポインタ」を含む「ポインタ (プログラミング)」の記事については、「ポインタ (プログラミング)」の概要を参照ください。
- スマートポインタのページへのリンク