C++でのシングルトンのスレッドセーフな遅延構築

C++でのシングルトンのスレッドセーフな遅延構築

C++でシングルトンオブジェクトを実装する方法はありますか。 スレッドセーフな方法で遅延構築されます(2つのスレッドが同時にシングルトンの最初のユーザーになる可能性があります-一度だけ構築されるべきです)。 事前に構築されている静的変数に依存しません(したがって、シングルトンオブジェクト自体は、静的変数の構築中に使用しても安全です)。(私はC++を十分に知りませんが、コードが実行される前に(つまり…


c++ - char*= "string"やchar*= new char[6]を破棄する必要はありますか?

私はchar*="string"はchar*=new char[6]と同じであると仮定します。 私はこれらの文字列がスタックの代わりにヒープ上に作成されると信じています。 だから私はそれらを使い終わったとき、あるいは自分たちで破壊されるときに、それらを破壊するか、彼らの記憶を解放する必要がありますか?…


c++ - なぜ "PIMPL"イディオムを使用すべきですか?

この質問には既に回答があります: pImplイディオムは実際に実際に使用されていますか? 11の答え 背景: PIMPLイディオム(IMPLementationへのポインタ)は、パブリッククラスがパブリッククラスの一部であるライブラリの外側には見えない構造またはクラスをパブリッククラスでラップする実装隠蔽の手法です。 これにより、内部実装の詳細とライブラリのユーザーからのデータが隠さ…


c++ - スマートポインタによって引き起こされるメモリリークを見つける

スマートポインタによって引き起こされるメモリリークを発見する "技術"を誰かが知っていますか? 私は現在、 C++で書かれた大規模なプロジェクトに取り組んでいます。これは、リファレンスカウントでスマートポインタを頻繁に使用しています。 当然のことながら、スマートポインタによってメモリリークが発生しています。スマートポインタは、コードのどこかで参照されているため、メモリが解放されません。 "不…


c++ - スマートポインタ:またはあなたの赤ちゃんを所有している人は?

C++はすべてメモリ所有権に関するものです 別名「 オーナーシップセマンティクス 」 そのメモリを解放するのは、動的に割り当てられたメモリのチャンクの所有者の責任です。 だから問題は本当に誰が記憶を所有するのかになります。 C++の所有権は、RAWポインタがラップされているタイプ(RAWポインタには推論されていない所有権がないため、非常にまれです)[RAW NOT NEVER]誰が…


c++ - RAIIはどうやって発音しますか?

RAII(=リソース取得は初期化)はC++で頻繁に使用されます。 私はネイティブスピーカーではありません。 だから、どう発音しますか?…


c++ - スマートポインタとは何ですか?いつスマートポインタを使用しますか?

スマートポインタとは何ですか?いつスマートポインタを使用しますか?…


c++ - 標準コンテナでstd:: auto_ptr<>を使用するのはなぜ間違っていますか?

標準コンテナでstd::auto_ptr<>を使用するのはなぜ間違っていますか?…


c++ - オブジェクト全体、またはオブジェクトのポインタをコンテナに格納する必要がありますか?

新しいシステムをゼロから設計する。 私はSTLを使用して、特定の長命オブジェクトのリストとマップを格納します。 質問:オブジェクトにコピーコンストラクタがあり、STLコンテナ内にオブジェクトのコピーを格納する必要がありますか、それとも自分のライフとスコープを自分で管理し、STLコンテナにそれらのオブジェクトへのポインタを格納する方が一般的ですか? 私はこれが細部にはいくぶんか不足していること…



c++ - スマートポインタへの参照を使用しないでください。

スマートポインタへの参照を使用するとメモリが破損する可能性があることを思い出してしまいます。 これは単に破壊された後のスマートポインタの参照を使用しているからですか? あるいは、参照カウントが乱れてしまいますか? 明確化のためにありがとう…




shared_ptr reset std 使い方 スマートポインタ deleter デメリット vector make_shared move