许多资源都讨论过学习编程语言的最佳途径,包括:
- 阅读书籍或杂志。
- 网站上的资源。
- 向同事请教。
- 参加培训课程。
- 研究开源项目。
然而,很难找到通过小而精的示例来讲解高级 C++ 技术的资源。如果您想提升 C++ 技能,通常的建议是阅读标准文档。然而,这可能是一项艰巨的任务:很少有开发者愿意啃完一份超过 1500 页的文档。
另一种方法是研究编译器源代码中附带的小示例。GCC 和 Clang 等开源 C++ 编译器实现了 C++ 标准。好消息是,Clang 提供了一套庞大的测试套件,用于验证编译器对标准的符合性。这些示例实现精良、易于理解、注释完善,涵盖了许多 C++ 特性。
您可以研究这些小示例,以更好地理解特定的 C++ 特性。这里有许多测试用例:$LLVMPATH$\tools\clang\test。它们覆盖了编译器的许多方面:

对于 C++ 语法,您可以研究SemaCXX目录中的示例,其中包含许多有趣的测试用例,几乎覆盖了所有 C++ 特性,包括 C++11 和 C++14 引入的那些。

让我们以 cstyle-cast.cpp 文件中的 C 风格类型转换为例:

这个测试注释完善,解释了各种类型转换的情形;开发者通过研究它可以学到很多东西。
总结:
研究 Clang 测试套件可以帮助任何 C++ 开发者提升编程技能;即使是 C++ 专家,也能通过研究这些针对性强的示例发现新的细节。
