xlLib

C++ 程序库
定位

xlLib 立足于为 C++ 程序提供更多的语法糖、界面、应用程序框架、实用工具等设施,也是个人工作之余对一些技术的学习、研究结果的积累。但愿到了时光的尽头,能够“一库在手,天下我有”……

大致历史

其实学 C++ 的过程中很容易进入写库的状态。一开始学 C++,往往跟学习 C 语言差不多,学习如何操作内存,创建变长数组、创建链表等等。与 C 语言不同的是,C++ 更容易封装,于是,肯定会积累一个个小库。虽然这些东西 STL 都有,但毕竟是自己最初的心血,于是要保留。再后来,其实无论学什么,标准库或者第三方库都有类似功能,要深入学习还是要自己写,写了又积累下来了……如此,学 C++ 很容易进入造轮子的状态。说绝对点,没造过轮子的 C++er,很可能对某些关键知识有所欠缺,很多时候只是会用而已,恰好现在功利的业界不关注那些细小的关键之处。

xlLib 中的内容,最早可以追溯到 2007 年,那年我大三。对于一个程序员来说,这个有意识积累程序库的学龄太晚了。尽管如此,我还是兢兢业业地做下来了。2009 年做了一次梳理,放到 CodePlex 上开始正式维护,一直到现在。不过还没完善到可以完整发布,只是在自己的程序里不断使用,不断改进。

GitHub 项目主页
https://github.com/Streamlet/xlLib

技术博客
http://www.cppblog.com/Streamlet/


现有功能

容器类
提供 Array、List、RBTree、Set、Map、Tuple 等,概念大致与 STL/Boost 一致,特性略有不同。
字符串操作
提供 String、Encoding、Base64、RegExp(开发中)等,概念与日常一致。
辅助语法
提供 Function、Bind、ScopeExit、SmartPtr 等,概念大致与 STL/Boost/Loki 一致,特性略有不同。
界面库
基于 Windows 标准界面的界面库,提供 Window、Dialog、Menu,以及 Static、Button、Edit、ComboBox、ListBox、ListView、ScrollBar、Link 等标准控件。窗口框架实现方案与 WTL 类似,消息映射有所不同。尚未实现完所有标准控件,尚未考虑复杂的消息路由过程。
COM 框架
进程内 COM 组件框架,类似 ATL,细节略有不同。
最近开发中
  • RegExp
  • 进程外 COM 组件框架
  • Windows 标准控件