Namespaces
Variants

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

De es.cppreference.net
 
 
 
 
template< class... Args >
constexpr reference unchecked_emplace_back( Args&&... args );
(desde C++26)

Añade un nuevo elemento al final del contenedor. Típicamente, el elemento se construye usando placement-new para construir el elemento en el lugar proporcionado por el contenedor. Los argumentos args... se reenvían al constructor como std::forward<Args>(args).... Equivalente a return *try_emplace_back(std::forward<Args>(args)...);.

Antes de la llamada a esta función size() < capacity() debe ser true. De lo contrario, el comportamiento no está definido.

Ningún iterador o referencia se invalida, excepto end(), que se invalida si ocurre la inserción.

Parámetros

args - argumentos a reenviar al constructor del elemento
Requisitos de tipo
-
T debe ser EmplaceConstructible en inplace_vector desde std:: forward < Args > ( args ) ... .

Valor de retorno

back() , es decir, una referencia al elemento insertado.

Complejidad

Constante.

Excepciones

Cualquier excepción lanzada por la inicialización del elemento insertado. Si se lanza una excepción por cualquier razón, esta función no tiene efecto ( garantía fuerte de seguridad de excepciones ).

Notas

Ejemplo

#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"); // comportamiento indefinido: sin espacio
}

Salida:

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

Véase también

construye un elemento in-situ al final
(función miembro pública)
añade un rango de elementos al final
(función miembro pública)
añade un elemento al final
(función miembro pública)
intenta añadir un elemento al final
(función miembro pública)
intenta construir un elemento in-situ al final
(función miembro pública)
intenta añadir un rango de elementos al final
(función miembro pública)
añade incondicionalmente un elemento al final
(función miembro pública)
elimina el último elemento
(función miembro pública)
crea un std::back_insert_iterator del tipo inferido del argumento
(plantilla de función)