【发布时间】:2013-05-20 12:13:57
【问题描述】:
我尝试将一些使用new 的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() 的方式有关??
【问题讨论】:
标签: c++ boost c++builder vcl make-shared