Namensräume
Varianten
Aktionen

std::experimental::propagate_const<T>::operator=

Von cppreference.com
 
 
 
 
 
constexpr propagate_const& operator=( propagate_const&& p ) = default;
(1) (Library Fundamentals TS v2)
template< class U >
constexpr propagate_const& operator=( propagate_const<U>&& pu );
(2) (Library Fundamentals TS v2)
template< class U >
constexpr propagate_const& operator=( U&& u );
(3) (Library Fundamentals TS v2)
propagate_const& operator=( const propagate_const& ) = delete;
(4) (Library Fundamentals TS v2)

Sei t_ das private Datenmitglied, das das gekapselte zeigerähnliche Objekt darstellt.

1) Explizit voreingestellter Move-Zuweisungsoperator, der this->t_ von p.t_ verschiebt.
2) Weist std::move(pu.t_) this->t_ zu.
Diese Überladung nimmt nur an der Überladungsauflösung teil, wenn U implizit in T konvertierbar ist.
3) Weist std::forward<U>(u) this->t_ zu.
Diese Überladung nimmt nur an der Überladungsauflösung teil, wenn U implizit in T konvertierbar ist und std::decay_t<U> keine Spezialisierung von propagate_const ist.
4) Der Kopierzuweisungsoperator ist explizit gelöscht. propagate_const ist nicht kopierbar.

[bearbeiten] Parameter

p - ein weiteres propagate_const Objekt, von dem verschoben werden soll
pu - ein weiteres propagate_const Objekt einer anderen Spezialisierung, von dem verschoben werden soll
u - ein weiteres Objekt, das dem enthaltenen Zeiger zugewiesen werden soll

[bearbeiten] Rückgabewert

*this.