std::inplace_vector<T,N>::unchecked_emplace_back
| template< class... Args > constexpr reference unchecked_emplace_back( Args&&... args ); |
(seit C++26) | |
Hängt ein neues Element am Ende des Containers an. Typischerweise wird das Element mittels Placement-new konstruiert, um es direkt an der vom Container bereitgestellten Stelle zu erzeugen. Die Argumente args... werden als std::forward<Args>(args)... an den Konstruktor weitergeleitet. Entspricht return *try_emplace_back(std::forward<Args>(args)...);.
Vor dem Aufruf dieser Funktion muss size() < capacity() true sein. Andernfalls ist das Verhalten undefiniert.
Keine Iteratoren oder Referenzen werden ungültig, außer end(), welche ungültig wird, wenn die Einfügung stattfindet.
Inhalt |
[edit] Parameter
| args | - | Argumente, die an den Konstruktor des Elements weitergeleitet werden |
| Typanforderungen | ||
-T muss aus std::forward<Args>(args)... in inplace_vector EmplaceConstructible sein. | ||
[edit] Rückgabewert
back(), d.h. eine Referenz auf das eingefügte Element.
[edit] Komplexität
Konstant.
[edit] Ausnahmen
Alle Ausnahmen, die bei der Initialisierung des eingefügten Elements geworfen werden. Wenn aus irgendeinem Grund eine Ausnahme geworfen wird, hat diese Funktion keine Auswirkungen (starke Ausnahmesicherheit).
[edit] Hinweise
| Dieser Abschnitt ist unvollständig Grund: Erklären Sie den Zweck dieser API. |
[edit] Beispiel
#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 }
Ausgabe
fauna = [("🐈", "🐕"), ("🐈", "🐕")][edit] Siehe auch
| konstruiert ein Element direkt (in-place) am Ende (public member function) | |
| fügt einen Bereich von Elementen am Ende hinzu (public member function) | |
| fügt ein Element am Ende hinzu (public member function) | |
| versucht, ein Element am Ende hinzuzufügen (public member function) | |
| versucht, ein Element inplace am Ende zu konstruieren (public member function) | |
| versucht, einen Bereich von Elementen am Ende hinzuzufügen (public member function) | |
| fügt bedingungslos ein Element am Ende hinzu (public member function) | |
| entfernt das letzte Element (public member function) | |
| erstellt einen std::back_insert_iterator vom Typ, der aus dem Argument abgeleitet wird (Funktionsvorlage) |