Ich bin nicht sehr vertraut mit asynchronen Programmierung und ich habe eine Frage.Boost.asio und asynchrone Kette, unique_ptr?
Meine Frage ist die folgende. Gegeben hier das echo_server Beispiel für C++ 11 in Boost.Asio: http://www.boost.org/doc/libs/1_60_0/doc/html/boost_asio/example/cpp11/spawn/echo_server.cpp
Ich möchte wissen, ob die std::make_shared<session>
kann in C++ 14 mit einem std::unique_ptr<session>
in C++ 14 ersetzt werden, die Vermeidung der Kopfreferenz Anzahl.
Ich bin nicht sicher, da wir shared_from_this()
haben, aber nicht so etwas wie unique_from_this()
, so wie kann ich auf die unique_ptr<session>
von innen this
?.
Sie wissen, dass der Overhead ein einzelner Zeiger für zusätzlichen Speicher pro Instanz und eine Referenzzählerschwelle beim Erstellen und Löschen von gemeinsam genutzten Ptrs ist - ansonsten entspricht er genau einem normalen Zeiger. Es ist auch nicht klar, auf welches shared_ptr du dich beziehst, da es in diesem Beispiel mehrere gibt. – xaxxon
Das Konzept eines "unique_from_this" macht nicht einmal Sinn. Sie können nicht einfach einen eindeutigen Zeiger auf eine Speicheradresse erstellen, da Sie eine Race-Bedingung haben, wer den Speicher bereinigt hat. – xaxxon