摘要: 在c++11中,nullptr可完全代替NULL. 然而NULL和nullptr还是稍有不同,NULL可被转化为int类型,而nullptr不能。因此nullptr对NULL在进行模板推导或者函数重载时的缺陷。 foo(nullptr)输出"int*", foo(NULL)输出"int" 阅读全文
posted @ 2016-09-27 20:41 后端技术小屋 阅读(455) 评论(0) 推荐(0) 编辑
摘要: 更多精彩内容,请扫码关注微信公众号:后端技术小屋。 std::future可以从异步任务中获取结果,一般与std::async配合使用,std::async用于创建异步任务,实际上就是创建一个线程执行相应任务。 先看段代码: #include <future> #include <iostream> 阅读全文
posted @ 2016-09-27 20:22 后端技术小屋 阅读(20472) 评论(0) 推荐(0) 编辑
摘要: 在c++中,为了便于定位问题,进程异常退出时,需要获取返回码和错误信息。stout中将这种功能巧妙的封装成EXIT类。 __EXIT类以返回码作为构造函数参数,在析构时,先将错误信息输出到cerr中,再执行exit(status)。这是RAII的一次巧妙实践。 用户只需要执行 就可以1退出,同时输出 阅读全文
posted @ 2016-09-25 11:07 后端技术小屋 阅读(280) 评论(0) 推荐(0) 编辑
摘要: hashmap是std::unordered_map的子类,前者对后者的接口做了进一步封装。 hashmap的移动构造函数: std::make_move_iterator会将map.begin和map.end()转化为std::iterator类型,从而能够使用unordered_map::ins 阅读全文
posted @ 2016-09-25 10:33 后端技术小屋 阅读(1342) 评论(0) 推荐(0) 编辑
摘要: stout中大量使用了c++11的特性,而c++11中move和forward大概是最神奇的特性了. 直观理解:左值在等号左边,右值在等号右边 深入理解:左值有名称,可根据左值获取其内存地址,而右值没有名称,不能根据右值获取地址。 2. 引用叠加规则 左值引用A&和右值引用A&& 可相互叠加 举例示 阅读全文
posted @ 2016-09-21 23:19 后端技术小屋 阅读(4720) 评论(0) 推荐(2) 编辑
摘要: stout大量使用了c++11的一些新特性,使用这些特性有利于简化我们的代码,增加代码可读性。以下将对一些容器的新特性做一个总结。主要两方面: 容器的初始化,c++11中再也不用手动insert或者push_back来初始化了 容器的遍历,c++11中再也不用使用冗长的迭代器遍历了 容器的empla 阅读全文
posted @ 2016-09-20 08:21 后端技术小屋 阅读(391) 评论(0) 推荐(0) 编辑
摘要: stout中实现了LRU cache。cache的成员如下: 可以看到map的第二项除了value之外,又有一个指向key的迭代器,这种设计有利于提高cache LRU操作的效率:当查询某个key时,同时获取value和key在list中的迭代器,可方便的将该key和ist中最后一个元素进行交换,如 阅读全文
posted @ 2016-09-20 08:11 后端技术小屋 阅读(352) 评论(0) 推荐(0) 编辑
摘要: Result类似于Option和Try类的组合,内部有三种状态 SOME表示Result对象有值 NONE表示Result对象值为空 ERROR表示异常 api如下: none, 返回状态为NONE的Result实例 some,返回状态为SOME的Result实例 error, 返回状态为ERROR 阅读全文
posted @ 2016-09-19 23:16 后端技术小屋 阅读(251) 评论(0) 推荐(0) 编辑
摘要: 在进行性能测试时,经常需要计算某个函数执行的时长。stout中的Stopwatch类可实现纳秒精度的计时。 Stopwatch内部使用timespec记录开始和技术时间。 timeval和timespec稍有不同,有两点: timeval精确到微秒,而timespec精确到纳秒 获取当前时间,tim 阅读全文
posted @ 2016-09-19 23:05 后端技术小屋 阅读(379) 评论(0) 推荐(0) 编辑
摘要: UUID全称通用唯一识别码,被广泛应用于分布式系统中,让所有的元素具有唯一的标识。 stout中UUID类继承自boost::uuids::uuid。api如下: random, 产生一个UUID对象。 fromBytes,从字节数组生成UUID对象 fromString, 从字符串生成UUID对象 阅读全文
posted @ 2016-09-19 22:52 后端技术小屋 阅读(298) 评论(0) 推荐(0) 编辑