|
761 | 761 | };
|
762 | 762 |
|
763 | 763 | template<class T>
|
764 |
| - concept range = @\placeholdernc{range-impl}@<T&>; |
| 764 | + concept range = @\placeholder{range-impl}@<T&>; |
765 | 765 |
|
766 | 766 | template<class T>
|
767 | 767 | concept @\placeholder{forwarding-range}@ = // \expos
|
|
1239 | 1239 |
|
1240 | 1240 | template<class T, class U, class V>
|
1241 | 1241 | concept @\placeholdernc{pair-like-convertible-from}@ = // \expos
|
1242 |
| - !range<T> && @\placeholdernc{pair-like}@<T> && constructible_from<T, U, V>; |
| 1242 | + !range<T> && @\placeholder{pair-like}@<T> && constructible_from<T, U, V>; |
1243 | 1243 |
|
1244 | 1244 | template<class T>
|
1245 | 1245 | concept @\placeholdernc{iterator-sentinel-pair}@ = // \expos
|
1246 |
| - !range<T> && @\placeholdernc{pair-like}@<T> && |
| 1246 | + !range<T> && @\placeholder{pair-like}@<T> && |
1247 | 1247 | sentinel_for<tuple_element_t<1, T>, tuple_element_t<0, T>>;
|
1248 | 1248 |
|
1249 | 1249 | template<input_or_output_iterator I, sentinel_for<I> S = I, subrange_kind K =
|
|
1265 | 1265 | constexpr subrange(I i, S s, @\placeholdernc{make-unsigned-like-t}@(iter_difference_t<I>) n)
|
1266 | 1266 | requires (K == subrange_kind::sized);
|
1267 | 1267 |
|
1268 |
| - template<@\placeholdernc{not-same-as}@<subrange> R> |
1269 |
| - requires @\placeholdernc{forwarding-range}@<R> && |
| 1268 | + template<@\placeholder{not-same-as}@<subrange> R> |
| 1269 | + requires @\placeholder{forwarding-range}@<R> && |
1270 | 1270 | convertible_to<iterator_t<R>, I> && convertible_to<sentinel_t<R>, S>
|
1271 | 1271 | constexpr subrange(R&& r) requires (!StoreSize || sized_range<R>);
|
1272 | 1272 |
|
|
1277 | 1277 | : subrange{ranges::begin(r), ranges::end(r), n}
|
1278 | 1278 | {}
|
1279 | 1279 |
|
1280 |
| - template<@\placeholdernc{not-same-as}@<subrange> PairLike> |
1281 |
| - requires @\placeholdernc{pair-like-convertible-to}@<PairLike, I, S> |
| 1280 | + template<@\placeholder{not-same-as}@<subrange> PairLike> |
| 1281 | + requires @\placeholder{pair-like-convertible-to}@<PairLike, I, S> |
1282 | 1282 | constexpr subrange(PairLike&& r) requires (!StoreSize)
|
1283 | 1283 | : subrange{std::get<0>(std::forward<PairLike>(r)),
|
1284 | 1284 | std::get<1>(std::forward<PairLike>(r))}
|
1285 | 1285 | {}
|
1286 | 1286 |
|
1287 |
| - template<@\placeholdernc{pair-like-convertible-to}@<I, S> PairLike> |
| 1287 | + template<@\placeholder{pair-like-convertible-to}@<I, S> PairLike> |
1288 | 1288 | constexpr subrange(PairLike&& r, @\placeholdernc{make-unsigned-like-t}@(iter_difference_t<I>) n)
|
1289 | 1289 | requires (K == subrange_kind::sized)
|
1290 | 1290 | : subrange{std::get<0>(std::forward<PairLike>(r)),
|
1291 | 1291 | std::get<1>(std::forward<PairLike>(r)), n}
|
1292 | 1292 | {}
|
1293 | 1293 |
|
1294 |
| - template<@\placeholdernc{not-same-as}@<subrange> PairLike> |
1295 |
| - requires @\placeholdernc{pair-like-convertible-from}@<PairLike, const I&, const S&> |
| 1294 | + template<@\placeholder{not-same-as}@<subrange> PairLike> |
| 1295 | + requires @\placeholder{pair-like-convertible-from}@<PairLike, const I&, const S&> |
1296 | 1296 | constexpr operator PairLike() const;
|
1297 | 1297 |
|
1298 | 1298 | constexpr I begin() const;
|
|
1385 | 1385 |
|
1386 | 1386 | \indexlibrary{\idxcode{subrange}!\idxcode{subrange}}%
|
1387 | 1387 | \begin{itemdecl}
|
1388 |
| -template<@\placeholdernc{not-same-as}@<subrange> R> |
1389 |
| - requires @\placeholdernc{forwarding-range}@<R> && |
| 1388 | +template<@\placeholder{not-same-as}@<subrange> R> |
| 1389 | + requires @\placeholder{forwarding-range}@<R> && |
1390 | 1390 | convertible_to<iterator_t<R>, I> && convertible_to<sentinel_t<R>, S>
|
1391 | 1391 | constexpr subrange(R&& r) requires (!StoreSize || sized_range<R>);
|
1392 | 1392 | \end{itemdecl}
|
|
1403 | 1403 |
|
1404 | 1404 | \indexlibrary{\idxcode{operator \placeholder{PairLike}}!\idxcode{subrange}}%
|
1405 | 1405 | \begin{itemdecl}
|
1406 |
| -template<@\placeholdernc{not-same-as}@<subrange> PairLike> |
1407 |
| - requires @\placeholdernc{pair-like-convertible-from}@<PairLike, const I&, const S&> |
| 1406 | +template<@\placeholder{not-same-as}@<subrange> PairLike> |
| 1407 | + requires @\placeholder{pair-like-convertible-from}@<PairLike, const I&, const S&> |
1408 | 1408 | constexpr operator PairLike() const;
|
1409 | 1409 | \end{itemdecl}
|
1410 | 1410 |
|
|
1654 | 1654 | requires is_object_v<T>
|
1655 | 1655 | class single_view : public view_interface<single_view<T>> {
|
1656 | 1656 | private:
|
1657 |
| - @\placeholdernc{semiregular-box}@<T> value_; // \expos{} (see \ref{range.semi.wrap}) |
| 1657 | + @\placeholder{semiregular-box}@<T> value_; // \expos{} (see \ref{range.semi.wrap}) |
1658 | 1658 | public:
|
1659 | 1659 | single_view() = default;
|
1660 | 1660 | constexpr explicit single_view(const T& t);
|
|
1786 | 1786 | @\seebelow@;
|
1787 | 1787 |
|
1788 | 1788 | template<weakly_incrementable W, semiregular Bound = unreachable_sentinel_t>
|
1789 |
| - requires @\placeholdernc{weakly-equality-comparable-with}@<W, Bound> |
| 1789 | + requires @\placeholder{weakly-equality-comparable-with}@<W, Bound> |
1790 | 1790 | class iota_view : public view_interface<iota_view<W, Bound>> {
|
1791 | 1791 | private:
|
1792 | 1792 | // \ref{range.iota.iterator}, class \tcode{iota_view::iterator}
|
|
1809 | 1809 | };
|
1810 | 1810 |
|
1811 | 1811 | template<class W, class Bound>
|
1812 |
| - requires (!@\placeholdernc{is-integer-like}@<W> || !@\placeholdernc{is-integer-like}@<Bound> || |
1813 |
| - (@\placeholdernc{is-signed-integer-like}@<W> == @\placeholdernc{is-signed-integer-like}@<Bound>)) |
| 1812 | + requires (!@\placeholder{is-integer-like}@<W> || !@\placeholder{is-integer-like}@<Bound> || |
| 1813 | + (@\placeholder{is-signed-integer-like}@<W> == @\placeholder{is-signed-integer-like}@<Bound>)) |
1814 | 1814 | iota_view(W, Bound) -> iota_view<W, Bound>;
|
1815 | 1815 | }
|
1816 | 1816 | \end{codeblock}
|
|
1875 | 1875 | \begin{itemdecl}
|
1876 | 1876 | template<class I>
|
1877 | 1877 | concept @\placeholder{advanceable}@ =
|
1878 |
| - @\placeholdernc{decrementable}@<I> && totally_ordered<I> && |
| 1878 | + @\placeholder{decrementable}@<I> && totally_ordered<I> && |
1879 | 1879 | requires(I i, const I j, const @\placeholdernc{IOTA-DIFF-T}@(I) n) {
|
1880 | 1880 | { i += n } -> same_as<I&>;
|
1881 | 1881 | { i -= n } -> same_as<I&>;
|
|
1990 | 1990 | \pnum
|
1991 | 1991 | \effects Equivalent to:
|
1992 | 1992 | \begin{codeblock}
|
1993 |
| -if constexpr (@\placeholdernc{is-integer-like}@<W> && @\placeholdernc{is-integer-like}@<Bound>) |
| 1993 | +if constexpr (@\placeholder{is-integer-like}@<W> && @\placeholder{is-integer-like}@<Bound>) |
1994 | 1994 | return (value_ < 0)
|
1995 | 1995 | ? ((bound_ < 0)
|
1996 | 1996 | ? @\placeholdernc{make-unsigned-like}@(-value_) - @\placeholdernc{make-unsigned-like}@(-bound_)
|
|
2030 | 2030 | constexpr void operator++(int);
|
2031 | 2031 | constexpr iterator operator++(int) requires incrementable<W>;
|
2032 | 2032 |
|
2033 |
| - constexpr iterator& operator--() requires @\placeholdernc{decrementable}@<W>; |
2034 |
| - constexpr iterator operator--(int) requires @\placeholdernc{decrementable}@<W>; |
| 2033 | + constexpr iterator& operator--() requires @\placeholder{decrementable}@<W>; |
| 2034 | + constexpr iterator operator--(int) requires @\placeholder{decrementable}@<W>; |
2035 | 2035 |
|
2036 | 2036 | constexpr iterator& operator+=(difference_type n)
|
2037 |
| - requires @\placeholdernc{advanceable}@<W>; |
| 2037 | + requires @\placeholder{advanceable}@<W>; |
2038 | 2038 | constexpr iterator& operator-=(difference_type n)
|
2039 |
| - requires @\placeholdernc{advanceable}@<W>; |
| 2039 | + requires @\placeholder{advanceable}@<W>; |
2040 | 2040 | constexpr W operator[](difference_type n) const
|
2041 |
| - requires @\placeholdernc{advanceable}@<W>; |
| 2041 | + requires @\placeholder{advanceable}@<W>; |
2042 | 2042 |
|
2043 | 2043 | friend constexpr bool operator==(const iterator& x, const iterator& y)
|
2044 | 2044 | requires equality_comparable<W>;
|
|
2056 | 2056 | requires totally_ordered<W> && three_way_comparable<W>;
|
2057 | 2057 |
|
2058 | 2058 | friend constexpr iterator operator+(iterator i, difference_type n)
|
2059 |
| - requires @\placeholdernc{advanceable}@<W>; |
| 2059 | + requires @\placeholder{advanceable}@<W>; |
2060 | 2060 | friend constexpr iterator operator+(difference_type n, iterator i)
|
2061 |
| - requires @\placeholdernc{advanceable}@<W>; |
| 2061 | + requires @\placeholder{advanceable}@<W>; |
2062 | 2062 |
|
2063 | 2063 | friend constexpr iterator operator-(iterator i, difference_type n)
|
2064 |
| - requires @\placeholdernc{advanceable}@<W>; |
| 2064 | + requires @\placeholder{advanceable}@<W>; |
2065 | 2065 | friend constexpr difference_type operator-(const iterator& x, const iterator& y)
|
2066 |
| - requires @\placeholdernc{advanceable}@<W>; |
| 2066 | + requires @\placeholder{advanceable}@<W>; |
2067 | 2067 | };
|
2068 | 2068 | }
|
2069 | 2069 | \end{codeblock}
|
|
2152 | 2152 |
|
2153 | 2153 | \indexlibrary{\idxcode{operator\dcr}!\idxcode{iota_view::iterator}}
|
2154 | 2154 | \begin{itemdecl}
|
2155 |
| -constexpr iterator& operator--() requires @\placeholdernc{decrementable}@<W>; |
| 2155 | +constexpr iterator& operator--() requires @\placeholder{decrementable}@<W>; |
2156 | 2156 | \end{itemdecl}
|
2157 | 2157 |
|
2158 | 2158 | \begin{itemdescr}
|
|
2166 | 2166 |
|
2167 | 2167 | \indexlibrary{\idxcode{operator\dcr}!\idxcode{iota_view::iterator}}
|
2168 | 2168 | \begin{itemdecl}
|
2169 |
| -constexpr iterator operator--(int) requires @\placeholdernc{decrementable}@<W>; |
| 2169 | +constexpr iterator operator--(int) requires @\placeholder{decrementable}@<W>; |
2170 | 2170 | \end{itemdecl}
|
2171 | 2171 |
|
2172 | 2172 | \begin{itemdescr}
|
|
2182 | 2182 | \indexlibrary{\idxcode{operator+=}!\idxcode{iota_view::iterator}}
|
2183 | 2183 | \begin{itemdecl}
|
2184 | 2184 | constexpr iterator& operator+=(difference_type n)
|
2185 |
| - requires @\placeholdernc{advanceable}@<W>; |
| 2185 | + requires @\placeholder{advanceable}@<W>; |
2186 | 2186 | \end{itemdecl}
|
2187 | 2187 |
|
2188 | 2188 | \begin{itemdescr}
|
2189 | 2189 | \pnum
|
2190 | 2190 | \effects Equivalent to:
|
2191 | 2191 | \begin{codeblock}
|
2192 |
| -if constexpr (@\placeholdernc{is-integer-like}@<W> && !@\placeholdernc{is-signed-integer-like}@<W>) { |
| 2192 | +if constexpr (@\placeholder{is-integer-like}@<W> && !@\placeholder{is-signed-integer-like}@<W>) { |
2193 | 2193 | if (n >= difference_type(0))
|
2194 | 2194 | value_ += static_cast<W>(n);
|
2195 | 2195 | else
|
|
2204 | 2204 | \indexlibrary{\idxcode{operator-=}!\idxcode{iota_view::iterator}}
|
2205 | 2205 | \begin{itemdecl}
|
2206 | 2206 | constexpr iterator& operator-=(difference_type n)
|
2207 |
| - requires @\placeholdernc{advanceable}@<W>; |
| 2207 | + requires @\placeholder{advanceable}@<W>; |
2208 | 2208 | \end{itemdecl}
|
2209 | 2209 |
|
2210 | 2210 | \begin{itemdescr}
|
2211 | 2211 | \pnum
|
2212 | 2212 | \effects Equivalent to:
|
2213 | 2213 | \begin{codeblock}
|
2214 |
| -if constexpr (@\placeholdernc{is-integer-like}@<W> && !@\placeholdernc{is-signed-integer-like}@<W>) { |
| 2214 | +if constexpr (@\placeholder{is-integer-like}@<W> && !@\placeholder{is-signed-integer-like}@<W>) { |
2215 | 2215 | if (n >= difference_type(0))
|
2216 | 2216 | value_ -= static_cast<W>(n);
|
2217 | 2217 | else
|
|
2226 | 2226 | \indexlibrary{\idxcode{operator[]}!\idxcode{iota_view::iterator}}
|
2227 | 2227 | \begin{itemdecl}
|
2228 | 2228 | constexpr W operator[](difference_type n) const
|
2229 |
| - requires @\placeholdernc{advanceable}@<W>; |
| 2229 | + requires @\placeholder{advanceable}@<W>; |
2230 | 2230 | \end{itemdecl}
|
2231 | 2231 |
|
2232 | 2232 | \begin{itemdescr}
|
|
2305 | 2305 | \indexlibrary{\idxcode{operator+}!\idxcode{iota_view::iterator}}
|
2306 | 2306 | \begin{itemdecl}
|
2307 | 2307 | friend constexpr iterator operator+(iterator i, difference_type n)
|
2308 |
| - requires @\placeholdernc{advanceable}@<W>; |
| 2308 | + requires @\placeholder{advanceable}@<W>; |
2309 | 2309 | \end{itemdecl}
|
2310 | 2310 |
|
2311 | 2311 | \begin{itemdescr}
|
|
2316 | 2316 | \indexlibrary{\idxcode{operator+}!\idxcode{iota_view::iterator}}
|
2317 | 2317 | \begin{itemdecl}
|
2318 | 2318 | friend constexpr iterator operator+(difference_type n, iterator i)
|
2319 |
| - requires @\placeholdernc{advanceable}@<W>; |
| 2319 | + requires @\placeholder{advanceable}@<W>; |
2320 | 2320 | \end{itemdecl}
|
2321 | 2321 |
|
2322 | 2322 | \begin{itemdescr}
|
|
2327 | 2327 | \indexlibrary{\idxcode{operator-}!\idxcode{iota_view::iterator}}
|
2328 | 2328 | \begin{itemdecl}
|
2329 | 2329 | friend constexpr iterator operator-(iterator i, difference_type n)
|
2330 |
| - requires @\placeholdernc{advanceable}@<W>; |
| 2330 | + requires @\placeholder{advanceable}@<W>; |
2331 | 2331 | \end{itemdecl}
|
2332 | 2332 |
|
2333 | 2333 | \begin{itemdescr}
|
|
2338 | 2338 | \indexlibrary{\idxcode{operator-}!\idxcode{iota_view::iterator}}
|
2339 | 2339 | \begin{itemdecl}
|
2340 | 2340 | friend constexpr difference_type operator-(const iterator& x, const iterator& y)
|
2341 |
| - requires @\placeholdernc{advanceable}@<W>; |
| 2341 | + requires @\placeholder{advanceable}@<W>; |
2342 | 2342 | \end{itemdecl}
|
2343 | 2343 |
|
2344 | 2344 | \begin{itemdescr}
|
|
2670 | 2670 | class filter_view : public view_interface<filter_view<V, Pred>> {
|
2671 | 2671 | private:
|
2672 | 2672 | V base_ = V(); // \expos
|
2673 |
| - @\placeholdernc{semiregular-box}@<Pred> pred_; // \expos |
| 2673 | + @\placeholder{semiregular-box}@<Pred> pred_; // \expos |
2674 | 2674 |
|
2675 | 2675 | // \ref{range.filter.iterator}, class \tcode{filter_view::iterator}
|
2676 | 2676 | class iterator; // \expos
|
|
3070 | 3070 | template<bool> struct sentinel; // \expos
|
3071 | 3071 |
|
3072 | 3072 | V base_ = V(); // \expos
|
3073 |
| - @\placeholdernc{semiregular-box}@<F> fun_; // \expos |
| 3073 | + @\placeholder{semiregular-box}@<F> fun_; // \expos |
3074 | 3074 |
|
3075 | 3075 | public:
|
3076 | 3076 | transform_view() = default;
|
|
4798 | 4798 | template<class R>
|
4799 | 4799 | concept @\placeholdernc{tiny-range}@ = // \expos
|
4800 | 4800 | sized_range<R> &&
|
4801 |
| - requires { typename @\placeholdernc{require-constant}@<remove_reference_t<R>::size()>; } && |
| 4801 | + requires { typename @\placeholder{require-constant}@<remove_reference_t<R>::size()>; } && |
4802 | 4802 | (remove_reference_t<R>::size() <= 1);
|
4803 | 4803 |
|
4804 | 4804 | template<input_range V, forward_range Pattern>
|
4805 | 4805 | requires view<V> && view<Pattern> &&
|
4806 | 4806 | indirectly_comparable<iterator_t<V>, iterator_t<Pattern>, ranges::equal_to> &&
|
4807 |
| - (forward_range<V> || @\placeholdernc{tiny-range}@<Pattern>) |
| 4807 | + (forward_range<V> || @\placeholder{tiny-range}@<Pattern>) |
4808 | 4808 | class split_view : public view_interface<split_view<V, Pattern>> {
|
4809 | 4809 | private:
|
4810 | 4810 | V base_ = V(); // \expos
|
|
0 commit comments