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
Krishty
Establishment
Beiträge: 6709
Registriert: 26.02.2009, 12:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Jammer-Thread

Beitrag von Krishty » 05.05.2017, 11:08

„Dadrunter?” Ist da nicht bloß der Grafiktreiber?

————

Bild
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne

Benutzeravatar
Jonathan
Establishment
Beiträge: 1223
Registriert: 04.08.2004, 20:06

Re: Jammer-Thread

Beitrag von Jonathan » 09.05.2017, 19:26

Es gibt in C++ keine Möglichkeit, eine formatierte Uhrzeit anzuzeigen. WTF???

Was ich damit meine ist modernes, funktionierendes, threadsicheres C++. Sollte ja keine überzogene Forderung sein. Denkt man.

Mit std::chrono::system_clock::now() bekommt man einen Zeitstempel. Damit kann man schön Differenzen ausrechnen und von Millisekunden nach Minuten konvertieren und alles. Aber man kann es nicht als Uhrzeit (z.B. 17:45:13) anzeigen. Was man relativ schnell findet, wenn man danach sucht, ist eine Lösung wie die hier:

Code: Alles auswählen

auto now_c = std::chrono::system_clock::to_time_t(now);
std::cout << std::put_time(std::localtime(&now_c), "%c") << '\n';
Oh, und ja, man muss das in zwei Zeilen schreiben, wegen tollen Pointer Interfaces und so. Nun habe ich das auch so implementiert und es hat nicht funktioniert. Es wurde für verschiedene Zeitstempel die selbe Ausgabe generiert. Lange Zeit später fand ich dann heraus, dass localtime nicht threadsafe ist (interne Buffer). Und es gibt in C++ auch keine threadsichere Variante davon, sondern nur Compilererweiterungen die vielleicht funktionieren, vielleicht auch nicht. In C11 hingegen gibt es eine threadsichere Variante, die man benutzen kann. Quelle.
Die dort verlinkte Zusatzbibliothek sieht zwar nett aus, compiliert aber leider unter meinem VS2013 nicht. Und boost wollte ich nicht unbedingt einbinden. Letztendlich habe ich also folgenden Code selber geschrieben:

Code: Alles auswählen

std::string FormatTime(std::chrono::system_clock::time_point time)
{
	auto ctime = std::chrono::system_clock::to_time_t(time);
	tm b;
	localtime_s(&b, &ctime);
	std::stringstream ss;
	ss  << std::setfill('0') << 1900+b.tm_year << "-" << std::setw(2) << b.tm_mon+1 << "-" << std::setw(2) << b.tm_mday << " " << b.tm_hour << ":" << std::setw(2) << b.tm_min << ":" << std::setw(2) << b.tm_sec;
	return ss.str();
}
Vielleicht hätte man an dieser Stelle auch std::put_time benutzen können, aber ich hatte keinen Bock mehr auf Funktionen von denen ich nicht weiß, ob sie zufällig funktionieren oder nicht (threadsafe und so), also hab ich gleich alles selber gemacht. Dabei kam ich nicht umhin zu bewundern wie sau dämlich die tm-Struktur doch ist. Man schaue sich einmal die Intervalle an. Jup, ich muss bei den Jahren 1900 addieren (sonst steht da 117, ugh) und bei den Monaten 1 (wtf? Ernsthaft? Gehts noch inkonsistenter?). Sprich, ich muss dämlichen alten C-Mist benutzen, weil C++ Grundlegende Dinge wie die aktuelle Zeit anzuzeigen immer noch nicht kann. Ganz ganz toll.
Lieber dumm fragen, als dumm bleiben!

Benutzeravatar
Krishty
Establishment
Beiträge: 6709
Registriert: 26.02.2009, 12:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Jammer-Thread

Beitrag von Krishty » 09.05.2017, 21:43

Ja, da bin ich auch schon reingetreten.

Ach, die STL. Man braucht ja unbedingt wieder einen komplett undurchsichtigen Datentyp, der zehntausend verschiedene Zwecke abdecken muss.

Warum nicht fünf bis zehn Typen für Windows-Zeit, Unix-Zeit, Julianisches Datum, etc. mit bloß einem int64_t als einzigem öffentlichen Member? Plus 20, 30 Funktionen zum Konvertieren untereinander? Plus ein Dutzend Formatierungsfunktionen? Das würde 99 % aller Use Cases abdecken! Weil … das könnte ja ohne Templates auskommen! Nichts da! Denkt an das fehlende Prozent! Lieber fünf vollkommen abstrakt-absurde Typen ohne praktischen Nutzen für unsere Architecture Astronauts. Das abstrakte time_point mit einen von fünf abstrakten Zeitsystemen als Template-Parameter.

