std::is_same plantilla en C++ con ejemplos

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;
}
Producción:

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;
}
Producción:

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *