|
2917 | 2917 | struct iota_view<W, Bound>::@\exposid{iterator}@ {
|
2918 | 2918 | private:
|
2919 | 2919 | W @\exposid{value_}@ = W(); // \expos
|
| 2920 | + |
2920 | 2921 | public:
|
2921 | 2922 | using iterator_concept = @\seebelow@;
|
2922 | 2923 | using iterator_category = input_iterator_tag; // present only if \tcode{W} models \libconcept{incrementable} and
|
|
3296 | 3297 | struct iota_view<W, Bound>::@\exposid{sentinel}@ {
|
3297 | 3298 | private:
|
3298 | 3299 | Bound @\exposid{bound_}@ = Bound(); // \expos
|
| 3300 | + |
3299 | 3301 | public:
|
3300 | 3302 | @\exposid{sentinel}@() = default;
|
3301 | 3303 | constexpr explicit @\exposid{sentinel}@(Bound bound);
|
|
4295 | 4297 | class ref_view : public view_interface<ref_view<R>> {
|
4296 | 4298 | private:
|
4297 | 4299 | R* @\exposid{r_}@; // \expos
|
| 4300 | + |
4298 | 4301 | public:
|
4299 | 4302 | template<@\exposconcept{different-from}@<ref_view> T>
|
4300 | 4303 | requires @\seebelow@
|
|
4359 | 4362 | class owning_view : public view_interface<owning_view<R>> {
|
4360 | 4363 | private:
|
4361 | 4364 | R @\exposid{r_}@ = R(); // \expos
|
| 4365 | + |
4362 | 4366 | public:
|
4363 | 4367 | owning_view() requires @\libconcept{default_initializable}@<R> = default;
|
4364 | 4368 | constexpr owning_view(R&& t);
|
|
5500 | 5504 | using @\exposid{Parent}@ = @\exposid{maybe-const}@<Const, transform_view>; // \expos
|
5501 | 5505 | using @\exposid{Base}@ = @\exposid{maybe-const}@<Const, V>; // \expos
|
5502 | 5506 | sentinel_t<@\exposid{Base}@> @\exposid{end_}@ = sentinel_t<@\exposid{Base}@>(); // \expos
|
| 5507 | + |
5503 | 5508 | public:
|
5504 | 5509 | @\exposid{sentinel}@() = default;
|
5505 | 5510 | constexpr explicit @\exposid{sentinel}@(sentinel_t<@\exposid{Base}@> end);
|
|
5819 | 5824 | template<bool OtherConst>
|
5820 | 5825 | using @\exposid{CI}@ = counted_iterator<iterator_t<@\exposid{maybe-const}@<OtherConst, V>>>; // \expos
|
5821 | 5826 | sentinel_t<@\exposid{Base}@> @\exposid{end_}@ = sentinel_t<@\exposid{Base}@>(); // \expos
|
| 5827 | + |
5822 | 5828 | public:
|
5823 | 5829 | @\exposid{sentinel}@() = default;
|
5824 | 5830 | constexpr explicit @\exposid{sentinel}@(sentinel_t<@\exposid{Base}@> end);
|
|
7767 | 7773 | : view_interface<value_type> {
|
7768 | 7774 | private:
|
7769 | 7775 | @\exposid{outer-iterator}@ @\exposid{i_}@ = @\exposid{outer-iterator}@(); // \expos
|
| 7776 | + |
7770 | 7777 | public:
|
7771 | 7778 | value_type() = default;
|
7772 | 7779 | constexpr explicit value_type(@\exposid{outer-iterator}@ i);
|
|
8391 | 8398 | class common_view : public view_interface<common_view<V>> {
|
8392 | 8399 | private:
|
8393 | 8400 | V @\exposid{base_}@ = V(); // \expos
|
| 8401 | + |
8394 | 8402 | public:
|
8395 | 8403 | common_view() requires @\libconcept{default_initializable}@<V> = default;
|
8396 | 8404 |
|
|
8512 | 8520 | class reverse_view : public view_interface<reverse_view<V>> {
|
8513 | 8521 | private:
|
8514 | 8522 | V @\exposid{base_}@ = V(); // \expos
|
| 8523 | + |
8515 | 8524 | public:
|
8516 | 8525 | reverse_view() requires @\libconcept{default_initializable}@<V> = default;
|
8517 | 8526 |
|
|
9231 | 9240 | private:
|
9232 | 9241 | using @\exposid{Base}@ = @\exposid{maybe-const}@<Const, V>; // \expos
|
9233 | 9242 | sentinel_t<@\exposid{Base}@> @\exposid{end_}@ = sentinel_t<@\exposid{Base}@>(); // \expos
|
| 9243 | + |
9234 | 9244 | public:
|
9235 | 9245 | @\exposid{sentinel}@() = default;
|
9236 | 9246 | constexpr explicit @\exposid{sentinel}@(sentinel_t<@\exposid{Base}@> end);
|
|
14288 | 14298 | tuple<First, Vs...> @\exposid{bases_}@; // \expos
|
14289 | 14299 | // \ref{range.cartesian.iterator}, class template \tcode{cartesian_product_view::\exposid{iterator}}
|
14290 | 14300 | template<bool Const> class @\exposid{iterator}@; // \expos
|
| 14301 | + |
14291 | 14302 | public:
|
14292 | 14303 | constexpr cartesian_product_view() = default;
|
14293 | 14304 | constexpr explicit cartesian_product_view(First first_base, Vs... bases);
|
|
0 commit comments