As per Volodya's suggestion, posting this question here. He mentioned it had been discussed, but I was unable to find anything appropriate using search engines. I apologize in advance if this is a repeat question. Hi, I am trying to do a simple thing with your program_options boost library: I have a program foo, and I want to invoke it like this: foo -d -d -d I want foo to know "I have counted three -d". I followed your tutorial and tried this: desc.add_options() ("debug,d",po::value< vector<int> >()->default_value(1), "Debug level") ; po::variables_map vm; po::store(po::parse_command_line(argc, argv, desc), vm); po::notify(vm); if (vm.count("debug")) { cout << "Running, debug level: " << vm["debug"].as< vector<int> >().size() << "\n"; } But it did not work, always prints "debug level: 0". For background, this is to make the program compatible with a Python implementation which uses optparse. I have an extensive testing framework that assumes this behavior and it would be nice to implement the same with program_options. Thanks, Federico