3022. is_convertible<derived*, base*> may lead to ODR

Section: 23.15.6 [meta.rel] Status: New Submitter: Alisdair Meredith Opened: 2017-09-24 Last modified: 2017-11-09

Priority: 2

View all other issues in [meta.rel].

View all issues with New status.

Discussion:

Given two incomplete types, base and derived, that will have the expected base/derived relationship when complete, the trait is_convertible claims to support instantiation with pointers to these types (as pointers to incomplete types are, themselves, complete), yet will give a different answer when the types are complete vs. when they are incomplete.

We should require pointers (and pointers to pointers etc.) point to a complete type, unless one is a pointer to cv-void. We may also want some weasel-wording to permit pointers to arrays-of-unknown-bound, and pointers to cv-qualified variants of the same incomplete type.

[2017-11 Albuquerque Wednesday night issues processing]

Priority set to 2

Proposed resolution: