Die Suche ergab 1747 Treffer

von dot
27.12.2024, 22:57
Forum: Programmiersprachen, Quelltext und Bibliotheken
Thema: Was erlauben C++?
Antworten: 8
Zugriffe: 1006

Re: Was erlauben C++?

C++ hat das Konzept von Sequence Points . Das sind festgelegte Punkte, an denen alle Wirkungen realisiert sein müssen. Der häufigste Sequence Point ist das Semikolon. nicht mehr; seit C++11 basiert die Spezifikation auf sequenced before relationships ;) aber ja [expr.cond]/1 The first expression is...
von dot
12.11.2024, 13:01
Forum: Programmiersprachen, Quelltext und Bibliotheken
Thema: [C++] Datentyp für große Bitfields
Antworten: 16
Zugriffe: 3509

Re: [C++] Datentyp für große Bitfields

Es ist in C grundsätzlich erlaubt und wird (manchmal) unter dem Begriff " type punning " referenziert. Es ist in C technically erlaubt, effektiv aber ziemlich nutzlos. Was passiert ist völlig implementation-defined, am Ende bekommst du bestenfalls das selbe Ergebnis wie mit memcpy() oder ...
von dot
12.11.2024, 12:41
Forum: Grafikprogrammierung
Thema: [DX9] sorry... Texturupload beschleunigen
Antworten: 12
Zugriffe: 2085

Re: [DX9] sorry... Texturupload beschleunigen

Oder ich nehm DX11, das müsste alles viel einfacher sein und Computen kann ich da glaube ich auch. Kann ich? Weiß nicht. OpenGL könnte sicher alles, aber ich habe bisher nur Schlimmes über die Extension Hell gehört. Portieren nach D3D11 wird auf jeden Fall um Größenordnungen einfacher als nach Vulk...
von dot
20.10.2024, 19:21
Forum: Programmiersprachen, Quelltext und Bibliotheken
Thema: [C++] Datentyp für große Bitfields
Antworten: 16
Zugriffe: 3509

Re: [C++] Datentyp für große Bitfields

Na dann vermutlich einfach __m128i und per _mm_set_epi16() bzw. _mm_extract_epi16() drauf zugreifen?
von dot
20.10.2024, 19:13
Forum: Grafikprogrammierung
Thema: Model Format für Splines
Antworten: 12
Zugriffe: 2102

Re: Model Format für Splines

.obj? 😉
von dot
18.10.2024, 23:28
Forum: Programmiersprachen, Quelltext und Bibliotheken
Thema: [C++] Datentyp für große Bitfields
Antworten: 16
Zugriffe: 3509

Re: [C++] Datentyp für große Bitfields

Schrompf hat geschrieben: 14.10.2024, 22:25 Welchen Datentyp nehme ich da als Basis, damit der Compiler die Fresse hält und ich nicht irgendwann in ein UndefinedBehaviour latsche?
Schwer zu sagen, müsste man mehr über den konkreten Anwendungsfall wissen…
von dot
18.10.2024, 23:27
Forum: Programmiersprachen, Quelltext und Bibliotheken
Thema: [C++] Datentyp für große Bitfields
Antworten: 16
Zugriffe: 3509

Re: [C++] Datentyp für große Bitfields

Es ist in C grundsätzlich erlaubt und wird (manchmal) unter dem Begriff " type punning " referenziert. Es ist in C technically erlaubt, effektiv aber ziemlich nutzlos. Was passiert ist völlig implementation-defined, am Ende bekommst du bestenfalls das selbe Ergebnis wie mit memcpy() oder ...
von dot
18.10.2024, 23:17
Forum: Programmiersprachen, Quelltext und Bibliotheken
Thema: [C++] Datentyp für große Bitfields
Antworten: 16
Zugriffe: 3509

Re: [C++] Datentyp für große Bitfields

P. S.: Den C11 Standard hatte ich gewählt, weil er für rund 80.- zu haben war. Der aktuelle C18 Standard hätte rund 240.- gekostet. C11 und C18 unterscheiden sich jedoch nur marginal - und diese Abweichungen betreffen (nach meinen Recherchen) in erster Linie die stdlib. Meine Vermutung: Wenn in ein...
von dot
10.10.2024, 12:16
Forum: Programmiersprachen, Quelltext und Bibliotheken
Thema: Betragsfunktion ohne branching
Antworten: 16
Zugriffe: 3564

Re: Betragsfunktion ohne branching

Es sei auch darauf hingewiesen, dass gcc und clang für ein einfaches std::abs(x) das hier produzieren : blub(int): mov eax, edi neg eax cmovs eax, edi ret bzw. auf ARM blub(int): cmp w0, #0 cneg w0, w0, mi ret Ich bezweifle mal sehr stark, dass ein Vermeiden der Branch hier was bringt. Vermutlich is...
von dot
10.10.2024, 11:54
Forum: Programmiersprachen, Quelltext und Bibliotheken
Thema: Betragsfunktion ohne branching
Antworten: 16
Zugriffe: 3564

Re: Betragsfunktion ohne branching

Der Vollständigkeit halber: C++17 The value of E1 << E2 is E1 left-shifted E2 bit positions; vacated bits are zero-filled. If E1 has an unsigned type, the value of the result is \mathrm{E1} \times 2^\mathrm{E2} , reduced modulo one more than the maximum value representable in the result type. Otherw...
von dot
14.09.2024, 21:50
Forum: Allgemeines Talk-Brett
Thema: Petition gegen Planned Obsolescence bei Videospielen
Antworten: 25
Zugriffe: 7470

Re: Petition gegen Planned Obsolescence bei Videospielen

fwiw, ging mir erst auch ganz genau gleich ^^
von dot
13.09.2024, 09:57
Forum: Allgemeines Talk-Brett
Thema: Petition gegen Planned Obsolescence bei Videospielen
Antworten: 25
Zugriffe: 7470

Re: Petition gegen Planned Obsolescence bei Videospielen

Aber Deutschland ist schon bei 118%, nach meinem Verständnis bringen da mehr deutsche Stimmen wohl nichts. Doch, bringen auf jeden Fall was. Es braucht 100% in >= 7 Mitgliedsstaaten (fehlt also nur noch einer). Insgesamt braucht es aber >= 1 M Stimmen und da zählt alles was man bekommen kann.
von dot
09.02.2024, 11:35
Forum: Allgemeines Talk-Brett
Thema: Jammer-Thread
Antworten: 7623
Zugriffe: 1868172

Re: Jammer-Thread

Wäre damit außer Vulkan dann nicht alles tot? Es gibt mehr als nur Desktop PC… Vulkan läuft natively auf Linux, Windows und Android, mit einem Emulationslayer auf Apple, gar nicht auf Konsolen (soweit mir bekannt). Zumindest für Mobile wirst du vermutlich so oder so einen separaten Pfad brauchen. S...
von dot
13.12.2023, 10:30
Forum: Allgemeines Talk-Brett
Thema: Jammer-Thread
Antworten: 7623
Zugriffe: 1868172

Re: Jammer-Thread

Das Ergebnis des Placement New kann hingegen problemlos genutzt werden, um das Objekt zu manipulieren:   float * f = new (&i) float{ 42.f }; // lifetime i end; f ist nun Alias auf i   *f = 43.f; // OK Korrekt, das Ergebnis des Placement-New kann problemlos genutzt werden. Das ursprüngliche Beis...
von dot
12.12.2023, 23:41
Forum: Allgemeines Talk-Brett
Thema: Jammer-Thread
Antworten: 7623
Zugriffe: 1868172

Re: Jammer-Thread

Das invoked im ersten Durchlauf UB. var ist nicht transparently replaceable mit einem float . Aber erst ab C++20 IIRC? In C++17 und davor dürfte das gültig sein, weil es dieses Konzept damals noch nicht gab. Soweit ich das sehe war das seit C++98 UB. C++20 hat lediglich die Anforderungen bezüglich ...
von dot
12.12.2023, 22:30
Forum: Allgemeines Talk-Brett
Thema: Jammer-Thread
Antworten: 7623
Zugriffe: 1868172

Re: Jammer-Thread

