cauldron  0.0.0
 All Classes Namespaces Files Functions Variables Typedefs
Public Member Functions | List of all members
cauldron::Builder< Object, Value > Class Template Reference

#include <builder.h>

Inheritance diagram for cauldron::Builder< Object, Value >:
Inheritance graph
[legend]
Collaboration diagram for cauldron::Builder< Object, Value >:
Collaboration graph
[legend]

Public Member Functions

 Builder (const cauldron::Strategy< Value > &...strategy)
 
 Builder (const Builder< Object, Value...> &builder)
 
Object operator() () const override
 
- Public Member Functions inherited from cauldron::CloneHelper< Object, Builder< Object, Value...> >
std::unique_ptr< Strategy
< Object > > 
clone () const override
 
- Public Member Functions inherited from cauldron::Strategy< Object >
virtual Union< Object > operator|| (const Strategy< Object > &strategy) const
 
virtual Union< Object > operator|| (const Union< Object > &strategy) const
 
virtual Filtered< Object > filter (const Requirement< Object > &requirement) const
 
virtual Mapped< Object > map (const Converter< Object > &converter) const
 

Detailed Description

template<class Object, class... Value>
class cauldron::Builder< Object, Value >

Strategy which generates Object instances with constructor arguments generated from corresponding strategies.

Note
Object should 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
Objecttype of objects generated by strategy.

Constructor & Destructor Documentation

template<class Object, class... Value>
cauldron::Builder< Object, Value >::Builder ( const cauldron::Strategy< Value > &...  strategy)
inlineexplicit
Parameters
strategystrategy to generate constructor arguments from.
template<class Object, class... Value>
cauldron::Builder< Object, Value >::Builder ( const Builder< Object, Value...> &  builder)
inline

Default copy constructor doesn't fit since we're using std::unique_ptr as class members which is not copyable.

Member Function Documentation

template<class Object, class... Value>
Object cauldron::Builder< Object, Value >::operator() ( ) const
inlineoverridevirtual

Generates pseudo-random Object instance.

Implements cauldron::Strategy< Object >.


The documentation for this class was generated from the following file: