Boost logo

Boost :

Subject: Re: [boost] [thread] Can't use boost/thread/mutex.hpp without boost_system
From: Vicente J. Botet Escriba (vicente.botet_at_[hidden])
Date: 2012-01-22 08:01:25


Le 22/01/12 13:41, Mathias Gaunard a écrit :
> On 01/22/2012 12:38 AM, Vicente J. Botet Escriba wrote:
>> Le 22/01/12 00:23, Mathias Gaunard a écrit :
>>> On 01/21/2012 11:29 PM, Vicente J. Botet Escriba wrote:
>>>
>>>> Ihave found that a little patch to Boost.System could make it
>>>> header-only. It seems that Beman has already tried it, but there are
>>>> some errors. Here it is the patch
>>>>
>>>> device3-1:trunk viboes$ svn diff boost/system libs/system
>>>> Index: boost/system/error_code.hpp
>>>> ===================================================================
>>>> --- boost/system/error_code.hpp (revision 76354)
>>>> +++ boost/system/error_code.hpp (working copy)
>>>> @@ -504,7 +504,7 @@
>>>>
>>>> #include <boost/config/abi_suffix.hpp> // pops abi_prefix.hpp pragmas
>>>>
>>>> -# ifdef BOOST_ERROR_CODE_HEADER_ONLY
>>>> +# ifdef BOOST_SYSTEM_INLINED
>>>> # include <boost/../libs/system/src/error_code.cpp>
>>>> # endif
>>>
>>> Doesn't that still enable autolink with MSVC?
>>>
>> I don't think so. I could be missing something, could explain why do you
>> think that?
>
> <boost/system/config.hpp> includes <boost/config/auto_link.hpp>
> regardless or whether BOOST_SYSTEM_INLINED is defined or not.
>
>
The code I can see contains

#ifdef BOOST_SYSTEM_INLINED
#define BOOST_SYSTEM_INLINE inline
#define BOOST_SYSTEM_DECL

#else
#define BOOST_SYSTEM_INLINE
...
//
// And include the header that does the work:
//
#include <boost/config/auto_link.hpp>
#endif // auto-linking disabled

#endif // BOOST_SYSTEM_INLINED

The inclusion of boost/config/auto_link.hpp is on the else part, so
included only when Boost.System will not be inlined.

Vicente


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk