#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; }; // NOLINTNEXTLINE(cppcoreguidelines-special-member-functions) class IArgumentParser { public: virtual ~IArgumentParser() noexcept = default; virtual auto parse( const std::vector<option> &options, const std::string_view &short_options, const int &argc, char *const *argv) noexcept -> ParsedArguments = 0; // NOLINT(cppcoreguidelines-avoid-c-arrays, // modernize-avoid-c-arrays) };