博主介绍:程序喵大人
- 35- 资深C/C++/Rust/Android/iOS客户端开发
- 10年大厂工作经验
- 嵌入式/人工智能/自动驾驶/音视频/游戏开发入门级选手
- 《C++20高级编程》《C++23高级编程》等多本书籍著译者
- 更多原创精品文章,首发gzh,见文末
- 记得订阅专栏,以防走丢
C++基础系列专栏
C语言基础系列专栏
C++大佬养成攻略专栏
C++训练营
个人网站
推荐十个我整理的一些高质量现代C++风格的开源仓库:
- spdlog:https://github.com/gabime/spdlog
- 现在最热门的C++日志库,支持多种输出格式和级别,有header only和compile source两种模式,源码还简单易学,关注我,后面我出一期spdlog的源码分析文章。
- abseil:https://github.com/abseil/abseil-cpp
- Google内部的C++轮子库,各种基础能力都包含,值得学习。abseil还有个官方网站:https://abseil.io/
- folly:GitHub - facebook/folly: An open-source C++ library developed and used at Facebook.
- Facebook内部的轮子库,线程池、内存池、异步IO、executor等,应有尽有。
- chromium:https://github.com/chromium/chromium
- google浏览器源码仓库,包括edge等很多浏览器和应用都会基于chromium二次开发,阅读它的代码后,也改变了我的部分编程习惯。
- fmtlib:https://github.com/fmtlib/fmt
- 现代化、快速的 C++ 格式化库,方便易用的API且高效,不使用C++20可以使用这个库做format。
- godot engine: https://github.com/godotengine/godot
- 看到挺多朋友这个仓库代码质量高
- ctpl: https://github.com/vit-vit/ctpl - 简易的C ++线程池,代码行数看了下,约为500左右。
- libzippp: https://github.com/ctabin/libzippp - 基于zlib和libzip的跨平台封装,代码行数2000左右。
- cista:https://github.com/felixguendling/cista - header only的序列化-反射库,代码行数1500左右。
- sqlite_orm: https://github.com/fnc12/sqlite_orm - Sqlite的C++ ORM封装,代码行数3000左右。
那如何阅读这些开源代码呢?推荐:如何去阅读并学习一些优秀的开源框架的源码?
再推荐一些我常阅读的C++技术网站:
- 我的网站(C++ 编程指南)
- ISO C++ 官方网站 (Standard C++)
C++标准委员会官方站点,这个网站会提供最新的C++标准动态以及消息。
- C++ Reference (403 Forbidden)
C++语法、标准库的相对权威文档,但中文版本可读性比较一般。
- C++ Core Guidelines (GitHub - isocpp/CppCoreGuidelines: The C++ Core Guidelines are a set of tried-and-true guidelines, rules, and best practices about coding in C++)
C++最佳实践合集,由Bjarne Stroustrup等专家编写,国内也有中文翻译版。
- Fluent C++ (Fluent C++) 也是个探讨C++设计模式、性能优化的非常高质量的博客。
- Arthur O’Dwyer’s Blog (Stuff mostly about C++) C++标准委员会成员的博客,会讲解一些语言细节和陷阱。
- GitHub Trending C++ Repositories(Build software better, together) 这里可以搜索热门C++开源项目,相当于C++的热榜。
- Boost C++ Libraries (Boost C++ Libraries) 非常高质量的C++库集合,涵盖算法、并发、元编程等等,应该都知道,不多介绍了。
- Compiler Explorer (Godbolt)(Compiler Explorer) 在线查看C++代码的汇编输出,分析编译器优化行为,还可以在线运行,非常好用,我经常使用。
- Reddit - r/cpp (https://www.reddit.com/r/cpp/)
C++开发者聚集地,需要注册登录。
- C++ Forum (Forum - C++ Forum)
专注C++的交流论坛,适合新手提问和进阶学习,目前用的比较少了,stack overflow用的居多。
- Bartek’s Coding Blog(https://www.cppstories.com/p/start-here/)
大佬的博客,深入解析现代C++特性(C++11/14/17/20/23),含代码示例。
- C++ Insights (C++ Insights) 可视化C++代码的编译器转换过程(如模板实例化、Lambda展开)。
- Quick Bench (https://quick-bench.com/) 快速对比C++代码片段的性能,验证优化效果。
- CppCon (The C++ Conference) 全球顶级C++会议,视频和幻灯片都资源免费开放,英语好的同学可以多看看,B站上也经常会有中文翻译版,但翻译的比较一般。
- Meeting C++(https://meetingcpp.com/) 欧洲C++社区。
- C++ Weekly (YouTube) (https://www.youtube.com/@cppweekly) YouTube上的C++ weekly,每周都会更新实用技巧,如果能跟着学习,肯定收货满满。
- Microsoft C++ Docs (Microsoft C/C++ 文档) Windows平台C++开发工具链(MSVC)的官方文档,这个可以和cppreference组合着看。
- Stack Overflow - C++ Tag (Newest 'c++' Questions) 解决C++问题的首选问答社区,积累了大量高质量讨论,绝大多数C++问题这里都能找到讨论和答案。
再推荐我自己整理的C++学习资料汇总:
- C++知识库:C++ 编程指南
- C++学习资料库:C++学习资料库
- 内存泄漏检测工具:内存泄漏检测工具
- RPC项目:从 0 到 1 开始实现一个 RPC 项目
- 飞书机器人项目:飞书机器人项目来了
- 高性能日志项目:高性能日志项目来了
- 埋点SDK项目:埋点SDK项目
- STL项目:为什么要研究STL?
- 音视频项目:音视频项目来了,含音视频行业现状与前景分析
码字不易,欢迎大家点赞,关注,评论,谢谢!
C++训练营
专为校招、社招3年工作经验的同学打造的1V1 C++训练营,量身定制学习计划、每日代码review,简历优化,面试辅导,已帮助多名学员获得大厂offer!