std:: is_swappable_with, std:: is_swappable, std:: is_nothrow_swappable_with, std:: is_nothrow_swappable
|
Défini dans l'en-tête
<type_traits>
|
||
|
template
<
class
T,
class
U
>
struct is_swappable_with ; |
(1) | (depuis C++17) |
|
template
<
class
T
>
struct is_swappable ; |
(2) | (depuis C++17) |
|
template
<
class
T,
class
U
>
struct is_nothrow_swappable_with ; |
(3) | (depuis C++17) |
|
template
<
class
T
>
struct is_nothrow_swappable ; |
(4) | (depuis C++17) |
value
égale à
true
. Sinon,
value
est
false
.
| Caractéristique de type |
Valeur de la constante membre
value
|
|
|---|---|---|
T
est un
type référençable
|
T
n'est pas un type référençable
|
|
| (2) | std :: is_swappable_with < T & , T & > :: value | false |
| (4) | std :: is_nothrow_swappable_with < T & , T & > :: value | |
Si
T
ou
U
n'est pas un type complet, (éventuellement qualifié cv)
void
, ou un tableau de limite inconnue, le comportement est indéfini.
Si l'instanciation d'un template ci-dessus dépend, directement ou indirectement, d'un type incomplet, et que cette instanciation pourrait produire un résultat différent si ce type était hypothétiquement complété, le comportement est indéfini.
Si le programme ajoute des spécialisations pour l'un des modèles décrits sur cette page, le comportement est indéfini.
Table des matières |
Modèles de variables d'assistance
|
template
<
class
T,
class
U
>
inline constexpr bool is_swappable_with_v = is_swappable_with < T, U > :: value ; |
(depuis C++17) | |
|
template
<
class
T
>
inline constexpr bool is_swappable_v = is_swappable < T > :: value ; |
(depuis C++17) | |
|
template
<
class
T,
class
U
>
inline
constexpr
bool
is_nothrow_swappable_with_v
=
|
(depuis C++17) | |
|
template
<
class
T
>
inline
constexpr
bool
is_nothrow_swappable_v
=
|
(depuis C++17) | |
Hérité de std:: integral_constant
Constantes membres
|
value
[static]
|
true
si
T
est échangeable avec
U
,
false
sinon
(constante membre publique statique) |
Fonctions membres
|
operator bool
|
convertit l'objet en
bool
, retourne
value
(fonction membre publique) |
|
operator()
(C++14)
|
retourne
value
(fonction membre publique) |
Types membres
| Type | Définition |
value_type
|
bool |
type
|
std:: integral_constant < bool , value > |
Notes
Ce trait ne vérifie rien en dehors du contexte immédiat des expressions d'échange : si l'utilisation de
T
ou
U
déclenchait des spécialisations de templates, la génération de fonctions membres spéciales implicitement définies, etc., et que celles-ci contiennent des erreurs, l'échange réel pourrait ne pas compiler même si
std
::
is_swappable_with
<
T, U
>
::
value
se compile et s'évalue à
true
.
Exemple
|
Cette section est incomplète
Raison : aucun exemple |
Voir aussi
|
échange les valeurs de deux objets
(modèle de fonction) |
|
|
(C++11)
(C++11)
(C++11)
|
vérifie si un type a un opérateur d'affectation par déplacement
(modèle de classe) |
|
(C++20)
|
spécifie qu'un type peut être échangé ou que deux types peuvent être échangés l'un avec l'autre
(concept) |