次のコードで:
class B{};
class A{
public:
A(B& b);
A(const A& a);
};
A::A(B& b){
}
A::A(A& a){
}
int main(){
B b;
A a = b;
}
'A :: A(A)'への一致する関数呼び出しはありません
いくつかの参照を調べて、それが戻り値の最適化(RVO)が原因である可能性があると考えたため、-fno-elide-constructorオプションで最適化を無効にしようとしました。問題はまだ残っています。