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
Tiles
Establishment
Beiträge: 1990
Registriert: 11.01.2003, 13:21
Kontaktdaten:

Re: Jammer-Thread

Beitrag von Tiles »

Stimmt auch wieder. Das hat natürlich auch viel mit Gewohnheit zu tun. Aber du kennst mich, ich bin Fan einer sich selbst erklärenden UI. Und das gilt für mich für alle Betriebssysteme und Programme :)
Free Gamegraphics, Freeware Games https://www.reinerstilesets.de
Die deutsche 3D Community: https://www.3d-ring.de
Alexander Kornrumpf
Moderator
Beiträge: 2106
Registriert: 25.02.2009, 13:37

Re: Jammer-Thread

Beitrag von Alexander Kornrumpf »

Das mit der selbst-erklärenden UI ist lustig, weil ich mich noch genau erinnere als ich das erste mal nano benutzt habe, und die shortcut liste sofort verstanden habe. Am Ende kannst du es halt nicht allen recht machen.
Benutzeravatar
Tiles
Establishment
Beiträge: 1990
Registriert: 11.01.2003, 13:21
Kontaktdaten:

Re: Jammer-Thread

Beitrag von Tiles »

Aber du kannst dicht rankommen :)
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 »

WARNING: UNPROTECTED PRIVATE KEY FILE!

DAS ist also das Problem? Dass ich ein Keyfile das nur ich hier privat auf meinem privaten Rechner habe, wo kein anderer Mensch rankommt, nicht mit einem Passwort versehen habe weil ich mich damit AUTOMATISCH anmelden will, ohne eine verfickte extra noch erzwungene Passworteingabe? Ihr habt doch nen Knall.
Free Gamegraphics, Freeware Games https://www.reinerstilesets.de
Die deutsche 3D Community: https://www.3d-ring.de
Benutzeravatar
Schrompf
Moderator
Beiträge: 4838
Registriert: 25.02.2009, 23:44
Benutzertext: Lernt nur selten dazu
Echter Name: Thomas Ziegenhagen
Wohnort: Dresden
Kontaktdaten:

Re: Jammer-Thread

Beitrag von Schrompf »

Evtl. meint die Warnung nur, dass die Dateirechte auf dem Private Key zu großzügig sind. 600 wird empfohlen, soweit ich weiß, was bedeutet: nur Dein User darf den lesen und schreiben, aber alle anderen User nicht.
Früher mal Dreamworlds. Früher mal Open Asset Import Library. Heutzutage nur noch so rumwursteln.
Benutzeravatar
Tiles
Establishment
Beiträge: 1990
Registriert: 11.01.2003, 13:21
Kontaktdaten:

Re: Jammer-Thread

Beitrag von Tiles »

Ja, den Mecker bekam ich noch zusätzlich. Ich hatte noch 644 drin. Zum Mecker wegmachen braucht es dann chmod 600.

Aber die obige Fehlermeldungs sagt tatsächlich dass der private.ppk ein Passwort benötigt. Puh, das muss sicher auch irgendwo einstellbar sein. Mein alter Server verlangt das nicht. Wie gesagt werde ich alt und vergesslich. Und bei der ganzen Aktion habe ich mir auch noch den ssh_host_rsa_key zerteppert, bin also immer noch nicht drin. Ich werde wohl gleich noch mal den Server komplett platt machen und neu anfangen. Nicht zur Strafe, nur zur Übung. Immerhin weiss ich jetzt auf was ich achten muss ^^
Free Gamegraphics, Freeware Games https://www.reinerstilesets.de
Die deutsche 3D Community: https://www.3d-ring.de
smurfer
Establishment
Beiträge: 195
Registriert: 25.02.2002, 14:55

Re: Jammer-Thread

Beitrag von smurfer »

Tiles hat geschrieben: 30.07.2021, 09:41 Aber du kannst dicht rankommen :)
Bei gleichem Bedienparadigma theoretisch ja, bei unterschiedlichen Bedienparadigmen wird es schon wieder schwierig, im Schlimmstfall erzeugst du so die nächste Variante :)
Benutzeravatar
Tiles
Establishment
Beiträge: 1990
Registriert: 11.01.2003, 13:21
Kontaktdaten:

Re: Jammer-Thread

Beitrag von Tiles »

Ja. Das stimmt. Wir kennen ja alle das Meme mit den Standards ^^
Free Gamegraphics, Freeware Games https://www.reinerstilesets.de
Die deutsche 3D Community: https://www.3d-ring.de
Benutzeravatar
xq
Establishment
Beiträge: 1581
Registriert: 07.10.2012, 14:56
Alter Benutzername: MasterQ32
Echter Name: Felix Queißner
Wohnort: Stuttgart & Region
Kontaktdaten:

Re: Jammer-Thread

Beitrag von xq »

Tiles hat geschrieben: 30.07.2021, 08:55 Und dass mit ^ eigentlich ctrl gemeint ist. Und eigentlich ist der Standard für Speichern Ctrl + S. Und Öffnen Ctrl + O. Den Speichern Teil konnte ich mir wengistens ergoogeln. Aber wieso muss ich grundsätzlich immer erst Google anmachen wenn ich mit Linux zu tun habe? Ich jammere bei Nano mal wieder nicht umsonst über mein Lieblingsthema, die Usability.
Das ist einfach deine Sozialisierung. Du bist (scheinbar) unter Windows aufgewachsen, denn ^X für "Strg" und "X" gleichzeitig drücken existiert schon seit Urzeiten und Microsoft sind hier die, die mit dem Standard gebrochen haben

Nur mal ein bisschen geschichtliches Wissen hier einstreuen
War mal MasterQ32, findet den Namen aber mittlerweile ziemlich albern…

Programmiert viel in ⚡️Zig⚡️ und nervt Leute damit.
Benutzeravatar
Tiles
Establishment
Beiträge: 1990
Registriert: 11.01.2003, 13:21
Kontaktdaten:

Re: Jammer-Thread

Beitrag von Tiles »

Definitiv interessant. Aber Windows hat sich eben durchgesetzt und diesen Standard geändert. Das ist auch Teil der History. Ctrl O , oder gar ^O für Speichern ist definitv kein Standard mehr. Noch nicht mal mehr innerhalb von Linux.

Das ist wie mit der WASD Steuerung bei Games. Irgendwann war das einfach Standard bei den Ballergames. Und bei Load und Save hat sich auf dem PC einfach der Hotkey mit der besten zugehörigen Bedeutung durchgesetzt. Control + Open. Und Control + Save. Das ist selbsterklärend, das kann man sich merken, damit lässt sich arbeiten. Und es tut in so ziemlich jedem Programm. Bei O und R bei Nano tue ich mir einfach schwer mit der Bedeutung. Weil sie vom Namenssinn einfach nicht passen. R ist für mich Reload und O ist Open.

Natürlich kann man sich an alles gewöhnen. Und irgendwann fällt es einem gar nicht mehr auf. Ich bin aber leider so gestrickt dass ich mich an manche Sachen nie gewöhnen kann und auch gar nicht will. Ich bin da einfach Extremist, ich kann nicht anders, sorry ^^
Free Gamegraphics, Freeware Games https://www.reinerstilesets.de
Die deutsche 3D Community: https://www.3d-ring.de
Benutzeravatar
Jonathan
Establishment
Beiträge: 2352
Registriert: 04.08.2004, 20:06
Kontaktdaten:

Re: Jammer-Thread

Beitrag von Jonathan »

Arbeiten mit Dateinamen. In Python:

Code: Alles auswählen

if fn.endswith(".png"):
  print(fn[:-4])
In C++:

Code: Alles auswählen

if(fn.find(".png") != string::npos)
  cout << fn.substr(0, fn.size()-4);
