#pragma once #include #include "common.hpp" POLYBAR_NS namespace factory_util { namespace detail { struct null_deleter { template void operator()(T*) const {} }; } // namespace detail extern detail::null_deleter null_deleter; template shared_ptr singleton(Deps&&... deps) { static shared_ptr instance{make_shared(forward(deps)...)}; return instance; } } // namespace factory_util POLYBAR_NS_END