Я пытаюсь использовать boost :: shared_ptr и boost :: enable_shared_from_this безрезультатно. Похоже, что shared_from_this () возвращает неправильный shared_ptr. Вот что я вижу:
Task* task = new TaskSubClass();
boost::shared_ptr<Task> first = boost::shared_ptr<Task>(task); // use_count = 1, weak_count = 1
boost::shared_ptr<Task> second = first; // use_count = 2, weak_count = 1
boost::shared_ptr<Task> third = first->shared_from_this(); // use_count = 2, weak_count = 2
Я также заметил, что first.px=third.px
, но first.pn.pi!=third.pn.pi
. То есть они оба используют один и тот же объект, но используют разные счетчики. Как я могу получить два, чтобы разделить один и тот же счетчик?