在yaml-cpp中为yaml变量返回bool的任何方法?
Posted
技术标签:
【中文标题】在yaml-cpp中为yaml变量返回bool的任何方法?【英文标题】:any means of returning bool for yaml variables in yaml-cpp? 【发布时间】:2021-05-13 07:04:00 【问题描述】:我有一个用于禁用特定代码路径的配置文件。我刚刚在 yaml 文件中添加了一个 bool 选项,并且很难弄清楚 yaml-cpp 如何处理这些选项。文档比首选的要轻一些,我看不到任何适合我用例的Node
。我可以手动解析返回为true
和false
的字符串,但这似乎是框架应该支持的,因为在规范中有多种写作风格true
和false
。有没有办法从 yaml-cpp 中获取 bool 值?
IsScalar
是我能找到的最接近的。
void LoadConfig(string file)
Node config = LoadFile(file);
string targetDirectory;
bool compile;
if (config["TargetDirectory"])
targetDirectory = config["TargetDirectory"].Scalar();
if (config["Compile"])
compile = Config["Compile"].IsScalar();
【问题讨论】:
【参考方案1】:你想要模板as()
方法:
config["Compile"].as<bool>()
或者使用默认值在一行而不是三行中完成所有操作的更简洁的方法(这也解决了您潜在的未初始化变量错误):
bool compile = config["Compile"].as<bool>(false);
【讨论】:
以上是关于在yaml-cpp中为yaml变量返回bool的任何方法?的主要内容,如果未能解决你的问题,请参考以下文章