前言 最近看Rust相关东西的时候看到一篇关于压缩可执行文件的文章。压缩可执行文件对嵌入式开发特别有用,但是延伸一下用来减少我们游戏行业里预编

开始之前 很多语言的log模块都有一个功能,就是在打log的时候能够追溯调用栈,有的时候对查bug能有点帮助。之前我也想过给我们的log模块加

小记最近踩得两个C++坑 记一下最近踩得两个C++独有的暗坑,其中一个和ABI相关。第二个坑其实之前研究过,但是没有实例,这次算是碰到了个典型

Redis全异步高可用Driver设计稿 前言 现在Redis的集群功能已经Release。但是并没有一个官方直接提供的高可用性的API可以使用

前言 最近一个人搞后台,框架底层+逻辑功能茫茫多,扛得比较辛苦,一直没抽出空来写点东西。 空闲的时间,完善了LLVM+Clang+libc++和

前言 本来想参考下tolua++的对象生命周期维护方式。一不小心发现了一个坑。 代码追踪 我这里用得是tolua++ 1.0.93版本。 tolua+

INI 配置读取库发布 Github地址: https://github.com/owt5008137/libiniloader OSChina镜像: http://git.oschina.net/owent/libiniloader 项目中经常会碰到需要读取配置的情况,而用ini配置最大的优势就是简单易懂。 但是现在

今年准备安安心心写一个协程库。一方面是觉得协程挺有意思,另一方面也是因为C/C++在这方面没有一个非常权威的解决方案。 按照我自己风格还是喜欢

前几天我们项目的日志系统出现了一点问题,但是一直没有时间去深究。 昨天在同事的帮助下,无意中猜了一种可能性,结果还真被我猜中了,于是今天就特别

项目里面引入了Lua,就特别学习了一下。 其实对于理解Javascipt的人来说,Lua也很容易理解,因为他们太多的地方相像了。 初步看来,Lu

接上一篇 VC和GCC内成员函数指针实现的研究(二) 虚继承 终于到最后的虚继承了。 测试代码如下: #include <ctime> #include <vector> #include <algorithm> #include <cstdio> #include <stdint.h> #include <cstddef> #include <string> class foo_a { public: virtual ~foo_a(){} virtual void info() {

接上一篇 VC和GCC内成员函数指针实现的研究(一) 接下来是多重继承,用到的测试代码如下所示: #include <ctime> #include <vector> #include <algorithm> #include <cstdio> #include <stdint.h> #include <cstddef> #include <string> class foo_a { public: virtual ~foo_a(){} virtual void info() {

今天看到一个小例子,发现了一个小trick。见代码: #include <cstdio> #include <cstdlib> class base_1 { public: int a; }; class base_2 { public: int b; }; class base_3: public base_1, public base_2 { public: int c; }; int main(int argc, char* argv[]) { printf("&base_1::a = %p\n", &base_1::a); printf("&base_2::b = %p\n", &base_2::b); printf("&base_3::a

使用代码生成代码是一件十分美妙的事情,于是有了各种代码生成器。但是生成代码,意味着要有对生成规则的分析和处理。 Boost.Spirit 就是这么一个语法分析工具,它