2016-03-08 14 views
7

Dường như với các thông số auto g ++ chỉ sử dụng số auto đầu tiên mà nó gặp phải. Đây có phải là một lỗi?Đây có phải là lỗi trong hỗ trợ g ++ C++ 14 không?

auto f(std::vector<auto> a) 
{ 
    a.push_back('0'); 
    return std::string(""); 
} 

http://ideone.com/T69ytm

+3

Có, đó là lỗi gcc. Nó không nên chấp nhận 'std :: vector '. – SergeyA

+3

Đây không phải là tiêu chuẩn C++ 14. Các khái niệm hỗ trợ là một phần mở rộng GCC. – Brian

+3

tham số 'tự động' được cho phép trong lambdas, không phải trong các hàm thông thường. 'std :: vector ' cũng không phải là dạng được cho phép trong lambdas. –

Trả lời

2

Như đã trình bày bởi @SergeyA, đây là một lỗi GCC. std::vector<auto> không được chấp nhận.

Các vấn đề liên quan