🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: de.comp.lang.c++
4 messages
4 total messages Started by Torsten Vogt Thu, 14 Dec 1995 09:46
Re: g++ Bug
#996
Author: Torsten Vogt
Date: Thu, 14 Dec 1995 09:46
34 lines
1620 bytes
> Hallo,
>
> bei dem folgenden Programm klappt beim GNU g++ 2.5.8 das Überladen der Funktion
> f nicht. Kann mir jemand sagen, ob dieser Fehler bekannt bzw. behoben ist ?
[...]
>
> void f(A& a, int)
> {
>   cout << "f(int)" << endl << flush;
> }
> void f(A& a, long)
> {
>    cout << "f(long)" << endl << flush;
< }
[...]

Das ist kein Bug im g++, sondern ein "handbook not read error" bzw, etwas 
unfeiner: RTFM !

Der Grund: int's werden vom g++ standardmaessig als long's interpretiert.

Gruss Torsten

-- 
---------------------------------------------------------------------
| Torsten Vogt                                                      |
|  Universitaet Mannheim - Lehrstuhl Praktische Informatik I        |
|  Seminargebaeude A5                                               |
|  D-68131 Mannheim                                                 |
|                                                                   |
|  Tel  : 0049-621/292-5132  Fax: 0049-621/292-5297                 |
|  email: vogt@pi1.informatik.uni-mannheim.de                       |
|  WWW  : http://pi1.informatik.uni-mannheim.de/HomePages/vogt.html |
---------------------------------------------------------------------
Re: g++ Bug
#999
Author: Uwe Behrens
Date: Thu, 14 Dec 1995 12:59
33 lines
1856 bytes
|> [...]
|> 
|> Das ist kein Bug im g++, sondern ein "handbook not read error" bzw, etwas 
|> unfeiner: RTFM !
|> 
|> Der Grund: int's werden vom g++ standardmaessig als long's interpretiert.

Ich kann mir nicht helfen, aber nach meiner Auffassung waere sowas bei einer
typgeprueften Sprache mit Ueberladung ein Compilerfehler. 

Ich lasse mich aber gerne eines besseren belehren. Nur zu!

|> 
|> Gruss Torsten
|> 
|> -- 
|> ---------------------------------------------------------------------
|> | Torsten Vogt                                                      |
|> |  Universitaet Mannheim - Lehrstuhl Praktische Informatik I        |
|> |  Seminargebaeude A5                                               |
|> |  D-68131 Mannheim                                                 |
|> |                                                                   |
|> |  Tel  : 0049-621/292-5132  Fax: 0049-621/292-5297                 |
|> |  email: vogt@pi1.informatik.uni-mannheim.de                       |
|> |  WWW  : http://pi1.informatik.uni-mannheim.de/HomePages/vogt.html |
|> ---------------------------------------------------------------------
|> 

-- 
_______________________________________________________________________________

Uwe Behrens <behrens@acm.org>                   (aka <uwe@mevis.uni-bremen.de>)
Re: g++ Bug
#1002
Author: Dietmar Kuehl
Date: Thu, 14 Dec 1995 13:56
12 lines
992 bytes
Torsten Vogt (vogt@pi1.uni-mannheim.de) wrote:
: Das ist kein Bug im g++, sondern ein "handbook not read error" bzw, etwas 
: unfeiner: RTFM !

: Der Grund: int's werden vom g++ standardmaessig als long's interpretiert.

..was nach dem kommenden ISO Standard fuer C++ nicht zulaessig sein
duerfte. Daher wurde g++ in dieser Beziehung auch geaendert.
--
dietmar.kuehl@uni-konstanz.de
http://www.informatik.uni-konstanz.de/~kuehl
I am a realistic optimist - that's why I appear to be slightly pessimistic
Re: g++ Bug
#1006
Author: Frank Zetzsche
Date: Thu, 14 Dec 1995 19:57
38 lines
1337 bytes
In article <4aorq4$1e1@trumpet.uni-mannheim.de>,
vogt@pi1.informatik.uni-mannheim.de wrote:

> > Hallo,
> >
> > bei dem folgenden Programm klappt beim GNU g++ 2.5.8 das Überladen der
Funktion
> > f nicht. Kann mir jemand sagen, ob dieser Fehler bekannt bzw. behoben ist ?
> [...]
> >
> > void f(A& a, int)
> > {
> >   cout << "f(int)" << endl << flush;
> > }
> > void f(A& a, long)
> > {
> >    cout << "f(long)" << endl << flush;
> < }
> [...]
> 
> Das ist kein Bug im g++, sondern ein "handbook not read error" bzw, etwas 
> unfeiner: RTFM !
> 

Erstmal danke für alle Antworten.

Das Überladen klappt auch nicht für char, short, etc. Es liegt daran, daß
das erste Argument per Referenz übergeben wird. Nimmt man die überladenen
Versionen

   void f(A , int) oder  void f(int)

dann funktioniert`s! Viele andere Compiler machen es richtig.

Gruß, Frank

-- 
Frank Zetzsche fz@zetzsche.rhein-main.de
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads