#pragma once #include "interfaces/randomization.hpp" #include <getopt.h> #include <memory> #include <string_view> #include <vector> struct ParsedArguments { std::shared_ptr<IRandomNumberGenerator> random_gen = nullptr; }; class IArgumentParser { public: virtual ~IArgumentParser() = default; virtual ParsedArguments parse(const std::vector<option> &options, const std::string_view &short_options, const int &argc, char *const *argv) = 0; // NOLINT(cppcoreguidelines-avoid-c-arrays, // modernize-avoid-c-arrays) };