/* @file UpCallbackSet.hpp * * author: Roland Conybeare, Aug 2025 */ #include "CallbackSetImpl.hpp" #include "callback_concept.hpp" #include namespace xo { namespace fn { /** callback set using unique pointers to store callbacks **/ template using UpCallbackSet = CallbackSetImpl>; /** callback set that invokes a specific member function on * registered callback objects. **/ template requires(callback_concept) class UpNotifyCallbackSet : public UpCallbackSet { public: explicit UpNotifyCallbackSet(MemberFn fn) : privileged_member_fn_{fn} {} template void operator()(Tn&&... args) { this->invoke(this->privileged_member_fn_, args...); } private: /** implements UpNotifyCallbackSet's call operator **/ MemberFn privileged_member_fn_; }; } /*namespace fn*/ } /*namespace xo*/ /* end UpCallbackSet.hpp */