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