2009-04-08 9 views
6

Sé que hay una versión de ASIO que no está incluida en el espacio de nombres de Boost, pero incluso entonces ASIO depende de Boost, pero me pregunto si hay una forma de que ASIO funcione sin dependencias en Boost (porque no puedo incluir Boost en el proyecto, por muchas razones).¿Hay alguna manera de que Asio funcione sin Boost?

Respuesta

10

No, no lo creo. ASIO ha estado usando boost por el tiempo que he oído hablar de él. Creo que están muy interconectados. Pero puede estar interesado en una herramienta, bcp, que le permite extraer el subconjunto mínimo de impulso requerido para las bibliotecas que desea utilizar.

+0

no tenía ni idea existía tal herramienta, simplemente impresionante, me Triple upvote esta respuesta si pudiera :) –

+0

Gracias! Me alegro de poder ayudar :) –

+1

La idea de asio siempre debe estar disponible en forma independiente del impulso. Y es. Google para 'think asio' o el blog de los autores ... –

4

También hay una versión no impulso de Asio:

Asio viene en dos variantes: (no-Boost) Asio y Boost.Asio.

Ver:

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

+1

Pero todavía requiere una tonelada de encabezados de impulso, aunque no es parte de impulso, también me engañó el nombre –

+0

Francamente yo no ve qué encabezados está apuntando. Tiene sus propios bits de hilo. –

+2

-1 Vástago hacia abajo. Esto no es cierto, ** asio todavía requiere archivos de impulso solo de encabezado. ** El motivo de la separación se debe a que asio ya tiene un gran espacio de nombres, y agregar impulso solo lo hace más extenso. Además, asio se actualiza en un horario de lanzamiento diferente al boost, y algunas personas sienten la necesidad de actualizar asio con más frecuencia que impulsar. Finalmente, ¡utilizar ASIO sin 'boost :: bind()' parece casi imposible! – unixman83

3

El "no-asio impulso" tiene sus propias brocas de rosca en lugar de utilizar boost.thread, pero todavía requiere boost.date_time, boost.array, impulso. utilidad, boost.bind, boost.shared_ptr ...

No existe una versión de Asio que pueda funcionar sin ninguna dependencia de Boost.

+0

La mayor parte del TR1 correcto y la mayoría de los compiladores ya lo admiten. Y la fecha y hora no estoy seguro de si había una opción para ejecutarla ... no puedo recordar. –

+0

acaba de recordar que boost.system es uno para deshacerse de .. la memoria me falla. –

1

Las versiones ASIO recientes pueden funcionar sin Boost en un modo independiente. Este modo probablemente fue habilitado por el soporte C++ 11 de la biblioteca porque ahora puede usar hilos estándar, futuros, etc. en lugar de su implementación de Boost. Simplemente puede incluir ASIO, como a continuación y disfrutar:

#define ASIO_STANDALONE 
#include <asio.hpp> 
Cuestiones relacionadas