C#에만 있는 문법인 줄 알았는데 C++에서도 쓸 수 있었군요. 배열 순회도 될 텐데, C#에서는 배열의 배열int[2][3]과 2차원배열int[2,3]을 구별하니까 그 영향이 있을 것 같네요.
자바에도 이게 있는데 코드를 깔끔하게 만들어 주기도 하지만, 엉뚱한 인덱스 변수를 쓰거나 값이 배열 범위 바깥으로 벗어나는 사태를 원천봉쇄한다는 점이 좋더군요.
오랜만에 뵙네요. ^^
네, 아주 C#스러운 문법이죠. 아주 안전하고 편리하긴 하나, 남발하면 나의 C++ 코드도 점점 MS 컴파일러에 종속될 것 같습니다.
그나저나 C#은 배열의 배열과 다차원 배열을 모두 표현할 수 있는 게 마치 Ada 언어와 비슷하다는 생각이 들었습니다. ^^
보충 설명에 감사드립니다. ^^
C++에서 그런 문법을 정식 도입하려면 저렇게 기호를 쓰지 each, in 같은 거추장스러운 영단어 나열을 쓰지는 않을 겁니다. 그건 C++의 철학이 아니라 생각됩니다.
다만, for의 한참 다음에 ; 이 나오느냐 : 이 나오느냐를 계속 토큰을 살펴봐야 전통적인 for인지 새로운 for인지 파악이 될 테니, 파싱은 좀 어려울 것 같습니다.