如何将boost::元组分配给boost::shared_ptr

How to assign a boost::tuple to boost::shared_ptr

本文关键字:boost shared ptr 元组 分配      更新时间:2023-10-16

在我的代码中,我有这样的内容

shrd_ptr_obj st = boost::make_shared<Myobj>();
Myobj tp =  boost::make_tuple(0,0,0,0,0 );

如何使st指向tp

自然的方法是将构造函数参数传递给make_shared,并在同一行创建对象。

shrd_ptr_obj st = boost::make_shared<Myobj>(boost::make_tuple(0,0,0,0,0));

如果你想在单独的步骤中构造对象,你需要用new分配tp,而不是在堆栈上创建它。然后,您可以从这个new ed指针创建一个boost::shared_ptr

Myobj *tp = new Myobj(boost::make_tuple(0,0,0,0,0));
shrd_ptr_obj st = boost::shared_ptr<Myobj>(tp);