ฉันขาดอะไรบางอย่างไปแล้ว แต่ฉันไม่เข้าใจว่าทำไมการคอมไพล์นี้ (ทั้ง g ++ และ clang ++):
struct A
{
};
struct B
{
};
int main()
{
A a(B);
}
ประการแรกB
คือประเภท ... ไม่ใช่ค่า ฉันควรตีความรหัสนี้อย่างไร
A a(B());
ซึ่งอาจเป็นคำจำกัดความของตัวแปรหรือการประกาศฟังก์ชัน
struct A{}; int main() { A(foo); }
คอมไพล์ดังที่เป็นอยู่แม้ว่าfoo
จะไม่ได้ตั้งชื่ออะไรก็ตาม