Microsoft VS C++ 是不是一个bug?编译器可以从临时对象初始化引用
可能的重复:
将临时绑定到左值引用
使用 VS2008 C++ 编译器,无需编译代码即可编译错误。
class A{};
int main(){
A& a_ref = A();
return 0;
}
我相信 C++ 标准(C++2003 和即将推出的 C++0x)都不允许这样做。我还遇到了 gcc 编译器的编译时错误。
所以我想知道的是,这是否是 VS 编译器的一个已知错误,允许从临时对象初始化引用。
或者是VS编译器的功能扩展?如果是,临时对象的生命周期是多少?
Possible Duplicate:
Binding temporary to a lvalue reference
With VS2008 C++ compiler, the codes are compiled without compile error.
class A{};
int main(){
A& a_ref = A();
return 0;
}
I believe the C++ standard, both C++2003 and coming C++0x, disallow it. And I also get a compile time error with gcc compiler.
So what I want to know is, is this a known bug for VS compiler to allow initializing reference from a temporary object.
Or is it a feature extension of VS compiler? If yes, what's life cycle of the temporary object?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
这是扩展名。此链接对此进行了解释。 如果我们取出常量
It is the extension.This link explains it. What if we take out the const