Functions | |
template<class F> | |
detail::expr< F > | dirstr::op (const F &f) |
Markiert einen Filter als Operand für eine logische Operation. | |
template<class E1, class E2> | |
detail::expr< detail::expr_binary_v< E1, E2, detail::and_op > > | dirstr::operator && (const detail::expr< E1 > &e1, const detail::expr< E2 > &e2) |
UND-verknüpft die Ausdrücke e1 und e2. | |
template<class E1, class E2> | |
detail::expr< detail::expr_binary_v< E1, E2, detail::or_op > > | dirstr::operator|| (const detail::expr< E1 > &e1, const detail::expr< E2 > &e2) |
ODER-verknüpft die Ausdrücke e1 und e2. | |
template<class E1, class E2> | |
detail::expr< detail::expr_binary_v< E1, E2, detail::xor_op > > | dirstr::operator^ (const detail::expr< E1 > &e1, const detail::expr< E2 > &e2) |
XOR-verknüpft die Ausdrücke e1 und e2. | |
template<class E> | |
detail::expr< detail::expr_not_v< E > > | dirstr::operator! (const detail::expr< E > &e) |
Negiert den Filter der durch den Ausdruck e repräsentiert wird. | |
template<class T> | |
filter_base * | dirstr::expr_f (const dirstr::detail::expr< T > &e) |
Transformiert einen boole'schen-Filterausdruck in ein filter_base-Objekt. |
class CppsNotTemporary { public: CppsNotTemporary() : cpp_f_("*.cpp") {} bool operator()(const std::string& e) const { return cpp_f_(e) && !notTemp_f_(e); } private: pattern_f cpp_f_; NoTemporaries notTemp_f_; }; ... dirstream str(".", pred_f(CppsNotTemporary())); ...
class FilterA {...}; class FilterB : public FilterA {}; FilterB b; FilterA& a = b; op(a) // Ups! Aus FilterB wird ein FilterA
filter_base* dirstr::expr_f | ( | const dirstr::detail::expr< T > & | e | ) | [inline] |
Transformiert einen boole'schen-Filterausdruck in ein filter_base-Objekt.
detail::expr<F> dirstr::op | ( | const F & | f | ) | [inline] |
Markiert einen Filter als Operand für eine logische Operation.
f | Ein filter-kompatibles Objekt. |
op(new pattern_f("*.cpp"));
detail::expr<detail::expr_binary_v<E1, E2, detail::and_op> > dirstr::operator && | ( | const detail::expr< E1 > & | e1, | |
const detail::expr< E2 > & | e2 | |||
) | [inline] |
detail::expr<detail::expr_not_v<E> > dirstr::operator! | ( | const detail::expr< E > & | e | ) | [inline] |
detail::expr<detail::expr_binary_v<E1, E2, detail::xor_op> > dirstr::operator^ | ( | const detail::expr< E1 > & | e1, | |
const detail::expr< E2 > & | e2 | |||
) | [inline] |
XOR-verknüpft die Ausdrücke e1 und e2.
Der resultierende Filter liefert für einen Eintrag e true, gdw: (e1(e) != 0) ^ (e2(e) != 0)
detail::expr<detail::expr_binary_v<E1, E2, detail::or_op> > dirstr::operator|| | ( | const detail::expr< E1 > & | e1, | |
const detail::expr< E2 > & | e2 | |||
) | [inline] |
ODER-verknüpft die Ausdrücke e1 und e2.
Der resultierende Filter liefert für einen Eintrag e true, gdw: (e1(e) != 0) || (e2(e) != 0)