私が正しく理解している場合、shared_ptr(boost、tr1、stdなどから)が新しく割り当てられたオブジェクトへのポインタで初期化されると、shared_ptrのコンストラクタはポインタの参照カウントを保持するために少量のメモリを割り当てます管理する。割り当てが失敗した場合はどうなりますか?次のコードで:shared_ptrのは、その参照カウント用のメモリの割り当てに失敗した場合shared_ptrのコンストラクタが失敗した場合はどうなりますか?
class my_class {};
void my_func(shared_ptr<my_class> arg);
int main(int argc, char* argv[])
{
my_func(shared_ptr<my_class>(new my_class()));
return 0;
}
... my_class
オブジェクトがリークされるのですか?あるいは、shared_ptrのコンストラクタはオブジェクトを削除する責任を負いますか?
乾杯。私はGoogleを起動しましたが、答えは見つかりませんでした。これらの日のうちの1つでは、ソース(つまり標準)を確認する方法を学びます。 :-) – bythescruff