This is not a regression, but seems a serious problem, which, actually, is
blocking a simple implementation of various tr1/type_traits facilities :(
The following simplified testcase fails: for some reason, pointers to member
functions (vs, pointers to member objects) are not matched. ICC has no
problems at all with it.
//---------------------------------------------
#include <cassert>
template<bool _Tv>
struct integral_constant
{
static const bool value = _Tv;
};
typedef integral_constant<true> true_type;
typedef integral_constant<false> false_type;
template<typename>
struct is_member_pointer
: public false_type { };
template<typename _Tp, typename _Cp>
struct is_member_pointer<_Tp _Cp::*>
: public true_type { };
typedef void F();
struct S {};
typedef F S::*PMF;
int main()
{
assert( is_member_pointer<PMF>::value );
}
//-----------------------------------------------
--
Summary: Pointer to member function not matched
Product: gcc
Version: 4.0.0
Status: UNCONFIRMED
Severity: normal
Priority: P2
Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: pcarlini at suse dot de
CC: gcc-bugs at gcc dot gnu dot org
GCC build triplet: Any
GCC host triplet: Any
GCC target triplet: Any
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19076