(Und das ist die schlechte Variante. Ein echtes "endswith" ist noch komplizierter. Außerdem funktioniert der zweite "Trick" auch nur, weil man den ganzen Anfang vom String haben will, will man nur die Mitte wird es n o c h k o m p l i z i e r t e r.)

Die C++ Standardbibliothek ist einfach nur ein riesiger Haufen Atommüll, für den niemand ein Endlager finden kann...
Lieber dumm fragen, als dumm bleiben!
https://jonathank.de/games/
NytroX
Establishment
Beiträge: 358
Registriert: 03.10.2003, 12:47

Re: Jammer-Thread

Beitrag von NytroX »

@Jonathan: Ich fühle mit dir :-)

Btw: beide von deinen Implementierungen funktionieren nicht wie gewollt bzw. sind nicht sehr stabil.
Beispiel: /home/user/.bashrc
Welche Extension hat die Datei? (Tipp: keine).

Welche Endung hat dann /home/user/.png ? :-P
Und in beiden Implementierungen ist das Ergebnis nicht korrekt.

Deine C++ Implementierung geht auch nicht bei "test.png.text", d.h. sie ist nicht equivalent zu der Implentierung in Python.

Damit will ich eigentlich nur sagen, dass das Problem mit den Extensions schwieriger ist, als man zunächst sieht. Und wenn es dann nichts in der Standard-Library gibt, ist es halt blöd.

Hier mal ein Beispiel in D, welches auch in den o.g. Fällen korrekt funktioniert:

Code: Alles auswählen

if (fn.extension == ".png") {
  writeln(stripExtension(fn));
}
// "fn.extension" ist hier das gleiche wie "extension(fn)", ist also ein Funktionsaufruf.
Benutzeravatar
Schrompf
Moderator
Beiträge: 4838
Registriert: 25.02.2009, 23:44
Benutzertext: Lernt nur selten dazu
Echter Name: Thomas Ziegenhagen
Wohnort: Dresden
Kontaktdaten:

Re: Jammer-Thread

Beitrag von Schrompf »

Ich empfehle C++17 std::filesystem:

Code: Alles auswählen

if( fn.extension() == ".png" ) 
  cout << fn.remove_extension();
Früher mal Dreamworlds. Früher mal Open Asset Import Library. Heutzutage nur noch so rumwursteln.
Benutzeravatar
Krishty
Establishment
Beiträge: 8229
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Jammer-Thread

Beitrag von Krishty »

Außerdem haben sie unser Gejammer erhört und mit C++20 ein std::string::ends_with() eingeführt.
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
EyDu
Establishment
Beiträge: 100
Registriert: 24.08.2002, 18:52
Wohnort: Berlin
Kontaktdaten:

Re: Jammer-Thread

Beitrag von EyDu »

In Python würde man das ganze auch eher mit dem `pathlib`-Modul lösen, das kümmert sich auch um allerhand Details:

Code: Alles auswählen

path = pathlib.Path("/spam/ham/eggs.png")

if path.suffix == ".png":
    ...
Krishty hat geschrieben: 30.07.2021, 14:23 Außerdem haben sie unser Gejammer erhört und mit C++20 ein std::string::ends_with() eingeführt.
Verrückt, das ist komplett an mir vorbeigegangen. Dabei habe ich mich so häufig geärgert, dass es die Methode nicht gab :D
smurfer
Establishment
Beiträge: 195
Registriert: 25.02.2002, 14:55

Re: Jammer-Thread

Beitrag von smurfer »

Das Abhängigkeitkeits- und Inkompatiblitätsmoloch Python als Gegenentwurf zur "C++-Müllhalde" zu nennen macht mich irgendwie ein wenig nervös. :-D
Benutzeravatar
Jonathan
Establishment
Beiträge: 2352
Registriert: 04.08.2004, 20:06
Kontaktdaten:

Re: Jammer-Thread

Beitrag von Jonathan »

