Skip to content

Relax indirect callable constraints#1706

Open
jehelset wants to merge 1 commit intoericniebler:masterfrom
jehelset:relax-indirect-callable-concepts
Open

Relax indirect callable constraints#1706
jehelset wants to merge 1 commit intoericniebler:masterfrom
jehelset:relax-indirect-callable-concepts

Conversation

@jehelset
Copy link

@jehelset jehelset commented Jun 18, 2022

Introduces a new indirect-callable-trait called indirect_value_t to ensure correct value-type computation for algorithms that take projections. Instead of forming a reference to the invoke-result of the projection, it now computes the invoke-result of the projection with a reference to the iterators value-type.

Projections are discriminated from iterators by the existence of a nested typedef indirect_value_type.

More details here:
https://jehelset.gitlab.io/cpp/relaxing-ranges-just-a-smidge/

I was a bit unsure what was the idiomatic way to check for the existence of a nested member-type in ranges-v3.

Introduces a new indirect-callable-trait called 'indirect_value_t'
to ensure correct value-type computation for algorithms that take
projections. Instead of forming a reference to the invoke-result
of the projection, it now computes the invoke-result of the
projection with a reference to the iterators value-type.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant