I noticed that <boost/asio.hpp> and <boost/asio/io_service.hpp> both include windows specific header files through some level of indirection. I know this because it is causing problems with wxWidgets depending on the order of my include directives. I was considering using a mediator/pimpl of some sort to keep the asio includes limited to a very confined translation unit, but this would complicate the usage of ASIO in general. I have a class that owns an io_service object by-value in its header.

Anyone have any suggestions to reduce the amount of namespace polluting ASIO does? I really blame this on the Windows API, since ASIO is just as limited by it as I am. Thanks in advance.

---------
Robert Dailey