博客

不要发明自己的资源管理策略

最近,我在工作时遇到了一批旧代码,其中有几个巨大的类。它们是以类似这样的写法写的: 这个示范比实际的类小很多,但我们已经可以从不同的角度来批评它了。比如说这个类的复制操作是违反直觉的浅拷贝。 不过在这里,我想关注“DLL”的部分。这个类是作为我们软件插件的接口而设计的,我们这么用它: 看出问题了吗?我们现在必须用与当年编译动态库插件同样的编译器来编译这段代码(我们当时用的是Visual…

如何在cmake中嵌入单元测试框架

工程的目录结构会有两部分:源文件(在 src 子文件夹中)以及测试(在 test 子文件夹中)。我使用 CMake 来构建这个工程。如果您从没用使用过cmake并且不打算在近期使用它,请直接按 Ctrl/Cmd+W 。 我选择的测试框架是 Catch ,不过选择其他诸如CppUnit、Boost Test Library、googletest…