Namespaces
Variants

std::experimental::ranges:: is_swappable_with, std::experimental::ranges:: is_swappable, std::experimental::ranges:: is_nothrow_swappable_with, std::experimental::ranges:: is_nothrow_swappable

From cppreference.net
template < class T, class U >
struct is_swappable_with ;
(1) (ranges TS)
template < class T >
struct is_swappable ;
(2) (ranges TS)
template < class T, class U >
struct is_nothrow_swappable_with ;
(3) (ranges TS)
template < class T >
struct is_nothrow_swappable ;
(4) (ranges TS)
1) ranges:: swap ( std:: declval < T > ( ) , std:: declval < U > ( ) ) および ranges:: swap ( std:: declval < U > ( ) , std:: declval < T > ( ) ) がともに未評価オペランドとして扱われた場合に well-formed であるとき、メンバー定数 value true に設定する。それ以外の場合、 value false となる。 アクセスチェック は、いずれの型とも無関係な文脈から実行されたかのように行われる。
2) T が参照可能な型でない場合(すなわち、修飾された可能性のある void または cv-qualifier-seq または ref-qualifier を持つ関数型)、メンバー定数 value false に等しい。それ以外の場合、メンバー定数 value ranges :: is_swappable_with < T & , T & > :: value に等しい。
3) (1) と同様ですが、 (1) の両方の式の評価が例外を投げないことが既知である場合です。
4) (2) と同じですが、 is_nothrow_swappable_with を使用します。

T および U はそれぞれ完全型、(場合によってはcv修飾された) void 、または未知の境界を持つ配列でなければなりません。それ以外の場合、動作は未定義です。

目次

翻訳のポイント: - HTMLタグ、属性、
タグ内のテキストは翻訳せず保持
- C++固有の用語("Helper variable templates"、"std::integral_constant")は翻訳せず保持
- 一般的なUI用語は日本語に翻訳("Contents"→"目次"、"Inherited from"→"からの継承"など)
- 技術文書に適した専門的な表現を使用

ヘルパー変数テンプレート

template < class T, class U >
constexpr bool is_swappable_with_v = is_swappable_with < T, U > :: value ;
(1) (ranges TS)
template < class T >
constexpr bool is_swappable_v = is_swappable < T > :: value ;
(2) (ranges TS)
template < class T, class U >
constexpr bool is_nothrow_swappable_with_v = is_nothrow_swappable_with < T, U > :: value ;
(3) (ranges TS)
template < class T >
constexpr bool is_nothrow_swappable_v = is_nothrow_swappable < T > :: value ;
(4) (ranges TS)

std:: integral_constant から継承

メンバ定数

value
[static]
true T U と交換可能な場合)、 false (それ以外の場合)
(public static member constant)

メンバ関数

operator bool
オブジェクトを bool に変換し、 value を返す
(public member function)
operator()
(C++14)
value を返す
(public member function)

メンバ型

定義
value_type bool
type std:: integral_constant < bool , value >

注記

この特性はswap式の直接的なコンテキスト外のチェックは行いません: T または U の使用がテンプレート特殊化、暗黙的に定義される特殊メンバ関数の生成などを引き起こし、それらにエラーがある場合、 ranges::is_swappable_with<T,U>::value がコンパイルされ true と評価される場合でも、実際のswapはコンパイルに失敗する可能性があります。

関連項目

型が交換可能であること、または2つの型が互いに交換可能であることを指定する
(コンセプト)
型のオブジェクトが同じ型または異なる型のオブジェクトと交換可能かどうかをチェックする
(クラステンプレート)