我想获得一个地图的每个节点不知道钥匙。
我YAML看起来是这样的:
characterType :
type1 :
attribute1 : something
attribute2 : something
type2 :
attribute1 : something
attribute2 : something
我不知道这些键的名字有多少“式的” S将被宣布或将是什么。 这就是为什么我试图通过地图迭代。
struct CharacterType{
std::string attribute1;
std::string attribute2;
};
namespace YAML{
template<>
struct convert<CharacterType>{
static bool decode(const Node& node, CharacterType& cType){
cType.attribute1 = node["attribute1"].as<std::string>();
cType.attribute2 = node["attribute2"].as<std::string>();
return true;
}
};
}
---------------------
std::vector<CharacterType> cTypeList;
for(YAML::const_iterator it=node["characterType"].begin(); it != node["characterType"].end(); ++it){
cTypeList.push_back(it->as<CharacterType>());
}
上面的代码不给编译时的任何麻烦,但随后在执行时,我得到这个错误:终止叫做抛出的一个实例后YAML::TypedBadConversion<CharacterType>
我已经使用分类指数,而不是迭代的,得到了同样的错误也试过。
我敢肯定,我做错了什么,我只是无法看到它。