
On 5 Feb 2011, at 19:46, Bryce Lelbach (wash) wrote:
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
On Sat, 5 Feb 2011 10:26:20 -0800 Doug Gregor <doug.gregor@gmail.com> wrote:
Clang itself is just now getting some C++0x support. It has rvalue references, variadic templates, decltype, static_assert, and some other goodies. We think it's in decent shape, but obviously we need more testing coverage.
On Darwin. On Linux, clang C++0x support is a moot point because clang-linux uses the GNU stdlib. Also, according to the regression tests, clang + libc++ can't compile most of Boost.
I started those tests just a day ago. I managed to mess up both the user-config.jam, and stopping the results getting submitted to the official boost test page. Hopefully more reasonable tests should appear in the next couple of days. Out of interest, how should I best add c++0x to clang? At the moment, I am just passing -std=c++0x as a compileflag.
Part of the problem here is that GNU seems to make a policy of changing working parts of their C++(03/99) stdlib to use C++0x features that only G++ supports, without leaving the old, working C++03/C++99 code in place (the <iomanip> header change from 4.4 to 4.5 is an excellent example of this). Given that both Apple and Intel are targets of GNU's political attacks these days, and given that both Clang (an Apple supported compiler) and the intel compiler use the GNU stdlib on Linux, I suspect that GNU is intentionally trying to poison intel-linux and clang-linux.
I really wouldn't make a claim that strong. What is true is that each version of the libstdc++ is designed to run with exactly one version of g++. It uses the best features of that version of the compiler. libstdc++ is treated as just a sub-part of the g++ compiler.