#ifndef MIME_ARGS_HH #define MIME_ARGS_HH #include #include #include #include namespace mime { class args_parser { public: args_parser(int argc, char **argv); void bool_opt(const std::string &key, const std::string &desc, const std::string &default_v); void bool_opt(const std::string &key, const std::string &desc); void int_opt(const std::string &key, const std::string &desc, const std::string &default_v); void int_opt(const std::string &key, const std::string &desc); void float_opt(const std::string &key, const std::string &desc, const std::string &default_v); void float_opt(const std::string &key, const std::string &desc); void string_opt(const std::string &key, const std::string &desc, const std::string &default_v); void string_opt(const std::string &key, const std::string &desc); std::string help(); chaiscript::dispatch::Dynamic_Object parse(); private: cxxopts::Options options; std::vector bool_attr{}; std::vector int_attr{}; std::vector float_attr{}; std::vector string_attr{}; int argc; char **argv; }; } // namespace mime #endif /* MIME_ARGS_HH */