30 #include <initializer_list>
40 class ProgramArguments;
77 std::vector<std::string> get_unknown_arguments();
86 bool is_registered(
const std::string& flag)
const;
100 bool add(
const std::string& flag,
const std::string& description,
const std::initializer_list<std::string>& parameters = {});
114 bool add(
const std::initializer_list<std::string>& flags,
const std::string& description,
const std::initializer_list<std::string>& parameters = {});
125 bool add_flags(
const std::vector<std::string>& flags,
const std::string& description,
const std::vector<std::string>& parameters = {});
135 bool add(
const ProgramOptions& other_options,
const std::string& category =
"");
144 bool remove(
const std::string& flag);
153 std::string get_options_string()
const;
160 std::vector<std::tuple<std::set<std::string>, std::string>> get_options()
const;
168 std::string description;
169 std::vector<std::string> parameters;
170 std::set<std::string> flags;
175 std::vector<Option> m_options;
177 std::map<std::string, std::vector<ProgramOptions>> m_suboptions;
179 std::vector<std::string> m_unknown_options;
182 std::vector<const Option*> get_all_options()
const;
185 void reset_all_options();
188 void reset_option(Option*);
191 size_t get_flag_length()
const;
194 std::string get_options_string_internal(
size_t fill_length,
size_t max_line_width)
const;
~ProgramOptions()=default
static const std::string A_REQUIRED_PARAMETER
constant to specify that a parameter is required and does not have a default value.
void remove(std::filesystem::path file_path)
std::unique_ptr< GateLibrary > parse(std::filesystem::path file_path)