Namespaces
Variants

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

From cppreference.net
constexpr void swap ( propagate_const & pt ) noexcept ( /* see below */ ) ;
(ライブラリ基盤仕様 TS v2)

ラップされたポインタと pt のポインタを交換します。 t_ をラップされたポインタライクオブジェクトであるプライベートデータメンバとすると、この関数は swap ( t_, pt. t_ ) と等価です。ここで swap のオーバーロード解決は std::swap と通常のルックアップルールで見つかった宣言の間で実行され、これは Swappable で説明されている通りです。

Tの左辺値が Swappable を満たさない場合、動作は未定義です。

パラメータ

pt - 交換する別の propagate_const オブジェクト

例外

noexcept 指定子:
noexcept ( noexcept ( swap ( t_, pt. t_ ) ) )
例外指定内での識別子 swap の検索は、前述のオーバーロードを発見し、メンバ関数自体は発見しないため、この例外指定はC++17の std::is_nothrow_swappable と等価となる。
(ライブラリ基盤仕様 TS v2)
noexcept 指定子:
(ライブラリ基盤仕様 TS v3)

不具合報告

以下の動作変更の欠陥報告書は、以前に公開されたC++規格に対して遡及的に適用されました。

DR 適用対象 公開時の動作 正しい動作
LWG 3413 LFTSv2 例外仕様が不正な形式であった 正しい形式に修正された