12 Haziran 2017 Pazartesi

program_options notify metodu

Giriş
Açıklaması şöyle
Finally the call to the notify function runs the user-specified notify functions and stores the values into regular variables, if needed.
Warning: Don't forget to call the notify function after you've stored all parsed values.
Bu metod ile variables_map sınıfındaki değerler, options_description sınıfına bağlanmış olan değişkenlere atanır.

Kullanım Şekli
Şöyledir.
po::variables_map vm;
po::parsed_options parsed = ...;
po::store (parsed, vm);
po::notify (vm);
Örnek
address ve port değişkenleri doldurmak için şöyle  yaparız.
int main()
{
  // Variables that will store parsed values.
  std::string address;
  unsigned int port;      

  // Setup options.
  namespace po = boost::program_options;
  po::options_description desc("Options");
  desc.add_options()
    ("address", po::value<std::string>(&address))
    ("port",    po::value<unsigned int>(&port))
    ;

  // Mock up input.
  std::string input = "--address 127.0.0.1 --port 12345";

  // Parse mocked up input.
  po::variables_map vm;
  po::store(po::command_line_parser(tokenize(input))
                .options(desc).run(), vm);
  po::notify(vm);

  // Output.
  std::cout << "address = " << address << "\n"
               "port = " << port << std::endl;
}

Hiç yorum yok:

Yorum Gönder