class cmdline
Declaration
class cmdline { /* full declaration omitted */ };Description
Command line parser class. Main requirements were: - Powerful enough to support all common uses. - Simple and easy to learn/use. - Minimal code size and external dependencies. - Extensible for custom syntaxes. First all options are registered. After that, elements of command line are extracted using operator++. For each element, user can find - if it's an option or an argument - name of the option - index of the option - option value(s), if any Sometimes the registered option name is not equal to the encountered one, for example, because name abbreviation is supported. Therefore two option names can be obtained: - the registered one - the one found at the command line There are lot of style options, which can be used to tune the command line parsing. In addition, it's possible to install additional parser which will process custom option styles.
Declared at: libs/pika/program_options/include/pika/program_options/detail/cmdline.hpp:52
Member Variables
- public std::vector<std::string> m_args
- public pika::program_options::detail::cmdline::style_t m_style
- public bool m_allow_unregistered
- public const pika::program_options::options_description* m_desc
- public const pika::program_options:: positional_options_description* m_positional
- public pika::program_options::detail::cmdline:: additional_parser m_additional_parser
- public pika::program_options::detail::cmdline:: style_parser m_style_parser
Method Overview
- public void allow_unregistered()
- public void check_style(int style) const
- public cmdline(int argc, const char *const * argv)
- public cmdline(const std::vector<std::string> & args)
- public void extra_style_parser(pika::program_options::detail::cmdline::style_parser s)
- public void finish_option(pika::program_options::option & opt, std::vector<std::string> & other_tokens, const std::vector<style_parser> & style_parsers)
- public int get_canonical_option_prefix()
- public std::vector<option> handle_additional_parser(std::vector<std::string> & args)
- public void init(const std::vector<std::string> & args)
- public bool is_style_active(pika::program_options::detail::cmdline::style_t style) const
- public std::vector<option> parse_disguised_long_option(std::vector<std::string> & args)
- public std::vector<option> parse_dos_option(std::vector<std::string> & args)
- public std::vector<option> parse_long_option(std::vector<std::string> & args)
- public std::vector<option> parse_short_option(std::vector<std::string> & args)
- public std::vector<option> parse_terminator(std::vector<std::string> & args)
- public std::vector<option> run()
- public void set_additional_parser(pika::program_options::detail::cmdline::additional_parser p)
- public void set_options_description(const pika::program_options::options_description & desc)
- public void set_positional_options(const pika::program_options::positional_options_description & m_positional)
- public void style(int style)
Methods
void allow_unregistered()
void allow_unregistered()Declared at: libs/pika/program_options/include/pika/program_options/detail/cmdline.hpp:89
void check_style(int style) const
void check_style(int style) constDeclared at: libs/pika/program_options/include/pika/program_options/detail/cmdline.hpp:118
Parameters
- int style
cmdline(int argc, const char* const* argv)
cmdline(int argc, const char* const* argv)Declared at: libs/pika/program_options/include/pika/program_options/detail/cmdline.hpp:74
Parameters
- int argc
- const char* const* argv
cmdline(const std::vector<std::string>& args)
cmdline(const std::vector<std::string>& args)Description
Constructs a command line parser for (argc, argv) pair. Uses style options passed in 'style', which should be binary or'ed values of style_t enum. It can also be zero, in which case a "default" style will be used. If 'allow_unregistered' is true, then allows unregistered options. They will be assigned index 1 and are assumed to have optional parameter.
Declared at: libs/pika/program_options/include/pika/program_options/detail/cmdline.hpp:71
Parameters
- const std::vector<std::string>& args
void extra_style_parser(
pika::program_options::detail::cmdline::
style_parser s)
void extra_style_parser(
pika::program_options::detail::cmdline::
style_parser s)Declared at: libs/pika/program_options/include/pika/program_options/detail/cmdline.hpp:116
Parameters
- pika::program_options::detail::cmdline:: style_parser s
void finish_option(
pika::program_options::option& opt,
std::vector<std::string>& other_tokens,
const std::vector<style_parser>&
style_parsers)
void finish_option(
pika::program_options::option& opt,
std::vector<std::string>& other_tokens,
const std::vector<style_parser>&
style_parsers)Declared at: libs/pika/program_options/include/pika/program_options/detail/cmdline.hpp:124
Parameters
- pika::program_options::option& opt
- std::vector<std::string>& other_tokens
- const std::vector<style_parser>& style_parsers
int get_canonical_option_prefix()
int get_canonical_option_prefix()Description
returns the canonical option prefix associated with the command_line_style In order of precedence: allow_long : allow_long allow_long_disguise : allow_long_disguise allow_dash_for_short : allow_short | allow_dash_for_short allow_slash_for_short: allow_short | allow_slash_for_short This is mainly used for the diagnostic messages in exceptions
Declared at: libs/pika/program_options/include/pika/program_options/detail/cmdline.hpp:87
std::vector<option> handle_additional_parser(
std::vector<std::string>& args)
std::vector<option> handle_additional_parser(
std::vector<std::string>& args)Declared at: libs/pika/program_options/include/pika/program_options/detail/cmdline.hpp:103
Parameters
- std::vector<std::string>& args
void init(const std::vector<std::string>& args)
void init(const std::vector<std::string>& args)Declared at: libs/pika/program_options/include/pika/program_options/detail/cmdline.hpp:122
Parameters
- const std::vector<std::string>& args
bool is_style_active(
pika::program_options::detail::cmdline::
style_t style) const
bool is_style_active(
pika::program_options::detail::cmdline::
style_t style) constDeclared at: libs/pika/program_options/include/pika/program_options/detail/cmdline.hpp:120
Parameters
- pika::program_options::detail::cmdline::style_t style
std::vector<option> parse_disguised_long_option(
std::vector<std::string>& args)
std::vector<option> parse_disguised_long_option(
std::vector<std::string>& args)Declared at: libs/pika/program_options/include/pika/program_options/detail/cmdline.hpp:100
Parameters
- std::vector<std::string>& args
std::vector<option> parse_dos_option(
std::vector<std::string>& args)
std::vector<option> parse_dos_option(
std::vector<std::string>& args)Declared at: libs/pika/program_options/include/pika/program_options/detail/cmdline.hpp:99
Parameters
- std::vector<std::string>& args
std::vector<option> parse_long_option(
std::vector<std::string>& args)
std::vector<option> parse_long_option(
std::vector<std::string>& args)Declared at: libs/pika/program_options/include/pika/program_options/detail/cmdline.hpp:97
Parameters
- std::vector<std::string>& args
std::vector<option> parse_short_option(
std::vector<std::string>& args)
std::vector<option> parse_short_option(
std::vector<std::string>& args)Declared at: libs/pika/program_options/include/pika/program_options/detail/cmdline.hpp:98
Parameters
- std::vector<std::string>& args
std::vector<option> parse_terminator(
std::vector<std::string>& args)
std::vector<option> parse_terminator(
std::vector<std::string>& args)Declared at: libs/pika/program_options/include/pika/program_options/detail/cmdline.hpp:102
Parameters
- std::vector<std::string>& args
std::vector<option> run()
std::vector<option> run()Declared at: libs/pika/program_options/include/pika/program_options/detail/cmdline.hpp:95
void set_additional_parser(
pika::program_options::detail::cmdline::
additional_parser p)
void set_additional_parser(
pika::program_options::detail::cmdline::
additional_parser p)Description
Set additional parser. This will be called for each token of command line. If first string in pair is not empty, then the token is considered matched by this parser, and the first string will be considered an option name (which can be long or short), while the second will be option's parameter (if not empty). Note that additional parser can match only one token.
Declared at: libs/pika/program_options/include/pika/program_options/detail/cmdline.hpp:114
Parameters
- pika::program_options::detail::cmdline:: additional_parser p
void set_options_description(
const pika::program_options::
options_description& desc)
void set_options_description(
const pika::program_options::
options_description& desc)Declared at: libs/pika/program_options/include/pika/program_options/detail/cmdline.hpp:91
Parameters
- const pika::program_options::options_description& desc
void set_positional_options(
const pika::program_options::
positional_options_description&
m_positional)
void set_positional_options(
const pika::program_options::
positional_options_description&
m_positional)Declared at: libs/pika/program_options/include/pika/program_options/detail/cmdline.hpp:92
Parameters
- const pika::program_options:: positional_options_description& m_positional
void style(int style)
void style(int style)Declared at: libs/pika/program_options/include/pika/program_options/detail/cmdline.hpp:76
Parameters
- int style