struct { int a, b; } f(int x, int y) // OK
{
return { x, y };
}
auto g(int x, int y) -> struct { int a, b; } // error C2332
{
return { x, y };
}
int main()
{
auto n = f(1, 2).a; // OK
}
Trình biên dịch của tôi là VC++ 2013 RC.Tại sao cấu trúc không được đặt tên không được sử dụng làm loại trả về đuôi?
Tại sao g
sai trong khi f
là OK?
Đây có phải là lỗi của VC++ không?
Bạn có chắc là bạn đang biên soạn C++ này chứ không phải C? –
@Jesse, Có. Tôi biên dịch nó trong C++. Nếu không, 'auto' cũng sẽ kích hoạt lỗi trình biên dịch. – xmllmx
@xmllmx Um, không. 'auto' là một thông số thời gian lưu trữ hợp lệ trong C. –