Replace BOOST_CONTAINER_ATTRIBUTE_NODISCARD with BOOST_CONTAINER_NODISCARD

This commit is contained in:
Ion Gaztañaga
2025-12-18 15:56:59 +01:00
parent ac523b2c1e
commit 7a22ae2ade
23 changed files with 592 additions and 592 deletions

View File

@@ -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<TYPE VALUE> struct OPTION_NAME{};\" \\
\"BOOST_INTRUSIVE_OPTION_TYPE(OPTION_NAME, TYPE, TYPEDEF_EXPR, TYPEDEF_NAME) = template<class TYPE> struct OPTION_NAME{};\" \\

View File

@@ -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; }

View File

@@ -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);

View File

@@ -423,7 +423,7 @@ struct allocator_traits
//! <b>Returns</b>: <code>a.allocate(n)</code>
//!
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
//! <b>Effects</b>: calls <code>a.allocate(n, p)</code> if that call is well-formed;
//! otherwise, invokes <code>a.allocate(n)</code>
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
//! <b>Returns</b>: <code>a.max_size()</code> if that expression is well-formed; otherwise,
//! <code>numeric_limits<size_type>::max()</code>.
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<Allocator, size_type (Allocator::*)() const>::value;

View File

@@ -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<typename real_allocator<T, Allocator>::type,
//! <b>Throws</b>: If allocator's copy constructor throws.
//!
//! <b>Complexity</b>: 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<typename real_allocator<T, Allocator>::type,
//! <b>Complexity</b>: Constant.
//!
//! <b>Note</b>: 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<typename real_allocator<T, Allocator>::type,
//! <b>Complexity</b>: Constant.
//!
//! <b>Note</b>: 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<typename real_allocator<T, Allocator>::type,
//! <b>Throws</b>: Nothing.
//!
//! <b>Complexity</b>: 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<typename real_allocator<T, Allocator>::type,
//! <b>Throws</b>: Nothing.
//!
//! <b>Complexity</b>: 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<typename real_allocator<T, Allocator>::type,
//! <b>Throws</b>: Nothing.
//!
//! <b>Complexity</b>: 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<typename real_allocator<T, Allocator>::type,
//! <b>Throws</b>: Nothing.
//!
//! <b>Complexity</b>: 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<typename real_allocator<T, Allocator>::type,
//! <b>Throws</b>: Nothing.
//!
//! <b>Complexity</b>: 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<typename real_allocator<T, Allocator>::type,
//! <b>Throws</b>: Nothing.
//!
//! <b>Complexity</b>: 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<typename real_allocator<T, Allocator>::type,
//! <b>Throws</b>: Nothing.
//!
//! <b>Complexity</b>: 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<typename real_allocator<T, Allocator>::type,
//! <b>Throws</b>: Nothing.
//!
//! <b>Complexity</b>: 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<typename real_allocator<T, Allocator>::type,
//! <b>Throws</b>: Nothing.
//!
//! <b>Complexity</b>: 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<typename real_allocator<T, Allocator>::type,
//! <b>Throws</b>: Nothing.
//!
//! <b>Complexity</b>: 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<typename real_allocator<T, Allocator>::type,
//! <b>Throws</b>: Nothing.
//!
//! <b>Complexity</b>: 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<typename real_allocator<T, Allocator>::type,
//! <b>Throws</b>: Nothing.
//!
//! <b>Complexity</b>: 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<typename real_allocator<T, Allocator>::type,
//! <b>Throws</b>: Nothing.
//!
//! <b>Complexity</b>: 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<typename real_allocator<T, Allocator>::type,
//! <b>Throws</b>: Nothing.
//!
//! <b>Complexity</b>: 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<typename real_allocator<T, Allocator>::type,
//! <b>Complexity</b>: Constant.
//!
//! <b>Note</b>: 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<typename real_allocator<T, Allocator>::type,
//! <b>Complexity</b>: Constant.
//!
//! <b>Note</b>: 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<typename real_allocator<T, Allocator>::type,
//! <b>Throws</b>: Nothing.
//!
//! <b>Complexity</b>: 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<typename real_allocator<T, Allocator>::type,
//! <b>Throws</b>: Nothing.
//!
//! <b>Complexity</b>: 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<typename real_allocator<T, Allocator>::type,
//! <b>Throws</b>: Nothing.
//!
//! <b>Complexity</b>: 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<typename real_allocator<T, Allocator>::type,
//! <b>Throws</b>: Nothing.
//!
//! <b>Complexity</b>: 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<typename real_allocator<T, Allocator>::type,
//! <b>Throws</b>: Nothing.
//!
//! <b>Complexity</b>: 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<typename real_allocator<T, Allocator>::type,
//! <b>Throws</b>: Nothing.
//!
//! <b>Complexity</b>: 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<typename real_allocator<T, Allocator>::type,
//! <b>Throws</b>: Nothing.
//!
//! <b>Complexity</b>: 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<typename real_allocator<T, Allocator>::type,
//! <b>Complexity</b>: Constant.
//!
//! <b>Note</b>: 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<typename real_allocator<T, Allocator>::type,
//! <b>Complexity</b>: Constant.
//!
//! <b>Note</b>: 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<typename real_allocator<T, Allocator>::type,
//! <b>Complexity</b>: Constant.
//!
//! <b>Note</b>: 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<typename real_allocator<T, Allocator>::type,
//! <b>Complexity</b>: Constant.
//!
//! <b>Note</b>: 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<typename real_allocator<T, Allocator>::type,
//! <b>Throws</b>: range_error if n >= size()
//!
//! <b>Complexity</b>: 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<typename real_allocator<T, Allocator>::type,
//! <b>Throws</b>: range_error if n >= size()
//!
//! <b>Complexity</b>: 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<typename real_allocator<T, Allocator>::type,
//! <b>Effects</b>: Returns true if x and y are equal
//!
//! <b>Complexity</b>: 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()); }
//! <b>Effects</b>: Returns true if x and y are unequal
//!
//! <b>Complexity</b>: 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); }
//! <b>Effects</b>: Returns true if x is less than y
//!
//! <b>Complexity</b>: 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()); }
//! <b>Effects</b>: Returns true if x is greater than y
//!
//! <b>Complexity</b>: 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; }
//! <b>Effects</b>: Returns true if x is equal or less than y
//!
//! <b>Complexity</b>: 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); }
//! <b>Effects</b>: Returns true if x is equal or greater than y
//!
//! <b>Complexity</b>: 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); }

View File

@@ -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_<has_stored_allocator_type>());
}
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_<has_stored_allocator_type>());
}
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<iterator>(this->m_data.m_seq, n, dtl::bool_<value>());
}
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<const_iterator>(this->m_data.m_seq, n, dtl::bool_<value>());
}
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_<value>());
}
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<class K>
BOOST_CONTAINER_ATTRIBUTE_NODISCARD
BOOST_CONTAINER_NODISCARD
typename dtl::enable_if_transparent<key_compare, K, iterator>::type
find(const K& k)
{
@@ -1361,7 +1361,7 @@ class flat_tree
}
template<class K>
BOOST_CONTAINER_ATTRIBUTE_NODISCARD
BOOST_CONTAINER_NODISCARD
typename dtl::enable_if_transparent<key_compare, K, const_iterator>::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<const_iterator, const_iterator> p = this->equal_range(k);
@@ -1383,7 +1383,7 @@ class flat_tree
}
template<class K>
BOOST_CONTAINER_ATTRIBUTE_NODISCARD
BOOST_CONTAINER_NODISCARD
typename dtl::enable_if_transparent<key_compare, K, size_type>::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<typename K>
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
BOOST_CONTAINER_NODISCARD inline
typename dtl::enable_if_transparent<key_compare, K, bool>::type
contains(const K& x) const
{ return this->find(x) != this->cend(); }
@@ -1439,88 +1439,88 @@ class flat_tree
, dtl::bool_<value>());
}
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<class K>
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
BOOST_CONTAINER_NODISCARD inline
typename dtl::enable_if_transparent<key_compare, K, iterator>::type
lower_bound(const K& k)
{ return this->priv_lower_bound(this->begin(), this->end(), k); }
template<class K>
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
BOOST_CONTAINER_NODISCARD inline
typename dtl::enable_if_transparent<key_compare, K, const_iterator>::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<class K>
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
BOOST_CONTAINER_NODISCARD inline
typename dtl::enable_if_transparent<key_compare, K,iterator>::type
upper_bound(const K& k)
{ return this->priv_upper_bound(this->begin(), this->end(), k); }
template<class K>
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
BOOST_CONTAINER_NODISCARD inline
typename dtl::enable_if_transparent<key_compare, K,const_iterator>::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<iterator,iterator> 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<const_iterator, const_iterator> equal_range(const key_type& k) const
{ return this->priv_equal_range(this->cbegin(), this->cend(), k); }
template<class K>
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
BOOST_CONTAINER_NODISCARD inline
typename dtl::enable_if_transparent<key_compare, K, std::pair<iterator,iterator> >::type
equal_range(const K& k)
{ return this->priv_equal_range(this->begin(), this->end(), k); }
template<class K>
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
BOOST_CONTAINER_NODISCARD inline
typename dtl::enable_if_transparent<key_compare, K,std::pair<const_iterator,const_iterator> >::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<iterator, iterator> 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<const_iterator, const_iterator> lower_bound_range(const key_type& k) const
{ return this->priv_lower_bound_range(this->cbegin(), this->cend(), k); }
template<class K>
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
BOOST_CONTAINER_NODISCARD inline
typename dtl::enable_if_transparent<key_compare, K,std::pair<iterator,iterator> >::type
lower_bound_range(const K& k)
{ return this->priv_lower_bound_range(this->begin(), this->end(), k); }
template<class K>
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
BOOST_CONTAINER_NODISCARD inline
typename dtl::enable_if_transparent<key_compare, K,std::pair<const_iterator,const_iterator> >::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_<value>());
}
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); }

View File

