builder module¶
-
namespace
cauldron¶ - template <class Object, class... Value>
-
class
Builder¶ - #include <builder.h>
Strategy which generates
Objectinstances with constructor arguments generated from corresponding strategies.- Note
Objectshould have appropriate constructor so types and order of passed strategies agree with types and order of constructor parameters or compile-time error will arise.- Template Parameters
Object: type of objects generated by strategy.
Inherits from cauldron::CloneHelper< Object, Builder< Object, Value... > >
Public Functions
-
Builder(const cauldron::Strategy<Value>&... strategy)¶ - Parameters
strategy: strategy to generate constructor arguments from.
-
Builder(const Builder<Object, Value...> &builder)¶ Default copy constructor doesn’t fit since we’re using
std::unique_ptras class members which is not copyable.
-
Object
operator()() const¶ Generates pseudo-random
Objectinstance.
Private Functions
- template <std::size_t... Indices>
-
Object
produce(const std::tuple<std::unique_ptr<cauldron::Strategy<Value>>...> &strategies, std::index_sequence<Indices...>) const¶ Helper function for unpacking
Builder::strategies_tuple into variadicStrategyinstances.
-
Object
produce(const std::unique_ptr<cauldron::Strategy<Value>>&... strategy) const¶ Helper function for producing values from variadic
Strategyinstances.
- template <std::size_t... Indices>
-
std::tuple<std::unique_ptr<cauldron::Strategy<Value>>...>
clone_strategies(const std::tuple<std::unique_ptr<cauldron::Strategy<Value>>...> &strategies, std::index_sequence<Indices...>) const¶ Helper function for unpacking
Builder::strategies_tuple into variadicStrategyinstances.