Boost logo

Boost :

From: Gennaro Prota (gennaro_prota_at_[hidden])
Date: 2006-06-14 15:24:39


On Wed, 14 Jun 2006 14:10:21 -0500, Rene Rivera
<grafik.list_at_[hidden]> wrote:

>Gennaro Prota wrote:
>> [...]
>>
>> Considering, for instance, Comeau with _MSC_VER defined, you mean user
>> code would need to do:
>>
>> #if BOOST_WORKAROUND(BOOST_CXX_COMO, == ...) && \
>> (defined _MSC_VER && _MSC_VER == ...)
>>
>> ? That seems acceptable to me.
>
>Close... The second use would also use the standard macros. Hence:
>
>#if BOOST_WORKAROUND(BOOST_CXX_COMO, == BOOST_VERSION_NUMBER(?,?,?)) &&\
> BOOST_WORKAROUND(BOOST_CXX_MSVC, == BOOST_VERSION_NUMBER(?,?,?))

That's why I asked :) It was my understanding that *either*
BOOST_CXX_COMO is defined *or* BOOST_CXX_MSVC, so one couldn't do that
(BOOST_CXX_MSVC being only defined for the "true" VC++).

>
>In one of the previous discussions Dave mentioned that optimizing the
>BOOST_WORKAROUND macro to be more terse. For example:
>
>#if BOOST_WORKAROUND(BOOST_CXX_COMO,==,?,?,?) &&\
> BOOST_WORKAROUND(BOOST_CXX_MSVC,==,?,?,?)
>
>Or something like that :-) But that would be work to do after the core
>config changes are done.

Nice :) I'm inclined to go directly for that (actually the commas
could be eliminated as well, but that would require some preprocessing
magic which we already preferred not to have when deciding the first
implementation of BOOST_WORKAROUND(); see, for instance

 http://lists.boost.org/Archives/boost/2002/12/40843.php

)

--Gennaro.


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