Tôi chỉ mới phát hiện ra rằng Visual C++ 2008 (và có lẽ phiên bản cũ hơn?) Hỗ trợ cú pháp for each
trên danh sách stl et al để tạo điều kiện lặp lại. Ví dụ:Visual C++ "cho mỗi" tính di động
list<Object> myList;
for each (Object o in myList)
{
o.foo();
}
Tôi đã rất vui khi khám phá nó, nhưng tôi lo ngại về tính di động cho ngày đáng sợ khi ai đó quyết định tôi cần để có thể biên dịch mã của tôi trong tiếng nói, gcc hoặc một số trình biên dịch khác . Cú pháp này có được hỗ trợ rộng rãi và tôi có thể sử dụng nó mà không lo lắng về các vấn đề về tính di động không?
Lưu ý: cho mỗi (a trong b) có vẻ là CLR chỉ ngay cả trong VS 2005/2008 - bạn không thể sử dụng nó trong mã gốc, chỉ khi nhắm mục tiêu .NET, làm cho mỗi thậm chí "ít di động". Nếu không, tôi nghĩ câu trả lời của bạn là tuyệt vời. – Suma
Cũng lưu ý rằng nếu bạn đang sử dụng VS2010, bạn có lambdas và std :: for_each() đột nhiên trở nên dễ đọc. – Luis