Ich brauche eine Möglichkeit zu validieren, dass eine konstante Zeichenfolge ein bestimmtes Zeichen zum Zeitpunkt der Kompilierung enthält. Ich dachte über die Verwendung von static_assert, aber traf eine Ziegelmauer, weil ich versuchte, mit der .find-Methode, die nicht konstant ist.Gibt es kreative Möglichkeiten, um zu überprüfen, ob eine Zeichenfolge zum Zeitpunkt der Kompilierung oder vor ihrer Verwendung ein verbotenes Zeichen enthält?
Ich habe eine Option, die Überprüfung im Konstruktor der Klasse (Instanzen sind static const
Mitglieder der genannten Klasse).
Aber bevor ich das Bullet beiße (da die Änderung des Konstruktorverhaltens andere Implikationen hat), würde ich gerne sehen, ob irgendjemand sonst eine dieser kreativen Out-of-the-Box-Ideen hat, um dies noch zu erledigen, vorzugsweise zur Kompilierzeit .
Sie können die Funktion constexpr aus C-Literal String verwenden. Gcc hat auch eine Extension, so dass udl auf eine Literal-Zeichenfolge erlaubt ist. – Jarod42
Spot auf! Ich habe es geschafft, es zum Laufen zu bringen. Obwohl ich denke, @AndyG Antwort ist besser lesbar (Kennzeichnung als Antwort, um anderen zu helfen), das ist, was ich geschafft habe, mit Ihrem Vorschlag fertig zu werden: –