|
1319 | 1319 |
|
1320 | 1320 | template<class I>
|
1321 | 1321 | concept @\deflibconcept{weakly_incrementable}@ =
|
1322 |
| - @\libconcept{default_initializable}@<I> && @\libconcept{movable}@<I> && |
| 1322 | + @\libconcept{movable}@<I> && |
1323 | 1323 | requires(I i) {
|
1324 | 1324 | typename iter_difference_t<I>;
|
1325 | 1325 | requires @\exposid{is-signed-integer-like}@<iter_difference_t<I>>;
|
|
3721 | 3721 | template<class Container>
|
3722 | 3722 | class back_insert_iterator {
|
3723 | 3723 | protected:
|
3724 |
| - Container* container = nullptr; |
| 3724 | + Container* container; |
3725 | 3725 |
|
3726 | 3726 | public:
|
3727 | 3727 | using iterator_category = output_iterator_tag;
|
|
3731 | 3731 | using reference = void;
|
3732 | 3732 | using container_type = Container;
|
3733 | 3733 |
|
3734 |
| - constexpr back_insert_iterator() noexcept = default; |
3735 | 3734 | constexpr explicit back_insert_iterator(Container& x);
|
3736 | 3735 | constexpr back_insert_iterator& operator=(const typename Container::value_type& value);
|
3737 | 3736 | constexpr back_insert_iterator& operator=(typename Container::value_type&& value);
|
|
3833 | 3832 | template<class Container>
|
3834 | 3833 | class front_insert_iterator {
|
3835 | 3834 | protected:
|
3836 |
| - Container* container = nullptr; |
| 3835 | + Container* container; |
3837 | 3836 |
|
3838 | 3837 | public:
|
3839 | 3838 | using iterator_category = output_iterator_tag;
|
|
3843 | 3842 | using reference = void;
|
3844 | 3843 | using container_type = Container;
|
3845 | 3844 |
|
3846 |
| - constexpr front_insert_iterator() noexcept = default; |
3847 | 3845 | constexpr explicit front_insert_iterator(Container& x);
|
3848 | 3846 | constexpr front_insert_iterator& operator=(const typename Container::value_type& value);
|
3849 | 3847 | constexpr front_insert_iterator& operator=(typename Container::value_type&& value);
|
|
3945 | 3943 | template<class Container>
|
3946 | 3944 | class insert_iterator {
|
3947 | 3945 | protected:
|
3948 |
| - Container* container = nullptr; |
3949 |
| - ranges::iterator_t<Container> iter = ranges::iterator_t<Container>(); |
| 3946 | + Container* container; |
| 3947 | + ranges::iterator_t<Container> iter; |
3950 | 3948 |
|
3951 | 3949 | public:
|
3952 | 3950 | using iterator_category = output_iterator_tag;
|
|
3956 | 3954 | using reference = void;
|
3957 | 3955 | using container_type = Container;
|
3958 | 3956 |
|
3959 |
| - insert_iterator() = default; |
3960 | 3957 | constexpr insert_iterator(Container& x, ranges::iterator_t<Container> i);
|
3961 | 3958 | constexpr insert_iterator& operator=(const typename Container::value_type& value);
|
3962 | 3959 | constexpr insert_iterator& operator=(typename Container::value_type&& value);
|
|
4732 | 4729 | requires (!@\libconcept{same_as}@<I, S> && @\libconcept{copyable}@<I>)
|
4733 | 4730 | class common_iterator {
|
4734 | 4731 | public:
|
4735 |
| - constexpr common_iterator() = default; |
| 4732 | + constexpr common_iterator() requires @\libconcept{default_initializable}@<I> = default; |
4736 | 4733 | constexpr common_iterator(I i);
|
4737 | 4734 | constexpr common_iterator(S s);
|
4738 | 4735 | template<class I2, class S2>
|
|
5200 | 5197 | // if the \grammarterm{qualified-id} \tcode{I::iterator_concept} is valid and denotes a type
|
5201 | 5198 | using iterator_category = typename I::iterator_category; // present only
|
5202 | 5199 | // if the \grammarterm{qualified-id} \tcode{I::iterator_category} is valid and denotes a type
|
5203 |
| - constexpr counted_iterator() = default; |
| 5200 | + constexpr counted_iterator() requires @\libconcept{default_initializable}@<I> = default; |
5204 | 5201 | constexpr counted_iterator(I x, iter_difference_t<I> n);
|
5205 | 5202 | template<class I2>
|
5206 | 5203 | requires @\libconcept{convertible_to}@<const I2&, I>
|
|
6028 | 6025 | using traits_type = traits;
|
6029 | 6026 | using ostream_type = basic_ostream<charT,traits>;
|
6030 | 6027 |
|
6031 |
| - constexpr ostream_iterator() noexcept = default; |
6032 | 6028 | ostream_iterator(ostream_type& s);
|
6033 | 6029 | ostream_iterator(ostream_type& s, const charT* delimiter);
|
6034 | 6030 | ostream_iterator(const ostream_iterator& x);
|
|
6041 | 6037 | ostream_iterator& operator++(int);
|
6042 | 6038 |
|
6043 | 6039 | private:
|
6044 |
| - basic_ostream<charT,traits>* out_stream = nullptr; // \expos |
6045 |
| - const charT* delim = nullptr; // \expos |
| 6040 | + basic_ostream<charT,traits>* out_stream; // \expos |
| 6041 | + const charT* delim; // \expos |
6046 | 6042 | };
|
6047 | 6043 | }
|
6048 | 6044 | \end{codeblock}
|
|
6390 | 6386 | using streambuf_type = basic_streambuf<charT,traits>;
|
6391 | 6387 | using ostream_type = basic_ostream<charT,traits>;
|
6392 | 6388 |
|
6393 |
| - constexpr ostreambuf_iterator() noexcept = default; |
6394 | 6389 | ostreambuf_iterator(ostream_type& s) noexcept;
|
6395 | 6390 | ostreambuf_iterator(streambuf_type* s) noexcept;
|
6396 | 6391 | ostreambuf_iterator& operator=(charT c);
|
|
6401 | 6396 | bool failed() const noexcept;
|
6402 | 6397 |
|
6403 | 6398 | private:
|
6404 |
| - streambuf_type* sbuf_ = nullptr; // \expos |
| 6399 | + streambuf_type* sbuf_; // \expos |
6405 | 6400 | };
|
6406 | 6401 | }
|
6407 | 6402 | \end{codeblock}
|
|
0 commit comments