Ich weiß, dass es eine Version von ASIO gibt, die nicht im Boost-Namespace enthalten ist, aber selbst dann hängt ASIO von Boost ab, aber ich frage mich, ob ASIO ohne Abhängigkeiten von Boost funktioniert (weil ich nicht kann Boost in das Projekt einbeziehen, aus zu vielen Gründen).Gibt es eine Möglichkeit, Asio ohne Boost arbeiten zu lassen?
Antwort
Nein, das glaube ich nicht. ASIO verwendet Boost, solange ich davon gehört habe. Ich denke, sie sind sehr miteinander verbunden. Aber Sie könnten an einem Tool interessiert sein, bcp, mit dem Sie die minimale Teilmenge von Boost extrahieren können, die für die Bibliotheken benötigt wird, die Sie verwenden möchten.
Es gibt auch eine nicht-Boost-Version von Asio:
Asio kommt in zwei Varianten: (Nicht-Boost) Asio und Boost.Asio.
See:
Aber es erfordert immer noch eine Tonne Boost-Header, auch wenn es nicht Teil der Boost ist, wurde ich auch durch den Namen –
Offenbar I getäuscht nicht sehen, welche Header Sie anstreben .. Es hat seine eigenen Thread-Bits .. –
-1 Downvoting. Das ist nicht wahr, ** asio benötigt immer noch Header-Boost-Dateien. ** Der Grund für die Trennung war, dass Asio bereits einen großen Namespace hat, und das Hinzufügen von Boost macht es nur länger. Auch asio wird auf einen anderen Release-Plan als Boost aktualisiert, und einige Leute haben das Bedürfnis, asio häufiger als boost zu aktualisieren. Schließlich scheint ASIO ohne 'boost :: bind()' fast unmöglich zu sein! – unixman83
Die "non-Boost Asio" hat seinen eigenen Thread Bits statt Boost.Thread zu verwenden, aber es bedarf noch boost.date_time, Boost.Array, auftrieb. Dienstprogramm, boost.bind, boost.shared_ptr ...
Es gibt keine Version von Asio, die ohne jede Boost-Abhängigkeit arbeiten kann.
Der größte Teil von TR1 stimmt und die Mehrheit der Compiler unterstützt es bereits. Und das Datum-Zeit bin ich mir nicht sicher, ob es eine Option gab, davon zu laufen .. kann mich nicht erinnern. –
nur erinnert, boost.system ist einer der loswerden .. Speicher fehlschlägt mir. –
Die letzten ASIO-Versionen können ohne Boost im Standalone-Modus arbeiten. Dieser Modus wurde wahrscheinlich durch die C++ 11-Unterstützung der Bibliothek ermöglicht, da er nun Standard-Threads, Futures usw. anstelle ihrer Boost-Implementierung verwenden kann. Sie können einfach ASIO sind wie unten und genießen:
#define ASIO_STANDALONE
#include <asio.hpp>
keine Ahnung hatte, ein solches Werkzeug existierte, einfach genial, ich würde upvote diese Antwort verdreifachen, wenn ich –
Thanks :) könnte! Froh, dass ich helfen konnte :) –
Die Idee von asio war immer in unabhängiger Form von Boost erhältlich. Und es ist. Google für "Think Asio" oder den Autoren Blog .. –