Hãy xem xét các đoạn mã sau:Anonymous khấu trừ là tạm thời và lớp mẫu luận - gcc vs kêu vang
template <typename T>
struct foo
{
foo(T) { }
};
int main()
{
foo{0};
}
g ++ 7 hạnh phúc tạo ra một đối tượng tạm thời loại foo
, suy luận T = int
.
kêu vang ++ 5 và 6 từ chối để biên dịch mã:
error: expected unqualified-id foo{0}; ^
Đây có phải là một lỗi kêu vang, hoặc là có cái gì đó trong tiêu chuẩn đó ngăn ngừa khấu trừ đối số mẫu lớp từ khởi động cho tạm thời chưa được đặt tên es?