|
Boost : |
Subject: Re: [boost] [system] Clang CI builds broken because of constexpr
From: Peter Dimov (lists_at_[hidden])
Date: 2018-07-20 11:16:40
Andrey Semashev wrote:
> Hi,
>
> I'm seeing these errors in Travis CI builds with Clang 3.8, 3.9, 4.0 and
> 5.0:
>
> ./boost/system/error_code.hpp:232:41: error: constexpr constructor never
> produces a constant expression [-Winvalid-constexpr]
> BOOST_SYSTEM_CONSTEXPR explicit std_category(
> boost::system::error_category const * pc ): pc_( pc )
> ^
> ./boost/system/error_code.hpp:232:41: note: non-constexpr constructor
> 'error_category' cannot be used in a constant expression
> /usr/bin/../lib/gcc/x86_64-linux-gnu/4.8/../../../../include/c++/4.8/system_error:69:5:
> note: declared here
> error_category() noexcept;
> ^
>
> I'm assuming this is because the compiler uses libstdc++ from gcc 4.8, in
> which error_category() is not marked constexpr. Can this be fixed somehow?
This should be fixed now in develop; will merge to master if Marshall gives
me permission.
(As a side note, Clang 3.8/3.9 don't quite work with libstdc++ 4.8 because
of the missing ::gets in C++14 mode, but boost/config.hpp contains a
workaround for that, as long as you include it before f.ex. <string>.)
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk