- 论坛徽章:
- 0
|
以下是官方给出的调用boost库中program_options的代码范例(这里仅节选了部分):
- #include <boost/program_options.hpp>
- namespace po = boost::program_options;
- #include <iostream>
- #include <fstream>
- #include <iterator>
- using namespace std;
- int main(int ac, char* av[])
- {
- try {
- int opt;
- po::options_description config("Configuration");
- config.add_options()
- ("optimization", po::value<int>(&opt)->default_value(10),
- "optimization level")
- ("include-path,I",
- po::value< vector<string> >()->composing(),
- "include path")
- ;
- po::variables_map vm;
- po::options_description config_file_options;
- config_file_options.add(config);
- ifstream ifs("multiple_sources.cfg");
- store(parse_config_file(ifs, config_file_options), vm);
- notify(vm);
- cout << "Optimization level is " << opt << "\n";
- }
- catch(exception& e)
- {
- cout <<"error:" << e.what() << "\n";
- return 1;
- }
- return 0;
- }
复制代码
这段代码可以通过编译,我的疑问是按照头文件boost/program_options.hpp中的定义,store和notify函数是在名字空间boost::program_options中声明的,这里没有指定,编译器是怎么定位此函数的?
[ 本帖最后由 Suchangyu 于 2008-12-1 17:51 编辑 ] |
|