NytroX hat geschrieben: 30.07.2021, 13:06 Btw: beide von deinen Implementierungen funktionieren nicht wie gewollt bzw. sind nicht sehr stabil.
Schrompf hat geschrieben: 30.07.2021, 13:22 Ich empfehle C++17 std::filesystem:
Joah. Zugegeben, das Beispiel war ein wenig mehr aus der Python-Ecke gedacht. Wenn ich da weiß, dass ich einen Ordner mit viele png-Dateien und ein paar anderen habe, ist ein [:-4] einfach viel schneller getippt, als erst nochmal im Internet nachzuschlagen, wie man es auf die richtige Art mit der Pathlib lösen würde. Und in der Praxis ist das auch ziemlich robust, weil man ja vlt. weiß, dass man das Skript nur für diesen einen Ordner braucht und es nicht auf einem anderen Betriebssystem ausführen wird und es auch keinen Angreifer gibt, der mutwillig passend benannte Dateien kopiert, die es kaputt machen. Für das C++ Beispiel gilt das zumindest in meinem Falle allerdings tatsächlich deutlich weniger, weil ich da mehr langfristigen Code schreibe (wenn man sich die Mühe macht, dass in C++ zu implementieren, dann muss es auch bis in alle Ewigkeiten wiederverwendet werden, bevor es die Mühe wert war :D).
In diesem konkreten Fall werde ich vermutlich das tatsächlich nochmal schöner implementieren. Aber trotzdem bleibt es ja leider wahr, das strings in C++ (zumindest noch für eine ganze Weile) einfach keinen Spaß machen...
Lieber dumm fragen, als dumm bleiben!
https://jonathank.de/games/
Benutzeravatar
Jonathan
Establishment
Beiträge: 2352
Registriert: 04.08.2004, 20:06
Kontaktdaten:

Re: Jammer-Thread

Beitrag von Jonathan »

smurfer hat geschrieben: 30.07.2021, 16:59 Das Abhängigkeitkeits- und Inkompatiblitätsmoloch Python als Gegenentwurf zur "C++-Müllhalde" zu nennen macht mich irgendwie ein wenig nervös. :-D
Hm, ok. Wobei ich das in Python mit Dingen wie Conda für eigentlich ganz ok gelöst halte. Manches ist auch da echt schlimm (eigentlich alles, was mit ML zu tun hat :D) aber in vielen Fällen funktioniert es halt einfach, einen passenden Befehl auszuführen und ein paar Minuten später eine Umgebung zu haben, die funktioniert. Ich meine auch mal von Paketmanagern für C++ gehört zu haben die ähnliches können, aber solange das nicht jeder benutzt, ist es irgendwie auch witzlos und funktioniert dann nur in ganz wenigen Spezialfällen wirklich (d.h. spart Zeit).

Gerade was Inkompatibilitäten angeht ist C++ natürlich irgendwie sehr gut, weil fast alles abwärtskompatibel ist. Dafür kommen aber auch viel zu selten dringend benötigte Features und das alles fühlt sich noch an, als sei man in den 80ern gestrandet. Klar, beides gleichzeitig zu haben schließt sich ziemlich stark aus, aber C++ ist mir doch eben etwas zu sehr von der goldenen Mitte entfernt. Ich will auch absolut nicht suggerieren, mit Python zufrieden zu sein, da könnte ich genauso seitenweise ranten.
Lieber dumm fragen, als dumm bleiben!
https://jonathank.de/games/
Benutzeravatar
Lord Delvin
Establishment
Beiträge: 574
Registriert: 05.07.2003, 11:17

Re: Jammer-Thread

Beitrag von Lord Delvin »

Kann man die C++ std::lib Teile, die man tatsächlich nicht benutzt, gut rausoptimieren, wenn man kleine Teile davon verwendet?
Ich hatte immer das Gefühl, dass das nicht so einfach ist.
XML/JSON/EMF in schnell: OGSS
Keine Lust mehr auf C++? Versuche Tyr: Get & Get started
Benutzeravatar
Schrompf
Moderator
Beiträge: 4838
Registriert: 25.02.2009, 23:44
Benutzertext: Lernt nur selten dazu
Echter Name: Thomas Ziegenhagen
Wohnort: Dresden
Kontaktdaten:

