bases module¶
-
namespace
cauldron
¶ - template <typename Value, class Derived>
-
class
CloneHelper
¶ - #include <bases.h>
Helper class for implementing
Strategy::clone
method using curiously recurring template pattern .- Template Parameters
Value
: type of values generated by strategy.Derived
: derivative strategy class.
Inherits from cauldron::Strategy< Value >
- template <typename Value>
-
class
Filtered
¶ - #include <bases.h>
Strategy which filters out values that satisfies defined
strategies::Requirement
instances.Hereafter a requirement is an unary predicate .
- Template Parameters
Value
: type of values generated by strategy.
Inherits from cauldron::CloneHelper< Value, Filtered< Value > >
Public Functions
-
Filtered
(const Filtered<Value> &strategy)¶ Default copy constructor doesn’t fit since we’re using
std::unique_ptr
as class member which is not copyable.
-
Filtered<Value>
filter
(const Requirement<Value> &requirement) const¶ 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 withOutOfCycles
.
-
Value
operator()
() const¶ Generates value that satisfies defined
strategies::Requirement
instances.- Exceptions
strategies::OutOfCycles
:
- template <typename Value>
-
class
Mapped
¶ - #include <bases.h>
Strategy which modifies values with defined
strategies::Converter
instances.Hereafter a converter is an operator .
- Template Parameters
Value
: type of values generated by strategy.
Inherits from cauldron::CloneHelper< Value, Mapped< Value > >
Public Functions
-
Mapped
(const Mapped<Value> &strategy)¶ Default copy constructor doesn’t fit since we’re using
std::unique_ptr
as class member which is not copyable.
-
Mapped<Value>
map
(const Converter<Value> &converter) const¶ Returns a new strategy that generates values from the strategy modified with provided
strategies::Converter
instance.
-
Value
operator()
() const¶ Generates value and modifies it with defined
strategies::Converter
instances.
- template <typename Value>
-
class
Strategy
¶ - #include <bases.h>
Strategies base class.
Hereafter strategy is an object which encapsulates an algorithm for generating specific type of values.
- Template Parameters
Value
: type of values generated by strategy.
Subclassed by cauldron::CloneHelper< Value, Derived >, cauldron::CloneHelper< Value, Filtered< Value > >, cauldron::CloneHelper< Value, Floats< Value > >, cauldron::CloneHelper< Value, Integers< Value > >, cauldron::CloneHelper< Value, Just< Value > >, cauldron::CloneHelper< Value, Mapped< Value > >, cauldron::CloneHelper< Value, Union< Value > >
Public Functions
-
virtual Value
operator()
() const = 0¶ Generates data.
-
virtual Union<Value>
operator||
(const Strategy<Value> &strategy) const¶ Returns a new strategy that generates values from either original strategy or provided one.
-
virtual Union<Value>
operator||
(const Union<Value> &strategy) const¶ Same result as for any other strategy. Basically added for possible overriding with support of strategies’ union associativity.
-
virtual Filtered<Value>
filter
(const Requirement<Value> &requirement) const¶ 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 withOutOfCycles
.
- template <class Value>
-
class
Union
¶ - #include <bases.h>
Union of strategies. Generates values from any one of given strategies.
- Template Parameters
Value
: type of values generated by strategy.
Inherits from cauldron::CloneHelper< Value, Union< Value > >
Public Functions
-
Union
(const Union<Value> &strategy)¶ Default copy constructor doesn’t fit since we’re using
std::unique_ptr
in class member which is not copyable.
-
Value
operator()
() const¶ Generates value from one of
strategies_
elements.