| // In top-level scope. |
| struct TopLevelStruct { |
| int member; |
| }; |
| TopLevelStruct top_level_struct; |
| |
| // Nested in a class. |
| struct OuterStruct { |
| struct InnerStruct { |
| int member; |
| }; |
| }; |
| OuterStruct::InnerStruct inner_struct; |
| |
| // Behind typedef. |
| struct UnderlyingTypedefStruct { |
| int member; |
| }; |
| typedef UnderlyingTypedefStruct TypedefStruct; |
| TypedefStruct typedef_struct; |
| |
| // In namespace. |
| namespace NS { |
| struct NamespaceStruct { |
| int member; |
| }; |
| } // namespace NS |
| NS::NamespaceStruct namespace_struct; |
| |
| // In unnamed namespace. |
| namespace { |
| struct UnnamedNamespaceStruct { |
| int member; |
| }; |
| } // namespace |
| UnnamedNamespaceStruct unnamed_namespace_struct; |
| |
| // In linkage spec. |
| extern "C" { |
| struct ExternCStruct { |
| int member; |
| }; |
| } |
| ExternCStruct extern_c_struct; |
| |
| int main() { |
| struct DeclInFunc { |
| int member; |
| }; |
| |
| DeclInFunc decl_in_func; |
| return unnamed_namespace_struct.member; // break here |
| } |