Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Datentyp von IO-Flags

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
28.05.2012, 01:03 Uhr
Hans
Library Walker
(Operator)


Hi,

bei diesem Code hier:

C++:
  long   flags;     // Formatflags des Ausgabe-Streams

  flags = os.flags(); // Formatflags des Ausgabe-Streams
  ...
  os.setf(flags); // Format-Flags des Ausgabe-Streams wiederherstellen


liefert mir der gcc (MinGW) folgende Fehlermeldung(en?) :

Code:
$ g++ -c APC_Math.cpp
APC_Math.cpp: In function 'std::ostream& operator<<(std::ostream&, const Angle&)
':
APC_Math.cpp:430:16: error: invalid conversion from 'long int' to 'std::ios_base
::fmtflags {aka std::_Ios_Fmtflags}' [-fpermissive]
c:\programmdateien\mingw\bin\../lib/gcc/mingw32/4.6.2/include/c++/bits/ios_base.
h:580:5: error:   initializing argument 1 of 'std::ios_base::fmtflags std::ios_b
ase::setf(std::ios_base::fmtflags)' [-fpermissive]



Also welcher Datentyp muss denn dahin, wenn nicht long?

Hans


P.S. der Code stammt aus diesem Buch. Es gibt da mehrere Dateien mit dem Präfix "APC_", die zu einer Bibliothek "libAPC" gebunden werden sollen, die für die übrigen Programme benötigt wird.
--
Man muss nicht alles wissen, aber man sollte wissen, wo es steht. Zum Beispiel hier: Nachdenkseiten oder Infoportal Globalisierung.

Dieser Post wurde am 28.05.2012 um 01:04 Uhr von Hans editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
28.05.2012, 09:16 Uhr
~f.-th.
Gast


Das kommt davon, wenn man nicht registriert ist
Hab gerade schon einen Beitrag ins Nirwana ...

Hoffe mal ich deute das alles richtig.

Du hast noch alten Quelltext aus der vor-STL-Aera also vor 2000 wo STL noch nicht so weit verbreitet war.

Heute würde das wahrscheinlich so ähnlich umgesetzt:
www.trip.net/~bobwb/cppnotes/lec08.htm
Abschnitt: Formatting Information

Zu älterem Quelltext und der aktuellen Umsetzung läuft man hin und wieder in das Problem wie gross ist short, int oder long? Es gibt Bücher, die da feste Daten anführen.

Bin jetzt zu bequem um das durch zu lesen:
www.open-std.org/jtc1/sc22/wg21/docs/papers/2011/n3242.pdf
Das sollte eine der letzten Fassungen vor der Verabschiedung der C++11 sein. Also nicht die Endfassung.

Da sollte drin stehen, wenn ich mich nicht irre, das da für z.B. long nur klar ist grösser als short. Aber wie gross ist abhängig von Betriebssystem und Compiler.

In alten Quelltexten, meist aus vor dem Jahr 2000, die mir bei der Suche aufgefallen sind wurde für die "Grösse" der Flags int oder long angesetzt. Aktuell siehe den ersten Link.

Viel Spass f.-th.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
28.05.2012, 15:13 Uhr
Hans
Library Walker
(Operator)


Hi,


Zitat von ~f.-th.:
Das kommt davon, wenn man nicht registriert ist
Hab gerade schon einen Beitrag ins Nirwana ...

Och, ich hab's auch als angemeldeter schon geschaft, einen langen Text ins Nirwana zu schicken. - Also nicht ärgern deswegen.


Zitat von ~f.-th.:

Du hast noch alten Quelltext aus der vor-STL-Aera also vor 2000 wo STL noch nicht so weit verbreitet war.

Äh ja, die Quelltexte sind von 1999 und die Hinweise zum Übersetzten beziehen sich auf die Version 2.91 vom gcc unter Linux. Für Windows steht die Vorgehensweise mit Visual C++ 5.0 drin beschrieben.

Ansonsten erst mal danke für die Links, werde mal sehen, wie weit ich damit komme.

Hans
--
Man muss nicht alles wissen, aber man sollte wissen, wo es steht. Zum Beispiel hier: Nachdenkseiten oder Infoportal Globalisierung.

Dieser Post wurde am 28.05.2012 um 15:15 Uhr von Hans editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
29.05.2012, 11:45 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


zusammengefasst, statt

C++:
long flags;




C++:
std::fmtflags flags;

;
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: