mirror of
https://github.com/boostorg/beast.git
synced 2025-07-29 20:37:31 +02:00
@ -1,5 +1,6 @@
|
||||
Version XXX:
|
||||
|
||||
* flat_buffer shrink_to_fit is noexcept
|
||||
* moved-from dynamic buffers do not clear if different allocator
|
||||
* fix erase field
|
||||
|
||||
|
@ -358,17 +358,17 @@ public:
|
||||
void
|
||||
reserve(std::size_t n);
|
||||
|
||||
/** Reallocate the buffer to fit the readable bytes exactly.
|
||||
/** Request the removal of unused capacity.
|
||||
|
||||
Buffer sequences previously obtained using @ref data or
|
||||
@ref prepare become invalid.
|
||||
This function attempts to reduce @ref capacity()
|
||||
to @ref size(), which may not succeed.
|
||||
|
||||
@esafe
|
||||
|
||||
Strong guarantee.
|
||||
No-throw guarantee.
|
||||
*/
|
||||
void
|
||||
shrink_to_fit();
|
||||
shrink_to_fit() noexcept;
|
||||
|
||||
/** Set the size of the readable and writable bytes to zero.
|
||||
|
||||
|
@ -260,17 +260,32 @@ reserve(std::size_t n)
|
||||
template<class Allocator>
|
||||
void
|
||||
basic_flat_buffer<Allocator>::
|
||||
shrink_to_fit()
|
||||
shrink_to_fit() noexcept
|
||||
{
|
||||
auto const len = size();
|
||||
|
||||
if(len == capacity())
|
||||
return;
|
||||
|
||||
char* p;
|
||||
if(len > 0)
|
||||
{
|
||||
BOOST_ASSERT(begin_);
|
||||
BOOST_ASSERT(in_);
|
||||
p = alloc(len);
|
||||
#ifndef BOOST_NO_EXCEPTIONS
|
||||
try
|
||||
{
|
||||
#endif
|
||||
p = alloc(len);
|
||||
#ifndef BOOST_NO_EXCEPTIONS
|
||||
}
|
||||
catch(std::exception const&)
|
||||
{
|
||||
// request could not be fulfilled,
|
||||
// squelch the exception
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
std::memcpy(p, in_, len);
|
||||
}
|
||||
else
|
||||
|
Reference in New Issue
Block a user