Und, weniger natürlich, aus Placement new . Beispiel (ich glaube, das war der GCC-Bug):   int var;   for(int i = 0; i < 123; i++) {     if(i & 1)       new (&var) int(42);     else       new (&var) float(42.f);     someFunction(var);   } Bei jedem geraden Schleifendurchlauf ist var ein ...
von dot
12.12.2023, 08:29
Forum: Allgemeines Talk-Brett
Thema: Jammer-Thread
Antworten: 7623
Zugriffe: 1868172

Re: Jammer-Thread

Kann mir auch nicht vorstellen, dass sich das gut auf die Performance auswirkt. Weder Compilezeit noch Laufzeit, wenn man voll optimieren will. Meinem Verständnis nach waren die Typen von Pointern auf LLVM IR Ebene schon seit langem nicht (nie?) für Optimierungen nutzbar. Und Typechecking ist etwas...
von dot
15.11.2023, 02:20
Forum: Programmiersprachen, Quelltext und Bibliotheken
Thema: std::enable_if welcher compiler hat recht?
Antworten: 2
Zugriffe: 3687

Re: std::enable_if welcher compiler hat recht?

Frage 1: Wer hat recht? ich vermute leider gcc und clang Keiner hat unrecht, denn es handelt sich hier offenbar um einen Bug im Standard: https://www.open-std.org/jtc1/sc22/wg21/docs/cwg_active.html#2746. Ich glaube es ist unterspezifiziert ob die implizite Instanziierung eines Klassentemplates auc...
von dot
02.11.2023, 03:53
Forum: Grafikprogrammierung
Thema: OpenGL Schadowmap relativ zur kamera
Antworten: 16
Zugriffe: 6582

Re: OpenGL Schadowmap relativ zur kamera

Andy90 hat geschrieben: 01.11.2023, 22:17 Ich merke schon, Schatten richtig und vor allem gut zu rendern ist eine Wissenschaft für sich :D
Es ist und bleibt ein ungelöstes Problem der Computergrafik… ^^
von dot
20.10.2023, 01:19
Forum: Programmiersprachen, Quelltext und Bibliotheken
Thema: [C] function prototype mit const pointer
Antworten: 15
Zugriffe: 7815

Re: [C] function prototype mit const pointer

alternativ:

Code: Alles auswählen

auto lol()
{
    struct result { int integer; float fp; void* pointer; };
    return result { 123, -9.81f, nullptr };
}

int main()
{
    auto [integer, fp, pointer] = lol();
}
von dot
19.10.2023, 14:08
Forum: Allgemeines Talk-Brett
Thema: Jammer-Thread
Antworten: 7623
Zugriffe: 1868172

Re: Jammer-Thread

Ist ja interessant, dass C++ das einbaut. Gibt es da einen Anwendungsfall für? Tyr kann das glaub' ich aus Symmetriegründen schon ziemlich lange, aber mir ist nicht klar wozu man das je bräuchte. Ich meine das Problem mit Float ist letztlich, dass die Operationen darauf zur Compilezeit auszuführen ...
von dot
11.10.2023, 02:00
Forum: Programmiersprachen, Quelltext und Bibliotheken
Thema: [C] function prototype mit const pointer
Antworten: 15
Zugriffe: 7815

Re: [C] function prototype mit const pointer

starcow hat geschrieben: 10.10.2023, 17:16 Aber vielleicht habt ihr ein gutes Argument dafür, es im Prototypen tatsächlich wegzulassen.
Es ist für den Aufruf der Funktion irrelevant, in einem Prototypen also einfach nur Noise…
von dot
10.10.2023, 14:49
Forum: Programmiersprachen, Quelltext und Bibliotheken
Thema: struct in Kombination mit typedef
Antworten: 7
Zugriffe: 5047

Re: struct in Kombination mit typedef

Könnte man nicht einfach dazu übergehen, ganz grundsätzlich anonyme structs in Kombination mit typedef zu verwenden (quasi als Standard)? Naja, wie du selber schon angemerkt hast geht das halt nicht wenn dein struct Pointer auf sich selbst beinhalten soll. Abgesehen von einem solchen Fall kann man ...
von dot
09.10.2023, 21:11
Forum: Programmiersprachen, Quelltext und Bibliotheken
Thema: [C] function prototype mit const pointer
Antworten: 15
Zugriffe: 7815

