Partilhar via


Método scoped_allocator_adaptor::construct

Constrói um objeto.

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);

Parâmetros

  • ptr
    Um ponteiro para o local da memória onde o objeto deve ser construída.

  • args
    Uma lista de argumentos.

  • first
    Um objeto do primeiro em um controle.

  • second
    Um objeto de segundo em um controle.

  • right
    Um objeto existente a ser movido ou copiado.

Comentários

O primeiro método constrói o objeto em ptr chamando Outermost_traits::construct(OUTERMOST(*this), ptr, xargs...), onde é um xargs... a seguir.

  • Se uses_allocator<Ty, inner_allocator_type> contém falso, então xargs... é args...

  • Se uses_allocator<Ty, inner_allocator_type> contém verdadeira, e as mantém de is_constructible<Ty, allocator_arg_t, inner_allocator_type, args...> verdadeiro, então xargs... é allocator_arg, inner_allocator(), args...

  • Se uses_allocator<Ty, inner_allocator_type> contém verdadeira, e as mantém de is_constructible<Ty, args..., inner_allocator()> verdadeiro, então xargs... é args..., inner_allocator().

O segundo método constrói os pares objetos em ptr chamando Outermost_traits::construct(OUTERMOST(*this), &ptr->first, xargs...), onde xargs...first... é alterado como na lista anterior, e Outermost_traits::construct(OUTERMOST(*this), &ptr->second, xargs...), onde xargs...second... é alterado como na lista anterior.

O terceiro método se comporta o mesmo que this->construct(ptr, piecewise_construct, tuple<>, tuple<>).

O quarto método se comporta o mesmo que o this->construct(ptr, piecewise_construct, forward_as_tuple(std::forward<Uy1>(first), forward_as_tuple(std::forward<Uy2>(second)).

O quinto método se comporta o mesmo que this->construct(ptr, piecewise_construct, forward_as_tuple(right.first), forward_as_tuple(right.second)).

O sexto método se comporta o mesmo que o this->construct(ptr, piecewise_construct, forward_as_tuple(std::forward<Uy1>(right.first), forward_as_tuple(std::forward<Uy2>(right.second)).

Requisitos

Cabeçalho: <scoped_allocator>

namespace: STD

Consulte também

Referência

Classe scoped_allocator_adaptor

Método allocator_traits::construct