Boost logo

Boost :

Subject: Re: [boost] BOOST_NO_CXX11_CONSTEXPR and msvc-14.0
From: Marcel Raad (raad_at_[hidden])
Date: 2015-07-22 17:22:16

Beman Dawes <bdawes <at>> writes:

> On Tue, Jul 21, 2015 at 4:48 PM, Peter Dimov <lists <at>>
> > I see that BOOST_NO_CXX11_CONSTEXPR is no longer being defined for
> > msvc-14.0. Even the RTM version has spotty support for constexpr though;
> > the techniques in my metaprogramming article, for example, don't work.
> Given that constexpr was still undergoing development between RC and RTM,
> it isn't surprising that there are still problems. Are the problems so
> serious we should continue to define BOOST_NO_CXX11_CONSTEXPR?
> Remember that the usual criteria for defining a BOOST_NO_WHATEVER macro is
> that the problem impacts Boost library code.

Unfortunately it seems this is the case here, TypeErasure's regression
tests don't compile with constexpr support enabled:
e:\boost\boost/type_erasure/detail/vtable.hpp(169): error C4579: '[...]' is
not yet implemented; static member will remain uninitialized at runtime but
use in constant-expressions is supported

There's also this compile error all over the place, which seems to be a bug
in Boost.Chrono rather than in MSVC:
e:\boost\boost/chrono/duration.hpp(440): error C2476: 'constexpr'
constructor does not initialize all members
note: 'boost::chrono::duration<__int64,boost::ratio<0x01,0x071>>::rep_' was
not initialized by the constructor

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