Re: [Widelands-public] widelands & Visual studio 2008
Status: Beta
Brought to you by:
sirver
From: Erik <es...@gm...> - 2010-02-27 20:16:02
|
Jari Hautio skrev: > Is there a reason to prevent changing the end? > Yes, to prevent accidental modification. In most cases, modifying end would be a bug. So the macro forbids it. > If you erase a element inside for-loop, you'll have to update end > pointer. Otherwise sometimes loops break, especially if it happens to > be last element of a list. That's why I always prefer using > container::end() function in for loops. Never had worry about this bug > again. > Such cases are relatively rare and use an explicit loop instead of the macro to show that something special is done. Always using container::end() will add needless overhead in the common case, and compilers can not optimize it away on their own. |