La plantilla std::is_move_assignable de C++ STL está presente en el archivo de encabezado <type_traits> . La plantilla std::is_move_assignable de C++ STL se usa para verificar si la T es un tipo asignable de movimiento (al que se le puede asignar una referencia de valor r del mismo tipo) o no. Devuelve el valor booleano verdadero si T es un tipo asignable de movimiento; de lo contrario, devuelve falso.
Archivo de cabecera:
#include<type_traits>
Clase de plantilla:
template <class T> struct is_move_assignable;
Sintaxis:
std::is_move_assignable<T>::value
Parámetros: la plantilla std::is_move_assignable acepta un solo parámetro T (clase de rasgo) para verificar si T es asignable o no.
Valor devuelto: esta plantilla devuelve una variable booleana como se muestra a continuación:
- Verdadero: si el tipo T es un tipo asignable de movimiento.
- Falso: si el tipo T no es un tipo asignable de movimiento.
A continuación se muestra el programa que ilustra la plantilla std::is_move_assignable en C/C++:
Programa:
// C++ program to illustrate // std::is_move_assignable #include <bits/stdc++.h> #include <type_traits> using namespace std; // Declare structures struct A { }; struct B { B& operator=(B&) = delete; }; struct C { ~C() = delete; }; // Driver Code int main() { cout << boolalpha; // Check if int is move // assignable or not cout << "int: " << is_move_assignable<int>::value << endl; // Check if struct A is move // assignable or not cout << "struct A: " << is_move_assignable<A>::value << endl; // Check if struct B is move // assignable or not cout << "struct B: " << is_move_assignable<B>::value << endl; // Check if struct C is move // assignable or not cout << "struct C: " << is_move_assignable<C>::value << endl; // Declare an map unordered_multimap<int, string> m; m.insert({ 1, "GfG" }); // Check if map m is move // assignable or not? cout << "Map m: " << is_move_assignable<decltype(*m.begin())>::value; return 0; }
int: true struct A: true struct B: false struct C: true Map m: true
Referencia: http://www.cplusplus.com/reference/type_traits/is_move_assignable/
Publicación traducida automáticamente
Artículo escrito por bansal_rtk_ y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA