apply_member_pointer seems to be trying to do too much. I can get a
pointer to member data of any type, unless that data member is itself
a pointer to member or a pointer to function, in which case I get
something else entirely. Additionally, the description doesn't mention
that PMDs also get special handling.
from http://lists.boost.org/Archives/boost/2017/04/234173.php
from http://lists.boost.org/Archives/boost/2017/04/234173.php