Boost logo

Boost :

Subject: Re: [boost] [clang] How to use CLang for Windows?
From: Chandler Carruth (chandlerc_at_[hidden])
Date: 2013-09-29 22:15:17


On Sun, Sep 29, 2013 at 7:36 PM, Edward Diener <eldiener_at_[hidden]>wrote:

> The fix that I had made to Boost PP config.h, which I was asked to remove
> by Beman Dawes, explicitly detects that when _MSC_VER is defined and
> __clang__ is defined Boost PP should not treat the compiler as VC++. In the
> Boost PP config.h file prior to my fix if _MSC_VER is defined then the
> compiler is treated as VC++.
>
> There are other cases in the Boost header files that assume that when
> _MSC_VER is defined the compiler is VC++ ( see my thread "Boost and clang
> under Windows" ) without checking if it could be another compiler emulating
> VC++. I had proposed in the aforementioned thread that I was willing to
> work on changing such code in other Boost libraries so that it did the
> correct thing when both _MSC_VER and __clang__ were defined, but the
> reaction of not only Mr. Dawes and others was that I should not do that so
> I desisted.
>

Our hope is that generally speaking, you shouldn't need to special case
Clang -- it should be compatible. When it isn't compatible, ideally we'd
like to fix the bugs so that it is compatible.

There may be a few cases where the code that Boost is using for VC++ is
working around (and in the process relying on) really excessive quirks or
bugs, and there it may be more pragmatic to just switch to more
standards-based code path by checking for Clang explicitly. In other cases,
VC++ may not have access to features that it makes sense to enable by
detecting Clang.

If there are questions about a specific case, feel free to reach out to the
Clang developers with either a bug report or email, and they can likely
help.


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