Tôi chắc chắn thiếu một cái gì đó, nhưng tôi không hiểu tại sao điều này biên dịch (với cả g ++ & clang ++):
struct A
{
};
struct B
{
};
int main()
{
A a(B);
}
Trước hết, B
là một loại ... không phải là một giá trị. Làm thế nào tôi nên giải thích mã này?
A a(B());
là một định nghĩa biến hoặc khai báo hàm.
struct A{}; int main() { A(foo); }
biên dịch như vậy , ngay cả khi foo
không đặt tên gì.