Created on 2010-03-23.00:00:00 last changed 130 months ago
[Voted into the WP at the March, 2011 meeting as part of paper N3272.]
Additional note (November, 2010):
The injected-class-name can also hide a name from a base class but cannot be annotated with new.
Notes from the November, 2010 meeting:
Paper N3206 did not address these cases; in fact, it introduced additional member declarations that cannot be annotated as hiding a base class member (function-definitions and template-declarations), because the new virt-specifier applies to a member-declarator and none of these member-declarations uses a member-declarator.
Additional note (October, 2010):
alias-declarations should also be considered in this regard.
There are some kinds of declarations that can appear in a derived class and hide names from a base class, but for which the syntax does not permit a [[hiding]] attribute. For example:
struct B1 { int N; int M; }; struct B2 { int M; }; struct [[base_check]] D: B1, B2 { enum { N }; // hides B1::N but cannot take an attribute using B1::M; // hides B2::M but cannot take an attribute };
History | |||
---|---|---|---|
Date | User | Action | Args |
2014-03-03 00:00:00 | admin | set | status: fdis -> c++11 |
2011-04-10 00:00:00 | admin | set | messages: + msg3278 |
2011-04-10 00:00:00 | admin | set | status: open -> fdis |
2010-11-29 00:00:00 | admin | set | messages: + msg3133 |
2010-11-29 00:00:00 | admin | set | messages: + msg3132 |
2010-10-18 00:00:00 | admin | set | messages: + msg3028 |
2010-03-23 00:00:00 | admin | create |