Derzeit, wenn Sie ein Prädikat negieren möchten, müssen Sie eine std::<algorithm>_if_not
Variante oder ein Lambda verwenden. Aber im Interesse der Wissenschaftler Ich möchte wissen, ob dies möglich ist:Wie verwenden Sie std :: not1 und std :: not2?
std::string s("hello");
std::find_if(s.begin(), s.end(), std::not1(::ispunct));
Ohne meine eigene Funktion Objekt zu schreiben, wie dieser Code funktioniert?
Mit der Bibliothek Grundlagen v2 TS, 'std :: not_fn (:: ispunct)'. Beachten Sie jedoch, dass die Zeichen in "unsigned char" konvertiert werden müssen, bevor sie in "ispunct" übergeben werden, damit dieser Aufruf für eine beliebige Zeichenfolge sicher ist. – chris