|
5898 | 5898 | except that the evaluations of \tcode{E} and \tcode{F} |
5899 | 5899 | are indeterminately sequenced. |
5900 | 5900 |
|
| 5901 | +\item |
| 5902 | +Otherwise, if \tcode{T} is a specialization of |
| 5903 | +\tcode{optional} and \tcode{T} models \libconcept{view}, then |
| 5904 | +\tcode{(static_cast<D>(F) == D() ? ((void)E, T()) : \exposidnc{decay-copy}(E))}. |
5901 | 5905 | \item |
5902 | 5906 | Otherwise, if \tcode{T} models |
5903 | 5907 | \libconcept{random_access_range} and \libconcept{sized_range} |
|
6380 | 6384 | then \tcode{((void)F, \exposidnc{decay-copy}(E))}, |
6381 | 6385 | except that the evaluations of \tcode{E} and \tcode{F} |
6382 | 6386 | are indeterminately sequenced. |
6383 | | - |
| 6387 | +\item |
| 6388 | +Otherwise, if \tcode{T} is a specialization of \tcode{optional} |
| 6389 | +and \tcode{T} models \libconcept{view}, then |
| 6390 | +\tcode{(static_cast<D>(F) == D() ? \exposidnc{decay-copy}(E) : ((void)E, T()))}. |
6384 | 6391 | \item |
6385 | 6392 | Otherwise, if \tcode{T} models |
6386 | 6393 | \libconcept{random_access_range} and \libconcept{sized_range} |
|
9909 | 9916 | If the type of \tcode{E} is |
9910 | 9917 | a (possibly cv-qualified) specialization of \tcode{reverse_view}, |
9911 | 9918 | then \tcode{E.base()}. |
| 9919 | +\item |
| 9920 | + Otherwise, if \tcode{E} is specialization of \tcode{optional} and \tcode{E} |
| 9921 | + models \libconcept{view}, then \tcode{\exposidnc{decay-copy}(E)}. |
9912 | 9922 | \item |
9913 | 9923 | Otherwise, if the type of \tcode{E} is \cv{} \tcode{subrange<reverse_iterator<I>, reverse_iterator<I>, K>} |
9914 | 9924 | for some iterator type \tcode{I} and |
|
10061 | 10071 | if \tcode{U} denotes \tcode{empty_view<X>} |
10062 | 10072 | for some type \tcode{X}, then \tcode{auto(views::empty<const X>)}. |
10063 | 10073 | \item |
| 10074 | +Otherwise, if \tcode{U} denotes \tcode{optional<X\&>} |
| 10075 | +for some type \tcode{X}, then \tcode{optional<const X\&>(E)}. |
| 10076 | +\item |
10064 | 10077 | Otherwise, |
10065 | 10078 | if \tcode{U} denotes \tcode{span<X, Extent>} |
10066 | 10079 | for some type \tcode{X} and some extent \tcode{Extent}, |
|
0 commit comments