Hacker News new | past | comments | ask | show | jobs | submit login

Yep, iterators are one of the most annoying things in C++. That's why I love range for in C++0x - instead of writing this, for example:

for(std::vector<std::string>::iterator it = vec.begin(); it != vec.end(); it++)

you can just do:

for(std::string x : vec)

So awesome!




Even better:

for (auto &x : vec) { }


I can't wait until I can start using this in XCode.


If you compile recent clang, it supports range based for loops.

Using https://github.com/Rip-Rip/clang_complete you can use smart context-aware completion with vim/emacs.

For example if you had this code:

vector<string> vec; for (auto &x : vec) { x

and then if you typed period (.), it would show members from std::string. I'd say it works better than Intellisense (it's very precise and you use the same parser for code completion and final compilation).


I'm too dependent on the rest of the integration with XCode to venture back into emacs land again but I'm looking forward to a rev of XCode that includes this.


> If you compile recent clang, it supports range based for loops.

Thanks for the tip, will update my copy and try it out this weekend! :D




Join us for AI Startup School this June 16-17 in San Francisco!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: