Article View: de.comp.lang.c++
Article #1005Re: g++ Bug
From: Torsten Vogt
Date: Thu, 14 Dec 1995 18:30
Date: Thu, 14 Dec 1995 18:30
44 lines
2469 bytes
2469 bytes
Ich schrieb:
> |> [...]
> |>
> |> 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.
Uwe Behrens schrieb:
> 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!
Von Belehrung kann keine Rede sein. Trotzdem der Versuch einer Antwort:
Halten wir mal fest: Der GNU Compiler belegt fuer 'long int' genauso wie
fuer 'int' 32-Bit.
D.h. fuer die Funktionsdefinition 'void a(int i) {}' kann bzgl. der
Argumentliste der gleiche Code generiert werden wie fuer 'void a(long l) {}'.
Der Compiler kennt also nun 2 Funktionen mit dem Namen a und gleichen
Typinformationen bzgl. der Argumente. Anhand dieser Typinformation wird nun
entschieden, welche Funktion tatsaechlich aufgerufen wird.
Der Compiler haette nur eine Chance diese Ueberladung richtig durchzufuehren,
wenn er 'int' und 'long int' unterschiedlich behandeln wuerde.
Ob dies nun ein Compilerfehler ist oder nicht, darueber kann man streiten.
Vernachlaessigt man Implementierungsdetails, so muss ich Dir rechtgeben:
Diese Ueberladen sollte eigentlich funktionieren.
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 |
---------------------------------------------------------------------
Technical Details
Message-ID:
<4apqg1$a84@trumpet.uni-mannheim.de>Path:
arc1-ca.pugleaf.net!news.uni-mannheim.de!pi1!vogtShow Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!news.uni-mannheim.de!pi1!vogt From: vogt@pi1.uni-mannheim.de (Torsten Vogt) Newsgroups: de.comp.lang.c++ Subject: Re: g++ Bug Date: 14 Dec 1995 18:30:25 GMT Organization: Universitaet Mannheim Distribution: world Message-ID: <4apqg1$a84@trumpet.uni-mannheim.de> Reply-To: vogt@pi1.informatik.uni-mannheim.de NNTP-Posting-Host: pi1.informatik.uni-mannheim.de