で次のコードは、Mac OSX上のG ++とVisual Studioに2008 ではなくをコンパイルするのVisual Studio 2008でコンパイルではなく、この参照が問題に関連する理由リファレンス関連の問題グラム++
class A
{
public:
A CreateA()
{
A a;
return a;
}
};
class B
{
public:
void ComputeWithA
(
A &a // Here, removing the reference solves the problem
)
{
return;
}
};
int main()
{
A a;
B b;
b.ComputeWithA(a); // Works
b.ComputeWithA(a.CreateA()); // Invalid arguments 'Candidates are: void ComputeWithA(A &)'
return 0;
}
?どんな説明も大歓迎です。
よろしくお願いいたします。
この解決策に問題がある場合、私は今すぐ改造されています。 – Marius
まだ非const参照に一時的なバインディングをバインドしています。間接指定のレベルをもう1つ追加しました。 – rubenvb
は同意しますが、コンパイラはうれしくて、呼び出された関数に参照を格納していない限り問題ありません。 – Marius