public inbox for gcc-prs@sourceware.org
help / color / mirror / Atom feed
* Re: c++/70
@ 2001-05-29 11:16 Martin Sebor
0 siblings, 0 replies; 3+ messages in thread
From: Martin Sebor @ 2001-05-29 11:16 UTC (permalink / raw)
To: nobody; +Cc: gcc-prs
The following reply was made to PR c++/70; it has been noted by GNATS.
From: Martin Sebor <sebor@roguewave.com>
To: rodrigc@gcc.gnu.org
Cc: gcc-gnats@gcc.gnu.org
Subject: Re: c++/70
Date: Tue, 29 May 2001 12:10:00 -0600
rodrigc@gcc.gnu.org wrote:
>
> The following reply was made to PR c++/70; it has been noted by GNATS.
>
> From: rodrigc@gcc.gnu.org
> To: gcc-gnats@gcc.gnu.org, jgeremia@princeton.edu, wanderer@rsu.ru,
> martin@loewis.home.cs.tu-berlin.de, nobody@gcc.gnu.org
> Cc:
> Subject: Re: c++/70
> Date: 29 May 2001 02:31:42 -0000
>
> Synopsis: template bug
>
> State-Changed-From-To: analyzed->closed
> State-Changed-By: rodrigc
> State-Changed-When: Mon May 28 19:31:42 2001
> State-Changed-Why:
> Not legal C++.
I don't know of any rule that makes this ill-formed (or not legal),
even though referencing the operator may be ambiguous. operator*()
along with many other binary operators may be defined either as a
member, or as a non-member, or both (13.5.2).
The simplified test case below compiles (with the friend being defined
inline), which confirms that there is a bug (most other compilers also
accept the code in the original test case).
Regards
Martin
template <class T>
struct S;
template <class T>
void operator* (S<T>, S<T>);
template <class T>
struct S
{
friend void operator*<> (S, S); // { } // okay
void operator* (S) { }
};
// template <class T>
// void operator* (S<T>, S<T>) { } // error? not!
S<int> s;
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: c++/70
@ 2001-05-29 12:06 rodrigc
0 siblings, 0 replies; 3+ messages in thread
From: rodrigc @ 2001-05-29 12:06 UTC (permalink / raw)
To: nobody; +Cc: gcc-prs
The following reply was made to PR c++/70; it has been noted by GNATS.
From: rodrigc@gcc.gnu.org
To: gcc-gnats@gcc.gnu.org, jgeremia@princeton.edu, wanderer@rsu.ru,
martin@loewis.home.cs.tu-berlin.de, nobody@gcc.gnu.org
Cc:
Subject: Re: c++/70
Date: 29 May 2001 18:59:21 -0000
Synopsis: template bug
State-Changed-From-To: closed->open
State-Changed-By: rodrigc
State-Changed-When: Tue May 29 11:59:21 2001
State-Changed-Why:
Test-case submitted by Martin Sebor more clearly illustrates
the problem, and fails under gcc 2.95.2, and gcc version 3.0 20010528 (prerelease).
Test-case does compile under Sun C++ 5.2
and Compaq C++ 6.2
I have attached the test-case as test.cpp.
http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view&pr=70&database=gcc
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: c++/70
@ 2001-05-28 19:36 rodrigc
0 siblings, 0 replies; 3+ messages in thread
From: rodrigc @ 2001-05-28 19:36 UTC (permalink / raw)
To: nobody; +Cc: gcc-prs
The following reply was made to PR c++/70; it has been noted by GNATS.
From: rodrigc@gcc.gnu.org
To: gcc-gnats@gcc.gnu.org, jgeremia@princeton.edu, wanderer@rsu.ru,
martin@loewis.home.cs.tu-berlin.de, nobody@gcc.gnu.org
Cc:
Subject: Re: c++/70
Date: 29 May 2001 02:31:42 -0000
Synopsis: template bug
State-Changed-From-To: analyzed->closed
State-Changed-By: rodrigc
State-Changed-When: Mon May 28 19:31:42 2001
State-Changed-Why:
Not legal C++.
http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view&pr=70&database=gcc
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2001-05-29 12:06 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2001-05-29 11:16 c++/70 Martin Sebor
-- strict thread matches above, loose matches on Subject: below --
2001-05-29 12:06 c++/70 rodrigc
2001-05-28 19:36 c++/70 rodrigc
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).