#pragma once #include #include #include #include #include #include #include #include #include #include template struct SDay { std::string name; std::ifstream input; //Constructor and Destructor SDay(std::string name); ~SDay(); virtual Output part1() = 0; virtual Output part2() = 0; }; template SDay::SDay(std::string name) { this->name = name; input.open("input/" + name); } template SDay::~SDay() { input.close(); }