-
Mark OLESEN authored
- Generalized means over filtering table entries based on their keys, values, or both. Either filter (retain), or optionally prune elements that satisfy the specified predicate. filterKeys and filterValues: - Take a unary predicate with the signature bool operator()(const Key& k); - filterEntries: Takes a binary predicate with the signature bool operator()(const Key& k, const T& v); == The predicates can be normal class methods, or provide on-the-fly using a C++ lambda. For example, wordRes goodFields = ...; allFieldNames.filterKeys ( [&goodFields](const word& k){ return goodFields.match(k); } ); Note that all classes that can match a string (eg, regExp, keyType, wordRe, wordRes) or that are derived from a Foam::string (eg, fileName, word) are provided with a corresponding bool operator()(const std::string&) that either performs a regular expression or a literal match. This allows such objects to be used directly as a unary predicate when filtering any string hash keys. Note that HashSet and hashedWordList both have the proper operator() methods that also allow them to be used as a unary predicate. - Similar predicate selection with the following: * tocKeys, tocValues, tocEntries * countKeys, countValues, countEntries except that instead of pruning, there is a simple logic inversion.
cf889306