You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The term "class name declaration" used in [basic.def]/2 (2.5) is not defined in the Standard. As a matter of fact, it is not even mentioned a second time in the spec. The term is informally introduced in the second example of [class.name]/2 as follows:
struct s { int a; };
void g() {
struct s; // hide global struct s with a block-scope declaration
s* p; // refer to local struct s
struct s { char* p; }; // define local struct s
struct s; // redeclaration, has no effect
}
where the two declarations struct s; above, as far as I can tell, are what the Standard refers to in [basic.def]/2 (2.5) as a "class name declaration". But these declarations are already defined in the Standard as an elaborated-type-specifier , or more specifically, as an elaborated-type-specifier that is the sole constituent of its declaration, as can be seen in the first form shown in paragraph [dcl.type.elab]/1.
The text was updated successfully, but these errors were encountered:
The term "class name declaration" used in [basic.def]/2 (2.5) is not defined in the Standard. As a matter of fact, it is not even mentioned a second time in the spec. The term is informally introduced in the second example of [class.name]/2 as follows:
where the two declarations
struct s;
above, as far as I can tell, are what the Standard refers to in [basic.def]/2 (2.5) as a "class name declaration". But these declarations are already defined in the Standard as an elaborated-type-specifier , or more specifically, as an elaborated-type-specifier that is the sole constituent of its declaration, as can be seen in the first form shown in paragraph [dcl.type.elab]/1.The text was updated successfully, but these errors were encountered: