Я не очень хорошо знаком с асинхронным программированием, и у меня есть вопрос.Boost.asio и асинхронная цепь, unique_ptr?
Мой вопрос следующий. Учитывая echo_server пример здесь для C++ 11 в Boost.Asio: http://www.boost.org/doc/libs/1_60_0/doc/html/boost_asio/example/cpp11/spawn/echo_server.cpp
Я хотел бы знать, если std::make_shared<session>
может быть заменен на C++ 14 с std::unique_ptr<session>
в C++ 14, избегая накладных расходов ссылки сосчитать.
Я не уверен, так как мы имеем shared_from_this()
но не что-то вроде unique_from_this()
, так как я могу получить доступ к unique_ptr<session>
внутри this
?.
Вы знаете, что накладные расходы - это один указатель дополнительной памяти на экземпляр и счетчик ссылок на совместное создание и удаление ptr - в противном случае это точно так же, как обычный указатель. Также неясно, к какой shared_ptr вы обращаетесь, поскольку в этом примере несколько. – xaxxon
Концепция «unique_from_this» даже не имеет смысла. Вы не можете просто создать уникальный указатель на адрес памяти произвольно, так как у вас будет условие гонки относительно того, кто очистил память. – xaxxon