scoped_allocator_adaptor::construct-Methode
Erstellt ein Objekt.
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);
Parameter
ptr
Ein Zeiger auf die Speicheradresse, an der das Objekt erstellt werden soll.args
Eine Liste der Argumente.first
Ein Objekt vom ersten Typ ein Paar ein.second
Ein Objekt des zweiten Typ ein Paar ein.right
Ein vorhandenes verschoben werden oder kopiert wurde Objekt.
Hinweise
Die erste Methode erstellt das Objekt bei ptr misst, indem Outermost_traits::construct(OUTERMOST(*this), ptr, xargs...) aufgerufen wird, in dem xargs... Folgendes ist.
Wenn uses_allocator<Ty, inner_allocator_type> false enthält, dann ist xargs...args...
Wenn uses_allocator<Ty, inner_allocator_type> true und beinhaltet is_constructible<Ty, allocator_arg_t, inner_allocator_type, args...> beinhaltet true, dann xargs...allocator_arg, inner_allocator(), args... ist.
Wenn uses_allocator<Ty, inner_allocator_type> true und beinhaltet is_constructible<Ty, args..., inner_allocator()> beinhaltet true, dann xargs...args..., inner_allocator() ist.
Die zweite Methode erstellt die beiden Objekt bei ptr, mit Outermost_traits::construct(OUTERMOST(*this), &ptr->first, xargs...), wobei xargs...first... ist, das wie in der obigen Liste geändert wird, und Outermost_traits::construct(OUTERMOST(*this), &ptr->second, xargs...) aufruft, in dem xargs...second... ist, das wie in der obigen Liste ändert.
Die dritte Methode verhält sich genau wie this->construct(ptr, piecewise_construct, tuple<>, tuple<>).
Die vierte Methode verhält sich genau wie this->construct(ptr, piecewise_construct, forward_as_tuple(std::forward<Uy1>(first), forward_as_tuple(std::forward<Uy2>(second)).
Die fünfte Methode verhält sich genau wie this->construct(ptr, piecewise_construct, forward_as_tuple(right.first), forward_as_tuple(right.second)).
Die 6. Methode verhält sich genau wie this->construct(ptr, piecewise_construct, forward_as_tuple(std::forward<Uy1>(right.first), forward_as_tuple(std::forward<Uy2>(right.second)).
Anforderungen
Header: <scoped_allocator>
Namespace: std