Namespaces
Variants

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

From cppreference.net
constexpr reference unchecked_push_back ( const T & value ) ;
(1) (desde C++26)
constexpr reference unchecked_push_back ( T && value ) ;
(2) (desde C++26)

Añade el elemento dado value al final del contenedor.

Equivalente a: return * try_push_back ( std:: forward < decltype ( value ) > ( value ) ) ;

1) El nuevo elemento se inicializa como una copia de value .
2) value se mueve al nuevo elemento.

Antes de la llamada a estas funciones size ( ) < capacity ( ) debe ser true . De lo contrario, el comportamiento es indefinido.

No se invalidan iteradores ni referencias, excepto end() , que se invalida si ocurre la inserción.

Contenidos

Parámetros

value - el valor del elemento a añadir
Requisitos de tipo
-
T debe cumplir con los requisitos de CopyInsertable para usar la sobrecarga (1).
-
T debe cumplir con los requisitos de MoveInsertable para usar la sobrecarga (2).

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, estas funciones no tienen efecto ( strong exception safety guarantee ).

Notas

Ejemplo

#include <cassert>
#include <inplace_vector>
#include <string>
int main()
{
    std::inplace_vector<std::string, 2> fauna;
    std::string dog{"dog"};
    auto& r1 = fauna.unchecked_push_back("cat"); // sobrecarga (1)
    assert(r1 == "cat" and fauna.size() == 1);
    auto& r2 = fauna.unchecked_push_back(std::move(dog)); // sobrecarga (2)
    assert(r2 == "dog" and fauna.size() == 2);
    assert(fauna[0] == "cat" and fauna[1] == "dog");
    // fauna.unchecked_push_back("bug"); // comportamiento indefinido: no hay espacio
}

Véase también

añade un elemento al final
(función miembro pública)
construye un elemento en el lugar al final
(función miembro pública)
añade un rango de elementos al final
(función miembro pública)
intenta añadir un elemento al final
(función miembro pública)
intenta construir un elemento en el lugar al final
(función miembro pública)
intenta añadir un rango de elementos al final
(función miembro pública)
construye incondicionalmente un elemento en el lugar 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)