La plantilla std::is_copy_assignable de C++ STL está presente en el archivo de encabezado <type_traits> . La plantilla std::is_copy_assignable de C++ STL se usa para verificar si la T es copia asignable o no. Devuelve el valor booleano verdadero si T es un tipo asignable por copia; de lo contrario, devuelve falso.
Archivo de cabecera:
#include<type_traits>
Clase de plantilla:
template <class T> struct is_copy_assignable;
Sintaxis:
std::is_copy_assignable >class T> ::value
Parámetros: la plantilla std::is_copy_assignable acepta un solo parámetro T (clase de rasgo) para verificar si T es un tipo asignable por copia 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 por copia.
- Falso: si el tipo T no es un tipo asignable de copia.
A continuación se muestra el programa que ilustra la plantilla std::is_copy_assignable en C/C++:
Programa:
// C++ program to illustrate // std::is_copy_assignable example #include <bits/stdc++.h> #include <type_traits> using namespace std; // Declare structures struct A { }; struct B { B& operator=(const B&) = delete; }; struct C { C(C&&) {} }; // Driver Code int main() { cout << boolalpha; // Check if char is_copy_assignable? cout << "char: " << is_copy_assignable<char>::value << endl; // Check if struct A is_copy_assignable? cout << "struct A: " << is_copy_assignable<A>::value << endl; // Check if struct B is_copy_assignable? cout << "struct B: " << is_copy_assignable<B>::value << endl; // Check if struct C is_copy_assignable? cout << "struct C: " << is_copy_assignable<C>::value << endl; // Check if int[2] is_copy_assignable? cout << "int[2]: " << is_copy_assignable<int[2]>::value << endl; return 0; }
char: true struct A: true struct B: false struct C: false int[2]: false
Referencia: http://www.cplusplus.com/reference/type_traits/is_copy_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