Re: Jammer-Thread

Beitrag von Schrompf »

Runtime statisch linken, dann passiert ein Großteil des Unbenutzt-Rauswerfens automatisch. Krishty würde sicher trotzdem noch was entdecken, aber der hat ja auch Ahnung. Ich war immer ganz zufrieden.
Früher mal Dreamworlds. Früher mal Open Asset Import Library. Heutzutage nur noch so rumwursteln.
Benutzeravatar
Lord Delvin
Establishment
Beiträge: 574
Registriert: 05.07.2003, 11:17

Re: Jammer-Thread

Beitrag von Lord Delvin »

Ja aber werden dann auch Funktionen weggeworfen, die nur über irgendeine VTable am Leben erhalten werden?
Das wäre ja ein Argument, die STL klein zu halten.
XML/JSON/EMF in schnell: OGSS
Keine Lust mehr auf C++? Versuche Tyr: Get & Get started
Benutzeravatar
Krishty
Establishment
Beiträge: 8229
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Jammer-Thread

Beitrag von Krishty »

Kommt auf Compiler & Laufzeitbibliothek an.

Visual C++ ist ziemlich schlecht im Entfernen unreferenzierter Daten. Das hängt einerseits damit zusammen, dass es nicht erkennt, wenn globale Daten nach der Initialisierung nicht weiter verwendet werden – da landen regelmäßig Lookup-Tables u. Ä. im Kompilat, wenn die CRT-Entwickler komplexe K’toren nutzen oder const vergessen haben. Weiterhin hat es Probleme, AVX-Intrinsics statisch aufzulösen. Wenn also irgendwas SSE/AVX im K’tor oder D’tor nutzt, zieht Visual C++ es ziemlich sicher aufgrund angenommener globaler Wirkung mit rein, auch wenn es konkret nicht benutzt wird. Und vtables packt Visual C++ gar nicht an – darf es auchnicht, weil die für COM/.NET fundamental sind. Ich bin froh, dass Devirtualization in simplen Fällen funktioniert.

GCC hingegen erkennt ziemlich gut, wenn Daten nicht referenziert werden und führt auch gern ein automatisches const drauf durch (verschiebt den Kram ins Read-only-Segment, auch wenn der Entwickler das const vergessen hat).

Dafür hat GCC wiederum kein __declspec(novtable), und damit kann man wirklich einen Haufen unerefernzierter virtueller Funktionen rausschmeißen. Ich habe noch irgendwo einen Assimp-Patch in der Pipeline, an dem ich das mal messen muss.

Aber diese Dinge bringen ja sowieso nur was, sofern die Laufzeitbibliothek statisch gelinkt wird. Das war unter Windows recht häufig, als die noch nicht Teil des Betriebssystems war, wird aber nun weniger. Unter Linux-Systemen scheint eine statisch gelinkte libc recht selten zu sein, aber da ist meine Sample Size winzig.
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
Schrompf
Moderator
Beiträge: 4838
Registriert: 25.02.2009, 23:44
Benutzertext: Lernt nur selten dazu
Echter Name: Thomas Ziegenhagen
Wohnort: Dresden
Kontaktdaten:

Re: Jammer-Thread

Beitrag von Schrompf »

Nur, wenn die entsprechenden Typen nie instanziiert werden. Aber Du wärst überrascht, wie *selten* virtuelle Funktionen in der STL sind. Mir fällt ehrlich gesagt nicht ein einziges Beispiel ein.
Früher mal Dreamworlds. Früher mal Open Asset Import Library. Heutzutage nur noch so rumwursteln.
Benutzeravatar
Krishty
Establishment
Beiträge: 8229
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Jammer-Thread