@@ -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
//! <b>Throws</b>: Nothing.
//!
//! <b>Complexity</b>: 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
//! <b>Throws</b>: Nothing.
//!
//! <b>Complexity</b>: 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
//! <b>Throws</b>: Nothing.
//!
//! <b>Complexity</b>: 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
//! <b>Throws</b>: Nothing.
//!
//! <b>Complexity</b>: 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 <class K>
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
BOOST_CONTAINER_NODISCARD inline
typename dtl::enable_if_transparent<key_compare, K, iterator>::type
find(const K& k)
{ return iterator(this->icont().find(k, KeyNodeCompare(key_comp()))); }
template <class K>
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
BOOST_CONTAINER_NODISCARD inline
typename dtl::enable_if_transparent<key_compare, K, const_iterator>::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 <class K>
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
BOOST_CONTAINER_NODISCARD inline
typename dtl::enable_if_transparent<key_compare, K, size_type>::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<typename K>
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
BOOST_CONTAINER_NODISCARD inline
typename dtl::enable_if_transparent<key_compare, K, bool>::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 <class K>
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
BOOST_CONTAINER_NODISCARD inline
typename dtl::enable_if_transparent<key_compare, K, iterator>::type
lower_bound(const K& k)
{ return iterator(this->icont().lower_bound(k, KeyNodeCompare(key_comp()))); }
template <class K>
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
BOOST_CONTAINER_NODISCARD inline
typename dtl::enable_if_transparent<key_compare, K, const_iterator>::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 <class K>
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
BOOST_CONTAINER_NODISCARD inline
typename dtl::enable_if_transparent<key_compare, K, iterator>::type
upper_bound(const K& k)
{ return iterator(this->icont().upper_bound(k, KeyNodeCompare(key_comp()))); }
template <class K>
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
BOOST_CONTAINER_NODISCARD inline
typename dtl::enable_if_transparent<key_compare, K, const_iterator>::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<iterator,iterator> equal_range(const key_type& k)
{
std::pair<iiterator, iiterator> ret = this->icont().equal_range(k);
return std::pair<iterator,iterator>(iterator(ret.first), iterator(ret.second));
}
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
BOOST_CONTAINER_NODISCARD inline
std::pair<const_iterator, const_iterator> equal_range(const key_type& k) const
{
std::pair<iiterator, iiterator> ret =
@@ -1412,7 +1412,7 @@ class tree
}
template <class K>
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
BOOST_CONTAINER_NODISCARD inline
typename dtl::enable_if_transparent<key_compare, K, std::pair<iterator,iterator> >::type
equal_range(const K& k)
{
@@ -1422,7 +1422,7 @@ class tree
}
template <class K>
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
BOOST_CONTAINER_NODISCARD inline
typename dtl::enable_if_transparent<key_compare, K, std::pair<const_iterator, const_iterator> >::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<iterator,iterator> lower_bound_range(const key_type& k)
{
std::pair<iiterator, iiterator> ret =
@@ -1440,7 +1440,7 @@ class tree
return std::pair<iterator,iterator>(iterator(ret.first), iterator(ret.second));
}
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
BOOST_CONTAINER_NODISCARD inline
std::pair<const_iterator, const_iterator> lower_bound_range(const key_type& k) const
{
std::pair<iiterator, iiterator> ret =
@@ -1450,7 +1450,7 @@ class tree
}
template <class K>
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
BOOST_CONTAINER_NODISCARD inline
typename dtl::enable_if_transparent<key_compare, K, std::pair<iterator,iterator> >::type
lower_bound_range(const K& k)
{
@@ -1460,7 +1460,7 @@ class tree
}
template <class K>
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
BOOST_CONTAINER_NODISCARD inline
typename dtl::enable_if_transparent<key_compare, K, std::pair<const_iterator, const_iterator> >::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); }

View File

@@ -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

View File

