Boost logo

Boost :

Subject: Re: [boost] [build] How to use with clang on windows?
From: degski (degski_at_[hidden])
Date: 2016-03-26 10:38:21


Hi Edward,

First of, thanks for your elaborate answer, explaining the extent of the
issues.

The clang build which targets VC++ on Windows, as opposed to the clang
> build which targets mingw(-64)/gcc on Windows, 'emulates' the non-standard
> VC++ preprocessor so it can compile Windows API headers and VC++ header
> files.

Do you imply here that the preprocessors of both Clang/LLVM and Clang/C2
work exactly the same way?

For all I know clang targeting VC++ may indeed work with those libraries if
> the libraries pretend that clang targeting VC++ is VC++ for the intention
> of those libraries.
>

Isn't that the way to go then, to make boost act as if Clang/LLVM is VC14.
When using Clang/LLVM with the M$-STL there are no issues, so it must do a
reasonable job AFAICS. Clang/LLVM definitely flags quite a few of the
non-confirming issues your own code might have, which implies that the
VC14-STL does not have those kind of issues anymore. Getting some of my
older projects to compile (with Clang) at all is quite a hassle (looks like
a different C++).

> I made a suggestion to the clang developers that there 'emulation' of the
> non-standard VC++ preprocessor in their clang targeting VC++ implementation
> should be configurable so that when the compiler is not dealing with
> Windows API and VC++ header files it can be turned off and clang would then
> be the same C++ standard conforming preprocessor as it is with clang
> targeting mingw(-64)/gcc and clang on Linux and on the Mac. The suggestion
> was rejected. After that my interest in running clang targeting VC++ on
> Windows ended.
>

Again, why fight the Clang developers, go with the flow, Clang/LLVM wants
to emulate VC++ perfectly, fine, should make your life easier no?

> ...which 'emulates' the VC++ preprocessor in various unknown ways...
>

With the above position taken, those unknown ways would then hopefully be
identified and emulated by the Clang team... M$ is in the loop as well, as
far I understand, so it's not exactly reverse-engineering.

Have a good day,

degski

-- 
(\___/)
(+'.'+)
(")_(")
This is Bunny. Copy and paste Bunny into your
signature to help him gain world domination!

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