Вышла новая версия LLVM. Проект LLVM включает в себя оптимизатор и кодогенератор с LLVM IR во многие процессорные архитектуры, который используется многими проектами для реализации своих языков программирования, а также:
- компилятор C/C++/Objective-C (Clang);
- компилятор Fortran (Flang);
- cтандартную библиотеку для С++ (libc++);
- отладчик LLDB;
- линкер LLD;
- среду исполнения (runtime) для OpenMP;
- некоторые другие компоненты.
Код LLVM распространяется по лицензии Apache 2.0 License with LLVM exceptions.
Ниже перечислены новые возможности стандарта С++, реализованные в этой версии LLVM для Clang/libc++.
libc++:
- P2499R0 - string_view range constructor should be explicit
- P2417R2 - A more constexpr bitset
- P2445R1 - std::forward_like
- P2273R3 - Making std::unique_ptr constexpr
- P0591R4 - Utility functions to implement uses-allocator construction
- P2291R3 - Add Constexpr Modifiers to Functions to_chars and from_chars for Integral Types in Header
- P0220R1 - Adopt Library Fundamentals V1 TS Components for C++17
- P0482R6 - char8_t: A type for UTF-8 characters and strings
- P2438R2 - std::string::substr() &&
- P0600R1 - nodiscard in the library
- P0339R6 - polymorphic_allocator<> as a vocabulary type
- P1169R4 - static operator()
- P0415R1 - constexpr for std::complex
- P1208R6 - std::source_location
- P0323R12 - std::expected
- P1035R7 - Input Range Adaptors
- P2325R3 - Views should not be required to be default constructible
- P2446R2 - views::as_rvalue
- P1020R1 - Smart pointer creation with default initialization
- P2210R2 - Superior String Splitting
- P2286R8 - Formatting Ranges
Clang:
- P0857R0 Wording for “functionality gaps in constraints”
- P2092R0 Disambiguating Nested-Requirements
- P2113R0 Proposed resolution for 2019 comment CA 112
- P0634R3 typename optional in more contexts
- P1381R1 P1091R3 Structured binding extensions
- P2468R2 The Equality Operator You Are Looking For
- P2324R2 Labels at the end of compound statements
- P1169R4 static operator()
- P2513R3 char8_t Compatibility and Portability Fix
- P2589R1 static operator[]
- P2647R1 Permitting static constexpr variables in constexpr functions
>>> Подробности