This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
c++/3716: Template parameters that are pointers to member functions
- To: gcc-gnats at gcc dot gnu dot org
- Subject: c++/3716: Template parameters that are pointers to member functions
- From: philippeb at videotron dot ca
- Date: 17 Jul 2001 19:19:05 -0000
- Reply-To: philippeb at videotron dot ca
>Number: 3716
>Category: c++
>Synopsis: Template parameters that are pointers to member functions
>Confidential: no
>Severity: serious
>Priority: medium
>Responsible: unassigned
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Tue Jul 17 12:26:00 PDT 2001
>Closed-Date:
>Last-Modified:
>Originator: g++ 2.95.4
>Release: 20010319 (Debian prerelease)
>Organization:
>Environment:
Debian Linux on i386
>Description:
It seems that the compiler is not able to convert a pointer to a member function into a matching template parameter.
It generates the following output:
members.cpp:28: could not convert template argument `&A::get' to `int ( A::*)()'
members.cpp:28: ANSI C++ forbids declaration `get_closure' with no type
members.cpp: In function `int main()':
members.cpp:36: `A::get_closure' cannot be used as a function
>How-To-Repeat:
>Fix:
?
>Release-Note:
>Audit-Trail:
>Unformatted:
----gnatsweb-attachment----
Content-Type: text/x-c++src; name="members.cpp"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="members.cpp"
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dHlwZWluZm8+CgoKdXNpbmcgbmFtZXNwYWNl
IHN0ZDsKCgp0ZW1wbGF0ZSA8Y2xhc3MgX0NsYXNzLCBjbGFzcyBfVHlwZSwgX1R5cGUgX0NsYXNz
OjoqIF9WYWx1ZT4KCXN0cnVjdCBjbG9zdXJlX3QKCXsKCQlfVHlwZSBvcGVyYXRvcigpKF9DbGFz
cyAmIGMpIGNvbnN0IHsgcmV0dXJuIChjLipfVmFsdWUpOyB9Cgl9OwoKdGVtcGxhdGUgPGNsYXNz
IF9DbGFzcywgY2xhc3MgX1R5cGUsIF9UeXBlIChfQ2xhc3M6OiogX1ZhbHVlKSgpPgoJc3RydWN0
IGNsb3N1cmVfdDxfQ2xhc3MsIF9UeXBlICgpLCBfVmFsdWU+Cgl7CgkJX1R5cGUgb3BlcmF0b3Io
KShfQ2xhc3MgJiBjKSBjb25zdCB7IHJldHVybiAoYy4qX1ZhbHVlKSgpOyB9Cgl9OwoKCgpzdHJ1
Y3QgQQp7CglpbnQgaWQ7CglpbnQgZ2V0KCkgeyByZXR1cm4gMDsgfQoKCXN0YXRpYyBjbG9zdXJl
X3Q8QSwgaW50LCAmIEE6OmlkPiBjb25zdCBpZF9jbG9zdXJlOwoJc3RhdGljIGNsb3N1cmVfdDxB
LCBpbnQgKCksICYgQTo6Z2V0PiBjb25zdCBnZXRfY2xvc3VyZTsKfTsKCgppbnQgbWFpbigpCnsK
CUEgYTsKCUE6OmlkX2Nsb3N1cmUoYSk7CglBOjpnZXRfY2xvc3VyZShhKTsKfQo=