构造函数调用是一个prvalue表达式

时间:2017-05-23 17:58:23

标签: c++ constructor prvalue

在C ++中standard可以找到prvalue表达式的例子:

  

" prvalue

     

以下表达式是prvalue表达式:

     

文字(字符串文字除外),例如42,true或nullptr;

     

函数调用或非引用返回类型的重载运算符表达式,例如str.substr(1,2),str1 + str2或it ++;   ..."

这是T()(构造函数调用)之类的表达式吗?

这些表达还有其他名称吗?

1 个答案:

答案 0 :(得分:4)

虽然默认构造函数的特殊情况让我感到困惑,但这被认为是强制转换表达式,它在列表中略低一些:

  
      
  • 将演员表达式转换为非引用类型,例如Dim cf As CubeField For Each cf In ActiveSheet.PivotTables("PivotTable4").CubeFields If cf.CubeFieldType = xlHierarchy Then cf.EnableMultiplePageItems = True End If Next cf static_cast<double>(x)std::string{};
  •   

即使转换 nothing 的想法很奇怪,(int)42语法的确包含在表格#4 here中。