Giriş
Şu satırı dahil ederiz.
Şöyle yaparız.
Constructor
Şöyle yaparız.
Şöyle yaparız.
as<bool>()
Şöyle yaparız
Şöyle yaparız
at metodu ile aynıdır. Şöyle yaparız
Şu satırı dahil ederiz.
#include <boost/program_options.hpp>
Kolay kullanım için şu satırı dahil ederiz.namespace po = boost::program_options;
Bu sınıf parse sonucunu aynı bir map şeklinde kullanabilmemizi sağlar. Sınıfın eksik bir tarafı verilen komut satırının sırasının kaybedilmesi. Eğer sıranın önemi varsa kullanılamaz.Şöyle yaparız.
po::options_description options;
po::variables_map vm;
options.add_options()
("var1", po::value<int>()->required(), "var1");
po::store (po::parse_command_line(argc, argv, config_descriptor), vm);
po::notify (vm);
Sanırım bu sınıf altta boost any kütüphanesini kullanıyorConstructor
Şöyle yaparız.
po::variables_map vm;
at metoduŞöyle yaparız.
if (po::vm.count("bar") == 1) {
std::cout << "bar: " << po::vm.at("bar").as<std::string>() << std::endl;
}
as metoduas<bool>()
Şöyle yaparız
po::vm.count ("withNoDiffusionTerm") ?
po::vm ["withNoDiffusionTerm"].as<bool>() : false);
as<int>()Şöyle yaparız
po::vm ["domainSize"].as<int>());
Şöyle yaparız.
if (po::vm.count ("foo") == 1) {
std::cout << "foo: " << po::vm.at ("foo").as<int>() << std::endl;
}
as<string>()
Şöyle yaparız
po::vm.count("inputImage") ? po::vm["inputImage"].as<std::string>() : "");
po::vm.count("shape") ? po::vm ["shape"].as<std::string>() : "");
Şöyle yaparız.
if (po::vm.count ("bar") == 1) {
std::cout << "bar: " << po::vm.at("bar").as<std::string>() << std::endl;
}
count metodu
Aranılan seçeneğin girilip girilmediğini kontrol edebilmemizi sağlar. Şöyle yaparız.if (po::vm.count("input")) {
std::string my_path = po::vm["input"].as<std::string>();
boost::filesystem::path file_path (my_path);
std::cout << "The input path is: " << file_path << std::endl;
}
operator []at metodu ile aynıdır. Şöyle yaparız
po::vm.count("inputImage") ? po::vm["inputImage"].as<std::string>() : "");
Hiç yorum yok:
Yorum Gönder