Mein Beileid.
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne

Benutzeravatar
dot
Establishment
Beiträge: 1650
Registriert: 06.03.2004, 19:10
Echter Name: Michael Kenzel
Kontaktdaten:

Re: Jammer-Thread

Beitrag von dot » 09.05.2017, 23:00

Es ist dann halt doch wesentlich komplexer als das. Das Problem ist ja nicht dass man die Zeit nicht abfragen kann. Die Frage ist viel eher: Wie soll sie denn formatiert werden? Und wieso genau sollte Schema ABC der Default sein und nicht Schema XYZ? Lokalisierung ist alles andere als trivial und ich nehme mal an, dass std::chrono das einfach noch nicht supported, weil noch kein Konsens für eine ausreichend allgemeine Lösung dieses Problems gefunden wurde...

Benutzeravatar
Krishty
Establishment
Beiträge: 6709
Registriert: 26.02.2009, 12:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Jammer-Thread

Beitrag von Krishty » 09.05.2017, 23:08

Dienstag, 9. Mai 2017, 23:06 würde ich auch nicht implementieren wollen, da hast du recht. Wäre ein ähnliches Geraffel wie Währungen und Längen (hat die STL dafür eigentlich mittlerweile was?). Die ohne-Wörter-Version ist aber standardisiert und für den überwältigend großen Teil ausreichend – nur nicht einmal die geht!

Bild
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne

Benutzeravatar
dot
Establishment
Beiträge: 1650
Registriert: 06.03.2004, 19:10
Echter Name: Michael Kenzel
Kontaktdaten:

Re: Jammer-Thread

Beitrag von dot » 10.05.2017, 10:56

Naja, das ist die ISO 8601 Notation für ein Datum. Für die Uhrzeit gibts aber selbst in ISO 8601 zig Varianten... ;)

Benutzeravatar
Krishty
Establishment
Beiträge: 6709
Registriert: 26.02.2009, 12:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Jammer-Thread

Beitrag von Krishty » 11.05.2017, 03:25

Warum muss man /Gw von Hand in die Linker-Kommandozeile eintippen? Warum gibt es noch keine Option dafür? Warum machen die sowas für nichts?

https://blogs.msdn.microsoft.com/vcblog ... er-switch/
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne

Benutzeravatar
Krishty
Establishment
Beiträge: 6709
Registriert: 26.02.2009, 12:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Jammer-Thread

Beitrag von Krishty » 12.05.2017, 23:49

Tabs. Vor allem Tabs mit Quelltext. Oooooooh em eff geh.

Die IDE markiert das aktuelle Tab irgendwie. Meistens ist es hell und die anderen Tabs sind dunkel. Oder es hat besonders dicke Schrift oder so.

Wie wäre es denn mit einem Fade-Out? Wenn ich ein Tab besuche, kriegt der Titel volle Helligkeit. Jedes Mal, wenn ich auf ein anderes Tab klicke, nimmt die Helligkeit ALLER ANDEREN 30 % ab oder so.

Wenn ich also ständig zwischen fünf Tabs hin- und herwechsle, ist mein aktuelles Tab am hellsten, die vier anderen Tabs relativ hell, und alle anderen Tabs dunkel. Ich muss NICHT mehr ein Dutzend Dateinamen lesen um zu wissen, wie ich zu der Quelldatei komme, in der ich zuletzt gearbeitet habe. Ich kann auch die 20 dunklen einfach so schließen, weil ich ja sofort sehe, dass ich die ewig nicht gebraucht habe.

Wir kennen doch schon Dateivorschau in Scrollbalken. Warum keine Heat Map drüberlegen, mit langsamem Fade-Out bei jeder Änderung? Dann muss ich noch nicht einmal mehr auf die Vorschau glotzen um die anderen beiden Funktionen wiederzufinden, an denen ich gerade gearbeitet habe. Vielleicht lenkt das aber auch nur irre ab, weil sich beim Tippen ständig was am Bildschirmrand bewegt.

Ich würd’s ja so gern ausprobieren, aber ich habe noch keine eigene IDE, in die ich das testweise einbauen kann. Auch keinen Hex-Editor oder Text-Editor oder wo das sonst nützlich wäre. Wer sowas hat: Probiert’s mal aus. Vielleicht ist es Schmarrn, dann eben wieder raus damit. Vielleicht nützt es aber auch.
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne

Oprah Noodlemantra
Beiträge: 14
Registriert: 30.06.2015, 19:03

Re: Jammer-Thread

Beitrag von Oprah Noodlemantra » 13.05.2017, 20:22

Nutzt du Intellij?


Aufbauend auf https://github.com/tobszarny/ActiveTabHighlighterPlugin hab ich das mal zusammengehackt.

Leider kann ich keine Bilder als Anhang hinzufügen, wegen "Fehlerhafter Grafikdateityp: Dateiendung bmp erwartet, aber Endung png erhalten." und "Die Dateierweiterung bmp ist nicht erlaubt.".

mrz
Beiträge: 46
Registriert: 07.08.2008, 14:34

Re: Jammer-Thread

Beitrag von mrz » 14.05.2017, 13:30

Sehe ich den Sinn davon nicht. Evtl für Hobbyprogrammierer.
Wer täglich programmiert nutzt nicht mehr die Maus für Navigation und klickt auf Tabs.
CTRL+ALT+LEFT/CTRL+ALT+RIGHT, CTRL+E und Booksmarks reichen mir völlig in Intellij für die Navigation
zwischen den "zuletzt besuchten und oder editierten Codestellen".

Benutzeravatar
MasterQ32
Establishment
Beiträge: 1230
Registriert: 07.10.2012, 14:56
Echter Name: Felix Queißner
Wohnort: Stuttgart & Region
Kontaktdaten:

Re: Jammer-Thread

Beitrag von MasterQ32 » 14.05.2017, 14:10

Also ich bin im Visual Studio hauptsächlich mit F12, Ctrl+- sowie Ctrl++ unterwegs, also jump to definition, navigate back und navigate forward. Damit kann man relativ bequem zwischen den aktuell bearbeiteten codestellen hin und her navigieren.
Wer checkt diese Shaderprogrammierung denn?
JCL: Kein Mensch zwingt Sie jedoch, mit Shadern oder ueberhaupt mit Gamestudio zu arbeiten. Es gibt schliesslich auch andere schoene Hobbies, wie zum Beispiel das Sammeln von Bierdeckeln – JCL quotes

hagbard
Beiträge: 61
Registriert: 05.08.2010, 23:54

Re: Jammer-Thread

Beitrag von hagbard » 14.05.2017, 17:18

Klingt interessant, was allerdings auch schon weiterhilft ist eine Übersichtsseite über alle aktiven Tabs wie sie Nodepad++ hat. Damit kann man dann seine Tabs einfach sortieren und sich wieder auf die beschränken die gerade wichtig sind.

smurfer
Beiträge: 60
Registriert: 25.02.2002, 15:55

Re: Jammer-Thread

Beitrag von smurfer » 15.05.2017, 11:41

Also zumindest unter KDE gibt es bei Kate etwas Derartiges: http://www.sysads.co.uk/wp-content/uplo ... kde-01.png (Die bearbeiteten Dateien blenden in dem Bild über Lilatöne je nach Bearbeitungsalter aus).
Würde mich nicht wundern, wenn zumindest KDevelop das auch kann.

Benutzeravatar
Jonathan
Establishment
Beiträge: 1223
Registriert: 04.08.2004, 20:06

Re: Jammer-Thread

Beitrag von Jonathan » 16.05.2017, 11:25

Jedesmal wenn ich mal wieder eine Kleinigkeit in C++ programmiere, nervt es mich, dass sich dieses dämliche Konsolenfenster immer direkt schließt. Und dann stößt man im Netz wieder auf fundamentalistische Diskussionen, ob jetzt std::cing.get() oder system("pause") die bessere Lösung sei. Oder dass man einfach Strg+F5 statt nur F5 benutzen soll (was bei mir auch nicht immer hilft). Aber all das ist eigentlich Quatsch, eigentlich will man doch gar nicht das Konsolenfenster offen halten, weil man eigentlich nicht einmal ein Konsolenfenster haben will. Wieso kann VS nicht einfach ein integriertes Shell-Fenster haben. Jede andere dumme IDE für Python oder Java oder absolut jede Sprache kann das doch auch. Aber nein, scheinbar geht es nicht.
Nicht, dass VS dadurch jetzt fundamental unbenutzbar würde. Aber nervig ist es schon und es kann eigentlich gar nicht so schwer sein, so ein Feature einzubauen. Schade schade...
Lieber dumm fragen, als dumm bleiben!

