#pragma once #include "inheritance.hpp" #include #include #include namespace oop { [[nodiscard]] auto total_area(const std::vector>& shapes) -> double; [[nodiscard]] auto shape_names(const std::vector>& shapes) -> std::vector; class Counter { public: Counter() = default; Counter(const Counter&) { ++copies_; } auto operator=(const Counter&) -> Counter& { ++copies_; return *this; } [[nodiscard]] static auto copies() -> int; private: inline static int copies_ = 0; }; } // namespace oop