C++11为2011年提出,业内也称为C++2.0。其新特性包括语言和标准库两个层面。
- C++标准库的header files不带(.h),例如#include <vector>
- 新式C header files 不带(.h),例如#include <cstdio>
- 旧式C header files(带.h),例如#include <stdio.h>
以上新的库都在std命名空间中。
对于C++11以上,一般有宏定义
#define __cplusplus 201103L
而对于旧版C++,一般是
#define __cplusplus 199711L
在VS2017中需要如下打开:
但是,打开后代码验证打印__cpluscplus,依然为199711L,百度了一下,网上说是VS的一个bug,一直没改,但C++11的特性都能正常使用。
C++11新特性中重要的东西