14-02-2019, 11:11 AM
Rule 2-10-2 is defined in terms of "block scopes" and "nested blocks". The only example is of a function and there is no mention of classes nor namespaces. Does "block" refer only to a compound statement as part of a function body, or is the intention to include other curly-brace-enclosed regions or scopes? For example, are any of the indicated lines violations of rule 2-10-2?
Code:
int i;
namespace n { int i; } // A
namespace { int i; } // B
class c { int i; }; // C
class c2 { int k; void f() { int k; } }; // D
class base { int z; };
class derived : public base { int z; }; // E