在yaml-cpp中,当在YAML源中使用应用程序定义的标记时,函数YAML::Node::Tag()
似乎只返回"?"
以外的任何内容。当然它应该返回(例如)"!!map"
,"!!int"
或其他内置标记。这是期望的行为,并且我如何确定例如标量节点的特定类型标签,例如, null,boolean,integer,float,string等?我能看到的唯一方法是对每种类型尝试YAML::Node::as<T>()
,直到没有抛出异常。
答案 0 :(得分:0)
要获取节点类型,请致电YAML::Node::Type()
。返回值是以下之一:
YAML::NodeType::Undefined
YAML::NodeType::Null
YAML::NodeType::Scalar
YAML::NodeType::Sequence
YAML::NodeType::Map
yaml-cpp没有执行更具体的自动标记检测,例如,它不会验证!!int
与!!float
的对比。