ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

收集最佳 C++ 实践

2022-12-29 16:57:26  阅读:421  来源: 互联网

标签:c++ icode9 函数 swap 语言 C语言 代码 构建 google


初学者

  1. 现代 Cpp 启动器。启动您的 C++!使用 CMake、CI、代码覆盖率、clang 格式、可重现的依赖管理等的现代 C++ 项目模板。
  2. gui_starter_template。这是一个 C++ 最佳实践 GitHub 模板,用于快速启动和运行 C++。

学习C++的项目

注意自我。如果我以后写一篇关于收集到的信息的文章,我需要用 PVS-Studio 检查这些和其他建议的项目。图书馆是不同的,你知道的……我不想推荐一些可能有问题的东西作为一个例子。

  1. 勤奋的引擎。现代跨平台低级 3D 图形库和渲染框架推文。
  2. 现代 C++ 的 JSON。直观的语法。琐碎的整合。严肃的测试。内存效率。速度。
  3. Stroika是一个现代的、可移植的、精通线程的 C++ 应用程序框架。它通过提供安全、灵活、模块化的构建块使编写高性能 C++ 应用程序变得更加容易。
  4. 并发。C++ 的现代并发。任务、执行器、计时器和 C++20 协程来统领它们。
  5. 真棒 hpp。精选的仅标头 C++ 库的精选列表。

加快构建

  1. 在这里,我邀请您阅读我同事的文章“加速 C 和 C++ 项目的构建”。
  2. 关于这个话题有各种新旧讨论。我很高兴能从您那里了解到关于这个话题的新的、有趣的事情。提前致谢。

编码标准和风格指南

  1. C++ 核心指南是由 Bjarne Stroustrup 领导的协作成果,与 C++ 语言本身非常相似。它们是许多组织多年讨论和设计的结果。
  2. C++ 最佳实践的协作集合。该在线资源是 Jason Turner 的 C++ 最佳实践资源集的一部分。顺便说一句,因为我提到了 Jason,这里是他的C++ Weakly频道的链接。
  3. 谷歌 C++ 风格指南。本指南的目标是通过详细描述编写 C++ 代码的注意事项来管理这种复杂性。这些规则的存在是为了使代码库易于管理,同时仍然允许编码人员高效地使用 C++ 语言功能。

动态代码分析

  1. AddressSanitizer发现内存错误。
  2. LeakSanitizer搜索内存泄漏。
  3. ThreadSanitizer检测数据竞争和死锁。
  4. MemorySanitizer寻找未初始化的内存。
  5. HWASAN或 Hardware-assisted AddressSanitizer,一种使用较少内存的 AddressSanitizer 的新变体。
  6. UBSan在程序中发现未定义的行为。

静态代码分析器

  1. 这里我就装傻,只提一下我们的PVS-Studio。好吧,为什么不呢?这是一个美妙而强大的静态代码分析器。即使在编写 C++ 代码的阶段,该工具也能帮助发现许多错误和潜在漏洞。
  2. 去做。我也很高兴听到您使用其他静态代码分析器的成功经验。

书籍和其他参考资料

  1. 我总是推荐大家阅读 Steve McConnell 的 Code Complete (ISBN 0–7356–1967–0)。
  2. C++ 最佳实践(2019)。
  3. 编程、重构和一切的终极问题。
  4. C++ 编码标准:101 条规则、指南和最佳实践。
  5. 斯科特迈耶斯。Effective C++:改进程序和设计的 55 种具体方法(第 3 版)。
  6. 斯科特迈耶斯。有效的现代 C++:改进 C++11 和 C++14 使用的 42 种具体方法”。

现在轮到你了

请分享您认为对 C++ 程序员有用的所有内容!

标签:c++,icode9,函数,swap,语言,C语言,代码,构建,google
来源:

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有