你能解释一下(在标准方面更好) 为什么在以下示例中创建临时标记为注释的行?
'defaultController' => 'timesheet',
答案 0 :(得分:2)
每次转换为对象类型的结果都是临时的。
当转换是身份转换时,请注意Microsoft Visual C ++不符合此规则。我已经报告了a bug on Microsoft Connect,它还显示了标准中需要创建临时的规则:
表达式
(T)
cast-expression的结果是T
类型。如果T
是左值引用类型或对函数类型的右值引用,则结果为左值;如果T
是对象类型的右值引用,则结果为x值; 否则结果是prvalue 。
(标准的第5.4节[expr.cast]
,在C ++ 11中添加了xvalue
语言,但在这种情况下创建临时语言一直存在)