Jammer-Thread

Hier kann über allgemeine Themen diskutiert werden, die sonst in kein Forum passen.
Insbesondere über Szene, Games, Kultur, Weltgeschehen, Persönliches, Recht, Hard- und Software.
Benutzeravatar
marcgfx
Establishment
Beiträge: 2062
Registriert: 18.10.2010, 23:26

Re: Jammer-Thread

Beitrag von marcgfx »

sound abschalten: http://www.fanhow.com/knowhow:Disable_S ... e_81046677

jetzt muss ich auch noch jammern? ähm, hab immer zu wenig zeit!
Benutzeravatar
Chromanoid
Moderator
Beiträge: 4262
Registriert: 16.10.2002, 19:39
Echter Name: Christian Kulenkampff
Wohnort: Lüneburg

Re: Jammer-Thread

Beitrag von Chromanoid »

mmh soweit ich das verstehe gehts ums muten von sound einzelner tabs/fenster (programmatisch)...
Benutzeravatar
CodingCat
Establishment
Beiträge: 1857
Registriert: 02.03.2009, 21:25
Wohnort: Student @ KIT
Kontaktdaten:

Re: Jammer-Thread

Beitrag von CodingCat »

Krishty hat geschrieben:Ich lese das so: new char [] und new unsigned char [] fragen bei Allokationsfunktionen so viel Puffer zusätzlich zum eigenen Speicher an, dass jeder irgendwo im Programm definierte Typ, der in die Anzahl chars passt, die der Programmierer anfordert, in diesem neuen Array ausgerichtet platziert werden kann (und das Ergebnis dieses Ausdrucks ist dann auch die ausgerichtete Adresse). Das bedeutet wiederum: C++0x unterstützt bei new Ausrichtung – allerdings nur, wenn man den Speicher per new char[sizeof(T)] anfordert und dann ein Placement new mit dem eigentlichen Typ darauf ausführt (new (new char [sizeof(T)]) T();). Ich könnte mich aber auch irren – ist schon früh – oder in Wunschbestätigung dafür verfallen, dass ich außer Placement new schon seit Monaten mit C++’ new fertig bin.
Die Frage ist, worauf sich strictest fundamental Alignment bezieht, ich interpretiere den Draft eher so, dass ein manuell ausgerichtetes Objekt bereits over-aligned und folglich nicht mehr durch diese Reglung abgedeckt ist. Allerdings nur flüchtig überflogen.
Krishty hat geschrieben:Mal total ins Blaue geraten: Imo ist die Größe dabei nicht ausschlaggebend – wenn ein Objekt ausgerichtet deklariert ist, kann es nur an bestimmten Adressen instanziert werden. Das bedeutet: Falls ein Array-Element kleiner ist als das kleinste Vielfache seiner Ausrichtung, hat der Compiler überhaupt keine andere Möglichkeit, als zwischen den Elementen zu padden. Das muss jedoch nicht in der Klasse über ihre Größe geschehen, sondern kann auch bei der Array-Allokation geschehen. Gleichzeitig wird jede Zeigerarithmetik diesen Typ betreffend mit dem aufgerundeten Wert arbeiten, d.h (toObj + 1) != ((char*)toObj + sizeof(*toObj)). So würde ich es jedenfalls an Stelle der Compiler-Entwickler machen, wenn ich Klassen-Padding auf Teufel-komm-raus vermeiden wollte.
Momentan ist Ausrichtung aber eh noch ein Compiler-spezifisches Feature und damit ist alles, was du in diese Richtung schreibst, höchstwahrscheinlich unbeständig.
Ja das ist letztlich auch nicht so entscheidend, entscheidend wäre, dass die an operator new[] übergebene Größe OHNE den Array-Overhead immer ein Vielfaches des Alginements WÄRE. Wenn new[] tatsächlich korrekt mit manuell ausgerichteten Typen umgehen sollte, so wie es Visual C++ AFAIK im Moment durch echtes Padding der Struktur/Klasse akzeptabel umsetzt, dann lässt sich in diesem Fall die nicht-ausgerichtete Größe inklusive Overhead mit minimalen Rechenaufwand aufrunden, sofern nötig, und mit einer simplen Subtraktion ein um ein entsprechendes Offset UNTER die Ausrichtungsgrenze gesetzter Zeiger zurückgeben.
Krishty hat geschrieben:Die Idee, über die in Placement new [] übergebene Größe die Ausrichtung zu bestimmen, ist gut. Ich frage mich nur: Kommt dort die Array-Größe mit oder ohne Unkosten zum Speichern der Array-Größe an? Dasselbe wie in nicht-Placement new [] oder ein „bereinigter“ Wert?
operator new[] erhält die Größe inklusive Overhead. Wie es mit Placement aussieht weiß ich nicht, Placement array new habe ich wirklich noch nie gebraucht.

