#include <glibmm.h>
 
{
public:
  ExampleOptionGroup();
 
private:
 
  bool on_option_arg_string(
  bool on_option_arg_filename(
 
public:
  
  
  int m_arg_foo;
  bool m_arg_boolean;
};
 
ExampleOptionGroup::ExampleOptionGroup()
    "example_group", "description of example group", "help description of example group"),
  m_arg_foo(0),
  m_arg_boolean(false)
{
  add_entry(entry1, m_arg_foo);
 
  add_entry_filename(entry2, m_arg_filename);
 
  
  
  m_arg_goo = "default-goo-value";
  add_entry(entry3, m_arg_goo);
 
  add_entry(entry4, m_arg_boolean);
 
  add_entry(entry5, m_arg_list);
 
  m_arg_x_string = "not specified";
  add_entry(entry6, 
sigc::mem_fun(*
this, &ExampleOptionGroup::on_option_arg_string));
 
  m_arg_x_filename = "not specified";
  add_entry_filename(entry7, 
sigc::mem_fun(*
this, &ExampleOptionGroup::on_option_arg_filename));
 
 
  add_entry(entry_remaining, m_remaining_list);
}
 
bool
{
  
  
  
  return true;
}
 
bool
ExampleOptionGroup::on_post_parse(
{
  
  
  
  return true;
}
 
void
{
}
 
bool
ExampleOptionGroup::on_option_arg_string(
{
  if (option_name != "-x" && option_name != "--x-string")
  {
    m_arg_x_string = "on_option_arg_string called with unexpected option_name: " + option_name;
  }
 
  if (!has_value)
  {
    m_arg_x_string = "no value";
    return true;
  }
 
  {
    m_arg_x_string = "empty string";
    return true;
  }
 
  m_arg_x_string = value;
  if (value == "error")
  {
  }
  return value != "false";
}
 
bool
ExampleOptionGroup::on_option_arg_filename(
{
  if (option_name != "-X" && option_name != "--x-filename")
  {
    m_arg_x_filename = "on_option_arg_filename called with unexpected option_name: " + option_name;
  }
 
  if (!has_value)
  {
    m_arg_x_filename = "no value";
    return true;
  }
 
  if (value.empty())
  {
    m_arg_x_filename = "empty string";
    return true;
  }
 
  m_arg_x_filename = value;
  if (value == "error")
  {
      "on_option_arg_filename called with value = " + m_arg_x_filename);
  }
  return value != "false";
}
 
int
main(int argc, char** argv)
{
  
  
  
 
 
 
  ExampleOptionGroup group;
 
  try
  {
    context.
parse(argc, argv);
  }
  {
  }
 
            << 
"  filename = " << group.m_arg_filename << 
std::endl            << "  activate_something = " << (group.m_arg_boolean ? "enabled" : "disabled")
            << 
"  x-string = " << group.m_arg_x_string << 
std::endl            << 
"  x-filename = " << group.m_arg_x_filename << 
std::endl;
 
  
  
  for (const auto& i : group.m_arg_list)
 
  {
  }
 
  
  for (const auto& i : group.m_remaining_list)
  {
  }
 
  return 0;
}
basic_string< char > string
basic_ostream< _CharT, _Traits > & endl(basic_ostream< _CharT, _Traits > &__os)
const char * what() const noexcept override
An OptionContext defines and parses commandline options, using OptionGroups and option entries .
Definition optioncontext.h:127
bool parse(int &argc, char **&argv)
Parses the command line arguments, recognizing options which have been added to context.
void set_main_group(OptionGroup &group)
Sets an OptionGroup as the main group of the context.
An OptionEntry defines a single option.
Definition optionentry.h:46
void set_long_name(const Glib::ustring &value)
void set_description(const Glib::ustring &value)
void set_flags(const Flags &value)
Set one or more OptionEntry::Flags.
void set_short_name(const gchar &value)
Exception class for options.
Definition optioncontext.h:41
@ UNKNOWN_OPTION
An option was not known to the parser.
Definition optioncontext.h:58
@ BAD_VALUE
A value couldn't be parsed.
Definition optioncontext.h:59
An OptionGroup defines the options in a single group.
Definition optiongroup.h:58
virtual void on_error(OptionContext &context, const Error &error)
virtual bool on_post_parse(OptionContext &context)
virtual bool on_pre_parse(OptionContext &context)
Glib::ustring has much the same interface as std::string, but contains Unicode characters encoded as ...
Definition ustring.h:336
bool empty() const
Returns true if the string is empty.
decltype(auto) mem_fun(T_obj &obj, T_return(T_obj2::*func)(T_arg...))
Definition containerhandle_shared.h:36
void init()
Initialize glibmm.