Namespaces
Variants

std::experimental::propagate_const<T>:: swap

From cppreference.net
constexpr void swap ( propagate_const & pt ) noexcept ( /* voir ci-dessous */ ) ;
(bibliothèque fundamentals TS v2)

Échange le pointeur encapsulé avec celui de pt . Soit t_ le membre de données privé qui est l'objet de type pointeur encapsulé, alors cette fonction est équivalente à swap ( t_, pt. t_ ) , où la résolution de surcharge pour swap est effectuée parmi std::swap et toute déclaration trouvée par les règles de recherche habituelles, comme décrit dans Swappable .

Le comportement n'est pas défini si les lvalues de T ne satisfont pas Swappable .

Paramètres

pt - un autre objet propagate_const à échanger

Exceptions

noexcept spécification :
noexcept ( noexcept ( swap ( t_, pt. t_ ) ) )
La recherche de l'identifiant swap dans la spécification d'exception trouve les surcharges décrites ci-dessus, et ne trouve pas la fonction membre elle-même, rendant la spécification d'exception équivalente à C++17 std::is_nothrow_swappable .
(library fundamentals TS v2)
noexcept spécification :
(library fundamentals TS v3)

Rapports de défauts

Les rapports de défauts modifiant le comportement suivants ont été appliqués rétroactivement aux normes C++ précédemment publiées.

DR Appliqué à Comportement publié Comportement corrigé
LWG 3413 LFTSv2 la spécification d'exception était mal formée rendue bien formée