2009-04-08 10 views
6

So che esiste una versione di ASIO che non è inclusa nello spazio dei nomi Boost, ma anche in questo caso ASIO dipende da Boost, ma mi chiedo se c'è un modo per far funzionare ASIO senza dipendenze su Boost (perché non posso includere Boost nel progetto, per troppe ragioni).C'è un modo per far funzionare Asio senza Boost?

risposta

10

No, non ci credo. ASIO ha utilizzato la spinta per tutto il tempo che ne ho sentito parlare. Penso che siano molto interconnessi. Ma potresti essere interessato a uno strumento, bcp, che ti consente di estrarre il sottoinsieme minimo di boost richiesto per le librerie che desideri utilizzare.

+0

avevo idea di un tale strumento esiste, semplicemente impressionante, mi piacerebbe triplico upvote questa risposta se potessi :) –

+0

Grazie! Felice di poter aiutare :) –

+1

L'idea di asio doveva essere sempre disponibile in forma indipendente da boost. E questo è. Google per 'think asio' o il blog degli autori .. –

4

C'è anche una versione non-boost di Asio:

Asio è disponibile in due varianti: (non-Boost) Asio e Boost.Asio.

Vedi:

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

+1

Ma richiede ancora un sacco di headers boost, anche se non fa parte del boost, sono stato anche ingannato dal nome –

+0

Frankly I non vedo quali intestazioni stai puntando .. Ha i suoi bit di thread .. –

+2

-1 Downvoting. Questo non è vero, ** asio richiede ancora header boost solo file. ** Il motivo della separazione era perché asio ha già un enorme spazio dei nomi, e aggiungere boost lo rende solo più lungo. Inoltre, asio viene aggiornato su un programma di rilascio diverso rispetto all'aumento e alcune persone sentono la necessità di aggiornare asio più frequentemente che aumentare. Infine, usare ASIO senza 'boost :: bind()' sembra quasi impossibile! – unixman83

3

La "non-boost asio" ha i suoi bit filetto invece di utilizzare boost.thread, ma richiede ancora boost.date_time, boost.array, spinta. utility, boost.bind, boost.shared_ptr ...

Non esiste alcuna versione di Asio che possa funzionare senza alcuna dipendenza Boost.

+0

La maggior parte della parte TR1 e la maggior parte dei compilatori lo supportano già. E l'ora della data non sono sicuro se ci fosse un'opzione per farlo funzionare .. non posso ricordare. –

+0

appena richiamato boost.system è uno di cui sbarazzarsi .. la memoria mi fallisce. –

1

Le versioni ASIO recenti possono funzionare senza Boost in modalità standalone. Questa modalità è stata probabilmente abilitata dal supporto C++ 11 della libreria perché ora può utilizzare thread standard, future, ecc. Anziché l'implementazione Boost. Si può semplicemente includere ASIO come qui di seguito e godere:

#define ASIO_STANDALONE 
#include <asio.hpp> 
Problemi correlati