分配给非const参考

Assignment to non-const reference

本文关键字:参考 const 分配      更新时间:2023-10-16

vs2015更新3对此进行编译,没有错误,也没有警告。然而,我的印象是,临时工只能属于const参考。这是不合格的还是我误解了某些东西?

struct Foo {};
Foo Func6() { return Foo(); }
TEST(Arguments, NonConstReference)
{
   Foo& bob = Func6();
}

编辑

Marcinj链接的问题是同一问题,尽管该问题不是专门针对VS2015的问题,并且在我键入此问题时没有找到。

我已经使用/w4测试了我是否有警告,但没有看到警告,但是再次测试它,我发现我现在这样做了。打开项目属性调整设置时,VS2015的习惯是显示与当前选择的对话框设置的设置,这是一种与当前所选的配置不同的,这是一种使我陷入的最无用的行为,(我敢肯定,我会继续继续这样做)。

正如使用禁用语言扩展(/za)的其他问题中提到的那样,这是一个错误,但不幸的是,由于微软自己的平台标头不会编译。

MSVC编译器具有非标准扩展名,默认情况下启用,该扩展程序允许临时性绑定到非const参考。要禁用此功能,请使用命令行选项/Za或相应的项目属性。