【发布时间】:2021-05-28 16:55:11
【问题描述】:
我点击此链接提取 Boost 属性树值。
Extracting STL Map from Boost Property Tree
我没有安装库 fmt,所以只是从原始代码修改了输出函数。该代码在 g++ 中运行良好。但是在VS2019中测试时,一直弹出“标识符”未定义”的错误。
#include <boost/property_tree/ptree.hpp>
#include <map>
#include <iostream>
using boost::property_tree::ptree;
int main() {
ptree pt;
pt.put("keyA", "valueA-1");
pt.put("keyB", "valueB");
pt.put("keyC", "valueC");
pt.add("keyA", "valueA-2"); // not replacing same key
std::map<std::string, ptree> m(pt.begin(), pt.end());
std::multimap<std::string, ptree> mm(pt.begin(), pt.end());
std::map<std::string, std::string> dict;
for (auto& [k,v]: pt) { // THIS LINE HAS ERROR!
dict.emplace(k, v.get_value<std::string>());
}
for (auto elem : dict) {
std::cout << elem.first << " " << elem.second << std::endl;
}
return 0;
}
我没有看到这个指定的行有什么问题,所以我一定错过了 VS2019 中的一些开关或配置?
【问题讨论】:
标签: boost