diff --git a/README.md b/README.md index 22b3ff8..38e1451 100644 --- a/README.md +++ b/README.md @@ -1,14 +1,14 @@ -《高速上手 C++11/14》相关源码 +《高速上手 C++11/14/17》 ==== -**本仓库包含了《[高速上手 C++11/14](https://www.gitbook.com/book/changkun/cpp1x-tutorial/details)》中的相关代码。** +> 本教程正在向支持 C++17 的内容过度,尽请期待。 -![](./oreilly-cover.jpg) +![](assets/cover-2nd.png) 本书目的 -- -本教程虽号称高速上手教程,但实际上对 C++11/14 的相关特性做了一个较为全面的介绍,读者可以自行根据下面的目录选取感兴趣的内容进行学习,快速熟悉需要了解的内容,这从某种意义上来说,也算是高速上手了。 +本教程号称高速上手教程,从内容上对 C++11/14/17 (与惯例不同,本书决定统一称为 C++1x)的相关特性做了一个相对全面的介绍,读者可以自行根据下面的目录选取感兴趣的内容进行学习,快速熟悉需要了解的内容,这从某种意义上来说,也算是高速上手了。 这些特性并不需要全部掌握,只需针对特定的应用场景,学习、查阅最适合自己的新特性即可。 @@ -17,11 +17,14 @@ 目标读者 -- -1. 本教程假定读者已经熟悉了传统 C++ ,至少在阅读传统 C++ 代码上不具备任何困难。换句话说,那些长期使用传统 C++进行编码的人、渴望在短时间内迅速了解 `Modern C++` 特性的人非常适合阅读本书; -2. 本教程一定程度上介绍了一些 C++1x 的**黑魔法**,但这些魔法毕竟有限,不适合希望进阶学习 C++1x 的读者,本教程的定位系**C++1x 的快速上手**。当然,希望进阶学习的读者可以使用本书来回顾并检验自己对 `Modern C++` 的熟悉度。 +1. 本教程假定读者已经熟悉了传统 C++ ,至少在阅读传统 C++ 代码上不具备任何困难。换句话说,那些长期使用传统 C++进行编码的人、渴望在短时间内迅速了解 **Modern C++** 特性的人非常适合阅读本书; +2. 本教程一定程度上介绍了一些 C++1x 的**黑魔法**,但这些魔法毕竟有限,不适合希望进阶学习 C++1x 的读者,本教程的定位系**C++1x 的快速上手**。当然,希望进阶学习的读者可以使用本书来回顾并检验自己对 **Modern C++** 的熟悉度。 目录 -- + +> 正在向支持 C++17 的内容过度 + - **第一章 C++11/14 简介** + 概述 + 被弃用的特性 @@ -117,13 +120,27 @@ ## 交流 -1. 本教程在每节的最下方提供了评论,如果读者发现教程中内容的错误,可以使用评论或者 issue -来指出; -2. 本书依然有很多特性没有参与介绍,例如 `alignas` 内存对齐、无限制联合等,主要是考虑到这些特性的使用频次实在是太低,故没有多做介绍,若对未提及的特性有需求,笔者可以考虑将其加入`第八章`; +1. 如果读者发现教程中内容的错误,欢迎提 [issue](https://github.com/changkun/cpp1x-tutorial/issues); 3. 本教程有以下交流群,有兴趣的读者可以加入,加群请注明 `github`: -![](./qq-group.png) +![](assets/qq-group.png) + +## 致谢 + +笔者感谢以下读者指出本书中出现的错误: + +[Recolic Keghart](https://www.gitbook.com/@recolic), [sinomiko](https://www.gitbook.com/@sinomiko), [Wang Zhenhua](https://www.gitbook.com/@jackwish), [asm warrior](https://www.gitbook.com/@asmwarrior), [garicc](https://www.gitbook.com/@ihpy), [Wenhan Jiang](https://www.gitbook.com/@jiangwenhan), [liang xiao](https://www.gitbook.com/@liangx8) + +## 赞助 + +如果你认为本教程对你起到了帮助并希望赞助作者,可以通过下面的二维码给予支持。 + +|微信|支付宝| +|:--:|:--:| +|![](assets/wechat.jpg) | ![](assets/alipay.jpg)| ## 许可 -本项目中代码使用 MIT 协议开源,参见[许可](./LICENSE)。 +知识共享许可协议 + +本教程由[欧长坤](https://github.com/changkun)撰写,采用[知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议](http://creativecommons.org/licenses/by-nc-nd/4.0/)许可。项目中代码使用 MIT 协议开源,参见[许可](./LICENSE)。 \ No newline at end of file diff --git a/assets/alipay.jpg b/assets/alipay.jpg new file mode 100644 index 0000000..63abc14 Binary files /dev/null and b/assets/alipay.jpg differ diff --git a/assets/comparison.png b/assets/comparison.png new file mode 100644 index 0000000..0461a71 Binary files /dev/null and b/assets/comparison.png differ diff --git a/assets/cover-2nd.png b/assets/cover-2nd.png new file mode 100644 index 0000000..48c0890 Binary files /dev/null and b/assets/cover-2nd.png differ diff --git a/assets/pointers1.png b/assets/pointers1.png new file mode 100644 index 0000000..f712e8a Binary files /dev/null and b/assets/pointers1.png differ diff --git a/assets/pointers2.png b/assets/pointers2.png new file mode 100644 index 0000000..27946e3 Binary files /dev/null and b/assets/pointers2.png differ diff --git a/qq-group.png b/assets/qq-group.png similarity index 100% rename from qq-group.png rename to assets/qq-group.png diff --git a/assets/wechat.jpg b/assets/wechat.jpg new file mode 100644 index 0000000..0ae6403 Binary files /dev/null and b/assets/wechat.jpg differ diff --git a/1/1.1.cpp b/code/1/1.1.cpp similarity index 100% rename from 1/1.1.cpp rename to code/1/1.1.cpp diff --git a/1/Makefile b/code/1/Makefile similarity index 100% rename from 1/Makefile rename to code/1/Makefile diff --git a/1/foo.c b/code/1/foo.c similarity index 100% rename from 1/foo.c rename to code/1/foo.c diff --git a/1/foo.h b/code/1/foo.h similarity index 100% rename from 1/foo.h rename to code/1/foo.h diff --git a/2/2.1.cpp b/code/2/2.1.cpp similarity index 100% rename from 2/2.1.cpp rename to code/2/2.1.cpp diff --git a/2/2.2.cpp b/code/2/2.2.cpp similarity index 100% rename from 2/2.2.cpp rename to code/2/2.2.cpp diff --git a/2/2.3.cpp b/code/2/2.3.cpp similarity index 100% rename from 2/2.3.cpp rename to code/2/2.3.cpp diff --git a/2/2.4.cpp b/code/2/2.4.cpp similarity index 100% rename from 2/2.4.cpp rename to code/2/2.4.cpp diff --git a/2/2.5.cpp b/code/2/2.5.cpp similarity index 100% rename from 2/2.5.cpp rename to code/2/2.5.cpp diff --git a/2/2.6.cpp b/code/2/2.6.cpp similarity index 100% rename from 2/2.6.cpp rename to code/2/2.6.cpp diff --git a/2/2.7.cpp b/code/2/2.7.cpp similarity index 100% rename from 2/2.7.cpp rename to code/2/2.7.cpp diff --git a/2/2.8.cpp b/code/2/2.8.cpp similarity index 100% rename from 2/2.8.cpp rename to code/2/2.8.cpp diff --git a/3/3.1.cpp b/code/3/3.1.cpp similarity index 100% rename from 3/3.1.cpp rename to code/3/3.1.cpp diff --git a/3/3.2.cpp b/code/3/3.2.cpp similarity index 100% rename from 3/3.2.cpp rename to code/3/3.2.cpp diff --git a/3/3.3.cpp b/code/3/3.3.cpp similarity index 100% rename from 3/3.3.cpp rename to code/3/3.3.cpp diff --git a/3/3.4.cpp b/code/3/3.4.cpp similarity index 100% rename from 3/3.4.cpp rename to code/3/3.4.cpp diff --git a/3/3.5.cpp b/code/3/3.5.cpp similarity index 100% rename from 3/3.5.cpp rename to code/3/3.5.cpp diff --git a/3/3.6.cpp b/code/3/3.6.cpp similarity index 100% rename from 3/3.6.cpp rename to code/3/3.6.cpp diff --git a/4/4.1.cpp b/code/4/4.1.cpp similarity index 100% rename from 4/4.1.cpp rename to code/4/4.1.cpp diff --git a/4/4.2.cpp b/code/4/4.2.cpp similarity index 100% rename from 4/4.2.cpp rename to code/4/4.2.cpp diff --git a/4/4.3.cpp b/code/4/4.3.cpp similarity index 100% rename from 4/4.3.cpp rename to code/4/4.3.cpp diff --git a/5/5.1.cpp b/code/5/5.1.cpp similarity index 100% rename from 5/5.1.cpp rename to code/5/5.1.cpp diff --git a/5/5.2.cpp b/code/5/5.2.cpp similarity index 100% rename from 5/5.2.cpp rename to code/5/5.2.cpp diff --git a/5/5.3.cpp b/code/5/5.3.cpp similarity index 100% rename from 5/5.3.cpp rename to code/5/5.3.cpp diff --git a/6/6.1.cpp b/code/6/6.1.cpp similarity index 100% rename from 6/6.1.cpp rename to code/6/6.1.cpp diff --git a/7/7.1.cpp b/code/7/7.1.cpp similarity index 100% rename from 7/7.1.cpp rename to code/7/7.1.cpp diff --git a/7/7.2.cpp b/code/7/7.2.cpp similarity index 100% rename from 7/7.2.cpp rename to code/7/7.2.cpp diff --git a/8/8.1.cpp b/code/8/8.1.cpp similarity index 100% rename from 8/8.1.cpp rename to code/8/8.1.cpp diff --git a/8/8.2.cpp b/code/8/8.2.cpp similarity index 100% rename from 8/8.2.cpp rename to code/8/8.2.cpp diff --git a/9/9.1.cpp b/code/9/9.1.cpp similarity index 100% rename from 9/9.1.cpp rename to code/9/9.1.cpp diff --git a/oreilly-cover.jpg b/oreilly-cover.jpg deleted file mode 100644 index 36aa7e5..0000000 Binary files a/oreilly-cover.jpg and /dev/null differ