Boost logo

Boost-Build :

Subject: Re: [Boost-build] [requires] cxx11_variadic_macros
From: Edward Diener (eldiener_at_[hidden])
Date: 2015-10-13 19:45:05


On 10/13/2015 11:41 AM, Raffi Enficiaud wrote:
> Hi all,
>
> I have the following requirement on my bjam:
>
> requirements_boost_test = [ requires cxx11_variadic_macros ] ;
>
> When I compile it on clang/OSX, in C++03 mode, I have this:
>
> ../../../b2
>
> - Boost.Config Feature Check: cxx11_variadic_macros : yes
> - Boost.Config Feature Check: cxx11_decltype : no
> - Boost.Config Feature Check: cxx11_hdr_random : yes
> - Boost.Config Feature Check: cxx11_hdr_tuple : no
> - Boost.Config Feature Check: cxx11_hdr_initializer_list : no
>
>
> When I compile it on clang6/OSX, in C++11 mode, I have this
>
> ../../../b2 cxxflags="-stdlib=libc++ -std=c++11"
> linkflags="-stdlib=libc++"
>
> - Boost.Config Feature Check: cxx11_variadic_macros : yes
> - Boost.Config Feature Check: cxx11_decltype : yes
> - Boost.Config Feature Check: cxx11_hdr_random : yes
> - Boost.Config Feature Check: cxx11_hdr_tuple : yes
> - Boost.Config Feature Check: cxx11_hdr_initializer_list : yes
>
>
> The cxx11_variadic_macros is active for both configuration, but the
> variadic macros are not available with the "b2" toolset configuration.

What exactly do you mean when you say 'the
variadic macros are not available with the "b2" toolset configuration' ?

Variadic macro support in Boost PP ( and Boost VMD ), and libraries
which use Boost PP, is not determined by Boost config. Instead it is
determined internally based on the compiler and/or level of c++11
support. In general compiling with c++11 support will turn on variadic
macro support in Boost PP for most compilers, but both VC++ 8 on up and
clang have variadic macro support turned on automatically in Boost PP.
You can also force variadic macro support in Boost PP by defining
BOOST_PP_VARIADICS to 1.

Of course if you are not talking about variadic macros in Boost PP the
preceding paragraph does not help you.

>
> When it says cxx11_variadic_macros, I believe it does not try to compile
> with C++11 mode.
>
> How would I detect properly the support for variadic macros?


Boost-Build list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk