目录
1.C++历史
1.C++ 98(1.0)
2.C++ 03(TR1,Technical Report,2003年)
3.C++ 11(2.0,2011年)
4.C++ 14(2014年)
5.C++ 17(2017年)
6.C++ 20(on the way)
2. C++ 2.0 新特性
包括:
1.语言;
2.标准库.
C++标准库的header files不带.h,如<vector>
新氏头文件不带.h,如 #include <cstdio>
旧式头文件(带有.h)的仍然可用.
2.0中的新的头文件举例:
<type_trains>
<unordered_set>
<forward_list>
<array>
<tuple>
<thread>
标准库里面的头文件全部都放在std这个命令空间中,所以要将命名空间写出或者每一次用的时候都加上命名空间.
还有一些TR1的特性(比如说shared_ptr和regex)在std::tr1中了,但现在已经全部放到std中了.
3. 了解你的编译器对C++2.0的支持度
借助网络查询您的编译器对于C++2.0的支持度.
https://isocpp.org/blog/2014/03/compiler-support-for-c11-and-c14
https://en.cppreference.com/w/cpp/compiler_support
这些网址可以看到主流编译器对C++2.0的支持情况.
4.查看DevC++上的IOS开关
修改之后需要rebuidall使之生效.
5.C++之父Bjarne Stroustrup的网站
https://www.stroustrup.com/
6.美好重要的C++权威资源
www.cplusplus.com
http://www.cplusplus.com/reference/
https://en.cppreference.com/w/
http://gcc.gnu.org/onlinedocs/libstdc++/manual/
https://gcc.gnu.org/onlinedocs/gcc-4.6.4/libstdc++/manual/
7.推荐书籍
8.全文搜索工具(找代码工具)
侯捷老师推荐:Windows Grep 2.3 (http://downloads.fyxm.net/Windows-Grep-69810.html)
我推荐:sourceinsight4.0
另有:Find And Replace
VS中自带功能.
9.VS中的VC编译器中的_cplusplus
__cplusplus 宏用于获取 C++ 标准的版本号
Visual Studio 中 __cplusplus 宏一直为“199711L”,属于其历史原因导致.
默认情况下,Visual Studio始终为__cplusplus预处理器宏返回值“199711L” 。
所述__cplusplus预处理宏通常用来报告用于C ++标准的特定版本的支持。
由于许多现有代码似乎依赖于此宏匹配“199711L”的值,因此编译器不会更改宏的值,除非您使用/ Zc:__ cplusplus编译器选项明确选择加入。该/ ZC:__ CPLUSPLUS选项可用在Visual Studio 2017年开始15.7版本,并且默认是关闭的。在早期版本的Visual Studio中,默认情况下,或者如果指定了/ Zc:__ cplusplus-,Visual Studio将为__cplusplus预处理器宏返回值“199711L” 。该/ permissive- 选项不启用/ Zc:__ cplusplus。
--以上引自https://blog.csdn.net/iceboy314159/article/details/101038217?utm_medium=distribute.pc_relevant.none-task-blog-title-1&spm=1001.2101.3001.4242
由于我自己的电脑的版本是14.0.25431.01这个版本的,不便测试了,始终打开的都是199711,故网上搜索以上网友的说明.
10.C++2.0重磅炸弹
1.语言
Variadic Templates
move Semantics
auto
Range-base for loop
Initializer list
Lambdas
...
2.标准库
type_traits
unordered 容器
forward_list
array
tuple
Concurrency
RegEx
...
https://gcc.gnu.org/onlinedocs/libstdc++/manual/
这里可以看到每个C++的版本做了些什么事情.