TTTT Analysis  0.1
Public Member Functions | Private Member Functions | Private Attributes | List of all members
fv::Apply< Ret(ArgTypes...)> Class Template Reference

Applies a function to a tuple of values and returns a value. More...

#include <value.hpp>

Inheritance diagram for fv::Apply< Ret(ArgTypes...)>:
Inheritance graph
[legend]
Collaboration diagram for fv::Apply< Ret(ArgTypes...)>:
Collaboration graph
[legend]

Public Member Functions

 Apply (Function< Ret(ArgTypes...)> &fn, Tuple< ArgTypes... > *arg, const std::string &alias)
 
- Public Member Functions inherited from fv::DerivedValue< Ret >
 DerivedValue (const std::string &name, const std::string &alias="")
 
Ret & get_value ()
 Calculate, if necessary, and return the value held by this object.
 
- Public Member Functions inherited from fv::Value< Ret >
 Value (const std::string &name, const std::string &alias="")
 

Private Member Functions

void update_value ()
 Updates the internal value. More...
 

Private Attributes

Function< Ret(ArgTypes...)> & fn
 
Tuple< ArgTypes... > * arg
 

Additional Inherited Members

- Protected Attributes inherited from fv::DerivedValue< Ret >
Ret value
 
bool value_valid
 

Detailed Description

template<typename Ret, typename... ArgTypes>
class fv::Apply< Ret(ArgTypes...)>

Applies a function to a tuple of values and returns a value.

This will typically be called with a Tuple object as an argument.

Member Function Documentation

◆ update_value()

template<typename Ret , typename... ArgTypes>
void fv::Apply< Ret(ArgTypes...)>::update_value ( )
inlineprivatevirtual

Updates the internal value.

This function should be overridden by any child class to do the actual work of updating value based on whatever rules the class chooses. Normally, this consists of geting the values from some associated Value objects, doing some calculation on them, and storing the result in value.

Implements fv::DerivedValue< Ret >.

Here is the call graph for this function:

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