Ich vermisse sicherlich etwas, aber ich verstehe nicht, warum dies kompiliert wird (sowohl mit g ++ als auch mit clang ++):
struct A
{
};
struct B
{
};
int main()
{
A a(B);
}
Zuallererst B
ist ein Typ ... kein Wert. Wie soll ich diesen Code interpretieren?
A a(B());
Variablendefinition oder Funktionsdeklaration sein.
struct A{}; int main() { A(foo); }
das so kompiliert wird , wie es ist , auch wenn Sie foo
nichts benennen.