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 = {});
 
  124         bool add(
const ProgramOptions& other_options, 
const std::string& category = 
"");
 
  133         bool remove(
const std::string& flag);
 
  142         std::string get_options_string() 
const;
 
  149         std::vector<std::tuple<std::set<std::string>, std::string>> get_options() 
const;
 
  154             std::string description;
 
  155             std::vector<std::string> parameters;
 
  156             std::set<std::string> flags;
 
  161         std::vector<Option> m_options;
 
  163         std::map<std::string, std::vector<ProgramOptions>> m_suboptions;
 
  165         std::vector<std::string> m_unknown_options;
 
  168         std::vector<const Option*> get_all_options() 
const;
 
  171         void reset_all_options();
 
  174         void reset_option(Option*);
 
  177         size_t get_flag_length() 
const;
 
  180         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)