Empirical
Public Types | Public Member Functions | Protected Attributes | Friends | List of all members
emp::TraitSet< TARGET_T > Class Template Reference

A TraitSet houses a collection of traits and can trigger them to all be evaluated at once. More...

#include <Trait.h>

Public Types

using target_t = TARGET_T
 
using trait_t = BaseTrait< target_t >
 

Public Member Functions

 TraitSet ()
 
 TraitSet (TraitSet &&in)
 
 TraitSet (const TraitSet &in)
 
 ~TraitSet ()
 
TraitSetoperator= (TraitSet &&in)
 
TraitSetoperator= (const TraitSet &in)
 
trait_toperator[] (size_t id)
 
const trait_toperator[] (size_t id) const
 
size_t GetSize () const
 
void Clear ()
 
size_t Find (const std::string &name) const
 
bool Has (const std::string &name) const
 
template<typename VALUE_T , typename... EXTRA>
void AddTrait (const std::string &name, const std::function< VALUE_T(target_t &)> &fun, EXTRA &&...extra)
 
std::string EvalString (size_t id, target_t &target) const
 
double EvalValue (size_t id, target_t &target) const
 
emp::vector< std::string > EvalStrings (target_t &target) const
 
emp::vector< double > EvalValues (target_t &target) const
 
size_t EvalBin (target_t &target, emp::vector< size_t > bin_counts) const
 
emp::vector< double > CalcOffsets (target_t &target1, target_t &target2) const
 
 TraitSet (const TraitManager< TRAIT_TYPES... > &tm)
 
template<typename IN_TYPE >
const IN_TYPE & Get (const TraitKey< IN_TYPE > &in_key) const
 
template<typename IN_TYPE >
IN_TYPE & Get (const TraitKey< IN_TYPE > &in_key)
 

Protected Attributes

emp::vector< emp::Ptr< trait_t > > traits
 

Friends

class TraitManager< TRAIT_TYPES... >
 

Detailed Description

template<typename TARGET_T>
class emp::TraitSet< TARGET_T >

A TraitSet houses a collection of traits and can trigger them to all be evaluated at once.

Member Typedef Documentation

template<typename TARGET_T>
using emp::TraitSet< TARGET_T >::target_t = TARGET_T
template<typename TARGET_T>
using emp::TraitSet< TARGET_T >::trait_t = BaseTrait<target_t>

Constructor & Destructor Documentation

template<typename TARGET_T>
emp::TraitSet< TARGET_T >::TraitSet ( )
inline
template<typename TARGET_T>
emp::TraitSet< TARGET_T >::TraitSet ( TraitSet< TARGET_T > &&  in)
inline
template<typename TARGET_T>
emp::TraitSet< TARGET_T >::TraitSet ( const TraitSet< TARGET_T > &  in)
inline
template<typename TARGET_T>
emp::TraitSet< TARGET_T >::~TraitSet ( )
inline
template<typename... TRAIT_TYPES>
emp::TraitSet< TRAIT_TYPES >::TraitSet ( const TraitManager< TRAIT_TYPES... > &  tm)

Member Function Documentation

template<typename TARGET_T>
template<typename VALUE_T , typename... EXTRA>
void emp::TraitSet< TARGET_T >::AddTrait ( const std::string &  name,
const std::function< VALUE_T(target_t &)> &  fun,
EXTRA &&...  extra 
)
inline
template<typename TARGET_T>
emp::vector<double> emp::TraitSet< TARGET_T >::CalcOffsets ( target_t target1,
target_t target2 
) const
inline
template<typename TARGET_T>
void emp::TraitSet< TARGET_T >::Clear ( )
inline
template<typename TARGET_T>
size_t emp::TraitSet< TARGET_T >::EvalBin ( target_t target,
emp::vector< size_t >  bin_counts 
) const
inline
template<typename TARGET_T>
std::string emp::TraitSet< TARGET_T >::EvalString ( size_t  id,
target_t target 
) const
inline
template<typename TARGET_T>
emp::vector<std::string> emp::TraitSet< TARGET_T >::EvalStrings ( target_t target) const
inline
template<typename TARGET_T>
double emp::TraitSet< TARGET_T >::EvalValue ( size_t  id,
target_t target 
) const
inline
template<typename TARGET_T>
emp::vector<double> emp::TraitSet< TARGET_T >::EvalValues ( target_t target) const
inline
template<typename TARGET_T>
size_t emp::TraitSet< TARGET_T >::Find ( const std::string &  name) const
inline
template<typename TARGET_T>
template<typename IN_TYPE >
const IN_TYPE& emp::TraitSet< TARGET_T >::Get ( const TraitKey< IN_TYPE > &  in_key) const
inline
template<typename TARGET_T>
template<typename IN_TYPE >
IN_TYPE& emp::TraitSet< TARGET_T >::Get ( const TraitKey< IN_TYPE > &  in_key)
inline
template<typename TARGET_T>
size_t emp::TraitSet< TARGET_T >::GetSize ( ) const
inline
template<typename TARGET_T>
bool emp::TraitSet< TARGET_T >::Has ( const std::string &  name) const
inline
template<typename TARGET_T>
TraitSet& emp::TraitSet< TARGET_T >::operator= ( TraitSet< TARGET_T > &&  in)
inline
template<typename TARGET_T>
TraitSet& emp::TraitSet< TARGET_T >::operator= ( const TraitSet< TARGET_T > &  in)
inline
template<typename TARGET_T>
trait_t& emp::TraitSet< TARGET_T >::operator[] ( size_t  id)
inline
template<typename TARGET_T>
const trait_t& emp::TraitSet< TARGET_T >::operator[] ( size_t  id) const
inline

Friends And Related Function Documentation

template<typename TARGET_T>
friend class TraitManager< TRAIT_TYPES... >
friend

Member Data Documentation

template<typename TARGET_T>
emp::vector<emp::Ptr<trait_t> > emp::TraitSet< TARGET_T >::traits
protected

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