std::inplace_vector<T,N>:: try_emplace_back
|
template
<
class
...
Args
>
constexpr pointer try_emplace_back ( Args && ... args ) ; |
(начиная с C++26) | |
Условно добавляет объект типа
T
в конец контейнера.
Если
size
(
)
==
capacity
(
)
равно
true
, эффектов нет. В противном случае добавляет объект типа
T
, прямой-не-списковой-инициализированный с помощью
std::
forward
<
Args
>
(
args
)
...
.
Никакие итераторы или ссылки не инвалидируются, за исключением
end()
, который инвалидируется, если происходит вставка.
Содержание |
Параметры
| args | - | аргументы для передачи конструктору элемента |
| Требования к типу | ||
-
T
должен быть
EmplaceConstructible
в
inplace_vector
из
std::
forward
<
Args
>
(
args
)
...
.
|
||
Возвращаемое значение
std:: addressof ( back ( ) ) если size ( ) < capacity ( ) , nullptr в противном случае.
Сложность
Константа.
Исключения
Любое исключение, выброшенное при инициализации вставляемого элемента. Если исключение выбрасывается по любой причине, данная функция не имеет эффекта ( гарантия строгой безопасности исключений ).
Примечания
|
Этот раздел не завершен
Причина: Объясните назначение данного API. |
Пример
#include <cassert> #include <complex> #include <inplace_vector> int main() { using namespace std::complex_literals; using C = std::complex<double>; using I = std::inplace_vector<C, 3>; auto v = I{1.0 + 2.0i, 3.0 + 4.0i}; C* c = v.try_emplace_back(5.0, 6.0); assert(*c == 5.0 + 6.0i); assert((v == I{1.0 + 2.0i, 3.0 + 4.0i, 5.0 + 6.0i})); c = v.try_emplace_back(7.0, 8.0); // нет места => вставка не выполняется assert(c == nullptr); assert((v == I{1.0 + 2.0i, 3.0 + 4.0i, 5.0 + 6.0i})); }
Смотрите также
|
создаёт элемент на месте в конце
(public member function) |
|
|
добавляет элемент в конец
(public member function) |
|
|
добавляет диапазон элементов в конец
(public member function) |
|
|
пытается добавить диапазон элементов в конец
(public member function) |
|
|
безусловно создаёт элемент на месте в конце
(public member function) |
|
|
безусловно добавляет элемент в конец
(public member function) |
|
|
удаляет последний элемент
(public member function) |
|
|
создаёт
std::back_insert_iterator
типа, выведенного из аргумента
(function template) |