The first option seems logical, although I would call it std::forward<Bar>(other).
I have no idea why CBuilder thinks type &otheris equal Bar&&, not Bar*.
, , , , rvalue , rvalue, std::forward, rvaluness ( ), , : Foo(other), ' , .
( ) , ( FCD).