C++11标准里有动态模板参数已经是众所周知的事儿了。但是当时还有个主流编译器还不支持。 但是现在,主要的编译器。VC(Windows),GC

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

用过std和boost的function对象和bind函数的童鞋们都知道这玩意用起来腰不酸了,腿不疼了,心情也舒畅了。先上一个简单得示例: std::string

项目里面引入了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

今天心情好,刷了两到ACM水题,思路很简单都在注释里,所以直接贴代码: /** * @file 龟兔赛跑.cpp * @brief 龟兔赛跑 AC代码 (DP) * DP方程式: [到第i的充

最近看了点typescript的东西,加上以前看过的一点点Node.js,所以就想把他们系统地整理一下。 Javascript 这玩意搞过Web开发的应该都知道吧

写这个小结主要是因为之前研究Boost.Asio的时候,其内部使用了很多不同的方法来实现异步网络编程 然后就顺便把一些高级的玩意看了一下,也顺

慢慢一点一点看看Boost,这段时间就Asio库吧。 据说这货和libevent的效率差不多,但是Boost的平台兼容性,你懂得。还有它帮忙干

心情大好,给VPS升级了一下系统,然后自己配了LNMP安装脚本,用yum源安装的话更新比较方便点哈 ​​这个过程挺麻烦啊,所以果断要记下来,以

最近研究了一下ARM的交叉编译环境搭建,太麻烦了必须作一下记录啊。 前两个方法比较简单一点,关键是淫家Google帮你弄好了大部分功能 方案一:

Linux 编译安装 GCC 4.8 详见: Linux 编译安装 GCC 4.8 GCC4.8发布啦,这个脚本在之前4.7的基础上做了点改进,移除一些过时的组件,增加了检测不到时自动下载源

用虚拟机软件虚拟出来的硬盘文件会随着使用而变大,因为磁盘碎片的产生,这个文件里也有很多的没用的空闲空间,为了节省空间,可以对虚拟硬盘文件进行

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

前言 C++确实是一门复杂的语言。包括之前查看了一些C++11的文档和做了一些实践和总结,越来越觉得C++是门神奇的语言,也是个陷阱多多的语言