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