Zuweisen dieses Zeigers zu einer Wertreferenz zu einem Zeiger

Soll das folgende Beispiel kompiliert werden?

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

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

int main(){}

AufLWS mit clang kompiliert es, aber mit gcc bekomme ich:

Keine bekannte Konvertierung für Argument 1 von 'B * const' nach 'B * &&'

und wenn ich aconst es kompiliert.

Ich möchte auch darauf hinweisen, dass MSVC es auch falsch versteht:

Parameter 2 kann nicht von 'B * const' in 'B * &&' konvertiert werden

Es sieht also so aus, als hätten wir einen Fehler in zwei Compilern.

BUGS FILED

MSVC-Fehlerlink

GCC-Fehlerlink

Antworten auf die Frage(2)

Ihre Antwort auf die Frage