po::options_description desc("This are the options that are available");
desc.add_options()("help", "print help")(
"deer", po::value<uint32_t>(), "set how many deer you want")(
"rating", po::value<uint32_t>(), "how good ?")(
"name", po::value<std::string>(), "and your name is ... ?");
po::variables_map vm;
po::store(po::parse_command_line(argc, argv, desc), vm);
po::notify(vm);
in einem folgenden Abschnitt des Codes Ich habe versucht, hier iterieren vm
Boost-Programmoptionen iterieren variables_map
for (const auto& it : vm) {
std::cout << it.first.c_str() << " "
<< it.second.as<it.pair::second_type>() << "\n";
}
Der wichtigste Punkt ist, dass vm
enthält keys
des gleichen Typs, aber Werte mit unterschiedlichen Typen, in diesem Beispiel habe ich uint32_t
gemischt mit einem std::string
.
Wie kann ich über diese Art von Containern iterieren? Ich möchte einen ausführlichen Ansatz vermeiden, deshalb versuche ich, einfach über diese Datenstruktur zu iterieren.
EDIT:
Ich habe vergessen, dies aufzuschreiben, aber offensichtlich
namespace po = boost::program_options;