Template Class applicator

Class Documentation

template<class TBaseController, template<class TDerivedController, class...> class TOperation, class ...Args>
class applicator

Wrapping functor to applicator an operation to a controller which is derived from a common base class.

Template Parameters:
  • TBaseController – The type of the base controller class which all controllers processed by this class are derived from.

  • TOperation – The operation to perform. All operations must take the controller type to process as their first template argument, and can take any number of additional template arguments.

Public Functions

inline explicit applicator(TBaseController *const c)
template<typename TDerivedController, typename ...OpArgs>
inline auto operator()(const TOperation<TDerivedController, Args...> &op, OpArgs&&... args) const -> decltype(op(std::declval<TDerivedController*>(), args...))