Поделиться через


Метод scoped_allocator_adaptor::construct

Создает объект.

template<class Ty, class... Atypes>
    void construct(Ty *ptr, Atypes&&... args);
template<class Ty1, class Ty2, class... Atypes1, class... Atypes2>
    void construct(pair<Ty1, Ty2> *ptr, piecewise_construct_t,
        tuple<Atypes1&&...> first, tuple<Atypes1&&...> second);
template<class Ty1, class Ty2>
    void construct(pair<Ty1, Ty2> *ptr);
template<class Ty1, class Ty2, class Uy1, class Uy2>
    void construct(pair<Ty1, Ty2> *ptr,
        class Uy1&& first, class Uy2&& second);
template<class Ty1, class Ty2, class Uy1, class Uy2>
    void construct(pair<Ty1, Ty2> *ptr, const pair<Uy1, Uy2>& right);
template<class Ty1, class Ty2, class Uy1, class Uy2>
    void construct(pair<Ty1, Ty2> *ptr, pair<Uy1, Uy2>&& right);

Параметры

  • ptr
    Указатель на расположение в памяти, в котором объект для построения.

  • args
    Список аргументов.

  • first
    Объект первого типа в пары.

  • second
    Объект второго введите ключ.

  • right
    Существующий копируемый объект, который необходимо переместить.

Заметки

Первый метод создает объект на ptr путем вызова Outermost_traits::construct(OUTERMOST(*this), ptr, xargs...), где xargs... одно из следующих действий.

  • Если uses_allocator<Ty, inner_allocator_type> содержит false, то xargs...args...

  • Если uses_allocator<Ty, inner_allocator_type> выполняются, и владения is_constructible<Ty, allocator_arg_t, inner_allocator_type, args...> true, то xargs...allocator_arg, inner_allocator(), args...

  • Если uses_allocator<Ty, inner_allocator_type> выполняются, и владения is_constructible<Ty, args..., inner_allocator()> true, то xargs...args..., inner_allocator().

Второй метод создает пару возражает на ptr путем вызова Outermost_traits::construct(OUTERMOST(*this), &ptr->first, xargs...), где xargs...first... измененное, как в приведенном выше списке, а Outermost_traits::construct(OUTERMOST(*this), &ptr->second, xargs...), где xargs...second... измененное, как в приведенном выше списке.

Третий метод работает так же, как this->construct(ptr, piecewise_construct, tuple<>, tuple<>).

Четвертый метод работает так же, как this->construct(ptr, piecewise_construct, forward_as_tuple(std::forward<Uy1>(first), forward_as_tuple(std::forward<Uy2>(second)).

Пятый метод работает так же, как this->construct(ptr, piecewise_construct, forward_as_tuple(right.first), forward_as_tuple(right.second)).

Шестой метод работает так же, как this->construct(ptr, piecewise_construct, forward_as_tuple(std::forward<Uy1>(right.first), forward_as_tuple(std::forward<Uy2>(right.second)).

Требования

заголовок: <scoped_allocator>

std пространство имен:

См. также

Ссылки

Класс scoped_allocator_adaptor

Метод allocator_traits::construct