struct A{A();virtual void fun() = 0;};
struct B:A{B();fun();};
struct C{C(A&b); C problem(A&b);};

C c(B());
c.problem(B()); // no-match function になるのは何故?

C::problem(一時オブジェクト参照)を弾くならコンストラクタでも弾くべきだと思うんだけど