|
9166 | 9166 | };
|
9167 | 9167 |
|
9168 | 9168 | // construct/copy/destroy
|
9169 |
| - constexpr vector() : vector(Allocator()) { } |
9170 |
| - constexpr explicit vector(const Allocator&); |
| 9169 | + constexpr vector() noexcept(noexcept(Allocator())) : vector(Allocator()) { } |
| 9170 | + constexpr explicit vector(const Allocator&) noexcept; |
9171 | 9171 | constexpr explicit vector(size_type n, const Allocator& = Allocator());
|
9172 | 9172 | constexpr vector(size_type n, const bool& value, const Allocator& = Allocator());
|
9173 | 9173 | template<class InputIterator>
|
9174 | 9174 | constexpr vector(InputIterator first, InputIterator last, const Allocator& = Allocator());
|
9175 | 9175 | template<@\exposconcept{container-compatible-range}@<bool> R>
|
9176 | 9176 | constexpr vector(from_range_t, R&& rg, const Allocator& = Allocator());
|
9177 | 9177 | constexpr vector(const vector& x);
|
9178 |
| - constexpr vector(vector&& x); |
| 9178 | + constexpr vector(vector&& x) noexcept; |
9179 | 9179 | constexpr vector(const vector&, const type_identity_t<Allocator>&);
|
9180 | 9180 | constexpr vector(vector&&, const type_identity_t<Allocator>&);
|
9181 | 9181 | constexpr vector(initializer_list<bool>, const Allocator& = Allocator());
|
9182 | 9182 | constexpr ~vector();
|
9183 | 9183 | constexpr vector& operator=(const vector& x);
|
9184 |
| - constexpr vector& operator=(vector&& x); |
| 9184 | + constexpr vector& operator=(vector&& x) |
| 9185 | + noexcept(allocator_traits<Allocator>::propagate_on_container_move_assignment::value || |
| 9186 | + allocator_traits<Allocator>::is_always_equal::value); |
9185 | 9187 | constexpr vector& operator=(initializer_list<bool>);
|
9186 | 9188 | template<class InputIterator>
|
9187 | 9189 | constexpr void assign(InputIterator first, InputIterator last);
|
|
9243 | 9245 |
|
9244 | 9246 | constexpr iterator erase(const_iterator position);
|
9245 | 9247 | constexpr iterator erase(const_iterator first, const_iterator last);
|
9246 |
| - constexpr void swap(vector&); |
| 9248 | + constexpr void swap(vector&) |
| 9249 | + noexcept(allocator_traits<Allocator>::propagate_on_container_swap::value || |
| 9250 | + allocator_traits<Allocator>::is_always_equal::value); |
9247 | 9251 | static constexpr void swap(reference x, reference y) noexcept;
|
9248 | 9252 | constexpr void flip() noexcept; // flips all bits
|
9249 | 9253 | constexpr void clear() noexcept;
|
|
0 commit comments