| C++11 |
| ===== |
| |
| lld is developed in a limited subset of C++11. Supported compilers are: |
| |
| * Clang 3.1+ |
| * g++ 4.6+ |
| * MSVC 2012+ |
| |
| Allowed Features |
| ---------------- |
| |
| Allowed features are based on what these compilers support. Features that are ok |
| to omit (such as final or = delete) may be conditionally used via macros. |
| |
| * All of the C++11 standard library, including threading and atomics |
| * auto |
| * constexpr via LLVM_CONSTEXPR |
| * decltype |
| * deleted functions via LLVM_DELETED_FUNCTION |
| * Forward enum declarations |
| * Lambdas |
| * Local and unnamed types as template args |
| * Trailing return type |
| * nullptr |
| * >> instead of > > |
| * R-Value references excluding R-Value references for this |
| * static_assert |
| * Strongly typed enums |
| * Range based for loop |
| * final via LLVM_FINAL |
| |
| Note that some of these features may not be fully or correctly implemented in |
| all compilers. Issues using these features should be added here as they are |
| encountered. |