摘要:
读写ini文件:#include#include#include#includenamespace pt=boost::property_tree;//1.先测试一把写入数据voidInitWrite(){ pt::ptree ini; ini.put("session1.name1","AAA"); ini.put("session1.name2","BBB"); ini.put... 阅读全文
摘要:
在属性树里怎么访问数据?属性树类似于(几乎是)一个标准容器,其值类型为pair。它具有通常的成员函数,如insert、push_back、find、erase等,当然可以使用这些函数来填充和访问树。例如,下面的代码添加了关键词为“pi”的数据(几乎)等于数学pi值:ptree pt;pt.push_back(ptree::value_type("pi", ptree("3.14159")));... 阅读全文
摘要:
如何填充属性树?属性树可以解析4种文件,现在,我就将其一一列出XMLJSONINIINFOXML ParserXML格式是用于以文本形式存储信息的行业标准。不幸的是,在撰写本文时,没有XML解析器。因此,该库包含快速和微小的RapidXML解析器(当前版本1.13),以提供XML解析支持。RapidXML并不完全支持XML标准;它不能解析dtd,因此不能进行完全的实体替换。【说一句废话,其实,... 阅读全文
摘要:
该库的中心组件是basic_ptree类模板。该类的实例是属性树。对key 和 data_type进行参数化; 总之,就是,模版编程那一套ptree, wptree, iptree和wiptree都是basic_ptree的typedef,使用预定义的模板参数组合核心,就是:basic_ptree属性树基本上是一个稍微简化的标准容器(最接近std::list),加上一堆额外的成员函数。这... 阅读全文
摘要:
本教程使用XML。注意,这个库不是专门绑定到XML的,而是可以使用任何其他支持的格式(如INI或JSON)。之所以选择XML,是因为作者认为很多人都熟悉XML。假设我们正在为某个应用程序编写一个日志系统,并且需要在程序启动时从文件中读取日志配置。带有日志配置的文件如下所示:debug.logFinanceAdminHR2它包含日志文件名、启用日志记录的模块列表和调试级别值。我们需要包含的头文件:#... 阅读全文
摘要:
Property Tree as a Container每个属性树节点都建模了ReversibleSequence概念,为其直接的子节点提供了访问权。这意味着遍历一个ptree(与它的根节点相同——每个ptree节点也是它开始的子树 ) 迭代的只有层次结构的一个层次,没有办法遍历整棵树。 记住,属性序列不是由键排序的,它保留了插入的顺序,并不是一个有序的东西它很像std::list,通过一个单独的... 阅读全文
摘要:
这个是一个非常牛叉的东西!虽然很小,但是,相当需要,相当重要!因为,很多的东西,我们不需要去开发,只需要去用就好了,这个东西的开发正的是极好极好的!更重要的是,它来自大名鼎鼎的Boost库,这个库的重要性,已经是不言而喻了!property_tree是一个保存了多个属性的树形数据结构!可以使用类似访问路径的方式问任意节点的属性,而且每个节点都可以用类似STL的风格遍历子节点。property_t... 阅读全文
摘要:
Assert- Customizable assert macros, from Peter Dimov这句话就说明了,这个断言的用法:可配置的断言宏!仅包含一个头文件即可! 阅读全文
摘要:
使用文件包含头文件即可:assert.hpp主要就是5个断言:BOOST_ASSERT BOOST_ASSERT_MSG BOOST_VERIFY BOOST_VERIFY_MSG BOOST_ASSERT_IS_VOID官方文档:BOOST_ASSERTBOOST_ASSERT_MSGBOOST_VERIFYBOOST_VERIFY_MSGBOOST_ASSERT_IS_VOIDBOOST_... 阅读全文
摘要:
可以使用Boost库来进行测试模版,对范型编程的算法很有作用#ifndef BOOSTLEARN_TEST4_H#define BOOSTLEARN_TEST4_H#include"boost/test/unit_test.hpp"#include"boost/lexical_cast.hpp"#include"boost/mpl/list.hpp"#includeusingnamespace b... 阅读全文
摘要:
夹具,特别像:一个汉堡包,上面一层,下面一层!中间夹着相应的测试级别:全局夹具测试套件夹具测试用例夹具可以说,是:十分的合理了用例级别的夹具:#ifndef BOOSTLEARN_TEST3_H#define BOOSTLEARN_TEST3_H#include"boost/test/unit_test.hpp"#include#includestruct fixture_case1{ fixt... 阅读全文
摘要:
测试套件可以互相嵌套测试套件是可以形成树:"s_suit1/s_suit1_suit1/t_case2"之类的可以使用参数:--run_test=s_suit1/s_suit1_suit1/t_case2 来执行对应的套件运行结果:确实就只运行这个特定的套件了套件一般以文件或者类为准:s_suit1_class1 s_ 开头 suit1代表第一个测试套件 可以有第二个,第三个测试套件等,... 阅读全文
摘要:
如何分文件编写Boost Test的test case问题阐述在使用Boost Test编写测试模块时,首先需要定义#define BOOST_TEST_MODULE example或者#define BOOST_AUTO_TEST_MAIN,否则测试模块初始化函数需要手动实现;然后宏BOOST_AUTO_TEST_SUITE(test_suite)将创建一个名为test_suite的测试... 阅读全文
摘要:
Test库提供了强有力的单元测试框架(UTF),它为软件开发的基本领域一单元测试提供了简单而富有弹性的解决方案,可以满足开发人员从高到低的各种需求,它的优点包括易于理解,任何人都可以很容易地构建单元测试模块提供测试用例、测试套件的概念,并能够以任意的复杂度组织它们提供丰富的测试断言,能够处理各种情况,包括C++异常可以很容易地初始化测试用例、测试套件或者整个测试程序可以显示测试进度,这对于大... 阅读全文
摘要:
用法:包含头文件#define BOOST_TEST_MAIN#include "boost/test/minimal.hpp"使用:int test_main(int argc,char* agrv[]){ BOOST_CHECK(1!=0);return0;}限制:1.必须使用int test_main(int argc, char* agrv[]) { return 0;}函数,形... 阅读全文