- Iterators Must Go! (in favor of ranges)
Tweet
- Game Development
- 2009/05/15 08:06
- Andrei Alexandrescu, Boost, BoostCon, C++, C++0x, CPP, D programming language, iterator, Range
-
부스트 라이브러리 관련 컨퍼런스가 있더군요. BoostCon 이라는 이름으로 얼마전 열렸습니다. 거기서 C++ 관련 대가 중 한명인 Andrei Alexandrescu가 키노트를 발표하였습니다. 제목은 "Iterators Must Go"였습니다.
결론은 말하자면 iterator는 여러가지 단점이 있으니 대신 range라는 개념을 쓰자였습니다. Range의 개념은 사실 한참 전에 나온 것으로 부스트를 비롯하여 여러 라이브러리에 이미 구현되어 있습니다. 안드레이는 여기서 한발 더 나아가 아예 range로 iterator를 대체할 것을 주장합니다. 안드레이의 결론은 다음과 같습니다.
- Range가 더 잘 추상화된 개념이다
- 안정성도 더 높다
- 쉽게 조합하여 확장할 수 있다
- 단순히 기존 iterator 버전의 STL 알고리즘들을 range로 포팅하는 수준을 넘어 한단계 업그레이드시킬 수 있다
대가답게 슬라이드 자료도 명료하고 흥미진진합니다. C++에 관심이 많은 분들은 꼭 읽어보십시오. 이곳에도 range 관련 글이 있으니 더불어 읽으시면 좋을듯.
p.s. 이러한 range를 비롯하여 STL 라이브러리 제공하는 언어가 하나 더 있으니 D 언어입니다. 저도 한때 관심을 가지고 공부했었는데... 나름 흥미로웠습니다. 게임 개발용으로도 적절한 언어로 보였거든요. 어쨌든 슬라이드나 안드레이의 홈페이지를 보셨다면 아시겠지만 조만간 그가 저술한 책, "The D Programming Language"가 나옵니다. 주류 언어로 자리잡기에는 여전히 갈길이 멀어보이지만 그래도 기대되는 행보입니다.
'Game Development' 카테고리의 다른 글
| D&D-style map of C++ (2) | 2009/06/06 |
|---|---|
| Double-checked locking 이디엄의 함정 (2) | 2009/06/03 |
| Iterators Must Go! (in favor of ranges) (2) | 2009/05/15 |
| std::stack에 관한 소고 (0) | 2009/05/12 |
| 실시간 렌더링에도 temporal coherence를 활용하자! (0) | 2009/05/06 |
| Dual Quaternion Skinning (2) | 2009/04/29 |











Recent comment