从左值构造函数调用右值构造函数

call rvalue-constructor from an lvalue-constructor

我只想为左值和右值提供一次构造函数定义。

class A;

class B {
    B(A const& a): B(A(a)) {}
    B(A&&);
};

B::B(A&&)是否保证被B::B(A const&)调用?

是的,因为您要委托给具有类型 A 的单个临时参数的构造函数,右值是一个 xvalue。