C++ 无法解析变量 BOOST_FOREACH
c++ cant resolve variable BOOST_FOREACH
我试图使用 Boost 库,我复制了整个 boost 文件夹,除了 docs、libs、more、status、tools 文件夹。
当我尝试使用下面的代码块时,我的编译器无法识别两件事。
vector<string>* read(string & filename)
{
// populate tree structure pt
using boost::property_tree::ptree;
ptree pt;
read_xml(filename, pt);
ptree tree;
vector<string> *ans = new vector<string>();
BOOST_FOREACH( ptree::value_type &v, pt.get_child("computer"))
{
string name = v.first.get<string>("name");
string OS = v.first.get<string>("OS");
ans->push_back(name);
ans->push_back(OS);
}
return ans;
}
- 'BOOST_FOREACH' 未在此范围内声明
- 无法解析结构成员'value_type'
我知道以下包含行应该足够了:
#include <iostream>
#include <vector>
#include <boost/property_tree/ptree.hpp>
#include <boost/property_tree/xml_parser.hpp>
如果您需要更多信息,请询问。
TIA
编辑
添加包含 foreach.hpp 后,我得到:
I know the following include lines should be enough:
显然他们不是。添加
#include <boost/foreach.hpp>
固定代码:
#include <iostream>
#include <vector>
#include <boost/property_tree/ptree.hpp>
#include <boost/property_tree/xml_parser.hpp>
#include <boost/foreach.hpp>
std::vector<std::string> read(std::string & filename)
{
// populate tree structure pt
using boost::property_tree::ptree;
ptree pt;
read_xml(filename, pt);
ptree tree;
std::vector<std::string> ans;
BOOST_FOREACH(ptree::value_type &v, pt.get_child("computer"))
{
std::string name = v.second.get<std::string>("name");
std::string OS = v.second.get<std::string>("OS");
ans.push_back(name);
ans.push_back(OS);
}
return ans;
}
int main()
{
}
我试图使用 Boost 库,我复制了整个 boost 文件夹,除了 docs、libs、more、status、tools 文件夹。
当我尝试使用下面的代码块时,我的编译器无法识别两件事。
vector<string>* read(string & filename)
{
// populate tree structure pt
using boost::property_tree::ptree;
ptree pt;
read_xml(filename, pt);
ptree tree;
vector<string> *ans = new vector<string>();
BOOST_FOREACH( ptree::value_type &v, pt.get_child("computer"))
{
string name = v.first.get<string>("name");
string OS = v.first.get<string>("OS");
ans->push_back(name);
ans->push_back(OS);
}
return ans;
}
- 'BOOST_FOREACH' 未在此范围内声明
- 无法解析结构成员'value_type'
我知道以下包含行应该足够了:
#include <iostream>
#include <vector>
#include <boost/property_tree/ptree.hpp>
#include <boost/property_tree/xml_parser.hpp>
如果您需要更多信息,请询问。 TIA
编辑
添加包含 foreach.hpp 后,我得到:
I know the following include lines should be enough:
显然他们不是。添加
#include <boost/foreach.hpp>
固定代码:
#include <iostream>
#include <vector>
#include <boost/property_tree/ptree.hpp>
#include <boost/property_tree/xml_parser.hpp>
#include <boost/foreach.hpp>
std::vector<std::string> read(std::string & filename)
{
// populate tree structure pt
using boost::property_tree::ptree;
ptree pt;
read_xml(filename, pt);
ptree tree;
std::vector<std::string> ans;
BOOST_FOREACH(ptree::value_type &v, pt.get_child("computer"))
{
std::string name = v.second.get<std::string>("name");
std::string OS = v.second.get<std::string>("OS");
ans.push_back(name);
ans.push_back(OS);
}
return ans;
}
int main()
{
}