影者东升 发表于 2021-7-6 09:47:41

C++ decltype关键字

  
  C++ decltype关键字

[*]希望根据表达式判定变量类型,但不用表达式的值初始化变量
[*]

[*]如果表达式的结果对象能作为一条赋值语句的左值,则表达式将向decltype返回一个引用类型
[*]变量加上括号后会被编译器视为一个表达式



  希望根据表达式判定变量类型,但不用表达式的值初始化变量  decltype(f()) sum = x; f()并不会被调用,sum为f()的返回类型
引用从来都作为其所指对象的同义词出现,只有在decltype处是一个例外

如果表达式的结果对象能作为一条赋值语句的左值,则表达式将向decltype返回一个引用类型
  decltype(*p) c; //错误,c是int &,必须初始化

变量加上括号后会被编译器视为一个表达式
  decltype((i)) d; //错误,d是int &,必须初始化
  

  
页: [1]
查看完整版本: C++ decltype关键字