Template Struct metrics_extract

Inheritance Relationships

Base Type

  • public boost::static_visitor< void >

Struct Documentation

template<class TController, class TAggregator>
struct metrics_extract : public boost::static_visitor<void>

Functor to perform metric extraction from a controller on each timestep.

TController does not have to be a class template parameter per-se, and could be pushed down to operator(). However, if this is done then the compiler cannot infer the type of the derived controller when trying to apply a specific instantiation of this visitor to a std::variant. So, we encode the necessary type information in the class template parameters.

Template Parameters:
  • TController – The type of the controller to extract metrics from.

  • TAggregator – The type of the metrics aggregator to use to extract the metrics, derived from base_metrics_aggregator.

Public Functions

inline explicit metrics_extract(TAggregator *const agg)
template<typename ...Args>
inline void operator()(const TController *const c, Args&&... args) const