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