public inbox for gcc-prs@sourceware.org
help / color / mirror / Atom feed
* Re: c++/7016
@ 2003-01-23 17:06 Wolfgang Bangerth
0 siblings, 0 replies; 5+ messages in thread
From: Wolfgang Bangerth @ 2003-01-23 17:06 UTC (permalink / raw)
To: nobody; +Cc: gcc-prs
The following reply was made to PR c++/7016; it has been noted by GNATS.
From: Wolfgang Bangerth <bangerth@ticam.utexas.edu>
To: gcc-gnats@gcc.gnu.org
Cc:
Subject: Re: c++/7016
Date: Thu, 23 Jan 2003 10:59:49 -0600 (CST)
> Hmm, of course you could deprecate this. In any case, I came to note
> this because such code compiled file with 2.95.3.
Which code? The code in the example passed the 2.95 compiler for me, but
created errors in the assembler since the operator was mangled as
"<invalid operator>" (sic).
> Whether or not the
> assignment versions make a lot of sense is another question - I consider
> them as usefule (or useless) as the other assignment operators which I'm
> sure you won't put under question.
Sure not. I suggested deprecating <? and >?, and if they are, then the
assignment versions should be as well.
However, I see that I misunderstood their meaning. I was reading them as
<=? instead of <?=, i.e. "give the element that is smaller or equal to the
other one", instead of "assign the smaller one of the two". The former
doesn't make sense, since it is equivalent to the <? operator. Sorry, my
bad.
W.
-------------------------------------------------------------------------
Wolfgang Bangerth email: bangerth@ticam.utexas.edu
www: http://www.ticam.utexas.edu/~bangerth/
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: c++/7016
@ 2003-01-23 16:46 Wolfgang Bangerth
0 siblings, 0 replies; 5+ messages in thread
From: Wolfgang Bangerth @ 2003-01-23 16:46 UTC (permalink / raw)
To: nobody; +Cc: gcc-prs
The following reply was made to PR c++/7016; it has been noted by GNATS.
From: Wolfgang Bangerth <bangerth@ticam.utexas.edu>
To: gcc-gnats@gcc.gnu.org
Cc:
Subject: Re: c++/7016
Date: Thu, 23 Jan 2003 10:43:17 -0600 (CST)
---------- Forwarded message ----------
Date: Thu, 23 Jan 2003 17:36:46 +0100
From: Jan Beulich <JBeulich@novell.com>
To: neil@daikokuya.co.uk, bangerth@ticam.utexas.edu
Cc: gcc-bugs@gcc.gnu.org, gcc-gnats@gcc.gnu.org
Subject: Re: c++/7016: missing definitions for <?= and >?=
Hmm, of course you could deprecate this. In any case, I came to note
this because such code compiled file with 2.95.3. Whether or not the
assignment versions make a lot of sense is another question - I consider
them as usefule (or useless) as the other assignment operators which I'm
sure you won't put under question. Jan
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: c++/7016
@ 2003-01-23 15:46 Wolfgang Bangerth
0 siblings, 0 replies; 5+ messages in thread
From: Wolfgang Bangerth @ 2003-01-23 15:46 UTC (permalink / raw)
To: nobody; +Cc: gcc-prs
The following reply was made to PR c++/7016; it has been noted by GNATS.
From: Wolfgang Bangerth <bangerth@ticam.utexas.edu>
To: gcc-gnats@gcc.gnu.org
Cc:
Subject: Re: c++/7016
Date: Thu, 23 Jan 2003 09:41:31 -0600 (CST)
---------- Forwarded message ----------
Date: Thu, 23 Jan 2003 01:02:30 -0700
From: Jan Beulich <JBeulich@novell.com>
To: bangerth@dealii.org, gcc-bugs@gcc.gnu.org, gcc-prs@gcc.gnu.org,
nobody@gcc.gnu.org
Subject: Re: c++/7016: missing definitions for <?= and >?=
The original issue was not (only) with overloading, but also with this
operator not being available for the basic scalar types (while <? and >?
are). Thanks, Jan
>>> <bangerth@dealii.org> 23.01.03 04:11:18 >>>
Synopsis: missing definitions for <?= and >?=
State-Changed-From-To: analyzed->closed
State-Changed-By: bangerth
State-Changed-When: Thu Jan 23 03:11:18 2003
State-Changed-Why:
This is probably a corner case whether I should close the
report: this has never worked (used to ICE)
---------------------------------
class C {};
C operator <?= (C) { return C(); }
--------------------------------------
I don't think it was ever documented that one should be
able to overload this operator (a gcc extension anyway).
Now we at least get a reasonable error:
g/a> /home/bangerth/bin/gcc-3.4-pre/bin/c++ -c x.cc
x.cc:2: error: expected identifier
x.cc:2: error: expected type-name
x.cc:2: error: expected `,' or `;'
So the fact that the new parser rejects the code is ok, and
is not removing a documented extension.
W.
http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view%20audit-trail&database=gcc&pr=7016
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: c++/7016
@ 2003-01-23 15:46 Wolfgang Bangerth
0 siblings, 0 replies; 5+ messages in thread
From: Wolfgang Bangerth @ 2003-01-23 15:46 UTC (permalink / raw)
To: nobody; +Cc: gcc-prs
The following reply was made to PR c++/7016; it has been noted by GNATS.
From: Wolfgang Bangerth <bangerth@ticam.utexas.edu>
To: gcc-gnats@gcc.gnu.org
Cc:
Subject: Re: c++/7016
Date: Thu, 23 Jan 2003 09:41:08 -0600 (CST)
[Originally blocked by spam filter, just as following messages]
---------- Forwarded message ----------
Date: Thu, 23 Jan 2003 06:51:42 +0000
From: Neil Booth <neil@daikokuya.co.uk>
To: bangerth@dealii.org, gcc-bugs@gcc.gnu.org, gcc-prs@gcc.gnu.org,
jbeulich@novell.com, nobody@gcc.gnu.org, gcc-gnats@gcc.gnu.org
Subject: Re: c++/7016: missing definitions for <?= and >?=
bangerth@dealii.org wrote:-
> This is probably a corner case whether I should close the
> report: this has never worked (used to ICE)
> ---------------------------------
> class C {};
> C operator <?= (C) { return C(); }
> --------------------------------------
> I don't think it was ever documented that one should be
> able to overload this operator (a gcc extension anyway).
> Now we at least get a reasonable error:
> g/a> /home/bangerth/bin/gcc-3.4-pre/bin/c++ -c x.cc
> x.cc:2: error: expected identifier
> x.cc:2: error: expected type-name
> x.cc:2: error: expected `,' or `;'
>
> So the fact that the new parser rejects the code is ok, and
> is not removing a documented extension.
The documentation should say one way or the other. FWIW to me
allowing overloading is TRT.
Neil.
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: c++/7016
@ 2003-01-23 15:46 Wolfgang Bangerth
0 siblings, 0 replies; 5+ messages in thread
From: Wolfgang Bangerth @ 2003-01-23 15:46 UTC (permalink / raw)
To: nobody; +Cc: gcc-prs
The following reply was made to PR c++/7016; it has been noted by GNATS.
From: Wolfgang Bangerth <bangerth@ticam.utexas.edu>
To: gcc-gnats@gcc.gnu.org
Cc:
Subject: Re: c++/7016
Date: Thu, 23 Jan 2003 09:41:57 -0600 (CST)
> The original issue was not (only) with overloading, but also with this
> operator not being available for the basic scalar types (while <? and >?
> are). Thanks, Jan
I double checked, and found that you can indeed overload >? and <? with
the new parser. However, I cannot find any mention of operators <?= and
>?= at all, so am I right that what you want is to extend the gcc
extension
>? and <?
to also recognize
>?= and <?=
and be able to overload these? Frankly, for standard types, these
operators do not make much sense, so I guess that's the reason why they do
not exist at all.
That being said: the reason given in the manual for their existence must
predate templates -- the example uses a macro
#define MAX(a,b) ((a) > (b) ? (a) : (b))
and whines about the fact that if a or b have side effects, then this may
not be what you want. Today, with templates, there's a much more elegant
solution, and if you ask me then let's deprecate the feature.
W.
> >>> <bangerth@dealii.org> 23.01.03 04:11:18 >>>
> Synopsis: missing definitions for <?= and >?=
>
> State-Changed-From-To: analyzed->closed
> State-Changed-By: bangerth
> State-Changed-When: Thu Jan 23 03:11:18 2003
> State-Changed-Why:
> This is probably a corner case whether I should close the
> report: this has never worked (used to ICE)
> ---------------------------------
> class C {};
> C operator <?= (C) { return C(); }
> --------------------------------------
> I don't think it was ever documented that one should be
> able to overload this operator (a gcc extension anyway).
> Now we at least get a reasonable error:
> g/a> /home/bangerth/bin/gcc-3.4-pre/bin/c++ -c x.cc
> x.cc:2: error: expected identifier
> x.cc:2: error: expected type-name
> x.cc:2: error: expected `,' or `;'
>
> So the fact that the new parser rejects the code is ok, and
> is not removing a documented extension.
>
> W.
>
> http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view%20audit-trail&database=gcc&pr=7016
>
-------------------------------------------------------------------------
Wolfgang Bangerth email: bangerth@ticam.utexas.edu
www: http://www.ticam.utexas.edu/~bangerth/
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2003-01-23 17:06 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2003-01-23 17:06 c++/7016 Wolfgang Bangerth
-- strict thread matches above, loose matches on Subject: below --
2003-01-23 16:46 c++/7016 Wolfgang Bangerth
2003-01-23 15:46 c++/7016 Wolfgang Bangerth
2003-01-23 15:46 c++/7016 Wolfgang Bangerth
2003-01-23 15:46 c++/7016 Wolfgang Bangerth
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).