"libc++" C++ Standard Library

libc++ is a new implementation of the C++ standard library, targeting C++0X.

All of the code in libc++ is available under the standard LLVM License, a "BSD-style" license.

Features and Goals

Why a new C++ Standard Library for C++'0x?

After its initial introduction, many people have asked "why start a new library instead of contributing to an existing library?" (like Apache's libstdcxx, GNU's libstdc++, STLport, etc). There are many contributing reasons, but some of the major ones are:

Platform Support

libc++ is known to work on the following platforms, using g++-4.2 and clang (lack of C++0X language support disables some functionality).

Current Status

libc++ is still under development. It has about 85% of N3092 implemented/tested. C++'98 support is fully featured, and most of C++'0x support is as well. The only major missing pieces of C++'0x support are <future> and <regex>, and parts of <random>.

libc++ is currently dependent upon a separate library for the low-level ABI compatibility with gcc. As a workaround it can be linked against gcc's libstdc++.

Here is a by-chapter breakdown of what is passing tests and what isn't. This chart is currently based on testing against g++-4.4.0 with -std=c++0x.

Get it and get involved!

To check out the code, use:

To run the libc++ test suit (recommended):

Send discussions to the (clang mailing list).