#pragma once #include #include class ArgumentParser { public: ArgumentParser() = default; Result add_positional_argument(StringView& out, StringView name, bool required); Result add_positional_argument(StringView& out, StringView name, bool required, StringView fallback); void parse(int argc, char* const* argv); private: struct PositionalArgument { StringView* out; StringView name; bool required; StringView fallback; }; Vector m_positional_args; };