dwaach said:
what does T*VQ& mean where
T is object type,
VQ is volatile or empty,
It's a declarator of a [volatile or plain] pointer to an object of T.
Is this correct,
struct X {};
volatile X ox;
ox is a volatile object of type X.
px is a regular pointer to an object of type X. You attempt to initialise
it with the address of a volatile object, which is not allowed. You can
only expect the compiler to convert from a pointer to a less-qualified to
more-qualified object. IOW, legal implicit conversions include
[] -> const
[] -> volatile
const -> const volatile
volatile -> const volatile
where [] means "noting" or "plain".
V