#pragma once #include template class FabricMixin { public: template static std::shared_ptr create(Args&&... args) { return std::shared_ptr(new T(std::forward(args)...)); } };