Namespaces
Variants

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

From cppreference.net
template < class ... Args >
constexpr reference unchecked_emplace_back ( Args && ... args ) ;
(C++26以降)

コンテナの末尾に新しい要素を追加します。通常、要素は配置 new を使用して、コンテナが提供する位置にその場で構築されます。引数 args... はコンストラクタに std:: forward < Args > ( args ) ... として転送されます。 以下と等価です: return * try_emplace_back ( std:: forward < Args > ( args ) ... ) ;

この関数の呼び出し前に size ( ) < capacity ( ) true でなければなりません。そうでない場合、動作は未定義です。

イテレータおよび参照は無効化されません。ただし、 end() は、挿入が発生した場合に無効化されます。

目次

パラメータ

args - 要素のコンストラクタに転送する引数
型要件
-
T EmplaceConstructible でなければならない( inplace_vector に対して std:: forward < Args > ( args ) ... から)。

戻り値

back() 、すなわち挿入された要素への参照。

計算量

定数。

例外

挿入された要素の初期化によって送出されるあらゆる例外。何らかの理由で例外が送出された場合、この関数は何も効果を及ぼしません( strong exception safety guarantee )。

注記

#include <inplace_vector>
#include <new>
#include <print>
#include <string>
#include <utility>
int main()
{
    std::inplace_vector<std::pair<std::string, std::string>, 2> fauna;
    std::string dog{"\N{DOG}"};
    fauna.unchecked_emplace_back("\N{CAT}", dog);
    fauna.unchecked_emplace_back("\N{CAT}", std::move(dog));
    std::println("fauna = {}", fauna);
    // fauna.unchecked_emplace_back("BUG", "BUG"); // undefined behavior: no space
}

出力:

fauna = [("🐈", "🐕"), ("🐈", "🐕")]

関連項目

末尾に要素をその場で構築する
(公開メンバ関数)
末尾に要素の範囲を追加する
(公開メンバ関数)
末尾に要素を追加する
(公開メンバ関数)
末尾への要素の追加を試みる
(公開メンバ関数)
末尾への要素のその場での構築を試みる
(公開メンバ関数)
末尾への要素範囲の追加を試みる
(公開メンバ関数)
無条件に末尾に要素を追加する
(公開メンバ関数)
末尾の要素を削除する
(公開メンバ関数)
引数から推論された型の std::back_insert_iterator を作成する
(関数テンプレート)