通过参考临时对象和args规则
题
说我有一个类:
class A
{
public:
A() {}
};
和的函数:
void x(const A & s) {}
和我做的:
x(A());
可能有人请向我解释关于通过引用传递临时对象的规则?在什么样的编译器允许,你需要常量,如果一个隐含的拷贝发生,等等。从玩弄术语,好像你需要这是有意义的常量,但有关于这一切的正式规则?
谢谢!
解决方案
有一个正式的规则 - 在C ++标准(部分,如果你有兴趣13.3.3.1.4)指出,暂时只能绑定到一个const参考 - 如果你尝试使用非const引用编译器必须将此作为错误。
其他提示
香草萨特做了很好的工作在这里解释它: http://www.gotw.ca /gotw/081.htm
X()必须要么取const引用到临时A,或x()必须采取的A通过值。
不隶属于 StackOverflow