 <p>Pointers to functions and pointers to member functions are different beasts. While functions decay to pointers to functions, the same is not true for member functions or member objects. While there is a standard function to pointer conversion there is nothing similar for member functions or member objects. When you want to get a pointer to member you always need to use an <code>&amp;</code>.</p> <p>I don't know the exact reasoning but I suspect that the address-of operator was required to avoid mistakes which sometimes show up with functions, e.g.:</p> <pre><code>int f(); // ... if (f) { // always true } </code></pre> <p>While the implicit conversion from functions to function pointers couldn't be removed without breaking C compatibility, there was no similar concern when members and pointer to members were introduced.</p>