📜  C++ Boost库中的任何数据类型

📅  最后修改于: 2021-05-30 10:11:41             🧑  作者: Mango

任何数据类型均可用于将任何类型的值存储在变量中。 JavaScript,TypeScript等脚本语言可提供任何数据类型功能。
C++也提供了此功能,但仅在boost库的帮助下。通过将变量的数据类型设为任意值,可以将任何类型的值分配给变量。以下是声明具有任何数据类型的变量所需的语法:
句法:

boost::any variable_name;

注意:要使用boost :: any数据类型,必须在程序中包含“ boost / any.hpp”。

例子:

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 
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(x) << endl;
  
    // give y is a char
    y = 'G';
  
    // print the value of the y
    cout << boost::any_cast(y) << endl;
  
    // give z a string
    z = string("GeeksForGeeks");
  
    // print the value of the z
    cout << boost::any_cast(z) << endl;
  
    // give a  to double
    a = 12.75;
  
    // print the value of a
    cout << boost::any_cast(a) << endl;
  
    // gives an error because it can't convert int to float
    try {
        boost::any b = 1;
        cout << boost::any_cast(b) << endl;
    }
    catch (boost::bad_any_cast& e) {
        cout << "Exception Caught :  " << e.what() << endl;
        ;
    }
  
    return 0;
}
输出:
12
G
GeeksForGeeks
12.75
Exception Caught :  boost::bad_any_cast: failed conversion using boost::any_cast

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

要从最佳影片策划和实践问题去学习,检查了C++基础课程为基础,以先进的C++和C++ STL课程基础加上STL。要完成从学习语言到DS Algo等的更多准备工作,请参阅“完整面试准备课程”