Benutzeravatar
Krishty
Establishment
Beiträge: 6709
Registriert: 26.02.2009, 12:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Jammer-Thread

Beitrag von Krishty » 16.05.2017, 11:32

Man kann sich immerhin mit sowas selber helfen: http://stackoverflow.com/questions/5248 ... 2#28900432

————

Wo wir gerade dabei sind: Eine Drittkomponente bindet bei uns eine Viertkomponente ein, die globale Variablen anlegt, deren Konstruktoren fseek(stdout, 0, SEEK_BEGIN) aufrufen. Warum auch immer. Weder die Dritt- noch die Viertkomponente geben jeweils was nach stdout aus; in unserem Programm existiert sowas auch garnicht … und darum muss ich bei jedem Start X Assertions (Seek mit ungültigem Handle) wegklicken.

Ich kann keinen Code aufrufen, bevor das passiert (weil es in der Initialisierung einer statisch gelinkten DLL passiert, läuft meine EXE da noch garnicht); darum habe ich im Debug-Modus unser Programm auf Konsole umgestellt. Eine leere Konsole rumschwirren zu haben ist weniger nervig als ständig Assertions wegklicken zu müssen.
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne

Benutzeravatar
Jonathan
Establishment
Beiträge: 1223
Registriert: 04.08.2004, 20:06

Re: Jammer-Thread

Beitrag von Jonathan » 16.05.2017, 11:49

Und nur um nochmal eins nachzulegen: Es ist eh schon eine Schande wie unglaublich schlecht die Standard-Konsole ist, wenn man bedenkt, dass man nicht einmal vernünftig Text markieren kann (bin gerade noch auf Win7, aber auch damals hätte es schon viel besser sein müssen...).
Lieber dumm fragen, als dumm bleiben!

kaiserludi
Establishment
Beiträge: 459
Registriert: 18.04.2002, 15:31

Re: Jammer-Thread

Beitrag von kaiserludi » 16.05.2017, 12:00

Jonathan hat geschrieben:Und nur um nochmal eins nachzulegen: Es ist eh schon eine Schande wie unglaublich schlecht die Standard-Konsole ist, wenn man bedenkt, dass man nicht einmal vernünftig Text markieren kann (bin gerade noch auf Win7, aber auch damals hätte es schon viel besser sein müssen...).
http://mridgers.github.io/clink/ hilft.
"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]

Benutzeravatar
Krishty
Establishment
Beiträge: 6709
Registriert: 26.02.2009, 12:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Jammer-Thread

Beitrag von Krishty » 16.05.2017, 21:48

