Although p{} in the example below is an rvalue, I get an error "cannot bind ‘p’ lvalue to ‘p&&’." It does compile if I don't use braces, and change p{} to p(). struct p {}; struct b { b( p && ) {} }; struct d : b { using b::b; }; d o( p{} ); In the original, full program, it doesn't mention a value category, and changing the braces to () doesn't work around the issue.
(But, perfect forwarding equivalent to the inheriting constructor semantic does work around the issue.)
dup of PR 56285 *** This bug has been marked as a duplicate of bug 56285 ***