Có hợp pháp để khai báo biến vòng lặp trong một vòng lặp dựa trên vòng lặp có cùng tên mà tôi sử dụng trong câu lệnh biểu thức của vòng lặp không? Tôi hy vọng ví dụ này làm cho nó rõ ràng.Mã định danh có cùng tên trong cả biểu thức và khai báo dựa trên dải cho
#include <iostream>
#include <vector>
struct bar {
std::vector<int> nums;
};
int main()
{
bar b;
b.nums = {1, 2, 3};
for(int b : b.nums)
std::cout << b << std::endl;
}
gcc 4.8 đưa ra lỗi trong khi clang 3.2 cho phép.
[lỗi đã được báo cáo với gcc] (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54430). –
@ JesseGood Cảm ơn bạn đã đào bới điều đó. Hóa ra tôi không tìm thấy bất cứ thứ gì trên bugzilla vì tôi đang tìm kiếm "ranged based for" thay vì "range based for". Không biết thuật ngữ đó được biểu hiện như thế nào trong đầu tôi, cùng một lỗi xảy ra trong tiêu đề. – inf