首次抓到编译器 Bug

T1335
0
写代码这么多年,多次怀疑碰到了编译器 Bug,但最终却总是自己的责任,这次终于抓到了一个真正的编译器 Bug,记录一下。 最近公司的一个项目的编译

C++ 中的全局常量

T1616
0
前些天偶然注意到项目的头文件里定义了大量全局常量,也就是类似 const int foo = 5 这种。这些常量,有些是简单的数值型,但大部分是 CComBSTR、std

历时99天,完成《GEB》电子版校对

T23658
0
从 3 月 12 日开始,历时 99 天,终于完成了《哥德尔、艾舍尔、巴赫》这本豆瓣第一科普书电子版的校对工作。包括电子版本书错误和原纸质版错误在内,总计提

一个有趣的Bug

T374
0
今早一到公司,就看到隔壁组一堆人在讨论一个 Bug,足足半个多小时没有结果。人散了以后,一位同事找我帮忙看一下,发现是因为一个函数被递归调用导

检测 Lua 脚本中的死循环

T1127
0
论坛上有人问,所以把以前做的东西拿出来秀一下。 Lua 是一门小巧精致的语言,特别适用于嵌入其它的程序为它们提供脚本支持。不过脚本通常是用户编写的,

一个轻量级的信号量

T409
0
基于 SRWLOCK 和条件变量(Condition Variable)实现,需要 Windows Vista 及以上操作系统,编译时 _WIN32_WINNT 要大于 0x0600。 基本功能和用 CreateSemaphore 创建出来的差不

多线程中的单件模式

T1119
0

单件模式可能是所有设计模式中最简单的一个了,但在 C++ 中,尤其是还要支持多线程的话,要想写一个正确的实现却并不容易。

编写可维护的代码(二)

T1013
0
假如一个系统中有多个模块,不妨命名为 Module1, Module2, Module3……,毫无疑问这个系统的启动过程中需要初始化所有这些模块,