ZeroErr
zeroerr::AggregateOf< T, Inner > Class Template Reference

#include <aggregate_of.h>

Inheritance diagram for zeroerr::AggregateOf< T, Inner >:
Collaboration diagram for zeroerr::AggregateOf< T, Inner >:

Classes

struct  GetTupleDomainMapValue
 

Public Types

using ValueType = T
 
using CorpusType = std::tuple< typename Inner::CorpusType... >
 

Public Member Functions

 AggregateOf (Inner &&... inner)
 
CorpusType GetRandomCorpus (Rng &rng) const override
 
ValueType GetValue (const CorpusType &v) const override
 
CorpusType FromValue (const ValueType &v) const override
 
void Mutate (Rng &rng, CorpusType &v, bool only_shrink) const override
 
- Public Member Functions inherited from zeroerr::Domain< T, std::tuple< Inner::CorpusType... > >
virtual ~Domain ()=default
 
virtual T GetRandomValue (Rng &rng) const
 
virtual T GetValue (const std::tuple< Inner::CorpusType... > &v) const=0
 
virtual std::tuple< Inner::CorpusType... > ParseCorpus (IRObject v) const
 
virtual IRObject SerializeCorpus (const std::tuple< Inner::CorpusType... > &v) const
 
virtual void Mutate (Rng &rng, std::tuple< Inner::CorpusType... > &v, bool only_shrink=false) const=0
 

Member Typedef Documentation

◆ CorpusType

template<typename T , typename... Inner>
using zeroerr::AggregateOf< T, Inner >::CorpusType = std::tuple<typename Inner::CorpusType...>

◆ ValueType

template<typename T , typename... Inner>
using zeroerr::AggregateOf< T, Inner >::ValueType = T

Constructor & Destructor Documentation

◆ AggregateOf()

template<typename T , typename... Inner>
zeroerr::AggregateOf< T, Inner >::AggregateOf ( Inner &&...  inner)
inline

Member Function Documentation

◆ FromValue()

template<typename T , typename... Inner>
CorpusType zeroerr::AggregateOf< T, Inner >::FromValue ( const ValueType v) const
inlineoverridevirtual

◆ GetRandomCorpus()

template<typename T , typename... Inner>
CorpusType zeroerr::AggregateOf< T, Inner >::GetRandomCorpus ( Rng rng) const
inlineoverridevirtual

◆ GetValue()

template<typename T , typename... Inner>
ValueType zeroerr::AggregateOf< T, Inner >::GetValue ( const CorpusType v) const
inlineoverride

◆ Mutate()

template<typename T , typename... Inner>
void zeroerr::AggregateOf< T, Inner >::Mutate ( Rng rng,
CorpusType v,
bool  only_shrink 
) const
inlineoverride

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