这在 Visual studio 中编译得很好,但为什么在 XCode 中却不行?
class A()
{};
someMethod(A& a);
someMethod(A()); //error: no matching function call in XCode only :(
这是不好的形式吗? 每次都必须写以下内容似乎很烦人:
A a;
someMethod(a); //successful compile on Xcode
我错过了什么吗?我经验不足,所以感谢您的帮助!
最佳答案
您不能将临时引用绑定(bind)到非常量引用。如果您将函数更改为采用 const 引用,它将起作用:
someMethod(const A& a);
此外,
A a();
不声明局部变量。它声明了一个名为 a
的函数,该函数不带参数并返回一个 A
类型的对象。你的意思是:
A a;
关于c++ - 为什么 gcc 不将类声明编译为引用参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2530624/