Atribuindo este ponteiro para rvalue referência a um ponteiro

O exemplo a seguir deve compilar?

struct B;
struct A
{
  A(B*&&){}
};

struct B : A
{
  B() : A(this){}
};

int main(){}

EmLWS com o clang ele compila, mas com o gcc eu recebo:

nenhuma conversão conhecida para o argumento 1 de 'B * const' para 'B * &&'

e se eu adicionar umconst compila.

Gostaria também de salientar que o MSVC também está errado:

não é possível converter o parâmetro 2 de 'B * const' para 'B * &&'

então parece que temos um bug em dois compiladores.

BUGS ARQUIVADOS

Link de bug MSVC

Link de bug do GCC

questionAnswers(2)

yourAnswerToTheQuestion