|
640 | 640 | \tcode{auto(begin(t))} |
641 | 641 | is a valid expression whose type models |
642 | 642 | \libconcept{input_or_output_iterator} |
643 | | - with overload resolution performed in a context in which |
644 | | - unqualified lookup for \tcode{begin} finds only the declarations |
645 | | -\begin{codeblock} |
646 | | -void begin(auto&) = delete; |
647 | | -void begin(const auto&) = delete; |
648 | | -\end{codeblock} |
| 643 | + where the meaning of \tcode{begin} is established as-if by performing |
| 644 | + argument-dependent lookup only\iref{basic.lookup.argdep}, |
649 | 645 | then \tcode{ranges::begin(E)} is expression-equivalent to |
650 | | - \tcode{auto(begin(t))} |
651 | | - with overload resolution performed in the above context. |
| 646 | + that expression. |
652 | 647 |
|
653 | 648 | \item |
654 | 649 | Otherwise, \tcode{ranges::begin(E)} is ill-formed. |
|
711 | 706 | \tcode{auto(end(t))} |
712 | 707 | is a valid expression whose type models |
713 | 708 | \tcode{\libconcept{sentinel_for}<iterator_t<T>>} |
714 | | - with overload resolution performed in a context in which |
715 | | - unqualified lookup for \tcode{end} finds only the declarations |
716 | | -\begin{codeblock} |
717 | | -void end(auto&) = delete; |
718 | | -void end(const auto&) = delete; |
719 | | -\end{codeblock} |
| 709 | + where the meaning of \tcode{end} is established as-if by performing |
| 710 | + argument-dependent lookup only\iref{basic.lookup.argdep}, |
720 | 711 | then \tcode{ranges::end(E)} is expression-equivalent to |
721 | | - \tcode{auto(end(t))} |
722 | | - with overload resolution performed in the above context. |
| 712 | + that expression. |
723 | 713 |
|
724 | 714 | \item |
725 | 715 | Otherwise, \tcode{ranges::end(E)} is ill-formed. |
|
833 | 823 | \tcode{auto(rbegin(t))} |
834 | 824 | is a valid expression whose type models |
835 | 825 | \libconcept{input_or_output_iterator} |
836 | | - with overload resolution performed in a context in which |
837 | | - unqualified lookup for \tcode{rbegin} finds only the declarations |
838 | | -\begin{codeblock} |
839 | | -void rbegin(auto&) = delete; |
840 | | -void rbegin(const auto&) = delete; |
841 | | -\end{codeblock} |
| 826 | + where the meaning of \tcode{rbegin} is established as-if by performing |
| 827 | + argument-dependent lookup only\iref{basic.lookup.argdep}, |
842 | 828 | then \tcode{ranges::rbegin(E)} is expression-equivalent to |
843 | | - \tcode{auto(rbegin(t))} |
844 | | - with overload resolution performed in the above context. |
| 829 | + that expression. |
845 | 830 |
|
846 | 831 | \item |
847 | 832 | Otherwise, if both \tcode{ranges::begin(t)} and \tcode{ranges::end(t)} |
|
902 | 887 | \tcode{auto(rend(t))} |
903 | 888 | is a valid expression whose type models |
904 | 889 | \tcode{\libconcept{sentinel_for}<decltype(ranges::rbegin(E))>} |
905 | | - with overload resolution performed in a context in which |
906 | | - unqualified lookup for \tcode{rend} finds only the declarations |
907 | | -\begin{codeblock} |
908 | | -void rend(auto&) = delete; |
909 | | -void rend(const auto&) = delete; |
910 | | -\end{codeblock} |
| 890 | + where the meaning of \tcode{rend} is established as-if by performing |
| 891 | + argument-dependent lookup only\iref{basic.lookup.argdep}, |
911 | 892 | then \tcode{ranges::rend(E)} is expression-equivalent to |
912 | | - \tcode{auto(rend(t))} |
913 | | - with overload resolution performed in the above context. |
| 893 | + that expression. |
914 | 894 |
|
915 | 895 | \item |
916 | 896 | Otherwise, if both \tcode{ranges::begin(t)} and \tcode{ranges::end(t)} |
|
1032 | 1012 | \tcode{disable_sized_range<remove_cv_t<T>>} is \tcode{false} and |
1033 | 1013 | \tcode{auto(size(t))} |
1034 | 1014 | is a valid expression of integer-like type |
1035 | | - with overload resolution performed in a context in which |
1036 | | - unqualified lookup for \tcode{size} finds only the declarations |
1037 | | -\begin{codeblock} |
1038 | | -void size(auto&) = delete; |
1039 | | -void size(const auto&) = delete; |
1040 | | -\end{codeblock} |
| 1015 | + where the meaning of \tcode{size} is established as-if by performing |
| 1016 | + argument-dependent lookup only\iref{basic.lookup.argdep}, |
1041 | 1017 | then \tcode{ranges::size(E)} is expression-equivalent to |
1042 | | - \tcode{auto(size(t))} |
1043 | | - with overload resolution performed in the above context. |
| 1018 | + that expression. |
1044 | 1019 |
|
1045 | 1020 | \item |
1046 | 1021 | Otherwise, if |
|
0 commit comments