Neuer Fließkommatyp
-
gibt ja einige andere namen...
Float
floatT
float_t(wie wchar_t)oder, wenn du keine Windowsfunktionen in dem Abschnitt nutzt:
#undef FLOAT@thordk leider werden in der windows.h keine typedefs genutzt, nur Makros.
-
-
leider werden in der windows.h keine typedefs genutzt, nur Makros.
falsch. jedenfalls nicht in der neusten version.
-
type schrieb:
leider werden in der windows.h keine typedefs genutzt, nur Makros.
falsch. jedenfalls nicht in der neusten version.
naja, bei mir is halt alles voller Makros. wenn sie das geändert haben is das sehr gut.
-
otze schrieb:
type schrieb:
leider werden in der windows.h keine typedefs genutzt, nur Makros.
falsch. jedenfalls nicht in der neusten version.
naja, bei mir is halt alles voller Makros. wenn sie das geändert haben is das sehr gut.
Es ist immernoch "alles voller Macros", bloss werden *auch* typedefs verwendet.
@oliver67: nenn deinem Typ float_t und pack ihn in einen Namespace, zusammen mit allen Libraries von dir.
-
fl04t
-
Wieso float eigentlich selberdefinieren? Was macht das für nen Unterschied?
-
in Ogre nennen sie die selbstdefinierte Fließkommazahl Real. kannst ja auch mal in erwägung ziehn.
-
Cappo schrieb:
in Ogre nennen sie die selbstdefinierte Fließkommazahl Real. kannst ja auch mal in erwägung ziehn.
Schonmal vielen Dank für die vielen Antworten.
@otze & cappo & huestbaer
man kann natürlich statt FLOAT Real nehmen oder flOAt usw. Mir ging es um eine generelle Problemlösung, ohne diesen Umweg. Ansonsten könnte das Problem der Doppeltbelegung ja bei der nächsten wingdi.h theoretisch wieder auftauchen und die nächste Umbenennung wäre notwendig.@mikey, Warum überhaupt
Ich wollte einen eigenen haben, mit die ganzen eigenen Routinen typisiert werden. Dann sollten z.B. Rundungsfehler oder Geschwindigkeitsverluste bei double-float und umgekehrt wegfallen.Ich arbeite auch mit templates, aber bei Objekten/Klassen war mir das alles zu umständig.
Gruß
Oliver
-
Hi,
Du könntest den von Windows definierten Typ löschen mit #undef FLOAT
und dann deinen definieren.
-
Jogkurt schrieb:
Hi,
Du könntest den von Windows definierten Typ löschen mit #undef FLOAT
und dann deinen definieren.dachte ich zuerst auch, dann kommt aber sowas
...oleauto.h:363: error: declaration of C function 'HRESULT VarUI1FromR4(FLOAT, BYTE*)' conflicts with
...oleauto.h:248: error: previous declaration 'HRESULT VarUI1FromR4(float, BYTE*)' herelogisch, da mein FLOAT identisch ist mit double.
Ich habe jetzt in ole2auto.h alle FLOAT in float ersetzt, nun klappt es. Ganz wohl ist mir dabei aber nicht, eine vom Compiler bereitgestellte *.h zu ändern.
Gruß
Oliver
-
Warum bennenst du nicht einfach dein FLOAT um? Großgeschrieben Typnamen sind ja eh hässlich. (Außerdem könnte man so meinen, das FLOAT immer ein float sei. zB real wäre imho ein besserer Name).
(Und Nein, Header die der Compiler mitliefert sollte man im Normalfall nicht ändern!)
