Spec-Zone.ru › C++

std::uninitialized_construct_using_allocator

Определено в заголовке <memory>
template< class T, class Alloc, class... Args >
constexpr T* uninitialized_construct_using_allocator( T* p,
                                                      const Alloc& alloc,
                                                      Args&&... args );
(с C++20)

Создаёт объект заданного типа T с помощью конструирования с использованием аллокатора в указанном неинициализированном месте памяти p.

Эквивалентно

return std::apply(
    [&]<class... Xs>(Xs&&...xs)
    {
        return std::construct_at(p, std::forward<Xs>(xs)...);
    },
    std::uses_allocator_construction_args<T>(alloc, std::forward<Args>(args)...));

Параметры

p - место в памяти, куда будет помещён объект
alloc - используемый аллокатор
args - аргументы для передачи в конструктор T

Возвращаемое значение

Указатель на только что созданный объект типа T.

Исключения

Может выбросить любое исключение, выброшенное конструктором T, обычно включая std::bad_alloc.

Пример

См. также

uses_allocator
(C++11)
проверяет, поддерживает ли указанный тип конструирование с использованием аллокатора
(шаблон класса)
make_obj_using_allocator
(C++20)
создаёт объект заданного типа с помощью конструирования с использованием аллокатора
(шаблон функции)

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/memory/uninitialized_construct_using_allocator

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API