Freundlich's C++ toolkit
No Matches
Classes | Typedefs | Functions
fcppt::options Namespace Reference

Library for command-line options. More...


struct  active_value_tag
 The tag of strong typedefs for active values. More...
class  argument
 An argument parser. More...
class  argument_conversion_error
class  argument_usage
class  base
 The base class for parsers with a given result type. More...
class  commands
 A parser for multiple sub commands. More...
class  commands_usage
struct  default_value_tag
 The tag of strong typedefs for default values. More...
class  dual_flag_error
class  dual_option_error
class  duplicate_names
class  error
 The error type retuned. More...
class  error_pair
class  exception
class  flag
 A flag parser. More...
class  flag_usage
struct  inactive_value_tag
 The tag of strong typedefs for inactive values. More...
class  invalid_command_error
class  leftover_error
class  many
 A parser for zero or more elements. More...
class  many_usage
class  missing_argument_error
class  missing_command_error
class  missing_error
 Occurs if an argument/flag/option is missing. More...
class  missing_error_pair
class  missing_flag_error
class  missing_option_argument_error
class  missing_option_error
class  option
 An option parser. More...
class  option_conversion_error
class  option_name
 An option name that may be for a short or long option. More...
class  option_usage
class  optional
 An optional parser. More...
class  optional_usage
class  parse_context
struct  pretty_type_impl
struct  pretty_type_impl< Enum, std::enable_if_t< std::is_enum_v< Enum > > >
 Specialization for enums that uses fcppt::enum_::names.
class  product
 A product of two parsers. More...
class  product_usage
class  state
 A parse state. More...
class  state_with_value
 A parse state together with a value. More...
class  sub_command
 A sub command consists of a command name and a parser. More...
class  sub_command_usage
class  sum
 A sum of two parsers. More...
class  sum_usage
class  switch_
 A switch parser. More...
class  unit
 A parser that succeeds when provided with no arguments. More...
class  unit_switch
 A required switch. More...
class  unit_usage
class  usage
 The usage type of a parser.This shows to a user how a parser is supposed to be used. More...


template<typename Type >
using active_value = fcppt::strong_typedef< Type, fcppt::options::active_value_tag >
 A strong typedef used as a parser's active value.
template<typename Result >
using base_unique_ptr = fcppt::unique_ptr< fcppt::options::base< Result > >
 A unique pointer for fcppt::options::base.
template<typename Type >
using default_value = fcppt::strong_typedef< Type, fcppt::options::default_value_tag >
 A strong typedef used as a parser's default value.
template<typename Parser >
using deref_type = std::remove_cvref_t< fcppt::deref_type< Parser > >
 The dereferenced type of a parser.
using error_variant = fcppt::variant::object< fcppt::options::argument_conversion_error, fcppt::options::dual_flag_error, fcppt::options::dual_option_error, fcppt::options::error_pair, fcppt::options::leftover_error, fcppt::options::invalid_command_error, fcppt::options::missing_argument_error, fcppt::options::missing_command_error, fcppt::options::missing_flag_error, fcppt::options::missing_option_argument_error, fcppt::options::missing_option_error, fcppt::options::option_conversion_error >
using flag_name = fcppt::strong_typedef< fcppt::string,_ >
using flag_name_set = std::set< fcppt::options::flag_name >
 The set of flag names.
template<typename Result >
using help_result = fcppt::variant::object< fcppt::options::result< Result >, fcppt::options::usage >
 The result of invoking a regular parser and a help parser.
using help_switch = fcppt::options::unit_switch< fcppt::options::detail::help_label >
 The type of a help parser.
using help_text = fcppt::strong_typedef< fcppt::string,_ >
 A string type representing a help text.
template<typename Type >
using inactive_value = fcppt::strong_typedef< Type, fcppt::options::inactive_value_tag >
 A strong typedef used as a parser's inactive value.
template<typename Type >
using left = fcppt::strong_typedef< Type, fcppt::options::detail::left_tag >
 The left result type of a sum parser.
using long_name = fcppt::strong_typedef< fcppt::string,_ >
 A string type representing a long name.
using missing_error_variant = fcppt::variant::object< fcppt::options::missing_argument_error, fcppt::options::missing_command_error, fcppt::options::missing_error_pair, fcppt::options::missing_flag_error, fcppt::options::missing_option_error >
using name = fcppt::strong_typedef< fcppt::string,_ >
using option_name_set = std::set< fcppt::options::option_name >
 The set of option names.
using optional_help_text = fcppt::optional::object< fcppt::options::help_text >
 An optional help text.
using optional_short_name = fcppt::optional::object< fcppt::options::short_name >
 An optional short name.
using parse_error = fcppt::variant::object< fcppt::options::missing_error, fcppt::options::error >
 The error type returned by parsers.
template<typename T >
using parse_result = fcppt::either::object< fcppt::options::parse_error, fcppt::options::state_with_value< T > >
 The result of a parser.
template<typename T >
using result = fcppt::either::object< fcppt::options::error, T >
 The result of a parse operation.
template<typename Parser >
using result_of = typename fcppt::options::deref_type< Parser >::result_type
 The result of a parser type.
template<typename Type >
using right = fcppt::strong_typedef< Type, fcppt::options::detail::right_tag >
 The right result type of a sum parser.
using short_name = fcppt::strong_typedef< fcppt::string,_ >
 A string type representing a short name.
