Plantilla std::is_convertible en C++ con ejemplos

La plantilla std::is_convertible de C++ STL está presente en el archivo de encabezado <type_traits> . La plantilla std::is_convertible de C++ STL se usa para verificar si cualquier tipo de datos A es implícitamente convertible a cualquier tipo de datos B. Devuelve el valor booleano, ya sea verdadero o falso.

Archivo de cabecera:

#include<type_traits>

Clase de plantilla:

template< class From, class To >
struct is_convertible;

template< class From, class To >
struct is_nothrow_convertible;

Sintaxis:

is_convertible <A*, B*>::value;

Parámetros: Toma dos tipos de datos de A y B como:

  • A: Representa el parámetro a convertir.
  • B: Representa el parámetro en el que implícitamente se convierte el parámetro A.

Valor devuelto:

  • Verdadero: si un tipo de datos A dado se convierte en un tipo de datos B .
  • Falso: si un tipo de datos A determinado no se convierte en un tipo de datos B.

A continuación se muestra el programa para demostrar std::is_convertible en C++:

Programa:

// C++ program to illustrate
// std::is_convertible example
#include <bits/stdc++.h>
#include <type_traits>
using namespace std;
  
// Given classes
class A {
};
class B : public A {
};
class C {
};
  
// Driver Code
int main()
{
    cout << boolalpha;
  
    // Check if class B is
    // convertible to A or not
    bool BtoA = is_convertible<B*, A*>::value;
    cout << BtoA << endl;
  
    // Check if class A is
    // convertible to B or not
    bool AtoB = is_convertible<A*, B*>::value;
    cout << AtoB << endl;
  
    // Check if class B is
    // convertible to C or not
    bool BtoC = is_convertible<B*, C*>::value;
    cout << BtoC << endl;
  
    // Check if int is convertible
    // to float or not
    cout << "int to float: "
         << is_convertible<int, float>::value
         << endl;
  
    // Check if int is convertible
    // to const int or not
    cout << "int to const int: "
         << is_convertible<int, const int>::value
         << endl;
  
    return 0;
}
Producción:

true
false
false
int to float: true
int to const int: true

Referencia: http://www.cplusplus.com/reference/type_traits/is_convertible/

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 *