| libc++ is an implementation of the C++ standard library targeting C++11 or later. |
| In C++03, the library implements the C++11 standard using C++11 language extensions provided |
| This document tracks the C++11 extensions libc++ requires, the C++11 extensions it provides, |
| and how to write minimal C++11 inside libc++. |
| Required C++11 Compiler Extensions |
| ================================== |
| Clang provides a large subset of C++11 in C++03 as an extension. The features |
| libc++ expects Clang to provide are: |
| * RValue references and perfect forwarding. |
| * defaulted and deleted Functions. |
| * reference qualified Functions |
| There are also features that Clang *does not* provide as an extension in C++03 |
| * ``constexpr`` and ``noexcept`` |
| * ``>>`` without a space. |
| Provided C++11 Library Extensions |
| ================================= |
| The C++11 extensions libc++ provides in C++03 are currently undergoing change. Existing extensions |
| may be removed in the future. New users are strongly discouraged depending on these extension |
| This section will be updated once the libc++ developer community has further discussed the |
| future of C++03 with libc++. |