|
751 | 751 | };
|
752 | 752 |
|
753 | 753 | template<class T>
|
754 |
| - concept Range = @\placeholdernc{range-impl}@<T&>; |
| 754 | + concept Range = @\placeholder{range-impl}@<T&>; |
755 | 755 |
|
756 | 756 | template<class T>
|
757 | 757 | concept @\placeholder{forwarding-range}@ = // \expos
|
|
1229 | 1229 |
|
1230 | 1230 | template<class T, class U, class V>
|
1231 | 1231 | concept @\placeholdernc{pair-like-convertible-from}@ = // \expos
|
1232 |
| - !Range<T> && @\placeholdernc{pair-like}@<T> && Constructible<T, U, V>; |
| 1232 | + !Range<T> && @\placeholder{pair-like}@<T> && Constructible<T, U, V>; |
1233 | 1233 |
|
1234 | 1234 | template<class T>
|
1235 | 1235 | concept @\placeholdernc{iterator-sentinel-pair}@ = // \expos
|
1236 |
| - !Range<T> && @\placeholdernc{pair-like}@<T> && |
| 1236 | + !Range<T> && @\placeholder{pair-like}@<T> && |
1237 | 1237 | Sentinel<tuple_element_t<1, T>, tuple_element_t<0, T>>;
|
1238 | 1238 |
|
1239 | 1239 | template<Iterator I, Sentinel<I> S = I, subrange_kind K =
|
|
1255 | 1255 | constexpr subrange(I i, S s, @\placeholdernc{make-unsigned-like-t}@(iter_difference_t<I>) n)
|
1256 | 1256 | requires (K == subrange_kind::sized);
|
1257 | 1257 |
|
1258 |
| - template<@\placeholdernc{not-same-as}@<subrange> R> |
1259 |
| - requires @\placeholdernc{forwarding-range}@<R> && |
| 1258 | + template<@\placeholder{not-same-as}@<subrange> R> |
| 1259 | + requires @\placeholder{forwarding-range}@<R> && |
1260 | 1260 | ConvertibleTo<iterator_t<R>, I> && ConvertibleTo<sentinel_t<R>, S>
|
1261 | 1261 | constexpr subrange(R&& r) requires (!StoreSize || SizedRange<R>);
|
1262 | 1262 |
|
|
1267 | 1267 | : subrange{ranges::begin(r), ranges::end(r), n}
|
1268 | 1268 | {}
|
1269 | 1269 |
|
1270 |
| - template<@\placeholdernc{not-same-as}@<subrange> PairLike> |
1271 |
| - requires @\placeholdernc{pair-like-convertible-to}@<PairLike, I, S> |
| 1270 | + template<@\placeholder{not-same-as}@<subrange> PairLike> |
| 1271 | + requires @\placeholder{pair-like-convertible-to}@<PairLike, I, S> |
1272 | 1272 | constexpr subrange(PairLike&& r) requires (!StoreSize)
|
1273 | 1273 | : subrange{std::get<0>(std::forward<PairLike>(r)),
|
1274 | 1274 | std::get<1>(std::forward<PairLike>(r))}
|
1275 | 1275 | {}
|
1276 | 1276 |
|
1277 |
| - template<@\placeholdernc{pair-like-convertible-to}@<I, S> PairLike> |
| 1277 | + template<@\placeholder{pair-like-convertible-to}@<I, S> PairLike> |
1278 | 1278 | constexpr subrange(PairLike&& r, @\placeholdernc{make-unsigned-like-t}@(iter_difference_t<I>) n)
|
1279 | 1279 | requires (K == subrange_kind::sized)
|
1280 | 1280 | : subrange{std::get<0>(std::forward<PairLike>(r)),
|
1281 | 1281 | std::get<1>(std::forward<PairLike>(r)), n}
|
1282 | 1282 | {}
|
1283 | 1283 |
|
1284 |
| - template<@\placeholdernc{not-same-as}@<subrange> PairLike> |
1285 |
| - requires @\placeholdernc{pair-like-convertible-from}@<PairLike, const I&, const S&> |
| 1284 | + template<@\placeholder{not-same-as}@<subrange> PairLike> |
| 1285 | + requires @\placeholder{pair-like-convertible-from}@<PairLike, const I&, const S&> |
1286 | 1286 | constexpr operator PairLike() const;
|
1287 | 1287 |
|
1288 | 1288 | constexpr I begin() const;
|
|
1375 | 1375 |
|
1376 | 1376 | \indexlibrary{\idxcode{subrange}!\idxcode{subrange}}%
|
1377 | 1377 | \begin{itemdecl}
|
1378 |
| -template<@\placeholdernc{not-same-as}@<subrange> R> |
1379 |
| - requires @\placeholdernc{forwarding-range}@<R> && |
| 1378 | +template<@\placeholder{not-same-as}@<subrange> R> |
| 1379 | + requires @\placeholder{forwarding-range}@<R> && |
1380 | 1380 | ConvertibleTo<iterator_t<R>, I> && ConvertibleTo<sentinel_t<R>, S>
|
1381 | 1381 | constexpr subrange(R&& r) requires (!StoreSize || SizedRange<R>);
|
1382 | 1382 | \end{itemdecl}
|
|
1393 | 1393 |
|
1394 | 1394 | \indexlibrary{\idxcode{operator \placeholder{PairLike}}!\idxcode{subrange}}%
|
1395 | 1395 | \begin{itemdecl}
|
1396 |
| -template<@\placeholdernc{not-same-as}@<subrange> PairLike> |
1397 |
| - requires @\placeholdernc{pair-like-convertible-from}@<PairLike, const I&, const S&> |
| 1396 | +template<@\placeholder{not-same-as}@<subrange> PairLike> |
| 1397 | + requires @\placeholder{pair-like-convertible-from}@<PairLike, const I&, const S&> |
1398 | 1398 | constexpr operator PairLike() const;
|
1399 | 1399 | \end{itemdecl}
|
1400 | 1400 |
|
|
1644 | 1644 | requires is_object_v<T>
|
1645 | 1645 | class single_view : public view_interface<single_view<T>> {
|
1646 | 1646 | private:
|
1647 |
| - @\placeholdernc{semiregular-box}@<T> value_; // \expos{} (see \ref{range.semi.wrap}) |
| 1647 | + @\placeholder{semiregular-box}@<T> value_; // \expos{} (see \ref{range.semi.wrap}) |
1648 | 1648 | public:
|
1649 | 1649 | single_view() = default;
|
1650 | 1650 | constexpr explicit single_view(const T& t);
|
|
1776 | 1776 | @\seebelow@;
|
1777 | 1777 |
|
1778 | 1778 | template<WeaklyIncrementable W, Semiregular Bound = unreachable_sentinel_t>
|
1779 |
| - requires @\placeholdernc{weakly-equality-comparable-with}@<W, Bound> |
| 1779 | + requires @\placeholder{weakly-equality-comparable-with}@<W, Bound> |
1780 | 1780 | class iota_view : public view_interface<iota_view<W, Bound>> {
|
1781 | 1781 | private:
|
1782 | 1782 | // \ref{range.iota.iterator}, class \tcode{iota_view::iterator}
|
|
1799 | 1799 | };
|
1800 | 1800 |
|
1801 | 1801 | template<class W, class Bound>
|
1802 |
| - requires (!@\placeholdernc{is-integer-like}@<W> || !@\placeholdernc{is-integer-like}@<Bound> || |
1803 |
| - (@\placeholdernc{is-signed-integer-like}@<W> == @\placeholdernc{is-signed-integer-like}@<Bound>)) |
| 1802 | + requires (!@\placeholder{is-integer-like}@<W> || !@\placeholder{is-integer-like}@<Bound> || |
| 1803 | + (@\placeholder{is-signed-integer-like}@<W> == @\placeholder{is-signed-integer-like}@<Bound>)) |
1804 | 1804 | iota_view(W, Bound) -> iota_view<W, Bound>;
|
1805 | 1805 | }
|
1806 | 1806 | \end{codeblock}
|
|
1865 | 1865 | \begin{itemdecl}
|
1866 | 1866 | template<class I>
|
1867 | 1867 | concept @\placeholder{Advanceable}@ =
|
1868 |
| - @\placeholdernc{Decrementable}@<I> && StrictTotallyOrdered<I> && |
| 1868 | + @\placeholder{Decrementable}@<I> && StrictTotallyOrdered<I> && |
1869 | 1869 | requires(I i, const I j, const @\placeholdernc{IOTA-DIFF-T}@(I) n) {
|
1870 | 1870 | { i += n } -> Same<I&>;
|
1871 | 1871 | { i -= n } -> Same<I&>;
|
|
1980 | 1980 | \pnum
|
1981 | 1981 | \effects Equivalent to:
|
1982 | 1982 | \begin{codeblock}
|
1983 |
| -if constexpr (@\placeholdernc{is-integer-like}@<W> && @\placeholdernc{is-integer-like}@<Bound>) |
| 1983 | +if constexpr (@\placeholder{is-integer-like}@<W> && @\placeholder{is-integer-like}@<Bound>) |
1984 | 1984 | return (value_ < 0)
|
1985 | 1985 | ? ((bound_ < 0)
|
1986 | 1986 | ? @\placeholdernc{make-unsigned-like}@(-value_) - @\placeholdernc{make-unsigned-like}@(-bound_)
|
|
2020 | 2020 | constexpr void operator++(int);
|
2021 | 2021 | constexpr iterator operator++(int) requires Incrementable<W>;
|
2022 | 2022 |
|
2023 |
| - constexpr iterator& operator--() requires @\placeholdernc{Decrementable}@<W>; |
2024 |
| - constexpr iterator operator--(int) requires @\placeholdernc{Decrementable}@<W>; |
| 2023 | + constexpr iterator& operator--() requires @\placeholder{Decrementable}@<W>; |
| 2024 | + constexpr iterator operator--(int) requires @\placeholder{Decrementable}@<W>; |
2025 | 2025 |
|
2026 | 2026 | constexpr iterator& operator+=(difference_type n)
|
2027 |
| - requires @\placeholdernc{Advanceable}@<W>; |
| 2027 | + requires @\placeholder{Advanceable}@<W>; |
2028 | 2028 | constexpr iterator& operator-=(difference_type n)
|
2029 |
| - requires @\placeholdernc{Advanceable}@<W>; |
| 2029 | + requires @\placeholder{Advanceable}@<W>; |
2030 | 2030 | constexpr W operator[](difference_type n) const
|
2031 |
| - requires @\placeholdernc{Advanceable}@<W>; |
| 2031 | + requires @\placeholder{Advanceable}@<W>; |
2032 | 2032 |
|
2033 | 2033 | friend constexpr bool operator==(const iterator& x, const iterator& y)
|
2034 | 2034 | requires EqualityComparable<W>;
|
|
2046 | 2046 | requires StrictTotallyOrdered<W> && ThreeWayComparable<W>;
|
2047 | 2047 |
|
2048 | 2048 | friend constexpr iterator operator+(iterator i, difference_type n)
|
2049 |
| - requires @\placeholdernc{Advanceable}@<W>; |
| 2049 | + requires @\placeholder{Advanceable}@<W>; |
2050 | 2050 | friend constexpr iterator operator+(difference_type n, iterator i)
|
2051 |
| - requires @\placeholdernc{Advanceable}@<W>; |
| 2051 | + requires @\placeholder{Advanceable}@<W>; |
2052 | 2052 |
|
2053 | 2053 | friend constexpr iterator operator-(iterator i, difference_type n)
|
2054 |
| - requires @\placeholdernc{Advanceable}@<W>; |
| 2054 | + requires @\placeholder{Advanceable}@<W>; |
2055 | 2055 | friend constexpr difference_type operator-(const iterator& x, const iterator& y)
|
2056 |
| - requires @\placeholdernc{Advanceable}@<W>; |
| 2056 | + requires @\placeholder{Advanceable}@<W>; |
2057 | 2057 | };
|
2058 | 2058 | }
|
2059 | 2059 | \end{codeblock}
|
|
2142 | 2142 |
|
2143 | 2143 | \indexlibrary{\idxcode{operator\dcr}!\idxcode{iota_view::iterator}}
|
2144 | 2144 | \begin{itemdecl}
|
2145 |
| -constexpr iterator& operator--() requires @\placeholdernc{Decrementable}@<W>; |
| 2145 | +constexpr iterator& operator--() requires @\placeholder{Decrementable}@<W>; |
2146 | 2146 | \end{itemdecl}
|
2147 | 2147 |
|
2148 | 2148 | \begin{itemdescr}
|
|
2156 | 2156 |
|
2157 | 2157 | \indexlibrary{\idxcode{operator\dcr}!\idxcode{iota_view::iterator}}
|
2158 | 2158 | \begin{itemdecl}
|
2159 |
| -constexpr iterator operator--(int) requires @\placeholdernc{Decrementable}@<W>; |
| 2159 | +constexpr iterator operator--(int) requires @\placeholder{Decrementable}@<W>; |
2160 | 2160 | \end{itemdecl}
|
2161 | 2161 |
|
2162 | 2162 | \begin{itemdescr}
|
|
2172 | 2172 | \indexlibrary{\idxcode{operator+=}!\idxcode{iota_view::iterator}}
|
2173 | 2173 | \begin{itemdecl}
|
2174 | 2174 | constexpr iterator& operator+=(difference_type n)
|
2175 |
| - requires @\placeholdernc{Advanceable}@<W>; |
| 2175 | + requires @\placeholder{Advanceable}@<W>; |
2176 | 2176 | \end{itemdecl}
|
2177 | 2177 |
|
2178 | 2178 | \begin{itemdescr}
|
2179 | 2179 | \pnum
|
2180 | 2180 | \effects Equivalent to:
|
2181 | 2181 | \begin{codeblock}
|
2182 |
| -if constexpr (@\placeholdernc{is-integer-like}@<W> && !@\placeholdernc{is-signed-integer-like}@<W>) { |
| 2182 | +if constexpr (@\placeholder{is-integer-like}@<W> && !@\placeholder{is-signed-integer-like}@<W>) { |
2183 | 2183 | if (n >= difference_type(0))
|
2184 | 2184 | value_ += static_cast<W>(n);
|
2185 | 2185 | else
|
|
2194 | 2194 | \indexlibrary{\idxcode{operator-=}!\idxcode{iota_view::iterator}}
|
2195 | 2195 | \begin{itemdecl}
|
2196 | 2196 | constexpr iterator& operator-=(difference_type n)
|
2197 |
| - requires @\placeholdernc{Advanceable}@<W>; |
| 2197 | + requires @\placeholder{Advanceable}@<W>; |
2198 | 2198 | \end{itemdecl}
|
2199 | 2199 |
|
2200 | 2200 | \begin{itemdescr}
|
2201 | 2201 | \pnum
|
2202 | 2202 | \effects Equivalent to:
|
2203 | 2203 | \begin{codeblock}
|
2204 |
| -if constexpr (@\placeholdernc{is-integer-like}@<W> && !@\placeholdernc{is-signed-integer-like}@<W>) { |
| 2204 | +if constexpr (@\placeholder{is-integer-like}@<W> && !@\placeholder{is-signed-integer-like}@<W>) { |
2205 | 2205 | if (n >= difference_type(0))
|
2206 | 2206 | value_ -= static_cast<W>(n);
|
2207 | 2207 | else
|
|
2216 | 2216 | \indexlibrary{\idxcode{operator[]}!\idxcode{iota_view::iterator}}
|
2217 | 2217 | \begin{itemdecl}
|
2218 | 2218 | constexpr W operator[](difference_type n) const
|
2219 |
| - requires @\placeholdernc{Advanceable}@<W>; |
| 2219 | + requires @\placeholder{Advanceable}@<W>; |
2220 | 2220 | \end{itemdecl}
|
2221 | 2221 |
|
2222 | 2222 | \begin{itemdescr}
|
|
2295 | 2295 | \indexlibrary{\idxcode{operator+}!\idxcode{iota_view::iterator}}
|
2296 | 2296 | \begin{itemdecl}
|
2297 | 2297 | friend constexpr iterator operator+(iterator i, difference_type n)
|
2298 |
| - requires @\placeholdernc{Advanceable}@<W>; |
| 2298 | + requires @\placeholder{Advanceable}@<W>; |
2299 | 2299 | \end{itemdecl}
|
2300 | 2300 |
|
2301 | 2301 | \begin{itemdescr}
|
|
2306 | 2306 | \indexlibrary{\idxcode{operator+}!\idxcode{iota_view::iterator}}
|
2307 | 2307 | \begin{itemdecl}
|
2308 | 2308 | friend constexpr iterator operator+(difference_type n, iterator i)
|
2309 |
| - requires @\placeholdernc{Advanceable}@<W>; |
| 2309 | + requires @\placeholder{Advanceable}@<W>; |
2310 | 2310 | \end{itemdecl}
|
2311 | 2311 |
|
2312 | 2312 | \begin{itemdescr}
|
|
2317 | 2317 | \indexlibrary{\idxcode{operator-}!\idxcode{iota_view::iterator}}
|
2318 | 2318 | \begin{itemdecl}
|
2319 | 2319 | friend constexpr iterator operator-(iterator i, difference_type n)
|
2320 |
| - requires @\placeholdernc{Advanceable}@<W>; |
| 2320 | + requires @\placeholder{Advanceable}@<W>; |
2321 | 2321 | \end{itemdecl}
|
2322 | 2322 |
|
2323 | 2323 | \begin{itemdescr}
|
|
2328 | 2328 | \indexlibrary{\idxcode{operator-}!\idxcode{iota_view::iterator}}
|
2329 | 2329 | \begin{itemdecl}
|
2330 | 2330 | friend constexpr difference_type operator-(const iterator& x, const iterator& y)
|
2331 |
| - requires @\placeholdernc{Advanceable}@<W>; |
| 2331 | + requires @\placeholder{Advanceable}@<W>; |
2332 | 2332 | \end{itemdecl}
|
2333 | 2333 |
|
2334 | 2334 | \begin{itemdescr}
|
|
2660 | 2660 | class filter_view : public view_interface<filter_view<V, Pred>> {
|
2661 | 2661 | private:
|
2662 | 2662 | V base_ = V(); // \expos
|
2663 |
| - @\placeholdernc{semiregular-box}@<Pred> pred_; // \expos |
| 2663 | + @\placeholder{semiregular-box}@<Pred> pred_; // \expos |
2664 | 2664 |
|
2665 | 2665 | // \ref{range.filter.iterator}, class \tcode{filter_view::iterator}
|
2666 | 2666 | class iterator; // \expos
|
|
3060 | 3060 | template<bool> struct sentinel; // \expos
|
3061 | 3061 |
|
3062 | 3062 | V base_ = V(); // \expos
|
3063 |
| - @\placeholdernc{semiregular-box}@<F> fun_; // \expos |
| 3063 | + @\placeholder{semiregular-box}@<F> fun_; // \expos |
3064 | 3064 |
|
3065 | 3065 | public:
|
3066 | 3066 | transform_view() = default;
|
|
4788 | 4788 | template<class R>
|
4789 | 4789 | concept @\placeholdernc{tiny-range}@ = // \expos
|
4790 | 4790 | SizedRange<R> &&
|
4791 |
| - requires { typename @\placeholdernc{require-constant}@<remove_reference_t<R>::size()>; } && |
| 4791 | + requires { typename @\placeholder{require-constant}@<remove_reference_t<R>::size()>; } && |
4792 | 4792 | (remove_reference_t<R>::size() <= 1);
|
4793 | 4793 |
|
4794 | 4794 | template<InputRange V, ForwardRange Pattern>
|
4795 | 4795 | requires View<V> && View<Pattern> &&
|
4796 | 4796 | IndirectlyComparable<iterator_t<V>, iterator_t<Pattern>, ranges::equal_to> &&
|
4797 |
| - (ForwardRange<V> || @\placeholdernc{tiny-range}@<Pattern>) |
| 4797 | + (ForwardRange<V> || @\placeholder{tiny-range}@<Pattern>) |
4798 | 4798 | class split_view : public view_interface<split_view<V, Pattern>> {
|
4799 | 4799 | private:
|
4800 | 4800 | V base_ = V(); // \expos
|
|
0 commit comments