|
741 | 741 | };
|
742 | 742 |
|
743 | 743 | template<class T>
|
744 |
| - concept Range = @\placeholdernc{range-impl}@<T&>; |
| 744 | + concept Range = @\placeholder{range-impl}@<T&>; |
745 | 745 |
|
746 | 746 | template<class T>
|
747 | 747 | concept @\placeholder{forwarding-range}@ = // \expos
|
|
1219 | 1219 |
|
1220 | 1220 | template<class T, class U, class V>
|
1221 | 1221 | concept @\placeholdernc{pair-like-convertible-from}@ = // \expos
|
1222 |
| - !Range<T> && @\placeholdernc{pair-like}@<T> && Constructible<T, U, V>; |
| 1222 | + !Range<T> && @\placeholder{pair-like}@<T> && Constructible<T, U, V>; |
1223 | 1223 |
|
1224 | 1224 | template<class T>
|
1225 | 1225 | concept @\placeholdernc{iterator-sentinel-pair}@ = // \expos
|
1226 |
| - !Range<T> && @\placeholdernc{pair-like}@<T> && |
| 1226 | + !Range<T> && @\placeholder{pair-like}@<T> && |
1227 | 1227 | Sentinel<tuple_element_t<1, T>, tuple_element_t<0, T>>;
|
1228 | 1228 |
|
1229 | 1229 | template<Iterator I, Sentinel<I> S = I, subrange_kind K =
|
|
1245 | 1245 | constexpr subrange(I i, S s, iter_difference_t<I> n)
|
1246 | 1246 | requires (K == subrange_kind::sized);
|
1247 | 1247 |
|
1248 |
| - template<@\placeholdernc{not-same-as}@<subrange> R> |
1249 |
| - requires @\placeholdernc{forwarding-range}@<R> && |
| 1248 | + template<@\placeholder{not-same-as}@<subrange> R> |
| 1249 | + requires @\placeholder{forwarding-range}@<R> && |
1250 | 1250 | ConvertibleTo<iterator_t<R>, I> && ConvertibleTo<sentinel_t<R>, S>
|
1251 | 1251 | constexpr subrange(R&& r) requires (!StoreSize || SizedRange<R>);
|
1252 | 1252 |
|
|
1257 | 1257 | : subrange{ranges::begin(r), ranges::end(r), n}
|
1258 | 1258 | {}
|
1259 | 1259 |
|
1260 |
| - template<@\placeholdernc{not-same-as}@<subrange> PairLike> |
1261 |
| - requires @\placeholdernc{pair-like-convertible-to}@<PairLike, I, S> |
| 1260 | + template<@\placeholder{not-same-as}@<subrange> PairLike> |
| 1261 | + requires @\placeholder{pair-like-convertible-to}@<PairLike, I, S> |
1262 | 1262 | constexpr subrange(PairLike&& r) requires (!StoreSize)
|
1263 | 1263 | : subrange{std::get<0>(std::forward<PairLike>(r)),
|
1264 | 1264 | std::get<1>(std::forward<PairLike>(r))}
|
1265 | 1265 | {}
|
1266 | 1266 |
|
1267 |
| - template<@\placeholdernc{pair-like-convertible-to}@<I, S> PairLike> |
| 1267 | + template<@\placeholder{pair-like-convertible-to}@<I, S> PairLike> |
1268 | 1268 | constexpr subrange(PairLike&& r, iter_difference_t<I> n)
|
1269 | 1269 | requires (K == subrange_kind::sized)
|
1270 | 1270 | : subrange{std::get<0>(std::forward<PairLike>(r)),
|
1271 | 1271 | std::get<1>(std::forward<PairLike>(r)), n}
|
1272 | 1272 | {}
|
1273 | 1273 |
|
1274 |
| - template<@\placeholdernc{not-same-as}@<subrange> PairLike> |
1275 |
| - requires @\placeholdernc{pair-like-convertible-from}@<PairLike, const I&, const S&> |
| 1274 | + template<@\placeholder{not-same-as}@<subrange> PairLike> |
| 1275 | + requires @\placeholder{pair-like-convertible-from}@<PairLike, const I&, const S&> |
1276 | 1276 | constexpr operator PairLike() const;
|
1277 | 1277 |
|
1278 | 1278 | constexpr I begin() const;
|
|
1364 | 1364 |
|
1365 | 1365 | \indexlibrary{\idxcode{subrange}!\idxcode{subrange}}%
|
1366 | 1366 | \begin{itemdecl}
|
1367 |
| -template<@\placeholdernc{not-same-as}@<subrange> R> |
1368 |
| - requires @\placeholdernc{forwarding-range}@<R> && |
| 1367 | +template<@\placeholder{not-same-as}@<subrange> R> |
| 1368 | + requires @\placeholder{forwarding-range}@<R> && |
1369 | 1369 | ConvertibleTo<iterator_t<R>, I> && ConvertibleTo<sentinel_t<R>, S>
|
1370 | 1370 | constexpr subrange(R&& r) requires (!StoreSize || SizedRange<R>);
|
1371 | 1371 | \end{itemdecl}
|
|
1382 | 1382 |
|
1383 | 1383 | \indexlibrary{\idxcode{operator \placeholder{PairLike}}!\idxcode{subrange}}%
|
1384 | 1384 | \begin{itemdecl}
|
1385 |
| -template<@\placeholdernc{not-same-as}@<subrange> PairLike> |
1386 |
| - requires @\placeholdernc{pair-like-convertible-from}@<PairLike, const I&, const S&> |
| 1385 | +template<@\placeholder{not-same-as}@<subrange> PairLike> |
| 1386 | + requires @\placeholder{pair-like-convertible-from}@<PairLike, const I&, const S&> |
1387 | 1387 | constexpr operator PairLike() const;
|
1388 | 1388 | \end{itemdecl}
|
1389 | 1389 |
|
|
1629 | 1629 | requires is_object_v<T>
|
1630 | 1630 | class single_view : public view_interface<single_view<T>> {
|
1631 | 1631 | private:
|
1632 |
| - @\placeholdernc{semiregular-box}@<T> value_; // \expos{} (see \ref{range.semi.wrap}) |
| 1632 | + @\placeholder{semiregular-box}@<T> value_; // \expos{} (see \ref{range.semi.wrap}) |
1633 | 1633 | public:
|
1634 | 1634 | single_view() = default;
|
1635 | 1635 | constexpr explicit single_view(const T& t);
|
|
1761 | 1761 | @\seebelow@;
|
1762 | 1762 |
|
1763 | 1763 | template<WeaklyIncrementable W, Semiregular Bound = unreachable_sentinel_t>
|
1764 |
| - requires @\placeholdernc{weakly-equality-comparable-with}@<W, Bound> |
| 1764 | + requires @\placeholder{weakly-equality-comparable-with}@<W, Bound> |
1765 | 1765 | class iota_view : public view_interface<iota_view<W, Bound>> {
|
1766 | 1766 | private:
|
1767 | 1767 | // \ref{range.iota.iterator}, class \tcode{iota_view::iterator}
|
|
1781 | 1781 | constexpr iterator end() const requires Same<W, Bound>;
|
1782 | 1782 |
|
1783 | 1783 | constexpr auto size() const
|
1784 |
| - requires (Same<W, Bound> && @\placeholdernc{Advanceable}@<W>) || |
| 1784 | + requires (Same<W, Bound> && @\placeholder{Advanceable}@<W>) || |
1785 | 1785 | (Integral<W> && Integral<Bound>) ||
|
1786 | 1786 | SizedSentinel<Bound, W>
|
1787 | 1787 | { return bound_ - value_; }
|
|
1831 | 1831 | \begin{itemdecl}
|
1832 | 1832 | template<class I>
|
1833 | 1833 | concept @\placeholder{Advanceable}@ =
|
1834 |
| - @\placeholdernc{Decrementable}@<I> && StrictTotallyOrdered<I> && |
| 1834 | + @\placeholder{Decrementable}@<I> && StrictTotallyOrdered<I> && |
1835 | 1835 | requires(I i, const I j, const iter_difference_t<I> n) {
|
1836 | 1836 | { i += n } -> Same<I&>;
|
1837 | 1837 | { i -= n } -> Same<I&>;
|
|
1951 | 1951 | constexpr void operator++(int);
|
1952 | 1952 | constexpr iterator operator++(int) requires Incrementable<W>;
|
1953 | 1953 |
|
1954 |
| - constexpr iterator& operator--() requires @\placeholdernc{Decrementable}@<W>; |
1955 |
| - constexpr iterator operator--(int) requires @\placeholdernc{Decrementable}@<W>; |
| 1954 | + constexpr iterator& operator--() requires @\placeholder{Decrementable}@<W>; |
| 1955 | + constexpr iterator operator--(int) requires @\placeholder{Decrementable}@<W>; |
1956 | 1956 |
|
1957 | 1957 | constexpr iterator& operator+=(difference_type n)
|
1958 |
| - requires @\placeholdernc{Advanceable}@<W>; |
| 1958 | + requires @\placeholder{Advanceable}@<W>; |
1959 | 1959 | constexpr iterator& operator-=(difference_type n)
|
1960 |
| - requires @\placeholdernc{Advanceable}@<W>; |
| 1960 | + requires @\placeholder{Advanceable}@<W>; |
1961 | 1961 | constexpr W operator[](difference_type n) const
|
1962 |
| - requires @\placeholdernc{Advanceable}@<W>; |
| 1962 | + requires @\placeholder{Advanceable}@<W>; |
1963 | 1963 |
|
1964 | 1964 | friend constexpr bool operator==(const iterator& x, const iterator& y)
|
1965 | 1965 | requires EqualityComparable<W>;
|
|
1977 | 1977 | requires StrictTotallyOrdered<W> && ThreeWayComparable<W>;
|
1978 | 1978 |
|
1979 | 1979 | friend constexpr iterator operator+(iterator i, difference_type n)
|
1980 |
| - requires @\placeholdernc{Advanceable}@<W>; |
| 1980 | + requires @\placeholder{Advanceable}@<W>; |
1981 | 1981 | friend constexpr iterator operator+(difference_type n, iterator i)
|
1982 |
| - requires @\placeholdernc{Advanceable}@<W>; |
| 1982 | + requires @\placeholder{Advanceable}@<W>; |
1983 | 1983 |
|
1984 | 1984 | friend constexpr iterator operator-(iterator i, difference_type n)
|
1985 |
| - requires @\placeholdernc{Advanceable}@<W>; |
| 1985 | + requires @\placeholder{Advanceable}@<W>; |
1986 | 1986 | friend constexpr difference_type operator-(const iterator& x, const iterator& y)
|
1987 |
| - requires @\placeholdernc{Advanceable}@<W>; |
| 1987 | + requires @\placeholder{Advanceable}@<W>; |
1988 | 1988 | };
|
1989 | 1989 | }
|
1990 | 1990 | \end{codeblock}
|
|
2073 | 2073 |
|
2074 | 2074 | \indexlibrary{\idxcode{operator\dcr}!\idxcode{iota_view::iterator}}
|
2075 | 2075 | \begin{itemdecl}
|
2076 |
| -constexpr iterator& operator--() requires @\placeholdernc{Decrementable}@<W>; |
| 2076 | +constexpr iterator& operator--() requires @\placeholder{Decrementable}@<W>; |
2077 | 2077 | \end{itemdecl}
|
2078 | 2078 |
|
2079 | 2079 | \begin{itemdescr}
|
|
2087 | 2087 |
|
2088 | 2088 | \indexlibrary{\idxcode{operator\dcr}!\idxcode{iota_view::iterator}}
|
2089 | 2089 | \begin{itemdecl}
|
2090 |
| -constexpr iterator operator--(int) requires @\placeholdernc{Decrementable}@<W>; |
| 2090 | +constexpr iterator operator--(int) requires @\placeholder{Decrementable}@<W>; |
2091 | 2091 | \end{itemdecl}
|
2092 | 2092 |
|
2093 | 2093 | \begin{itemdescr}
|
|
2103 | 2103 | \indexlibrary{\idxcode{operator+=}!\idxcode{iota_view::iterator}}
|
2104 | 2104 | \begin{itemdecl}
|
2105 | 2105 | constexpr iterator& operator+=(difference_type n)
|
2106 |
| - requires @\placeholdernc{Advanceable}@<W>; |
| 2106 | + requires @\placeholder{Advanceable}@<W>; |
2107 | 2107 | \end{itemdecl}
|
2108 | 2108 |
|
2109 | 2109 | \begin{itemdescr}
|
|
2118 | 2118 | \indexlibrary{\idxcode{operator-=}!\idxcode{iota_view::iterator}}
|
2119 | 2119 | \begin{itemdecl}
|
2120 | 2120 | constexpr iterator& operator-=(difference_type n)
|
2121 |
| - requires @\placeholdernc{Advanceable}@<W>; |
| 2121 | + requires @\placeholder{Advanceable}@<W>; |
2122 | 2122 | \end{itemdecl}
|
2123 | 2123 |
|
2124 | 2124 | \begin{itemdescr}
|
|
2133 | 2133 | \indexlibrary{\idxcode{operator[]}!\idxcode{iota_view::iterator}}
|
2134 | 2134 | \begin{itemdecl}
|
2135 | 2135 | constexpr W operator[](difference_type n) const
|
2136 |
| - requires @\placeholdernc{Advanceable}@<W>; |
| 2136 | + requires @\placeholder{Advanceable}@<W>; |
2137 | 2137 | \end{itemdecl}
|
2138 | 2138 |
|
2139 | 2139 | \begin{itemdescr}
|
|
2212 | 2212 | \indexlibrary{\idxcode{operator+}!\idxcode{iota_view::iterator}}
|
2213 | 2213 | \begin{itemdecl}
|
2214 | 2214 | friend constexpr iterator operator+(iterator i, difference_type n)
|
2215 |
| - requires @\placeholdernc{Advanceable}@<W>; |
| 2215 | + requires @\placeholder{Advanceable}@<W>; |
2216 | 2216 | \end{itemdecl}
|
2217 | 2217 |
|
2218 | 2218 | \begin{itemdescr}
|
|
2223 | 2223 | \indexlibrary{\idxcode{operator+}!\idxcode{iota_view::iterator}}
|
2224 | 2224 | \begin{itemdecl}
|
2225 | 2225 | friend constexpr iterator operator+(difference_type n, iterator i)
|
2226 |
| - requires @\placeholdernc{Advanceable}@<W>; |
| 2226 | + requires @\placeholder{Advanceable}@<W>; |
2227 | 2227 | \end{itemdecl}
|
2228 | 2228 |
|
2229 | 2229 | \begin{itemdescr}
|
|
2234 | 2234 | \indexlibrary{\idxcode{operator-}!\idxcode{iota_view::iterator}}
|
2235 | 2235 | \begin{itemdecl}
|
2236 | 2236 | friend constexpr iterator operator-(iterator i, difference_type n)
|
2237 |
| - requires @\placeholdernc{Advanceable}@<W>; |
| 2237 | + requires @\placeholder{Advanceable}@<W>; |
2238 | 2238 | \end{itemdecl}
|
2239 | 2239 |
|
2240 | 2240 | \begin{itemdescr}
|
|
2245 | 2245 | \indexlibrary{\idxcode{operator-}!\idxcode{iota_view::iterator}}
|
2246 | 2246 | \begin{itemdecl}
|
2247 | 2247 | friend constexpr difference_type operator-(const iterator& x, const iterator& y)
|
2248 |
| - requires @\placeholdernc{Advanceable}@<W>; |
| 2248 | + requires @\placeholder{Advanceable}@<W>; |
2249 | 2249 | \end{itemdecl}
|
2250 | 2250 |
|
2251 | 2251 | \begin{itemdescr}
|
|
2539 | 2539 | class filter_view : public view_interface<filter_view<V, Pred>> {
|
2540 | 2540 | private:
|
2541 | 2541 | V base_ = V(); // \expos
|
2542 |
| - @\placeholdernc{semiregular-box}@<Pred> pred_; // \expos |
| 2542 | + @\placeholder{semiregular-box}@<Pred> pred_; // \expos |
2543 | 2543 |
|
2544 | 2544 | // \ref{range.filter.iterator}, class \tcode{filter_view::iterator}
|
2545 | 2545 | class iterator; // \expos
|
|
2939 | 2939 | template<bool> struct sentinel; // \expos
|
2940 | 2940 |
|
2941 | 2941 | V base_ = V(); // \expos
|
2942 |
| - @\placeholdernc{semiregular-box}@<F> fun_; // \expos |
| 2942 | + @\placeholder{semiregular-box}@<F> fun_; // \expos |
2943 | 2943 |
|
2944 | 2944 | public:
|
2945 | 2945 | transform_view() = default;
|
|
4667 | 4667 | template<class R>
|
4668 | 4668 | concept @\placeholdernc{tiny-range}@ = // \expos
|
4669 | 4669 | SizedRange<R> &&
|
4670 |
| - requires { typename @\placeholdernc{require-constant}@<remove_reference_t<R>::size()>; } && |
| 4670 | + requires { typename @\placeholder{require-constant}@<remove_reference_t<R>::size()>; } && |
4671 | 4671 | (remove_reference_t<R>::size() <= 1);
|
4672 | 4672 |
|
4673 | 4673 | template<InputRange V, ForwardRange Pattern>
|
4674 | 4674 | requires View<V> && View<Pattern> &&
|
4675 | 4675 | IndirectlyComparable<iterator_t<V>, iterator_t<Pattern>, ranges::equal_to> &&
|
4676 |
| - (ForwardRange<V> || @\placeholdernc{tiny-range}@<Pattern>) |
| 4676 | + (ForwardRange<V> || @\placeholder{tiny-range}@<Pattern>) |
4677 | 4677 | class split_view : public view_interface<split_view<V, Pattern>> {
|
4678 | 4678 | private:
|
4679 | 4679 | V base_ = V(); // \expos
|
|
0 commit comments