- virtual ~EndgameBase() {}
- virtual Color color() const = 0;
- virtual T apply(const Position&) const = 0;
+ explicit EndgameBase(Color c) : strongSide(c), weakSide(~c) {}
+ virtual ~EndgameBase() = default;
+ virtual T operator()(const Position&) const = 0;
+
+ const Color strongSide, weakSide;