Skip to content

Conversation

frederick-vs-ja
Copy link
Contributor

@frederick-vs-ja frederick-vs-ja commented Jul 7, 2024

As a DR against C++20. Fixes #4771.

Blocked libcxx tests:

  • std/iterators/iterator.requirements/indirectcallable/indirectinvocable/indirect_binary_predicate.compile.pass.cpp
  • std/iterators/iterator.requirements/indirectcallable/indirectinvocable/indirect_equivalence_relation.compile.pass.cpp
  • std/iterators/iterator.requirements/indirectcallable/indirectinvocable/indirect_strict_weak_order.compile.pass.cpp
  • std/iterators/iterator.requirements/indirectcallable/indirectinvocable/indirect_unary_predicate.compile.pass.cpp
  • std/iterators/iterator.requirements/indirectcallable/indirectinvocable/indirectly_regular_unary_invocable.compile.pass.cpp
  • std/iterators/iterator.requirements/indirectcallable/indirectinvocable/indirectly_unary_invocable.compile.pass.cpp

@frederick-vs-ja frederick-vs-ja requested a review from a team as a code owner July 7, 2024 07:52
- `std/iterators/iterator.requirements/indirectcallable/indirectinvocable/indirect_binary_predicate.compile.pass.cpp`
- `std/iterators/iterator.requirements/indirectcallable/indirectinvocable/indirect_equivalence_relation.compile.pass.cpp`
- `std/iterators/iterator.requirements/indirectcallable/indirectinvocable/indirect_strict_weak_order.compile.pass.cpp`
- `std/iterators/iterator.requirements/indirectcallable/indirectinvocable/indirect_unary_predicate.compile.pass.cpp`
- `std/iterators/iterator.requirements/indirectcallable/indirectinvocable/indirectly_regular_unary_invocable.compile.pass.cpp`
- `std/iterators/iterator.requirements/indirectcallable/indirectinvocable/indirectly_unary_invocable.compile.pass.cpp`
@StephanTLavavej StephanTLavavej added ranges C++20/23 ranges cxx26 C++26 feature labels Jul 8, 2024
@StephanTLavavej StephanTLavavej self-assigned this Jul 8, 2024
Comment on lines 1840 to 1845
#if _HAS_CXX23
#define __cpp_lib_ranges 202302L // P2609R3 Relaxing Ranges Just A Smidge
// P2997R1 Removing The Common Reference Requirement From The Indirectly Invocable Concepts
#define __cpp_lib_ranges 202406L
#elif _HAS_CXX20
#define __cpp_lib_ranges 202110L // P2415R2 What Is A view?
#endif
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No change requested: I forgot what was going on here and had to look it up. The divergence between feature implementation and feature-test macros is intentional, see #3486 (comment) . This change continues the existing pattern, so it's correct.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I filed LWG-3931 for this, but haven't come up with a good resolution.

@StephanTLavavej StephanTLavavej removed their assignment Jul 8, 2024
@StephanTLavavej StephanTLavavej self-assigned this Jul 10, 2024
@StephanTLavavej
Copy link
Member

I'm mirroring this to the MSVC-internal repo - please notify me if any further changes are pushed.

@StephanTLavavej StephanTLavavej merged commit 0207572 into microsoft:main Jul 11, 2024
@StephanTLavavej
Copy link
Member

Thanks for implementing this de facto DR! 🚫 🧑‍⚖️ 😹

@frederick-vs-ja frederick-vs-ja deleted the p2997r1 branch July 11, 2024 23:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
cxx26 C++26 feature ranges C++20/23 ranges
Projects
Archived in project
Development

Successfully merging this pull request may close these issues.

P2997R1 Removing The Common Reference Requirement From The Indirectly Invocable Concepts
2 participants