<分区>
- 我正在使用 boost::any vector 来存储不同的数据类型,从给定的程序文件构建符号表。
- 我还将它们的数据类型作为字符串存储在一个单独的 vector 中。
- 尝试使用 boost::any_cast<>() 打印 boost::any 时, 如果我将存储为字符串的数据类型作为转换类型传递,我会收到 bad_any_cast 错误。
如何克服这个障碍并使用我拥有的字符串类型信息打印 vector 。
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? }