#pragma once #include "DI/container.hpp" #include // NOLINTNEXTLINE(cppcoreguidelines-special-member-functions) class IGenericAutoWirable { public: virtual ~IGenericAutoWirable() = default; }; template class IAutoWirable : public IGenericAutoWirable { public: static Interface resolve(); }; template class AutoWirable : public IAutoWirable { public: static std::shared_ptr resolve(const Container &container); }; #include "auto_wirable.tpp"