Reputation: 14975
In reference to this source code what is the purpose of the double curly braces within the @autoreleasepool
?
int main(int argc, const char * argv[]) {
@autoreleasepool {
{{
assert([EnumWith1ConstantSansExplicitValuesByLabel() count] == 1);
assert([[EnumWith1ConstantSansExplicitValuesByLabel() objectForKey:@"EnumWith1ConstantSansExplicitValues_Constant1"] isEqual:[NSNumber numberWithInt:0]]);
assert([EnumWith1ConstantSansExplicitValuesByValue() count] == 1);
assert([[EnumWith1ConstantSansExplicitValuesByValue() objectForKey:[NSNumber numberWithInt:0]] isEqual:@"EnumWith1ConstantSansExplicitValues_Constant1"]);
EnumWith1ConstantSansExplicitValues a = 0;
assert(EnumWith1ConstantSansExplicitValues_Constant1 == a);
assert([@"EnumWith1ConstantSansExplicitValues_Constant1" isEqualToString:EnumWith1ConstantSansExplicitValuesToString(a)]);
assert(EnumWith1ConstantSansExplicitValuesFromString(EnumWith1ConstantSansExplicitValuesToString(EnumWith1ConstantSansExplicitValues_Constant1), &a));
assert(EnumWith1ConstantSansExplicitValues_Constant1 == a);
a++;
assert([@"<unknown EnumWith1ConstantSansExplicitValues: 1>" isEqualToString:EnumWith1ConstantSansExplicitValuesToString(a)]);
assert(!EnumWith1ConstantSansExplicitValuesFromString(@"foo", &a));
}}
{{
assert([EnumWith1ConstantSansExplicitValuesTrailingCommaByLabel() count] == 1);
}}
...
printf("success\n");
return 0;
}
Upvotes: 1
Views: 367
Reputation: 56129
There is nothing special about the double-curly-braces*. It's just used by the authors to logically separate sections of code within a rather long method.
*: Beyond the single-curly-brace behavior of declaring a scope block.
Upvotes: 2