本文整理汇总了C++中Writer::addArrayItem方法的典型用法代码示例。如果您正苦于以下问题:C++ Writer::addArrayItem方法的具体用法?C++ Writer::addArrayItem怎么用?C++ Writer::addArrayItem使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Writer
的用法示例。
在下文中一共展示了Writer::addArrayItem方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: loadFromYAMLNode
bool loadFromYAMLNode(const YAML::Node& node, Writer& config)
{
for(YAML::const_iterator it = node.begin(); it != node.end(); ++it)
{
std::string key = it->first.as<std::string>();
const YAML::Node& n = it->second;
switch (n.Type())
{
case YAML::NodeType::Scalar:
{
std::string error;
Variant v = yamlScalarToVariant(n, error);
if (v.valid())
config.setValue(key, v);
else
config.addError("While reading key '" + key +"': " + error);
break;
}
case YAML::NodeType::Sequence:
{
config.writeArray(key);
for(YAML::const_iterator it2 = n.begin(); it2 != n.end(); ++it2)
{
const YAML::Node& n2 = *it2;
if (n2.Type() != YAML::NodeType::Map)
{
config.addError("Sequences must only contains maps");
return false;
}
else
{
config.addArrayItem();
loadFromYAMLNode(n2, config);
config.endArrayItem();
}
}
config.endArray();
break;
}
case YAML::NodeType::Map:
config.writeGroup(key);
loadFromYAMLNode(n, config);
config.endGroup();
break;
case YAML::NodeType::Null:
break;
}
}
return true;
}