Clang 20.1.0 Release Notes - Clang 20.1.0 Documentation
Clang 20.1.0 Release Notes - Clang 20.1.0 Documentation
From the release notes:
- Allow single element access of GCC vector/ext_vector_type object to be constant expression. Supports the V.xyzw syntax and other tidbits as seen in OpenCL. Selecting multiple elements is left as a future work.
- Implement CWG1815. Support lifetime extension of temporary created by aggregate initialization using a default member initializer.
- Accept C++26 user-defined static_assert messages in C++11 as an extension.
- Add __builtin_elementwise_popcount builtin for integer types only.
- Add __builtin_elementwise_fmod builtin for floating point types only.
- Add __builtin_elementwise_minimum and __builtin_elementwise_maximum builtin for floating point types only.
- The builtin type alias __builtin_common_type has been added to improve the performance of std::common_type.
C++2c Feature Support
- Add __builtin_is_virtual_base_of intrinsic, which supports P2985R0 A type trait for detecting virtual base classes
- Implemented P2893R3 Variadic Friends
- Implemented P2747R2 constexpr placement new.
- Added the __builtin_is_within_lifetime builtin, which supports P2641R4 Checking if a union alternative is active
- Implemented P3176R1 The Oxford variadic comma
C++23 Feature Support
- Removed the restriction to literal types in constexpr functions in C++23 mode.
- Extend lifetime of temporaries in mem-default-init for P2718R0. Clang now fully supports P2718R0 Lifetime extension in range-based for loops.
- __cpp_explicit_this_parameter is now defined. (#82780)
- Add __builtin_is_implicit_lifetime intrinsic, which supports P2674R1 A trait for implicit lifetime types
- Add support for P2280R4 Using unknown pointers and references in constant expressions. (#63139)
C++20 Feature Support
- Implemented module level lookup for C++20 modules. (#90154)