La plantilla std::is_assignable de C++ STL está presente en el archivo de encabezado <type_traits> . La plantilla std::is_assignable de C++ STL se usa para verificar si un valor de tipo B se puede asignar a A. Devuelve el valor booleano, ya sea verdadero o falso. A continuación se muestra la sintaxis para el mismo:
Archivo de cabecera:
#include<type_traits>
Sintaxis:
template <class A, class B> struct is_assignable;;
Parámetros: Acepta los siguientes parámetros:
- A : Representa el tipo de objeto que recibe la asignación.
- B : Representa el tipo de objeto que proporciona el valor.
Valor devuelto: La plantilla std::is_assignable(): devuelve un valor booleano, es decir, verdadero o falso.
A continuación se encuentran los programas para demostrar std::is_assignable():
Programa 1:
// C++ program to illustrate // is_assignable example #include <bits/stdc++.h> #include <type_traits> using namespace std; struct A { }; struct B { B& operator=(const A&) { return *this; } }; // Driver Code int main() { cout << boolalpha; cout << "is_assignable:" << endl; cout << "A = B: " << is_assignable<A, B>::value << endl; cout << "B = A: " << is_assignable<B, A>::value << endl; return 0; }
is_assignable: A = B: false B = A: true
Programa 2:
// C++ program to illustrate // is_assignable example #include <bits/stdc++.h> #include <type_traits> using namespace std; struct B { }; struct A { A& operator=(const B&) { return *this; } }; // Driver Code int main() { cout << boolalpha; cout << "is_assignable:" << endl; cout << "A = B: " << is_assignable<A, B>::value << endl; cout << "B = A: " << is_assignable<B, A>::value << endl; return 0; }
is_assignable: A = B: true B = A: false
Referencia: http://www.cplusplus.com/reference/type_traits/is_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