Von welchem Datentyp ist __LINE__?
-
HumeSikkins schrieb:
Bearbeiten und Fortfahren" aktiviert, dann ist __LINE__ aufeinmal ein String in dem alles steht außer die aktuelle Zeilennummer
lol. sieht sehr kaputt aus. aber ist ein bug.
aber as mich enorm nevt, ist daß gcc kein literal mehr liefert, das ich in makros mit ## benutzen kann, um dateiweit eindeutige bezeichner zu bauen.
-
volkard schrieb:
aber as mich enorm nevt, ist daß gcc kein literal mehr liefert, das ich in makros mit ## benutzen kann, um dateiweit eindeutige bezeichner zu bauen.
Echt? Das ist ja wirklich unfein. Das ist ja nun wirklich keine seltene Anwendung für das Makro. Allerdings wäre ich für die Standardisierung eines __COUNT__-Makros (wie das des VC 7.0). Das eignet sich für sowas noch besser (ermöglicht auch Mehrfachanwendung in einer Zeile).
-
HumeSikkins schrieb:
volkard schrieb:
aber as mich enorm nevt, ist daß gcc kein literal mehr liefert, das ich in makros mit ## benutzen kann, um dateiweit eindeutige bezeichner zu bauen.
Echt? Das ist ja wirklich unfein. Das ist ja nun wirklich keine seltene Anwendung für das Makro. Allerdings wäre ich für die Standardisierung eines __COUNT__-Makros (wie das des VC 7.0). Das eignet sich für sowas noch besser (ermöglicht auch Mehrfachanwendung in einer Zeile).
ja. ich mag alles. immer mehr features. so ein makro kann ich leicht an jeden compiler anpassen, der mir nur etwas luft läßt. und ich schreibe gerne in die doku, daß das makro nur einmal pro zeile genommen werden darf. also __LINE__ als literal ist gut- __COUNT__ als literal ist perfekt. __LINE__ als int ist kacke. nutzlos. gerademal für assert was wert. und ich sehe gerade keine alternative auf gcc. hab ich was übersehen (ist nicht dringend, ich brauche es erst in 8-10 monaten)? was ich aber am allerliebsten wüßte, ist, weshalb die gcc-leute das zu nem int machten.
-
Was macht denn __COUNT__?
Was macht ihr denn mit __LINE__? Ich finde die genaue Zeilennummer bei einem Fehler nicht so wichtig.
-
Was macht ihr denn mit __LINE__?
Für assert und exceptions...
-
.... schrieb:
Was macht ihr denn mit __LINE__?
Für assert und exceptions...
das dass der fehlerbehebung dient, war mir schon klar
aber den für mich entscheidenen teil der frage hast du ausgelassen.
-
-
DrGreenthumb schrieb:
Was macht denn __COUNT__?
Was macht ihr denn mit __LINE__? Ich finde die genaue Zeilennummer bei einem Fehler nicht so wichtig.globale objekte. es gibt ja endlich bei gcc und msvc sowas wie __aligned__ und man kann beruhigt globale objekte wie cout sich auch global erstellen lassen. (ja, ich weiß, die initialisierungsreihenfolge verscheidener übersetungseinheiten beahchten, also cout nicht global einfach anlegen, sondern nur dessen speicher und mit replacement-new und mit herkömmlichen init-objekten initialisieren. aber ich spare den new-aufruf und vielleicht sogar das einlinken von malloc()). bei solchen sachen fehlt mir so ein unique literal immer wieder. konkret fällt mir keins ein. es ging immer nur um einmalige wenige dutzend takte statt ein paar zehntausend. eine so objekt hat übrigens phillips von mir übernommen für settop-boxes. und das obwohl embeded systems traditionell und aus überzeugung in c gebaut werden und ich nur c++ kann.
ups, da bin ich wieder ins schwafeln gekommen. ich meine nur, daß ich immer PUSH_BLA beriben können mag, ohde darauf zu achten, ob schonmale einer PUSH_BLA geshrieben hat.
-
säufer
-
volkard schrieb:
DrGreenthumb schrieb:
Was macht denn __COUNT__?
Was macht ihr denn mit __LINE__? Ich finde die genaue Zeilennummer bei einem Fehler nicht so wichtig.globale objekte.[...] ich meine nur, daß ich immer PUSH_BLA beriben können mag, ohde darauf zu achten, ob schonmale einer PUSH_BLA geshrieben hat.
Ah, ok... verstehe ich zwar, aber wusste nicht, dass man solche Probleme auch mit C++ haben kann.
Ist ja auch nicht wirklich dass, wofür __LINE__ gedacht war