@@ -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<const allocator_type&>(m_);
}
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
BOOST_CONTAINER_NODISCARD inline
const allocator_type &get_stored_allocator() const BOOST_NOEXCEPT
{
return static_cast<const allocator_type&>(m_);
}
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
BOOST_CONTAINER_NODISCARD inline
allocator_type &get_stored_allocator() BOOST_NOEXCEPT
{
return static_cast<allocator_type&>(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
//! <b>Complexity</b>: Constant.
//!
//! <b>Note</b>: 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
//! <b>Complexity</b>: Constant.
//!
//! <b>Note</b>: 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
//! <b>Complexity</b>: Constant.
//!
//! <b>Note</b>: 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
//! <b>Complexity</b>: Constant.
//!
//! <b>Note</b>: 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<size_type>(i - cbegin());
}
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
BOOST_CONTAINER_NODISCARD inline
bool should_move_back(const_iterator i) const
{
return static_cast<size_type>(this->pos_to_index(i)) >= this->size()/2u;

View File

@@ -554,7 +554,7 @@ class flat_map
//! was passed to the object's constructor.
//!
//! <b>Complexity</b>: Constant.
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
BOOST_CONTAINER_NODISCARD inline
allocator_type get_allocator() const BOOST_NOEXCEPT_OR_NOTHROW
{ return dtl::force_copy<allocator_type>(m_flat_tree.get_allocator()); }
@@ -565,7 +565,7 @@ class flat_map
//! <b>Complexity</b>: Constant.
//!
//! <b>Note</b>: 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
//! <b>Complexity</b>: Constant.
//!
//! <b>Note</b>: 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
//! <b>Throws</b>: Nothing.
//!
//! <b>Complexity</b>: Constant.
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
BOOST_CONTAINER_NODISCARD inline
iterator begin() BOOST_NOEXCEPT_OR_NOTHROW
{ return dtl::force_copy<iterator>(m_flat_tree.begin()); }
@@ -606,7 +606,7 @@ class flat_map
//! <b>Throws</b>: Nothing.
//!
//! <b>Complexity</b>: Constant.
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
BOOST_CONTAINER_NODISCARD inline
const_iterator begin() const BOOST_NOEXCEPT_OR_NOTHROW
{ return dtl::force_copy<const_iterator>(m_flat_tree.begin()); }
@@ -615,7 +615,7 @@ class flat_map
//! <b>Throws</b>: Nothing.
//!
//! <b>Complexity</b>: Constant.
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
BOOST_CONTAINER_NODISCARD inline
iterator end() BOOST_NOEXCEPT_OR_NOTHROW
{ return dtl::force_copy<iterator>(m_flat_tree.end()); }
@@ -624,7 +624,7 @@ class flat_map
//! <b>Throws</b>: Nothing.
//!
//! <b>Complexity</b>: Constant.
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
BOOST_CONTAINER_NODISCARD inline
const_iterator end() const BOOST_NOEXCEPT_OR_NOTHROW
{ return dtl::force_copy<const_iterator>(m_flat_tree.end()); }
@@ -634,7 +634,7 @@ class flat_map
//! <b>Throws</b>: Nothing.
//!
//! <b>Complexity</b>: Constant.
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
BOOST_CONTAINER_NODISCARD inline
reverse_iterator rbegin() BOOST_NOEXCEPT_OR_NOTHROW
{ return dtl::force_copy<reverse_iterator>(m_flat_tree.rbegin()); }
@@ -644,7 +644,7 @@ class flat_map
//! <b>Throws</b>: Nothing.
//!
//! <b>Complexity</b>: Constant.
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
BOOST_CONTAINER_NODISCARD inline
const_reverse_iterator rbegin() const BOOST_NOEXCEPT_OR_NOTHROW
{ return dtl::force_copy<const_reverse_iterator>(m_flat_tree.rbegin()); }
@@ -654,7 +654,7 @@ class flat_map
//! <b>Throws</b>: Nothing.
//!
//! <b>Complexity</b>: Constant.
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
BOOST_CONTAINER_NODISCARD inline
reverse_iterator rend() BOOST_NOEXCEPT_OR_NOTHROW
{ return dtl::force_copy<reverse_iterator>(m_flat_tree.rend()); }
@@ -664,7 +664,7 @@ class flat_map
//! <b>Throws</b>: Nothing.
//!
//! <b>Complexity</b>: Constant.
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
BOOST_CONTAINER_NODISCARD inline
const_reverse_iterator rend() const BOOST_NOEXCEPT_OR_NOTHROW
{ return dtl::force_copy<const_reverse_iterator>(m_flat_tree.rend()); }
@@ -673,7 +673,7 @@ class flat_map
//! <b>Throws</b>: Nothing.
//!
//! <b>Complexity</b>: Constant.
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
BOOST_CONTAINER_NODISCARD inline
const_iterator cbegin() const BOOST_NOEXCEPT_OR_NOTHROW
{ return dtl::force_copy<const_iterator>(m_flat_tree.cbegin()); }
@@ -682,7 +682,7 @@ class flat_map
//! <b>Throws</b>: Nothing.
//!
//! <b>Complexity</b>: Constant.
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
BOOST_CONTAINER_NODISCARD inline
const_iterator cend() const BOOST_NOEXCEPT_OR_NOTHROW
{ return dtl::force_copy<const_iterator>(m_flat_tree.cend()); }
@@ -692,7 +692,7 @@ class flat_map
//! <b>Throws</b>: Nothing.
//!
//! <b>Complexity</b>: Constant.
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
BOOST_CONTAINER_NODISCARD inline
const_reverse_iterator crbegin() const BOOST_NOEXCEPT_OR_NOTHROW
{ return dtl::force_copy<const_reverse_iterator>(m_flat_tree.crbegin()); }
@@ -702,7 +702,7 @@ class flat_map
//! <b>Throws</b>: Nothing.
//!
//! <b>Complexity</b>: Constant.
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
BOOST_CONTAINER_NODISCARD inline
const_reverse_iterator crend() const BOOST_NOEXCEPT_OR_NOTHROW
{ return dtl::force_copy<const_reverse_iterator>(m_flat_tree.crend()); }
@@ -717,7 +717,7 @@ class flat_map
//! <b>Throws</b>: Nothing.
//!
//! <b>Complexity</b>: 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
//! <b>Throws</b>: Nothing.
//!
//! <b>Complexity</b>: 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
//! <b>Throws</b>: Nothing.
//!
//! <b>Complexity</b>: 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
//! <b>Throws</b>: Nothing.
//!
//! <b>Complexity</b>: 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<iterator>(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<const_iterator>(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<impl_iterator>(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<impl_const_iterator>(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<class K>
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<class K>
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.
//!
//! <b>Complexity</b>: Constant.
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
BOOST_CONTAINER_NODISCARD inline
key_compare key_comp() const
{ return dtl::force_copy<key_compare>(m_flat_tree.key_comp()); }
@@ -1568,7 +1568,7 @@ class flat_map
//! of the comparison object.
//!
//! <b>Complexity</b>: Constant.
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
BOOST_CONTAINER_NODISCARD inline
value_compare value_comp() const
{ return value_compare(dtl::force_copy<key_compare>(m_flat_tree.key_comp())); }
@@ -1582,7 +1582,7 @@ class flat_map
//! equivalent to x, or end() if such an element is not found.
//!
//! <b>Complexity</b>: Logarithmic.
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
BOOST_CONTAINER_NODISCARD inline
iterator find(const key_type& x)
{ return dtl::force_copy<iterator>(m_flat_tree.find(x)); }
@@ -1590,7 +1590,7 @@ class flat_map
//! equivalent to x, or end() if such an element is not found.
//!
//! <b>Complexity</b>: Logarithmic.
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
BOOST_CONTAINER_NODISCARD inline
const_iterator find(const key_type& x) const
{ return dtl::force_copy<const_iterator>(m_flat_tree.find(x)); }
@@ -1602,7 +1602,7 @@ class flat_map
//!
//! <b>Complexity</b>: Logarithmic.
template<class K>
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
BOOST_CONTAINER_NODISCARD inline
iterator find(const K& x)
{ return dtl::force_copy<iterator>(m_flat_tree.find(x)); }
@@ -1614,14 +1614,14 @@ class flat_map
//!
//! <b>Complexity</b>: Logarithmic.
template<class K>
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
BOOST_CONTAINER_NODISCARD inline
const_iterator find(const K& x) const
{ return dtl::force_copy<const_iterator>(m_flat_tree.find(x)); }
//! <b>Returns</b>: The number of elements with key equivalent to x.
//!
//! <b>Complexity</b>: log(size())+count(k)
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
BOOST_CONTAINER_NODISCARD inline
size_type count(const key_type& x) const
{ return static_cast<size_type>(m_flat_tree.find(x) != m_flat_tree.end()); }
@@ -1632,7 +1632,7 @@ class flat_map
//!
//! <b>Complexity</b>: log(size())+count(k)
template<class K>
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.
//!
//! <b>Complexity</b>: 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
//!
//! <b>Complexity</b>: log(size()).
template<typename K>
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.
//!
//! <b>Complexity</b>: Logarithmic.
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
BOOST_CONTAINER_NODISCARD inline
iterator lower_bound(const key_type& x)
{ return dtl::force_copy<iterator>(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.
//!
//! <b>Complexity</b>: Logarithmic.
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
BOOST_CONTAINER_NODISCARD inline
const_iterator lower_bound(const key_type& x) const
{ return dtl::force_copy<const_iterator>(m_flat_tree.lower_bound(x)); }
@@ -1682,7 +1682,7 @@ class flat_map
//!
//! <b>Complexity</b>: Logarithmic.
template<class K>
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
BOOST_CONTAINER_NODISCARD inline
iterator lower_bound(const K& x)
{ return dtl::force_copy<iterator>(m_flat_tree.lower_bound(x)); }
@@ -1694,7 +1694,7 @@ class flat_map
//!
//! <b>Complexity</b>: Logarithmic.
template<class K>
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
BOOST_CONTAINER_NODISCARD inline
const_iterator lower_bound(const K& x) const
{ return dtl::force_copy<const_iterator>(m_flat_tree.lower_bound(x)); }
@@ -1702,7 +1702,7 @@ class flat_map
//! than x, or end() if such an element is not found.
//!
//! <b>Complexity</b>: Logarithmic.
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
BOOST_CONTAINER_NODISCARD inline
iterator upper_bound(const key_type& x)
{ return dtl::force_copy<iterator>(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.
//!
//! <b>Complexity</b>: Logarithmic.
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
BOOST_CONTAINER_NODISCARD inline
const_iterator upper_bound(const key_type& x) const
{ return dtl::force_copy<const_iterator>(m_flat_tree.upper_bound(x)); }
@@ -1722,7 +1722,7 @@ class flat_map
//!
//! <b>Complexity</b>: Logarithmic.
template<class K>
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
BOOST_CONTAINER_NODISCARD inline
iterator upper_bound(const K& x)
{ return dtl::force_copy<iterator>(m_flat_tree.upper_bound(x)); }
@@ -1734,21 +1734,21 @@ class flat_map
//!
//! <b>Complexity</b>: Logarithmic.
template<class K>
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
BOOST_CONTAINER_NODISCARD inline
const_iterator upper_bound(const K& x) const
{ return dtl::force_copy<const_iterator>(m_flat_tree.upper_bound(x)); }
//! <b>Effects</b>: Equivalent to std::make_pair(this->lower_bound(k), this->upper_bound(k)).
//!
//! <b>Complexity</b>: Logarithmic.
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
BOOST_CONTAINER_NODISCARD inline
std::pair<iterator,iterator> equal_range(const key_type& x)
{ return dtl::force_copy<std::pair<iterator,iterator> >(m_flat_tree.lower_bound_range(x)); }
//! <b>Effects</b>: Equivalent to std::make_pair(this->lower_bound(k), this->upper_bound(k)).
//!
//! <b>Complexity</b>: Logarithmic.
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
BOOST_CONTAINER_NODISCARD inline
std::pair<const_iterator, const_iterator> equal_range(const key_type& x) const
{ return dtl::force_copy<std::pair<const_iterator,const_iterator> >(m_flat_tree.lower_bound_range(x)); }
@@ -1759,7 +1759,7 @@ class flat_map
//!
//! <b>Complexity</b>: Logarithmic.
template<class K>
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
BOOST_CONTAINER_NODISCARD inline
std::pair<iterator,iterator> 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
//!
//! <b>Complexity</b>: Logarithmic.
template<class K>
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
BOOST_CONTAINER_NODISCARD inline
std::pair<const_iterator, const_iterator> 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
//! <b>Postcondition</b>: this->empty()
//!
//! <b>Throws</b>: 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<sequence_type>(m_flat_tree.get_sequence_ref()));
}
@@ -1822,42 +1822,42 @@ class flat_map
//! <b>Effects</b>: Returns true if x and y are equal
//!
//! <b>Complexity</b>: 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()); }
//! <b>Effects</b>: Returns true if x and y are unequal
//!
//! <b>Complexity</b>: 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); }
//! <b>Effects</b>: Returns true if x is less than y
//!
//! <b>Complexity</b>: 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()); }
//! <b>Effects</b>: Returns true if x is greater than y
//!
//! <b>Complexity</b>: 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; }
//! <b>Effects</b>: Returns true if x is equal or less than y
//!
//! <b>Complexity</b>: 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); }
//! <b>Effects</b>: Returns true if x is equal or greater than y
//!
//! <b>Complexity</b>: 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.
//!
//! <b>Complexity</b>: Constant.
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
BOOST_CONTAINER_NODISCARD inline
allocator_type get_allocator() const BOOST_NOEXCEPT_OR_NOTHROW
{ return dtl::force_copy<allocator_type>(m_flat_tree.get_allocator()); }
@@ -2439,7 +2439,7 @@ class flat_multimap
//! <b>Complexity</b>: Constant.
//!
//! <b>Note</b>: 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<stored_allocator_type>(m_flat_tree.get_stored_allocator()); }
@@ -2450,7 +2450,7 @@ class flat_multimap
//! <b>Complexity</b>: Constant.
//!
//! <b>Note</b>: 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<const stored_allocator_type>(m_flat_tree.get_stored_allocator()); }
@@ -2465,7 +2465,7 @@ class flat_multimap
//! <b>Throws</b>: Nothing.
//!
//! <b>Complexity</b>: Constant.
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
BOOST_CONTAINER_NODISCARD inline
iterator begin() BOOST_NOEXCEPT_OR_NOTHROW
{ return dtl::force_copy<iterator>(m_flat_tree.begin()); }
@@ -2474,7 +2474,7 @@ class flat_multimap
//! <b>Throws</b>: Nothing.
//!
//! <b>Complexity</b>: Constant.
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
BOOST_CONTAINER_NODISCARD inline
const_iterator begin() const BOOST_NOEXCEPT_OR_NOTHROW
{ return dtl::force_copy<const_iterator>(m_flat_tree.begin()); }
@@ -2483,7 +2483,7 @@ class flat_multimap
//! <b>Throws</b>: Nothing.
//!
//! <b>Complexity</b>: Constant.
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
BOOST_CONTAINER_NODISCARD inline
iterator end() BOOST_NOEXCEPT_OR_NOTHROW
{ return dtl::force_copy<iterator>(m_flat_tree.end()); }
@@ -2492,7 +2492,7 @@ class flat_multimap
//! <b>Throws</b>: Nothing.
//!
//! <b>Complexity</b>: Constant.
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
BOOST_CONTAINER_NODISCARD inline
const_iterator end() const BOOST_NOEXCEPT_OR_NOTHROW
{ return dtl::force_copy<const_iterator>(m_flat_tree.end()); }
@@ -2502,7 +2502,7 @@ class flat_multimap
//! <b>Throws</b>: Nothing.
//!
//! <b>Complexity</b>: Constant.
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
BOOST_CONTAINER_NODISCARD inline
reverse_iterator rbegin() BOOST_NOEXCEPT_OR_NOTHROW
{ return dtl::force_copy<reverse_iterator>(m_flat_tree.rbegin()); }
@@ -2512,7 +2512,7 @@ class flat_multimap
//! <b>Throws</b>: Nothing.
//!
//! <b>Complexity</b>: Constant.
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
BOOST_CONTAINER_NODISCARD inline
const_reverse_iterator rbegin() const BOOST_NOEXCEPT_OR_NOTHROW
{ return dtl::force_copy<const_reverse_iterator>(m_flat_tree.rbegin()); }
@@ -2522,7 +2522,7 @@ class flat_multimap
//! <b>Throws</b>: Nothing.
//!
//! <b>Complexity</b>: Constant.
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
BOOST_CONTAINER_NODISCARD inline
reverse_iterator rend() BOOST_NOEXCEPT_OR_NOTHROW
{ return dtl::force_copy<reverse_iterator>(m_flat_tree.rend()); }
@@ -2532,7 +2532,7 @@ class flat_multimap
//! <b>Throws</b>: Nothing.
//!
//! <b>Complexity</b>: Constant.
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
BOOST_CONTAINER_NODISCARD inline
const_reverse_iterator rend() const BOOST_NOEXCEPT_OR_NOTHROW
{ return dtl::force_copy<const_reverse_iterator>(m_flat_tree.rend()); }
@@ -2541,7 +2541,7 @@ class flat_multimap
//! <b>Throws</b>: Nothing.
//!
//! <b>Complexity</b>: Constant.
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
BOOST_CONTAINER_NODISCARD inline
const_iterator cbegin() const BOOST_NOEXCEPT_OR_NOTHROW
{ return dtl::force_copy<const_iterator>(m_flat_tree.cbegin()); }
@@ -2550,7 +2550,7 @@ class flat_multimap
//! <b>Throws</b>: Nothing.
//!
//! <b>Complexity</b>: Constant.
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
BOOST_CONTAINER_NODISCARD inline
const_iterator cend() const BOOST_NOEXCEPT_OR_NOTHROW
{ return dtl::force_copy<const_iterator>(m_flat_tree.cend()); }
@@ -2560,7 +2560,7 @@ class flat_multimap
//! <b>Throws</b>: Nothing.
//!
//! <b>Complexity</b>: Constant.
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
BOOST_CONTAINER_NODISCARD inline
const_reverse_iterator crbegin() const BOOST_NOEXCEPT_OR_NOTHROW
{ return dtl::force_copy<const_reverse_iterator>(m_flat_tree.crbegin()); }
@@ -2570,7 +2570,7 @@ class flat_multimap
//! <b>Throws</b>: Nothing.
//!
//! <b>Complexity</b>: Constant.
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
BOOST_CONTAINER_NODISCARD inline
const_reverse_iterator crend() const BOOST_NOEXCEPT_OR_NOTHROW
{ return dtl::force_copy<const_reverse_iterator>(m_flat_tree.crend()); }
@@ -2585,7 +2585,7 @@ class flat_multimap
//! <b>Throws</b>: Nothing.
//!
//! <b>Complexity</b>: 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
//! <b>Throws</b>: Nothing.
//!
//! <b>Complexity</b>: 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
//! <b>Throws</b>: Nothing.
//!
//! <b>Complexity</b>: 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
//! <b>Throws</b>: Nothing.
//!
//! <b>Complexity</b>: 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<iterator>(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<const_iterator>(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<impl_iterator>(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<impl_const_iterator>(p)); }
@@ -2954,7 +2954,7 @@ class flat_multimap
//! of which a was constructed.
//!
//! <b>Complexity</b>: Constant.
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
BOOST_CONTAINER_NODISCARD inline
key_compare key_comp() const
{ return dtl::force_copy<key_compare>(m_flat_tree.key_comp()); }
@@ -2962,7 +2962,7 @@ class flat_multimap
//! of the comparison object.
//!
//! <b>Complexity</b>: Constant.
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
BOOST_CONTAINER_NODISCARD inline
value_compare value_comp() const
{ return value_compare(dtl::force_copy<key_compare>(m_flat_tree.key_comp())); }
@@ -2976,7 +2976,7 @@ class flat_multimap
//! equivalent to x, or end() if such an element is not found.
//!
//! <b>Complexity</b>: Logarithmic.
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
BOOST_CONTAINER_NODISCARD inline
iterator find(const key_type& x)
{ return dtl::force_copy<iterator>(m_flat_tree.find(x)); }
@@ -2984,7 +2984,7 @@ class flat_multimap
//! equivalent to x, or end() if such an element is not found.
//!
//! <b>Complexity</b>: Logarithmic.
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
BOOST_CONTAINER_NODISCARD inline
const_iterator find(const key_type& x) const
{ return dtl::force_copy<const_iterator>(m_flat_tree.find(x)); }
@@ -2996,7 +2996,7 @@ class flat_multimap
//!
//! <b>Complexity</b>: Logarithmic.
template<class K>
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
BOOST_CONTAINER_NODISCARD inline
iterator find(const K& x)
{ return dtl::force_copy<iterator>(m_flat_tree.find(x)); }
@@ -3008,14 +3008,14 @@ class flat_multimap
//!
//! <b>Complexity</b>: Logarithmic.
template<class K>
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
BOOST_CONTAINER_NODISCARD inline
const_iterator find(const K& x) const
{ return dtl::force_copy<const_iterator>(m_flat_tree.find(x)); }
//! <b>Returns</b>: The number of elements with key equivalent to x.
//!
//! <b>Complexity</b>: 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
//!
//! <b>Complexity</b>: log(size())+count(k)
template<class K>
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.
//!
//! <b>Complexity</b>: 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
//!
//! <b>Complexity</b>: log(size()).
template<typename K>
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.
//!
//! <b>Complexity</b>: Logarithmic
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
BOOST_CONTAINER_NODISCARD inline
iterator lower_bound(const key_type& x)
{ return dtl::force_copy<iterator>(m_flat_tree.lower_bound(x)); }
@@ -3062,7 +3062,7 @@ class flat_multimap
//! than x, or end() if such an element is not found.
//!
//! <b>Complexity</b>: Logarithmic
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
BOOST_CONTAINER_NODISCARD inline
const_iterator lower_bound(const key_type& x) const
{ return dtl::force_copy<const_iterator>(m_flat_tree.lower_bound(x)); }
@@ -3074,7 +3074,7 @@ class flat_multimap
//!
//! <b>Complexity</b>: Logarithmic
template<class K>
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
BOOST_CONTAINER_NODISCARD inline
iterator lower_bound(const K& x)
{ return dtl::force_copy<iterator>(m_flat_tree.lower_bound(x)); }
@@ -3086,7 +3086,7 @@ class flat_multimap
//!
//! <b>Complexity</b>: Logarithmic
template<class K>
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
BOOST_CONTAINER_NODISCARD inline
const_iterator lower_bound(const K& x) const
{ return dtl::force_copy<const_iterator>(m_flat_tree.lower_bound(x)); }
@@ -3094,7 +3094,7 @@ class flat_multimap
//! than x, or end() if such an element is not found.
//!
//! <b>Complexity</b>: Logarithmic
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
BOOST_CONTAINER_NODISCARD inline
iterator upper_bound(const key_type& x)
{return dtl::force_copy<iterator>(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.
//!
//! <b>Complexity</b>: Logarithmic
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
BOOST_CONTAINER_NODISCARD inline
const_iterator upper_bound(const key_type& x) const
{ return dtl::force_copy<const_iterator>(m_flat_tree.upper_bound(x)); }
@@ -3114,7 +3114,7 @@ class flat_multimap
//!
//! <b>Complexity</b>: Logarithmic
template<class K>
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
BOOST_CONTAINER_NODISCARD inline
iterator upper_bound(const K& x)
{return dtl::force_copy<iterator>(m_flat_tree.upper_bound(x)); }
@@ -3126,21 +3126,21 @@ class flat_multimap
//!
//! <b>Complexity</b>: Logarithmic
template<class K>
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
BOOST_CONTAINER_NODISCARD inline
const_iterator upper_bound(const K& x) const
{ return dtl::force_copy<const_iterator>(m_flat_tree.upper_bound(x)); }
//! <b>Effects</b>: Equivalent to std::make_pair(this->lower_bound(k), this->upper_bound(k)).
//!
//! <b>Complexity</b>: Logarithmic
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
BOOST_CONTAINER_NODISCARD inline
std::pair<iterator,iterator> equal_range(const key_type& x)
{ return dtl::force_copy<std::pair<iterator,iterator> >(m_flat_tree.equal_range(x)); }
//! <b>Effects</b>: Equivalent to std::make_pair(this->lower_bound(k), this->upper_bound(k)).
//!
//! <b>Complexity</b>: Logarithmic
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
BOOST_CONTAINER_NODISCARD inline
std::pair<const_iterator, const_iterator> equal_range(const key_type& x) const
{ return dtl::force_copy<std::pair<const_iterator,const_iterator> >(m_flat_tree.equal_range(x)); }
@@ -3151,7 +3151,7 @@ class flat_multimap
//!
//! <b>Complexity</b>: Logarithmic
template<class K>
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
BOOST_CONTAINER_NODISCARD inline
std::pair<iterator,iterator> equal_range(const K& x)
{ return dtl::force_copy<std::pair<iterator,iterator> >(m_flat_tree.equal_range(x)); }
@@ -3162,7 +3162,7 @@ class flat_multimap
//!
//! <b>Complexity</b>: Logarithmic
template<class K>
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
BOOST_CONTAINER_NODISCARD inline
std::pair<const_iterator, const_iterator> equal_range(const K& x) const
{ return dtl::force_copy<std::pair<const_iterator,const_iterator> >(m_flat_tree.equal_range(x)); }
@@ -3173,7 +3173,7 @@ class flat_multimap
//! <b>Postcondition</b>: this->empty()
//!
//! <b>Throws</b>: 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<sequence_type>(m_flat_tree.get_sequence_ref())); }
@@ -3208,42 +3208,42 @@ class flat_multimap
//! <b>Effects</b>: Returns true if x and y are equal
//!
//! <b>Complexity</b>: 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()); }
//! <b>Effects</b>: Returns true if x and y are unequal
//!
//! <b>Complexity</b>: 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); }
//! <b>Effects</b>: Returns true if x is less than y
//!
//! <b>Complexity</b>: 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()); }
//! <b>Effects</b>: Returns true if x is greater than y
//!
//! <b>Complexity</b>: 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; }
//! <b>Effects</b>: Returns true if x is equal or less than y
//!
//! <b>Complexity</b>: 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); }
//! <b>Effects</b>: Returns true if x is equal or greater than y
//!
//! <b>Complexity</b>: 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); }

View File

@@ -421,7 +421,7 @@ class list
//! <b>Throws</b>: If allocator's copy constructor throws.
//!
//! <b>Complexity</b>: 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
//! <b>Complexity</b>: Constant.
//!
//! <b>Note</b>: 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
//! <b>Complexity</b>: Constant.
//!
//! <b>Note</b>: 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
//! <b>Throws</b>: Nothing.
//!
//! <b>Complexity</b>: 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
//! <b>Throws</b>: Nothing.
//!
//! <b>Complexity</b>: 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
//! <b>Throws</b>: Nothing.
//!
//! <b>Complexity</b>: 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
//! <b>Throws</b>: Nothing.
//!
//! <b>Complexity</b>: 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
//! <b>Throws</b>: Nothing.
//!
//! <b>Complexity</b>: 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
//! <b>Throws</b>: Nothing.
//!
//! <b>Complexity</b>: 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
//! <b>Throws</b>: Nothing.
//!
//! <b>Complexity</b>: 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
//! <b>Throws</b>: Nothing.
//!
//! <b>Complexity</b>: 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
//! <b>Throws</b>: Nothing.
//!
//! <b>Complexity</b>: 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
//! <b>Throws</b>: Nothing.
//!
//! <b>Complexity</b>: 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
//! <b>Throws</b>: Nothing.
//!
//! <b>Complexity</b>: 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
//! <b>Throws</b>: Nothing.
//!
//! <b>Complexity</b>: 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
//! <b>Throws</b>: Nothing.
//!
//! <b>Complexity</b>: 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
//! <b>Throws</b>: Nothing.
//!
//! <b>Complexity</b>: 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
//! <b>Throws</b>: Nothing.
//!
//! <b>Complexity</b>: 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
//! <b>Throws</b>: Nothing.
//!
//! <b>Complexity</b>: 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
//! <b>Throws</b>: Nothing.
//!
//! <b>Complexity</b>: 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
//! <b>Throws</b>: Nothing.
//!
//! <b>Complexity</b>: 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
//! <b>Throws</b>: Nothing.
//!
//! <b>Complexity</b>: 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
//! <b>Effects</b>: Returns true if x and y are equal
//!
//! <b>Complexity</b>: 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()); }
//! <b>Effects</b>: Returns true if x and y are unequal
//!
//! <b>Complexity</b>: 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); }
//! <b>Effects</b>: Returns true if x is less than y
//!
//! <b>Complexity</b>: 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()); }
//! <b>Effects</b>: Returns true if x is greater than y
//!
//! <b>Complexity</b>: 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; }
//! <b>Effects</b>: Returns true if x is equal or less than y
//!
//! <b>Complexity</b>: 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); }
//! <b>Effects</b>: Returns true if x is equal or greater than y
//!
//! <b>Complexity</b>: 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); }

View File

@@ -713,7 +713,7 @@ class map
//! <b>Returns</b>: 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.
//! <b>Complexity</b>: 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
//! <b>Returns</b>: 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.
//! <b>Complexity</b>: 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<class K>
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<class K>
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
//! <b>Returns</b>: The number of elements with key equivalent to x.
//!
//! <b>Complexity</b>: log(size())+count(k)
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
BOOST_CONTAINER_NODISCARD inline
size_type count(const key_type& x) const
{ return static_cast<size_type>(this->find(x) != this->cend()); }
@@ -1315,7 +1315,7 @@ class map
//!
//! <b>Complexity</b>: log(size())+count(k)
template<typename K>
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
BOOST_CONTAINER_NODISCARD inline
size_type count(const K& x) const
{ return static_cast<size_type>(this->find(x) != this->cend()); }

View File

@@ -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<T>(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; }
};

View File

@@ -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; }

View File

@@ -41,7 +41,7 @@ class BOOST_CONTAINER_NOVTABLE memory_resource
//! <b>Effects</b>: 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
//! <b>Returns</b>:
//! `&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); }
//! <b>Returns</b>:
//! !(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); }

View File

@@ -78,7 +78,7 @@ class polymorphic_allocator
//! <b>Returns</b>: Equivalent to
//! `static_cast<T*>(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<T*>(m_resource->allocate(n*sizeof(T), ::boost::move_detail::alignment_of<T>::value)); }
//! <b>Requires</b>: p was allocated from a memory resource, x, equal to *m_resource,

View File

@@ -734,7 +734,7 @@ class scoped_allocator_adaptor
//! <b>Returns</b>:
//! <code>allocator_traits<OuterAlloc>:: max_size(outer_allocator())</code>.
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
//! <b>Returns</b>:
//! <code>allocator_traits<OuterAlloc>::allocate(outer_allocator(), n)</code>.
BOOST_CONTAINER_ATTRIBUTE_NODISCARD
BOOST_CONTAINER_NODISCARD
inline pointer allocate(size_type n)
{ return outer_traits_type::allocate(this->outer_allocator(), n); }
//! <b>Returns</b>:
//! <code>allocator_traits<OuterAlloc>::allocate(outer_allocator(), n, hint)</code>.
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<true>
/// @endcond
template <typename OuterA1, typename OuterA2, BOOST_CONTAINER_SCOPEDALLOC_ALLINNERCLASS>
BOOST_CONTAINER_ATTRIBUTE_NODISCARD
BOOST_CONTAINER_NODISCARD
inline bool operator==(const scoped_allocator_adaptor<OuterA1, BOOST_CONTAINER_SCOPEDALLOC_ALLINNER>& a
,const scoped_allocator_adaptor<OuterA2, BOOST_CONTAINER_SCOPEDALLOC_ALLINNER>& b)
{
@@ -898,7 +898,7 @@ inline bool operator==(const scoped_allocator_adaptor<OuterA1, BOOST_CONTAINER_S
}
template <typename OuterA1, typename OuterA2, BOOST_CONTAINER_SCOPEDALLOC_ALLINNERCLASS>
BOOST_CONTAINER_ATTRIBUTE_NODISCARD
BOOST_CONTAINER_NODISCARD
inline bool operator!=(const scoped_allocator_adaptor<OuterA1, BOOST_CONTAINER_SCOPEDALLOC_ALLINNER>& a
,const scoped_allocator_adaptor<OuterA2, BOOST_CONTAINER_SCOPEDALLOC_ALLINNER>& b)
{ return !(a == b); }

View File

@@ -841,7 +841,7 @@ class set
//! <b>Returns</b>: The number of elements with key equivalent to x.
//!
//! <b>Complexity</b>: log(size())+count(k)
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
BOOST_CONTAINER_NODISCARD inline
size_type count(const key_type& x) const
{ return static_cast<size_type>(this->base_t::find(x) != this->base_t::cend()); }
@@ -852,7 +852,7 @@ class set
//!
//! <b>Complexity</b>: log(size())+count(k)
template<typename K>
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
BOOST_CONTAINER_NODISCARD inline
size_type count(const K& x) const
{ return static_cast<size_type>(this->find(x) != this->cend()); }

View File

@@ -452,7 +452,7 @@ class slist
//! <b>Throws</b>: If allocator's copy constructor throws.
//!
//! <b>Complexity</b>: 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
//! <b>Complexity</b>: Constant.
//!
//! <b>Note</b>: 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
//! <b>Complexity</b>: Constant.
//!
//! <b>Note</b>: 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
//! <b>Throws</b>: Nothing.
//!
//! <b>Complexity</b>: 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
//! <b>Throws</b>: Nothing.
//!
//! <b>Complexity</b>: 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
//! <b>Throws</b>: Nothing.
//!
//! <b>Complexity</b>: 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
//! <b>Throws</b>: Nothing.
//!
//! <b>Complexity</b>: 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
//! <b>Throws</b>: Nothing.
//!
//! <b>Complexity</b>: 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
//! <b>Throws</b>: Nothing.
//!
//! <b>Complexity</b>: 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
//! <b>Throws</b>: Nothing.
//!
//! <b>Complexity</b>: 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
//! <b>Throws</b>: Nothing.
//!
//! <b>Complexity</b>: 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
//! <b>Throws</b>: Nothing.
//!
//! <b>Complexity</b>: 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
//! <b>Complexity</b>: Linear to the number of elements before i.
//!
//! <b>Note</b>: 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
//! <b>Complexity</b>: Linear to the number of elements before i.
//!
//! <b>Note</b>: 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
//! <b>Throws</b>: Nothing.
//!
//! <b>Complexity</b>: Constant.
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
BOOST_CONTAINER_NODISCARD inline
bool empty() const
{ return !this->size(); }
@@ -617,7 +617,7 @@ class slist
//! <b>Throws</b>: Nothing.
//!
//! <b>Complexity</b>: Constant.
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
BOOST_CONTAINER_NODISCARD inline
size_type size() const
{ return this->icont().size(); }
@@ -626,7 +626,7 @@ class slist
//! <b>Throws</b>: Nothing.
//!
//! <b>Complexity</b>: 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
//! <b>Throws</b>: Nothing.
//!
//! <b>Complexity</b>: Constant.
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
BOOST_CONTAINER_NODISCARD inline
reference front()
{
BOOST_ASSERT(!this->empty());
@@ -688,7 +688,7 @@ class slist
//! <b>Throws</b>: Nothing.
//!
//! <b>Complexity</b>: Constant.
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
BOOST_CONTAINER_NODISCARD inline
const_reference front() const
{
BOOST_ASSERT(!this->empty());
@@ -1524,35 +1524,35 @@ class slist
//! <b>Effects</b>: Returns true if x and y are unequal
//!
//! <b>Complexity</b>: 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); }
//! <b>Effects</b>: Returns true if x is less than y
//!
//! <b>Complexity</b>: 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()); }
//! <b>Effects</b>: Returns true if x is greater than y
//!
//! <b>Complexity</b>: 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; }
//! <b>Effects</b>: Returns true if x is equal or less than y
//!
//! <b>Complexity</b>: 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); }
//! <b>Effects</b>: Returns true if x is equal or greater than y
//!
//! <b>Complexity</b>: 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); }

View File

@@ -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:

View File

@@ -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
//! <b>Throws</b>: If allocator's copy constructor throws.
//!
//! <b>Complexity</b>: 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
//! <b>Complexity</b>: Constant.
//!
//! <b>Note</b>: 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
//! <b>Complexity</b>: Constant.
//!
//! <b>Note</b>: 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
//! <b>Throws</b>: Nothing.
//!
//! <b>Complexity</b>: 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
//! <b>Throws</b>: Nothing.
//!
//! <b>Complexity</b>: 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
//! <b>Throws</b>: Nothing.
//!
//! <b>Complexity</b>: 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
//! <b>Throws</b>: Nothing.
//!
//! <b>Complexity</b>: 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
//! <b>Throws</b>: Nothing.
//!
//! <b>Complexity</b>: 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
//! <b>Throws</b>: Nothing.
//!
//! <b>Complexity</b>: 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
//! <b>Throws</b>: Nothing.
//!
//! <b>Complexity</b>: 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
//! <b>Throws</b>: Nothing.
//!
//! <b>Complexity</b>: 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
//! <b>Throws</b>: Nothing.
//!
//! <b>Complexity</b>: 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
//! <b>Throws</b>: Nothing.
//!
//! <b>Complexity</b>: 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
//! <b>Throws</b>: Nothing.
//!
//! <b>Complexity</b>: 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
//! <b>Throws</b>: Nothing.
//!
//! <b>Complexity</b>: 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
//! <b>Throws</b>: Nothing.
//!
//! <b>Complexity</b>: 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
//! <b>Throws</b>: Nothing.
//!
//! <b>Complexity</b>: 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
//! <b>Throws</b>: Nothing.
//!
//! <b>Complexity</b>: 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
//! <b>Throws</b>: Nothing.
//!
//! <b>Complexity</b>: 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
//! <b>Throws</b>: Nothing.
//!
//! <b>Complexity</b>: 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
//! <b>Throws</b>: Nothing.
//!
//! <b>Complexity</b>: 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
//! <b>Throws</b>: Nothing.
//!
//! <b>Complexity</b>: 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
//! <b>Throws</b>: Nothing.
//!
//! <b>Complexity</b>: 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
//! <b>Throws</b>: Nothing.
//!
//! <b>Complexity</b>: 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
//! <b>Throws</b>: Nothing.
//!
//! <b>Complexity</b>: 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
//! <b>Complexity</b>: Constant.
//!
//! <b>Note</b>: 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
//! <b>Complexity</b>: Constant.
//!
//! <b>Note</b>: 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
//! <b>Complexity</b>: Constant.
//!
//! <b>Note</b>: 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
//! <b>Complexity</b>: Constant.
//!
//! <b>Note</b>: 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
//! <b>Throws</b>: range_error if n >= size()
//!
//! <b>Complexity</b>: 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
//! <b>Throws</b>: range_error if n >= size()
//!
//! <b>Complexity</b>: 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
//! <b>Effects</b>: Returns true if x and y are equal
//!
//! <b>Complexity</b>: 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()); }
//! <b>Effects</b>: Returns true if x and y are unequal
//!
//! <b>Complexity</b>: 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); }
//! <b>Effects</b>: Returns true if x is less than y
//!
//! <b>Complexity</b>: 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()); }
//! <b>Effects</b>: Returns true if x is greater than y
//!
//! <b>Complexity</b>: 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; }
//! <b>Effects</b>: Returns true if x is equal or less than y
//!
//! <b>Complexity</b>: 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); }
//! <b>Effects</b>: Returns true if x is equal or greater than y
//!
//! <b>Complexity</b>: 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); }

View File

@@ -959,7 +959,7 @@ class basic_string
//! <b>Throws</b>: If allocator's copy constructor throws.
//!
//! <b>Complexity</b>: 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
//! <b>Complexity</b>: Constant.
//!
//! <b>Note</b>: 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
//! <b>Complexity</b>: Constant.
//!
//! <b>Note</b>: 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
//! <b>Throws</b>: Nothing.
//!
//! <b>Complexity</b>: 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
//! <b>Throws</b>: Nothing.
//!
//! <b>Complexity</b>: 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
//! <b>Throws</b>: Nothing.
//!
//! <b>Complexity</b>: 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
//! <b>Throws</b>: Nothing.
//!
//! <b>Complexity</b>: 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
//! <b>Throws</b>: Nothing.
//!
//! <b>Complexity</b>: 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
//! <b>Throws</b>: Nothing.
//!
//! <b>Complexity</b>: 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
//! <b>Throws</b>: Nothing.
//!
//! <b>Complexity</b>: 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
//! <b>Throws</b>: Nothing.
//!
//! <b>Complexity</b>: 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
//! <b>Throws</b>: Nothing.
//!
//! <b>Complexity</b>: 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
//! <b>Throws</b>: Nothing.
//!
//! <b>Complexity</b>: 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
//! <b>Throws</b>: Nothing.
//!
//! <b>Complexity</b>: 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
//! <b>Throws</b>: Nothing.
//!
//! <b>Complexity</b>: 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
//! <b>Throws</b>: Nothing.
//!
//! <b>Complexity</b>: 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
//! <b>Throws</b>: Nothing.
//!
//! <b>Complexity</b>: 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
//! <b>Throws</b>: Nothing.
//!
//! <b>Complexity</b>: 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
//! <b>Throws</b>: Nothing.
//!
//! <b>Complexity</b>: 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
//! <b>Throws</b>: Nothing.
//!
//! <b>Complexity</b>: 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
//! <b>Throws</b>: Nothing.
//!
//! <b>Complexity</b>: 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
//! <b>Throws</b>: Nothing.
//!
//! <b>Complexity</b>: 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
//! <b>Throws</b>: Nothing.
//!
//! <b>Complexity</b>: 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
//! <b>Throws</b>: Nothing.
//!
//! <b>Complexity</b>: 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
//! <b>Throws</b>: Nothing.
//!
//! <b>Complexity</b>: 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
//! <b>Throws</b>: Nothing.
//!
//! <b>Complexity</b>: 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
//! <b>Throws</b>: range_error if n >= size()
//!
//! <b>Complexity</b>: 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
//! <b>Throws</b>: range_error if n >= size()
//!
//! <b>Complexity</b>: 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
//! <b>Returns</b>: A pointer p such that p + i == &operator[](i) for each i in [0,size()].
//!
//! <b>Complexity</b>: 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
//! <b>Returns</b>: A pointer p such that p + i == &operator[](i) for each i in [0,size()].
//!
//! <b>Complexity</b>: 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()); }
//! <b>Returns</b>: A pointer p such that p + i == &operator[](i) for each i in [0,size()].
//!
//! <b>Complexity</b>: 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
//! <b>Note</b>: This function is available to write portable code for compilers
//! that don't support templated conversion operators.
template<class BasicStringView>
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
//! <b>Throws</b>: Nothing
//!
//! <b>Returns</b>: 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
//!
//! <b>Returns</b>: xpos if the function can determine such a value for xpos. Otherwise, returns npos.
template<template <class, class> class BasicStringView>
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
BOOST_CONTAINER_NODISCARD inline
size_type find(BasicStringView<CharT, Traits> sv, size_type pos = 0) const
{ return this->find(sv.data(), pos, sv.size()); }
@@ -2355,7 +2355,7 @@ class basic_string
//! <b>Throws</b>: Nothing
//!
//! <b>Returns</b>: find(basic_string<CharT,traits,allocator_type>(s,n),pos).
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
BOOST_CONTAINER_NODISCARD inline
size_type find(const CharT* s, size_type pos, size_type n) const
{
if (pos + n > this->size())
@@ -2376,14 +2376,14 @@ class basic_string
//! <b>Throws</b>: Nothing
//!
//! <b>Returns</b>: find(basic_string(s), pos).
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
BOOST_CONTAINER_NODISCARD inline
size_type find(const CharT* s, size_type pos = 0) const
{ return this->find(s, pos, Traits::length(s)); }
//! <b>Throws</b>: Nothing
//!
//! <b>Returns</b>: find(basic_string<CharT,traits,allocator_type>(1,c), pos).
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
BOOST_CONTAINER_NODISCARD inline
size_type find(CharT c, size_type pos = 0) const
{
const size_type sz = this->size();
@@ -2407,7 +2407,7 @@ class basic_string
//! <b>Throws</b>: Nothing
//!
//! <b>Returns</b>: 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 rfind(const basic_string& str, size_type pos = npos) const
{ return this->rfind(str.c_str(), pos, str.size()); }
@@ -2420,7 +2420,7 @@ class basic_string
//!
//! <b>Returns</b>: xpos if the function can determine such a value for xpos. Otherwise, returns npos.
template<template <class, class> class BasicStringView>
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
BOOST_CONTAINER_NODISCARD inline
size_type rfind(BasicStringView<CharT, Traits> sv, size_type pos = npos) const
{ return this->rfind(sv.data(), pos, sv.size()); }
@@ -2429,7 +2429,7 @@ class basic_string
//! <b>Throws</b>: Nothing
//!
//! <b>Returns</b>: rfind(basic_string(s, n), pos).
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
BOOST_CONTAINER_NODISCARD inline
size_type rfind(const CharT* s, size_type pos, size_type n) const
{
const size_type len = this->size();
@@ -2452,14 +2452,14 @@ class basic_string
//! <b>Throws</b>: Nothing
//!
//! <b>Returns</b>: rfind(basic_string(s), pos).
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
BOOST_CONTAINER_NODISCARD inline
size_type rfind(const CharT* s, size_type pos = npos) const
{ return this->rfind(s, pos, Traits::length(s)); }
//! <b>Throws</b>: Nothing
//!
//! <b>Returns</b>: rfind(basic_string<CharT,traits,allocator_type>(1,c),pos).
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
BOOST_CONTAINER_NODISCARD inline
size_type rfind(CharT c, size_type pos = npos) const
{
const size_type len = this->size();
@@ -2482,7 +2482,7 @@ class basic_string
//! <b>Throws</b>: Nothing
//!
//! <b>Returns</b>: 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_first_of(const basic_string& str, size_type pos = 0) const
{ return this->find_first_of(str.c_str(), pos, str.size()); }
@@ -2494,7 +2494,7 @@ class basic_string
//!
//! <b>Returns</b>: xpos if the function can determine such a value for xpos. Otherwise, returns npos.
template<template <class, class> class BasicStringView>
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
BOOST_CONTAINER_NODISCARD inline
size_type find_first_of(BasicStringView<CharT, Traits> sv, size_type pos = 0) const
{ return this->find_first_of(sv.data(), pos, sv.size()); }
@@ -2503,7 +2503,7 @@ class basic_string
//! <b>Throws</b>: Nothing
//!
//! <b>Returns</b>: find_first_of(basic_string(s, n), pos).
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
BOOST_CONTAINER_NODISCARD inline
size_type find_first_of(const CharT* s, size_type pos, size_type n) const
{
const size_type sz = this->size();
@@ -2523,7 +2523,7 @@ class basic_string
//! <b>Throws</b>: Nothing
//!
//! <b>Returns</b>: find_first_of(basic_string(s), pos).
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
BOOST_CONTAINER_NODISCARD inline
size_type find_first_of(const CharT* s, size_type pos = 0) const
{ return this->find_first_of(s, pos, Traits::length(s)); }
@@ -2532,7 +2532,7 @@ class basic_string
//! <b>Throws</b>: Nothing
//!
//! <b>Returns</b>: find_first_of(basic_string<CharT,traits,allocator_type>(1,c), pos).
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
BOOST_CONTAINER_NODISCARD inline
size_type find_first_of(CharT c, size_type pos = 0) const
{ return this->find(c, pos); }
@@ -2543,7 +2543,7 @@ class basic_string
//! <b>Throws</b>: Nothing
//!
//! <b>Returns</b>: 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_last_of(const basic_string& str, size_type pos = npos) const
{ return this->find_last_of(str.c_str(), pos, str.size()); }
@@ -2555,7 +2555,7 @@ class basic_string
//!
//! <b>Returns</b>: xpos if the function can determine such a value for xpos. Otherwise, returns npos.
template<template <class, class> class BasicStringView>
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
BOOST_CONTAINER_NODISCARD inline
size_type find_last_of(BasicStringView<CharT, Traits> sv, size_type pos = npos) const
{ return this->find_last_of(sv.data(), pos, sv.size()); }
@@ -2564,7 +2564,7 @@ class basic_string
//! <b>Throws</b>: Nothing
//!
//! <b>Returns</b>: find_last_of(basic_string(s, n), pos).
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
BOOST_CONTAINER_NODISCARD inline
size_type find_last_of(const CharT* s, size_type pos, size_type n) const
{
const size_type len = this->size();
@@ -2586,14 +2586,14 @@ class basic_string
//! <b>Throws</b>: Nothing
//!
//! <b>Returns</b>: find_last_of(basic_string<CharT,traits,allocator_type>(1,c),pos).
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
BOOST_CONTAINER_NODISCARD inline
size_type find_last_of(const CharT* s, size_type pos = npos) const
{ return this->find_last_of(s, pos, Traits::length(s)); }
//! <b>Throws</b>: Nothing
//!
//! <b>Returns</b>: find_last_of(basic_string(s), pos).
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
BOOST_CONTAINER_NODISCARD inline
size_type find_last_of(CharT c, size_type pos = npos) const
{ return this->rfind(c, pos); }
@@ -2605,7 +2605,7 @@ class basic_string
//! <b>Throws</b>: Nothing
//!
//! <b>Returns</b>: 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_first_not_of(const basic_string& str, size_type pos = 0) const
{ return this->find_first_not_of(str.c_str(), pos, str.size()); }
@@ -2618,7 +2618,7 @@ class basic_string
//!
//! <b>Returns</b>: xpos if the function can determine such a value for xpos. Otherwise, returns npos.
template<template <class, class> class BasicStringView>
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
BOOST_CONTAINER_NODISCARD inline
size_type find_first_not_of(BasicStringView<CharT, Traits> sv, size_type pos = 0) const
{ return this->find_first_not_of(sv.data(), pos, sv.size()); }
@@ -2627,7 +2627,7 @@ class basic_string
//! <b>Throws</b>: Nothing
//!
//! <b>Returns</b>: find_first_not_of(basic_string(s, n), pos).
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
BOOST_CONTAINER_NODISCARD inline
size_type find_first_not_of(const CharT* s, size_type pos, size_type n) const
{
if (pos > this->size())
@@ -2646,14 +2646,14 @@ class basic_string
//! <b>Throws</b>: Nothing
//!
//! <b>Returns</b>: find_first_not_of(basic_string(s), pos).
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
BOOST_CONTAINER_NODISCARD inline
size_type find_first_not_of(const CharT* s, size_type pos = 0) const
{ return this->find_first_not_of(s, pos, Traits::length(s)); }
//! <b>Throws</b>: Nothing
//!
//! <b>Returns</b>: find_first_not_of(basic_string(1, c), pos).
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
BOOST_CONTAINER_NODISCARD inline
size_type find_first_not_of(CharT c, size_type pos = 0) const
{
if (pos > this->size())
@@ -2675,7 +2675,7 @@ class basic_string
//! <b>Throws</b>: Nothing
//!
//! <b>Returns</b>: 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_last_not_of(const basic_string& str, size_type pos = npos) const
{ return this->find_last_not_of(str.c_str(), pos, str.size()); }
@@ -2687,7 +2687,7 @@ class basic_string
//!
//! <b>Returns</b>: xpos if the function can determine such a value for xpos. Otherwise, returns npos.
template<template <class, class> class BasicStringView>
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
BOOST_CONTAINER_NODISCARD inline
size_type find_last_not_of(BasicStringView<CharT, Traits> sv, size_type pos = npos) const
{ return this->find_last_not_of(sv.data(), pos, sv.size()); }
@@ -2696,7 +2696,7 @@ class basic_string
//! <b>Throws</b>: Nothing
//!
//! <b>Returns</b>: find_last_not_of(basic_string(s, n), pos).
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
BOOST_CONTAINER_NODISCARD inline
size_type find_last_not_of(const CharT* s, size_type pos, size_type n) const
{
const size_type len = this->size();
@@ -2717,14 +2717,14 @@ class basic_string
//! <b>Throws</b>: Nothing
//!
//! <b>Returns</b>: find_last_not_of(basic_string(s), pos).
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
BOOST_CONTAINER_NODISCARD inline
size_type find_last_not_of(const CharT* s, size_type pos = npos) const
{ return this->find_last_not_of(s, pos, Traits::length(s)); }
//! <b>Throws</b>: Nothing
//!
//! <b>Returns</b>: find_last_not_of(basic_string(1, c), pos).
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
BOOST_CONTAINER_NODISCARD inline
size_type find_last_not_of(CharT c, size_type pos = npos) const
{
const size_type len = this->size();
@@ -2748,7 +2748,7 @@ class basic_string
//! <b>Throws</b>: If memory allocation throws or out_of_range if pos > size().
//!
//! <b>Returns</b>: basic_string<CharT,traits,allocator_type>(data()+pos,rlen).
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
BOOST_CONTAINER_NODISCARD inline
basic_string substr(size_type pos = 0, size_type n = npos) const
{
if (pos > this->size())
@@ -2767,7 +2767,7 @@ class basic_string
//! <b>Returns</b>: The nonzero result if the result of the comparison is nonzero.
//! Otherwise, returns a value < 0 if size() < str.size(), a 0 value if size() == str.size(),
//! and value > 0 if size() > str.size()
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
BOOST_CONTAINER_NODISCARD inline
int compare(const basic_string& str) const
{
const pointer addr = this->priv_addr();
@@ -2779,7 +2779,7 @@ class basic_string
//!
//! <b>Returns</b>: compare(basic_string(sv)).
template<template <class, class> class BasicStringView>
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
BOOST_CONTAINER_NODISCARD inline
int compare(BasicStringView<CharT,Traits> sv) const
{
const pointer addr = this->priv_addr();
@@ -2795,7 +2795,7 @@ class basic_string
//! <b>Throws</b>: out_of_range if pos1 > size()
//!
//! <b>Returns</b>:basic_string(*this,pos1,n1).compare(str).
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
BOOST_CONTAINER_NODISCARD inline
int compare(size_type pos1, size_type n1, const basic_string& str) const
{
if (pos1 > this->size())
@@ -2813,7 +2813,7 @@ class basic_string
//!
//! <b>Returns</b>:basic_string(*this,pos1,n1).compare(sv).
template<template <class, class> class BasicStringView>
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
BOOST_CONTAINER_NODISCARD inline
int compare(size_type pos1, size_type n1, BasicStringView<CharT,Traits> sv) const
{
if (pos1 > this->size())
@@ -2832,7 +2832,7 @@ class basic_string
//! <b>Throws</b>: out_of_range if pos1 > size() or pos2 > str.size()
//!
//! <b>Returns</b>: basic_string(*this, pos1, n1).compare(basic_string(str, pos2, n2)).
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
BOOST_CONTAINER_NODISCARD inline
int compare(size_type pos1, size_type n1, const basic_string& str, size_type pos2, size_type n2 = npos) const
{
if (pos1 > this->size() || pos2 > str.size())
@@ -2852,7 +2852,7 @@ class basic_string
//!
//! <b>Returns</b>: basic_string(*this, pos1, n1).compare(BasicStringView<CharT, Traits>(sv, pos2, n2)).
template<template <class, class> class BasicStringView>
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
BOOST_CONTAINER_NODISCARD inline
int compare(size_type pos1, size_type n1, BasicStringView<CharT,Traits> sv, size_type pos2, size_type n2) const
{
if (pos1 > this->size() || pos2 > sv.size())
@@ -2866,7 +2866,7 @@ class basic_string
//! <b>Throws</b>: Nothing
//!
//! <b>Returns</b>: compare(basic_string(s)).
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
BOOST_CONTAINER_NODISCARD inline
int compare(const CharT* s) const
{
const pointer addr = this->priv_addr();
@@ -2878,7 +2878,7 @@ class basic_string
//! <b>Throws</b>: out_of_range if pos1 > size()
//!
//! <b>Returns</b>: basic_string(*this, pos, n1).compare(basic_string(s, n2)).
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
BOOST_CONTAINER_NODISCARD inline
int compare(size_type pos1, size_type n1, const CharT* s, size_type n2) const
{
if (pos1 > this->size())
@@ -2894,7 +2894,7 @@ class basic_string
//! <b>Throws</b>: out_of_range if pos1 > size()
//!
//! <b>Returns</b>: basic_string(*this, pos, n1).compare(basic_string(s, n2)).
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
BOOST_CONTAINER_NODISCARD inline
int compare(size_type pos1, size_type n1, const CharT* s) const
{ return this->compare(pos1, n1, s, Traits::length(s)); }

View File

@@ -201,15 +201,15 @@ class vec_iterator
{ m_ptr = other.get_ptr(); return *this; }
//Pointer like operators
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
BOOST_CONTAINER_NODISCARD inline
reference operator*() const BOOST_NOEXCEPT_OR_NOTHROW
{ BOOST_ASSERT(!!m_ptr); return *m_ptr; }
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
BOOST_CONTAINER_NODISCARD inline
pointer operator->() const BOOST_NOEXCEPT_OR_NOTHROW
{ return m_ptr; }
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
BOOST_CONTAINER_NODISCARD inline
reference operator[](difference_type off) const BOOST_NOEXCEPT_OR_NOTHROW
{ BOOST_ASSERT(!!m_ptr); return m_ptr[off]; }
@@ -233,45 +233,45 @@ class vec_iterator
inline vec_iterator& operator-=(difference_type off) BOOST_NOEXCEPT_OR_NOTHROW
{ BOOST_ASSERT(m_ptr || !off); m_ptr -= off; return *this; }
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
BOOST_CONTAINER_NODISCARD inline
friend vec_iterator operator+(const vec_iterator &x, difference_type off) BOOST_NOEXCEPT_OR_NOTHROW
{ BOOST_ASSERT(x.m_ptr || !off); return vec_iterator(x.m_ptr+off); }
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
BOOST_CONTAINER_NODISCARD inline
friend vec_iterator operator+(difference_type off, vec_iterator right) BOOST_NOEXCEPT_OR_NOTHROW
{ BOOST_ASSERT(right.m_ptr || !off); right.m_ptr += off; return right; }
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
BOOST_CONTAINER_NODISCARD inline
friend vec_iterator operator-(vec_iterator left, difference_type off) BOOST_NOEXCEPT_OR_NOTHROW
{ BOOST_ASSERT(left.m_ptr || !off); left.m_ptr -= off; return left; }
//Difference
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
BOOST_CONTAINER_NODISCARD inline
friend difference_type operator-(const vec_iterator &left, const vec_iterator& right) BOOST_NOEXCEPT_OR_NOTHROW
{ return left.m_ptr - right.m_ptr; }
//Comparison operators
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
BOOST_CONTAINER_NODISCARD inline
friend bool operator== (const vec_iterator& l, const vec_iterator& r) BOOST_NOEXCEPT_OR_NOTHROW
{ return l.m_ptr == r.m_ptr; }
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
BOOST_CONTAINER_NODISCARD inline
friend bool operator!= (const vec_iterator& l, const vec_iterator& r) BOOST_NOEXCEPT_OR_NOTHROW
{ return l.m_ptr != r.m_ptr; }
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
BOOST_CONTAINER_NODISCARD inline
friend bool operator< (const vec_iterator& l, const vec_iterator& r) BOOST_NOEXCEPT_OR_NOTHROW
{ return l.m_ptr < r.m_ptr; }
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
BOOST_CONTAINER_NODISCARD inline
friend bool operator<= (const vec_iterator& l, const vec_iterator& r) BOOST_NOEXCEPT_OR_NOTHROW
{ return l.m_ptr <= r.m_ptr; }
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
BOOST_CONTAINER_NODISCARD inline
friend bool operator> (const vec_iterator& l, const vec_iterator& r) BOOST_NOEXCEPT_OR_NOTHROW
{ return l.m_ptr > r.m_ptr; }
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
BOOST_CONTAINER_NODISCARD inline
friend bool operator>= (const vec_iterator& l, const vec_iterator& r) BOOST_NOEXCEPT_OR_NOTHROW
{ return l.m_ptr >= r.m_ptr; }
};
@@ -1478,7 +1478,7 @@ private:
//! <b>Throws</b>: If allocator's copy constructor throws.
//!
//! <b>Complexity</b>: Constant.
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline allocator_type get_allocator() const BOOST_NOEXCEPT_OR_NOTHROW
BOOST_CONTAINER_NODISCARD inline allocator_type get_allocator() const BOOST_NOEXCEPT_OR_NOTHROW
{ return this->m_holder.alloc(); }
//! <b>Effects</b>: Returns a reference to the internal allocator.
@@ -1488,7 +1488,7 @@ private:
//! <b>Complexity</b>: Constant.
//!
//! <b>Note</b>: Non-standard extension.
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
BOOST_CONTAINER_NODISCARD inline
stored_allocator_type &get_stored_allocator() BOOST_NOEXCEPT_OR_NOTHROW
{ return this->m_holder.alloc(); }
@@ -1499,7 +1499,7 @@ private:
//! <b>Complexity</b>: Constant.
//!
//! <b>Note</b>: 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->m_holder.alloc(); }
@@ -1514,7 +1514,7 @@ private:
//! <b>Throws</b>: Nothing.
//!
//! <b>Complexity</b>: Constant.
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline iterator begin() BOOST_NOEXCEPT_OR_NOTHROW
BOOST_CONTAINER_NODISCARD inline iterator begin() BOOST_NOEXCEPT_OR_NOTHROW
{ return iterator(this->m_holder.start()); }
//! <b>Effects</b>: Returns a const_iterator to the first element contained in the vector.
@@ -1522,7 +1522,7 @@ private:
//! <b>Throws</b>: Nothing.
//!
//! <b>Complexity</b>: Constant.
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline const_iterator begin() const BOOST_NOEXCEPT_OR_NOTHROW
BOOST_CONTAINER_NODISCARD inline const_iterator begin() const BOOST_NOEXCEPT_OR_NOTHROW
{ return const_iterator(this->m_holder.start()); }
//! <b>Effects</b>: Returns an iterator to the end of the vector.
@@ -1530,7 +1530,7 @@ private:
//! <b>Throws</b>: Nothing.
//!
//! <b>Complexity</b>: Constant.
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline iterator end() BOOST_NOEXCEPT_OR_NOTHROW
BOOST_CONTAINER_NODISCARD inline iterator end() BOOST_NOEXCEPT_OR_NOTHROW
{
iterator it (this->m_holder.start());
it += difference_type(this->m_holder.m_size);
@@ -1542,7 +1542,7 @@ private:
//! <b>Throws</b>: Nothing.
//!
//! <b>Complexity</b>: Constant.
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline const_iterator end() const BOOST_NOEXCEPT_OR_NOTHROW
BOOST_CONTAINER_NODISCARD inline const_iterator end() const BOOST_NOEXCEPT_OR_NOTHROW
{ return this->cend(); }
//! <b>Effects</b>: Returns a reverse_iterator pointing to the beginning
@@ -1551,7 +1551,7 @@ private:
//! <b>Throws</b>: Nothing.
//!
//! <b>Complexity</b>: Constant.
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline reverse_iterator rbegin() BOOST_NOEXCEPT_OR_NOTHROW
BOOST_CONTAINER_NODISCARD inline reverse_iterator rbegin() BOOST_NOEXCEPT_OR_NOTHROW
{ return reverse_iterator(this->end()); }
//! <b>Effects</b>: Returns a const_reverse_iterator pointing to the beginning
@@ -1560,7 +1560,7 @@ private:
//! <b>Throws</b>: Nothing.
//!
//! <b>Complexity</b>: Constant.
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline const_reverse_iterator rbegin() const BOOST_NOEXCEPT_OR_NOTHROW
BOOST_CONTAINER_NODISCARD inline const_reverse_iterator rbegin() const BOOST_NOEXCEPT_OR_NOTHROW
{ return this->crbegin(); }
//! <b>Effects</b>: Returns a reverse_iterator pointing to the end
@@ -1569,7 +1569,7 @@ private:
//! <b>Throws</b>: Nothing.
//!
//! <b>Complexity</b>: Constant.
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline reverse_iterator rend() BOOST_NOEXCEPT_OR_NOTHROW
BOOST_CONTAINER_NODISCARD inline reverse_iterator rend() BOOST_NOEXCEPT_OR_NOTHROW
{ return reverse_iterator(this->begin()); }
//! <b>Effects</b>: Returns a const_reverse_iterator pointing to the end
@@ -1578,7 +1578,7 @@ private:
//! <b>Throws</b>: Nothing.
//!
//! <b>Complexity</b>: Constant.
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline const_reverse_iterator rend() const BOOST_NOEXCEPT_OR_NOTHROW
BOOST_CONTAINER_NODISCARD inline const_reverse_iterator rend() const BOOST_NOEXCEPT_OR_NOTHROW
{ return this->crend(); }
//! <b>Effects</b>: Returns a const_iterator to the first element contained in the vector.
@@ -1586,7 +1586,7 @@ private:
//! <b>Throws</b>: Nothing.
//!
//! <b>Complexity</b>: Constant.
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline const_iterator cbegin() const BOOST_NOEXCEPT_OR_NOTHROW
BOOST_CONTAINER_NODISCARD inline const_iterator cbegin() const BOOST_NOEXCEPT_OR_NOTHROW
{ return const_iterator(this->m_holder.start()); }
//! <b>Effects</b>: Returns a const_iterator to the end of the vector.
@@ -1594,7 +1594,7 @@ private:
//! <b>Throws</b>: Nothing.
//!
//! <b>Complexity</b>: Constant.
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline const_iterator cend() const BOOST_NOEXCEPT_OR_NOTHROW
BOOST_CONTAINER_NODISCARD inline const_iterator cend() const BOOST_NOEXCEPT_OR_NOTHROW
{
const_iterator it (this->m_holder.start());
it += difference_type(this->m_holder.m_size);
@@ -1607,7 +1607,7 @@ private:
//! <b>Throws</b>: Nothing.
//!
//! <b>Complexity</b>: Constant.
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline const_reverse_iterator crbegin() const BOOST_NOEXCEPT_OR_NOTHROW
BOOST_CONTAINER_NODISCARD inline const_reverse_iterator crbegin() const BOOST_NOEXCEPT_OR_NOTHROW
{ return const_reverse_iterator(this->end());}
//! <b>Effects</b>: Returns a const_reverse_iterator pointing to the end
@@ -1616,7 +1616,7 @@ private:
//! <b>Throws</b>: Nothing.
//!
//! <b>Complexity</b>: Constant.
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline const_reverse_iterator crend() const BOOST_NOEXCEPT_OR_NOTHROW
BOOST_CONTAINER_NODISCARD inline const_reverse_iterator crend() const BOOST_NOEXCEPT_OR_NOTHROW
{ return const_reverse_iterator(this->begin()); }
//////////////////////////////////////////////
@@ -1630,7 +1630,7 @@ private:
//! <b>Throws</b>: Nothing.
//!
//! <b>Complexity</b>: Constant.
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline bool empty() const BOOST_NOEXCEPT_OR_NOTHROW
BOOST_CONTAINER_NODISCARD inline bool empty() const BOOST_NOEXCEPT_OR_NOTHROW
{ return !this->m_holder.m_size; }
//! <b>Effects</b>: Returns the number of the elements contained in the vector.
@@ -1638,7 +1638,7 @@ private:
//! <b>Throws</b>: Nothing.
//!
//! <b>Complexity</b>: Constant.
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline size_type size() const BOOST_NOEXCEPT_OR_NOTHROW
BOOST_CONTAINER_NODISCARD inline size_type size() const BOOST_NOEXCEPT_OR_NOTHROW
{ return this->m_holder.m_size; }
//! <b>Effects</b>: Returns the largest possible size of the vector.
@@ -1646,7 +1646,7 @@ private:
//! <b>Throws</b>: Nothing.
//!
//! <b>Complexity</b>: Constant.
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 allocator_traits_type::max_size(this->m_holder.alloc()); }
//! <b>Effects</b>: Inserts or erases elements at the end such that
@@ -1684,7 +1684,7 @@ private:
//! <b>Throws</b>: Nothing.
//!
//! <b>Complexity</b>: Constant.
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline size_type capacity() const BOOST_NOEXCEPT_OR_NOTHROW
BOOST_CONTAINER_NODISCARD inline size_type capacity() const BOOST_NOEXCEPT_OR_NOTHROW
{ return this->m_holder.capacity(); }
//! <b>Effects</b>: If n is less than or equal to capacity(), this call has no
@@ -1723,7 +1723,7 @@ private:
//! <b>Throws</b>: Nothing.
//!
//! <b>Complexity</b>: Constant.
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline reference front() BOOST_NOEXCEPT_OR_NOTHROW
BOOST_CONTAINER_NODISCARD inline reference front() BOOST_NOEXCEPT_OR_NOTHROW
{
BOOST_ASSERT(!this->empty());
return *this->m_holder.start();
@@ -1737,7 +1737,7 @@ private:
//! <b>Throws</b>: Nothing.
//!
//! <b>Complexity</b>: Constant.
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline const_reference front() const BOOST_NOEXCEPT_OR_NOTHROW
BOOST_CONTAINER_NODISCARD inline const_reference front() const BOOST_NOEXCEPT_OR_NOTHROW
{
BOOST_ASSERT(!this->empty());
return *this->m_holder.start();
@@ -1751,7 +1751,7 @@ private:
//! <b>Throws</b>: Nothing.
//!
//! <b>Complexity</b>: Constant.
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline reference back() BOOST_NOEXCEPT_OR_NOTHROW
BOOST_CONTAINER_NODISCARD inline reference back() BOOST_NOEXCEPT_OR_NOTHROW
{
BOOST_ASSERT(!this->empty());
return this->m_holder.start()[difference_type(this->m_holder.m_size - 1u)];
@@ -1765,7 +1765,7 @@ private:
//! <b>Throws</b>: Nothing.
//!
//! <b>Complexity</b>: Constant.
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline const_reference back() const BOOST_NOEXCEPT_OR_NOTHROW
BOOST_CONTAINER_NODISCARD inline const_reference back() const BOOST_NOEXCEPT_OR_NOTHROW
{
BOOST_ASSERT(!this->empty());
return this->m_holder.start()[this->m_holder.m_size - 1];
@@ -1779,7 +1779,7 @@ private:
//! <b>Throws</b>: Nothing.
//!
//! <b>Complexity</b>: Constant.
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline reference operator[](size_type n) BOOST_NOEXCEPT_OR_NOTHROW
BOOST_CONTAINER_NODISCARD inline reference operator[](size_type n) BOOST_NOEXCEPT_OR_NOTHROW
{
BOOST_ASSERT(this->m_holder.m_size > n);
return this->m_holder.start()[difference_type(n)];
@@ -1793,7 +1793,7 @@ private:
//! <b>Throws</b>: Nothing.
//!
//! <b>Complexity</b>: Constant.
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
BOOST_CONTAINER_NODISCARD inline
const_reference operator[](size_type n) const BOOST_NOEXCEPT_OR_NOTHROW
{
BOOST_ASSERT(this->m_holder.m_size > n);
@@ -1811,7 +1811,7 @@ private:
//! <b>Complexity</b>: Constant.
//!
//! <b>Note</b>: Non-standard extension
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
BOOST_CONTAINER_NODISCARD inline
iterator nth(size_type n) BOOST_NOEXCEPT_OR_NOTHROW
{
BOOST_ASSERT(this->m_holder.m_size >= n);
@@ -1829,7 +1829,7 @@ private:
//! <b>Complexity</b>: Constant.
//!
//! <b>Note</b>: 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->m_holder.m_size >= n);
@@ -1846,7 +1846,7 @@ private:
//! <b>Complexity</b>: Constant.
//!
//! <b>Note</b>: Non-standard extension
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
BOOST_CONTAINER_NODISCARD inline
size_type index_of(iterator p) BOOST_NOEXCEPT_OR_NOTHROW
{
//Range check assert done in priv_index_of
@@ -1863,7 +1863,7 @@ private:
//! <b>Complexity</b>: Constant.
//!
//! <b>Note</b>: 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 check assert done in priv_index_of
@@ -1878,7 +1878,7 @@ private:
//! <b>Throws</b>: range_error if n >= size()
//!
//! <b>Complexity</b>: Constant.
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline reference at(size_type n)
BOOST_CONTAINER_NODISCARD inline reference at(size_type n)
{
this->priv_throw_if_out_of_range(n);
return this->m_holder.start()[difference_type(n)];
@@ -1892,7 +1892,7 @@ private:
//! <b>Throws</b>: range_error if n >= size()
//!
//! <b>Complexity</b>: Constant.
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline const_reference at(size_type n) const
BOOST_CONTAINER_NODISCARD inline const_reference at(size_type n) const
{
this->priv_throw_if_out_of_range(n);
return this->m_holder.start()[n];
@@ -1910,7 +1910,7 @@ private:
//! <b>Throws</b>: Nothing.
//!
//! <b>Complexity</b>: Constant.
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline T* data() BOOST_NOEXCEPT_OR_NOTHROW
BOOST_CONTAINER_NODISCARD inline T* data() BOOST_NOEXCEPT_OR_NOTHROW
{ return this->priv_raw_begin(); }
//! <b>Returns</b>: A pointer such that [data(),data() + size()) is a valid range.
@@ -1919,7 +1919,7 @@ private:
//! <b>Throws</b>: Nothing.
//!
//! <b>Complexity</b>: Constant.
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline const T * data() const BOOST_NOEXCEPT_OR_NOTHROW
BOOST_CONTAINER_NODISCARD inline const T * data() const BOOST_NOEXCEPT_OR_NOTHROW
{ return this->priv_raw_begin(); }
//////////////////////////////////////////////
@@ -2301,37 +2301,37 @@ private:
//! <b>Effects</b>: Returns true if x and y are equal
//!
//! <b>Complexity</b>: Linear to the number of elements in the container.
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline friend bool operator==(const vector& x, const vector& y)
BOOST_CONTAINER_NODISCARD inline friend bool operator==(const vector& x, const vector& y)
{ return x.size() == y.size() && ::boost::container::algo_equal(x.begin(), x.end(), y.begin()); }
//! <b>Effects</b>: Returns true if x and y are unequal
//!
//! <b>Complexity</b>: Linear to the number of elements in the container.
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline friend bool operator!=(const vector& x, const vector& y)
BOOST_CONTAINER_NODISCARD inline friend bool operator!=(const vector& x, const vector& y)
{ return !(x == y); }
//! <b>Effects</b>: Returns true if x is less than y
//!
//! <b>Complexity</b>: Linear to the number of elements in the container.
BOOST_CONTAINER_ATTRIBUTE_NODISCARD friend bool operator<(const vector& x, const vector& y)
BOOST_CONTAINER_NODISCARD friend bool operator<(const vector& x, const vector& y)
{ return boost::container::algo_lexicographical_compare(x.begin(), x.end(), y.begin(), y.end()); }
//! <b>Effects</b>: Returns true if x is greater than y
//!
//! <b>Complexity</b>: Linear to the number of elements in the container.
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline friend bool operator>(const vector& x, const vector& y)
BOOST_CONTAINER_NODISCARD inline friend bool operator>(const vector& x, const vector& y)
{ return y < x; }
//! <b>Effects</b>: Returns true if x is equal or less than y
//!
//! <b>Complexity</b>: Linear to the number of elements in the container.
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline friend bool operator<=(const vector& x, const vector& y)
BOOST_CONTAINER_NODISCARD inline friend bool operator<=(const vector& x, const vector& y)
{ return !(y < x); }
//! <b>Effects</b>: Returns true if x is equal or greater than y
//!
//! <b>Complexity</b>: Linear to the number of elements in the container.
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline friend bool operator>=(const vector& x, const vector& y)
BOOST_CONTAINER_NODISCARD inline friend bool operator>=(const vector& x, const vector& y)
{ return !(x < y); }
//! <b>Effects</b>: x.swap(y)