La plantilla std::is_same de C++ STL está presente en el archivo de encabezado <type_traits> . La plantilla std::is_same de C++ STL se utiliza para comprobar si el tipo A es del mismo tipo que B o no. Devuelve el valor booleano verdadero si ambos son iguales, de lo contrario devuelve falso.
Archivo de cabecera:
#include<type_traits>
Clase de plantilla:
template <class A, class B> struct is_same template <class A, class B> inline constexpr bool is_same_v = is_same<A, B>::value
Sintaxis:
std::is_same<A, B>::value
Parámetros: esta plantilla std::is_same acepta los siguientes parámetros:
- R: Representa el primer tipo.
- B: Representa el segundo tipo.
Valor devuelto: la plantilla std::is_same devuelve una variable booleana como se muestra a continuación:
- Verdadero: si el tipo A es el mismo que el tipo B.
- Falso: si el tipo A no es el mismo que el tipo B.
A continuación se muestra el programa para demostrar std::is_same en C++ :
Programa:
// C++ program to illustrate std::is_same #include <bits/stdc++.h> #include <type_traits> using namespace std; // Driver Code int main() { cout << boolalpha; cout << "is int & int32_t is same? " << is_same<int, int32_t>::value << endl; cout << "is int & int64_t is same? " << is_same<int, int64_t>::value << endl; cout << "is float & int32_t is same? " << is_same<float, int32_t>::value << endl; cout << "is int & int is same? " << is_same<int, int>::value << endl; cout << "is int & unsigned int is same? " << is_same<int, unsigned int>::value << endl; cout << "is int & signed int is same? " << is_same<int, signed int>::value << endl; return 0; }
is int & int32_t is same? true is int & int64_t is same? false is float & int32_t is same? false is int & int is same? true is int & unsigned int is same? false is int & signed int is same? true
Programa 2:
// C++ program to illustrate std::is_same #include <bits/stdc++.h> #include <type_traits> using namespace std; typedef int integer_type; // Declare structures struct A { int x, y; }; struct B { int x, y; }; typedef A C; // Driver Code int main() { cout << boolalpha; cout << "is_same:" << endl; cout << "int, const int is_same: " << is_same<int, const int>::value << endl; cout << "int, integer_type is_same: " << is_same<int, integer_type>::value << endl; cout << "A, B is_same: " << is_same<A, B>::value << endl; cout << "A, C is_same: " << is_same<A, C>::value << endl; cout << "signed char, int8_t is_same: " << is_same<signed char, int8_t>::value << endl; return 0; }
is_same: int, const int is_same: false int, integer_type is_same: true A, B is_same: false A, C is_same: true signed char, int8_t is_same: true
Referencia: http://www.cplusplus.com/reference/type_traits/is_same/
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