次のコードがあります。
#include <boost\interprocess\file_mapping.hpp>
file_mapping* fm = new file_mapping(FilePath,read_only);
この行を使用するように変換するにはどうすればよいboost::shared_ptr
ですか?
私が試みるたびにshared_ptr<file_mapping>
、右側のnew
演算子でコンパイルエラーが発生します。
次のコードがあります。
#include <boost\interprocess\file_mapping.hpp>
file_mapping* fm = new file_mapping(FilePath,read_only);
この行を使用するように変換するにはどうすればよいboost::shared_ptr
ですか?
私が試みるたびにshared_ptr<file_mapping>
、右側のnew
演算子でコンパイルエラーが発生します。
のコンストラクターshared_ptr<T>
は次のとおりです。完了時に誤って自分の所有権を取得しexplicit
たくありません。したがって、ポインタからa を明示的に構築する必要があります。shared_ptr<T>
T*
delete
shared_ptr<T>
boost::shared_ptr<file_mapping> ptr(new file_mapping(FilePath, read_only));
...またはそのようなものさえ
std::shared_ptr<file_mapping> ptr = std::make_shared<file_mapping>(FilePath, read_only);
以下を使用できます。
boost::shared_ptr<file_mapping> fm_ptr(new file_mapping(FilePath, read_only));