Beitrag von Krishty »

std::stringstream ist der worst offender. Wenn du nicht lesen und schreiben möchtest, ersetzt du es durch std::ostringstream oder std::istringstream und kannst zusehen, wie die KiB purzeln – nicht nur aufgrund kleinerer vtables, weniger virtual und unreferenzierter Funktionen, sondern auch aufgrund der furchtbar komplexen Initialisierung.
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
Schrompf
Moderator
Beiträge: 4838
Registriert: 25.02.2009, 23:44
Benutzertext: Lernt nur selten dazu
Echter Name: Thomas Ziegenhagen
Wohnort: Dresden
Kontaktdaten:

Re: Jammer-Thread

Beitrag von Schrompf »

Ok, jetzt kenne ich doch ein Beispiel. Die allermeisten Dinge in der STL vererben wie irre, sicher, aber halt nur als Meta Programming, weil's in C++ halt keine echte Meta-Logik gibt, sondern nur diese von hinten nach vorne zu lesenden Template-Basteleien.
Früher mal Dreamworlds. Früher mal Open Asset Import Library. Heutzutage nur noch so rumwursteln.
Benutzeravatar
Lord Delvin
Establishment
Beiträge: 574
Registriert: 05.07.2003, 11:17

Re: Jammer-Thread

Beitrag von Lord Delvin »

Das mit dem novtable verstehe ich nicht. Ich dachte immer, dass in C++ die VTable eigentlich nur eine Sprungtabelle mit Funktionszeigern ist. Wieso würde ich die für instanzfreie Typen überhaupt generieren? Ich meine den VTable-Typ, klar. Aber die Tabelle selbst doch nicht, oder?

Oder ist in C++ die VTable auch der Laufzeitrepräsentant des Typen? Wobei ich mich nicht an Typpointer in C++ erinnern kann. Oder Laufzeittypprüfungen gegen diese :)
Bei so Fragen würde man gar nicht glauben, dass ich seit Stunden in meinem LLVM-Backend rumschraube :D
XML/JSON/EMF in schnell: OGSS
Keine Lust mehr auf C++? Versuche Tyr: Get & Get started
Benutzeravatar
Krishty
Establishment
Beiträge: 8229
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Jammer-Thread

Beitrag von Krishty »

Wir hatten ja damals die Diskussion, ob virtuelle Funktionen während des K’tors der Basisklasse auf die abgeleitete Klasse verweisen sollten oder nicht.

struct Base {
  virtual void foo() { … }
  Base::Base() {
    foo(); // Welches foo() wird hier aufgerufen?
  }
};

struct Derived : Base {
  void foo() override { … }
};


Wenn du in C++ im K’tor Base::Base bist, und Derived davon abgeleitet wurde, landet der foo()-Aufruf bei Base::foo() statt Derived::foo(). Im D’tor gilt das gleiche.

Wenn du also denkst, du hättest einen instanzfreien Typ, dann stimmt das nicht – du hast eine Instanz während Basisk’tor und D’tor für abgeleitete Klassen laufen.

Im Code sieht Derived::Derived() dann so aus:

  this->__vftbl = &Base::__vftbl; // der Typ ist nun Base
  … Rumpf von Base::Base() …
  this->__vftbl = &Derived::__vftbl; // der Typ ist nun Derived
  … Rumpf von Dervied::Derived() …


Indem du Base mit __declspec(novtable) deklarierst, garantierst du dem Compiler, dass du Base::foo() niemals benutzt. Damit entfallen vtable und Typinfo für Base sowie Base::foo(), dessen einzige Referenz ja im vtable von Base war.

  this->__vftbl = &Derived::__vftbl; // Na los, Punk! Make my day!
  … Rumpf von Base::Base() …
  … Rumpf von Dervied::Derived() …


Microsoft deklariert z. B. alle COM-Schnittstellen novtable.

