From mboxrd@z Thu Jan 1 00:00:00 1970 From: nathan@gcc.gnu.org To: gcc-bugs@gcc.gnu.org, gcc-prs@gcc.gnu.org, nobody@gcc.gnu.org, sebor@roguewave.com Subject: Re: c++/3902: gcc 3.0 unable to resolve an overload taking the address of a template member Date: Wed, 01 Aug 2001 02:43:00 -0000 Message-id: <20010801094300.21928.qmail@sourceware.cygnus.com> X-SW-Source: 2001-08/msg00001.html List-Id: Synopsis: gcc 3.0 unable to resolve an overload taking the address of a template member State-Changed-From-To: open->suspended State-Changed-By: nathan State-Changed-When: Wed Aug 1 02:42:59 2001 State-Changed-Why: this is a parser bug, which will be fixed by the ongoing new parser work. In case you've not noticed, the first function declaration S foo (T (T)) is ambiguous - is the second T an parameter name with extra parentheses, or a parameter list? You and the std require the latter interpretation, g++ takes the former. See 8.2/7 you can work around it by introducing a dummy name. S foo (T _name_ (T)) http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view&pr=3902&database=gcc