#pragma once #include #include class AllCases { public: enum Build {BASIC_RANGES, ALL_CASES}; AllCases() = default; void build(enum Build type); explicit AllCases(enum Build type); const std::vector* get_basic_ranges(); const std::vector (*get_all_cases())[16]; private: std::vector basic_ranges; std::vector all_cases[16]; void find_all_cases(); void build_basic_ranges(); void generate_ranges(int n1, int n2, int n3, int n4); };