C++ primer 第四章表达式-总结


1. decltype(expression)

编译器使用下列规则来确定expression 参数的类型。

  • 如果 expression 参数是标识符或类成员访问,则 decltype(expression) 是 expression 命名的实体的类型。如果不存在此类实体或 expression 参数命名一组重载函数,则编译器将生成错误消息。
  • 如果 expression 参数是对一个函数或一个重载运算符函数的调用,则 decltype(expression) 是函数的返回类型。将忽略重载运算符两边的括号。
  • 如果 expression 参数是右值,则 decltype(expression) 是 expression类型。如果 expression参数是左值,则 decltype(expression) 是对 左值引用 类型的expression

2.优先级规定了运算对象的组合方式,但是没有说明运算对象按照什么顺序求值,如

int i=f1()+f2();

因此,如果f1()和f2()有关联,则可能产生未定义行为。

3. *p++,解引用是p未加1之前的值

4.位移操作时,运算对象是小整型,会被提升为较大的整数类型,如char->int

参考资料:

C++ decltype类型说明符


你可能感兴趣的:(c++)