1.与iostream兼容的输入输出运算符必须是普通的非成员函数;下标运算符必须是成员函数
2.lambda表达式被编译器翻译成一个未命名类的未命名对象,在这个类中含有一个重载的函数调用运算符;lambda表达式通过引用捕获变量时,将由程序负责确保lambda执行时引用的对象确实存在,因此编译器可以直接使用而无需将其存储为数据成员;相反,通过值捕获的变量需要,且要创建对应的构造函数;function类能够将相同调用形式的不用可调用对象类型统一起来
3.类型转换运算符将一个类类型的值转换成其他类型;类型转换函数必须是成员函数,不能声明返回类型,形参列表必须为空
explicit可以声明显示的类型转换运算符,这时我们必须通过显示的类型转换(static_cast)才可以,有个例外是当表达式被用作条件时。