Michael J. Spencer | 359e09d | 2013-01-20 10:39:17 +0000 | [diff] [blame^] | 1 | C++11 |
| 2 | ===== |
| 3 | |
| 4 | lld is developed in a limited subset of C++11. Supported compilers are: |
| 5 | |
| 6 | * Clang 3.1+ |
| 7 | * g++ 4.6+ |
| 8 | * MSVC 2012+ |
| 9 | |
| 10 | Allowed Features |
| 11 | ---------------- |
| 12 | |
| 13 | Allowed features are based on what these compilers support. Features that are ok |
| 14 | to ommit (such as final or = delete) may be conditionally used via macros. |
| 15 | |
| 16 | * All of the C++11 standard library, including threading and atomics |
| 17 | * auto |
| 18 | * constexpr via LLVM_CONSTEXPR |
| 19 | * decltype |
| 20 | * deleted functions via LLVM_DELETED_FUNCTION |
| 21 | * Forward enum declarations |
| 22 | * Lambdas |
| 23 | * Local and unnamed types as template args |
| 24 | * Trailing return type |
| 25 | * nullptr |
| 26 | * >> instead of > > |
| 27 | * R-Value references excluding R-Value references for this |
| 28 | * static_assert |
| 29 | * Strongly typed enums |
| 30 | * Range based for loop |
| 31 | * final via LLVM_FINAL |
| 32 | |
| 33 | Note that some of these features may not be fullly or correctly implemented in |
| 34 | all compilers. Issues using these features should be added here as they are |
| 35 | encountered. |