Ich möchte mit dem unter https://research.swtch.com/sparse beschriebenen Trick eine dichte Ganzzahlmenge in C++ erstellen. Dieser Ansatz erzielt eine gute Leistung, indem er sich selbst erlaubt, nicht initialisierten Speicher zu lesen.
Wie kann ich diese Datenstruktur implementieren, ohne undefiniertes Verhalten auszulösen und ohne mit Tools wie Valgrand oder ASAN in Konflikt zu geraten? ?
Bearbeiten: Es scheint, als würden sich die Antwortenden auf das Wort „nicht initialisiert“ konzentrieren und es im Kontext des Sprachstandards interpretieren. Das war wahrscheinlich eine schlechte Wortwahl meinerseits – „nicht initialisiert“ bedeutet hier nur, dass sein Wert für die korrekte Funktion des Algorithmus nicht wichtig ist. Es ist offensichtlich möglich, diese Datenstruktur sicher zu implementieren (LLVM macht dies in SparseMultiSet). Meine Frage ist, was der beste und leistungsfähigste Weg ist, dies zu tun?
Wie kann „Nutzung nicht initialisierten Speichers für Spaß und Profit“ sicher implementiert werden? ⇐ C++
-
- Similar Topics
- Replies
- Views
- Last post