|
|||||||||||
|
Technical Support On-Line Manuals Compiler Reference Guide |
Compiler Reference GuideAnonymous classes, structures and unions
Anonymous classes, structures, and unions are supported as an extension. Anonymous structures and unions are supported in C and C++. Anonymous unions are available by default in C++. However,
you must specify the
An anonymous union can be introduced into a containing class by a typedef name. Unlike a true anonymous union, it does not have to be declared directly. For example:
typedef union
{
int i, j;
} U; // U identifies a reusable anonymous union.
#pragma anon_unions
class A
{
U; // Okay -- references to A::i and A::j are allowed.
};
The extension also enables anonymous classes and anonymous structures, as long as they have no C++ features. For example, no static data members or member functions, no nonpublic members, and no nested types (except anonymous classes, structures, or unions) are allowed in anonymous classes and anonymous structures. For example:
#pragma anon_unions
struct A
{
struct
{
int i, j;
}; // Okay -- references to i and j
}; // through class A are allowed.
int foo(int m)
{
A a;
a.i = m;
return a.i;
}
| ||||||||||
|
|||||||||||