Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++11 可以在Visual Studio 2013中将(非常量)l值引用绑定到r值_C++11_Visual Studio 2013_Rvalue Reference - Fatal编程技术网

C++11 可以在Visual Studio 2013中将(非常量)l值引用绑定到r值

C++11 可以在Visual Studio 2013中将(非常量)l值引用绑定到r值,c++11,visual-studio-2013,rvalue-reference,C++11,Visual Studio 2013,Rvalue Reference,声明不能将非常量l值引用绑定到r值。这是一个示例代码 #include <iostream> using namespace std; struct Position2D { float m_x; float m_y; Position2D(float x, float y) : m_x(x), m_y(y) { } }; int main() { Position2D& p2 = Position2D(2, 2); /

声明不能将非常量l值引用绑定到r值。这是一个示例代码

#include <iostream>

using namespace std;

struct Position2D
{
    float m_x;
    float m_y;

    Position2D(float x, float y) : m_x(x), m_y(y)
    {
    }
};

int main()
{
    Position2D& p2 = Position2D(2, 2); // this is the line which has the problem.
    Position2D&& p3 = Position2D(2, 2);

    return 0;
}
#包括
使用名称空间std;
结构位置2D
{
浮动m_x;
浮动货币;
位置2D(浮动x,浮动y):m_x(x),m_y(y)
{
}
};
int main()
{
Position2D&p2=Position2D(2,2);//这是有问题的行。
位置2D和p3=位置2D(2,2);
返回0;
}

问题是Visual Studio 2013编译器编译上述代码段时没有任何错误。但显示了一个错误,如所述。谁是对的?Visual Studio 2013 C++编译器使用新的C++11标准时是否存在任何问题?

MSVC长期存在一个错误特性,允许将临时值绑定到非常量引用,这违反了标准。您可以使用
/Za
选项禁用它。@IgorTandetnik谢谢。现在我得到了预期的编译错误