Как назначить boost :: tuple для boost :: shared_ptr

В моем коде у меня есть что-то вроде этого

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

Как я могу указать на ТП?

3

Решение

Естественным способом является передача параметра (ов) конструктора make_shared и создать объект в той же строке.

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

Если вы хотите построить объект в отдельном шаге, вам нужно выделить tp с new вместо того, чтобы создавать его в стеке. Тогда вы можете создать boost::shared_ptr из этого newуказатель

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

Другие решения

Других решений пока нет …