24 #ifndef _ALEXANDRIAKERNEL_INSTANCEORREFERENCEHOLDER_H 25 #define _ALEXANDRIAKERNEL_INSTANCEORREFERENCEHOLDER_H 31 template <
typename InterfaceType>
36 template <
typename InstanceType=InterfaceType,
typename... Args>
37 static std::unique_ptr<InstOrRefHolder<InterfaceType>>
create(Args... args);
39 static std::unique_ptr<InstOrRefHolder<InterfaceType>>
create(InterfaceType&
ref);
43 virtual InterfaceType&
ref() = 0;
virtual ~InstOrRefHolder()=default
static std::unique_ptr< InstOrRefHolder< InterfaceType > > create(Args... args)
virtual InterfaceType & ref()=0