<ranges>: Make views ADL-proof
#4389
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Towards #140. Follows up #4334.
This PR adds a bunch of contrived ranges for test that show almost all occurrences of
_Fake_copy_init,_Adl_verify_range, and_As_lvaluein<ranges>need to be qualified.The only exception looks superfluous to me:
STL/stl/inc/ranges
Lines 3911 to 3912 in 7d5d8c3
IIUC
_Left._Outerand_Right._Outerareforward_iterators here, and thusdecltype(_Left._Outer == _Right._Outer)should already beboolean-testable, and_Left._Innerand_Right._Innerare_Defaultaboxes for whichoperator==always returnsbool.As a result,
_Left._Outer == _Right._Outer && _Left._Inner == _Right._Innershould always be aboolprvalue (otherwise, the program is already ill-formed, possibly no diagnostic required), and we should simply drop_Fake_copy_init<bool>()here.