1、在vector中,添加类的对象时, 相比于push_back,emplace_back可以避免额外类的复制和移动操作.。
2、std::unique_lock 与 std::lock_guard 都可以对mutex上锁,当条件变量在等待中,std::unique_lock会释放锁。
3、static_assert 在编译的时候就可以做判断,c语言的assert是在运行的时候。
4、如果子类的构造函数参数只有int a;那么子类对象的生成的时候,那么先调用父类不带参数的的构造函数,在到子类带参数的构 造函数。
5、defaulted 跟 deleted 可以修饰特殊的类方法,比如说构造函数等。
6、增强for循环。
7、lambda表达式。
8、auto
9、for(;;)和while(true)都是无限循环,但是for的方式效率高,从汇编代码看出来的。
10、setjmp()宏把当前状态信息保存到env中,供以后longjmp()恢复状态信息时使用。如果是直接调用setjmp(),那么返回值为0;如果是由于调用longjmp()而调用setjmp(),那么返回值非0。setjmp()只能在某些特定情况下调用,如在if语句、 switch语句及循环语句的条件测试部分以及一些简单的关系表达式中。
11、编译器预定义的宏 。
(1) __LINE__:在源代码中插入当前源代码行号;
(2)__FILE__:在源文件中插入当前源文件名;
(3)__DATE__:在源文件中插入当前的编译日期
(4)__TIME__:在源文件中插入当前编译时间;
(5) __STDC__:当要求程序严格遵循ANSI C标准时该标识被赋值为1;
(6)__cplusplus:当编写C++程序时该标识符被定义。