Dein Standpunkt war damals, IIRC, dass ein Aufruf von Derived::foo() zu bevorzugen wäre (so macht es z. B. C#; wir verblieben, dass das Geschmackssache ist) und dass man die Optimierung dem Compiler überlassen könne. Ich finde im Angesicht von globalen Funktionen, Mehrfachvererbung und Ausnahmebehandlung noch immer, dass man dafür zuerst das Halteproblem lösen müsste.
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
Lord Delvin
Establishment
Beiträge: 574
Registriert: 05.07.2003, 11:17

Re: Jammer-Thread

Beitrag von Lord Delvin »

Ja, ok, ich glaube ich habe verstanden, was ich übersehen habe.
Bei meinem VTable-Layout würde ich die nicht brauchen, weil du im Base-Konstruktor die Derived-VTable verwenden würdest und Mehrfachvererbung mache ich anders.
Ich glaube auch, dass meine Strategie dieselbe ist, wie in C# und Java.

Aber trotzdem. Wenn du zeigen könntest, dass Base nur an erster Stelle geerbt wird, dann wären die Layouts doch identisch und du könntest Base als eigenständige Tabelle fallen lassen. Oder übersehe ich noch irgendwas fundamentales?

Ich meine wir reden hier über die Instanz des Layouts oder nicht?

Man könnte ja genauso auch versuchen, zu beweisen, dass foo eigentlich nicht virtual ist und deswegen keinen Slot in der VTable bekommt. Das ist aber eine andere Analyse. Bei der ich dann letztlich auch erwarten würde, dass sie bei großen Standardbibliotheken relativ chancenlos wird.
XML/JSON/EMF in schnell: OGSS
Keine Lust mehr auf C++? Versuche Tyr: Get & Get started
Benutzeravatar
Tiles
Establishment
Beiträge: 1990
Registriert: 11.01.2003, 13:21
Kontaktdaten:

Re: Jammer-Thread

Beitrag von Tiles »

Google announced in early 2020 that it will block content that is served via the insecure HTTP if the originating page uses HTTPS. The company decided to roll out the feature gradually by adding more and more file types to the blocklist. Executable files, e.g. .exe or .bat, are the first file types to be blocked, and the release of Chrome 86 put that block in place. Future versions of Chrome will block non-executable file types such as PDF, ZIP, or JPG files.
Wow! Just Wow!

Ich mein wenn da ne Warnung kommen würde dann wär das ja sogar geschickt. Aber es passiert einfach gar nix mehr.

Bin grade drüber gestolpert weil nach dem Umzug vom alten Server auf den neuen Server auf meiner alten Seite alle meine Downloadlinks nicht mehr gingen. Die sind fast alle noch http. Und Wordpress ist da eh Held der Arbeit, und macht das https oder http in Links unsichtbar. Zuerst hatte ich den neuen Server in Verdacht ...

Und die Bash hasst mich!
Dateianhänge
Abort.jpg
Free Gamegraphics, Freeware Games https://www.reinerstilesets.de
Die deutsche 3D Community: https://www.3d-ring.de
Benutzeravatar
Krishty
Establishment
Beiträge: 8229
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Jammer-Thread

Beitrag von Krishty »

Für den scheiß Microsoft Store durch tausend brennende Reifen gehüpft, Geld für die Registrierung bezahlt, US-Steuerschein besorgt, mit den kaputten Flash-Webseiten schattiger Zulieferer abgeärgert

dann kommt die erste Auszahlung und es passiert … NICHTS

und dann gehe ich ins Dashboard, und da ist alles auf FAILED (aber ohne E-Mail, Notification, oder Angabe von Gründen) und das Geld ist einfach WEG

und der Support-Link tut nichts anderes, als auf docs.microsoft.com zu verweisen

also muss ich Microsoft-Community-Foren nach dem Link durchsuchen, der mich ein Ticket erstellen lässt (sChOnMaL sFc /sCanNoW pRoBiErT?!)

mittelalterliche Scheiße, alles
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Antworten