C++ warning

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Roarin
Beiträge: 462
Registriert: 04.01.2002 18:27:23
Wohnort: Burgfarrnbach (Fürth/Nürnberg)
Kontaktdaten:

C++ warning

Beitrag von Roarin » 03.06.2003 19:31:02

Hoi,

ich bekomme dieses Warning wenn ich mein ganz simples "Hello World" compiliere.

Code: Alles auswählen

/usr/include/c++/3.3/backward/backward_warning.h:32:2: warning: #warning This file includes at least one deprecated or antiquated header. Please consider using one of the 32 headers found in section 17.4.1.2 of the C++ standard. Examples include substituting the <X> header for the <X.h> header for C++ includes, or <sstream> instead of the deprecated header <strstream.h>. To disable this warning use -Wno-deprecated.
Irgendwie kann ich so recht nichts damit anfangen. Das er mir sagt das iostream.h alt ist soweit bin ich gekommen. Aber was soll ich an dessen stelle benutzen?

Hilfe ;)

Gruß
Die USA sind direkt von der Barbarei in die Dekadenz übergegangen, ohne den Umweg über die Zivilisation zu nehmen.
-Joachim Fernau

roarin@amessage.de

Benutzeravatar
BeS
Moderator
Beiträge: 3236
Registriert: 17.04.2002 18:30:21
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Stuttgart
Kontaktdaten:

Beitrag von BeS » 03.06.2003 19:35:31

Hallo,
poste doch mal dein Programm, dann kann man eher sagen was nicht stimmt.
Nach der Meldung vermute ich aber, daß du z.B. das veraltete <iostream.h> verwendest und nicht <iostream> ...
Deine Unterstützung für Freie Software kostet dich nur wenige Minuten: www.fsfe.org/support

Ich spreche von Freier Software!

keyem
Beiträge: 303
Registriert: 23.08.2002 07:50:28
Wohnort: Berlin

Beitrag von keyem » 03.06.2003 19:39:34

Hi,

lt. aktuellem C++-Standard sollen die ".h" C++-Header nicht mehr verwendet werden; die neuen Dateien lassen einfach das ".h" weg und heißen z.B. "iostream", also

Code: Alles auswählen

#include <iostream>
Allerdings hat sich meiner Erinnerung nach dadurch die Handhabung der Namespaces verändert, standardmäßig muss bei Verwendung der neuen Header z.B. immer auf den korrekten Namensraum referenziert werden z.B. "std::cout"

Viel Erfolg,
keyem

keyem
Beiträge: 303
Registriert: 23.08.2002 07:50:28
Wohnort: Berlin

Beitrag von keyem » 03.06.2003 19:40:59

BeS hat geschrieben:Hallo,
poste doch mal dein Programm, dann kann man eher sagen was nicht stimmt.
Nach der Meldung vermute ich aber, daß du z.B. das veraltete <iostream.h> verwendest und nicht <iostream> ...
Da war doch wieder einer schneller ... :(

Roarin
Beiträge: 462
Registriert: 04.01.2002 18:27:23
Wohnort: Burgfarrnbach (Fürth/Nürnberg)
Kontaktdaten:

Beitrag von Roarin » 03.06.2003 19:42:51

keyem hat geschrieben:Hi,

lt. aktuellem C++-Standard sollen die ".h" C++-Header nicht mehr verwendet werden; die neuen Dateien lassen einfach das ".h" weg und heißen z.B. "iostream", also

Code: Alles auswählen

#include <iostream>
Allerdings hat sich meiner Erinnerung nach dadurch die Handhabung der Namespaces verändert, standardmäßig muss bei Verwendung der neuen Header z.B. immer auf den korrekten Namensraum referenziert werden z.B. "std::cout"

Viel Erfolg,
keyem
Aj. Das wars danke euch beiden!

Auf die idee das .h wegzulassen bin auch gekommen nur hat er dann eben immer cout etc. nicht gefunden. mit dem korrekten ansprechen gehts. Das wird ja langsam wie Java ich glaub ich nehm lieber wieder C ;)

Gruß
Die USA sind direkt von der Barbarei in die Dekadenz übergegangen, ohne den Umweg über die Zivilisation zu nehmen.
-Joachim Fernau

roarin@amessage.de

Benutzeravatar
BeS
Moderator
Beiträge: 3236
Registriert: 17.04.2002 18:30:21
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Stuttgart
Kontaktdaten:

Beitrag von BeS » 03.06.2003 19:56:06

Hallo,
du mußt in dein Programm noch

Code: Alles auswählen

using namespace std;
eintragen, dann wird der std namespace eingebunden und du kannst die Funktionen wieder "normal" ansprechen.
Deine Unterstützung für Freie Software kostet dich nur wenige Minuten: www.fsfe.org/support

Ich spreche von Freier Software!

Benutzeravatar
Bert
Beiträge: 3751
Registriert: 16.07.2002 14:06:52
Wohnort: Dresden
Kontaktdaten:

Beitrag von Bert » 03.06.2003 21:53:39

das 'using namespace std' sollte aber NICHT im header passieren, da das der Idee der namespace wiedersprechen würde. Im header also immer std::string und im body dann am Anfang das using...
Programmer: A biological machine designed to convert caffeine into code.
xmpp:bert@debianforum.de

Antworten