{"id":13424157,"url":"https://github.com/changkun/modern-cpp-tutorial","last_synced_at":"2025-05-11T14:04:11.570Z","repository":{"id":37492230,"uuid":"66088979","full_name":"changkun/modern-cpp-tutorial","owner":"changkun","description":"📚 Modern C++ Tutorial: C++11/14/17/20 On the Fly | https://changkun.de/modern-cpp/","archived":false,"fork":false,"pushed_at":"2024-08-17T08:22:46.000Z","size":39333,"stargazers_count":24745,"open_issues_count":21,"forks_count":3043,"subscribers_count":620,"default_branch":"master","last_synced_at":"2025-05-11T14:01:53.220Z","etag":null,"topics":["cpp","cpp-tutorial","cpp11","cpp14","cpp17","cpp20","modern-cpp"],"latest_commit_sha":null,"homepage":"https://changkun.de/modern-cpp/","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/changkun.png","metadata":{"files":{"readme":"README-zh-cn.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":["changkun"],"patreon":null,"open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"custom":null}},"created_at":"2016-08-19T14:39:15.000Z","updated_at":"2025-05-11T08:33:22.000Z","dependencies_parsed_at":"2023-01-31T11:00:53.750Z","dependency_job_id":"b03af1c3-3ca5-44e4-ade4-7b825729c60b","html_url":"https://github.com/changkun/modern-cpp-tutorial","commit_stats":{"total_commits":286,"total_committers":81,"mean_commits":"3.5308641975308643","dds":"0.39160839160839156","last_synced_commit":"01b64d415e91c81a133f183c921081d45712b06c"},"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/changkun%2Fmodern-cpp-tutorial","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/changkun%2Fmodern-cpp-tutorial/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/changkun%2Fmodern-cpp-tutorial/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/changkun%2Fmodern-cpp-tutorial/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/changkun","download_url":"https://codeload.github.com/changkun/modern-cpp-tutorial/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253576265,"owners_count":21930169,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cpp","cpp-tutorial","cpp11","cpp14","cpp17","cpp20","modern-cpp"],"created_at":"2024-07-31T00:00:49.552Z","updated_at":"2025-05-11T14:04:11.471Z","avatar_url":"https://github.com/changkun.png","language":"C++","readme":"\u003cimg src=\"assets/cover-2nd.png\" alt=\"logo\" height=\"550\" align=\"right\" /\u003e\n\n# 现代 C++ 教程：高速上手 C++11/14/17/20\n\n![](https://img.shields.io/travis/changkun/modern-cpp-tutorial/master?style=flat-square) [![](https://img.shields.io/badge/language-English-blue.svg?style=flat-square)](./README.md) [![](https://img.shields.io/badge/language-简体中文-red.svg?style=flat-square)](./README-zh-cn.md) [![](https://img.shields.io/badge/€-donate-ff69b4.svg?style=flat-square)](./assets/donate.md)\n\n## 本书目的\n\n本书号称『高速上手』，从内容上对二十一世纪二十年代之前产生 C++ 的相关特性做了非常相对全面的介绍，读者可以自行根据下面的目录选取感兴趣的内容进行学习，快速熟悉需要了解的内容。这些特性并不需要全部掌握，只需针对自己的使用需求和特定的应用场景，学习、查阅最适合自己的新特性即可。\n\n同时，本书在介绍这些特性的过程中，尽可能简单明了的介绍了这些特性产生的历史背景和技术需求，这为理解这些特性、运用这些特性提供了很大的帮助。\n\n此外，笔者希望读者在阅读本书后，能够努力在新项目中直接使用现代 C++，并努力将旧项目逐步迁移到现代 C++。也算是笔者为推进现代 C++ 的普及贡献了一些绵薄之力。\n\n## 目标读者\n\n1. 本书假定读者已经熟悉了传统 C++ ，至少在阅读传统 C++ 代码上不具备任何困难。换句话说，那些长期使用传统 C++进行编码的人、渴望在短时间内迅速了解**现代 C++** 特性的人非常适合阅读本书；\n2. 本书一定程度上介绍了一些现代 C++ 的**黑魔法**，但这些魔法毕竟有限，不适合希望进阶学习现代 C++ 的读者，本书的定位系**现代 C++ 的快速上手**。当然，希望进阶学习的读者可以使用本书来回顾并检验自己对 **现代 C++** 的熟悉度。\n\n## 开始阅读\n\n你可以选择以下几种阅读方式：\n\n1. [GitHub 在线](./book/zh-cn/toc.md)\n2. [PDF 文档](https://changkun.de/modern-cpp/pdf/modern-cpp-tutorial-zh-cn.pdf)\n3. [EPUB 文档](https://changkun.de/modern-cpp/epub/modern-cpp-tutorial-zh-cn.epub)\n4. [网站](https://changkun.de/modern-cpp/)\n\n## 相关代码\n\n本书每章中都出现了大量的代码，如果你在跟随本书介绍特性的思路编写自己的代码遇到问题时，不妨读一读随书附上的源码，你可以在[这里](./code)中找到书中介绍过的全部的源码，所有代码按章节组织，文件夹名称为章节序号。\n\n## 随书习题\n\n本书每章最后还加入了少量难度极小的习题，仅用于检验你是否能混合运用当前章节中的知识点。你可以在[这里](./exercises)找到习题的答案，文件夹名称为章节序号。\n\n## 本书网站\n\n本书的[网站](https://changkun.de/modern-cpp)源码可以在[这里](./website)找到，由 [hexo](https://hexo.io) 和 [vuejs](https://vuejs.org) 协同构建而成。网站旨在提供一个除 GitHub 之外的阅读方式，除了在桌面端访问之外，你也可以在移动端上阅读本书。\n\n## 构建\n\n如果你希望在本地编译整个仓库，我们建议使用 [Docker](https://docs.docker.com/install/)。如果 Docker 在你的本地能正常使用，则可以简单的通过运行下面的指令完成构建：\n\n```bash\n$ make build\n```\n\n## 致谢\n\n笔者时间和水平有限，如果读者发现书中内容的错误，欢迎提 [Issue](https://github.com/changkun/modern-cpp-tutorial/issues)，或者直接提 [Pull request](https://github.com/changkun/modern-cpp-tutorial/pulls)。详细贡献指南请参考[如何参与贡献](CONTRIBUTING.md)，由衷感谢每一位指出本书中出现错误的读者，包括但不限于 [Contributors](https://github.com/changkun/modern-cpp-tutorial/graphs/contributors)。\n\n\u003cp\u003e本项目还由以下产品提供赞助支持：\u003c/p\u003e\n\u003cp\u003e\n  \u003ca href=\"https://www.digitalocean.com/?refcode=834a3bbc951b\u0026utm_campaign=Referral_Invite\u0026utm_medium=Referral_Program\u0026utm_source=CopyPaste\"\u003e\n    \u003cimg src=\"https://opensource.nyc3.cdn.digitaloceanspaces.com/attribution/assets/SVG/DO_Logo_horizontal_blue.svg\" width=\"201px\"\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n## 许可\n\n\u003ca rel=\"license\" href=\"https://creativecommons.org/licenses/by-nc-nd/4.0/\"\u003e\u003cimg alt=\"知识共享许可协议\" style=\"border-width:0\" src=\"https://i.creativecommons.org/l/by-nc-nd/4.0/80x15.png\" /\u003e\u003c/a\u003e\n\n本书系[欧长坤](https://github.com/changkun)著，采用[知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议](https://creativecommons.org/licenses/by-nc-nd/4.0/)许可。项目中代码使用 MIT 协议开源，参见[许可](./LICENSE)。\n","funding_links":["https://github.com/sponsors/changkun"],"categories":["Uncategorized","C++","Programming Language Tutorials","Language-Specific Tools","inbox","🙏 致谢","C/C++生态圈Dev\u0026Ops工具与服务"],"sub_categories":["Uncategorized","C++/C","C/C++","学习资源","贡献方式"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchangkun%2Fmodern-cpp-tutorial","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fchangkun%2Fmodern-cpp-tutorial","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchangkun%2Fmodern-cpp-tutorial/lists"}