Ich habe die Array-Allokationsoperatoren dennoch kurzerhand für ausgerichtete Typen einfach entfernt, ich persönlich nutze praktisch nie dynamisch allozierte Arrays mit Default-Construction, wenn, dann doch eher uninitialisierter Speicher mit Einzelinitialisierung durch Placement new. Wozu also die Speicher- und Instruktionsverschwendung einer weiteren Ebene von Ausrichtungslogik...
alphanew.net (last updated 2011-07-02) | auf Twitter | Source Code: breeze 2 | lean C++ library | D3D Effects Lite
Benutzeravatar
Krishty
Establishment
Beiträge: 8267
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Jammer-Thread

Beitrag von Krishty »

Zwölf Tage läuft mein Rechner problemlos durch (nachts immer im Standby-Modus). Aber heute morgen, wo ich ihn tatsächlich mal brauche (lies: zwingend benötige) hole ich ihn aus dem Schlaf und habe kein Netzwerk. Ich gehe auf „Reparieren“ und sehe noch im Task-Manager, wie sich das System mit 100 MiB/s vollsaugt, die keinem Prozess zugeordnet sind. Irgendwo bei 7 GiB hüpft dann die Maus rum und verharrt, das System reagiert auf keine Eingaben mehr, der Bildschirm wird übersäht von Fehlermeldungen von TrueCrypt bis zum Media Player (die meisten ohne leserlichen Text) und nichts geht mehr. Neustart dauerte eine Viertelstunde. Jetzt sind 20 offene Tabs verloren, ein paar ungespeicherte Dokumente, alle Downloads kaputt und der Media Player motzt wegen defekter Datenbanken rum. Und die Bahn streikt auch noch. Das passiert, wenn man sich auf Technik verlässt. Jeden Tag was Neues, Adam.
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
Schrompf
Moderator
Beiträge: 4878
Registriert: 25.02.2009, 23:44
Benutzertext: Lernt nur selten dazu
Echter Name: Thomas Ziegenhagen
Wohnort: Dresden
Kontaktdaten:

Re: Jammer-Thread

Beitrag von Schrompf »

Auf die Gefahr hin, wie ein Arschloch zu klingen: Du *lernst* aber auch nicht, oder? Wir hatten das Thema doch schon einige Male?
Früher mal Dreamworlds. Früher mal Open Asset Import Library. Heutzutage nur noch so rumwursteln.
Despotist
Establishment
Beiträge: 394
Registriert: 19.02.2008, 16:33

Re: Jammer-Thread

Beitrag von Despotist »

Das sehe ich auch so. Gerade du Krishty der ständig über die Unzulänglichkeiten jeglicher Hard- und Software jammert solltest dir doch solcher Möglichkeiten bewußt sein. Irgendwie scheint dein Nutzerverhalten nicht an deine Paranoia angepasst zu sein ;).
Benutzeravatar
Krishty
Establishment
Beiträge: 8267
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Jammer-Thread

Beitrag von Krishty »

So schlimm wie früher, dass man jeden Tag rebooten muss, ist es heute zwar nicht mehr, aber trotzdem: Wir haben die zweite Dekade des verdammten dritten Jahrtausends. Windows 95 ist 16 Jahre her. Wenn ich schon keine bekackten fliegenden Autos oder verfluchten Jetpacks haben darf, kann ich von einer komplett im neuen Jahrtausend entwickelten scheiß Architektur doch zumindest erwarten, dass es keine verheerenden Kernel-Abstürze gibt, oder? Und dreht das nicht so zurecht, als müsste ich mich halt damit abfinden, dass sowas passiert. Da hängt immer ein seines Jobs unfähiger und unwürdiger Idiot hinter, der für sowas gezüchtigt gehört, weil er gegen die beschissenen fundamentalen Regeln verstoßen hat, die eigentlich jeder Affe, der an sowas sitzt, kennen müsste. Oder weil er jemanden bestochen hat.

Und ich mache hier ja keine verflixte Rocket Science; ich hatte nicht einmal das verkorkste Visual Studio offen. Ich wollte echt nicht mehr, als im räudigen Netz zu surfen. Das kann doch nicht zu viel verlangt sein, dass ein verfickter Netzwerktreiber bei sowas nicht amok läuft, oder?!
Zuletzt geändert von Krishty am 31.03.2011, 15:49, insgesamt 1-mal geändert.
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
Aramis
Moderator
Beiträge: 1458
Registriert: 25.02.2009, 19:50
Echter Name: Alexander Gessler
Wohnort: 2016
Kontaktdaten:

Re: Jammer-Thread

Beitrag von Aramis »

Das Rad gibt es auch schon recht lange, sogar schon deutlich laenger als 16 Jahre, trotzdem kann man auch heute noch einen Platten haben.
Benutzeravatar
Krishty
Establishment
Beiträge: 8267
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Jammer-Thread

Beitrag von Krishty »

Nur, dass ich keine Glasscherben in meine Netzwerkkarte stecke. Nein, um bei der Metapher zu bleiben: Was Treiber angeht, befinden wir uns in einer Welt, in der die Räder aus Teer sind und die Straßen aufblasbar und aus Gummi. Und wenn einer über ’ne Scherbe fährt, ist gleich die ganze Stadt fortbewegungsunfähig.
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
kimmi
Moderator
Beiträge: 1405
Registriert: 26.02.2009, 09:42
Echter Name: Kim Kulling
Wohnort: Luebeck
Kontaktdaten:

Re: Jammer-Thread

Beitrag von kimmi »

Nun ja, es gibt da sowas wie ein Autosave und die Möglichkeit, offene Tabs zu restaurieren, weil sowas immer mal wieder passieren kann. Und ich hatte schon mit Treibern unter Windows-XP embedded zu tun und kann dazu nur sagen: wenn du es besser kannst, nur zu :). Das ist wirklich mal ein echt ätzendes Thema. Von Hibernation will ich lieber gar nicht erst reden, weil uns so ziemlich alles, was schiefgehen kann, da schon auf die Füße gefallen ist. Irgendwann ist die Komplexität ( wie es bei deinem Problem garantiert auch der Fall war ) so groß, dass sie keiner mehr so ohne weiteres duchblickt.

Kleiner aber gemeiner Seitenhieb: sobald du große Projekte angehst und dich nicht nur in lokalen Optimierungen suhlst, weißt du, was ich meine. Die bringen auch Spass, keine Frage. Aber da gibt es noch eine sehr sehr große Welt darüber ;).

Gruß Kimmi
Benutzeravatar
Krishty
Establishment
Beiträge: 8267
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Jammer-Thread

Beitrag von Krishty »

kimmi hat geschrieben:und die Möglichkeit, offene Tabs zu restaurieren
Nääh, leider total abgeschossen worden :/
kimmi hat geschrieben:Und ich hatte schon mit Treibern unter Windows-XP embedded zu tun und kann dazu nur sagen: wenn du es besser kannst, nur zu :).
Windows’ Treibermodell schreibe ich gern besser neu, aber erstmal muss ich meine anderen hundert Projekte fertig kriegen ;)
kimmi hat geschrieben:Kleiner aber gemeiner Seitenhieb: sobald du große Projekte angehst und dich nicht nur in lokalen Optimierungen suhlst, weißt du, was ich meine.
Das hat nichts mit Projektgröße zu tun sondern mit das-muss-jetzt-raus-Haltung. Jedes Mal. Fängt bei der HAL (oder noch tiefer) an und dann dürfen sich die anderen (darüber, darunter und danach) 20 Jahre damit rumärgern. Und weil’s jeder macht fühlt sich auch keiner schuldig.
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
kimmi
Moderator
Beiträge: 1405
Registriert: 26.02.2009, 09:42
Echter Name: Kim Kulling
Wohnort: Luebeck
Kontaktdaten:

Re: Jammer-Thread

Beitrag von kimmi »

Irgendwann musst du auch mal raus mit edm Ding. Weil wenn man alles perfekt machen will, wird nichts fertig. Dazu gibt es bestimmt auch irgendwo einige Statistiken: wieviele Projekte nie das Licht der Welt erblickt haben, weil man sie "perfekt" machen wollte :).
Wenn man sich die Statistiken großer Projekte ( egal wo ) anschaut, sieht man in der Regel eine riese Zahl offener Defecte. Meiner Erfahrung nach gibt es keine Möglichkeit, Software komplett fehlerfrei zu bauen.

