8#ifndef Sawyer_CommandLine_Boost_H
9#define Sawyer_CommandLine_Boost_H
11#include <Sawyer/CommandLine.h>
12#include <Sawyer/Sawyer.h>
15namespace CommandLine {
66 const std::string &doc);
151 return as_helper(T());
156 T as_helper(
const T&) {
157 ASSERT_forbid(
pv.empty());
158 return pv.back().as<T>();
162 std::vector<T> as_helper(
const std::vector<T>&) {
163 std::vector<T> retval;
167 retval.push_back(elmt.as<T>());
180 size_t count(
const std::string &swName)
const;
std::list< ParsedValue > ValueList
Value type for list ParsedValue.
Information about a parsed switch value.
T as() const
Convenient any_cast.
The result from parsing a command line.
const ParserResult & apply() const
Saves parsed values in switch-specified locations.
The parser for a program command line.
ParserResult parse(int argc, char *argv[])
Parse program arguments.
Parser & errorStream(const Message::SProxy &stream)
Specifies a message stream to which errors are sent.
A collection of related switch declarations.
void store(const Sawyer::CommandLine::ParserResult &results, variables_map &output)
Transfer parser results to map.
std::ostream & operator<<(std::ostream &out, const options_description &x)
Print documentation for a few switches.
void notify(variables_map &)
Transfer map to C++ variables.
std::vector< ParsedValue > ParsedValues
A vector of parsed values.
Facility mlog
Facility used by Sawyer components.
@ FATAL
Messages that indicate an abnormal situation from which the program was unable to recover.
This namespace contains template functions that operate on the ROSE AST.
Wrapper around Sawyer's CommandLine class.
char ** argv
Arguments saved by c'tor to be available during parsing.
Sawyer::CommandLine::Parser parser
Wrapped parser.
command_line_parser & options(const options_description &)
Insert specified switch declarations.
Sawyer::CommandLine::ParserResult run()
Parse command-line.
command_line_parser & options(const Sawyer::CommandLine::SwitchGroup &)
Insert specified switch declarations.
command_line_parser & allow_unregistered()
Add predefined switches.
int argc
Argument count saved by c'tor to be available during parsing.
command_line_parser(int argc, char *argv[])
Construct a parser.
Replacement for basic use of boost::program_options::options_description.
options_description & operator()(const std::string &switchName, const value< std::string > &, const std::string &doc)
Declare a switch of specified type.
options_description & operator()(const std::string &switchName, const value< std::vector< int > > &, const std::string &doc)
Declare a switch of specified type.
options_description & operator()(const std::string &switchName, const value< std::vector< std::string > > &, const std::string &doc)
Declare a switch of specified type.
options_description & add(const options_description &other)
Insert other switches into this group.
options_description & operator()(const std::string &switchName, const std::string &doc)
Declare a switch of specified type.
void print() const
Print switch documentation.
options_description()
Construct an empty switch group without documentation.
options_description & operator()(const std::string &switchName, const value< long int > &, const std::string &doc)
Declare a switch of specified type.
options_description(const std::string &title)
Construct an empty switch group having a title.
options_description & operator()(const std::string &switchName, const value< int > &, const std::string &doc)
Declare a switch of specified type.
Sawyer::CommandLine::SwitchGroup sg
The underlying Sawyer mechanism.
options_description & add_options()
Boost intermediate type for adding more switches.
Wrapper around parsed values.
parsed_values()
Wrap nothing.
parsed_values(const Sawyer::CommandLine::ParsedValues &pv)
Wrap ParsedValues.
T as()
Convert parsed value to another type.
Sawyer::CommandLine::ParsedValues pv
Wrapped ParsedValues.
Replacement for basic use of boost::program_options::value.
Wrapper around ParserResult.
parsed_values operator[](const std::string &swName) const
Saved values for a switch.
size_t count(const std::string &swName) const
Number of times a switch appeared.
Sawyer::CommandLine::ParserResult pr
Wrapped ParserResult.