⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 options_description.cpp

📁 Boost provides free peer-reviewed portable C++ source libraries. We emphasize libraries that work
💻 CPP
字号:
// Copyright Vladimir Prus 2002-2004.// Distributed under the Boost Software License, Version 1.0.// (See accompanying file LICENSE_1_0.txt// or copy at http://www.boost.org/LICENSE_1_0.txt)#include <boost/program_options.hpp>using namespace boost;namespace po = boost::program_options;#include <iostream>#include <algorithm>#include <iterator>using namespace std;// A helper function to simplify the main part.template<class T>ostream& operator<<(ostream& os, const vector<T>& v){    copy(v.begin(), v.end(), ostream_iterator<T>(cout, " "));     return os;}int main(int ac, char* av[]){    try {        int opt;        int portnum;        po::options_description desc("Allowed options");        desc.add_options()            ("help", "produce help message")            ("optimization", po::value<int>(&opt)->default_value(10),                   "optimization level")            ("verbose,v", po::value<int>()->implicit_value(1),                  "enable verbosity (optionally specify level)")            ("listen,l", po::value<int>(&portnum)->implicit_value(1001)                  ->default_value(0,"no"),                  "listen on a port.")            ("include-path,I", po::value< vector<string> >(),                   "include path")            ("input-file", po::value< vector<string> >(), "input file")        ;        po::positional_options_description p;        p.add("input-file", -1);                po::variables_map vm;        po::store(po::command_line_parser(ac, av).                  options(desc).positional(p).run(), vm);        po::notify(vm);            if (vm.count("help")) {            cout << "Usage: options_description [options]\n";            cout << desc;            return 0;        }        if (vm.count("include-path"))        {            cout << "Include paths are: "                  << vm["include-path"].as< vector<string> >() << "\n";        }        if (vm.count("input-file"))        {            cout << "Input files are: "                  << vm["input-file"].as< vector<string> >() << "\n";        }        if (vm.count("verbose")) {            cout << "Verbosity enabled.  Level is " << vm["verbose"].as<int>()                 << "\n";        }        cout << "Optimization level is " << opt << "\n";                        cout << "Listen port is " << portnum << "\n";                    }    catch(exception& e)    {        cout << e.what() << "\n";        return 1;    }        return 0;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -