Beman Dawes
On Tue, Jul 21, 2015 at 4:48 PM, Peter Dimov
wrote:
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 e:\boost\boost/chrono/duration.hpp(433): note: 'boost::chrono::duration<__int64,boost::ratio<0x01,0x071>>::rep_' was not initialized by the constructor