私が正しく理解していれば、shared_ptr(boost、tr1、stdなど)が新しく割り当てられたオブジェクトへのポインターで初期化されると、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が参照カウントにメモリを割り当てられなかった場合、オブジェクトはリークされますか?または、shared_ptrのコンストラクターがオブジェクトの削除を担当しますか?