Andrey Semashev wrote:
On 2/6/23 16:40, Peter Dimov via Boost wrote:
Boris Kolpackov wrote:
IME, this is an unreliable criterion. For example, based on this MSVC 14.3 (VS2015) would be a fair game but in practice its constexpr support is so buggy/incomplete that it's pretty much unusable.
On the contrary, it's a highly reliable criterion. It allows you to write "constexpr" instead of "BOOST_CONSTEXPR" without the compiler issuing an immediate error.
I think, the point is that while you can write "constexpr", the compiler will likely fail to compile that code in most/all real world contexts. The question is what do we, Boost maintainers, do when users come complaining. I think, listing the minimum compiler versions we support would be useful.
If a compiler issues an error on the mere appearance of the keyword "constexpr", or "noexcept", or "=default", it's not a C++11 compiler. This is not rocket science. Yes, a compiler may support the constexpr keyword, but have problems with complex uses. This is not a good criterion for banning it Boost-wide, because "complex uses" vary. One library may not be able to support it, another might. If you insist on not considering msvc-14.0 a C++11 compiler for your libraries, that's your right (and problem.) It has nothing to do with whether it's considered a supported C++11 compiler for the purposes of the announcement.