我尝试使用new
to切换一些 C++Builder 2010 代码boost::make_shared<>
,如下所示。
老的:
boost::shared_ptr<TStringList> l(new TStringList());
新的:
boost::shared_ptr<TStringList> l(boost::make_shared<TStringList>());
l->Add("foo"); //dies here
旧代码可以工作,但是当我尝试使用指针(AV,或者只是挂起)时,新代码就会死掉。我以前用过make_shared
并shared_ptr
成功过,但从来没有用过TObject
后代。这是一个已知问题 - 可能与make_shared
使用放置的方式有关new()
?