Namespaces
Variants

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

ja.cppreference.net より
 
 
 
 
static constexpr void reserve( size_type new_cap );
(C++26から)

何も行いません。ただし、std::bad_allocを投げる可能性があります。容量(内部ストレージサイズ)を増やす要求は無視されます。なぜならstd::inplace_vector<T, N>は固定容量コンテナであるからです。

パラメータ

new_cap - inplace_vectorの新しい容量(要素数)

計算量

定数。

例外

std::bad_alloc new_cap > capacity()が true の場合。

注記

この関数はベクトルライクなインターフェースとの互換性のために存在します。

例

#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); // 何も行わない
    assert(v.capacity() == 4 && v.size() == 3);
    try
    {
        v.reserve(13); // 例外をスロー(要求容量 > N のため);v は変更されない
    }
    catch(const std::bad_alloc& ex)
    {
        std::cout << ex.what() << '\n';
    }
    assert(v.capacity() == 4 && v.size() == 3);
}

出力例:

std::bad_alloc

関連項目

要素数を返す
(公開メンバ関数)
[static]
格納可能な最大要素数を返す
(公開静的メンバ関数)
格納されている要素数を変更する
(公開メンバ関数)
[static]
現在確保されているストレージに格納可能な要素数を返す
(公開静的メンバ関数)
未使用メモリを解放してメモリ使用量を削減する
(公開静的メンバ関数)