Boost logo

Boost :

From: Tobias Schwinger (tschwinger_at_[hidden])
Date: 2007-08-01 19:10:03

Andrey Semashev wrote:
> I'm surprised too. I always though that T U::* and T (U::*)() are
> very different types. I didn't find in the Standard any notes that they
> are the same.

A common misconception invented by the authors of GCC, I guess ;-).

With MSVC, the type expression 'U C::*' deduced from a member function
pointer T (with default options) will surprisingly yields a type
incompatible to T (as member functions are implicitly __thiscall
attributed, where U C::* becomes __cdecl, because U is the type of a
freestanding function and __thiscall only exists for member functions).


Boost list run by bdawes at, gregod at, cpdaniel at, john at