Created on 2000-01-06.00:00:00 last changed 45 months ago
Rationale (February, 2021):
This issue was resolved by the resolution of issue 1352.
Additional note, January, 2012:
brace-or-equal-initializers for non-static data members are intended effectively as syntactic sugar for mem-initializers in constructor definitions; the lookup should be the same.
The description of name lookup in the parameter-declaration-clause of member functions in 6.5.3 [basic.lookup.unqual] paragraphs 7-8 is flawed in at least two regards.
First, both paragraphs 7 and 8 apply to the parameter-declaration-clause of a member function definition and give different rules for the lookup. Paragraph 7 applies to names "used in the definition of a class X outside of a member function body...," which includes the parameter-declaration-clause of a member function definition, while paragraph 8 applies to names following the function's declarator-id (see the proposed resolution of issue 41), including the parameter-declaration-clause.
Second, paragraph 8 appears to apply to the type names used in the parameter-declaration-clause of a member function defined inside the class definition. That is, it appears to allow the following code, which was not the intent of the Committee:
struct S { void f(I i) { } typedef int I; };
History | |||
---|---|---|---|
Date | User | Action | Args |
2021-02-17 00:00:00 | admin | set | messages: + msg6501 |
2021-02-17 00:00:00 | admin | set | status: drafting -> nad |
2012-01-17 00:00:00 | admin | set | messages: + msg3605 |
2012-01-17 00:00:00 | admin | set | status: open -> drafting |
2000-01-06 00:00:00 | admin | create |