🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: de.comp.lang.c++
Article #1005

Re: g++ Bug

#1005
From: Torsten Vogt
Date: Thu, 14 Dec 1995 18:30
44 lines
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!vogt

Show 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