Haritadaki her düğümü, anahtarları bilmeden almak istiyorum.yaml-cpp Tanımlanmamış değerlerle bir harita üzerinde yineleme yapmanın en kolay yolu
Benim YAML şuna benzer: O anahtarların adı olacaktır kaç "tip" ler ilan edilecek ya da ne bilmiyorum
characterType :
type1 :
attribute1 : something
attribute2 : something
type2 :
attribute1 : something
attribute2 : something
. İşte bu yüzden harita üzerinde yinelemeye çalışıyorum.
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>());
}
ancak derleme herhangi bir sorun vermez önceki kod sonra yürütme sırasında bu hatayı alıyorum: yerine Subindex ben de denedim YAML::TypedBadConversion<CharacterType>
bir örneğini atma sonra denilen sonlandırmak yineleyicinin aynı hatayı alıyorum.
Eminim yanlış bir şey yapıyorum, sadece göremiyorum.
Sen bir hayat kurtarıcısın! Teşekkürler Jesse :) – delephin
Biraz offtopic, ama tüm harita (YAML yapısı) bir dize olarak almak için bir yol olması güzel buluyorum, böyle bir olasılık belirtilir herhangi bir API belgesi bulmak için görünmüyor olabilir. – Smar
Ayrıca değer boşsa, sanki boş dize döndürmek yerine bu hata ortaya çıkar ... – Smar