#include <bases.h>
Public Member Functions | |
Filtered (const Strategy< Value > &strategy, const Sieve< Value > &sieve) | |
Filtered (const Filtered< Value > &strategy) | |
Filtered< Value > | filter (const Requirement< Value > &requirement) const override |
Value | operator() () const override |
Public Member Functions inherited from cauldron::CloneHelper< Value, Filtered< Value > > | |
std::unique_ptr< Strategy < Value > > | clone () const override |
Public Member Functions inherited from cauldron::Strategy< Value > | |
virtual Union< Value > | operator|| (const Strategy< Value > &strategy) const |
virtual Union< Value > | operator|| (const Union< Value > &strategy) const |
virtual Mapped< Value > | map (const Converter< Value > &converter) const |
Protected Attributes | |
std::unique_ptr< Strategy < Value > > | strategy_ |
Sieve< Value > | sieve_ |
Strategy which filters out values that satisfies defined strategies::Requirement
instances.
Hereafter a requirement is an unary predicate .
Value | type of values generated by strategy. |
|
inlineexplicit |
|
inline |
Default copy constructor doesn't fit since we're using std::unique_ptr
as class member which is not copyable.
|
inlineoverridevirtual |
Returns a new strategy that generates values from the strategy which satisfy provided strategies::Requirement
instance.
Note that if the requirement
is too hard to satisfy this might result in failing with OutOfCycles
.
Reimplemented from cauldron::Strategy< Value >.
|
inlineoverridevirtual |
Generates value that satisfies defined strategies::Requirement
instances.
strategies::OutOfCycles |
Implements cauldron::Strategy< Value >.
|
protected |
|
protected |