Hacker News new | ask | show | jobs
by dbaupp 3573 days ago
There definitely can be problems: the reference may escape the for loop, and the reference may be invalidated by a modification of the container (even for something "stable" like ordered_map, the referent may be removed).
1 comments

If a pointer/reference escapes the loop you'll have problems whether the thing to the right of the colon is a reference or a copy. If it's a copy, the escaped reference will definitely be invalid once that iteration complete. If it's a reference, it will remain valid in more situations.
Yes, I believe that's what I was saying, but your comment sounds like it is disagreeing. Could you clarify?
Oh, okay, then. I thought you were saying that that was a problem specific to iterating by reference.