私はsome_type
型のオブジェクトを作成し、このオブジェクトに割り当てられたメモリへのポインタを返す関数some_func_1
を持っています。C++でスマートポインタを使用してメモリを割り当てる方法と有効な方法
このメモリは、特別なsome_func_2
を使用して削除する必要があります。 boost::shared_ptr<some_type>
を使用し、カスタム削除機能としてsome_func_2
を指定することは可能ですが、私はスレッドが1つしかなく、割り当てられたメモリのユーザーが1人しかないので効果的な方法ではありません。
つまり、scoped_ptr
のようなものが必要ですが、カスタム割り当て解除機能を定義する可能性があります。どのように最大の有効性でこれを行うには?
はい私は余分な操作をしたくありません。この場合は参照カウントです。 whileループでこのコードを使用します。while(true){//オブジェクトにメモリを割り当て、使用します。} ' – akmal
' BOOST_SCOPE_EXIT'はどうしますか? – akmal
@akmal:shared_ptrの使用によるオーバーヘッドはごくわずかなので、メモリ割り当て自体にかかる時間と比較してパフォーマンスの問題を引き起こす可能性があることを真剣に疑っています。とにかく、実際の測定可能なパフォーマンスの問題に気づく前に、二度と推測せずに 'shared_ptr'に行ってください:) – ereOn