using type_name = fcppt::strong_typedef< fcppt::string,_ >
using usage_variant = fcppt::variant::object< fcppt::options::argument_usage, fcppt::options::commands_usage, fcppt::options::flag_usage, fcppt::options::many_usage, fcppt::options::option_usage, fcppt::options::optional_usage, fcppt::options::product_usage, fcppt::options::sum_usage, fcppt::options::unit_usage >


template<typename... Parsers>
auto apply (Parsers &&..._parsers)
 Combines two or more parsers.
FCPPT_OPTIONS_DETAIL_SYMBOL fcppt::options::help_switch default_help_switch ()
 The default help switch.
template<typename Parser >
decltype(auto) deref (Parser const &_parser)
 Dereferences a parser.
FCPPT_OPTIONS_DETAIL_SYMBOL bool operator== (fcppt::options::error const &, fcppt::options::error const &)
FCPPT_OPTIONS_DETAIL_SYMBOL fcppt::io::ostreamoperator<< (fcppt::io::ostream &, fcppt::options::error const &)
template<typename Type >
fcppt::options::active_value< std::remove_cvref_t< Type > > make_active_value (Type &&_value)
 Creates an active value.
template<typename Result , typename Parser >
fcppt::options::base_unique_ptr< Result > make_base (Parser &&_parser)
 Creates an fcppt::options::base.
template<typename OptionsParser , typename... SubCommands>
fcppt::options::commands< std::remove_cvref_t< OptionsParser >, std::remove_cvref_t< SubCommands >... > make_commands (OptionsParser &&_options_parser, SubCommands &&..._sub_commands)
 Makes a commands parser.
template<typename Type >
fcppt::options::default_value< std::remove_cvref_t< Type > > make_default_value (Type &&_value)
 Creates a default value.
template<typename Type >
fcppt::options::inactive_value< std::remove_cvref_t< Type > > make_inactive_value (Type &&_value)
 Creates an inactive value.
template<typename Type >
fcppt::options::left< std::remove_cvref_t< Type > > make_left (Type &&_value)
 Creates an fcppt::options::left.
template<typename Parser >
fcppt::options::many< std::remove_cvref_t< Parser > > make_many (Parser &&_parser)
 Turns a parser into a many parser.
template<typename Parser >
fcppt::options::optional< std::remove_cvref_t< Parser > > make_optional (Parser &&_parser)
 Turns a parser into an optional parser.
template<typename Type >
fcppt::options::right< std::remove_cvref_t< Type > > make_right (Type &&_value)
 Creates an fcppt::options::right.
template<typename Tag , typename Parser >
fcppt::options::sub_command< Tag, std::remove_cvref_t< Parser > > make_sub_command (fcppt::string &&_name, Parser &&_parser, fcppt::options::optional_help_text &&_help_text)
 Makes a sub command.
template<typename Type >
fcppt::options::result< std::remove_cvref_t< Type > > make_success (Type &&_value)
 Creates a success value.
template<typename Label , typename Left , typename Right >
fcppt::options::sum< Label, std::remove_cvref_t< Left >, std::remove_cvref_t< Right > > make_sum (Left &&_left, Right &&_right)
 Creates the sum of two parsers.
template<typename Type >
fcppt::options::default_value< fcppt::optional::object< Type > > no_default_value ()
 Creates an empty default value.
FCPPT_OPTIONS_DETAIL_SYMBOL bool operator== (fcppt::options::option_name const &, fcppt::options::option_name const &)
FCPPT_OPTIONS_DETAIL_SYMBOL bool operator< (fcppt::options::option_name const &, fcppt::options::option_name const &)
 FCPPT_RECORD_MAKE_LABEL (options_label)
 The options label name in fcppt::options::commands.
template<typename Parser >
fcppt::options::result< fcppt::options::result_of< Parser > > parse (Parser const &_parser, fcppt::args_vector const &_args)
 Parse a command-line.
template<typename Parser >
fcppt::options::help_result< fcppt::options::result_of< Parser > > parse_help (fcppt::options::help_switch const &_help, Parser const &_parser, fcppt::args_vector const &_args)
 Parse a command-line with a help parser.
template<typename Type >
fcppt::options::type_name pretty_type ()
 Returns a pretty type used for help texts.
 FCPPT_RECORD_MAKE_LABEL (sub_command_label)
 The sub-command label name in fcppt::options::commands.
FCPPT_OPTIONS_DETAIL_SYMBOL bool operator== (fcppt::options::usage const &, fcppt::options::usage const &)
FCPPT_OPTIONS_DETAIL_SYMBOL fcppt::io::ostreamoperator<< (fcppt::io::ostream &, fcppt::options::usage const &)

Detailed Description

Library for command-line options.

Typedef Documentation

◆ flag_name

◆ help_result

The result of invoking a regular parser and a help parser.

A help result is either a regular result or the usage of the parser.

◆ missing_error_variant

◆ type_name

Function Documentation

◆ operator<()

FCPPT_OPTIONS_DETAIL_SYMBOL bool fcppt::options::operator< ( fcppt::options::option_name const &  ,
fcppt::options::option_name const &   

◆ operator==() [1/3]

FCPPT_OPTIONS_DETAIL_SYMBOL bool fcppt::options::operator== ( fcppt::options::error const &  ,
fcppt::options::error const &   

◆ operator==() [2/3]

FCPPT_OPTIONS_DETAIL_SYMBOL bool fcppt::options::operator== ( fcppt::options::option_name const &  ,
fcppt::options::option_name const &   

◆ operator==() [3/3]

FCPPT_OPTIONS_DETAIL_SYMBOL bool fcppt::options::operator== ( fcppt::options::usage const &  ,
fcppt::options::usage const &