Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit68db38c

Browse files
committed
revisionchangkun#1: 增加习题说明,修正部分格式问题
1 parent9b376c6 commit68db38c

File tree

4 files changed

+23
-17
lines changed

4 files changed

+23
-17
lines changed

‎README.md

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,12 +19,16 @@
1919

2020
##开始阅读
2121

22-
你可以从[这里](book/toc.md)开始阅读本书。
22+
你可以从[这里](book/toc)开始阅读本书。
2323

2424
##相关代码
2525

2626
本书每章中都出现了大量的代码,如果你在跟随本书介绍特性的思路编写自己的代码遇到问题时,不妨读一读随书附上的源码,你可以在[这里](code)中找到书中介绍过的全部的源码,所有代码按章节组织,文件夹名称为章节序号。
2727

28+
##随书习题
29+
30+
本书每章最后还加入了少量难度极小的习题,仅用于检验你是否能混合运用当前章节中的知识点。你可以在[这里](exercises)找到习题的答案,文件夹名称为章节序号。
31+
2832
##交流
2933

3034
1. 笔者时间和水平有限,如果读者发现书中内容的错误,欢迎提[issue](https://github.com/changkun/cpp1x-tutorial/issues)

‎book/0-preface.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
#高速上手现代 C++ 11/14/17
1+
#高速上手 C++ 11/14/17
22

33
##引言
44

@@ -30,7 +30,7 @@ C++17 则是近三年依赖 C++ 社区一致推进的方向,也指出了**现
3030

3131
本书每章中都出现了大量的代码,如果你在跟随本书介绍特性的思路编写自己的代码遇到问题时,不妨读一读随书附上的源码,你可以在[这里](../code)中找到书中介绍过的全部的源码,所有代码按章节组织,文件夹名称为章节序号。
3232

33-
[返回目录](./toc.md) | 上一章 |[下一章:迈向 C++11/14/17](./1-intro.md)
33+
[返回目录](./toc) | 上一章 |[下一章:迈向 C++11/14/17](./1-intro)
3434

3535
##许可
3636

‎book/1-intro.md

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
#第 1 章 迈向 C++11/14/17
22

3-
[TOC]
3+
<!-- toc-->
4+
5+
本书将使用`clang++` 作为唯一使用的编译器,同时总是在代码中使用`-std=c++17` 编译标志。
46

57
##1.1 被弃用的特性
68

@@ -37,7 +39,7 @@
3739

3840
![图1.2: C 和 C++ 互相兼容情况](../assets/comparison.png)
3941

40-
从现在开始,你的脑子里应该树立**『C++ 不是 C 的一个超集』**这个观念(而且从一开始就不是,后面的[进一步阅读的参考文献](#进一步阅读的参考文献)中给出了 C++98 和 C99 之间的区别)。在编写 C++ 时,也应该尽可能的避免使用诸如 `void*` 之类的程序风格。而在不得不使用 C 时,应该注意使用 `extern "C"` 这种特性,将 C 语言的代码与 C++代码进行分离编译,再统一链接这种做法,例如:
42+
从现在开始,你的脑子里应该树立『**C++ 不是 C 的一个超集**』这个观念(而且从一开始就不是,后面的[进一步阅读的参考文献](#进一步阅读的参考文献)中给出了 C++98 和 C99 之间的区别)。在编写 C++ 时,也应该尽可能的避免使用诸如 `void*` 之类的程序风格。而在不得不使用 C 时,应该注意使用 `extern "C"` 这种特性,将 C 语言的代码与 C++代码进行分离编译,再统一链接这种做法,例如:
4143

4244
```cpp
4345
// foo.h
@@ -75,25 +77,25 @@ int main() {
7577
gcc -c foo.c
7678
```
7779

78-
编译出 foo.o 文件,再使用`g++` 将 C++代码和`.o` 文件链接起来(或者都编译为`.o` 再统一链接):
80+
编译出 foo.o 文件,再使用`clang++` 将 C++代码和`.o` 文件链接起来(或者都编译为`.o` 再统一链接):
7981

8082
```bash
81-
g++ 1.1.cpp foo.o -std=c++1z -o 1.1
83+
clang++ 1.1.cpp foo.o -std=c++17 -o 1.1
8284
```
8385

8486
当然,你可以可以使用`Makefile` 来编译上面的代码:
8587

8688
```makefile
8789
C = gcc
88-
CXX =g++
90+
CXX =clang++
8991

9092
SOURCE_C = foo.c
9193
OBJECTS_C = foo.o
9294

9395
SOURCE_CXX = 1.1.cpp
9496

9597
TARGET = 1.1
96-
LDFLAGS_COMMON = -std=c++1z
98+
LDFLAGS_COMMON = -std=c++17
9799

98100
all:
99101
$(C) -c$(SOURCE_C)
@@ -102,21 +104,21 @@ clean:
102104
rm -rf*.o$(TARGET)
103105
```
104106

105-
> 注意Makefile 中的缩进是制表符而不是空格符,如果你直接复制这段代码到你的编辑器中,制表符可能会被自动替换掉,请自行确保在 Makefile 中的缩进是由制表符完成的。
107+
> 注意Makefile 中的缩进是制表符而不是空格符,如果你直接复制这段代码到你的编辑器中,制表符可能会被自动替换掉,请自行确保在 Makefile 中的缩进是由制表符完成的。
106108
>
107-
> 如果你还不知道 Makefile 的使用也没有关系,本教程中不会构建过于复杂的代码,简单的在命令行中使用 `g++ -std=c++1z` 也可以阅读本书。
109+
> 如果你还不知道 Makefile 的使用也没有关系,本教程中不会构建过于复杂的代码,简单的在命令行中使用 `clang++ -std=c++17` 也可以阅读本书。
108110

109111
如果你是首次接触现代 C++,那么你很可能还看不懂上面的那一小段代码,即:
110112

111113
```cpp
112114
[out = std::ref(std::cout << "Result from C code: " << add(1, 2))](){
113-
out.get() << ".\n";
115+
out.get() << ".\n";
114116
}();
115117
```
116118

117119
不必担心,本书的后续章节将为你介绍这一切。
118120

119-
[返回目录](./toc.md) |[上一章](./0-preface.md) |[下一章:语言可用性强化](./2-usability.md)
121+
[返回目录](./toc) |[上一章](./0-preface) |[下一章:语言可用性强化](./2-usability)
120122

121123
##进一步阅读的参考文献
122124

‎book/toc.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,13 @@
44
55
##目录
66

7-
-[**序言**](./0-preface.md)
8-
-[**第 1 章 迈向 C++11/14/17**](./1-intro.md)
7+
-[**序言**](./0-preface)
8+
-[**第 1 章 迈向 C++11/14/17**](./1-intro)
99
+ 1.1 被弃用的特性
1010
+ 1.2 与 C 的兼容性
1111
+ 进一步阅读的参考文献
1212
-**第二章 语言可用性的强化**
13-
+`nullptr``constexpr`
13+
+ nullptr 与 constexpr
1414
+ 类型推导
1515
+`auto`
1616
+`decltype`
@@ -98,7 +98,7 @@
9898
+ 未入选特性
9999
+ Concepts
100100

101-
返回目录 | 上一章 |[下一章:序言](./0-preface.md)
101+
返回目录 | 上一章 |[下一章:序言](./0-preface)
102102

103103
##许可
104104

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp