STL
STL copied to clipboard
STL: Replace SFINAE with concepts in C++20-only code when all supported C++20 frontends support concepts
trafficstars
See #395. After that simple, mechanical change, we should audit all C++20-only code and replace SFINAE usage with concepts where possible. (#309 is an example where concepts should be used.)
I think more than 90% of C++20+-only codes are done after #4819.
Remaining parts:
- [ ]
tupleconstructors: blocked on LLVM-59827, will be possibly unblocked after requiring Clang 18. - [ ]
priority_queuededuction guides: blocked on CWG-2369, which is not yet implemented by MSVC and Clang. - [ ]
zoned_timeconstructors: blocked on LWG-4067 (IMO), the constraints are weird currently.
Anything missing?
For priority_queue, I've filed VSO-2452930 "Implement CWG-2369: Ordering between constraints and substitution" for MSVC, and https://github.com/llvm/llvm-project/pull/122423 is in progress for Clang.
https://github.com/llvm/llvm-project/issues/59827 has been merged and we're requiring Clang 19 now - is tuple unblocked?