Condividi tramite


Metodo scoped_allocator_adaptor::construct

Costruisce un oggetto.

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

Parametri

  • ptr
    Un puntatore alla posizione di memoria in cui l'oggetto deve essere costruito.

  • args
    Un elenco di argomenti.

  • first
    Un oggetto del primo in una coppia.

  • second
    Un oggetto del secondo in una coppia.

  • right
    Un oggetto esistente da spostare o copiare.

Note

Il primo metodo crea l'oggetto a ptr chiamando Outermost_traits::construct(OUTERMOST(*this), ptr, xargs...), dove xargs... è uno dei seguenti valori.

  • Se uses_allocator<Ty, inner_allocator_type> contenuta false, quindi xargs... è args...

  • Se uses_allocator<Ty, inner_allocator_type> sostiene e mantenute di is_constructible<Ty, allocator_arg_t, inner_allocator_type, args...> true, il xargs... è allocator_arg, inner_allocator(), args...

  • Se uses_allocator<Ty, inner_allocator_type> sostiene e mantenute di is_constructible<Ty, args..., inner_allocator()> true, il xargs... è args..., inner_allocator().

Il secondo metodo crea l'oggetto della coppia a ptr chiamando Outermost_traits::construct(OUTERMOST(*this), &ptr->first, xargs...), dove xargs... è first... modificato come nell'elenco sopra e Outermost_traits::construct(OUTERMOST(*this), &ptr->second, xargs...), dove xargs... è second... modificato come nell'elenco sopra.

Il terzo metodo si comporti uguale a this->construct(ptr, piecewise_construct, tuple<>, tuple<>).

Il quarto metodo si comporti quello dell'this->construct(ptr, piecewise_construct, forward_as_tuple(std::forward<Uy1>(first), forward_as_tuple(std::forward<Uy2>(second)).

Il quinto metodo si comporti uguale a this->construct(ptr, piecewise_construct, forward_as_tuple(right.first), forward_as_tuple(right.second)).

Il sesto metodo si comporti quello dell'this->construct(ptr, piecewise_construct, forward_as_tuple(std::forward<Uy1>(right.first), forward_as_tuple(std::forward<Uy2>(right.second)).

Requisiti

scoped_allocator <diIntestazione: >

Spazio dei nomi: std

Vedere anche

Riferimenti

Classe scoped_allocator_adaptor

Metodo allocator_traits::construct