std::experimental::ranges:: is_swappable_with, std::experimental::ranges:: is_swappable, std::experimental::ranges:: is_nothrow_swappable_with, std::experimental::ranges:: is_nothrow_swappable
|
Definiert im Header
<experimental/ranges/type_traits>
|
||
|
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) |
value
gleich
true
bereit. Andernfalls ist
value
gleich
false
.
Zugriffsprüfungen
werden durchgeführt, als ob aus einem Kontext, der mit keinem der beiden Typen in Beziehung steht.
T
kein referenzierbarer Typ ist (d.h. möglicherweise cv-qualifiziertes
void
oder ein Funktionstyp mit einer
cv-qualifier-seq
oder einem
ref-qualifier
), liefert die Konstante
value
den Wert
false
. Andernfalls liefert die Konstante
value
den Wert
ranges
::
is_swappable_with
<
T
&
, T
&
>
::
value
.
T
und
U
müssen jeweils ein vollständiger Typ sein, (möglicherweise cv-qualifiziert)
void
, oder ein Array unbekannter Größe. Andernfalls ist das Verhalten undefiniert.
Inhaltsverzeichnis |
Hilfsvariablen-Templates
|
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) |
Geerbt von std:: integral_constant
Member-Konstanten
|
value
[static]
|
true
falls
T
mit
U
austauschbar ist,
false
andernfalls
(öffentliche statische Member-Konstante) |
Member-Funktionen
|
operator bool
|
konvertiert das Objekt zu
bool
, gibt
value
zurück
(öffentliche Member-Funktion) |
|
operator()
(C++14)
|
gibt
value
zurück
(öffentliche Member-Funktion) |
Member-Typen
| Typ | Definition |
value_type
|
bool |
type
|
std:: integral_constant < bool , value > |
Hinweise
Dieses Merkmal überprüft nichts außerhalb des unmittelbaren Kontexts der Swap-Ausdrücke: Wenn die Verwendung von
T
oder
U
Template-Spezialisierungen, die Generierung implizit definierter spezieller Memberfunktionen etc. auslösen würde und diese Fehler enthalten, könnte der tatsächliche Swap möglicherweise nicht kompilieren, selbst wenn
ranges::is_swappable_with<T,U>::value
kompiliert und zu
true
ausgewertet wird.
Beispiel
|
Dieser Abschnitt ist unvollständig
Grund: Kein Beispiel |
Siehe auch
|
spezifiziert, dass ein Typ ausgetauscht werden kann oder dass zwei Typen miteinander ausgetauscht werden können
(Konzept) |
|
|
(C++17)
(C++17)
(C++17)
(C++17)
|
prüft, ob Objekte eines Typs mit Objekten desselben oder eines anderen Typs ausgetauscht werden können
(Klassentemplate) |