Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement P2997R1 Removing The Common Reference Requirement From The Indirectly Invocable Concepts #4816

Merged
merged 4 commits into from
Jul 11, 2024

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
39 checks passed
@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