2013-03-27 25 views
1

在yaml-cpp中,函數YAML::Node::Tag()似乎只在YAML源中使用應用程序定義的標記時才返回除"?"以外的任何內容。當然,它應該返回(例如)"!!map""!!int"或其他內置標籤。這種期望的行爲,以及如何確定例如標量節點的特定類型標記,例如, null,布爾值,整數,浮點數,字符串等?我能看到的唯一方法是每種類型都嘗試YAML::Node::as<T>(),直到不拋出異常爲止。如何確定yaml-cpp中某個節點的內置標籤?

回答

0

要獲得節點的類型,請致電YAML::Node::Type()。返回值是下列之一:

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

YAML-CPP沒有做更具體的自動標籤檢測,例如,它不會驗證!!int!!float

相關問題