【问题标题】:How to determine the built in tag of a node in yaml-cpp?如何确定yaml-cpp中节点的内置标签?
【发布时间】:2013-03-27 13:19:35
【问题描述】:

在 yaml-cpp 中,当在 YAML 源中使用应用程序定义的标签时,函数 YAML::Node::Tag() 似乎只返回 "?" 以外的任何内容。当然它应该返回(例如)"!!map""!!int" 或其他内置标签。这是期望的行为吗,我如何确定,例如,标量节点的特定类型标签,例如null、布尔值、整数、浮点数、字符串等?我能看到的唯一方法是对每种类型尝试YAML::Node::as<T>(),直到不引发异常为止。

【问题讨论】:

    标签: yaml yaml-cpp


    【解决方案1】:

    要获取节点的类型,请调用YAML::Node::Type()。返回值为以下之一:

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

    yaml-cpp 不做更具体的自动标签检测,例如,它不会验证 !!int!!float

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多