std::inplace_vector<T,N>::reserve

From cppreference.com
 
 
 
 
static constexpr void reserve( size_type new_cap );
(since C++26)

Does nothing, except that may throw std::bad_alloc. The request to increase the capacity (i.e., the internal storage size) is ignored because std::inplace_vector<T, N> is a fixed-capacity container.

Parameters

new_cap - new capacity of the inplace_vector, in number of elements

Return value

(none)

Complexity

Constant.

Exceptions

std::bad_alloc if new_cap > capacity() is true.

Notes

This function exists for compatibility with vector-like interfaces.

Example

#include <cassert>
#include <inplace_vector>
#include <iostream>
 
int main()
{
    std::inplace_vector<int, 4> v{1, 2, 3};
    assert(v.capacity() == 4 && v.size() == 3);
 
    v.reserve(2); // does nothing
    assert(v.capacity() == 4 && v.size() == 3);
 
    try
    {
        v.reserve(13); // throws, because requested capacity > N; v is left unchanged
    }
    catch(const std::bad_alloc& ex)
    {
        std::cout << ex.what() << '\n';
    }
    assert(v.capacity() == 4 && v.size() == 3);
}

Possible output:

std::bad_alloc

See also

returns the number of elements
(public member function)
[static]
returns the maximum possible number of elements
(public static member function)
changes the number of elements stored
(public member function)
[static]
returns the number of elements that can be held in currently allocated storage
(public static member function)
reduces memory usage by freeing unused memory
(public static member function)