Re: [C] function prototype mit const pointer

Ich suche nach einer Erklärung, weshalb sich die Compiler (clang / gcc) nicht beschweren (auch kein Warning mit -pedantic -Wall -Wextra) wenn man ihnen einen Funktionsprototypen serviert, der sich um ein const (bezogen auf den Pointer selbst) von der eigentlichen Funktion unterscheidet. Ein top-lev...
von dot
20.09.2023, 14:35
Forum: Programmiersprachen, Quelltext und Bibliotheken
Thema: [C++] concept, das die Anzahl Member eines Types testet
Antworten: 5
Zugriffe: 5146

Re: [C++] concept, das die Anzahl Member eines Types testet

Es gibt alternativ auch nen Trick, das auto [a, b] = t; in einen Lambda zu verschieben. Lambdas sind seit C++20 nämlich primary expressions und demzufolge darf man sie jetzt in nem concept einsetzen. Allerdings hat der GCC dazu einen (bekannten) Bug, selbst der neueste, so dass diese Option bei uns...
von dot
20.09.2023, 14:11
Forum: Programmiersprachen, Quelltext und Bibliotheken
Thema: struct in Kombination mit typedef
Antworten: 7
Zugriffe: 5047

Re: struct in Kombination mit typedef

Dass die gleich heißen dürfen, wusste ich nicht. Guter Punkt. Also ehrlich gesagt fehlt mir jetzt auch eine valide Referenz dafür, dass man das so machen darf. Weder clang noch gcc geben mir in diesem Zusammenhang eine Warnung aus - was ja aber eigentlich noch kein Garant dafür ist, dass dies auch ...
von dot
19.09.2023, 17:28
Forum: Programmiersprachen, Quelltext und Bibliotheken
Thema: [C++] concept, das die Anzahl Member eines Types testet
Antworten: 5
Zugriffe: 5146

Re: [C++] concept, das die Anzahl Member eines Types testet

ich weiß nicht, ob das überhaupt möglich ist: ich möchte per concept die Anzahl Member eines Types testen. Im Allgemeinen ist das nicht möglich. Für bestimmte Typen kann man z.B. rumprobieren wie viele Initializer man reinbekommt, aber das sind alles Hacks die nur unter bestimmten Voraussetzungen f...
von dot
17.07.2023, 01:02
Forum: Programmiersprachen, Quelltext und Bibliotheken
Thema: c-faq.com - UB in Snippet?
Antworten: 22
Zugriffe: 9612

Re: c-faq.com - UB in Snippet?

Ich hab jetzt mal aus Neugier versucht, die explizite Stelle im Standard zu finden, die Bezug nimmt, zum cast int to unsigned int . Leider bin ich nicht fündig geworden - beim Thema "cast" gabs jedenfalls diesbezüglich nichts zu lesen. In C wäre das 6.3.1.3/3 (https://open-std.org/JTC1/SC...
von dot
10.07.2023, 22:50
Forum: Programmiersprachen, Quelltext und Bibliotheken
Thema: c-faq.com - UB in Snippet?
Antworten: 22
Zugriffe: 9612

Re: c-faq.com - UB in Snippet?

Wie ich sehe, machst du das per cast. Im ISO Standard (den du gepostet hattest) müsste das ja eigentlich ebenfalls zu finden sein - also ob der cast von unsigned nach signed nun implementation-defined ist oder (hoffentlich) "uniform-defined" (wenn man das so nennen kann). Ich vergesse imm...
von dot
10.07.2023, 17:54
Forum: Programmiersprachen, Quelltext und Bibliotheken
Thema: c-faq.com - UB in Snippet?
Antworten: 22
Zugriffe: 9612

Re: c-faq.com - UB in Snippet?

- Ist es überhaupt erlaubt, das höchstwertige Bit eines signed int mittels den Bitwise-Operatoren (&, ^, |) zu verändern? Ich denke ja. Zwei Probleme, die ich in deinem Code da oben sehe: char muss nicht unbedingt signed sein und int muss nicht unbedingt 32-Bit breit sein, das könnte also überl...