Saya tidak mengerti mengapa ini mengkompilasi

Saya pasti melewatkan sesuatu, tapi saya tidak mengerti mengapa ini mengkompilasi (dengan g ++ & clang ++): struct A { }; struct B { }; int main() { A a(B); } Pertama-tama, Badalah tipe ... bukan nilai. Bagaimana saya menafsirkan kode