https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63732

Daniel Krügler <daniel.kruegler at googlemail dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |daniel.kruegler@googlemail.
                   |                            |com

--- Comment #1 from Daniel Krügler <daniel.kruegler at googlemail dot com> ---
I disagree with your interpretation. Note that in your code example for yyy
there is an effective C-cast or reinterpret_cast. This is so, because your are
attempting to convert an address to a pointer of member of type

Number ComplexProperty::*

to

PropertyBase ComplexProperty::*

Irrespective of the private base classes, this kind of pointer conversion is
not allowed without a reinterpret_cast, but reinterpret_casts are not valid in
constants expressions.

The conversion to xxx is valid, because there is no type change involved
(Number ComplexProperty::* is converted to Number ComplexProperty::*) and for
the out-of-class member ComplexProperty::m_members definition the code is
well-formed, because you do have an effective reinterpret_cast but not in a
place where a constant expression would be required.

Reply via email to