Erstellen einer constexpr-Karte, die durch Aufrufe einer constexpr-Funktion in C++ 17 gefüllt wird
Posted: 11 Jan 2025, 09:17
Ich habe eine constexpr-Funktion, die CRC zur Kompilierzeit berechnet. Ich muss eine Zuordnung zwischen CRCs, die von dieser Funktion generiert werden, und String-Eingaben erstellen und sie zur Laufzeit verwenden (noch besser, wenn es auch möglich ist, sie auch zur Kompilierungszeit zu verwenden).
Der Kartenerstellungsprozess sollte innerhalb dieser constexpr-Funktion erfolgen, damit alle generierten CRCs automatisch protokolliert werden. Es muss auch nicht unbedingt eine Karte sein. Nur Schlüssel-Wert-Paare, die nachgeschlagen werden konnten.
Ich verwende übrigens C++ 17.
Das ist meine Funktionssignatur:
Ich habe verschiedene Möglichkeiten mit Vorlagen und anderen Dingen ausprobiert, aber am Ende kompiliere ich entweder Code mit undefiniertem Verhalten oder einer nicht veränderbaren Kontextwand.
Der Kartenerstellungsprozess sollte innerhalb dieser constexpr-Funktion erfolgen, damit alle generierten CRCs automatisch protokolliert werden. Es muss auch nicht unbedingt eine Karte sein. Nur Schlüssel-Wert-Paare, die nachgeschlagen werden konnten.
Ich verwende übrigens C++ 17.
Das ist meine Funktionssignatur:
Code: Select all
template
static constexpr unsigned int getCrc32(const char (&str)[length])
{
//calculate compile time CRC
// What I need should happen here: saving the calculated
// CRC and string to be accessed outside later
}