Loading [MathJax]/extensions/tex2jax.js
Go to the documentation of this file.
14 #include <type_traits>
21 template <
typename IFace>
30 template <std::derived_from<IFace> Ret,
typename... Args>
31 Box( std::in_place_type_t<Ret>, Args&&...
args )
42 operator IFace
const&()
const {
return *
m_ptr; }
46 template <
typename IFace>
52 template <
typename IFace>
61 const std::string&
name()
const override {
62 static std::string
s{
"<STUB>" };
65 const std::string&
type()
const override {
return name(); }
85 template <
typename IFace>
Box & operator=(const Box &)=delete
Base class to be used to extend an interface.
Box(std::in_place_type_t< Ret >, Args &&... args)
Box & operator=(Box &&)=delete
State
Allowed states for classes implementing the state machine (ApplicationMgr, Algorithm,...
DeclareInterfaceID(IBinder, 1, 0)
Base class used to implement the interfaces.
virtual Box< IFace > bind(const EventContext &ctx) const =0
constexpr static const auto FAILURE