将转换为相同类型创建临时对象?

时间:2016-02-25 16:40:30

标签: c++ c++11 visual-c++ casting

本守则

#include <iostream>
using namespace std;

void f(int& a, const int& b){
    a = 0;
    a = b;
}

int main(){
    int a = 1;
    f(a, (int)a);
    cout << a;
    return 0;
}

输出:

1(g ++(4.8.1),-std = c ++ 11)
0(使用visual studio 2013)

我认为临时对象应该由(int)a创建并传递给f。
因此,如果我将a设置为0,则b不应该更改它的值, 但这显然不是VC ++的作用。

  • 此实现定义或编译器之一是否有错误

0 个答案:

没有答案