Die Suche ergab 1747 Treffer
- 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...
- 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 ...
- 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...
- 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?
- 20.10.2024, 19:13
- Forum: Grafikprogrammierung
- Thema: Model Format für Splines
- Antworten: 12
- Zugriffe: 2102
Re: Model Format für Splines
.obj? 😉
- 18.10.2024, 23:28
- Forum: Programmiersprachen, Quelltext und Bibliotheken
- Thema: [C++] Datentyp für große Bitfields
- Antworten: 16
- Zugriffe: 3509
- 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 ...
- 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...
- 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...
- 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...
- 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 ^^
- 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.
- 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...
- 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...
- 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 ...
- 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 ...
- 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...
- 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...
- 02.11.2023, 03:53
- Forum: Grafikprogrammierung
- Thema: OpenGL Schadowmap relativ zur kamera
- Antworten: 16
- Zugriffe: 6582
- 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();
}
- 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 ...
- 11.10.2023, 02:00
- Forum: Programmiersprachen, Quelltext und Bibliotheken
- Thema: [C] function prototype mit const pointer
- Antworten: 15
- Zugriffe: 7815
- 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 ...
- 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...
- 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...
- 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 ...
- 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...
- 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...
- 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...
- 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...