#pragma once

#include <map>
#include <string>
#include "IModuleGenerator.h"

namespace mdd
{
	template <class MODULE_CLASS>
	class ModuleGenerator
		: public IModuleGenerator
	{

		std::shared_ptr<IModule> generate() override
		{
			return std::make_shared<MODULE_CLASS>();
		}
	};
}

//#define ADD_GENERATOR(CLASS) namespace{mdd::GeneratorRegistration<CLASS> reg_sdewfdsf(#CLASS);}