Cualquier tipo de datos en la biblioteca boost de C++

Cualquier tipo de datos se utiliza para almacenar cualquier tipo de valor en una variable. Lenguajes de secuencias de comandos como JavaScript, TypeScript proporciona cualquier funcionalidad de tipo de datos.
C++ también proporciona esta funcionalidad, pero solo con la ayuda de la biblioteca boost. Se puede asignar cualquier tipo de valor a una variable simplemente haciendo que su tipo de datos sea cualquiera. A continuación se muestra la sintaxis necesaria para declarar una variable con cualquier tipo de datos:
Sintaxis:

boost::any variable_name;

Nota: Para usar el tipo de datos boost::any, se debe incluir «boost/any.hpp» en el programa.

Ejemplos:

boost::any x, y, z, a;
x = 12;
y = 'G';
z = string("GeeksForGeeks");
a = 12.75;
// CPP Program to implement the boost/any library
#include "boost/any.hpp"
#include <bits/stdc++.h>
using namespace std;
int main()
{
  
    // declare any data type
    boost::any x, y, z, a;
  
    // give x is a integer value
    x = 12;
  
    // print the value of x
    cout << boost::any_cast<int>(x) << endl;
  
    // give y is a char
    y = 'G';
  
    // print the value of the y
    cout << boost::any_cast<char>(y) << endl;
  
    // give z a string
    z = string("GeeksForGeeks");
  
    // print the value of the z
    cout << boost::any_cast<string>(z) << endl;
  
    // give a  to double
    a = 12.75;
  
    // print the value of a
    cout << boost::any_cast<double>(a) << endl;
  
    // gives an error because it can't convert int to float
    try {
        boost::any b = 1;
        cout << boost::any_cast<float>(b) << endl;
    }
    catch (boost::bad_any_cast& e) {
        cout << "Exception Caught :  " << e.what() << endl;
        ;
    }
  
    return 0;
}
Producción:

12
G
GeeksForGeeks
12.75
Exception Caught :  boost::bad_any_cast: failed conversion using boost::any_cast

Referencia: http://www.boost.org/doc/libs/1_66_0/doc/html/any.html

Publicación traducida automáticamente

Artículo escrito por ajay0007 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 *