Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/134.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 当元素类型存储在另一个字符串向量中时,如何打印boost::any向量? 我使用boost::any的向量来存储不同的数据类型,从给定的程序文件构造一个符号表 我还将它们的数据类型作为字符串存储在单独的向量中 尝试使用boost::any_cast()打印boost::any时, 如果我将存储为string as cast type的数据类型传递给其他类型,则会得到一个错误的\u any \u cast错误_C++_C++11_Boost_Stl_Boost Any - Fatal编程技术网

C++ 当元素类型存储在另一个字符串向量中时,如何打印boost::any向量? 我使用boost::any的向量来存储不同的数据类型,从给定的程序文件构造一个符号表 我还将它们的数据类型作为字符串存储在单独的向量中 尝试使用boost::any_cast()打印boost::any时, 如果我将存储为string as cast type的数据类型传递给其他类型,则会得到一个错误的\u any \u cast错误

C++ 当元素类型存储在另一个字符串向量中时,如何打印boost::any向量? 我使用boost::any的向量来存储不同的数据类型,从给定的程序文件构造一个符号表 我还将它们的数据类型作为字符串存储在单独的向量中 尝试使用boost::any_cast()打印boost::any时, 如果我将存储为string as cast type的数据类型传递给其他类型,则会得到一个错误的\u any \u cast错误,c++,c++11,boost,stl,boost-any,C++,C++11,Boost,Stl,Boost Any,如何克服这个障碍,并用我作为字符串的类型信息打印向量 vector<boost::any> vany; vector<string> vtype; string vartype; vany.push_back(10); vtype.push_back("int"); vany.push_back(2.5); vtype.push_back("float"); vany.push_back("hello"); vtype.push_back("string"); for

如何克服这个障碍,并用我作为字符串的类型信息打印向量

vector<boost::any> vany;
vector<string> vtype;
string vartype;

vany.push_back(10);
vtype.push_back("int");
vany.push_back(2.5);
vtype.push_back("float");
vany.push_back("hello");
vtype.push_back("string");

for(int i=0; i<3; i++)
{
    vartype = vtype[i];
    cout<<boost::any_cast<vartype>(vany[i]); //this doesn't work, how do i make it work?
}        
vectorvany;
向量V型;
字符串变量类型;
瓦尼。推回(10);
vtype.push_back(“int”);
vany.推回(2.5);
vtype.向后推(“浮动”);
瓦尼。推回(“你好”);
vtype.push_back(“字符串”);

for(int i=0;iC++是一种静态类型语言。每个表达式必须有一个在编译时已知的类型

字符串(或任何非
constexpr
变量)的值是在运行时定义的。因此,不能对字符串命名的类型执行强制转换

any
只有在您确切知道该特定值中存储了什么类型时才有用。您必须在编译时知道这一点,而不是在运行时。它用于在发出值的人和接收值的人之间隐藏数据类型。但不允许破坏C++的静态类型规则


对于能够在数组中存储任何类型,然后对其执行任意操作,没有通用的解决方案。您可以开发类似于
any
的类型,它可以使用对实际类型的多态访问来调用
操作符C++是一种静态类型语言。每个表达式都必须具有在编译时知道

字符串(或任何非
constexpr
变量)的值是在运行时定义的。因此,不能对字符串命名的类型执行强制转换

any
只有在您确切知道该特定值中存储了什么类型时才有用。您必须在编译时知道这一点,而不是在运行时。它用于在发出值的人和接收值的人之间隐藏数据类型。但不允许破坏C++的静态类型规则

对于能够在数组中存储任何类型,然后对其执行任意操作,没有通用的解决方案。您可以开发类似于
any
的类型,它可以使用对实际类型的多态访问来调用该重复链接的
操作符+1:)我设法为该重复链接重载+1:)我设法重载