Ja, sehe ich genauso ... NO_RVALUE_REFERENCES, STATIC_ASSERT(false, "C++11 ftw!", Y_u_no_Cxx11_8C) ... :(Aramis hat geschrieben:Nun, ich wuerde einfach praeventiv fuer die naechsten 5 Jahre > > schreiben. Man will ja als braves kleines Programmierlein nicht anecken.
Jammer-Thread
- CodingCat
- Establishment
- Beiträge: 1857
- Registriert: 02.03.2009, 21:25
- Wohnort: Student @ KIT
- Kontaktdaten:
Re: Jammer-Thread
alphanew.net (last updated 2011-07-02) | auf Twitter | Source Code: breeze 2 | lean C++ library | D3D Effects Lite
Re: Jammer-Thread
MAX_PATH ist sowas von 80er, da kann man sich stattdessen auch direkt eine Vokuhila-Frisur wachsen lassen.
- Krishty
- Establishment
- Beiträge: 8343
- Registriert: 26.02.2009, 11:18
- Benutzertext: state is the enemy
- Kontaktdaten:
Re: Jammer-Thread
I lol'd; so true.
————
Audioprogrammierung ist immer wieder ein Krampf. Zum einen ist sie asynchron – aber nicht auf die GPU-Art und -Weise, dass man immer rüberschaufelt und die rendert dann; sondern man muss richtig synchronisieren, unterbrechen, etc. – und zum anderen ist dieses Hintereinanderschalten von Filtern und Stufen der Horror. Insbesondere, wenn das – wie bei XAudio2 – pervers über Prioritätszahlen geschieht statt durch Funktionsaufrufe.
————
Audioprogrammierung ist immer wieder ein Krampf. Zum einen ist sie asynchron – aber nicht auf die GPU-Art und -Weise, dass man immer rüberschaufelt und die rendert dann; sondern man muss richtig synchronisieren, unterbrechen, etc. – und zum anderen ist dieses Hintereinanderschalten von Filtern und Stufen der Horror. Insbesondere, wenn das – wie bei XAudio2 – pervers über Prioritätszahlen geschieht statt durch Funktionsaufrufe.
- Krishty
- Establishment
- Beiträge: 8343
- Registriert: 26.02.2009, 11:18
- Benutzertext: state is the enemy
- Kontaktdaten:
Re: Jammer-Thread
Deadlock in XAudio2SourceVoice::DestroyVoice(). Wenn man mit dem Rest von DirectX hantiert, weiß man erstmal, wie gut es einem mit Direct3D geht.
Und Google ist scheißerer denn je – in der Suchleiste taucht oft kein Text auf; Vorwärts und Zurück zeigen mir dieselbe Ergebnisseite an; blabla. Echt toll, wie sie die Suchmaschine in den letzten fünf Jahren systsematisch kaputtgemacht haben.
Edit: Error: this method is not valid for mastering voices.
WTF?! Warum packt ihr sie dann in die Schnittstelle rein?!
Zum besseren Verständnis: Die _haben_ Mastering Voices bereits in eine _eigene_ Schnittstelle verfrachtet weil sie sich so von den anderen unterscheiden … m[
Edit 2: Nach fünf Minuten endlich Unhandled exception at 0x00e5c3be: 0xC0000005: Access violation reading location 0xdeadd055. Na dann war es ja doch kein Deadlock. Mann, bin ich beruhigt!
Edit 3:
Und Google ist scheißerer denn je – in der Suchleiste taucht oft kein Text auf; Vorwärts und Zurück zeigen mir dieselbe Ergebnisseite an; blabla. Echt toll, wie sie die Suchmaschine in den letzten fünf Jahren systsematisch kaputtgemacht haben.
Edit: Error: this method is not valid for mastering voices.
WTF?! Warum packt ihr sie dann in die Schnittstelle rein?!
Zum besseren Verständnis: Die _haben_ Mastering Voices bereits in eine _eigene_ Schnittstelle verfrachtet weil sie sich so von den anderen unterscheiden … m[
Edit 2: Nach fünf Minuten endlich Unhandled exception at 0x00e5c3be: 0xC0000005: Access violation reading location 0xdeadd055. Na dann war es ja doch kein Deadlock. Mann, bin ich beruhigt!
Edit 3:
Eine Handvoll Milisekunden … eine Handvoll Minuten … wo ist da der Unterschied. Klar; ist mit an Sicherheit grenzender Wahrscheinlichkeit meine Schuld. Was erdreiste ich mich auch, zu erwarten, dass man mich darauf hinweist, wenn ich die API missbrauche. Also, wie kriege ich den Thread jetzt idle? Alle Objekte außer der Mastering Voice sind gestoppt, geflusht und zerstört …http://msdn.microsoft.com/en-us/library/microsoft.directx_sdk.ixaudio2voice.ixaudio2voice.destroyvoice hat geschrieben:DestroyVoice waits for the audio processing thread to be idle, so it can take a little while (typically no more than a couple of milliseconds).
- CodingCat
- Establishment
- Beiträge: 1857
- Registriert: 02.03.2009, 21:25
- Wohnort: Student @ KIT
- Kontaktdaten:
Re: Jammer-Thread
Code: Alles auswählen
#include <cstddef>
template <class Size>
struct uint_test
{
static_assert( static_cast<Size>(-1) > static_cast<Size>(0), "VC10, Y U NO TEMPLATES! :-((" ); // error C2338: VC10, Y U NO TEMPLATES! :-((
};
int main()
{
uint_test<size_t> abcd;
return 0;
}
Zuletzt geändert von CodingCat am 21.03.2012, 23:14, insgesamt 1-mal geändert.
alphanew.net (last updated 2011-07-02) | auf Twitter | Source Code: breeze 2 | lean C++ library | D3D Effects Lite
- CodingCat
- Establishment
- Beiträge: 1857
- Registriert: 02.03.2009, 21:25
- Wohnort: Student @ KIT
- Kontaktdaten:
Re: Jammer-Thread
Was zur Hölle tut Thunderbird, dass Fraps meint, eine Framerate darübermalen zu müssen?
alphanew.net (last updated 2011-07-02) | auf Twitter | Source Code: breeze 2 | lean C++ library | D3D Effects Lite
Re: Jammer-Thread
Direct2D. Kriegt man wohl weg, indem man gfx.direct2d.disabled auf true stellt. Oder ein Update von Fraps (siehe hier).
Re: Jammer-Thread
Für einen der noch nie static_assert benutzt hat: Was genau passiert da und warum ist es falsch?
Lieber dumm fragen, als dumm bleiben!
https://jonathank.de/games/
https://jonathank.de/games/
- CodingCat
- Establishment
- Beiträge: 1857
- Registriert: 02.03.2009, 21:25
- Wohnort: Student @ KIT
- Kontaktdaten:
Re: Jammer-Thread
static_assert() ist ein assert(), welches bereits zur Compile-Zeit ausgewertet werden muss. Der Compiler stellt sicher, dass der geprüfte Ausdruck zur Compile-Zeit auswertbar und wahr ist. So lässt sich beispielsweise wie oben testen, ob ein bestimmer Typ unsigned ist. -1 ist für unsigned Integers über Kongruenz stets als der größte durch diesen Integer-Typen darstellbare Wert definiert, somit muss static_cast<UInt>(-1) > static_cast<UInt>(0) gelten. Leider versäumt es der Visual C++ Compiler an dieser Stelle jedoch, den Cast korrekt auszuwerten.
Ist die Bedingung eines static_asserts nicht erfüllt, so gibt der Compiler eine Fehlermeldung aus, die den im zweiten Argument gegebenen Fehlertext enthält.
Ist die Bedingung eines static_asserts nicht erfüllt, so gibt der Compiler eine Fehlermeldung aus, die den im zweiten Argument gegebenen Fehlertext enthält.
alphanew.net (last updated 2011-07-02) | auf Twitter | Source Code: breeze 2 | lean C++ library | D3D Effects Lite
- Aramis
- Moderator
- Beiträge: 1458
- Registriert: 25.02.2009, 19:50
- Echter Name: Alexander Gessler
- Wohnort: 2016
- Kontaktdaten:
Re: Jammer-Thread
Moment, aber das gilt auch nur wenn die Architektur die Komplementdarstellung von vorzeichenbehafteten Integern nutzt.
- CodingCat
- Establishment
- Beiträge: 1857
- Registriert: 02.03.2009, 21:25
- Wohnort: Student @ KIT
- Kontaktdaten:
Re: Jammer-Thread
Nein, immer.§4.7.2 hat geschrieben:If the destination type is unsigned, the resulting value is the least unsigned integer congruent to the source
integer (modulo 2^n where n is the number of bits used to represent the unsigned type). [ Note: In a two’s
complement representation, this conversion is conceptual and there is no change in the bit pattern (if there
is no truncation). —end note ]
alphanew.net (last updated 2011-07-02) | auf Twitter | Source Code: breeze 2 | lean C++ library | D3D Effects Lite
- Aramis
- Moderator
- Beiträge: 1458
- Registriert: 25.02.2009, 19:50
- Echter Name: Alexander Gessler
- Wohnort: 2016
- Kontaktdaten:
Re: Jammer-Thread
Gut zu wissen, danke :-)
- Krishty
- Establishment
- Beiträge: 8343
- Registriert: 26.02.2009, 11:18
- Benutzertext: state is the enemy
- Kontaktdaten:
Re: Jammer-Thread
Das ist übrigens auch der Grund, warum Schleifen mit signed int als Zählertyp u.U. besser optimierbar sind als Schleifen mit unsigned int als Zählertyp – bei vorzeichenlosen Typen sind Über- und Unterläufe wohldefiniert; die Invariante x + 1 > x gilt dann nicht mehr und die Schleife muss potenziell unendlich oft ausgeführt werden. Auch (x * y / y) kann mit unsigned int aus diesem Grund u.U. nicht zu (x) optimiert werden.
- Krishty
- Establishment
- Beiträge: 8343
- Registriert: 26.02.2009, 11:18
- Benutzertext: state is the enemy
- Kontaktdaten:
Re: Jammer-Thread
if(__readeflags() & 1) { // fatal error C1001: An internal error has occurred in the compiler.
// (compiler file 'f:\dd\vctools\compiler\utc\src\p2\main.c[0x57E6957B:0x00000020]', line 183)
// To work around this problem, try simplifying or changing the program near the locations listed above.
Funktionieren ja toll, eure Intrinsics
// (compiler file 'f:\dd\vctools\compiler\utc\src\p2\main.c[0x57E6957B:0x00000020]', line 183)
// To work around this problem, try simplifying or changing the program near the locations listed above.
Funktionieren ja toll, eure Intrinsics
- Krishty
- Establishment
- Beiträge: 8343
- Registriert: 26.02.2009, 11:18
- Benutzertext: state is the enemy
- Kontaktdaten:
Re: Jammer-Thread
Vector3D const & v
);
macht mir
template <
typename Element,
Size arraysSize
> Size lengthOf(
Element const (&)[arraysSize]
) {
return arraysSize;
}
kaputt, weil der Compiler bei der Namensauflösung Template-Funktionen benachteiligt. Bei Vektoren ist es ja nur halb so schlimm, weil man da mathematisch korrekt von Betrag statt Länge sprechen und ich das entsprechend zu absoluteOf() ändern muss. Aber sobald ich Strecken einführe, wird wieder alles kaputtgehen … Ich glaube, dass ich mal wusste, warum, und dass ich das dann auch total rational fand. Jetzt gerade ist es mir aber entfallen … ehrlich jetzt: Überladungen verbieten? Das ist doch C-Level … und darum: absolute Rage!
SFINAE gilt immer nur, wenn man es nicht braucht …
Ups, das war garnicht die Überladung … eher ADL, wenn die in unterschiedlichen namespaces liegen … danke, Cat. Daraus ergibt sich dann auch die Lösung: Das lengthOf aus dem äußeren namespace via using ins innere importieren.
Re: Jammer-Thread
Hab grad gemerkt, dass ich dieses Jahr nicht zur Devmania kann, wegen des Termins.
Vielleicht nächstes Jahr.
Thoran
Vielleicht nächstes Jahr.
Thoran
Wer Rechtschreibfehler findet, darf diese gerne behalten.
Mein Entwicklertagebuch
Aktuelle Projekte: Universum: Domination (ehemalig AlphaOmega),Universum: Sternenjäger, PixelWars: Highscore-based Top-Down-Spaceshooter
Spieleengine Unreal 5
Mein Entwicklertagebuch
Aktuelle Projekte: Universum: Domination (ehemalig AlphaOmega),Universum: Sternenjäger, PixelWars: Highscore-based Top-Down-Spaceshooter
Spieleengine Unreal 5
- Schrompf
- Moderator
- Beiträge: 5147
- Registriert: 25.02.2009, 23:44
- Benutzertext: Lernt nur selten dazu
- Echter Name: Thomas
- Wohnort: Dresden
- Kontaktdaten:
Re: Jammer-Thread
Maaaaaaannnn... GIMP ist doch der reine Hass für einen Programmierer.
"Entferne Alphakanal" bedeutet nicht etwa, den Alphakanal zu entfernen, sondern auch, alle Farbwerte mit irgendner wahlfreien Farbe zu überblenden. "Alphakanal fixieren" bedeutet durchaus "Alphakanal fixieren", aber nur bei bestimmten Werkzeugen und nicht etwa auch beim Ebenen-Vereinen oder Einfügen einer Auswahl. Es hat sich als absolut unmöglich herausgestellt, die Farbwerte einer NormalMap mit den Alpha-Werten einer normalen Grafik zu vereinen. Jetzt schreib ich mir ein gottverdammtes Tool dafür!
[edit] Hab ihn doch überrumpelt! Zum Glück gibt es als Bildeffekt auch die Faltungsmatrix, die man auch mit einem Bias versehen und nur auf bestimmte Kanäle beschränken kann. Nimm das, Workflow!
"Entferne Alphakanal" bedeutet nicht etwa, den Alphakanal zu entfernen, sondern auch, alle Farbwerte mit irgendner wahlfreien Farbe zu überblenden. "Alphakanal fixieren" bedeutet durchaus "Alphakanal fixieren", aber nur bei bestimmten Werkzeugen und nicht etwa auch beim Ebenen-Vereinen oder Einfügen einer Auswahl. Es hat sich als absolut unmöglich herausgestellt, die Farbwerte einer NormalMap mit den Alpha-Werten einer normalen Grafik zu vereinen. Jetzt schreib ich mir ein gottverdammtes Tool dafür!
[edit] Hab ihn doch überrumpelt! Zum Glück gibt es als Bildeffekt auch die Faltungsmatrix, die man auch mit einem Bias versehen und nur auf bestimmte Kanäle beschränken kann. Nimm das, Workflow!
Früher mal Dreamworlds. Früher mal Open Asset Import Library. Heutzutage nur noch so rumwursteln.
-
- Establishment
- Beiträge: 130
- Registriert: 01.03.2009, 14:21
- Alter Benutzername: frittentuete
Re: Jammer-Thread
Warum nicht eine neue Ebenenmaske erstellen, die den Inhalt des Alphakanals bekommt?Schrompf hat geschrieben:Maaaaaaannnn... GIMP ist doch der reine Hass für einen Programmierer.
"Entferne Alphakanal" bedeutet nicht etwa, den Alphakanal zu entfernen, sondern auch, alle Farbwerte mit irgendner wahlfreien Farbe zu überblenden. "Alphakanal fixieren" bedeutet durchaus "Alphakanal fixieren", aber nur bei bestimmten Werkzeugen und nicht etwa auch beim Ebenen-Vereinen oder Einfügen einer Auswahl. Es hat sich als absolut unmöglich herausgestellt, die Farbwerte einer NormalMap mit den Alpha-Werten einer normalen Grafik zu vereinen. Jetzt schreib ich mir ein gottverdammtes Tool dafür!
[edit] Hab ihn doch überrumpelt! Zum Glück gibt es als Bildeffekt auch die Faltungsmatrix, die man auch mit einem Bias versehen und nur auf bestimmte Kanäle beschränken kann. Nimm das, Workflow!
damit kannst du dann alles machen, was du willst, unter anderem einer anderen Ebene diese Maske übergeben. :!:
sry, dass ich nix zu meckern hab. ;)
Re: Jammer-Thread
Kriiiieeeeshty, Dirk jammert nich!!!
Ich hasse PHP... sehr gewöhnungsbedürftig!
- CodingCat
- Establishment
- Beiträge: 1857
- Registriert: 02.03.2009, 21:25
- Wohnort: Student @ KIT
- Kontaktdaten:
Re: Jammer-Thread
Von wegen gewöhnungsbedürftig - Schrottsprache ist noch geschönt.
--
Es ist SO schwer eine einigermaßen ansprechende Umgebung zu generieren. Besonders, wenn alles SO flach aussieht, keine Schatten, keine Raumwahrnehmung.
--
Es ist SO schwer eine einigermaßen ansprechende Umgebung zu generieren. Besonders, wenn alles SO flach aussieht, keine Schatten, keine Raumwahrnehmung.
alphanew.net (last updated 2011-07-02) | auf Twitter | Source Code: breeze 2 | lean C++ library | D3D Effects Lite
- Artificial Mind
- Establishment
- Beiträge: 802
- Registriert: 17.12.2007, 17:51
- Wohnort: Aachen
Re: Jammer-Thread
Ogre und Mogre und MOIS und MyGUI x64, anscheinend brauchte in deren Community _NIEMAND_ x64-Dlls. Sämtliche Linker/Compilerpaths falsch, zlib-Eintrag in cmake fehlte. Inkremental build funktionierte angeblich auch nicht. 15h lang builden und konfigurieren, herrlich.
Re: Jammer-Thread
Mein Herr, sie haben noch nie versucht, OpenSG zu kompilieren. Da wäre man über 15 Stunden noch froh.Artificial Mind hat geschrieben:Ogre und Mogre und MOIS und MyGUI x64, anscheinend brauchte in deren Community _NIEMAND_ x64-Dlls. Sämtliche Linker/Compilerpaths falsch, zlib-Eintrag in cmake fehlte. Inkremental build funktionierte angeblich auch nicht. 15h lang builden und konfigurieren, herrlich.
- Krishty
- Establishment
- Beiträge: 8343
- Registriert: 26.02.2009, 11:18
- Benutzertext: state is the enemy
- Kontaktdaten:
Re: Jammer-Thread
Gute float-Tests auf NaN, Unendlichkeit usw. sind echt schwer zu kriegen. Entweder wird teuer die FPU zum Vergleichen genutzt (bei den meisten Makros), oder es wird eine kostspielige Konvertierung zu double durchgeführt (eingebaute isnan-Routinen) oder die Funktion ist zwar super optimiert, steckt aber hinter einem indirekten, nicht inline-baren Funktionsaufruf (Microsoft-CRT). Und dauernd munkeln Leute was davon, dass die Hardware den Vergleich superschnell durchführen könnte; in Aktion gesehen habe ich das aber noch nirgends.
Noch dazu hasse ich doppelte Negation in Programmen: Funktionen sollen nicht testen, ob etwas keine Zahl ist, sondern ob es eine ist. Dann heißt es statt if(!isNaN(x)) („falls x nicht keine Zahl ist“) nämlich if(isAN(x)) („falls x eine Zahl ist“).
Das lässt sich auf Unendlichkeit, die ja eigentlich die Negation von Endlichkeit ist, auch noch anwenden. Allerdings muss man sich da auf Grundlage von etwas anderem entscheiden: Auf Endlichkeit testen unterscheidet sich von auf-Unendlichkeit-testen insofern, als dass man mit dem ersten auch direkt NaNs aussortiert, mit dem zweiten nicht. Oder doch nur, falls man erstere Funktion isFiniteNumber() statt isFinite() nennt? Ich weiß es nicht. Genug Programmierphilosophie für heute.
Noch dazu hasse ich doppelte Negation in Programmen: Funktionen sollen nicht testen, ob etwas keine Zahl ist, sondern ob es eine ist. Dann heißt es statt if(!isNaN(x)) („falls x nicht keine Zahl ist“) nämlich if(isAN(x)) („falls x eine Zahl ist“).
Das lässt sich auf Unendlichkeit, die ja eigentlich die Negation von Endlichkeit ist, auch noch anwenden. Allerdings muss man sich da auf Grundlage von etwas anderem entscheiden: Auf Endlichkeit testen unterscheidet sich von auf-Unendlichkeit-testen insofern, als dass man mit dem ersten auch direkt NaNs aussortiert, mit dem zweiten nicht. Oder doch nur, falls man erstere Funktion isFiniteNumber() statt isFinite() nennt? Ich weiß es nicht. Genug Programmierphilosophie für heute.
-
- Establishment
- Beiträge: 467
- Registriert: 18.04.2002, 15:31
Re: Jammer-Thread
Ich vermute, ob NaN eine endliche Nicht-Zahl oder eine unendlich Nicht-Zahl ist, ist undefiniert.Krishty hat geschrieben:Auf Endlichkeit testen unterscheidet sich von auf-Unendlichkeit-testen insofern, als dass man mit dem ersten auch direkt NaNs aussortiert, mit dem zweiten nicht. Oder doch nur, falls man erstere Funktion isFiniteNumber() statt isFinite() nennt? Ich weiß es nicht. Genug Programmierphilosophie für heute.
"Mir ist auch klar, dass der Tag, an dem ZFX und Developia zusammengehen werden der selbe Tag sein wird, an dem DirectGL rauskommt."
DirectGL, endlich ist es da :)
"According to the C++ standard, it's "undefined". That's a technical term that means, in theory, anything can happen: the program can crash, or keep running but generate garbage results, or send Bjarne Stroustrup an e-mail saying how ugly you are and how funny your mother dresses you." :shock:[/size]
DirectGL, endlich ist es da :)
"According to the C++ standard, it's "undefined". That's a technical term that means, in theory, anything can happen: the program can crash, or keep running but generate garbage results, or send Bjarne Stroustrup an e-mail saying how ugly you are and how funny your mother dresses you." :shock:[/size]
-
- Establishment
- Beiträge: 324
- Registriert: 08.04.2003, 18:09
- Alter Benutzername: Enrico_
- Echter Name: Enrico
- Wohnort: San Diego
- Kontaktdaten:
Re: Jammer-Thread
Das ist übrigens nur bei uns so. Die japanische Logik ist standardmäßig negativ, die prüfen seeehr viel mit if(!.... Sehr beliebt auch if(!something != false) :?Krishty hat geschrieben:Noch dazu hasse ich doppelte Negation in Programmen: Funktionen sollen nicht testen, ob etwas keine Zahl ist, sondern ob es eine ist. Dann heißt es statt if(!isNaN(x)) („falls x nicht keine Zahl ist“) nämlich if(isAN(x)) („falls x eine Zahl ist“).
Ein Hoch auf uns Männer... Auf die Frau, die uns HAT ( oder hat, und nicht weiß, dass sie uns hat ) ...auf die Idiotinnen ... besser gesagt VOLLPFOSTINNEN ... die uns hatten und uns verloren haben ... und auf die GLÜCKLICHEN, die das Vergnügen & Glück haben werden uns kennenzulernen!
Re: Jammer-Thread
Mich würde mal interessieren, wie so ein NaN oder Unedlichkeitstest (positiv oder negativ) auf Bit-Ebene aussieht...
Also, wie werden die Binär dargestellt?
@Jammern
Ich bin mit der Gesamtsituation unzufrieden..
[Edit]
Ah, hab gerade mir meine Frage selber beantwortet:
http://de.wikipedia.org/wiki/NaN
Also, wie werden die Binär dargestellt?
@Jammern
Ich bin mit der Gesamtsituation unzufrieden..
[Edit]
Ah, hab gerade mir meine Frage selber beantwortet:
http://de.wikipedia.org/wiki/NaN
- CodingCat
- Establishment
- Beiträge: 1857
- Registriert: 02.03.2009, 21:25
- Wohnort: Student @ KIT
- Kontaktdaten:
Re: Jammer-Thread
Oh the merits of being close to the metal ...
Code: Alles auswählen
id = lean::push_sorted(m_identifiers, name.to<utf8_string>()) - m_identifiers.begin(); // id == undefined
alphanew.net (last updated 2011-07-02) | auf Twitter | Source Code: breeze 2 | lean C++ library | D3D Effects Lite
- Krishty
- Establishment
- Beiträge: 8343
- Registriert: 26.02.2009, 11:18
- Benutzertext: state is the enemy
- Kontaktdaten:
Re: Jammer-Thread
Ja, denke ich auch. Wahrscheinlich sollte man nach dem Anwendungszweck gehen – und meist wird man die Funktion brauchen um herauszufinden, ob eine Zahl einen Wert hat, mit dem man rechnen kann. Wenn man speziell an der Unendlichkeit interessiert ist, will man wahrscheinlich auch gleich wissen, ob positiv oder negativ.kaiserludi hat geschrieben:Ich vermute, ob NaN eine endliche Nicht-Zahl oder eine unendlich Nicht-Zahl ist, ist undefiniert.
Eeeeeeeewwwww!glassbear hat geschrieben:Das ist übrigens nur bei uns so. Die japanische Logik ist standardmäßig negativ, die prüfen seeehr viel mit if(!.... Sehr beliebt auch if(!something != false) :?
Jopp … hier sind ein paar Tests; Microsofts CRT führt sie so ähnlich durch:joggel hat geschrieben:Mich würde mal interessieren, wie so ein NaN oder Unedlichkeitstest (positiv oder negativ) auf Bit-Ebene aussieht...
Also, wie werden die Binär dargestellt?
[…]
[Edit]
Ah, hab gerade mir meine Frage selber beantwortet:
http://de.wikipedia.org/wiki/NaN
Code: Alles auswählen
bool isNaN(float const & value) { // by reference: Visual C++' code generation is buggy with local floats
// Fast with Visual C++; with GCC, you may want to use 'union' instead of 'reinterpret_cast' because of strict aliasing rules.
return 0x7F800000 < (reinterpret_cast<unsigned int const &>(value) & 0x7FFFFFFF);
}
bool isFiniteNumber(float const & value) { // by reference: Visual C++' code generation is buggy with local floats
// Fast with Visual C++; with GCC, you may want to use 'union' instead of 'reinterpret_cast' because of strict aliasing rules.
return 0x7F800000 > (reinterpret_cast<unsigned int const &>(value) & 0x7FFFFFFF);
}
// isInfinite(): Dasselbe mit ==
joggel hat geschrieben:Kriiiieeeeshty, Dirk jammert nich!!!
Ich bin weder die Mutter, bei der du petzt, noch der Vater, vor dem du dich fürchtest ;)joggel hat geschrieben:@Jammern
Ich bin mit der Gesamtsituation unzufrieden..
-
- Establishment
- Beiträge: 467
- Registriert: 18.04.2002, 15:31
Re: Jammer-Thread
Aber dafür der OP :PKrishty hat geschrieben:Ich bin weder die Mutter, bei der du petzt, noch der Vater, vor dem du dich fürchtest ;)
"Mir ist auch klar, dass der Tag, an dem ZFX und Developia zusammengehen werden der selbe Tag sein wird, an dem DirectGL rauskommt."
DirectGL, endlich ist es da :)
"According to the C++ standard, it's "undefined". That's a technical term that means, in theory, anything can happen: the program can crash, or keep running but generate garbage results, or send Bjarne Stroustrup an e-mail saying how ugly you are and how funny your mother dresses you." :shock:[/size]
DirectGL, endlich ist es da :)
"According to the C++ standard, it's "undefined". That's a technical term that means, in theory, anything can happen: the program can crash, or keep running but generate garbage results, or send Bjarne Stroustrup an e-mail saying how ugly you are and how funny your mother dresses you." :shock:[/size]
- Chromanoid
- Moderator
- Beiträge: 4285
- Registriert: 16.10.2002, 19:39
- Echter Name: Christian Kulenkampff
- Wohnort: Lüneburg
Re: Jammer-Thread
Bei Naruto laufen momentan echt die schlechtesten Filler überhaupt :evil: