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.
Alexander Kornrumpf
Moderator
Beiträge: 2106
Registriert: 25.02.2009, 13:37

Re: Jammer-Thread

Beitrag von Alexander Kornrumpf »

Ich habe heute erstmals Windows Subsystem for Linux verwendet und würde hoffen dass es dann sowieso irgendwann nach "Bash, aber alle Spiele laufen" konvergiert.
Benutzeravatar
Jonathan
Establishment
Beiträge: 2348
Registriert: 04.08.2004, 20:06
Kontaktdaten:

Re: Jammer-Thread

Beitrag von Jonathan »

Krishty hat geschrieben: 15.01.2020, 21:24 Aber damit das hier nicht nur Jammern ist: Ich war enttäuscht, dass git es nicht hinkriegt, meine Dateien in einen Unterordner zu schieben, sondern jedes git mv als git remove, git add auffasst. Dann habe ich mir Linus’ Rant durchgelesen, dass das beabsichtigt ist, um Änderungen besser verfolgen zu können: https://web.archive.org/web/20160304045 ... ol.git/217
… und das ergibt tatsächlich Sinn.
Das ist von der Rhetorik her ziemlich genau so, wie erwartet. Aber ja, macht Sinn.

Git ist ein faszinierendes Tool. Ich benutze es ständig, das einzige große Problem daran ist, dass es ein Krampf ist es mit Leuten zusammen zu benutzen, die es nicht monatelang gelernt haben. Es ist nämlich auch ein wirklich komplexes Tool und wenn man mit dem üblichen Vorgehen rangeht (Ich klicke mal bis etwas passiert und wenn es grob richtig aussieht, bin ich happy und mache es beim nächsten mal genau so ohne jemals zu verstehen, was eigentlich passiert ist), passieren echt nervige Dinge die dann in der Regel von den Leuten, die es ein klein bisschen besser verstanden haben, wieder mühevoll ausgebügelt werden können. Stichwort 'konfliktfreies mergen ist einfach, wenn man die fremden Änderungen ignoriert'.
Lieber dumm fragen, als dumm bleiben!
https://jonathank.de/games/
Benutzeravatar
Jonathan
Establishment
Beiträge: 2348
Registriert: 04.08.2004, 20:06
Kontaktdaten:

Re: Jammer-Thread

Beitrag von Jonathan »

Krishty hat geschrieben: 16.01.2020, 21:40 PowerShell.
Hab ich zwei mal geklickt, hat mich nicht überzeugt. Ich benutze ConEmu ganz gerne, das Ding hat auch 3-5 Macken ist aber im großen und ganzen so so viel besser als CMD. Und auch besser, als das was ich bisher von der PowerShell gesehen habe. So sehr, dass mich die PowerShell Integration stört, weil man sie nicht so leicht durch ConEmu ersetzen kann wie CMD und so letztendlich das Upgrade auf das Microsoft so stolz ist für mich faktisch ein Downgrade darstellt.

Erinnert an das grotesk schlechte Notepad, das irgendwann einen Patch bekommen hat mit dem es Linux-Zeilenendezeichen versteht (was genauso überfällig wie trivial war) und eine Bing-Suchfunktion integriert (grenzt an Antifeature). Und über den Microsoft-Store kommt (definitiv Antifeature!). Und ich benutze seit Jahren Notepad++ und frag mich was der Quatsch soll und ob er ernst gemeint ist.
Lieber dumm fragen, als dumm bleiben!
https://jonathank.de/games/
Benutzeravatar
Krishty
Establishment
Beiträge: 8227
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Jammer-Thread

Beitrag von Krishty »

Jonathan hat geschrieben: 16.01.2020, 22:56Git ist ein faszinierendes Tool. Ich benutze es ständig, das einzige große Problem daran ist, dass es ein Krampf ist es mit Leuten zusammen zu benutzen, die es nicht monatelang gelernt haben.
Ab 21:55 https://vimeo.com/146524997
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
Jonathan
Establishment
Beiträge: 2348
Registriert: 04.08.2004, 20:06
Kontaktdaten:

Re: Jammer-Thread

Beitrag von Jonathan »

Hilariös¹! :D :D :D

schöner Talk, danke fürs Teilen.

¹Dank an Schrompf für dieses Wort
Lieber dumm fragen, als dumm bleiben!
https://jonathank.de/games/
Benutzeravatar
Krishty
Establishment
Beiträge: 8227
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Jammer-Thread

Beitrag von Krishty »

Ihr findet, dass C++ auch um die Hunderttausend Standardklassen für jeden Scheiß mitbringen sollte, so wie C# und Java?

Dann habe ich gute Nachrichten für euch! Endlich wird die Lücke geschlossen, die uns seit jeher so schmerzt!

2D-Rendering in der Standardbibliothek! Und es wird sich an PostScript orientieren!

Da es sowieso nur noch zwei Parteien auf der Welt gibt, die einen kompletten C++-Compiler samt Standardbibliothek pflegen können (GCC und Visual C++; Clang und EDG sind zwar eigene Compiler, pflegen aber keine komplette eigene Standardbibliothek), dürfte der Showdown nicht mehr weit sein. Und dann können wir endlich einen kompletten Webbrowser nur mit der C++-Standardbibliothek zusammenstecken!
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
dot
Establishment
Beiträge: 1734
Registriert: 06.03.2004, 18:10
Echter Name: Michael Kenzel
Kontaktdaten:

Re: Jammer-Thread

Beitrag von dot »

Das 2D Graphics Proposal geistert schon seit langem rum. Schaut nicht aus als dass irgendwas draus wird (gottseidank). Gerade druckfrisch zum Thema: P2005R0

Btw: Wieso zählt libc++ nicht als eigene Standardbibliothek?
Benutzeravatar
Krishty
Establishment
Beiträge: 8227
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Jammer-Thread

Beitrag von Krishty »

Du hast recht – libc++ gilt doch. Das muss ich in der Verwirrung, Clang auf Windows zu installieren, missverstanden haben.

Und ja, durch 2005R0 bin ich drauf gekommen. Die „alle machen’s falsch, aber wir machen es jetzt RICHTIG“-Einstellung ist ein einziger Erfolgsgarant!
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Alexander Kornrumpf
Moderator
Beiträge: 2106
Registriert: 25.02.2009, 13:37

Re: Jammer-Thread

Beitrag von Alexander Kornrumpf »

Krishty hat geschrieben: 18.01.2020, 20:55 Ihr findet, dass C++ auch um die Hunderttausend Standardklassen für jeden Scheiß mitbringen sollte, so wie C# und Java?

Dann habe ich gute Nachrichten für euch! Endlich wird die Lücke geschlossen, die uns seit jeher so schmerzt!

2D-Rendering in der Standardbibliothek! Und es wird sich an PostScript orientieren!

Da es sowieso nur noch zwei Parteien auf der Welt gibt, die einen kompletten C++-Compiler samt Standardbibliothek pflegen können (GCC und Visual C++; Clang und EDG sind zwar eigene Compiler, pflegen aber keine komplette eigene Standardbibliothek), dürfte der Showdown nicht mehr weit sein. Und dann können wir endlich einen kompletten Webbrowser nur mit der C++-Standardbibliothek zusammenstecken!
Da drängt sich regelrecht die Frage auf wieviele Parteien weltweit eigentlich in der lage sind eine vollständige PostScript Implementierung zu warten.
Benutzeravatar
Krishty
Establishment
Beiträge: 8227
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Jammer-Thread

Beitrag von Krishty »

AAAAAAAAAAAH wer hat C++’20 so verbogen, dass Funktionen standardmäßig zu Zeigern auflösen statt zu Referenzen? Im Speziellen hat das hier mit C++’17 funktioniert

Code: Alles auswählen

void takesInt(int *);

void callFunc(void (&)(void *));

template<typename T> void callFunc(void (&)(T *));

callFunc(takesInt);
Im neuesten Visual Studio Preview schmeißt das nun den Fehler, dass er sich nicht zwischen dem Template und der anderen Funktion entscheiden kann, weil die Übergabe von takesInt zu einem Zeiger auflöst (void (*)(int *)) statt zu einer Referenz …

wtf, wenn ich einen Zeiger will, schreibe ich & davor!

Aber das Gute ist, dass int * returnsPointer() { return false; } nun einen Fehler cannot convert bool to int * auslöst statt nullptr zurückzugeben. Scheiß Promotion. Wahrscheinlich waren die Funktionen auch immer schon Zeiger, und sie haben bloß die Promotion abgeschafft …
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
Krishty
Establishment
Beiträge: 8227
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Jammer-Thread

Beitrag von Krishty »

Man kann in Windows 10 ein halbwegs nutzbares Dark Theme hinkriegen (das dann auch mit alten Anwendungen funktioniert), indem man ein High Contrast Theme aktiviert und die Farben anpasst.

… bis man Visual Studio benutzt. Denn sobald ein High Contrast Theme aktiviert ist, schaltet VS jede Syntaxhervorhebung ab. Es gibt keine Farben mehr, nur noch Weiß auf Schwarz. Nicht einmal farbige Kommentare. Okay, geschenkt.

Nur … man kann es nicht umstellen. Die Theme-Auswahl in den Optionen wird komplett deaktiviert. Keine Chance.

Das Problem existiert seit VS 2015 und geht MS am Arsch vorbei. Zitat aus einem der Tickets der zahllosen Farbenblinden und Sehbehinderten, die mit High Contast arbeiten müssen:
https://developercommunity.visualstudio.com/idea/527413/visual-studio-forces-the-user-to-use-its-high-cont.html hat geschrieben:Hey everyone, if you are here it's probably becuase you are looking at ugly white text in visual studio. This problem existed in VS 2017, and Microsoft never fixed it. And now we're on VS 2019 and the problem is STILL there, so clearly, Microsoft never intends to fix this problem, ever. This thread is a waste of time.

However, for those of you who are willing to hack your own windows registry, there is a hack that you can find with an easy google search, to edit the windows registry. It basically involves copying all the values from the dark them, and pasting those values into visual studio's "high contrast" theme, essentially over-writing visual studios high contrast theme.
Klasse. Entweder habe ich ein benutzbares Windows 10, oder ein benutzbares Visual Studio 2019. Aber beides geht nicht. Kann man sich nicht ausdenken
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
dot
Establishment
Beiträge: 1734
Registriert: 06.03.2004, 18:10
Echter Name: Michael Kenzel
Kontaktdaten:

Re: Jammer-Thread

Beitrag von dot »

Krishty hat geschrieben: 25.01.2020, 02:08 AAAAAAAAAAAH wer hat C++’20 so verbogen, dass Funktionen standardmäßig zu Zeigern auflösen statt zu Referenzen? Im Speziellen hat das hier mit C++’17 funktioniert […]
Das muss ein MSVC Bug sein. Bitte reporten...
Benutzeravatar
Krishty
Establishment
Beiträge: 8227
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Jammer-Thread

Beitrag von Krishty »

dot hat geschrieben: 27.01.2020, 03:58Das muss ein MSVC Bug sein. Bitte reporten...
Ja, ist es. Das Problem scheint nicht in Promotion zu liegen, sondern ganz wo anders: Meine Funktionen sind __stdcall deklariert und Visual C++ „vergisst“ die Calling Convention in Template-Parametern. Aber irgendwie auch nur, wenn sie einen Parameter erwarten – alles sehr skurril.

Bug-Report mit minimalem Repro hier; bitte upvoten: https://developercommunity.visualstudio ... te-pa.html

Falls ihr noch Upvotes übrig habt: Das git-Changes-Fenster haben sie auch kaputtverbessert. https://developercommunity.visualstudio ... er-wo.html
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
Jonathan
Establishment
Beiträge: 2348
Registriert: 04.08.2004, 20:06
Kontaktdaten:

Re: Jammer-Thread

Beitrag von Jonathan »

Eigen ist ja eigentlich eine ziemlich nette Lineare-Algebra-Bibliothek für C++, aber so ein paar Sachen nerven dann doch. Gerade hatte ich zum Beispiel mit zufälligen Abstürzen zu kämpfen, und zwar die Art von Abstürzen die in Code auftreten der monatelang ohne Probleme funktioniert hat und den man auch genau so lange nicht mehr angefasst hat.

Letztendlich war es ein Alignment-Problem, Details dazu hier: https://eigen.tuxfamily.org/dox/group__ ... ssert.html

Das fiese ist: Man darf total harmlos aussehende Dinge (Eigen-Objekte per Wert übergeben oder in STL-Containern speichern) nicht tun. Tut man es doch, gibt es keine Fehlermeldungen und der Code funktioniert sehr wahrscheinlich - bis dann eines Tages irgendein Objekt zufällig mal falsch im Speicher ausgerichtet ist und das Programm abschmiert. Der Hilfreiche Assert von dem in der Dokumentation die Rede ist, hat bei mir übrigens nicht angeschlagen...

Das ist so ziemlich das Gegenteil von Robustness: Es ist einfach etwas falsch zu machen, die Folgen sind verheerend und der Fehler fast nicht zu finden. Meh.
Lieber dumm fragen, als dumm bleiben!
https://jonathank.de/games/
Benutzeravatar
Krishty
Establishment
Beiträge: 8227
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Jammer-Thread

Beitrag von Krishty »

WTF – man sollte meinen, dass mit einem alignas alles geklärt wäre! Aber gut; so viele Bug Reports wie ich Microsoft schon wegen Vektorisierung gemeldet habe, … allein das mit den Calling Conventions ist höllisch.

————

Ihr wollt nicht wissen, was Windows tut, wenn aufgrund eines D3D-Ressource-Lecks der Speicher ausgeht. Ich habe hier versehentlich an die 2000 Dateien verarbeitet und jedes Mal vergessen, einen Shader freizugeben. Der Explorer schoss auf 20 GiB, stürzte dann wegen out-of-memory ab; Device Removal; Desktop Window Manager stürzte ab. Nun sieht die Task-Leiste wieder exakt wie bei Windows 7 aus (❤️), aber ich habe keine Kontextmenüs oder Knöpfe mehr und die Hälfte der Anwendungen ist eingefroren.

Visual Studio nutzt übrigens Hardware-Beschleunigung für die Oberfläche. Echt geil so ein Debugger, der bei Device Removal einfach abstürzt. Die Leute sind so bescheuert, man glaubt es kaum.
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
Tiles
Establishment
Beiträge: 1990
Registriert: 11.01.2003, 13:21
Kontaktdaten:

Re: Jammer-Thread

Beitrag von Tiles »

Mein Blender Repository mag einfach von jetzt auf gleich nicht mehr kompilieren. Das Geile ist, auf Laufwerk C tut alles tadellos. Es ist also kein Problem mit neuem Code. Aber nicht mehr auf dem Laufwerk in dem meine Repos stecken. Und auch nicht auf einem anderen Laufwerk. Und ich krieg ums Verrecken nicht raus was genau da jetzt klemmt -.-

EDIT sagt, habs doch noch gefunden. Fehlermeldung lesen soll tatsächlich helfen. Da hats an den Submodulen geklemmt. Eins fehlte. Der Spass hat mich jetzt drei Tage gekostet -.-
Free Gamegraphics, Freeware Games https://www.reinerstilesets.de
Die deutsche 3D Community: https://www.3d-ring.de
Benutzeravatar
Tiles
Establishment
Beiträge: 1990
Registriert: 11.01.2003, 13:21
Kontaktdaten:

Re: Jammer-Thread

Beitrag von Tiles »

Ich hatte grade meinen ersten BSOD unter Win 10. Mit Easy Anticheat. Und Windows so: Bitte warten, wir sammeln ein paar Daten ...
Free Gamegraphics, Freeware Games https://www.reinerstilesets.de
Die deutsche 3D Community: https://www.3d-ring.de
Benutzeravatar
Krishty
Establishment
Beiträge: 8227
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Jammer-Thread

Beitrag von Krishty »

Ich bekomme eine unheimliche Vermutung, warum Visual C++ stur alle Arrays an 16 B ausrichtet:

Seit ich das gehackt habe, funktionieren meine Tastenkürzel (Accelerators) in Win32 nicht mehr. Das Problem ist, dass die Strukturen (ACCEL, Doku-Bug für den Müll ist erstellt) selbst 6 B groß sind und 2-B-Alignment befolgen. Ein Array von ACCEL, das man an CreateAcceleratorTable() übergibt, muss aber unbedingt an 4 B ausgerichtet sein!

Stellt man 4-B-Alignment für ACCEL ein, passen die Arrays nicht mehr, weil die einzelnen ACCEL acht statt sechs Bytes groß sind. Also muss jedes Array aus ACCELs von Hand mit alignas(4) versehen werden.

Auweia …
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
Krishty
Establishment
Beiträge: 8227
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Jammer-Thread

Beitrag von Krishty »

Old and busted: Windows-Updates zerschießen Windows.

New hotness: Windows-Updates zerschießen ReactOS.

Um es weniger dramatisch auszudrücken: Ich gehe stark davon aus, dass hier nicht Windows schuld ist, sondern ReactOS. Aber es ist wohl so, dass ReactOS nicht mehr unter Hyper-V virtualisierbar ist, weil ein Windows-Update das Verhalten des virtuellen CD-Laufwerks geändert hat. Nun können Setup und Live-CD nicht mehr ihre Partitionstabellen lesen.

Mann war ich dämlich anzunehmen, ich sollte mir mal wieder was Neues angucken und es würde bestimmt sofort funktionieren.

Und wo wir gerade bei Hyper-V sind: Das scheint total die tolle Technologie zu sein.

Die März-2020-Updates warnen, dass 32-Bit-Server-Container nach den Updates nicht mehr richtig funktionieren könnten.

Seit ich Hyper-V bei mir aktiviert habe, läuft die ganze Zeit ein 250-MiB-Hyper-V-Prozess Secure System mit. Was der tut?
http://woshub.com/virtual-secure-mode-vsm-in-windows-10-enterprise/ hat geschrieben:In Windows 10 Enterprise (only in this edition), a new Hyper-V component has appeared – Virtual Secure Mode (VSM). VSM is a protected container (virtual machine) run on a hypervisor and separated from host Windows 10 host and its kernel. Crucial from the security point of view system components run inside this protected virtual container. No third-party code can be executed in the VSM, and code integrity is constantly checked for modification. This architecture allows to protect data in the VSM, even if the kernel of the host Widows 10 is compromised, because even the kernel cannot access the VSM directly.

VSM container cannot be connected to the network and nobody can get administrative privileges in it. Encryption keys, user authentication data and other crucial information from the compromise point of view can be stored in Virtual Secure Mode container. Thus, a hacker won’t be able to penetrate the corporate structure using locally cached data of the domain user accounts.
Für die Bullshit-Idee ist doch garantiert wer befördert worden. Wer erinnert sich bei diesen utopischen PowerPoint-Bingo-Versprechen nicht nostalgisch an Trusted Computing oder Intels Management Engine! Aber es kommt noch dicker, denn der letzte Satz ist wörtlich zu verstehen:
https://deploymentresearch.com/enabling-virtual-secure-mode-vsm-in-windows-10-enterprise-build-10130/ hat geschrieben:Something worth mentioning, that I learned the hard way, is that VSM only protect domain credentials, not local accounts.
Hahahaha aber wenn ich’s abschalte geht bestimmt Hyper-V kaputt oder das Startmenü funktioniert nicht mehr oder Apps verbinden sich nicht und ReactOS kann ich ja nicht mehr ausprobieren also fml
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
Krishty
Establishment
Beiträge: 8227
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Jammer-Thread

Beitrag von Krishty »

template <> static constexpr auto pi<float> = 3.14159265f;

Erklärt das mal jemandem, der kein C++ kennt.

Das static ist übrigens für Header dringend nötig, aber Clang/GCC/Visual Studio fressen es trotzdem. Erst Clang 10.0.0 RC3 beschwert sich bei mir.

Man könnte das static auch durch inline ersetzen, dann wird es noch kryptischer.
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Alexander Kornrumpf
Moderator
Beiträge: 2106
Registriert: 25.02.2009, 13:37

Re: Jammer-Thread

Beitrag von Alexander Kornrumpf »

Krishty hat geschrieben: 14.03.2020, 17:56 template <> static constexpr auto pi<float> = 3.14159265f;

Erklärt das mal jemandem, der kein C++ kennt.
Was tut es?
Benutzeravatar
Krishty
Establishment
Beiträge: 8227
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Jammer-Thread

Beitrag von Krishty »

Du möchtest Konstanten gern benennen, führst also eine benannte Konstante ein.

Die ist dann aber an einen Typ gebunden. Wenn du Pi als double definierst, musst du überall, wo du es mit float benutzt, casten. Das nervt. Du könntest nun mehrere Konstanten anlegen, pi_float und pi_double beispielsweise. Die sind dann aber eine Pest mit generischem Code, in denen die Typen selber Parameter sein können.

In C++17 hat man Template-Variablen eingeführt; also können nun auch Variablen statische Parameter bekommen. Nun kann man sagen, ob man Pi als double oder float haben möchte: pi<float> oder pi<double>.

Nun möchtest du das natürlich in einem Header haben, damit du dein pi überall benutzen kannst. Aber das würde bedeuten, dass jede .cpp-Datei, die den Header #includet, sich ihre eigene Konstante anlegt und die bei Programmstart initialisiert. Wenn du 20.000 Quelldateien hast, und die alle über Umwege deinen Mathe-Header einbinden, führt dein Programm beim Start halt 20k Initialisierungen durch. An sich nicht schlimm, kann sich aber schnell aufaddieren. Mit Optimierungen passiert das nicht, aber nicht jeder kompiliert immer optimiert und nicht jeder Ausdruck lässt sich optimieren.

Also schiebst du das ganze zur Kompilierzeit, was C++’17s constexpr bewirkt. Damit ist garantiert, dass der Compiler das Ganze fertig initialisiert ins Executable schreibt.

Bleibt aber das Problem, dass wir 20k Kopien des Ganzen haben. Und dass diese 20k Kopien alle gleich heißen, müsste ja eigentlich eine Kollision auslösen.

Dafür gibt es static. Das sagt, dass jede Kopie einen einzigartigen, internen Namen bekommen und für benachbarte cpps unsichtbar sein soll. Das kann der Compiler dann auch so interpretieren, dass die 20k Kopien sich eh gegenseitig nicht sehen und deshalb zu einer kollabiert werden können.

Und seit C++’17 gibt es inline, was besagt, dass die 20k Kopien alle den selben Namen haben und in benachbarten cpps sichtbar sein sollen, dass es aber trotzdem keine Kollisionen gibt weil der Linker sich am Ende eine der Kopie aussuchen darf, die es tatsächlich ins Programm schafft.

Wehe dir, wenn dann eine anders war als alle anderen. Dann hast du eine Verletzung der One Definition Rule oder so.

Ach, constexpr impliziert außerdem const, das muss man dann nicht mehr dranschreiben. Obwohl es ganz orthogonale Konzepte sind.

Und das muss man alles auswendig kennen, wenn man in C++ eine Konstante in einen Header packt.

Ein Glück, dass es eine Konstante war. Sonst müssten wir noch über Thread-Local Storage sprechen! Und sonst hätten static und inline komplett unterschiedliche Wirkung! HAHAHA
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Alexander Kornrumpf
Moderator
Beiträge: 2106
Registriert: 25.02.2009, 13:37

Re: Jammer-Thread

Beitrag von Alexander Kornrumpf »

Danke. D. h. pi<double> hat seine eigene Zeile?
Benutzeravatar
Krishty
Establishment
Beiträge: 8227
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Jammer-Thread

Beitrag von Krishty »

Ja, richtig. Pi ist ein blödes Beispiel (weil es in float und double fast gleich ist). Ein besseres Beispiel, in dem der Typ einen großen Unterschied macht, ist:

Code: Alles auswählen

// The smallest positive subnormal floating-point number.
template <typename T> T smallestSubnormal;
template <> static constexpr auto smallestSubnormal<float> = 0.21e-44f;
template <> static constexpr auto smallestSubnormal<double> = 4.9406564584124654e-324;
Nutzt man irgendwo smallestSubnormal<int>, schmeißt der Compiler einen entsprechenden Fehler.
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
Tiles
Establishment
Beiträge: 1990
Registriert: 11.01.2003, 13:21
Kontaktdaten:

Re: Jammer-Thread

Beitrag von Tiles »

I haz a bug :'3

Wieso müssen die schlimmen Bugs eigentlich immer grundsätzlich kurz vor einem geplanten Release auftauchen? -.-
Free Gamegraphics, Freeware Games https://www.reinerstilesets.de
Die deutsche 3D Community: https://www.3d-ring.de
Benutzeravatar
Krishty
Establishment
Beiträge: 8227
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Jammer-Thread

Beitrag von Krishty »

Weil man da 1) gründlicher hinsieht und 2) nur die aufgeschobenen Bugs übrig bleiben, und die sind per se die schlimmsten, sonst hätte man sie nicht aufgeschoben :)
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
Krishty
Establishment
Beiträge: 8227
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Jammer-Thread

Beitrag von Krishty »

Wenn man AMDs Chipset-Treiber installiert, stellen sie die Energieeinstellungen des Systems um, so dass die CPU nicht mehr heruntertaktet und das System nie in Hibernation geht.

Damit sich das System schneller anfühlt. Vollidioten

Wenn ich nächstes Mal neu starte, hänge ich mein Messgerät dran und messe mal, welchen Unterschied das beim Verbrauch macht.

Nachtrag: 69 vs. 65 W; immerhin nicht die Welt. Aber ein Einbruch wird auch nicht viel besser wenn nichts mitgenommen wurde.
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
Tiles
Establishment
Beiträge: 1990
Registriert: 11.01.2003, 13:21
Kontaktdaten:

Re: Jammer-Thread

Beitrag von Tiles »

Hehe, stimmt. Ich hatte leider 3) von Blender mit einem Merge eingeschleppt. Ich bin da ja abhängig. Aber ich habe da auch noch ein paar Knorpel im Tracker auf denen ich schon ewig rumkaue ^^
Free Gamegraphics, Freeware Games https://www.reinerstilesets.de
Die deutsche 3D Community: https://www.3d-ring.de
Benutzeravatar
Krishty
Establishment
Beiträge: 8227
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Jammer-Thread

Beitrag von Krishty »

Die Zuverlässigkeit meines Systems ist von durchschnittlich 30 Tagen (Windows-Updates) runter auf durchschnittlich 10 Tage (immer mehr Visual Studio-Updates erzwingen Neustarts).

Im Jahr 2020. Kommt die Uptime eines Computers nicht über zehn Tage. Kann man sich nicht ausdenken.
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
Jonathan
Establishment
Beiträge: 2348
Registriert: 04.08.2004, 20:06
Kontaktdaten:

Re: Jammer-Thread

Beitrag von Jonathan »

Es stellte sich schnell heraus, ich mag Home-Office überhaupt nicht. Fuck :|
Lieber dumm fragen, als dumm bleiben!
https://jonathank.de/games/
Antworten