Gruß Kimmi
hagbard
Beiträge: 66
Registriert: 05.08.2010, 23:54

Re: Jammer-Thread

Beitrag von hagbard »

Das ist aber eine unangenehme Warheit die der Projektmanager nie hören will. Alle Kosten- und Terminpläne sollen eingehalten werden bei gleichzeitiger Null-Fehler-Strategie. :evil:
Benutzeravatar
eXile
Establishment
Beiträge: 1136
Registriert: 28.02.2009, 13:27

Re: Jammer-Thread

Beitrag von eXile »

Benutzeravatar
Aramis
Moderator
Beiträge: 1458
Registriert: 25.02.2009, 19:50
Echter Name: Alexander Gessler
Wohnort: 2016
Kontaktdaten:

Re: Jammer-Thread

Beitrag von Aramis »

You made my day.
Benutzeravatar
Chromanoid
Moderator
Beiträge: 4262
Registriert: 16.10.2002, 19:39
Echter Name: Christian Kulenkampff
Wohnort: Lüneburg

Re: Jammer-Thread

Beitrag von Chromanoid »

sehr geil, meine favoriten: :)
Bild
Bild
Bild
Benutzeravatar
Krishty
Establishment
Beiträge: 8267
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Jammer-Thread

Beitrag von Krishty »

Verdammte Live ID. Ich habe meine E-Mail-Adresse geändert. Damit ändert sich natürlich nicht die Live ID. Heißt: Ich muss mich mit der Alten einloggen, aber mit der Neuen denken. Habe zehn Minuten gebraucht, um draufzukommen.

Und wtf hat Microsoft so viele Konten von mir? Eins von Live und eins für das MSDN, okay. Aber dann noch Expression und TechNet – da habe ich keinen Plan, wo die herkommen. Sind aber schon drei Jahre alt. Und kündigen kann man da irgendwie überhaupt nichts; ich werde immer nur zum Profil-Center weitergeleitet, wo mich Stock-Gesichter leer angrinsen. Und wenn ich auf die Hilfe klicke, will die erstmal wissen, ob ich mich wegen Windows 7 oder doch eher wegen Internet Explorer oder Office-Paket melde und ob mir das weiterhilft. Rage
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
eXile
Establishment
Beiträge: 1136
Registriert: 28.02.2009, 13:27

Re: Jammer-Thread

Beitrag von eXile »

Nicht zu vergessen der Microsoft-Connect-Account. Habe übrigens über die letzten drei Jahre meinen uralten Hotmail-Account langsam aber sicher abgeschaltet. Die haben tatsächlich in den letzten zehn Jahren kein IMAP gebacken bekommen.
Benutzeravatar
captain
Beiträge: 25
Registriert: 25.03.2002, 11:49
Wohnort: berlin
Kontaktdaten:

Re: Jammer-Thread

Beitrag von captain »

Was ist Meme!? Wie ein anderes deutsche Wort für Milchkeks?
Benutzeravatar
Krishty
Establishment
Beiträge: 8267
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Jammer-Thread

Beitrag von Krishty »

Wenn, dann richtig
m.jpg
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
captain
Beiträge: 25
Registriert: 25.03.2002, 11:49
Wohnort: berlin
Kontaktdaten:

Re: Jammer-Thread

Beitrag von captain »

ogmfi

verstehe...
Benutzeravatar
Krishty
Establishment
Beiträge: 8267
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Jammer-Thread

Beitrag von Krishty »

seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
CodingCat
Establishment
Beiträge: 1857
Registriert: 02.03.2009, 21:25
Wohnort: Student @ KIT
Kontaktdaten:

Re: Jammer-Thread

Beitrag von CodingCat »

Ich habe mich die letzten Tage mal an einer Vektorklasse versucht, unter anderem, um herauszufinden, was sich gegenüber der STL noch so rausholen lässt an Performance. Zunächst sah das sehr gut aus, bei angeschalteten Optimierungen und ausgeschaltetem _SECURE_SCL kam ich scheinbar nur mit Mühe an die Geschwindigkeit des STL-Vektors heran. Nachdem ich dann jedoch noch einige Exception-Handler eliminieren konnte, und außerdem das Inlining einiger Methoden unterdrückte, staunte ich nicht schlecht, als sich mein push_back ziemlich zuverlässig als ca. 50% schneller herausstellte, sowohl mit als auch ohne vorangehender Speicherreservierung.

