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

Reply via email to