如何确定yaml-cpp中节点的内置标记?

时间:2013-03-27 13:19:36

标签: yaml yaml-cpp

在yaml-cpp中,当在YAML源中使用应用程序定义的标记时,函数YAML::Node::Tag()似乎只返回"?"以外的任何内容。当然它应该返回(例如)"!!map""!!int"或其他内置标记。这是期望的行为,并且我如何确定例如标量节点的特定类型标签,例如, null,boolean,integer,float,string等?我能看到的唯一方法是对每种类型尝试YAML::Node::as<T>(),直到没有抛出异常。

1 个答案:

答案 0 :(得分:0)

要获取节点类型,请致电YAML::Node::Type()。返回值是以下之一:

YAML::NodeType::Undefined
YAML::NodeType::Null
YAML::NodeType::Scalar
YAML::NodeType::Sequence
YAML::NodeType::Map

yaml-cpp没有执行更具体的自动标记检测,例如,它不会验证!!int!!float的对比。

相关问题