From 7a22ae2adefe8d33ebc83b6e03d4a61cec1bcab0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ion=20Gazta=C3=B1aga?= Date: Thu, 18 Dec 2025 15:56:59 +0100 Subject: [PATCH] Replace BOOST_CONTAINER_ATTRIBUTE_NODISCARD with BOOST_CONTAINER_NODISCARD --- doc/Jamfile.v2 | 2 +- include/boost/container/adaptive_pool.hpp | 24 +- include/boost/container/allocator.hpp | 14 +- include/boost/container/allocator_traits.hpp | 6 +- include/boost/container/deque.hpp | 106 ++++----- include/boost/container/detail/flat_tree.hpp | 114 ++++----- include/boost/container/detail/tree.hpp | 100 ++++---- include/boost/container/detail/workaround.hpp | 6 +- include/boost/container/devector.hpp | 84 +++---- include/boost/container/flat_map.hpp | 216 +++++++++--------- include/boost/container/list.hpp | 56 ++--- include/boost/container/map.hpp | 12 +- include/boost/container/new_allocator.hpp | 8 +- include/boost/container/node_allocator.hpp | 14 +- .../boost/container/pmr/memory_resource.hpp | 6 +- .../container/pmr/polymorphic_allocator.hpp | 2 +- include/boost/container/scoped_allocator.hpp | 10 +- include/boost/container/set.hpp | 4 +- include/boost/container/slist.hpp | 48 ++-- include/boost/container/small_vector.hpp | 2 +- include/boost/container/stable_vector.hpp | 102 ++++----- include/boost/container/string.hpp | 144 ++++++------ include/boost/container/vector.hpp | 104 ++++----- 23 files changed, 592 insertions(+), 592 deletions(-) diff --git a/doc/Jamfile.v2 b/doc/Jamfile.v2 index c4c01bb..13b896d 100644 --- a/doc/Jamfile.v2 +++ b/doc/Jamfile.v2 @@ -44,7 +44,7 @@ doxygen autodoc \"BOOST_RV_REF_END_IF_CXX11=&&\" \\ \"BOOST_COPY_ASSIGN_REF(T)=const T &\" \\ \"BOOST_FWD_REF(a)=a &&\" \\ - \"BOOST_CONTAINER_ATTRIBUTE_NODISCARD=[[nodiscard]] \" \\ + \"BOOST_CONTAINER_NODISCARD=[[nodiscard]] \" \\ \"BOOST_NORETURN=[[noreturn]] \" \\ \"BOOST_INTRUSIVE_OPTION_CONSTANT(OPTION_NAME, TYPE, VALUE, CONSTANT_NAME) = template struct OPTION_NAME{};\" \\ \"BOOST_INTRUSIVE_OPTION_TYPE(OPTION_NAME, TYPE, TYPEDEF_EXPR, TYPEDEF_NAME) = template struct OPTION_NAME{};\" \\ diff --git a/include/boost/container/adaptive_pool.hpp b/include/boost/container/adaptive_pool.hpp index f620e6a..f1f6119 100644 --- a/include/boost/container/adaptive_pool.hpp +++ b/include/boost/container/adaptive_pool.hpp @@ -150,13 +150,13 @@ class adaptive_pool //!Returns the number of elements that could be allocated. //!Never throws - BOOST_CONTAINER_ATTRIBUTE_NODISCARD + BOOST_CONTAINER_NODISCARD size_type max_size() const BOOST_NOEXCEPT_OR_NOTHROW { return size_type(-1)/(2u*sizeof(T)); } //!Allocate memory for an array of count elements. //!Throws bad_alloc if there is no enough memory - BOOST_CONTAINER_ATTRIBUTE_NODISCARD + BOOST_CONTAINER_NODISCARD pointer allocate(size_type count, const void * = 0) { if(BOOST_UNLIKELY(count > size_type(-1)/(2u*sizeof(T)))) @@ -189,7 +189,7 @@ class adaptive_pool } } - BOOST_CONTAINER_ATTRIBUTE_NODISCARD + BOOST_CONTAINER_NODISCARD pointer allocation_command(allocation_type command, size_type limit_size, size_type &prefer_in_recvd_out_size, @@ -209,7 +209,7 @@ class adaptive_pool //!Allocates just one object. Memory allocated with this function //!must be deallocated only with deallocate_one(). //!Throws bad_alloc if there is no enough memory - BOOST_CONTAINER_ATTRIBUTE_NODISCARD + BOOST_CONTAINER_NODISCARD pointer allocate_one() { typedef dtl::shared_adaptive_node_pool @@ -321,13 +321,13 @@ class adaptive_pool //!An allocator always compares to true, as memory allocated with one //!instance can be deallocated by another instance - BOOST_CONTAINER_ATTRIBUTE_NODISCARD + BOOST_CONTAINER_NODISCARD friend bool operator==(const adaptive_pool &, const adaptive_pool &) BOOST_NOEXCEPT_OR_NOTHROW { return true; } //!An allocator always compares to false, as memory allocated with one //!instance can be deallocated by another instance - BOOST_CONTAINER_ATTRIBUTE_NODISCARD + BOOST_CONTAINER_NODISCARD friend bool operator!=(const adaptive_pool &, const adaptive_pool &) BOOST_NOEXCEPT_OR_NOTHROW { return false; } @@ -472,13 +472,13 @@ class private_adaptive_pool //!Returns the number of elements that could be allocated. //!Never throws - BOOST_CONTAINER_ATTRIBUTE_NODISCARD + BOOST_CONTAINER_NODISCARD size_type max_size() const BOOST_NOEXCEPT_OR_NOTHROW { return size_type(-1)/(2u*sizeof(T)); } //!Allocate memory for an array of count elements. //!Throws bad_alloc if there is no enough memory - BOOST_CONTAINER_ATTRIBUTE_NODISCARD + BOOST_CONTAINER_NODISCARD pointer allocate(size_type count, const void * = 0) { if(BOOST_UNLIKELY(count > size_type(-1)/(2u*sizeof(T)))) @@ -505,7 +505,7 @@ class private_adaptive_pool } } - BOOST_CONTAINER_ATTRIBUTE_NODISCARD + BOOST_CONTAINER_NODISCARD pointer allocation_command(allocation_type command, size_type limit_size, size_type &prefer_in_recvd_out_size, @@ -525,7 +525,7 @@ class private_adaptive_pool //!Allocates just one object. Memory allocated with this function //!must be deallocated only with deallocate_one(). //!Throws bad_alloc if there is no enough memory - BOOST_CONTAINER_ATTRIBUTE_NODISCARD + BOOST_CONTAINER_NODISCARD pointer allocate_one() { return (pointer)m_pool.allocate_node(); @@ -593,13 +593,13 @@ class private_adaptive_pool //!An allocator always compares to true, as memory allocated with one //!instance can be deallocated by another instance - BOOST_CONTAINER_ATTRIBUTE_NODISCARD + BOOST_CONTAINER_NODISCARD friend bool operator==(const private_adaptive_pool &, const private_adaptive_pool &) BOOST_NOEXCEPT_OR_NOTHROW { return true; } //!An allocator always compares to false, as memory allocated with one //!instance can be deallocated by another instance - BOOST_CONTAINER_ATTRIBUTE_NODISCARD + BOOST_CONTAINER_NODISCARD friend bool operator!=(const private_adaptive_pool &, const private_adaptive_pool &) BOOST_NOEXCEPT_OR_NOTHROW { return false; } diff --git a/include/boost/container/allocator.hpp b/include/boost/container/allocator.hpp index da19e0b..1f58668 100644 --- a/include/boost/container/allocator.hpp +++ b/include/boost/container/allocator.hpp @@ -179,7 +179,7 @@ class allocator //!Throws bad_alloc if there is no enough memory //!If Version is 2, this allocated memory can only be deallocated //!with deallocate() or (for Version == 2) deallocate_many() - BOOST_CONTAINER_ATTRIBUTE_NODISCARD pointer allocate(size_type count, const void * hint= 0) + BOOST_CONTAINER_NODISCARD pointer allocate(size_type count, const void * hint= 0) { (void)hint; if(count > size_type(-1)/(2u*sizeof(T))) @@ -197,7 +197,7 @@ class allocator //!Returns the maximum number of elements that could be allocated. //!Never throws - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline size_type max_size() const BOOST_NOEXCEPT_OR_NOTHROW + BOOST_CONTAINER_NODISCARD inline size_type max_size() const BOOST_NOEXCEPT_OR_NOTHROW { return size_type(-1)/(2u*sizeof(T)); } //!Swaps two allocators, does nothing @@ -207,13 +207,13 @@ class allocator //!An allocator always compares to true, as memory allocated with one //!instance can be deallocated by another instance - BOOST_CONTAINER_ATTRIBUTE_NODISCARD + BOOST_CONTAINER_NODISCARD friend bool operator==(const allocator &, const allocator &) BOOST_NOEXCEPT_OR_NOTHROW { return true; } //!An allocator always compares to false, as memory allocated with one //!instance can be deallocated by another instance - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline friend bool operator!=(const allocator &, const allocator &) BOOST_NOEXCEPT_OR_NOTHROW { return false; } @@ -221,7 +221,7 @@ class allocator //!capabilities. Memory allocated with this function can only be deallocated with deallocate() //!or deallocate_many(). //!This function is available only with Version == 2 - BOOST_CONTAINER_ATTRIBUTE_NODISCARD pointer allocation_command(allocation_type command, + BOOST_CONTAINER_NODISCARD pointer allocation_command(allocation_type command, size_type limit_size, size_type &prefer_in_recvd_out_size, pointer &reuse) @@ -240,7 +240,7 @@ class allocator //!Memory must not have been allocated with //!allocate_one or allocate_individual. //!This function is available only with Version == 2 - BOOST_CONTAINER_ATTRIBUTE_NODISCARD size_type size(pointer p) const BOOST_NOEXCEPT_OR_NOTHROW + BOOST_CONTAINER_NODISCARD size_type size(pointer p) const BOOST_NOEXCEPT_OR_NOTHROW { BOOST_CONTAINER_STATIC_ASSERT(( Version > 1 )); return dlmalloc_size(p); @@ -250,7 +250,7 @@ class allocator //!must be deallocated only with deallocate_one(). //!Throws bad_alloc if there is no enough memory //!This function is available only with Version == 2 - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline pointer allocate_one() + BOOST_CONTAINER_NODISCARD inline pointer allocate_one() { BOOST_CONTAINER_STATIC_ASSERT(( Version > 1 )); return this->allocate(1); diff --git a/include/boost/container/allocator_traits.hpp b/include/boost/container/allocator_traits.hpp index f32a3d0..a29a675 100644 --- a/include/boost/container/allocator_traits.hpp +++ b/include/boost/container/allocator_traits.hpp @@ -423,7 +423,7 @@ struct allocator_traits //! Returns: a.allocate(n) //! - BOOST_CONTAINER_ATTRIBUTE_NODISCARD + BOOST_CONTAINER_NODISCARD inline static pointer allocate(Allocator &a, size_type n) { return a.allocate(n); } @@ -435,7 +435,7 @@ struct allocator_traits //! Effects: calls a.allocate(n, p) if that call is well-formed; //! otherwise, invokes a.allocate(n) - BOOST_CONTAINER_ATTRIBUTE_NODISCARD + BOOST_CONTAINER_NODISCARD inline static pointer allocate(Allocator &a, size_type n, const_void_pointer p) { const bool value = boost::container::dtl:: @@ -460,7 +460,7 @@ struct allocator_traits //! Returns: a.max_size() if that expression is well-formed; otherwise, //! numeric_limits::max(). - BOOST_CONTAINER_ATTRIBUTE_NODISCARD + BOOST_CONTAINER_NODISCARD inline static size_type max_size(const Allocator &a) BOOST_NOEXCEPT_OR_NOTHROW { const bool value = allocator_traits_detail::has_max_size::value; diff --git a/include/boost/container/deque.hpp b/include/boost/container/deque.hpp index 271c17f..a7fe9f1 100644 --- a/include/boost/container/deque.hpp +++ b/include/boost/container/deque.hpp @@ -171,10 +171,10 @@ class deque_iterator public: - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline Pointer get_cur() const { return m_cur; } - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline index_pointer get_node() const { return m_node; } - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline Pointer get_first() const { return *m_node; } - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline Pointer get_last() const { return *m_node + get_block_ssize(); } + BOOST_CONTAINER_NODISCARD inline Pointer get_cur() const { return m_cur; } + BOOST_CONTAINER_NODISCARD inline index_pointer get_node() const { return m_node; } + BOOST_CONTAINER_NODISCARD inline Pointer get_first() const { return *m_node; } + BOOST_CONTAINER_NODISCARD inline Pointer get_last() const { return *m_node + get_block_ssize(); } inline deque_iterator(val_alloc_ptr x, index_pointer y) BOOST_NOEXCEPT_OR_NOTHROW : m_cur(x), m_node(y) @@ -209,7 +209,7 @@ class deque_iterator inline pointer operator->() const BOOST_NOEXCEPT_OR_NOTHROW { return this->m_cur; } - BOOST_CONTAINER_ATTRIBUTE_NODISCARD difference_type operator-(const deque_iterator& x) const BOOST_NOEXCEPT_OR_NOTHROW + BOOST_CONTAINER_NODISCARD difference_type operator-(const deque_iterator& x) const BOOST_NOEXCEPT_OR_NOTHROW { if(this->m_cur == x.m_cur){ //Includes when both are null return 0; @@ -289,7 +289,7 @@ class deque_iterator return *this; } - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline deque_iterator operator+(difference_type n) const BOOST_NOEXCEPT_OR_NOTHROW { deque_iterator tmp(*this); return tmp += n; } @@ -297,11 +297,11 @@ class deque_iterator deque_iterator& operator-=(difference_type n) BOOST_NOEXCEPT_OR_NOTHROW { return *this += -n; } - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline deque_iterator operator-(difference_type n) const BOOST_NOEXCEPT_OR_NOTHROW { deque_iterator tmp(*this); return tmp -= n; } - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline reference operator[](difference_type n) const BOOST_NOEXCEPT_OR_NOTHROW { BOOST_ASSERT(!!m_cur); @@ -320,31 +320,31 @@ class deque_iterator } //Comparisons - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline friend bool operator==(const deque_iterator& l, const deque_iterator& r) BOOST_NOEXCEPT_OR_NOTHROW { return l.m_cur == r.m_cur; } - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline friend bool operator!=(const deque_iterator& l, const deque_iterator& r) BOOST_NOEXCEPT_OR_NOTHROW { return l.m_cur != r.m_cur; } - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline friend bool operator<(const deque_iterator& l, const deque_iterator& r) BOOST_NOEXCEPT_OR_NOTHROW { return (l.m_node == r.m_node) ? (l.m_cur < r.m_cur) : (l.m_node < r.m_node); } - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline friend bool operator>(const deque_iterator& l, const deque_iterator& r) BOOST_NOEXCEPT_OR_NOTHROW { return r < l; } - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline friend bool operator<=(const deque_iterator& l, const deque_iterator& r) BOOST_NOEXCEPT_OR_NOTHROW { return !(r < l); } - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline friend bool operator>=(const deque_iterator& l, const deque_iterator& r) BOOST_NOEXCEPT_OR_NOTHROW { return !(l < r); } - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline friend deque_iterator operator+(difference_type n, deque_iterator x) BOOST_NOEXCEPT_OR_NOTHROW { return x += n; } @@ -1458,7 +1458,7 @@ class deque : protected deque_base::type, //! Throws: If allocator's copy constructor throws. //! //! Complexity: Constant. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline allocator_type get_allocator() const BOOST_NOEXCEPT_OR_NOTHROW { return Base::alloc(); } @@ -1469,7 +1469,7 @@ class deque : protected deque_base::type, //! Complexity: Constant. //! //! Note: Non-standard extension. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline const stored_allocator_type &get_stored_allocator() const BOOST_NOEXCEPT_OR_NOTHROW { return Base::alloc(); } @@ -1486,7 +1486,7 @@ class deque : protected deque_base::type, //! Complexity: Constant. //! //! Note: Non-standard extension. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline stored_allocator_type &get_stored_allocator() BOOST_NOEXCEPT_OR_NOTHROW { return Base::alloc(); } @@ -1495,7 +1495,7 @@ class deque : protected deque_base::type, //! Throws: Nothing. //! //! Complexity: Constant. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline iterator begin() BOOST_NOEXCEPT_OR_NOTHROW { return this->prot_start(); } @@ -1504,7 +1504,7 @@ class deque : protected deque_base::type, //! Throws: Nothing. //! //! Complexity: Constant. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline const_iterator begin() const BOOST_NOEXCEPT_OR_NOTHROW { return this->prot_start(); } @@ -1513,7 +1513,7 @@ class deque : protected deque_base::type, //! Throws: Nothing. //! //! Complexity: Constant. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline iterator end() BOOST_NOEXCEPT_OR_NOTHROW { return this->prot_finish(); } @@ -1522,7 +1522,7 @@ class deque : protected deque_base::type, //! Throws: Nothing. //! //! Complexity: Constant. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline const_iterator end() const BOOST_NOEXCEPT_OR_NOTHROW { return this->prot_finish(); } @@ -1532,7 +1532,7 @@ class deque : protected deque_base::type, //! Throws: Nothing. //! //! Complexity: Constant. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline reverse_iterator rbegin() BOOST_NOEXCEPT_OR_NOTHROW { return reverse_iterator(this->prot_finish()); } @@ -1542,7 +1542,7 @@ class deque : protected deque_base::type, //! Throws: Nothing. //! //! Complexity: Constant. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline const_reverse_iterator rbegin() const BOOST_NOEXCEPT_OR_NOTHROW { return const_reverse_iterator(this->prot_finish()); } @@ -1552,7 +1552,7 @@ class deque : protected deque_base::type, //! Throws: Nothing. //! //! Complexity: Constant. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline reverse_iterator rend() BOOST_NOEXCEPT_OR_NOTHROW { return reverse_iterator(this->prot_start()); } @@ -1562,7 +1562,7 @@ class deque : protected deque_base::type, //! Throws: Nothing. //! //! Complexity: Constant. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline const_reverse_iterator rend() const BOOST_NOEXCEPT_OR_NOTHROW { return const_reverse_iterator(this->prot_start()); } @@ -1571,7 +1571,7 @@ class deque : protected deque_base::type, //! Throws: Nothing. //! //! Complexity: Constant. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline const_iterator cbegin() const BOOST_NOEXCEPT_OR_NOTHROW { return this->prot_start(); } @@ -1580,7 +1580,7 @@ class deque : protected deque_base::type, //! Throws: Nothing. //! //! Complexity: Constant. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline const_iterator cend() const BOOST_NOEXCEPT_OR_NOTHROW { return this->prot_finish(); } @@ -1590,7 +1590,7 @@ class deque : protected deque_base::type, //! Throws: Nothing. //! //! Complexity: Constant. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline const_reverse_iterator crbegin() const BOOST_NOEXCEPT_OR_NOTHROW { return const_reverse_iterator(this->prot_finish()); } @@ -1600,7 +1600,7 @@ class deque : protected deque_base::type, //! Throws: Nothing. //! //! Complexity: Constant. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline const_reverse_iterator crend() const BOOST_NOEXCEPT_OR_NOTHROW { return const_reverse_iterator(this->prot_start()); } @@ -1615,7 +1615,7 @@ class deque : protected deque_base::type, //! Throws: Nothing. //! //! Complexity: Constant. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline bool empty() const BOOST_NOEXCEPT_OR_NOTHROW { return this->prot_empty(); } @@ -1624,7 +1624,7 @@ class deque : protected deque_base::type, //! Throws: Nothing. //! //! Complexity: Constant. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline size_type size() const BOOST_NOEXCEPT_OR_NOTHROW { return this->prot_size(); } @@ -1636,7 +1636,7 @@ class deque : protected deque_base::type, //! Complexity: Constant. //! //! Note: Non-standard extension. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline size_type back_capacity() const BOOST_NOEXCEPT_OR_NOTHROW { return size_type(this->size() + this->prot_back_free_capacity()); } @@ -1648,7 +1648,7 @@ class deque : protected deque_base::type, //! Complexity: Constant. //! //! Note: Non-standard extension. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline size_type front_capacity() const BOOST_NOEXCEPT_OR_NOTHROW { return size_type(this->size() + this->prot_front_free_capacity()); } @@ -1701,7 +1701,7 @@ class deque : protected deque_base::type, //! Throws: Nothing. //! //! Complexity: Constant. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline size_type max_size() const BOOST_NOEXCEPT_OR_NOTHROW { return allocator_traits_type::max_size(this->alloc()); } @@ -1792,7 +1792,7 @@ class deque : protected deque_base::type, //! Throws: Nothing. //! //! Complexity: Constant. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline reference front() BOOST_NOEXCEPT_OR_NOTHROW { BOOST_ASSERT(!this->empty()); @@ -1807,7 +1807,7 @@ class deque : protected deque_base::type, //! Throws: Nothing. //! //! Complexity: Constant. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline const_reference front() const BOOST_NOEXCEPT_OR_NOTHROW { BOOST_ASSERT(!this->empty()); @@ -1822,7 +1822,7 @@ class deque : protected deque_base::type, //! Throws: Nothing. //! //! Complexity: Constant. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline reference back() BOOST_NOEXCEPT_OR_NOTHROW { BOOST_ASSERT(!this->empty()); @@ -1837,7 +1837,7 @@ class deque : protected deque_base::type, //! Throws: Nothing. //! //! Complexity: Constant. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline const_reference back() const BOOST_NOEXCEPT_OR_NOTHROW { BOOST_ASSERT(!this->empty()); @@ -1852,7 +1852,7 @@ class deque : protected deque_base::type, //! Throws: Nothing. //! //! Complexity: Constant. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline reference operator[](size_type n) BOOST_NOEXCEPT_OR_NOTHROW { BOOST_ASSERT(this->size() > n); @@ -1867,7 +1867,7 @@ class deque : protected deque_base::type, //! Throws: Nothing. //! //! Complexity: Constant. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline const_reference operator[](size_type n) const BOOST_NOEXCEPT_OR_NOTHROW { BOOST_ASSERT(this->size() > n); @@ -1885,7 +1885,7 @@ class deque : protected deque_base::type, //! Complexity: Constant. //! //! Note: Non-standard extension - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline iterator nth(size_type n) BOOST_NOEXCEPT_OR_NOTHROW { BOOST_ASSERT(this->size() >= n); @@ -1903,7 +1903,7 @@ class deque : protected deque_base::type, //! Complexity: Constant. //! //! Note: Non-standard extension - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline const_iterator nth(size_type n) const BOOST_NOEXCEPT_OR_NOTHROW { BOOST_ASSERT(this->size() >= n); @@ -1920,7 +1920,7 @@ class deque : protected deque_base::type, //! Complexity: Constant. //! //! Note: Non-standard extension - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline size_type index_of(iterator p) BOOST_NOEXCEPT_OR_NOTHROW { //Range checked priv_index_of @@ -1937,7 +1937,7 @@ class deque : protected deque_base::type, //! Complexity: Constant. //! //! Note: Non-standard extension - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline size_type index_of(const_iterator p) const BOOST_NOEXCEPT_OR_NOTHROW { //Range checked priv_index_of @@ -1952,7 +1952,7 @@ class deque : protected deque_base::type, //! Throws: range_error if n >= size() //! //! Complexity: Constant. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline reference at(size_type n) { this->priv_throw_if_out_of_range(n); @@ -1967,7 +1967,7 @@ class deque : protected deque_base::type, //! Throws: range_error if n >= size() //! //! Complexity: Constant. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline const_reference at(size_type n) const { this->priv_throw_if_out_of_range(n); @@ -2435,42 +2435,42 @@ class deque : protected deque_base::type, //! Effects: Returns true if x and y are equal //! //! Complexity: Linear to the number of elements in the container. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline friend bool operator==(const deque& x, const deque& y) { return x.size() == y.size() && ::boost::container::algo_equal(x.begin(), x.end(), y.begin()); } //! Effects: Returns true if x and y are unequal //! //! Complexity: Linear to the number of elements in the container. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline friend bool operator!=(const deque& x, const deque& y) { return !(x == y); } //! Effects: Returns true if x is less than y //! //! Complexity: Linear to the number of elements in the container. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline friend bool operator<(const deque& x, const deque& y) { return ::boost::container::algo_lexicographical_compare(x.begin(), x.end(), y.begin(), y.end()); } //! Effects: Returns true if x is greater than y //! //! Complexity: Linear to the number of elements in the container. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline friend bool operator>(const deque& x, const deque& y) { return y < x; } //! Effects: Returns true if x is equal or less than y //! //! Complexity: Linear to the number of elements in the container. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline friend bool operator<=(const deque& x, const deque& y) { return !(y < x); } //! Effects: Returns true if x is equal or greater than y //! //! Complexity: Linear to the number of elements in the container. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline friend bool operator>=(const deque& x, const deque& y) { return !(x < y); } diff --git a/include/boost/container/detail/flat_tree.hpp b/include/boost/container/detail/flat_tree.hpp index e8eb51b..ed19420 100644 --- a/include/boost/container/detail/flat_tree.hpp +++ b/include/boost/container/detail/flat_tree.hpp @@ -772,87 +772,87 @@ class flat_tree public: // accessors: - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline Compare key_comp() const { return this->m_data.get_comp(); } - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline value_compare value_comp() const { return this->m_data; } - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline allocator_type get_allocator() const { return this->m_data.m_seq.get_allocator(); } - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline get_stored_allocator_const_return_t get_stored_allocator() const { return flat_tree_get_stored_allocator(this->m_data.m_seq, dtl::bool_()); } - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline get_stored_allocator_noconst_return_t get_stored_allocator() { return flat_tree_get_stored_allocator(this->m_data.m_seq, dtl::bool_()); } - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline iterator begin() { return this->m_data.m_seq.begin(); } - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline const_iterator begin() const { return this->cbegin(); } - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline const_iterator cbegin() const { return this->m_data.m_seq.begin(); } - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline iterator end() { return this->m_data.m_seq.end(); } - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline const_iterator end() const { return this->cend(); } - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline const_iterator cend() const { return this->m_data.m_seq.end(); } - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline reverse_iterator rbegin() { return reverse_iterator(this->end()); } - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline const_reverse_iterator rbegin() const { return this->crbegin(); } - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline const_reverse_iterator crbegin() const { return const_reverse_iterator(this->cend()); } - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline reverse_iterator rend() { return reverse_iterator(this->begin()); } - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline const_reverse_iterator rend() const { return this->crend(); } - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline const_reverse_iterator crend() const { return const_reverse_iterator(this->cbegin()); } - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline bool empty() const { return this->m_data.m_seq.empty(); } - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline size_type size() const { return this->m_data.m_seq.size(); } - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline size_type max_size() const { return this->m_data.m_seq.max_size(); } @@ -1299,7 +1299,7 @@ class flat_tree return flat_tree_nth(this->m_data.m_seq, n, dtl::bool_()); } - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline const_iterator nth(size_type n) const BOOST_NOEXCEPT_OR_NOTHROW { const bool value = boost::container::dtl:: @@ -1307,7 +1307,7 @@ class flat_tree return flat_tree_nth(this->m_data.m_seq, n, dtl::bool_()); } - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline size_type index_of(iterator p) BOOST_NOEXCEPT_OR_NOTHROW { const bool value = boost::container::dtl:: @@ -1315,7 +1315,7 @@ class flat_tree return flat_tree_index_of(this->m_data.m_seq, p, dtl::bool_()); } - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline size_type index_of(const_iterator p) const BOOST_NOEXCEPT_OR_NOTHROW { const bool value = boost::container::dtl:: @@ -1324,7 +1324,7 @@ class flat_tree } // set operations: - BOOST_CONTAINER_ATTRIBUTE_NODISCARD + BOOST_CONTAINER_NODISCARD iterator find(const key_type& k) { iterator i = this->lower_bound(k); @@ -1335,7 +1335,7 @@ class flat_tree return i; } - BOOST_CONTAINER_ATTRIBUTE_NODISCARD + BOOST_CONTAINER_NODISCARD const_iterator find(const key_type& k) const { const_iterator i = this->lower_bound(k); @@ -1348,7 +1348,7 @@ class flat_tree } template - BOOST_CONTAINER_ATTRIBUTE_NODISCARD + BOOST_CONTAINER_NODISCARD typename dtl::enable_if_transparent::type find(const K& k) { @@ -1361,7 +1361,7 @@ class flat_tree } template - BOOST_CONTAINER_ATTRIBUTE_NODISCARD + BOOST_CONTAINER_NODISCARD typename dtl::enable_if_transparent::type find(const K& k) const { @@ -1374,7 +1374,7 @@ class flat_tree return i; } - BOOST_CONTAINER_ATTRIBUTE_NODISCARD + BOOST_CONTAINER_NODISCARD size_type count(const key_type& k) const { std::pair p = this->equal_range(k); @@ -1383,7 +1383,7 @@ class flat_tree } template - BOOST_CONTAINER_ATTRIBUTE_NODISCARD + BOOST_CONTAINER_NODISCARD typename dtl::enable_if_transparent::type count(const K& k) const { @@ -1392,11 +1392,11 @@ class flat_tree return n; } - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline bool contains(const key_type& x) const + BOOST_CONTAINER_NODISCARD inline bool contains(const key_type& x) const { return this->find(x) != this->cend(); } template - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline typename dtl::enable_if_transparent::type contains(const K& x) const { return this->find(x) != this->cend(); } @@ -1439,88 +1439,88 @@ class flat_tree , dtl::bool_()); } - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline iterator lower_bound(const key_type& k) { return this->priv_lower_bound(this->begin(), this->end(), k); } - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline const_iterator lower_bound(const key_type& k) const { return this->priv_lower_bound(this->cbegin(), this->cend(), k); } template - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline typename dtl::enable_if_transparent::type lower_bound(const K& k) { return this->priv_lower_bound(this->begin(), this->end(), k); } template - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline typename dtl::enable_if_transparent::type lower_bound(const K& k) const { return this->priv_lower_bound(this->cbegin(), this->cend(), k); } - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline iterator upper_bound(const key_type& k) { return this->priv_upper_bound(this->begin(), this->end(), k); } - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline const_iterator upper_bound(const key_type& k) const { return this->priv_upper_bound(this->cbegin(), this->cend(), k); } template - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline typename dtl::enable_if_transparent::type upper_bound(const K& k) { return this->priv_upper_bound(this->begin(), this->end(), k); } template - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline typename dtl::enable_if_transparent::type upper_bound(const K& k) const { return this->priv_upper_bound(this->cbegin(), this->cend(), k); } - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline std::pair equal_range(const key_type& k) { return this->priv_equal_range(this->begin(), this->end(), k); } - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline std::pair equal_range(const key_type& k) const { return this->priv_equal_range(this->cbegin(), this->cend(), k); } template - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline typename dtl::enable_if_transparent >::type equal_range(const K& k) { return this->priv_equal_range(this->begin(), this->end(), k); } template - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline typename dtl::enable_if_transparent >::type equal_range(const K& k) const { return this->priv_equal_range(this->cbegin(), this->cend(), k); } - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline std::pair lower_bound_range(const key_type& k) { return this->priv_lower_bound_range(this->begin(), this->end(), k); } - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline std::pair lower_bound_range(const key_type& k) const { return this->priv_lower_bound_range(this->cbegin(), this->cend(), k); } template - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline typename dtl::enable_if_transparent >::type lower_bound_range(const K& k) { return this->priv_lower_bound_range(this->begin(), this->end(), k); } template - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline typename dtl::enable_if_transparent >::type lower_bound_range(const K& k) const { return this->priv_lower_bound_range(this->cbegin(), this->cend(), k); } - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline size_type capacity() const { const bool value = boost::container::dtl:: @@ -1536,15 +1536,15 @@ class flat_tree (flat_tree_reserve)(this->m_data.m_seq, cnt, dtl::bool_()); } - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline container_type extract_sequence() { return boost::move(m_data.m_seq); } - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline container_type &get_sequence_ref() { return m_data.m_seq; } - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline const container_type &get_sequence_cref() const { return m_data.m_seq; } @@ -1572,31 +1572,31 @@ class flat_tree m_data.m_seq = boost::move(seq); } - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline friend bool operator==(const flat_tree& x, const flat_tree& y) { return x.size() == y.size() && ::boost::container::algo_equal(x.begin(), x.end(), y.begin()); } - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline friend bool operator<(const flat_tree& x, const flat_tree& y) { return ::boost::container::algo_lexicographical_compare(x.begin(), x.end(), y.begin(), y.end()); } - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline friend bool operator!=(const flat_tree& x, const flat_tree& y) { return !(x == y); } - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline friend bool operator>(const flat_tree& x, const flat_tree& y) { return y < x; } - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline friend bool operator<=(const flat_tree& x, const flat_tree& y) { return !(y < x); } - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline friend bool operator>=(const flat_tree& x, const flat_tree& y) { return !(x < y); } diff --git a/include/boost/container/detail/tree.hpp b/include/boost/container/detail/tree.hpp index ef45bb8..e9a122d 100644 --- a/include/boost/container/detail/tree.hpp +++ b/include/boost/container/detail/tree.hpp @@ -705,56 +705,56 @@ class tree public: // accessors: - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline value_compare value_comp() const { return value_compare(this->key_comp()); } - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline key_compare key_comp() const { return this->icont().key_comp(); } - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline allocator_type get_allocator() const { return allocator_type(this->node_alloc()); } - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline const stored_allocator_type &get_stored_allocator() const { return this->node_alloc(); } - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline stored_allocator_type &get_stored_allocator() { return this->node_alloc(); } - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline iterator begin() { return iterator(this->icont().begin()); } - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline const_iterator begin() const { return this->cbegin(); } - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline iterator end() { return iterator(this->icont().end()); } - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline const_iterator end() const { return this->cend(); } - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline reverse_iterator rbegin() { return reverse_iterator(end()); } - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline const_reverse_iterator rbegin() const { return this->crbegin(); } - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline reverse_iterator rend() { return reverse_iterator(begin()); } - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline const_reverse_iterator rend() const { return this->crend(); } @@ -763,7 +763,7 @@ class tree //! Throws: Nothing. //! //! Complexity: Constant. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline const_iterator cbegin() const { return const_iterator(this->non_const_icont().begin()); } @@ -772,7 +772,7 @@ class tree //! Throws: Nothing. //! //! Complexity: Constant. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline const_iterator cend() const { return const_iterator(this->non_const_icont().end()); } @@ -782,7 +782,7 @@ class tree //! Throws: Nothing. //! //! Complexity: Constant. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline const_reverse_iterator crbegin() const { return const_reverse_iterator(cend()); } @@ -792,19 +792,19 @@ class tree //! Throws: Nothing. //! //! Complexity: Constant. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline const_reverse_iterator crend() const { return const_reverse_iterator(cbegin()); } - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline bool empty() const { return !this->size(); } - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline size_type size() const { return this->icont().size(); } - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline size_type max_size() const { return AllocHolder::max_size(); } @@ -1315,94 +1315,94 @@ class tree // search operations. Const and non-const overloads even if no iterator is returned // so splay implementations can to their rebalancing when searching in non-const versions - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline iterator find(const key_type& k) { return iterator(this->icont().find(k)); } - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline const_iterator find(const key_type& k) const { return const_iterator(this->non_const_icont().find(k)); } template - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline typename dtl::enable_if_transparent::type find(const K& k) { return iterator(this->icont().find(k, KeyNodeCompare(key_comp()))); } template - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline typename dtl::enable_if_transparent::type find(const K& k) const { return const_iterator(this->non_const_icont().find(k, KeyNodeCompare(key_comp()))); } - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline size_type count(const key_type& k) const { return size_type(this->icont().count(k)); } template - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline typename dtl::enable_if_transparent::type count(const K& k) const { return size_type(this->icont().count(k, KeyNodeCompare(key_comp()))); } - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline bool contains(const key_type& x) const { return this->find(x) != this->cend(); } template - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline typename dtl::enable_if_transparent::type contains(const K& x) const { return this->find(x) != this->cend(); } - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline iterator lower_bound(const key_type& k) { return iterator(this->icont().lower_bound(k)); } - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline const_iterator lower_bound(const key_type& k) const { return const_iterator(this->non_const_icont().lower_bound(k)); } template - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline typename dtl::enable_if_transparent::type lower_bound(const K& k) { return iterator(this->icont().lower_bound(k, KeyNodeCompare(key_comp()))); } template - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline typename dtl::enable_if_transparent::type lower_bound(const K& k) const { return const_iterator(this->non_const_icont().lower_bound(k, KeyNodeCompare(key_comp()))); } - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline iterator upper_bound(const key_type& k) { return iterator(this->icont().upper_bound(k)); } - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline const_iterator upper_bound(const key_type& k) const { return const_iterator(this->non_const_icont().upper_bound(k)); } template - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline typename dtl::enable_if_transparent::type upper_bound(const K& k) { return iterator(this->icont().upper_bound(k, KeyNodeCompare(key_comp()))); } template - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline typename dtl::enable_if_transparent::type upper_bound(const K& k) const { return const_iterator(this->non_const_icont().upper_bound(k, KeyNodeCompare(key_comp()))); } - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline std::pair equal_range(const key_type& k) { std::pair ret = this->icont().equal_range(k); return std::pair(iterator(ret.first), iterator(ret.second)); } - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline std::pair equal_range(const key_type& k) const { std::pair ret = @@ -1412,7 +1412,7 @@ class tree } template - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline typename dtl::enable_if_transparent >::type equal_range(const K& k) { @@ -1422,7 +1422,7 @@ class tree } template - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline typename dtl::enable_if_transparent >::type equal_range(const K& k) const { @@ -1432,7 +1432,7 @@ class tree (const_iterator(ret.first), const_iterator(ret.second)); } - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline std::pair lower_bound_range(const key_type& k) { std::pair ret = @@ -1440,7 +1440,7 @@ class tree return std::pair(iterator(ret.first), iterator(ret.second)); } - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline std::pair lower_bound_range(const key_type& k) const { std::pair ret = @@ -1450,7 +1450,7 @@ class tree } template - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline typename dtl::enable_if_transparent >::type lower_bound_range(const K& k) { @@ -1460,7 +1460,7 @@ class tree } template - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline typename dtl::enable_if_transparent >::type lower_bound_range(const K& k) const { @@ -1473,27 +1473,27 @@ class tree inline void rebalance() { intrusive_tree_proxy_t::rebalance(this->icont()); } - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline friend bool operator==(const tree& x, const tree& y) { return x.size() == y.size() && ::boost::container::algo_equal(x.begin(), x.end(), y.begin()); } - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline friend bool operator<(const tree& x, const tree& y) { return ::boost::container::algo_lexicographical_compare(x.begin(), x.end(), y.begin(), y.end()); } - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline friend bool operator!=(const tree& x, const tree& y) { return !(x == y); } - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline friend bool operator>(const tree& x, const tree& y) { return y < x; } - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline friend bool operator<=(const tree& x, const tree& y) { return !(y < x); } - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline friend bool operator>=(const tree& x, const tree& y) { return !(x < y); } diff --git a/include/boost/container/detail/workaround.hpp b/include/boost/container/detail/workaround.hpp index 9a4d27c..a93f69f 100644 --- a/include/boost/container/detail/workaround.hpp +++ b/include/boost/container/detail/workaround.hpp @@ -137,14 +137,14 @@ #endif #if defined(BOOST_CONTAINER_DISABLE_ATTRIBUTE_NODISCARD) - #define BOOST_CONTAINER_ATTRIBUTE_NODISCARD + #define BOOST_CONTAINER_NODISCARD #else #if defined(BOOST_GCC) && ((BOOST_GCC < 100000) || (__cplusplus < 201703L)) //Avoid using it in C++ < 17 and GCC < 10 because it warns in SFINAE contexts //(see https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89070) - #define BOOST_CONTAINER_ATTRIBUTE_NODISCARD + #define BOOST_CONTAINER_NODISCARD #else - #define BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_ATTRIBUTE_NODISCARD + #define BOOST_CONTAINER_NODISCARD BOOST_ATTRIBUTE_NODISCARD #endif #endif diff --git a/include/boost/container/devector.hpp b/include/boost/container/devector.hpp index 3508c6c..4c99caa 100644 --- a/include/boost/container/devector.hpp +++ b/include/boost/container/devector.hpp @@ -729,19 +729,19 @@ class devector * * **Complexity**: Constant. */ - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline allocator_type get_allocator() const BOOST_NOEXCEPT { return static_cast(m_); } - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline const allocator_type &get_stored_allocator() const BOOST_NOEXCEPT { return static_cast(m_); } - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline allocator_type &get_stored_allocator() BOOST_NOEXCEPT { return static_cast(m_); @@ -755,7 +755,7 @@ class devector * * **Complexity**: Constant. */ - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline iterator begin() BOOST_NOEXCEPT { return m_.buffer + m_.front_idx; @@ -767,7 +767,7 @@ class devector * * **Complexity**: Constant. */ - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline const_iterator begin() const BOOST_NOEXCEPT { return m_.buffer + m_.front_idx; @@ -778,7 +778,7 @@ class devector * * **Complexity**: Constant. */ - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline iterator end() BOOST_NOEXCEPT { return m_.buffer + m_.back_idx; @@ -789,7 +789,7 @@ class devector * * **Complexity**: Constant. */ - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline const_iterator end() const BOOST_NOEXCEPT { return m_.buffer + m_.back_idx; @@ -801,7 +801,7 @@ class devector * * **Complexity**: Constant. */ - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline reverse_iterator rbegin() BOOST_NOEXCEPT { return reverse_iterator(m_.buffer + m_.back_idx); @@ -814,7 +814,7 @@ class devector * * **Complexity**: Constant. */ - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline const_reverse_iterator rbegin() const BOOST_NOEXCEPT { return const_reverse_iterator(m_.buffer + m_.back_idx); @@ -826,7 +826,7 @@ class devector * * **Complexity**: Constant. */ - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline reverse_iterator rend() BOOST_NOEXCEPT { return reverse_iterator(m_.buffer + m_.front_idx); @@ -838,7 +838,7 @@ class devector * * **Complexity**: Constant. */ - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline const_reverse_iterator rend() const BOOST_NOEXCEPT { return const_reverse_iterator(m_.buffer + m_.front_idx); @@ -850,7 +850,7 @@ class devector * * **Complexity**: Constant. */ - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline const_iterator cbegin() const BOOST_NOEXCEPT { return m_.buffer + m_.front_idx; @@ -873,7 +873,7 @@ class devector * * **Complexity**: Constant. */ - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline const_reverse_iterator crbegin() const BOOST_NOEXCEPT { return const_reverse_iterator(m_.buffer + m_.back_idx); @@ -885,7 +885,7 @@ class devector * * **Complexity**: Constant. */ - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline const_reverse_iterator crend() const BOOST_NOEXCEPT { return const_reverse_iterator(m_.buffer + m_.front_idx); @@ -898,7 +898,7 @@ class devector * * **Complexity**: Constant. */ - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline bool empty() const BOOST_NOEXCEPT { return m_.front_idx == m_.back_idx; @@ -909,7 +909,7 @@ class devector * * **Complexity**: Constant. */ - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline size_type size() const BOOST_NOEXCEPT { return size_type(m_.back_idx - m_.front_idx); @@ -920,7 +920,7 @@ class devector * * **Complexity**: Constant. */ - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline size_type max_size() const BOOST_NOEXCEPT { size_type alloc_max = allocator_traits_type::max_size(get_allocator_ref()); @@ -937,7 +937,7 @@ class devector * * **Complexity**: Constant. */ - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline size_type capacity() const BOOST_NOEXCEPT { size_type const cap_reserve = m_.capacity/devector_min_free_fraction; @@ -950,7 +950,7 @@ class devector * * **Complexity**: Constant. */ - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline size_type front_free_capacity() const BOOST_NOEXCEPT { return m_.front_idx; @@ -962,7 +962,7 @@ class devector * * **Complexity**: Constant. */ - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline size_type back_free_capacity() const BOOST_NOEXCEPT { return size_type(m_.capacity - m_.back_idx); @@ -1274,7 +1274,7 @@ class devector * * **Complexity**: Constant. */ - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline reference operator[](size_type n) BOOST_NOEXCEPT { BOOST_ASSERT(n < size()); @@ -1288,7 +1288,7 @@ class devector * * **Complexity**: Constant. */ - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline const_reference operator[](size_type n) const BOOST_NOEXCEPT { BOOST_ASSERT(n < size()); @@ -1306,7 +1306,7 @@ class devector //! Complexity: Constant. //! //! Note: Non-standard extension - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline iterator nth(size_type n) BOOST_NOEXCEPT_OR_NOTHROW { BOOST_ASSERT(n <= size()); @@ -1324,7 +1324,7 @@ class devector //! Complexity: Constant. //! //! Note: Non-standard extension - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline const_iterator nth(size_type n) const BOOST_NOEXCEPT_OR_NOTHROW { BOOST_ASSERT(n <= size()); @@ -1341,7 +1341,7 @@ class devector //! Complexity: Constant. //! //! Note: Non-standard extension - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline size_type index_of(iterator p) BOOST_NOEXCEPT_OR_NOTHROW { BOOST_ASSERT(p >= begin()); @@ -1359,7 +1359,7 @@ class devector //! Complexity: Constant. //! //! Note: Non-standard extension - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline size_type index_of(const_iterator p) const BOOST_NOEXCEPT_OR_NOTHROW { BOOST_ASSERT(p >= cbegin()); @@ -1374,7 +1374,7 @@ class devector * * **Complexity**: Constant. */ - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline reference at(size_type n) { if (size() <= n) @@ -1389,7 +1389,7 @@ class devector * * **Complexity**: Constant. */ - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline const_reference at(size_type n) const { if (size() <= n) @@ -1404,7 +1404,7 @@ class devector * * **Complexity**: Constant. */ - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline reference front() BOOST_NOEXCEPT { BOOST_ASSERT(!empty()); @@ -1419,7 +1419,7 @@ class devector * * **Complexity**: Constant. */ - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline const_reference front() const BOOST_NOEXCEPT { BOOST_ASSERT(!empty()); @@ -1434,7 +1434,7 @@ class devector * * **Complexity**: Constant. */ - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline reference back() BOOST_NOEXCEPT { BOOST_ASSERT(!empty()); @@ -1449,7 +1449,7 @@ class devector * * **Complexity**: Constant. */ - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline const_reference back() const BOOST_NOEXCEPT { BOOST_ASSERT(!empty()); @@ -1464,7 +1464,7 @@ class devector * * **Complexity**: Constant. */ - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline T* data() BOOST_NOEXCEPT { return boost::movelib::to_raw_pointer(m_.buffer) + m_.front_idx; @@ -1477,7 +1477,7 @@ class devector * * **Complexity**: Constant. */ - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline const T* data() const BOOST_NOEXCEPT { return boost::movelib::to_raw_pointer(m_.buffer) + m_.front_idx; @@ -2163,27 +2163,27 @@ class devector m_.front_idx = m_.back_idx = 0; } - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline friend bool operator==(const devector& x, const devector& y) { return x.size() == y.size() && ::boost::container::algo_equal(x.begin(), x.end(), y.begin()); } - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline friend bool operator!=(const devector& x, const devector& y) { return !(x == y); } - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline friend bool operator< (const devector& x, const devector& y) { return boost::container::algo_lexicographical_compare(x.begin(), x.end(), y.begin(), y.end()); } - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline friend bool operator>(const devector& x, const devector& y) { return y < x; } - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline friend bool operator<=(const devector& x, const devector& y) { return !(y < x); } - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline friend bool operator>=(const devector& x, const devector& y) { return !(x < y); } @@ -2263,13 +2263,13 @@ class devector } } - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline size_type pos_to_index(const_iterator i) const { return static_cast(i - cbegin()); } - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline bool should_move_back(const_iterator i) const { return static_cast(this->pos_to_index(i)) >= this->size()/2u; diff --git a/include/boost/container/flat_map.hpp b/include/boost/container/flat_map.hpp index 802d532..fae452f 100644 --- a/include/boost/container/flat_map.hpp +++ b/include/boost/container/flat_map.hpp @@ -554,7 +554,7 @@ class flat_map //! was passed to the object's constructor. //! //! Complexity: Constant. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline allocator_type get_allocator() const BOOST_NOEXCEPT_OR_NOTHROW { return dtl::force_copy(m_flat_tree.get_allocator()); } @@ -565,7 +565,7 @@ class flat_map //! Complexity: Constant. //! //! Note: Non-standard extension. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline get_stored_allocator_noconst_return_t get_stored_allocator() BOOST_NOEXCEPT_OR_NOTHROW { impl_get_stored_allocator_noconst_return_t r = m_flat_tree.get_stored_allocator(); @@ -579,7 +579,7 @@ class flat_map //! Complexity: Constant. //! //! Note: Non-standard extension. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline get_stored_allocator_const_return_t get_stored_allocator() const BOOST_NOEXCEPT_OR_NOTHROW { impl_get_stored_allocator_const_return_t r = m_flat_tree.get_stored_allocator(); @@ -597,7 +597,7 @@ class flat_map //! Throws: Nothing. //! //! Complexity: Constant. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline iterator begin() BOOST_NOEXCEPT_OR_NOTHROW { return dtl::force_copy(m_flat_tree.begin()); } @@ -606,7 +606,7 @@ class flat_map //! Throws: Nothing. //! //! Complexity: Constant. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline const_iterator begin() const BOOST_NOEXCEPT_OR_NOTHROW { return dtl::force_copy(m_flat_tree.begin()); } @@ -615,7 +615,7 @@ class flat_map //! Throws: Nothing. //! //! Complexity: Constant. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline iterator end() BOOST_NOEXCEPT_OR_NOTHROW { return dtl::force_copy(m_flat_tree.end()); } @@ -624,7 +624,7 @@ class flat_map //! Throws: Nothing. //! //! Complexity: Constant. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline const_iterator end() const BOOST_NOEXCEPT_OR_NOTHROW { return dtl::force_copy(m_flat_tree.end()); } @@ -634,7 +634,7 @@ class flat_map //! Throws: Nothing. //! //! Complexity: Constant. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline reverse_iterator rbegin() BOOST_NOEXCEPT_OR_NOTHROW { return dtl::force_copy(m_flat_tree.rbegin()); } @@ -644,7 +644,7 @@ class flat_map //! Throws: Nothing. //! //! Complexity: Constant. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline const_reverse_iterator rbegin() const BOOST_NOEXCEPT_OR_NOTHROW { return dtl::force_copy(m_flat_tree.rbegin()); } @@ -654,7 +654,7 @@ class flat_map //! Throws: Nothing. //! //! Complexity: Constant. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline reverse_iterator rend() BOOST_NOEXCEPT_OR_NOTHROW { return dtl::force_copy(m_flat_tree.rend()); } @@ -664,7 +664,7 @@ class flat_map //! Throws: Nothing. //! //! Complexity: Constant. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline const_reverse_iterator rend() const BOOST_NOEXCEPT_OR_NOTHROW { return dtl::force_copy(m_flat_tree.rend()); } @@ -673,7 +673,7 @@ class flat_map //! Throws: Nothing. //! //! Complexity: Constant. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline const_iterator cbegin() const BOOST_NOEXCEPT_OR_NOTHROW { return dtl::force_copy(m_flat_tree.cbegin()); } @@ -682,7 +682,7 @@ class flat_map //! Throws: Nothing. //! //! Complexity: Constant. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline const_iterator cend() const BOOST_NOEXCEPT_OR_NOTHROW { return dtl::force_copy(m_flat_tree.cend()); } @@ -692,7 +692,7 @@ class flat_map //! Throws: Nothing. //! //! Complexity: Constant. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline const_reverse_iterator crbegin() const BOOST_NOEXCEPT_OR_NOTHROW { return dtl::force_copy(m_flat_tree.crbegin()); } @@ -702,7 +702,7 @@ class flat_map //! Throws: Nothing. //! //! Complexity: Constant. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline const_reverse_iterator crend() const BOOST_NOEXCEPT_OR_NOTHROW { return dtl::force_copy(m_flat_tree.crend()); } @@ -717,7 +717,7 @@ class flat_map //! Throws: Nothing. //! //! Complexity: Constant. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline bool empty() const BOOST_NOEXCEPT_OR_NOTHROW { return m_flat_tree.empty(); } @@ -726,7 +726,7 @@ class flat_map //! Throws: Nothing. //! //! Complexity: Constant. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline size_type size() const BOOST_NOEXCEPT_OR_NOTHROW { return m_flat_tree.size(); } @@ -735,7 +735,7 @@ class flat_map //! Throws: Nothing. //! //! Complexity: Constant. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline size_type max_size() const BOOST_NOEXCEPT_OR_NOTHROW { return m_flat_tree.max_size(); } @@ -745,7 +745,7 @@ class flat_map //! Throws: Nothing. //! //! Complexity: Constant. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline size_type capacity() const BOOST_NOEXCEPT_OR_NOTHROW { return m_flat_tree.capacity(); } @@ -939,22 +939,22 @@ class flat_map } //! @copydoc ::boost::container::flat_set::nth(size_type) - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline iterator nth(size_type n) BOOST_NOEXCEPT_OR_NOTHROW { return dtl::force_copy(m_flat_tree.nth(n)); } //! @copydoc ::boost::container::flat_set::nth(size_type) const - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline const_iterator nth(size_type n) const BOOST_NOEXCEPT_OR_NOTHROW { return dtl::force_copy(m_flat_tree.nth(n)); } //! @copydoc ::boost::container::flat_set::index_of(iterator) - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline size_type index_of(iterator p) BOOST_NOEXCEPT_OR_NOTHROW { return m_flat_tree.index_of(dtl::force_copy(p)); } //! @copydoc ::boost::container::flat_set::index_of(const_iterator) const - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline size_type index_of(const_iterator p) const BOOST_NOEXCEPT_OR_NOTHROW { return m_flat_tree.index_of(dtl::force_copy(p)); } @@ -963,7 +963,7 @@ class flat_map //! Throws: An exception object of type out_of_range if no such element is present. //! //! Complexity: logarithmic. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD T& at(const key_type& k) + BOOST_CONTAINER_NODISCARD T& at(const key_type& k) { iterator i = this->find(k); if(i == this->end()){ @@ -977,7 +977,7 @@ class flat_map //! Throws: An exception object of type out_of_range if no such element is present. //! //! Complexity: logarithmic. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD const T& at(const key_type& k) const + BOOST_CONTAINER_NODISCARD const T& at(const key_type& k) const { const_iterator i = this->find(k); if(i == this->cend()){ @@ -994,7 +994,7 @@ class flat_map //! //! Complexity: logarithmic. template - BOOST_CONTAINER_ATTRIBUTE_NODISCARD + BOOST_CONTAINER_NODISCARD BOOST_CONTAINER_DOC1ST ( T& , typename dtl::enable_if_transparent< key_compare @@ -1018,7 +1018,7 @@ class flat_map //! //! Complexity: logarithmic. template - BOOST_CONTAINER_ATTRIBUTE_NODISCARD + BOOST_CONTAINER_NODISCARD BOOST_CONTAINER_DOC1ST ( const T& , typename dtl::enable_if_transparent< key_compare @@ -1560,7 +1560,7 @@ class flat_map //! of which a was constructed. //! //! Complexity: Constant. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline key_compare key_comp() const { return dtl::force_copy(m_flat_tree.key_comp()); } @@ -1568,7 +1568,7 @@ class flat_map //! of the comparison object. //! //! Complexity: Constant. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline value_compare value_comp() const { return value_compare(dtl::force_copy(m_flat_tree.key_comp())); } @@ -1582,7 +1582,7 @@ class flat_map //! equivalent to x, or end() if such an element is not found. //! //! Complexity: Logarithmic. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline iterator find(const key_type& x) { return dtl::force_copy(m_flat_tree.find(x)); } @@ -1590,7 +1590,7 @@ class flat_map //! equivalent to x, or end() if such an element is not found. //! //! Complexity: Logarithmic. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline const_iterator find(const key_type& x) const { return dtl::force_copy(m_flat_tree.find(x)); } @@ -1602,7 +1602,7 @@ class flat_map //! //! Complexity: Logarithmic. template - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline iterator find(const K& x) { return dtl::force_copy(m_flat_tree.find(x)); } @@ -1614,14 +1614,14 @@ class flat_map //! //! Complexity: Logarithmic. template - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline const_iterator find(const K& x) const { return dtl::force_copy(m_flat_tree.find(x)); } //! Returns: The number of elements with key equivalent to x. //! //! Complexity: log(size())+count(k) - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline size_type count(const key_type& x) const { return static_cast(m_flat_tree.find(x) != m_flat_tree.end()); } @@ -1632,7 +1632,7 @@ class flat_map //! //! Complexity: log(size())+count(k) template - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline size_type count(const K& x) const //Don't use find() != end optimization here as transparent comparators with key K might //return a different range than key_type (which can only return a single element range) @@ -1642,7 +1642,7 @@ class flat_map //! equivalent to key in the container, otherwise false. //! //! Complexity: log(size()). - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline bool contains(const key_type& x) const { return m_flat_tree.find(x) != m_flat_tree.end(); } @@ -1654,7 +1654,7 @@ class flat_map //! //! Complexity: log(size()). template - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline bool contains(const K& x) const { return m_flat_tree.find(x) != m_flat_tree.end(); } @@ -1662,7 +1662,7 @@ class flat_map //! than x, or end() if such an element is not found. //! //! Complexity: Logarithmic. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline iterator lower_bound(const key_type& x) { return dtl::force_copy(m_flat_tree.lower_bound(x)); } @@ -1670,7 +1670,7 @@ class flat_map //! less than x, or end() if such an element is not found. //! //! Complexity: Logarithmic. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline const_iterator lower_bound(const key_type& x) const { return dtl::force_copy(m_flat_tree.lower_bound(x)); } @@ -1682,7 +1682,7 @@ class flat_map //! //! Complexity: Logarithmic. template - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline iterator lower_bound(const K& x) { return dtl::force_copy(m_flat_tree.lower_bound(x)); } @@ -1694,7 +1694,7 @@ class flat_map //! //! Complexity: Logarithmic. template - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline const_iterator lower_bound(const K& x) const { return dtl::force_copy(m_flat_tree.lower_bound(x)); } @@ -1702,7 +1702,7 @@ class flat_map //! than x, or end() if such an element is not found. //! //! Complexity: Logarithmic. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline iterator upper_bound(const key_type& x) { return dtl::force_copy(m_flat_tree.upper_bound(x)); } @@ -1710,7 +1710,7 @@ class flat_map //! greater than x, or end() if such an element is not found. //! //! Complexity: Logarithmic. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline const_iterator upper_bound(const key_type& x) const { return dtl::force_copy(m_flat_tree.upper_bound(x)); } @@ -1722,7 +1722,7 @@ class flat_map //! //! Complexity: Logarithmic. template - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline iterator upper_bound(const K& x) { return dtl::force_copy(m_flat_tree.upper_bound(x)); } @@ -1734,21 +1734,21 @@ class flat_map //! //! Complexity: Logarithmic. template - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline const_iterator upper_bound(const K& x) const { return dtl::force_copy(m_flat_tree.upper_bound(x)); } //! Effects: Equivalent to std::make_pair(this->lower_bound(k), this->upper_bound(k)). //! //! Complexity: Logarithmic. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline std::pair equal_range(const key_type& x) { return dtl::force_copy >(m_flat_tree.lower_bound_range(x)); } //! Effects: Equivalent to std::make_pair(this->lower_bound(k), this->upper_bound(k)). //! //! Complexity: Logarithmic. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline std::pair equal_range(const key_type& x) const { return dtl::force_copy >(m_flat_tree.lower_bound_range(x)); } @@ -1759,7 +1759,7 @@ class flat_map //! //! Complexity: Logarithmic. template - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline std::pair equal_range(const K& x) //Don't use lower_bound_range optimization here as transparent comparators with key K might //return a different range than key_type (which can only return a single element range) @@ -1772,7 +1772,7 @@ class flat_map //! //! Complexity: Logarithmic. template - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline std::pair equal_range(const K& x) const //Don't use lower_bound_range optimization here as transparent comparators with key K might //return a different range than key_type (which can only return a single element range) @@ -1785,7 +1785,7 @@ class flat_map //! Postcondition: this->empty() //! //! Throws: If secuence_type's move constructor throws - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline sequence_type extract_sequence() + BOOST_CONTAINER_NODISCARD inline sequence_type extract_sequence() { return boost::move(dtl::force(m_flat_tree.get_sequence_ref())); } @@ -1822,42 +1822,42 @@ class flat_map //! Effects: Returns true if x and y are equal //! //! Complexity: Linear to the number of elements in the container. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline friend bool operator==(const flat_map& x, const flat_map& y) { return x.size() == y.size() && ::boost::container::algo_equal(x.begin(), x.end(), y.begin()); } //! Effects: Returns true if x and y are unequal //! //! Complexity: Linear to the number of elements in the container. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline friend bool operator!=(const flat_map& x, const flat_map& y) { return !(x == y); } //! Effects: Returns true if x is less than y //! //! Complexity: Linear to the number of elements in the container. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline friend bool operator<(const flat_map& x, const flat_map& y) { return ::boost::container::algo_lexicographical_compare(x.begin(), x.end(), y.begin(), y.end()); } //! Effects: Returns true if x is greater than y //! //! Complexity: Linear to the number of elements in the container. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline friend bool operator>(const flat_map& x, const flat_map& y) { return y < x; } //! Effects: Returns true if x is equal or less than y //! //! Complexity: Linear to the number of elements in the container. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline friend bool operator<=(const flat_map& x, const flat_map& y) { return !(y < x); } //! Effects: Returns true if x is equal or greater than y //! //! Complexity: Linear to the number of elements in the container. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline friend bool operator>=(const flat_map& x, const flat_map& y) { return !(x < y); } @@ -2428,7 +2428,7 @@ class flat_multimap //! was passed to the object's constructor. //! //! Complexity: Constant. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline allocator_type get_allocator() const BOOST_NOEXCEPT_OR_NOTHROW { return dtl::force_copy(m_flat_tree.get_allocator()); } @@ -2439,7 +2439,7 @@ class flat_multimap //! Complexity: Constant. //! //! Note: Non-standard extension. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline stored_allocator_type &get_stored_allocator() BOOST_NOEXCEPT_OR_NOTHROW { return dtl::force(m_flat_tree.get_stored_allocator()); } @@ -2450,7 +2450,7 @@ class flat_multimap //! Complexity: Constant. //! //! Note: Non-standard extension. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline const stored_allocator_type &get_stored_allocator() const BOOST_NOEXCEPT_OR_NOTHROW { return dtl::force(m_flat_tree.get_stored_allocator()); } @@ -2465,7 +2465,7 @@ class flat_multimap //! Throws: Nothing. //! //! Complexity: Constant. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline iterator begin() BOOST_NOEXCEPT_OR_NOTHROW { return dtl::force_copy(m_flat_tree.begin()); } @@ -2474,7 +2474,7 @@ class flat_multimap //! Throws: Nothing. //! //! Complexity: Constant. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline const_iterator begin() const BOOST_NOEXCEPT_OR_NOTHROW { return dtl::force_copy(m_flat_tree.begin()); } @@ -2483,7 +2483,7 @@ class flat_multimap //! Throws: Nothing. //! //! Complexity: Constant. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline iterator end() BOOST_NOEXCEPT_OR_NOTHROW { return dtl::force_copy(m_flat_tree.end()); } @@ -2492,7 +2492,7 @@ class flat_multimap //! Throws: Nothing. //! //! Complexity: Constant. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline const_iterator end() const BOOST_NOEXCEPT_OR_NOTHROW { return dtl::force_copy(m_flat_tree.end()); } @@ -2502,7 +2502,7 @@ class flat_multimap //! Throws: Nothing. //! //! Complexity: Constant. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline reverse_iterator rbegin() BOOST_NOEXCEPT_OR_NOTHROW { return dtl::force_copy(m_flat_tree.rbegin()); } @@ -2512,7 +2512,7 @@ class flat_multimap //! Throws: Nothing. //! //! Complexity: Constant. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline const_reverse_iterator rbegin() const BOOST_NOEXCEPT_OR_NOTHROW { return dtl::force_copy(m_flat_tree.rbegin()); } @@ -2522,7 +2522,7 @@ class flat_multimap //! Throws: Nothing. //! //! Complexity: Constant. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline reverse_iterator rend() BOOST_NOEXCEPT_OR_NOTHROW { return dtl::force_copy(m_flat_tree.rend()); } @@ -2532,7 +2532,7 @@ class flat_multimap //! Throws: Nothing. //! //! Complexity: Constant. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline const_reverse_iterator rend() const BOOST_NOEXCEPT_OR_NOTHROW { return dtl::force_copy(m_flat_tree.rend()); } @@ -2541,7 +2541,7 @@ class flat_multimap //! Throws: Nothing. //! //! Complexity: Constant. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline const_iterator cbegin() const BOOST_NOEXCEPT_OR_NOTHROW { return dtl::force_copy(m_flat_tree.cbegin()); } @@ -2550,7 +2550,7 @@ class flat_multimap //! Throws: Nothing. //! //! Complexity: Constant. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline const_iterator cend() const BOOST_NOEXCEPT_OR_NOTHROW { return dtl::force_copy(m_flat_tree.cend()); } @@ -2560,7 +2560,7 @@ class flat_multimap //! Throws: Nothing. //! //! Complexity: Constant. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline const_reverse_iterator crbegin() const BOOST_NOEXCEPT_OR_NOTHROW { return dtl::force_copy(m_flat_tree.crbegin()); } @@ -2570,7 +2570,7 @@ class flat_multimap //! Throws: Nothing. //! //! Complexity: Constant. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline const_reverse_iterator crend() const BOOST_NOEXCEPT_OR_NOTHROW { return dtl::force_copy(m_flat_tree.crend()); } @@ -2585,7 +2585,7 @@ class flat_multimap //! Throws: Nothing. //! //! Complexity: Constant. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline bool empty() const BOOST_NOEXCEPT_OR_NOTHROW { return m_flat_tree.empty(); } @@ -2594,7 +2594,7 @@ class flat_multimap //! Throws: Nothing. //! //! Complexity: Constant. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline size_type size() const BOOST_NOEXCEPT_OR_NOTHROW { return m_flat_tree.size(); } @@ -2603,7 +2603,7 @@ class flat_multimap //! Throws: Nothing. //! //! Complexity: Constant. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline size_type max_size() const BOOST_NOEXCEPT_OR_NOTHROW { return m_flat_tree.max_size(); } @@ -2613,7 +2613,7 @@ class flat_multimap //! Throws: Nothing. //! //! Complexity: Constant. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline size_type capacity() const BOOST_NOEXCEPT_OR_NOTHROW { return m_flat_tree.capacity(); } @@ -2642,22 +2642,22 @@ class flat_multimap { m_flat_tree.shrink_to_fit(); } //! @copydoc ::boost::container::flat_set::nth(size_type) - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline iterator nth(size_type n) BOOST_NOEXCEPT_OR_NOTHROW { return dtl::force_copy(m_flat_tree.nth(n)); } //! @copydoc ::boost::container::flat_set::nth(size_type) const - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline const_iterator nth(size_type n) const BOOST_NOEXCEPT_OR_NOTHROW { return dtl::force_copy(m_flat_tree.nth(n)); } //! @copydoc ::boost::container::flat_set::index_of(iterator) - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline size_type index_of(iterator p) BOOST_NOEXCEPT_OR_NOTHROW { return m_flat_tree.index_of(dtl::force_copy(p)); } //! @copydoc ::boost::container::flat_set::index_of(const_iterator) const - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline size_type index_of(const_iterator p) const BOOST_NOEXCEPT_OR_NOTHROW { return m_flat_tree.index_of(dtl::force_copy(p)); } @@ -2954,7 +2954,7 @@ class flat_multimap //! of which a was constructed. //! //! Complexity: Constant. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline key_compare key_comp() const { return dtl::force_copy(m_flat_tree.key_comp()); } @@ -2962,7 +2962,7 @@ class flat_multimap //! of the comparison object. //! //! Complexity: Constant. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline value_compare value_comp() const { return value_compare(dtl::force_copy(m_flat_tree.key_comp())); } @@ -2976,7 +2976,7 @@ class flat_multimap //! equivalent to x, or end() if such an element is not found. //! //! Complexity: Logarithmic. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline iterator find(const key_type& x) { return dtl::force_copy(m_flat_tree.find(x)); } @@ -2984,7 +2984,7 @@ class flat_multimap //! equivalent to x, or end() if such an element is not found. //! //! Complexity: Logarithmic. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline const_iterator find(const key_type& x) const { return dtl::force_copy(m_flat_tree.find(x)); } @@ -2996,7 +2996,7 @@ class flat_multimap //! //! Complexity: Logarithmic. template - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline iterator find(const K& x) { return dtl::force_copy(m_flat_tree.find(x)); } @@ -3008,14 +3008,14 @@ class flat_multimap //! //! Complexity: Logarithmic. template - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline const_iterator find(const K& x) const { return dtl::force_copy(m_flat_tree.find(x)); } //! Returns: The number of elements with key equivalent to x. //! //! Complexity: log(size())+count(k) - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline size_type count(const key_type& x) const { return m_flat_tree.count(x); } @@ -3026,7 +3026,7 @@ class flat_multimap //! //! Complexity: log(size())+count(k) template - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline size_type count(const K& x) const { return m_flat_tree.count(x); } @@ -3034,7 +3034,7 @@ class flat_multimap //! equivalent to key in the container, otherwise false. //! //! Complexity: log(size()). - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline bool contains(const key_type& x) const { return m_flat_tree.find(x) != m_flat_tree.end(); } @@ -3046,7 +3046,7 @@ class flat_multimap //! //! Complexity: log(size()). template - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline bool contains(const K& x) const { return m_flat_tree.find(x) != m_flat_tree.end(); } @@ -3054,7 +3054,7 @@ class flat_multimap //! than x, or end() if such an element is not found. //! //! Complexity: Logarithmic - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline iterator lower_bound(const key_type& x) { return dtl::force_copy(m_flat_tree.lower_bound(x)); } @@ -3062,7 +3062,7 @@ class flat_multimap //! than x, or end() if such an element is not found. //! //! Complexity: Logarithmic - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline const_iterator lower_bound(const key_type& x) const { return dtl::force_copy(m_flat_tree.lower_bound(x)); } @@ -3074,7 +3074,7 @@ class flat_multimap //! //! Complexity: Logarithmic template - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline iterator lower_bound(const K& x) { return dtl::force_copy(m_flat_tree.lower_bound(x)); } @@ -3086,7 +3086,7 @@ class flat_multimap //! //! Complexity: Logarithmic template - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline const_iterator lower_bound(const K& x) const { return dtl::force_copy(m_flat_tree.lower_bound(x)); } @@ -3094,7 +3094,7 @@ class flat_multimap //! than x, or end() if such an element is not found. //! //! Complexity: Logarithmic - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline iterator upper_bound(const key_type& x) {return dtl::force_copy(m_flat_tree.upper_bound(x)); } @@ -3102,7 +3102,7 @@ class flat_multimap //! greater than x, or end() if such an element is not found. //! //! Complexity: Logarithmic - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline const_iterator upper_bound(const key_type& x) const { return dtl::force_copy(m_flat_tree.upper_bound(x)); } @@ -3114,7 +3114,7 @@ class flat_multimap //! //! Complexity: Logarithmic template - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline iterator upper_bound(const K& x) {return dtl::force_copy(m_flat_tree.upper_bound(x)); } @@ -3126,21 +3126,21 @@ class flat_multimap //! //! Complexity: Logarithmic template - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline const_iterator upper_bound(const K& x) const { return dtl::force_copy(m_flat_tree.upper_bound(x)); } //! Effects: Equivalent to std::make_pair(this->lower_bound(k), this->upper_bound(k)). //! //! Complexity: Logarithmic - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline std::pair equal_range(const key_type& x) { return dtl::force_copy >(m_flat_tree.equal_range(x)); } //! Effects: Equivalent to std::make_pair(this->lower_bound(k), this->upper_bound(k)). //! //! Complexity: Logarithmic - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline std::pair equal_range(const key_type& x) const { return dtl::force_copy >(m_flat_tree.equal_range(x)); } @@ -3151,7 +3151,7 @@ class flat_multimap //! //! Complexity: Logarithmic template - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline std::pair equal_range(const K& x) { return dtl::force_copy >(m_flat_tree.equal_range(x)); } @@ -3162,7 +3162,7 @@ class flat_multimap //! //! Complexity: Logarithmic template - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline std::pair equal_range(const K& x) const { return dtl::force_copy >(m_flat_tree.equal_range(x)); } @@ -3173,7 +3173,7 @@ class flat_multimap //! Postcondition: this->empty() //! //! Throws: If secuence_type's move constructor throws - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline sequence_type extract_sequence() { return boost::move(dtl::force(m_flat_tree.get_sequence_ref())); } @@ -3208,42 +3208,42 @@ class flat_multimap //! Effects: Returns true if x and y are equal //! //! Complexity: Linear to the number of elements in the container. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline friend bool operator==(const flat_multimap& x, const flat_multimap& y) { return x.size() == y.size() && ::boost::container::algo_equal(x.begin(), x.end(), y.begin()); } //! Effects: Returns true if x and y are unequal //! //! Complexity: Linear to the number of elements in the container. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline friend bool operator!=(const flat_multimap& x, const flat_multimap& y) { return !(x == y); } //! Effects: Returns true if x is less than y //! //! Complexity: Linear to the number of elements in the container. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline friend bool operator<(const flat_multimap& x, const flat_multimap& y) { return ::boost::container::algo_lexicographical_compare(x.begin(), x.end(), y.begin(), y.end()); } //! Effects: Returns true if x is greater than y //! //! Complexity: Linear to the number of elements in the container. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline friend bool operator>(const flat_multimap& x, const flat_multimap& y) { return y < x; } //! Effects: Returns true if x is equal or less than y //! //! Complexity: Linear to the number of elements in the container. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline friend bool operator<=(const flat_multimap& x, const flat_multimap& y) { return !(y < x); } //! Effects: Returns true if x is equal or greater than y //! //! Complexity: Linear to the number of elements in the container. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline friend bool operator>=(const flat_multimap& x, const flat_multimap& y) { return !(x < y); } diff --git a/include/boost/container/list.hpp b/include/boost/container/list.hpp index 6a637db..c1840a3 100644 --- a/include/boost/container/list.hpp +++ b/include/boost/container/list.hpp @@ -421,7 +421,7 @@ class list //! Throws: If allocator's copy constructor throws. //! //! Complexity: Constant. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline allocator_type get_allocator() const BOOST_NOEXCEPT_OR_NOTHROW { return allocator_type(this->node_alloc()); } @@ -432,7 +432,7 @@ class list //! Complexity: Constant. //! //! Note: Non-standard extension. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline stored_allocator_type &get_stored_allocator() BOOST_NOEXCEPT_OR_NOTHROW { return this->node_alloc(); } @@ -443,7 +443,7 @@ class list //! Complexity: Constant. //! //! Note: Non-standard extension. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline const stored_allocator_type &get_stored_allocator() const BOOST_NOEXCEPT_OR_NOTHROW { return this->node_alloc(); } @@ -458,7 +458,7 @@ class list //! Throws: Nothing. //! //! Complexity: Constant. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline iterator begin() BOOST_NOEXCEPT_OR_NOTHROW { return iterator(this->icont().begin()); } @@ -467,7 +467,7 @@ class list //! Throws: Nothing. //! //! Complexity: Constant. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline const_iterator begin() const BOOST_NOEXCEPT_OR_NOTHROW { return this->cbegin(); } @@ -476,7 +476,7 @@ class list //! Throws: Nothing. //! //! Complexity: Constant. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline iterator end() BOOST_NOEXCEPT_OR_NOTHROW { return iterator(this->icont().end()); } @@ -485,7 +485,7 @@ class list //! Throws: Nothing. //! //! Complexity: Constant. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline const_iterator end() const BOOST_NOEXCEPT_OR_NOTHROW { return this->cend(); } @@ -495,7 +495,7 @@ class list //! Throws: Nothing. //! //! Complexity: Constant. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline reverse_iterator rbegin() BOOST_NOEXCEPT_OR_NOTHROW { return reverse_iterator(end()); } @@ -505,7 +505,7 @@ class list //! Throws: Nothing. //! //! Complexity: Constant. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline const_reverse_iterator rbegin() const BOOST_NOEXCEPT_OR_NOTHROW { return this->crbegin(); } @@ -515,7 +515,7 @@ class list //! Throws: Nothing. //! //! Complexity: Constant. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline reverse_iterator rend() BOOST_NOEXCEPT_OR_NOTHROW { return reverse_iterator(begin()); } @@ -525,7 +525,7 @@ class list //! Throws: Nothing. //! //! Complexity: Constant. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline const_reverse_iterator rend() const BOOST_NOEXCEPT_OR_NOTHROW { return this->crend(); } @@ -534,7 +534,7 @@ class list //! Throws: Nothing. //! //! Complexity: Constant. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline const_iterator cbegin() const BOOST_NOEXCEPT_OR_NOTHROW { return const_iterator(this->non_const_icont().begin()); } @@ -543,7 +543,7 @@ class list //! Throws: Nothing. //! //! Complexity: Constant. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline const_iterator cend() const BOOST_NOEXCEPT_OR_NOTHROW { return const_iterator(this->non_const_icont().end()); } @@ -553,7 +553,7 @@ class list //! Throws: Nothing. //! //! Complexity: Constant. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline const_reverse_iterator crbegin() const BOOST_NOEXCEPT_OR_NOTHROW { return const_reverse_iterator(this->cend()); } @@ -563,7 +563,7 @@ class list //! Throws: Nothing. //! //! Complexity: Constant. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline const_reverse_iterator crend() const BOOST_NOEXCEPT_OR_NOTHROW { return const_reverse_iterator(this->cbegin()); } @@ -578,7 +578,7 @@ class list //! Throws: Nothing. //! //! Complexity: Constant. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline bool empty() const BOOST_NOEXCEPT_OR_NOTHROW { return !this->size(); } @@ -587,7 +587,7 @@ class list //! Throws: Nothing. //! //! Complexity: Constant. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline size_type size() const BOOST_NOEXCEPT_OR_NOTHROW { return this->icont().size(); } @@ -596,7 +596,7 @@ class list //! Throws: Nothing. //! //! Complexity: Constant. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline size_type max_size() const BOOST_NOEXCEPT_OR_NOTHROW { return AllocHolder::max_size(); } @@ -641,7 +641,7 @@ class list //! Throws: Nothing. //! //! Complexity: Constant. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline reference front() BOOST_NOEXCEPT_OR_NOTHROW { BOOST_ASSERT(!this->empty()); @@ -656,7 +656,7 @@ class list //! Throws: Nothing. //! //! Complexity: Constant. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline const_reference front() const BOOST_NOEXCEPT_OR_NOTHROW { BOOST_ASSERT(!this->empty()); @@ -671,7 +671,7 @@ class list //! Throws: Nothing. //! //! Complexity: Constant. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline reference back() BOOST_NOEXCEPT_OR_NOTHROW { BOOST_ASSERT(!this->empty()); @@ -686,7 +686,7 @@ class list //! Throws: Nothing. //! //! Complexity: Constant. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline const_reference back() const BOOST_NOEXCEPT_OR_NOTHROW { BOOST_ASSERT(!this->empty()); @@ -1329,42 +1329,42 @@ class list //! Effects: Returns true if x and y are equal //! //! Complexity: Linear to the number of elements in the container. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline friend bool operator==(const list& x, const list& y) { return x.size() == y.size() && ::boost::container::algo_equal(x.begin(), x.end(), y.begin()); } //! Effects: Returns true if x and y are unequal //! //! Complexity: Linear to the number of elements in the container. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline friend bool operator!=(const list& x, const list& y) { return !(x == y); } //! Effects: Returns true if x is less than y //! //! Complexity: Linear to the number of elements in the container. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline friend bool operator<(const list& x, const list& y) { return boost::container::algo_lexicographical_compare(x.begin(), x.end(), y.begin(), y.end()); } //! Effects: Returns true if x is greater than y //! //! Complexity: Linear to the number of elements in the container. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline friend bool operator>(const list& x, const list& y) { return y < x; } //! Effects: Returns true if x is equal or less than y //! //! Complexity: Linear to the number of elements in the container. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline friend bool operator<=(const list& x, const list& y) { return !(y < x); } //! Effects: Returns true if x is equal or greater than y //! //! Complexity: Linear to the number of elements in the container. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline friend bool operator>=(const list& x, const list& y) { return !(x < y); } diff --git a/include/boost/container/map.hpp b/include/boost/container/map.hpp index ca8cb54..710fecc 100644 --- a/include/boost/container/map.hpp +++ b/include/boost/container/map.hpp @@ -713,7 +713,7 @@ class map //! Returns: A reference to the element whose key is equivalent to x. //! Throws: An exception object of type out_of_range if no such element is present. //! Complexity: logarithmic. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD T& at(const key_type& k) + BOOST_CONTAINER_NODISCARD T& at(const key_type& k) { iterator i = this->find(k); if(i == this->end()){ @@ -725,7 +725,7 @@ class map //! Returns: A reference to the element whose key is equivalent to x. //! Throws: An exception object of type out_of_range if no such element is present. //! Complexity: logarithmic. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD const T& at(const key_type& k) const + BOOST_CONTAINER_NODISCARD const T& at(const key_type& k) const { const_iterator i = this->find(k); if(i == this->cend()){ @@ -742,7 +742,7 @@ class map //! //! Complexity: logarithmic. template - BOOST_CONTAINER_ATTRIBUTE_NODISCARD + BOOST_CONTAINER_NODISCARD BOOST_CONTAINER_DOC1ST ( T& , typename dtl::enable_if_transparent< key_compare @@ -766,7 +766,7 @@ class map //! //! Complexity: logarithmic. template - BOOST_CONTAINER_ATTRIBUTE_NODISCARD + BOOST_CONTAINER_NODISCARD BOOST_CONTAINER_DOC1ST ( const T& , typename dtl::enable_if_transparent< key_compare @@ -1304,7 +1304,7 @@ class map //! Returns: The number of elements with key equivalent to x. //! //! Complexity: log(size())+count(k) - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline size_type count(const key_type& x) const { return static_cast(this->find(x) != this->cend()); } @@ -1315,7 +1315,7 @@ class map //! //! Complexity: log(size())+count(k) template - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline size_type count(const K& x) const { return static_cast(this->find(x) != this->cend()); } diff --git a/include/boost/container/new_allocator.hpp b/include/boost/container/new_allocator.hpp index 464a7b7..615d9b9 100644 --- a/include/boost/container/new_allocator.hpp +++ b/include/boost/container/new_allocator.hpp @@ -151,7 +151,7 @@ class new_allocator //!Allocates memory for an array of count elements. //!Throws bad_alloc if there is no enough memory - BOOST_CONTAINER_ATTRIBUTE_NODISCARD + BOOST_CONTAINER_NODISCARD pointer allocate(size_type count) { return dtl::operator_new_allocate(count); @@ -166,7 +166,7 @@ class new_allocator //!Returns the maximum number of elements that could be allocated. //!Never throws - BOOST_CONTAINER_ATTRIBUTE_NODISCARD + BOOST_CONTAINER_NODISCARD inline size_type max_size() const BOOST_NOEXCEPT_OR_NOTHROW { return std::size_t(-1)/(2*sizeof(T)); } @@ -177,13 +177,13 @@ class new_allocator //!An new_allocator always compares to true, as memory allocated with one //!instance can be deallocated by another instance - BOOST_CONTAINER_ATTRIBUTE_NODISCARD + BOOST_CONTAINER_NODISCARD inline friend bool operator==(const new_allocator &, const new_allocator &) BOOST_NOEXCEPT_OR_NOTHROW { return true; } //!An new_allocator always compares to false, as memory allocated with one //!instance can be deallocated by another instance - BOOST_CONTAINER_ATTRIBUTE_NODISCARD + BOOST_CONTAINER_NODISCARD inline friend bool operator!=(const new_allocator &, const new_allocator &) BOOST_NOEXCEPT_OR_NOTHROW { return false; } }; diff --git a/include/boost/container/node_allocator.hpp b/include/boost/container/node_allocator.hpp index 71b178b..23e6036 100644 --- a/include/boost/container/node_allocator.hpp +++ b/include/boost/container/node_allocator.hpp @@ -137,13 +137,13 @@ class node_allocator //!Returns the number of elements that could be allocated. //!Never throws - BOOST_CONTAINER_ATTRIBUTE_NODISCARD + BOOST_CONTAINER_NODISCARD size_type max_size() const { return size_type(-1)/sizeof(T); } //!Allocate memory for an array of count elements. //!Throws bad_alloc if there is no enough memory - BOOST_CONTAINER_ATTRIBUTE_NODISCARD + BOOST_CONTAINER_NODISCARD pointer allocate(size_type count, const void * = 0) { if(BOOST_UNLIKELY(count > this->max_size())) @@ -188,7 +188,7 @@ class node_allocator singleton_t::instance().deallocate_free_blocks(); } - BOOST_CONTAINER_ATTRIBUTE_NODISCARD + BOOST_CONTAINER_NODISCARD pointer allocation_command (allocation_type command, size_type limit_size, size_type &prefer_in_recvd_out_size, pointer &reuse) { @@ -201,7 +201,7 @@ class node_allocator //!Returns maximum the number of objects the previously allocated memory //!pointed by p can hold. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD + BOOST_CONTAINER_NODISCARD size_type size(pointer p) const BOOST_NOEXCEPT_OR_NOTHROW { BOOST_CONTAINER_STATIC_ASSERT(( Version > 1 )); @@ -211,7 +211,7 @@ class node_allocator //!Allocates just one object. Memory allocated with this function //!must be deallocated only with deallocate_one(). //!Throws bad_alloc if there is no enough memory - BOOST_CONTAINER_ATTRIBUTE_NODISCARD + BOOST_CONTAINER_NODISCARD pointer allocate_one() { BOOST_CONTAINER_STATIC_ASSERT(( Version > 1 )); @@ -312,13 +312,13 @@ class node_allocator //!An allocator always compares to true, as memory allocated with one //!instance can be deallocated by another instance - BOOST_CONTAINER_ATTRIBUTE_NODISCARD + BOOST_CONTAINER_NODISCARD friend bool operator==(const node_allocator &, const node_allocator &) BOOST_NOEXCEPT_OR_NOTHROW { return true; } //!An allocator always compares to false, as memory allocated with one //!instance can be deallocated by another instance - BOOST_CONTAINER_ATTRIBUTE_NODISCARD + BOOST_CONTAINER_NODISCARD friend bool operator!=(const node_allocator &, const node_allocator &) BOOST_NOEXCEPT_OR_NOTHROW { return false; } diff --git a/include/boost/container/pmr/memory_resource.hpp b/include/boost/container/pmr/memory_resource.hpp index 5ca9196..5175e07 100644 --- a/include/boost/container/pmr/memory_resource.hpp +++ b/include/boost/container/pmr/memory_resource.hpp @@ -41,7 +41,7 @@ class BOOST_CONTAINER_NOVTABLE memory_resource //! Effects: Equivalent to //! `return do_allocate(bytes, alignment);` - BOOST_CONTAINER_ATTRIBUTE_NODISCARD void* allocate(std::size_t bytes, std::size_t alignment = max_align) + BOOST_CONTAINER_NODISCARD void* allocate(std::size_t bytes, std::size_t alignment = max_align) { //Obtain a pointer to enough storage and initialize the lifetime //of an array object of the given size in the address @@ -62,13 +62,13 @@ class BOOST_CONTAINER_NOVTABLE memory_resource //! Returns: //! `&a == &b || a.is_equal(b)`. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD + BOOST_CONTAINER_NODISCARD friend bool operator==(const memory_resource& a, const memory_resource& b) BOOST_NOEXCEPT { return &a == &b || a.is_equal(b); } //! Returns: //! !(a == b). - BOOST_CONTAINER_ATTRIBUTE_NODISCARD + BOOST_CONTAINER_NODISCARD friend bool operator!=(const memory_resource& a, const memory_resource& b) BOOST_NOEXCEPT { return !(a == b); } diff --git a/include/boost/container/pmr/polymorphic_allocator.hpp b/include/boost/container/pmr/polymorphic_allocator.hpp index cad9de2..0a7079b 100644 --- a/include/boost/container/pmr/polymorphic_allocator.hpp +++ b/include/boost/container/pmr/polymorphic_allocator.hpp @@ -78,7 +78,7 @@ class polymorphic_allocator //! Returns: Equivalent to //! `static_cast(m_resource->allocate(n * sizeof(T), alignof(T)))`. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD T* allocate(size_t n) + BOOST_CONTAINER_NODISCARD T* allocate(size_t n) { return static_cast(m_resource->allocate(n*sizeof(T), ::boost::move_detail::alignment_of::value)); } //! Requires: p was allocated from a memory resource, x, equal to *m_resource, diff --git a/include/boost/container/scoped_allocator.hpp b/include/boost/container/scoped_allocator.hpp index 0e51036..914f118 100644 --- a/include/boost/container/scoped_allocator.hpp +++ b/include/boost/container/scoped_allocator.hpp @@ -734,7 +734,7 @@ class scoped_allocator_adaptor //! Returns: //! allocator_traits:: max_size(outer_allocator()). - BOOST_CONTAINER_ATTRIBUTE_NODISCARD + BOOST_CONTAINER_NODISCARD inline size_type max_size() const BOOST_NOEXCEPT_OR_NOTHROW { return outer_traits_type::max_size(this->outer_allocator()); } @@ -749,13 +749,13 @@ class scoped_allocator_adaptor //! Returns: //! allocator_traits::allocate(outer_allocator(), n). - BOOST_CONTAINER_ATTRIBUTE_NODISCARD + BOOST_CONTAINER_NODISCARD inline pointer allocate(size_type n) { return outer_traits_type::allocate(this->outer_allocator(), n); } //! Returns: //! allocator_traits::allocate(outer_allocator(), n, hint). - BOOST_CONTAINER_ATTRIBUTE_NODISCARD + BOOST_CONTAINER_NODISCARD inline pointer allocate(size_type n, const_void_pointer hint) { return outer_traits_type::allocate(this->outer_allocator(), n, hint); } @@ -883,7 +883,7 @@ struct scoped_allocator_operator_equal /// @endcond template -BOOST_CONTAINER_ATTRIBUTE_NODISCARD +BOOST_CONTAINER_NODISCARD inline bool operator==(const scoped_allocator_adaptor& a ,const scoped_allocator_adaptor& b) { @@ -898,7 +898,7 @@ inline bool operator==(const scoped_allocator_adaptor -BOOST_CONTAINER_ATTRIBUTE_NODISCARD +BOOST_CONTAINER_NODISCARD inline bool operator!=(const scoped_allocator_adaptor& a ,const scoped_allocator_adaptor& b) { return !(a == b); } diff --git a/include/boost/container/set.hpp b/include/boost/container/set.hpp index 2c32cad..6aee281 100644 --- a/include/boost/container/set.hpp +++ b/include/boost/container/set.hpp @@ -841,7 +841,7 @@ class set //! Returns: The number of elements with key equivalent to x. //! //! Complexity: log(size())+count(k) - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline size_type count(const key_type& x) const { return static_cast(this->base_t::find(x) != this->base_t::cend()); } @@ -852,7 +852,7 @@ class set //! //! Complexity: log(size())+count(k) template - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline size_type count(const K& x) const { return static_cast(this->find(x) != this->cend()); } diff --git a/include/boost/container/slist.hpp b/include/boost/container/slist.hpp index 9800ac9..f3ee9c2 100644 --- a/include/boost/container/slist.hpp +++ b/include/boost/container/slist.hpp @@ -452,7 +452,7 @@ class slist //! Throws: If allocator's copy constructor throws. //! //! Complexity: Constant. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline allocator_type get_allocator() const BOOST_NOEXCEPT_OR_NOTHROW { return allocator_type(this->node_alloc()); } @@ -463,7 +463,7 @@ class slist //! Complexity: Constant. //! //! Note: Non-standard extension. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline stored_allocator_type &get_stored_allocator() BOOST_NOEXCEPT_OR_NOTHROW { return this->node_alloc(); } @@ -474,7 +474,7 @@ class slist //! Complexity: Constant. //! //! Note: Non-standard extension. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline const stored_allocator_type &get_stored_allocator() const BOOST_NOEXCEPT_OR_NOTHROW { return this->node_alloc(); } @@ -491,7 +491,7 @@ class slist //! Throws: Nothing. //! //! Complexity: Constant. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline iterator before_begin() BOOST_NOEXCEPT_OR_NOTHROW { return iterator(end()); } @@ -502,7 +502,7 @@ class slist //! Throws: Nothing. //! //! Complexity: Constant. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline const_iterator before_begin() const BOOST_NOEXCEPT_OR_NOTHROW { return this->cbefore_begin(); } @@ -511,7 +511,7 @@ class slist //! Throws: Nothing. //! //! Complexity: Constant. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline iterator begin() BOOST_NOEXCEPT_OR_NOTHROW { return iterator(this->icont().begin()); } @@ -520,7 +520,7 @@ class slist //! Throws: Nothing. //! //! Complexity: Constant. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline const_iterator begin() const BOOST_NOEXCEPT_OR_NOTHROW { return this->cbegin(); } @@ -529,7 +529,7 @@ class slist //! Throws: Nothing. //! //! Complexity: Constant. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline iterator end() BOOST_NOEXCEPT_OR_NOTHROW { return iterator(this->icont().end()); } @@ -538,7 +538,7 @@ class slist //! Throws: Nothing. //! //! Complexity: Constant. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline const_iterator end() const BOOST_NOEXCEPT_OR_NOTHROW { return this->cend(); } @@ -549,7 +549,7 @@ class slist //! Throws: Nothing. //! //! Complexity: Constant. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline const_iterator cbefore_begin() const BOOST_NOEXCEPT_OR_NOTHROW { return const_iterator(end()); } @@ -558,7 +558,7 @@ class slist //! Throws: Nothing. //! //! Complexity: Constant. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline const_iterator cbegin() const BOOST_NOEXCEPT_OR_NOTHROW { return const_iterator(this->non_const_icont().begin()); } @@ -567,7 +567,7 @@ class slist //! Throws: Nothing. //! //! Complexity: Constant. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline const_iterator cend() const BOOST_NOEXCEPT_OR_NOTHROW { return const_iterator(this->non_const_icont().end()); } @@ -580,7 +580,7 @@ class slist //! Complexity: Linear to the number of elements before i. //! //! Note: Non-standard extension. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline iterator previous(iterator p) BOOST_NOEXCEPT_OR_NOTHROW { return iterator(this->icont().previous(p.get())); } @@ -593,7 +593,7 @@ class slist //! Complexity: Linear to the number of elements before i. //! //! Note: Non-standard extension. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline const_iterator previous(const_iterator p) { return const_iterator(this->icont().previous(p.get())); } @@ -608,7 +608,7 @@ class slist //! Throws: Nothing. //! //! Complexity: Constant. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline bool empty() const { return !this->size(); } @@ -617,7 +617,7 @@ class slist //! Throws: Nothing. //! //! Complexity: Constant. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline size_type size() const { return this->icont().size(); } @@ -626,7 +626,7 @@ class slist //! Throws: Nothing. //! //! Complexity: Constant. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline size_type max_size() const { return AllocHolder::max_size(); } @@ -673,7 +673,7 @@ class slist //! Throws: Nothing. //! //! Complexity: Constant. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline reference front() { BOOST_ASSERT(!this->empty()); @@ -688,7 +688,7 @@ class slist //! Throws: Nothing. //! //! Complexity: Constant. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline const_reference front() const { BOOST_ASSERT(!this->empty()); @@ -1524,35 +1524,35 @@ class slist //! Effects: Returns true if x and y are unequal //! //! Complexity: Linear to the number of elements in the container. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline friend bool operator!=(const slist& x, const slist& y) { return !(x == y); } //! Effects: Returns true if x is less than y //! //! Complexity: Linear to the number of elements in the container. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline friend bool operator<(const slist& x, const slist& y) { return ::boost::container::algo_lexicographical_compare(x.begin(), x.end(), y.begin(), y.end()); } //! Effects: Returns true if x is greater than y //! //! Complexity: Linear to the number of elements in the container. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline friend bool operator>(const slist& x, const slist& y) { return y < x; } //! Effects: Returns true if x is equal or less than y //! //! Complexity: Linear to the number of elements in the container. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline friend bool operator<=(const slist& x, const slist& y) { return !(y < x); } //! Effects: Returns true if x is equal or greater than y //! //! Complexity: Linear to the number of elements in the container. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline friend bool operator>=(const slist& x, const slist& y) { return !(x < y); } diff --git a/include/boost/container/small_vector.hpp b/include/boost/container/small_vector.hpp index 7a5efd3..089ca84 100644 --- a/include/boost/container/small_vector.hpp +++ b/include/boost/container/small_vector.hpp @@ -389,7 +389,7 @@ class small_vector_base public: - BOOST_CONTAINER_ATTRIBUTE_NODISCARD bool is_small() const + BOOST_CONTAINER_NODISCARD bool is_small() const { return this->internal_storage() == this->data(); } protected: diff --git a/include/boost/container/stable_vector.hpp b/include/boost/container/stable_vector.hpp index dddcf47..0ced992 100644 --- a/include/boost/container/stable_vector.hpp +++ b/include/boost/container/stable_vector.hpp @@ -346,17 +346,17 @@ class stable_vector_iterator inline stable_vector_iterator & operator=(const stable_vector_iterator& other) BOOST_NOEXCEPT_OR_NOTHROW { m_pn = other.node_pointer(); return *this; } - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline node_ptr node_pointer() const BOOST_NOEXCEPT_OR_NOTHROW { return node_ptr_traits::static_cast_from(m_pn); } public: //Pointer like operators - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline reference operator*() const BOOST_NOEXCEPT_OR_NOTHROW { return node_pointer()->get_data(); } - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline pointer operator->() const BOOST_NOEXCEPT_OR_NOTHROW { return ptr_traits::pointer_to(this->operator*()); } @@ -381,7 +381,7 @@ class stable_vector_iterator inline stable_vector_iterator operator--(int) BOOST_NOEXCEPT_OR_NOTHROW { stable_vector_iterator tmp(*this); --*this; return stable_vector_iterator(tmp); } - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline reference operator[](difference_type off) const BOOST_NOEXCEPT_OR_NOTHROW { return node_ptr_traits::static_cast_from(this->m_pn->up[off])->get_data(); } @@ -392,7 +392,7 @@ class stable_vector_iterator return *this; } - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline friend stable_vector_iterator operator+(const stable_vector_iterator &left, difference_type off) BOOST_NOEXCEPT_OR_NOTHROW { stable_vector_iterator tmp(left); @@ -400,7 +400,7 @@ class stable_vector_iterator return tmp; } - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline friend stable_vector_iterator operator+(difference_type off, const stable_vector_iterator& right) BOOST_NOEXCEPT_OR_NOTHROW { stable_vector_iterator tmp(right); @@ -411,7 +411,7 @@ class stable_vector_iterator inline stable_vector_iterator& operator-=(difference_type off) BOOST_NOEXCEPT_OR_NOTHROW { *this += -off; return *this; } - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline friend stable_vector_iterator operator-(const stable_vector_iterator &left, difference_type off) BOOST_NOEXCEPT_OR_NOTHROW { stable_vector_iterator tmp(left); @@ -420,32 +420,32 @@ class stable_vector_iterator } //Difference - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline friend difference_type operator-(const stable_vector_iterator &left, const stable_vector_iterator &right) BOOST_NOEXCEPT_OR_NOTHROW { return left.m_pn->up - right.m_pn->up; } //Comparison operators - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline friend bool operator== (const stable_vector_iterator& l, const stable_vector_iterator& r) BOOST_NOEXCEPT_OR_NOTHROW { return l.m_pn == r.m_pn; } - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline friend bool operator!= (const stable_vector_iterator& l, const stable_vector_iterator& r) BOOST_NOEXCEPT_OR_NOTHROW { return l.m_pn != r.m_pn; } - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline friend bool operator< (const stable_vector_iterator& l, const stable_vector_iterator& r) BOOST_NOEXCEPT_OR_NOTHROW { return l.m_pn->up < r.m_pn->up; } - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline friend bool operator<= (const stable_vector_iterator& l, const stable_vector_iterator& r) BOOST_NOEXCEPT_OR_NOTHROW { return l.m_pn->up <= r.m_pn->up; } - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline friend bool operator> (const stable_vector_iterator& l, const stable_vector_iterator& r) BOOST_NOEXCEPT_OR_NOTHROW { return l.m_pn->up > r.m_pn->up; } - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline friend bool operator>= (const stable_vector_iterator& l, const stable_vector_iterator& r) BOOST_NOEXCEPT_OR_NOTHROW { return l.m_pn->up >= r.m_pn->up; } }; @@ -957,7 +957,7 @@ class stable_vector //! Throws: If allocator's copy constructor throws. //! //! Complexity: Constant. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline allocator_type get_allocator() const { return this->priv_node_alloc(); } @@ -968,7 +968,7 @@ class stable_vector //! Complexity: Constant. //! //! Note: Non-standard extension. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline const stored_allocator_type &get_stored_allocator() const BOOST_NOEXCEPT_OR_NOTHROW { return this->priv_node_alloc(); } @@ -979,7 +979,7 @@ class stable_vector //! Complexity: Constant. //! //! Note: Non-standard extension. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline stored_allocator_type &get_stored_allocator() BOOST_NOEXCEPT_OR_NOTHROW { return this->priv_node_alloc(); } @@ -994,7 +994,7 @@ class stable_vector //! Throws: Nothing. //! //! Complexity: Constant. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline iterator begin() BOOST_NOEXCEPT_OR_NOTHROW { return (this->index.empty()) ? this->end(): iterator(node_ptr_traits::static_cast_from(this->index.front())); } @@ -1003,7 +1003,7 @@ class stable_vector //! Throws: Nothing. //! //! Complexity: Constant. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline const_iterator begin() const BOOST_NOEXCEPT_OR_NOTHROW { return (this->index.empty()) ? this->cend() : const_iterator(node_ptr_traits::static_cast_from(this->index.front())) ; } @@ -1012,7 +1012,7 @@ class stable_vector //! Throws: Nothing. //! //! Complexity: Constant. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline iterator end() BOOST_NOEXCEPT_OR_NOTHROW { return iterator(this->priv_get_end_node()); } @@ -1021,7 +1021,7 @@ class stable_vector //! Throws: Nothing. //! //! Complexity: Constant. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline const_iterator end() const BOOST_NOEXCEPT_OR_NOTHROW { return const_iterator(this->priv_get_end_node()); } @@ -1031,7 +1031,7 @@ class stable_vector //! Throws: Nothing. //! //! Complexity: Constant. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline reverse_iterator rbegin() BOOST_NOEXCEPT_OR_NOTHROW { return reverse_iterator(this->end()); } @@ -1041,7 +1041,7 @@ class stable_vector //! Throws: Nothing. //! //! Complexity: Constant. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline const_reverse_iterator rbegin() const BOOST_NOEXCEPT_OR_NOTHROW { return const_reverse_iterator(this->end()); } @@ -1051,7 +1051,7 @@ class stable_vector //! Throws: Nothing. //! //! Complexity: Constant. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline reverse_iterator rend() BOOST_NOEXCEPT_OR_NOTHROW { return reverse_iterator(this->begin()); } @@ -1061,7 +1061,7 @@ class stable_vector //! Throws: Nothing. //! //! Complexity: Constant. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline const_reverse_iterator rend() const BOOST_NOEXCEPT_OR_NOTHROW { return const_reverse_iterator(this->begin()); } @@ -1070,7 +1070,7 @@ class stable_vector //! Throws: Nothing. //! //! Complexity: Constant. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline const_iterator cbegin() const BOOST_NOEXCEPT_OR_NOTHROW { return this->begin(); } @@ -1079,7 +1079,7 @@ class stable_vector //! Throws: Nothing. //! //! Complexity: Constant. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline const_iterator cend() const BOOST_NOEXCEPT_OR_NOTHROW { return this->end(); } @@ -1089,7 +1089,7 @@ class stable_vector //! Throws: Nothing. //! //! Complexity: Constant. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline const_reverse_iterator crbegin() const BOOST_NOEXCEPT_OR_NOTHROW { return this->rbegin(); } @@ -1099,7 +1099,7 @@ class stable_vector //! Throws: Nothing. //! //! Complexity: Constant. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline const_reverse_iterator crend()const BOOST_NOEXCEPT_OR_NOTHROW { return this->rend(); } @@ -1114,7 +1114,7 @@ class stable_vector //! Throws: Nothing. //! //! Complexity: Constant. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline bool empty() const BOOST_NOEXCEPT_OR_NOTHROW { return this->index.size() <= ExtraPointers; } @@ -1123,7 +1123,7 @@ class stable_vector //! Throws: Nothing. //! //! Complexity: Constant. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline size_type size() const BOOST_NOEXCEPT_OR_NOTHROW { const size_type index_size = this->index.size(); @@ -1135,7 +1135,7 @@ class stable_vector //! Throws: Nothing. //! //! Complexity: Constant. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline size_type max_size() const BOOST_NOEXCEPT_OR_NOTHROW { return this->index.max_size() - ExtraPointers; } @@ -1195,7 +1195,7 @@ class stable_vector //! Throws: Nothing. //! //! Complexity: Constant. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline size_type capacity() const BOOST_NOEXCEPT_OR_NOTHROW { const size_type index_size = this->index.size(); @@ -1283,7 +1283,7 @@ class stable_vector //! Throws: Nothing. //! //! Complexity: Constant. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline reference front() BOOST_NOEXCEPT_OR_NOTHROW { BOOST_ASSERT(!this->empty()); @@ -1298,7 +1298,7 @@ class stable_vector //! Throws: Nothing. //! //! Complexity: Constant. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline const_reference front() const BOOST_NOEXCEPT_OR_NOTHROW { BOOST_ASSERT(!this->empty()); @@ -1313,7 +1313,7 @@ class stable_vector //! Throws: Nothing. //! //! Complexity: Constant. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline reference back() BOOST_NOEXCEPT_OR_NOTHROW { BOOST_ASSERT(!this->empty()); @@ -1328,7 +1328,7 @@ class stable_vector //! Throws: Nothing. //! //! Complexity: Constant. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline const_reference back() const BOOST_NOEXCEPT_OR_NOTHROW { BOOST_ASSERT(!this->empty()); @@ -1343,7 +1343,7 @@ class stable_vector //! Throws: Nothing. //! //! Complexity: Constant. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline reference operator[](size_type n) BOOST_NOEXCEPT_OR_NOTHROW { BOOST_ASSERT(this->size() > n); @@ -1358,7 +1358,7 @@ class stable_vector //! Throws: Nothing. //! //! Complexity: Constant. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline const_reference operator[](size_type n) const BOOST_NOEXCEPT_OR_NOTHROW { BOOST_ASSERT(this->size() > n); @@ -1376,7 +1376,7 @@ class stable_vector //! Complexity: Constant. //! //! Note: Non-standard extension - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline iterator nth(size_type n) BOOST_NOEXCEPT_OR_NOTHROW { BOOST_ASSERT(this->size() >= n); @@ -1394,7 +1394,7 @@ class stable_vector //! Complexity: Constant. //! //! Note: Non-standard extension - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline const_iterator nth(size_type n) const BOOST_NOEXCEPT_OR_NOTHROW { BOOST_ASSERT(this->size() >= n); @@ -1411,7 +1411,7 @@ class stable_vector //! Complexity: Constant. //! //! Note: Non-standard extension - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline size_type index_of(iterator p) BOOST_NOEXCEPT_OR_NOTHROW { return this->priv_index_of(p.node_pointer()); } @@ -1425,7 +1425,7 @@ class stable_vector //! Complexity: Constant. //! //! Note: Non-standard extension - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline size_type index_of(const_iterator p) const BOOST_NOEXCEPT_OR_NOTHROW { return this->priv_index_of(p.node_pointer()); } @@ -1437,7 +1437,7 @@ class stable_vector //! Throws: range_error if n >= size() //! //! Complexity: Constant. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline reference at(size_type n) { if(n >= this->size()){ @@ -1454,7 +1454,7 @@ class stable_vector //! Throws: range_error if n >= size() //! //! Complexity: Constant. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline const_reference at(size_type n)const { if(n >= this->size()){ @@ -1791,42 +1791,42 @@ class stable_vector //! Effects: Returns true if x and y are equal //! //! Complexity: Linear to the number of elements in the container. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline friend bool operator==(const stable_vector& x, const stable_vector& y) { return x.size() == y.size() && ::boost::container::algo_equal(x.begin(), x.end(), y.begin()); } //! Effects: Returns true if x and y are unequal //! //! Complexity: Linear to the number of elements in the container. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline friend bool operator!=(const stable_vector& x, const stable_vector& y) { return !(x == y); } //! Effects: Returns true if x is less than y //! //! Complexity: Linear to the number of elements in the container. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline friend bool operator<(const stable_vector& x, const stable_vector& y) { return ::boost::container::algo_lexicographical_compare(x.begin(), x.end(), y.begin(), y.end()); } //! Effects: Returns true if x is greater than y //! //! Complexity: Linear to the number of elements in the container. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline friend bool operator>(const stable_vector& x, const stable_vector& y) { return y < x; } //! Effects: Returns true if x is equal or less than y //! //! Complexity: Linear to the number of elements in the container. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline friend bool operator<=(const stable_vector& x, const stable_vector& y) { return !(y < x); } //! Effects: Returns true if x is equal or greater than y //! //! Complexity: Linear to the number of elements in the container. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline friend bool operator>=(const stable_vector& x, const stable_vector& y) { return !(x < y); } diff --git a/include/boost/container/string.hpp b/include/boost/container/string.hpp index 363dbfb..5b03689 100644 --- a/include/boost/container/string.hpp +++ b/include/boost/container/string.hpp @@ -959,7 +959,7 @@ class basic_string //! Throws: If allocator's copy constructor throws. //! //! Complexity: Constant. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline allocator_type get_allocator() const BOOST_NOEXCEPT_OR_NOTHROW { return this->alloc(); } @@ -970,7 +970,7 @@ class basic_string //! Complexity: Constant. //! //! Note: Non-standard extension. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline stored_allocator_type &get_stored_allocator() BOOST_NOEXCEPT_OR_NOTHROW { return this->alloc(); } @@ -981,7 +981,7 @@ class basic_string //! Complexity: Constant. //! //! Note: Non-standard extension. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline const stored_allocator_type &get_stored_allocator() const BOOST_NOEXCEPT_OR_NOTHROW { return this->alloc(); } @@ -996,7 +996,7 @@ class basic_string //! Throws: Nothing. //! //! Complexity: Constant. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline iterator begin() BOOST_NOEXCEPT_OR_NOTHROW { return this->priv_addr(); } @@ -1005,7 +1005,7 @@ class basic_string //! Throws: Nothing. //! //! Complexity: Constant. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline const_iterator begin() const BOOST_NOEXCEPT_OR_NOTHROW { return this->priv_addr(); } @@ -1014,7 +1014,7 @@ class basic_string //! Throws: Nothing. //! //! Complexity: Constant. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline iterator end() BOOST_NOEXCEPT_OR_NOTHROW { return this->priv_end_addr(); } @@ -1023,7 +1023,7 @@ class basic_string //! Throws: Nothing. //! //! Complexity: Constant. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline const_iterator end() const BOOST_NOEXCEPT_OR_NOTHROW { return this->priv_end_addr(); } @@ -1033,7 +1033,7 @@ class basic_string //! Throws: Nothing. //! //! Complexity: Constant. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline reverse_iterator rbegin() BOOST_NOEXCEPT_OR_NOTHROW { return reverse_iterator(this->priv_end_addr()); } @@ -1043,7 +1043,7 @@ class basic_string //! Throws: Nothing. //! //! Complexity: Constant. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline const_reverse_iterator rbegin() const BOOST_NOEXCEPT_OR_NOTHROW { return this->crbegin(); } @@ -1053,7 +1053,7 @@ class basic_string //! Throws: Nothing. //! //! Complexity: Constant. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline reverse_iterator rend() BOOST_NOEXCEPT_OR_NOTHROW { return reverse_iterator(this->priv_addr()); } @@ -1063,7 +1063,7 @@ class basic_string //! Throws: Nothing. //! //! Complexity: Constant. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline const_reverse_iterator rend() const BOOST_NOEXCEPT_OR_NOTHROW { return this->crend(); } @@ -1072,7 +1072,7 @@ class basic_string //! Throws: Nothing. //! //! Complexity: Constant. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline const_iterator cbegin() const BOOST_NOEXCEPT_OR_NOTHROW { return this->priv_addr(); } @@ -1081,7 +1081,7 @@ class basic_string //! Throws: Nothing. //! //! Complexity: Constant. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline const_iterator cend() const BOOST_NOEXCEPT_OR_NOTHROW { return this->priv_end_addr(); } @@ -1091,7 +1091,7 @@ class basic_string //! Throws: Nothing. //! //! Complexity: Constant. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline const_reverse_iterator crbegin() const BOOST_NOEXCEPT_OR_NOTHROW { return const_reverse_iterator(this->priv_end_addr()); } @@ -1101,7 +1101,7 @@ class basic_string //! Throws: Nothing. //! //! Complexity: Constant. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline const_reverse_iterator crend() const BOOST_NOEXCEPT_OR_NOTHROW { return const_reverse_iterator(this->priv_addr()); } @@ -1116,7 +1116,7 @@ class basic_string //! Throws: Nothing. //! //! Complexity: Constant. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline bool empty() const BOOST_NOEXCEPT_OR_NOTHROW { return !this->priv_size(); } @@ -1125,7 +1125,7 @@ class basic_string //! Throws: Nothing. //! //! Complexity: Constant. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline size_type size() const BOOST_NOEXCEPT_OR_NOTHROW { return this->priv_size(); } @@ -1134,7 +1134,7 @@ class basic_string //! Throws: Nothing. //! //! Complexity: Constant. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline size_type length() const BOOST_NOEXCEPT_OR_NOTHROW { return this->size(); } @@ -1143,7 +1143,7 @@ class basic_string //! Throws: Nothing. //! //! Complexity: Constant - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline size_type max_size() const BOOST_NOEXCEPT_OR_NOTHROW { return base_t::max_size(); } @@ -1195,7 +1195,7 @@ class basic_string //! Throws: Nothing. //! //! Complexity: Constant. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline size_type capacity() const BOOST_NOEXCEPT_OR_NOTHROW { return this->priv_capacity(); } @@ -1255,7 +1255,7 @@ class basic_string //! Throws: Nothing. //! //! Complexity: Constant. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline reference front() BOOST_NOEXCEPT_OR_NOTHROW { BOOST_ASSERT(!this->empty()); @@ -1270,7 +1270,7 @@ class basic_string //! Throws: Nothing. //! //! Complexity: Constant. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline const_reference front() const BOOST_NOEXCEPT_OR_NOTHROW { BOOST_ASSERT(!this->empty()); @@ -1285,7 +1285,7 @@ class basic_string //! Throws: Nothing. //! //! Complexity: Constant. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline reference back() BOOST_NOEXCEPT_OR_NOTHROW { BOOST_ASSERT(!this->empty()); @@ -1300,7 +1300,7 @@ class basic_string //! Throws: Nothing. //! //! Complexity: Constant. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline const_reference back() const BOOST_NOEXCEPT_OR_NOTHROW { BOOST_ASSERT(!this->empty()); @@ -1315,7 +1315,7 @@ class basic_string //! Throws: Nothing. //! //! Complexity: Constant. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline reference operator[](size_type n) BOOST_NOEXCEPT_OR_NOTHROW { BOOST_ASSERT(this->size() > n); @@ -1330,7 +1330,7 @@ class basic_string //! Throws: Nothing. //! //! Complexity: Constant. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline const_reference operator[](size_type n) const BOOST_NOEXCEPT_OR_NOTHROW { BOOST_ASSERT(this->size() > n); @@ -1345,7 +1345,7 @@ class basic_string //! Throws: range_error if n >= size() //! //! Complexity: Constant. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline reference at(size_type n) { if (n >= this->size()) @@ -1361,7 +1361,7 @@ class basic_string //! Throws: range_error if n >= size() //! //! Complexity: Constant. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline const_reference at(size_type n) const { if (n >= this->size()) throw_out_of_range("basic_string::at invalid subscript"); @@ -2279,7 +2279,7 @@ class basic_string //! Returns: A pointer p such that p + i == &operator[](i) for each i in [0,size()]. //! //! Complexity: constant time. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline const CharT* c_str() const BOOST_NOEXCEPT_OR_NOTHROW { return boost::movelib::to_raw_pointer(this->priv_addr()); } @@ -2288,14 +2288,14 @@ class basic_string //! Returns: A pointer p such that p + i == &operator[](i) for each i in [0,size()]. //! //! Complexity: constant time. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline const CharT* data() const BOOST_NOEXCEPT_OR_NOTHROW { return boost::movelib::to_raw_pointer(this->priv_addr()); } //! Returns: A pointer p such that p + i == &operator[](i) for each i in [0,size()]. //! //! Complexity: constant time. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline CharT* data() BOOST_NOEXCEPT_OR_NOTHROW { return boost::movelib::to_raw_pointer(this->priv_addr()); } @@ -2315,7 +2315,7 @@ class basic_string //! Note: This function is available to write portable code for compilers //! that don't support templated conversion operators. template - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline BasicStringView to_view() const BOOST_NOEXCEPT_OR_NOTHROW { return BasicStringView(this->data(), this->size()); } @@ -2333,7 +2333,7 @@ class basic_string //! Throws: Nothing //! //! Returns: xpos if the function can determine such a value for xpos. Otherwise, returns npos. - BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline + BOOST_CONTAINER_NODISCARD inline size_type find(const basic_string& s, size_type pos = 0) const { return find(s.c_str(), pos, s.size()); } @@ -2346,7 +2346,7 @@ class basic_string //! //! Returns: xpos if the function can determine such a value for xpos. Otherwise, returns npos. template