Sehe ich mir außerdem den Compiler-generierten Code an, so kann ich langsam sehr gut nachvollziehen, worüber Krishty hier so häufig jammert: STL push_back bereichert bei vollem Inlining den generierten Code schonmal gut und gerne um 100 Instruktionen, mit meinem eigenen push_back komme ich dank gezielter Inline-Unterdrückung jetzt noch auf 15.

Fazit: Nun werde ich wohl doch meine eigene Vektorklasse behalten, insbesondere mit einigen Optimierungspolicies für POD-Typen (oder auch halb-POD, der Programmierer weiß ja, was er tut :P ) lässt sich da wohl ein beachtlicher Geschwindigkeitszuwachs erreichen. Auch wenn ich absolut keine Lust habe, da jetzt erstmal haufenweise Unit Tests zu schreiben, um die korrekte Funktionsweise auch wirklich sicherstellen zu können.
alphanew.net (last updated 2011-07-02) | auf Twitter | Source Code: breeze 2 | lean C++ library | D3D Effects Lite
Benutzeravatar
Krishty
Establishment
Beiträge: 8267
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Jammer-Thread

Beitrag von Krishty »

Hier … ist zwar unvollständig (z.B. fehlt der Zuweisungsoperator; habe ich bisher einfach nicht benötigt) und von meinem Framework abhängig (was ich aber nachliefern kann, falls die Dokumentation nicht ausreicht), aber wird bei mir seit einem halben Jahr erfolgreich eingesetzt und könnte dir helfen:
Cric_Containers.hpp
(36.18 KiB) 212-mal heruntergeladen
(Vergiss TCMap – die habe ich seit einem halben Jahr nicht instanziert und weiß nicht, ob sie funzt. Und es könnte hässliche Fehlermeldungen geben, falls du mal was rumschiebst, was keinen move-K’tor hat. Und der ::std-Namenskonvention folge ich sowieso nirgends – insbesondere, wenn ich length und size unterscheide.)

Den Hauptvorteil an einem eigenen vector sehe ich nicht einmal in der Leistung, sondern in der Möglichkeit, dank move-Konstruktion Objekte zu speichern, die sich mangels Kopierbarkeit in „gewöhnlichen“ Vektoren nicht unterbringen lassen. Das hat bei mir sehr vieles sehr viel sauberer gemacht.

Nachtrag: Jetzt, wo ich nochmal drübergucke, sehe ich, dass ich da wieder einen hässlichen Zombie-State habe (myBegin ist nullptr), den ich durch eine Nullallokation im Standardk’tor wegkriegen könnte. Wenn man jedem Vektor bei der Konstruktion einen Größenvoranschlag mitgibt, dürfte das nur positive Auswirkungen haben und die Implementierung vereinfachen. Direkt mal testen.
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
CodingCat
Establishment
Beiträge: 1857
Registriert: 02.03.2009, 21:25
Wohnort: Student @ KIT
Kontaktdaten:

Re: Jammer-Thread

Beitrag von CodingCat »

Danke, ich orientiere mich ja schon seit geraumer Zeit immer wieder mal an deinem Code. ;-) In diesem Fall werde ich meine Implementierung allerdings wohl so lassen wie ich sie jetzt habe, wenn sie schonmal so ausgiebig optimiert ist. Die Optionalität von Default- und Copy-Konstruktor sind natürlich eine feine Sache, aber die habe ich, wenn ich das richtig einschätze, bei korrekter Benutzung dank Lazy Instantiation bei Templates auch so, wenn auch nicht gesichert, lediglich implizit.

Im übrigen habe ich aus purer Faulheit meinen aktuellen Code bei google gehostet, in der Hoffnung, dass hier niemand gleich Catplag aufmacht, poste ich einfach mal den Link: http://code.google.com/p/lean-cpp-lib/ (vieles noch ungetestet, manches nur eben aus altem Code rüberkopiert, wenns "fertig" ist gibts vielleicht noch ein paar Samples und ne Doxygen-Doku)
alphanew.net (last updated 2011-07-02) | auf Twitter | Source Code: breeze 2 | lean C++ library | D3D Effects Lite
Benutzeravatar
Krishty
Establishment
Beiträge: 8267
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Jammer-Thread

Beitrag von Krishty »

