写代码这么多年,多次怀疑碰到了编译器 Bug,但最终却总是自己的责任,这次终于抓到了一个真正的编译器 Bug,记录一下。 最近公司的一个项目的编译
前些天偶然注意到项目的头文件里定义了大量全局常量,也就是类似 const int foo = 5 这种。这些常量,有些是简单的数值型,但大部分是 CComBSTR、std
从 3 月 12 日开始,历时 99 天,终于完成了《哥德尔、艾舍尔、巴赫》这本豆瓣第一科普书电子版的校对工作。包括电子版本书错误和原纸质版错误在内,总计提
今早一到公司,就看到隔壁组一堆人在讨论一个 Bug,足足半个多小时没有结果。人散了以后,一位同事找我帮忙看一下,发现是因为一个函数被递归调用导
论坛上有人问,所以把以前做的东西拿出来秀一下。 Lua 是一门小巧精致的语言,特别适用于嵌入其它的程序为它们提供脚本支持。不过脚本通常是用户编写的,
WaitForMultipleObjects 的轻量级模拟。代码
“事件”对象的一个轻量级实现,方法与信号量基本一样。
基于 SRWLOCK 和条件变量(Condition Variable)实现,需要 Windows Vista 及以上操作系统,编译时 _WIN32_WINNT 要大于 0x0600。 基本功能和用 CreateSemaphore 创建出来的差不
单件模式可能是所有设计模式中最简单的一个了,但在 C++ 中,尤其是还要支持多线程的话,要想写一个正确的实现却并不容易。
假如一个系统中有多个模块,不妨命名为 Module1, Module2, Module3……,毫无疑问这个系统的启动过程中需要初始化所有这些模块,