This is an unofficial snapshot of the ISO/IEC JTC1 SC22 WG21 Core Issues List revision 113d. See http://www.open-std.org/jtc1/sc22/wg21/ for the official list.

2024-03-20


149. Accessibility and ambiguity

Section: 7.3.12  [conv.ptr]     Status: TC1     Submitter: Nathan Sidwell     Date: 31 Jul 1999

The Standard uses confusing terminology when referring to accessibility in connection with ambiguity. For instance:

7.3.12 [conv.ptr] paragraph 3:

If B is an inaccessible or ambiguous base ...
7.6.1.7 [expr.dynamic.cast] paragraph 8:
... has an unambiguous public base ...
11.7.3 [class.virtual] paragraph 5:
... is an unambiguous direct or indirect base ... and is accessible ...
14.4 [except.handle] paragraph 3:
not involving conversions to pointers to private or protected or ambiguous classes

The phrase "unambiguous public base" is unfortunate as it could mean either "an unambiguous base not considering accessibility, which is public" or "an unambiguous base considering only the publicly accessible bases." I believe the former interpretation correct, as accessibility is applied after visibility (11.8 [class.access] paragraph 4) and ambiguity is described in terms of visibility (6.5.2 [class.member.lookup] paragraph 2) .

Suggested Resolution: Use the phrases "public and unambiguous," "accessible and unambiguous," "non-public or ambiguous," or "inaccessible or ambiguous" as appropriate.

Proposed resolution (10/00):