Boost logo

Boost :

Subject: Re: [boost] Regression testing Clang/LLVM with VC14.
From: Niall Douglas (s_sourceforge_at_[hidden])
Date: 2016-04-09 18:45:46


On 9 Apr 2016 at 16:49, Stephan T. Lavavej wrote:

> [Niall Douglas]
> > the fact we finally can write fully standards conforming C++ 14 (sans preprocessor) for the MSVC target.
>
> VC 2015 Update 2 doesn't support:
>
> * C++98: Two-phase name lookup.
> * C++98: Dynamic exception specifications (deprecated in C++11, and likely to be removed in a future Standard; we don't expect to ever implement this).
> * C++11: Expression SFINAE support is Partial. With enough workarounds, what's supported is sufficient for result_of/function.
> * C++11: C99 preprocessor rules.
> * C++14: Extended constexpr.
> * C++14: NSDMIs for aggregates.
>
> Our STL is C++14 complete and was current with N4567 (pre-Jax) - with
> minor exceptions as described by
> https://blogs.msdn.microsoft.com/vcblog/2016/01/22/vs-2015-update-2s-stl-
> is-c17-so-far-feature-complete/ (e.g. without extended constexpr in the
> compiler, min()/max()/minmax() for initializer_list can't be constexpr).

For me the big wins for using winclang with MSVC target over MSVC are
(in order of priority):

1. Sometimes when MSVC gives very unhepful error messages, winclang
will tell me what exactly is wrong. Sometimes it's the other way
round too, either way quickly switching toolset when the errors or
warnings are being ambiguous is a big time saver.

2. I can test right now my generalised constexpr paths in Windows
only code rather than typing and hoping I'm right when MSVC
eventually implements C++ 14 constexpr.

For the rest: two phase lookup and NSDMIs for aggregates is easily
worked around; the lacking preprocessor I've only ever really cursed
maybe a handful of times in my career; full fat Expression SFINAE
really would be very handy to have, but I can make do for now.

My single biggest feature request not on the roadmap for VS2017 is
the ability to parallel compile code with clang and MSVC
simultaneously please with a coalesced errors and warnings view. That
would be an *amazing* productivity aid.

Niall

-- 
ned Productions Limited Consulting
http://www.nedproductions.biz/ 
http://ie.linkedin.com/in/nialldouglas/



Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk