Empirical
Public Types | Public Member Functions | Static Public Member Functions | List of all members
emp::memo_function< R(A1, A2, EXTRA...)> Class Template Reference

#include <memo_function.h>

Public Types

using size_t = std::size_t
 
using return_t = R
 
using fun_t = std::function< R(A1, A2, EXTRA...)>
 
using hash_t = emp::TupleHash< A1, A2, EXTRA... >
 
using this_t = memo_function< R(A1, A2, EXTRA...)>
 
using tuple_t = std::tuple< std::decay_t< A1 >, std::decay_t< A2 >, std::decay_t< EXTRA >... >
 

Public Member Functions

template<typename... Ts>
 memo_function (Ts &&...args)
 
 memo_function (const memo_function &)=default
 
 memo_function (memo_function &&)=default
 
this_toperator= (const this_t &)=default
 
this_toperator= (this_t &&)=default
 
this_toperator= (const fun_t &_f)
 
this_toperator= (fun_t &&_f)
 
template<typename T >
this_toperator= (T &&arg)
 
size_t size () const
 
bool Has (const A1 &k1, const A2 &k2, const EXTRA &...k_extra) const
 
void Clear ()
 
void Erase (const A1 &k1, const A2 &k2, const EXTRA &...k_extra)
 
return_t operator() (const A1 &k1, const A2 &k2, const EXTRA &...k_extra)
 
 operator bool () const
 
 operator std::function<R (A1, A2, EXTRA...)>() const
 
std::function< R(A1, A2, EXTRA...)> to_function () const
 

Static Public Member Functions

static size_t Hash (const A1 &k1, const A2 &k2, const EXTRA &...k_extra)
 

Member Typedef Documentation

template<class R , class A1 , class A2 , class... EXTRA>
using emp::memo_function< R(A1, A2, EXTRA...)>::fun_t = std::function<R(A1,A2,EXTRA...)>
template<class R , class A1 , class A2 , class... EXTRA>
using emp::memo_function< R(A1, A2, EXTRA...)>::hash_t = emp::TupleHash<A1,A2,EXTRA...>
template<class R , class A1 , class A2 , class... EXTRA>
using emp::memo_function< R(A1, A2, EXTRA...)>::return_t = R
template<class R , class A1 , class A2 , class... EXTRA>
using emp::memo_function< R(A1, A2, EXTRA...)>::size_t = std::size_t
template<class R , class A1 , class A2 , class... EXTRA>
using emp::memo_function< R(A1, A2, EXTRA...)>::this_t = memo_function<R(A1,A2,EXTRA...)>
template<class R , class A1 , class A2 , class... EXTRA>
using emp::memo_function< R(A1, A2, EXTRA...)>::tuple_t = std::tuple<std::decay_t<A1>,std::decay_t<A2>,std::decay_t<EXTRA>...>

Constructor & Destructor Documentation

template<class R , class A1 , class A2 , class... EXTRA>
template<typename... Ts>
emp::memo_function< R(A1, A2, EXTRA...)>::memo_function ( Ts &&...  args)
inline
template<class R , class A1 , class A2 , class... EXTRA>
emp::memo_function< R(A1, A2, EXTRA...)>::memo_function ( const memo_function< R(A1, A2, EXTRA...)> &  )
default
template<class R , class A1 , class A2 , class... EXTRA>
emp::memo_function< R(A1, A2, EXTRA...)>::memo_function ( memo_function< R(A1, A2, EXTRA...)> &&  )
default

Member Function Documentation

template<class R , class A1 , class A2 , class... EXTRA>
void emp::memo_function< R(A1, A2, EXTRA...)>::Clear ( )
inline
template<class R , class A1 , class A2 , class... EXTRA>
void emp::memo_function< R(A1, A2, EXTRA...)>::Erase ( const A1 &  k1,
const A2 &  k2,
const EXTRA &...  k_extra 
)
inline
template<class R , class A1 , class A2 , class... EXTRA>
bool emp::memo_function< R(A1, A2, EXTRA...)>::Has ( const A1 &  k1,
const A2 &  k2,
const EXTRA &...  k_extra 
) const
inline
template<class R , class A1 , class A2 , class... EXTRA>
static size_t emp::memo_function< R(A1, A2, EXTRA...)>::Hash ( const A1 &  k1,
const A2 &  k2,
const EXTRA &...  k_extra 
)
inlinestatic
template<class R , class A1 , class A2 , class... EXTRA>
emp::memo_function< R(A1, A2, EXTRA...)>::operator bool ( ) const
inline
template<class R , class A1 , class A2 , class... EXTRA>
emp::memo_function< R(A1, A2, EXTRA...)>::operator std::function<R ( A1  ,
A2  ,
EXTRA...   
) const
inline
template<class R , class A1 , class A2 , class... EXTRA>
return_t emp::memo_function< R(A1, A2, EXTRA...)>::operator() ( const A1 &  k1,
const A2 &  k2,
const EXTRA &...  k_extra 
)
inline
template<class R , class A1 , class A2 , class... EXTRA>
this_t& emp::memo_function< R(A1, A2, EXTRA...)>::operator= ( const this_t )
default
template<class R , class A1 , class A2 , class... EXTRA>
this_t& emp::memo_function< R(A1, A2, EXTRA...)>::operator= ( this_t &&  )
default
template<class R , class A1 , class A2 , class... EXTRA>
this_t& emp::memo_function< R(A1, A2, EXTRA...)>::operator= ( const fun_t _f)
inline
template<class R , class A1 , class A2 , class... EXTRA>
this_t& emp::memo_function< R(A1, A2, EXTRA...)>::operator= ( fun_t &&  _f)
inline
template<class R , class A1 , class A2 , class... EXTRA>
template<typename T >
this_t& emp::memo_function< R(A1, A2, EXTRA...)>::operator= ( T &&  arg)
inline
template<class R , class A1 , class A2 , class... EXTRA>
size_t emp::memo_function< R(A1, A2, EXTRA...)>::size ( ) const
inline
template<class R , class A1 , class A2 , class... EXTRA>
std::function<R(A1,A2,EXTRA...)> emp::memo_function< R(A1, A2, EXTRA...)>::to_function ( ) const
inline

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