《C++标准库》第3章 语言新特性
nullptr
nullptr是个新关键词,它会自动转换为各种pointer类型,但不会被转换为任何整数类型
第二个函数调用会发生歧义,而第三个就不会
一致性初始化
C++11引入一致性初始化概念,意思是面对任何初始化动作,你可以使用相同语法,也就是使用大括号,以下皆成立:
即使某个local变量属于基础类型(通常会有不明确的初值),也会被初始化为0
窄化,也就是所谓的精度降低或造成数值变动——对大括号而言是不成立的
初值列
初始值列里存在迭代器,使用auto来获取之后进行调用处理
基于范围的for循环
基于范围for循环的原理:
可以针对初值列使用基于范围for循环
新式字符串字面常量
生字符串:在字符串中含有较多转移字符时使用
编码的字符串
lambda表达式
捕获列表通过值获取的变量不能被修改:
可以通过加上mutable修饰符进行修改:
该值是拷贝而来的,不会影响原值
关键字decltype
找出表达式类型,可以用来代替原有的typeof
新的函数声明语法
在模板函数中,当碰到函数返回值是根据传入参数才能够得知时:
基础类型的明确初始化
如果你使用“一个明确的构造函数调用,但不给实参”这样的语法,基础类型会被设定初值为0