#pragma once

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

namespace mdd
{
	template <class OPTIMIZER_CLASS>
	class OptimizerGenerator
		: public IOptimizerGenerator
	{

		std::shared_ptr<IOptimizer> generate() override
		{
			return std::make_shared<OPTIMIZER_CLASS>();
		}
	};
}

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