Inheritance diagram for dirstr::pattern_f:

Public Member Functions | |
| pattern_f (const char *pattern, entry_type types=files_and_dirs_not_dot_or_dot_dot, bool checkPath=false, bool ignoreCase=false) | |
| bool | operator() (const std::string &entryName) const |
| Liefert true, falls entryName dem im Ctor übergebenen Pattern genügt und vom richtigen Typ ist. | |
| ADD_CLONE_IMPL (pattern_f) | |
Classes | |
| class | invalid_pattern |
| Exception die geworfen wird, falls ein ungültiges Pattern an pattern_f übergeben wurde. More... | |
pattern_f unterstützt derzeit weder Ranges noch Negation, d.h. [a-z] matched entweder 'a', '-' oder 'z' nicht ein beliebiges Zeichen zwischen a und z.
Auf POSIX.2 konformen Systemen sollte auf die weitaus leistungsfähigeren Funktionen fnmatch bzw. glob zurückgegriffen werden. fnmatch kann man mit dem dirstream z.B. wie folgt nutzen:
#include <fnmatch.h> struct FnMatcher { FnMatcher(const char* pattern, int flags) : pattern_(pattern) , flags_(flags) {} bool operator()(const std::string& e) const { return ::fnmatch(pattern_, e.c_str(), flags_); } private: const char* pattern_; int flags_; }; ... dirstream s(".", pred_f(FnMatcher("*.cpp", 0));
| dirstr::pattern_f::pattern_f | ( | const char * | pattern, | |
| entry_type | types = files_and_dirs_not_dot_or_dot_dot, |
|||
| bool | checkPath = false, |
|||
| bool | ignoreCase = false | |||
| ) | [inline, explicit] |
| pattern | Muster dem auszuwählende Einträge genügen müssen. | |
| types | Eintragstypen die untersucht werden sollen. | |
| checkPath | false, falls nur der Name des Eintrags, nicht aber sein Pfad beim pattern matching berücksichtigt werden soll. false ist der Default-Wert. |
| ignoreCase | true, falls case-insensitiv verglichen werden soll. |
| pattern_f::invalid_pattern | pattern_f::invalid_pattern |
1.5.2