(void)reinterpret_cast<intstructure::*>(psi);// expected-error {{reinterpret_cast from 'int const struct structure::*' to 'int struct structure::*' casts away constness}}
void(structure::*psf)()=0;
(void)reinterpret_cast<int(structure::*)()>(psf);
(void)reinterpret_cast<void(structure::*)()>(psi);// expected-error {{reinterpret_cast from 'int const struct structure::*' to 'void (struct structure::*)(void)' is not allowed}}
(void)reinterpret_cast<intstructure::*>(psf);// expected-error {{reinterpret_cast from 'void (struct structure::*)(void)' to 'int struct structure::*' is not allowed}}
// Cannot cast from integers to member pointers, not even the null pointer
// literal.
(void)reinterpret_cast<void(structure::*)()>(0);// expected-error {{reinterpret_cast from 'int' to 'void (struct structure::*)(void)' is not allowed}}
(void)reinterpret_cast<intstructure::*>(0);// expected-error {{reinterpret_cast from 'int' to 'int struct structure::*' is not allowed}}