具体来说,以下是合法的C++吗?
A级{};
无效foo(A *);
空格(const A&);
int main(无效)
{
foo(&A());//1
bar(A());//2
}
它似乎可以正常工作,但这并不意味着它一定合法。是吗?
编辑-将A&
更改为const A&
最佳答案
1:不允许使用临时地址。 Visual C++允许它作为语言扩展(默认情况下,语言扩展处于启用状态)。
2:这是完全合法的。
关于c++ - 通过引用函数传递新构造的对象是否合法?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/84427/