Oooh, sehr schön – da habe ich ja heute schön was durchzuarbeiten.
CodingCat hat geschrieben:ich orientiere mich ja schon seit geraumer Zeit immer wieder mal an deinem Code. ;-)
Jaa, einiges kommt mir bekannt vor :D
CodingCat hat geschrieben:In diesem Fall werde ich meine Implementierung allerdings wohl so lassen wie ich sie jetzt habe, wenn sie schonmal so ausgiebig optimiert ist.
Vor allem ausgestattet mit Allokatoren und allem drum & dran – dass sie schon so ausgewachsen ist, hatte ich garnicht vermutet.
CodingCat hat geschrieben:in der Hoffnung, dass hier niemand gleich Catplag aufmacht
Insider?
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
eXile
Establishment
Beiträge: 1136
Registriert: 28.02.2009, 13:27

Re: Jammer-Thread

Beitrag von eXile »

Krishty hat geschrieben:
CodingCat hat geschrieben:in der Hoffnung, dass hier niemand gleich Catplag aufmacht
Insider?
Hab' grad fünf Minuten dran gehangen. Stichwort: guttenplag.

Nachträge: An Krishty und Cat: Vielen Dank für das Publikmachen, ich werde bei Zeiten bestimmt da auch mal mich durchwühlen ;). An Cromanoid: Tja, ich machs wie auf Stackoverflow. Erst kleine Stubs schreiben, damit man erster ist, dann Ninja-Edits hinterherschieben ;)
Zuletzt geändert von eXile am 04.04.2011, 18:08, insgesamt 5-mal geändert.
Benutzeravatar
Chromanoid
Moderator
Beiträge: 4262
Registriert: 16.10.2002, 19:39
Echter Name: Christian Kulenkampff
Wohnort: Lüneburg

Re: Jammer-Thread

Beitrag von Chromanoid »

Och menno du bist mir zuvor gekommen, es ist so selten, dass ich ihn mal belehren kann :D
Krishty hat geschrieben:
CodingCat hat geschrieben:in der Hoffnung, dass hier niemand gleich Catplag aufmacht
Insider?
CodingCat will damit wohl ausdrücken, dass seine Bibliothek teilweise aus anderen Quellen kopierte Texte enthält. Z.B. Sachen aus deiner Feder :)(?) http://de.guttenplag.wikia.com/wiki/GuttenPlag_Wiki
Benutzeravatar
Krishty
Establishment
Beiträge: 8267
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Jammer-Thread

Beitrag von Krishty »

Argh; na klar, danke. Ich habe das die ganze Zeit englisch zu interpretieren versucht … und schiebe es außerdem auf Schlafentzug, Kater und Ungeduld (um beim Thema dieses Themas zu bleiben).
Chromanoid hat geschrieben:es ist so selten, dass ich ihn mal belehren kann :D
Mein persönliches Geburtstagsgeschenk … und eXile steckt den Finger in die Torte. Unverschämtheit!

Hier ist jedenfalls das aktuelle Cric Framework zum abschielen, diesmal sogar mit D3D11-Wrappern und allem.
The Cric Framework 2011-04-04.7z
(118.64 KiB) 230-mal heruntergeladen
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
anonym
Beiträge: 79
Registriert: 15.07.2009, 07:35
Kontaktdaten:

Re: Jammer-Thread

Beitrag von anonym »

Gibt es einen Grund, dass der Container-Move-Assignment-Operator anstatt von Member-Swaps mit anschließender Zerstörung der nicht mehr benötigten Ressourcen durch den Destruktoraufruf des anderen Containers den anderen Container in einen leeren Zustand versetzt? Spontan würde mir nur auffallen, dass der Speicher bei expliziten Moves von Scopevariablen vor verlassen des Scopes freigegeben wird. { Type a, b; a = std::move(b); /* Speicher haben oder nicht haben */ ... }. Aber dann ist Selfassignment in dieser Implementierung für die Programmstabilität eher unvorteilhaft (a[0] = ...; a = std::move(a); true == (a == Container()); a[0] = ...; ) ;) (Ich hoffe, ich habe mich jetzt nicht komplett vertan. Spezifikation kenne ich dazu nicht)

Code: Alles auswählen

TCPlainVector<CElement> & operator = (
	TCPlainVector<CElement> && reference
) {
	this->~TCPlainVector();
	myBegin		= reference.myBegin;
	myLength	= reference.myLength;
	myCapacity	= reference.myCapacity;
	reference.myBegin		= nullptr;
	reference.myLength		= 0;
	reference.myCapacity	= 0;
	return *this;
}
Hinsichtlich des Frameworks: Respekt und Danke für solch eine riesige Informationsquelle. Ich mach mich dann mal wieder an meine Java-Hausaufgaben :(
Antworten