【C++ 2.0-侯捷老师】-第一讲

目录

1.C++历史

2. C++ 2.0 新特性

3. 了解你的编译器对C++2.0的支持度

4.查看DevC++上的IOS开关

5.C++之父Bjarne Stroustrup的网站

6.美好重要的C++权威资源

7.推荐书籍

8.全文搜索工具(找代码工具)

9.VS中的VC编译器中的_cplusplus

10.C++2.0重磅炸弹


 

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++的版本做了些什么事情.

 

 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值