Boost logo

Boost :

Subject: Re: [boost] [fusion] Compilation errors on Intel compiler (C++14)
From: Andrey Semashev (andrey.semashev_at_[hidden])
Date: 2016-12-06 14:09:13

On 12/06/16 20:39, Lee Clagett wrote:
> On Tue, 6 Dec 2016 19:46:03 +0300
> Andrey Semashev <andrey.semashev_at_[hidden]> wrote:
>> Hi,
>> I'm seeing compilation errors coming from Boost.Fusion headers on
>> Sandia-intel-17.0-c++14:
>> Notably, the same tests compile fine in C++11 mode on the same
>> compiler, which makes me think that is related to C++14 mode
>> specifically. Looking at the code, it seems the compiler makes
>> constexpr functions implicitly const-qualified even though it
>> shouldn't in C++14 mode, so it's likely a compiler bug. Still, is it
>> possible to add a workaround?
> I recently added a config macro BOOST_FUSION_DISABLE_VARIADIC_VECTOR
> which reverts completely to the C++03 fusion::vector code. This will
> affect fusion::tuple also. Unfortunately I do not think it will solve
> this particular issue - one of the files is used by both fusion::vector
> versions.

I think reverting Boost.Fusion to C++03 is an overkill, given that in
C++11 mode all tests are green. So at least C++11 is supported well enough.

> Is it possible to override BOOST_CXX14_CONSTEXPR somehow?

Only if you define and use your own similar macro in Boost.Fusion. Or if
we decide that C++14 constexpr is broken enough in the compiler to
warrant the change in Boost.Config. The compiler passes all Boost.Config
tests[1] in C++14 mode, so I guess it supports C++14 mostly ok.


Boost list run by bdawes at, gregod at, cpdaniel at, john at