[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Fast enumeration
From: |
Jens Ayton |
Subject: |
Re: Fast enumeration |
Date: |
Mon, 7 Feb 2011 16:38:25 +0100 |
On Feb 7, 2011, at 16:19, Dr. H. Nikolaus Schaller wrote:
>
>
> Just another idea I would like to propose for discussion
> is to follow the "bracket-style" of NS_DURING NS_HANDLER & NS_END_HANDLER
> macros (http://www.cocoadev.com/index.pl?ExceptionHandling)
>
> I.e. something like:
>
> #define FOREACH(TYPE, VAR, COLLECTION) { NSEnumerator *_e=[(COLLECTION)
> objectEnumerator]; TYPE VAR; while((VAR = [_e nextObject])) {
> #define FOREACH_END } }
>
> The benefit would be that it appears to be a little more safe against errors
> than
>
> if(i == 0)
> foreach(...)
> if(j == 0)
> ...
> else
> ...
The macros I posted have the same rules WRT braces as a normal for loop. If
you're going to use FOREACH_END, you might as well use FOR_END and IF_END
macros, or - more practically - require every if body to use braces.
> Finally, I think it should also be possible to rename the internal
> variable _e by macro name generation
> so that nested enumerations have private enumerator variables.
>
> Something like ... NSEnumerator *_e##VAR;
This isn't necessary; nested enumerations each have their own scope.
--
Jens Ayton
- Fast enumeration, Jens Ayton, 2011/02/04
- Fast enumeration, Jens Ayton, 2011/02/04
- Re: Fast enumeration, Ivan Vučica, 2011/02/04
- Re: Fast enumeration, Jens Ayton, 2011/02/04
- Re: Fast enumeration, Nicola Pero, 2011/02/04
- Re: Fast enumeration, Fred Kiefer, 2011/02/07
- Re: Fast enumeration, Jens Ayton, 2011/02/07
- Re: Fast enumeration, Dr. H. Nikolaus Schaller, 2011/02/07
- Re: Fast enumeration,
Jens Ayton <=
- Re: Fast enumeration, Dr. H. Nikolaus Schaller, 2011/02/07
- Re: Fast enumeration, Riccardo Mottola, 2011/02/09
- Re: Fast enumeration, David Chisnall, 2011/02/09
- Re: Fast enumeration, Fred Kiefer, 2011/02/09
- Re: Fast enumeration, Jens Ayton, 2011/02/09
- Re: Fast enumeration, David Chisnall, 2011/02/07
- Re: Fast enumeration, Fred Kiefer, 2011/02/07
- Re: Fast enumeration, Ivan Vučica, 2011/02/04
Re: Fast enumeration, David Chisnall, 2011/02/04