C++ C++;-参数问题
我正在寻找一些简单而高效的参数容器,其作用类似于内存中的xml文件表示(或者ini文件,作为另一个示例) 我的意思是,基本上它可以存储每个部分的部分和参数集,具有像C++ C++;-参数问题,c++,boost,parameters,containers,C++,Boost,Parameters,Containers,我正在寻找一些简单而高效的参数容器,其作用类似于内存中的xml文件表示(或者ini文件,作为另一个示例) 我的意思是,基本上它可以存储每个部分的部分和参数集,具有像GetValue(“ParameterName”)这样的简单访问器和简单的返回值转换 如果它是可序列化的,那就太好了 我昨天写了这样的东西,很好,它适合我的需要,但可能有更方便和灵活的东西可用吗 可能是boost中的某种参数映射 谢谢你你考虑过了吗?看看。它可以完成你想要的和更多的功能:INI文件解析、环境变量解析、命令行选项解析和可
GetValue(“ParameterName”)
这样的简单访问器和简单的返回值转换
如果它是可序列化的,那就太好了
我昨天写了这样的东西,很好,它适合我的需要,但可能有更方便和灵活的东西可用吗
可能是boost
中的某种参数映射
谢谢你你考虑过了吗?看看。它可以完成你想要的和更多的功能:INI文件解析、环境变量解析、命令行选项解析和可扩展性。不知道这是否过份,但in MUSCLE可以完成上面列出的所有功能。您可以使用它序列化任何类型的数据(结构化或非结构化),或者通过您可以使用的/将其用作解析的.ini样式配置文件的内存中容器 它读取和写入xml和ini文件 它将参数存储为一棵树,您可以使用点符号访问这些值:
std::string value = pt.get<std::string>("debug.filename");
现在我正在使用一个包装器来包装
boost::unordered_map
,它可以很容易地切换到std::map
(我仍然非常喜欢基于哈希的结构:)但是boost
和其他模板库实际上以解决任何问题而闻名,所以,我认为可能存在更方便的方法……考虑到他将使用std::map,我想知道序列化它的最简单方法是什么?@Vargasboost::serialize
,我怀疑。在我的例子中,我必须为boost::unordered_map
编写自定义序列化例程,而且,这并不像第一次看起来那么难:)
pt.put("debug.filename", fileName);