This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug c++/33990] New: bug in lookup of member template conversion operator for pointer to member functions
- From: "sutambe at yahoo dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 3 Nov 2007 21:59:59 -0000
- Subject: [Bug c++/33990] New: bug in lookup of member template conversion operator for pointer to member functions
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
In the code snippet below, the comparison (nullptr == pmf) in main should
compile but on gcc it fails to compile. Compiler fails to find appropriate
conversion operator and gives error saying:
error: no match for operator== in nullptr == pmf
class nullptr_t
{
public:
template<class T>
operator T*() const // convertible to any type of null non-member
pointer...
{ return 0; }
template<class C, class T>
operator T C::*() const // or any type of null member pointer...
{ return 0; }
} nullptr = {};
struct C
{
void func ();
};
int main(void)
{
char * ch = nullptr;
void (C::*pmf)() = nullptr;
if (nullptr == ch) {} // Compiles successfully
if (nullptr == pmf) {} // Should compile but does not compile on gcc
4.1.1
}
--
Summary: bug in lookup of member template conversion operator for
pointer to member functions
Product: gcc
Version: 4.1.1
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: sutambe at yahoo dot com
GCC host triplet: Linux i686
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33990