2009-04-08 3 views
6

Je sais qu'il existe une version d'ASIO qui n'est pas incluse dans l'espace de noms Boost, mais même ASIO dépend de Boost, mais je me demande s'il existe un moyen de faire fonctionner ASIO sans dépendances sur Boost (parce que je ne peux pas inclure Boost dans le projet, pour trop de raisons).Existe-t-il un moyen de faire fonctionner Asio sans Boost?

Répondre

10

Non, je ne crois pas. ASIO utilise boost depuis aussi longtemps que j'en ai entendu parler. Je pense qu'ils sont très interconnectés. Mais vous pouvez être intéressé par un outil, bcp, qui vous permet d'extraire le sous-ensemble minimal de boost requis pour les bibliothèques que vous voulez utiliser.

+0

avait aucune idée de cet outil existait, tout simplement génial, je upvote tripler cette réponse si je pouvais :) –

+0

Merci! Heureux je pourrais aider :) –

+1

L'idée d'asio devait toujours être disponible sous forme indépendante du coup de pouce. Et c'est. Google pour 'think asio' ou le blog des auteurs .. –

4

Il existe également une version non-boost Asio:

Asio est disponible en deux variantes: (non-Boost) Asio et Boost.Asio.

Voir:

http://think-async.com/Asio/

+1

Mais il faut encore une tonne d'en-têtes boost, même si ce n'est pas une partie de boost, j'ai aussi été trompé par le nom –

+0

Franchement, je ne voyez pas les en-têtes que vous visez .. Il a ses propres bits de fil .. –

+2

-1 Downvoting. Ce n'est pas vrai, ** asio requiert toujours des en-têtes uniquement pour booster les fichiers. ** La raison de la séparation était qu'Asio avait déjà un énorme espace de nom, et l'ajout de boost le rendait plus long. Asio est également mis à jour sur un calendrier de lancement différent de boost, et certaines personnes ressentent le besoin de mettre à jour asio plus souvent que boost. Enfin, utiliser ASIO sans boost :: bind() 'semble presque impossible! – unixman83

3

Le "asio non-boost" a ses propres morceaux de fil au lieu d'utiliser boost.thread, mais il faut encore boost.date_time, boost.array, coup de pouce. utility, boost.bind, boost.shared_ptr ...

Aucune version d'Asio ne peut fonctionner sans dépendance de Boost.

+0

La plupart des TR1 droite et la majorité des compilateurs le supportent déjà. Et la date-heure, je ne suis pas sûr s'il y avait une option pour l'exécuter .. Je ne me souviens pas. –

+0

vient de rappeler boost.system étant un pour se débarrasser de .. la mémoire me manque. –

1

Les versions ASIO récentes peuvent fonctionner sans Boost en mode autonome. Ce mode a probablement été activé par le support C++ 11 de la bibliothèque car il peut désormais utiliser des threads standards, des futures, etc. au lieu de leur implémentation Boost. Vous pouvez inclure simplement ASIO comme ci-dessous et profitez de:

#define ASIO_STANDALONE 
#include <asio.hpp> 
Questions connexes