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, B
adalah tipe ... bukan nilai. Bagaimana saya menafsirkan kode ini?
A a(B());
yang bisa menjadi definisi variabel atau deklarasi fungsi.
struct A{}; int main() { A(foo); }
mengkompilasi apa adanya , bahkan jika foo
tidak menyebutkan nama apa pun.