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