Chrome kann kein einzelnes Tab zoomen, sondern immer nur eine ganze Domain. (https://superuser.com/questions/677967/ ... -in-domain)

Solche Sachen braucht auch keiner! Aber Backspace deaktivieren, das war UNBEDINGT nötig!!!!
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne

Benutzeravatar
MasterQ32
Establishment
Beiträge: 1230
Registriert: 07.10.2012, 14:56
Echter Name: Felix Queißner
Wohnort: Stuttgart & Region
Kontaktdaten:

Re: Jammer-Thread

Beitrag von MasterQ32 » 16.05.2017, 21:56

+1
Wer checkt diese Shaderprogrammierung denn?
JCL: Kein Mensch zwingt Sie jedoch, mit Shadern oder ueberhaupt mit Gamestudio zu arbeiten. Es gibt schliesslich auch andere schoene Hobbies, wie zum Beispiel das Sammeln von Bierdeckeln – JCL quotes

Benutzeravatar
Krishty
Establishment
Beiträge: 6709
Registriert: 26.02.2009, 12:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Jammer-Thread

Beitrag von Krishty » 16.05.2017, 23:16

Ich bin mir ziemlich sicher, dass Nvidia bei ID3D11Device::ResolveSubresource() das Gamma nicht bedenkt, obwohl ich mit B8G8R8A8_UNORM_SRGB arbeite. Als Ergebnis ist das MSAA auf Nvidia-Hardware nur brauchbar, so lange die UI eine dunkle Hintergrundfarbe nutzt. Bei AMD sieht alles perfekt aus. Und jetzt? Fuck this shit …
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne

Benutzeravatar
Jonathan
Establishment
Beiträge: 1223
Registriert: 04.08.2004, 20:06

Re: Jammer-Thread

Beitrag von Jonathan » 18.05.2017, 13:53

Putty ist doof.

Es funktioniert ja schon irgendwie, aber halt nur wenn man es richtig bedient. Und es ist so unglaublich unintiutiv. Und es ist so leicht, etwas falsch zu machen. Nochmal zur Erklärung:
Bild
Links hat man ein langes Menü mit Kategorien, rechts kann man dann die dazugehörigen Einstellungen ändern. Soweit, sogut. Es ist ja auch eine komplizierte Angelegenheit, da braucht man eben viele Optionen, kein Problem. Nur will man die natürlich nicht jedesmal neu angeben, also will man seine Profile (bzw. Sessions) speichern können. Das geht auch, nur das Problem ist, wie es geschieht. Es gibt in der Session Kategorie eine Liste mit Profilen, die man über die entsprechenden Buttons laden oder speichern kann. Per Doppelklick auf ein Profil wird sich direkt mit diesen Optionen verbunden.
Alles was ich machen wollte, war jetzt die Standardfarben zu ändern. Man geht also in Window/Colors, und passt es entsprechend an. Aus meiner Vergangenheit hatte ich mir noch behalten, dass man jetzt bloß nicht vergessen sollte, die Änderungen zu speichern, sonst sind sie beim nächsten Start verloren (und es gibt keine RÜckfrage). Also gehe ich in das Session Menü, wähle mein Profil aus und klicke auf Speichern. Und seitdem kann ich mich nicht mehr verbinden und bekomme nur einen Fehlersound, statt einer Fehlermeldung.

Was war passiert? Ich war in einem leeren Profil (ohne Host-Name und so), habe aus versehen dort meine Einstellungen geändert und mein altes Profil überschrieben. Ich dachte, ich hätte es vorher geladen, weil ich Sekunden zuvor darüber schon eine Verbindung gestartet hatte, allerdings per Doppelklick auf den Eintrag und nicht indem ich es erst lade und dann auf Open klicke.
Wie hätte man es richtig machen sollen? Nun, man solle beim starten von Putty ein Profil auswählen müssen (oder ein neues anlegen), bevor man anfangen kann, etwas daran zu ändern. Jede andere dämliche Software hat das Konzept von 'geöffneten Dateien' verstanden und setzt es vernünftig um, außer Putty. Putty ermutigt einen geradezu dazu Fehler zu machen und Daten (Einstellungen) zu verlieren. Sehr enttäuschend. Dabei hätte man doch nur ein paar fundamentale Konzepte verstehen und umsetzen müssen. Hätte man es direkt richtig gemacht, wäre der Aufwand nichteinmal nennenswert größer gewesen. Und das ist umso ärgerlicher als das Putty in seinem Bereich quasi die Standardsoftware ist.
Lieber dumm fragen, als dumm bleiben!

Benutzeravatar
Krishty
Establishment
Beiträge: 6709
Registriert: 26.02.2009, 12:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Jammer-Thread

Beitrag von Krishty » 18.05.2017, 14:00

Sollten Einstellungen für UI-Farben nicht sowieso getrennt sein von Einstellungen für Sessions & Verbindungen?
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne

Oprah Noodlemantra
Beiträge: 14
Registriert: 30.06.2015, 19:03

Re: Jammer-Thread

Beitrag von Oprah Noodlemantra » 19.05.2017, 12:23

mrz hat geschrieben:Sehe ich den Sinn davon nicht. Evtl für Hobbyprogrammierer.
Wer täglich programmiert nutzt nicht mehr die Maus für Navigation und klickt auf Tabs.
Ich hab das jetzt ein wenig benutzt, es sorgt vor allem dafür, dass das UI ein wenig bunter ist. Aber sinnlos ist das bestimmt nicht für jeden, selbst wenn er täglich programmiert.

Falls jemand den source code haben will, kann er mich gerne anschreiben.

Benutzeravatar
Krishty
Establishment
Beiträge: 6709
Registriert: 26.02.2009, 12:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Jammer-Thread

Beitrag von Krishty » 19.05.2017, 13:41

Oprah Noodlemantra hat geschrieben:Nutzt du Intellij?
Nee; ich wollte letzte Woche damit anfangen, aber die Zeit :(
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne

Benutzeravatar
Krishty
Establishment
Beiträge: 6709
Registriert: 26.02.2009, 12:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Jammer-Thread

Beitrag von Krishty » 22.05.2017, 13:58

Oh Gott, VRML. Alles ist bis ins Detail spezifiziert. Aber keine Sau hält sich dran.
  • 3DEdit Pro vertauscht Ambient & Emissive. (Wie zur Hölle kann das nicht auffallen?! Alles wird grau!)
  • Eine ganze Reihe Produkte schreibt mit der Z-Achse nach oben, obwohl der Standard gaaanz deutlich hervorhebt, dass Y nach oben zeigen muss.
  • 3D Studio MAX schreibt Namen in ANSI, obwohl schon die Dateisignatur lautet: #VRML V2.0 utf8
  • irgendeine Software, deren Namen ich noch nicht herausgefunden habe (Cinema 4D oder ZPrinter-Tools), schreibt Farben als Gleitkommazahlen mit dem Umfang [0…255] statt [0…1]. WAS ZUR HÖLLE?!
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne

Benutzeravatar
Jonathan
Establishment
Beiträge: 1223
Registriert: 04.08.2004, 20:06

Re: Jammer-Thread

Beitrag von Jonathan » 22.05.2017, 17:39

Ich habe gerade über eine Stunde damit verbrannt, herauszufinden, was der verfickte C++ Komma-Operator in dieser Zeile hier macht:

Code: Alles auswählen

Vector3f wo = -ray.d, wi;
Bis mir aufgegangen ist, dass es einfach nur zwei Deklarationen sind. Ich denke offensichtlich einmal wieder zu kompliziert. Aber ganz ehrlich, es ist nicht wirklich meine Schuld, wenn man bedenkt, dass C++ parsen im Allgemeinen unentscheidbar ist. Der Komma-Operator ist einfach keine schöne Syntax...
Lieber dumm fragen, als dumm bleiben!

Benutzeravatar
dot
Establishment
Beiträge: 1650
Registriert: 06.03.2004, 19:10
Echter Name: Michael Kenzel
Kontaktdaten:

Re: Jammer-Thread

Beitrag von dot » 22.05.2017, 17:49

Ich möchte an dieser Stelle nur anmerken, dass der verlinkte Blogpost Bullshit ist. Das Beispiel dort ist nicht korrektes C++, denn C++ verlangt genau um das dort beschriebene Problem eben entscheidbar zu machen nach dem Schlüßselwort typename. C++ parsing ist natürlich nicht unentscheidbar. Wundert mit aber auch nicht, dass in der C++ FQA Blödsinn steht, denn Sinnvolles hab ich dort noch nie gelesen... ;)

Alexander Kornrumpf
Moderator
Beiträge: 1641
Registriert: 25.02.2009, 14:37

Re: Jammer-Thread

Beitrag von Alexander Kornrumpf » 22.05.2017, 18:41

Wie sicher bist du, dass das "C++ FQA" nicht satirisch gemeint ist?
Zuletzt geändert von Alexander Kornrumpf am 22.05.2017, 18:44, insgesamt 1-mal geändert.

Helmut
Establishment
Beiträge: 229
Registriert: 11.07.2002, 15:49
Wohnort: Bonn
Kontaktdaten:

Re: Jammer-Thread

Beitrag von Helmut » 22.05.2017, 18:42

@dot
Nene, das Beispiel ist schon korrekt. typename ist nur notwendig, wenn ein dependent name vorkommt. In dem Beispiel tut es das aber nicht, da alle Typen bekannt sind.
In der Praxis ist das Kompilieren aber natürlich trotzdem entscheidbar, wie im Blog am Ende auch steht:
In practice, compilers limit template instantiation depth, so this is more of a theoretical problem than a practical one.

Benutzeravatar
Krishty
Establishment
Beiträge: 6709
Registriert: 26.02.2009, 12:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Jammer-Thread

Beitrag von Krishty » 22.05.2017, 22:43

Wir wissen ja, dass Windows 10 die User pausenlos ausspioniert. Bisher hieß es aber immer: Dann kauft die Enterprise-Edition! Da kann man die Spyware zumindest via Group Policy abschalten!

Nun … bad news, everybody!
Yeah. Did this a while back and I *thought* I had turned off telemetry. But nope.

The only way to stop telemetry is to block it at the router...which breaks Windows.

i blocked a lot of this stuff as well at the switchport at home and surprise, windows broke

Very interesting... What specifically about windows breaks, what happens? Does one get a bluescreen?

certain processes get stuck waiting for replies for things they think have been sent, lots of unexplained pauses and freezes
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne

Antworten