STL icon indicating copy to clipboard operation
STL copied to clipboard

STL: Replace SFINAE with concepts in C++20-only code when all supported C++20 frontends support concepts

Open StephanTLavavej opened this issue 5 years ago • 2 comments
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.)

StephanTLavavej avatar Mar 12 '20 01:03 StephanTLavavej

I think more than 90% of C++20+-only codes are done after #4819.

Remaining parts:

  • [ ] tuple constructors: blocked on LLVM-59827, will be possibly unblocked after requiring Clang 18.
  • [ ] priority_queue deduction guides: blocked on CWG-2369, which is not yet implemented by MSVC and Clang.
  • [ ] zoned_time constructors: blocked on LWG-4067 (IMO), the constraints are weird currently.

Anything missing?

frederick-vs-ja avatar Jul 11 '24 23:07 frederick-vs-ja

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?

StephanTLavavej avatar Apr 20 '25 21:04 StephanTLavavej