62 lines
734 B
C++
62 lines
734 B
C++
// Tests for local types
|
|
|
|
void marker1 (void)
|
|
{
|
|
}
|
|
|
|
|
|
int foobar (int x)
|
|
{
|
|
class Local {
|
|
public:
|
|
int loc1;
|
|
char loc_foo (char c)
|
|
{
|
|
return c + 3;
|
|
}
|
|
};
|
|
|
|
Local l;
|
|
static Local l1;
|
|
char c;
|
|
|
|
l.loc1 = 23;
|
|
|
|
c = l.loc_foo('x');
|
|
return c + 2;
|
|
}
|
|
|
|
int main()
|
|
{
|
|
int c;
|
|
|
|
c = foobar (31);
|
|
|
|
{ // inner block
|
|
class InnerLocal {
|
|
public:
|
|
char ilc;
|
|
int * ip;
|
|
int il_foo (unsigned const char & uccr)
|
|
{
|
|
return uccr + 333;
|
|
}
|
|
class NestedInnerLocal {
|
|
public:
|
|
int nil;
|
|
int nil_foo (int i)
|
|
{
|
|
return i * 27;
|
|
}
|
|
};
|
|
NestedInnerLocal nest1;
|
|
};
|
|
|
|
InnerLocal il;
|
|
|
|
il.ilc = 'b';
|
|
il.ip = &c;
|
|
marker1();
|
|
}
|
|
}
|