这是一份持续改进的动态文件,可帮你有效地使用现代 C++。“现代 C++”是指 C++11 及更新版本。
这些指南主要关注相对较高层次的问题,如接口、资源管理、内存管理和并发性。这些规则影响应用架构和库设计。遵循这些规则将导致代码在静态类型安全性上有保障,没有资源泄漏,并且能捕获比现今代码中更多的编程逻辑错误。而且它将运行得很快——你完全有能力做到正确。
本书对低层次的问题,如命名约定和缩进风格,不太关心。
超快的C++单头文件测试框架
这是一款轻量级、快速的 C++ 测试框架,它使用起来十分方便,引入头文件即可使用,而且速度快、编译时间短,支持 C++ 11/14/17/20。
它与其他测试框架的主要区别在于它轻巧且非侵入式:
1.在包含标头和编写数千个断言方面,编译时间超轻
2.即使在MSVC / GCC / Clang最激进的警告级别上也不会产生任何警告
3.可以使用标识符从二进制文件中删除所有与测试相关的内容DOCTEST_CONFIG_DISABLE
4.线程安全- 断言可以从单个测试用例产生的多个线程使用 -示例
5.断言可以在测试上下文之外使用——作为通用断言库——示例
6.没有全局命名空间污染(一切都在doctest::)并且不会拖拽任何标题
7.可移植的C++11(C++98 使用标签1.2.9)有 100 多种不同的 CI 构建(静态分析、消毒剂……)
8.二进制文件 (exe/dll) 可以使用另一个二进制文件的测试运行程序 => 在单个注册表中进行测试 -示例
Doctest | #框架 #c++
这是一款轻量级、快速的 C++ 测试框架,它使用起来十分方便,引入头文件即可使用,而且速度快、编译时间短,支持 C++ 11/14/17/20。
它与其他测试框架的主要区别在于它轻巧且非侵入式:
1.在包含标头和编写数千个断言方面,编译时间超轻
2.即使在MSVC / GCC / Clang最激进的警告级别上也不会产生任何警告
3.可以使用标识符从二进制文件中删除所有与测试相关的内容DOCTEST_CONFIG_DISABLE
4.线程安全- 断言可以从单个测试用例产生的多个线程使用 -示例
5.断言可以在测试上下文之外使用——作为通用断言库——示例
6.没有全局命名空间污染(一切都在doctest::)并且不会拖拽任何标题
7.可移植的C++11(C++98 使用标签1.2.9)有 100 多种不同的 CI 构建(静态分析、消毒剂……)
8.二进制文件 (exe/dll) 可以使用另一个二进制文件的测试运行程序 => 在单个注册表中进行测试 -示例
Doctest | #框架 #c++