qsadfasdgfgads

Untitled

Oct 17th, 2022
668
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.82 KB | None | 0 0
  1. std::unique_ptr<Strategy> StrategyFactory::create(const std::string &className) {
  2.   std::map<std::string, std::unique_ptr<Strategy>> strategiesMap;
  3.   strategiesMap.try_emplace("random", unique_ptr<Strategy>(new AlwaysRandom));
  4.   strategiesMap.try_emplace("always_defect", unique_ptr<Strategy>(new AlwaysDefect));
  5.   strategiesMap.try_emplace("always_collude", unique_ptr<Strategy>(new AlwaysCollude));
  6.   strategiesMap.try_emplace("grudger", unique_ptr<Strategy>(new Grudger));
  7.   strategiesMap.try_emplace("copycat", unique_ptr<Strategy>(new CopyCat));
  8.   strategiesMap.try_emplace("detective", unique_ptr<Strategy>(new Detective));
  9.   auto it = strategiesMap.find(className);
  10.   if (it != strategiesMap.end()) {
  11.     return std::move(it->second);
  12.   }
  13.   throw std::runtime_error("no strategy found with this name: " + className);
  14. }
Advertisement
Add Comment
Please, Sign In to add comment