Partager via


scoped_allocator_adaptor::construct, méthode

Crée un objet.

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

Paramètres

  • ptr
    Pointeur vers l'emplacement mémoire où l'objet doit être construit.

  • args
    Une liste d'arguments.

  • first
    Un objet du premier dans une paire.

  • second
    Un objet de seconde dans une paire.

  • right
    Un objet existant à déplacer ou copié.

Notes

La première méthode construit l'objet à ptr en appelant Outermost_traits::construct(OUTERMOST(*this), ptr, xargs...), où xargs... est l'une des opérations suivantes.

  • Si uses_allocator<Ty, inner_allocator_type> juge false, puis xargs... est args...

  • Si uses_allocator<Ty, inner_allocator_type> juge la valeur true, et de contient d' is_constructible<Ty, allocator_arg_t, inner_allocator_type, args...> true, puis xargs... est allocator_arg, inner_allocator(), args...

  • Si uses_allocator<Ty, inner_allocator_type> juge la valeur true, et de contient d' is_constructible<Ty, args..., inner_allocator()> true, puis xargs... est args..., inner_allocator().

La deuxième méthode construit les paires objet à ptr en appelant Outermost_traits::construct(OUTERMOST(*this), &ptr->first, xargs...), où xargs... est first... modifié comme dans la liste ci-dessus, et Outermost_traits::construct(OUTERMOST(*this), &ptr->second, xargs...), où xargs... est second... modifié comme dans la liste ci-dessus.

La troisième méthode se comporte de la même manière qu' this->construct(ptr, piecewise_construct, tuple<>, tuple<>).

La quatrième méthode se comporte de la même manière que l' this->construct(ptr, piecewise_construct, forward_as_tuple(std::forward<Uy1>(first), forward_as_tuple(std::forward<Uy2>(second)).

La cinquième méthode se comporte de la même manière qu' this->construct(ptr, piecewise_construct, forward_as_tuple(right.first), forward_as_tuple(right.second)).

La sixième méthode se comporte de la même manière que l' this->construct(ptr, piecewise_construct, forward_as_tuple(std::forward<Uy1>(right.first), forward_as_tuple(std::forward<Uy2>(right.second)).

Configuration requise

en-tête : <scoped_allocator>

l'espace de noms : DST

Voir aussi

Référence

scoped_allocator_adaptor::construct, méthode

allocator_traits::construct, méthode