这是一个非常小的工具,通过 boost::ref 获得一个 boost::reference_wrapper<some_class> 的东西,然后可以自动的 implicit 转换成为 some_class&,也可以通过 unwrap_ref 变成 some_class&。第一次看到一个用法是在 boost/function.hpp 里面,如果一个 functor 的构… more →
demonstrate 的 blogzt wrote 4 days ago: 这是一个非常小的工具,通过 boost::ref 获得一个 boost::reference_wrapper<some_class> 的东西,然后可以自动的 implicit 转换成为 s … more →
zt wrote 4 days ago: 不知道 boost 实现的是哪种 thread,似乎是根据平台实现的,提供的线程控制就是 thread 类了,另外有一个 thread_group 可以比较方便的管理,this_thread 是一个 … more →
zt wrote 5 days ago: STL 几个东西都在 functional 里面定义的: STL 里面只处理一元或者二元函数,提供了完整的 operator functor。另外一些 adaptor 有 negators(not1 … more →
zt wrote 6 days ago: 我们知道为了设计一个好的 GUI 库,实现对象之间的通信是非常重要的,这往往通过某种 signal/slot 机制实现的,比如 Qt 自己的一套 meta object 为其对 C++ 语言的扩展做好 … more →
zt wrote 3 weeks ago: smart pointer smart pointer 的实现与 STL 中的 std::auto_ptr 有着类似的出发点,但是功能更加的强大。auto_ptr 对 C++ 的指针进行了一次包装,与 … more →
zt wrote 3 weeks ago: 其实从前面 STL 的学习我们也知道,了解一个 C++ 库首先要了解其中的 concept,然后再是了解库,以及很多细节,boost 的库的介绍多依照这个流程进行的,学习起来比较方便。 boost:: … more →
zt wrote 4 weeks ago: 写了个基本的例子,作为后面的参考。下面的是 C++ 程序,我们看见用 vector<int> 返回了一个对象。一个函数 init() 是为了初始化随机种子,之后产生的 functor 也就 … more →
zt wrote 1 month ago: lexical_cast C 的字符串与其他类型的转换是通过 sprintf 和 sscanf 实现的,但是由于 sprintf 并不安全,实际中常用 snprintf 替代。C++ 的方法却不是很多 … more →
zt wrote 1 month ago: 想来在这个 scripting language 盛行的时代很多人都不大会选择 C/C++ 作为首选的开发语言,其中一个问题在于尽管 C/C++ 的执行效率很高,却不拥有 scripting lang … more →
zt wrote 1 month ago: 这里讲述 STL 里面最后两个角色,其实前面也讲过。 STL 里面的几个 utility 的概念,assignable 就是说可以被赋值,如使用 operator=,copy constructor … more →
zt wrote 1 month ago: functor 亦即 function object,在 STL 诸多的 functor 里面,也有不同的角色发挥着自己的作用。根据参数个数分为 generator(没参数)、unary functi … more →
zt wrote 1 month ago: 算法最理想的情况就是与底层的数据结构分离,基本的操作抽象出来之后,算法就变成一个一个的模板函数了。我们学着用 STL 里面的分类记录一下: non-mutating algorithms 不对 der … more →
zt wrote 1 month ago: iterator 的地位是将 container 和对应的 algorithm 分离开来的重要角色。通常算法(如排序)对某个容器进行的操作是有一定的共性的,但是并不是每个容器内部的结构一致,访问的方式 … more →
zt wrote 1 month ago: 很久以前就开始用 STL 了,最近打算深度挖掘下这些经典的库里面蕴含的设计 idea。我想多数用过 STL 或者 boost 的人都会赞叹这些库使用方便,设计优美了。我学习的资料来自 SGI 的 ST … more →
zt wrote 2 months ago: 曾经很 fan 在 Linux 下面的那些程序的输入 options 的 parsing,非常的一致,可是自己写一个却觉得不很简洁,后来看 GNU libc 的手册的时候才知道有个 getopt 的东 … more →