C++ Utilities: application/argumentparser.h File Reference

C++ Utilities 5.34.0 Useful C++ classes and routines such as argument parser, IO and conversion utilities

Loading...
Searching...
No Matches
Classes | Namespaces | Macros | Typedefs | Enumerations | Functions | Variables
argumentparser.h File Reference
`#include "../conversion/stringconversion.h"`
`#include "../misc/traits.h"`
`#include <functional>`
`#include <initializer_list>`
`#include <limits>`
`#include <tuple>`
`#include <vector>`
Include dependency graph for argumentparser.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

## Classes
struct | CppUtilities::ApplicationInfo
| Stores information about an application. More...
struct | CppUtilities::ArgumentOccurrence
| The ArgumentOccurrence struct holds argument values for an occurrence of an argument. More...
class | CppUtilities::Argument
| The Argument class is a wrapper for command line argument information. More...
class | CppUtilities::HelpArgument
| The HelpArgument class prints help information for an argument parser when present (–help, -h). More...
class | CppUtilities::OperationArgument
| The OperationArgument class is an Argument where denotesOperation() is true by default. More...
class | CppUtilities::ConfigValueArgument
| The ConfigValueArgument class is an Argument where setCombinable() is true by default. More...
class | CppUtilities::NoColorArgument
| The NoColorArgument class allows to specify whether use of escape codes or similar technique to provide formatted output on the terminal should be enabled/disabled. More...
class | CppUtilities::ArgumentParser
| The ArgumentParser class provides a means for handling command line arguments. More...

## Namespaces
namespace | CppUtilities
| Contains all utilities provided by the c++utilities library.
namespace | CppUtilities::ValueConversion
| Contains functions to convert raw argument values to certain types.

## Macros
#define | SET_DEPENDENCY_INFO ::CppUtilities::applicationInfo.dependencyVersions = DEPENCENCY_VERSIONS
| Sets meta data about the dependencies the application was linked against which is used by ArgumentParser::printHelp().
#define | SET_APPLICATION_INFO
| Sets application meta data (including SET_DEPENDENCY_INFO) used by ArgumentParser::printHelp().

## Typedefs
using | CppUtilities::ArgumentInitializerList = std::initializer_list<Argument *>
using | CppUtilities::ArgumentVector = std::vector<Argument *>
using | CppUtilities::ArgumentPredicate = std::function<bool(Argument *)>

## Enumerations
enum class | CppUtilities::UnknownArgumentBehavior { CppUtilities::Ignore , CppUtilities::Warn , CppUtilities::Fail }
| The UnknownArgumentBehavior enum specifies the behavior of the argument parser when an unknown argument is detected. More...
enum class | CppUtilities::ParseArgumentBehavior { CppUtilities::ReadArguments = 0x0 , CppUtilities::CheckConstraints = 0x1 , CppUtilities::InvokeCallbacks = 0x2 , CppUtilities::ExitOnFailure = 0x4 }
| The ParseArgumentBehavior enum specifies the behavior when parsing arguments. More...
enum class | CppUtilities::ValueCompletionBehavior : unsigned char { CppUtilities::None = 0 , CppUtilities::PreDefinedValues = 2 , CppUtilities::Files = 4 , CppUtilities::Directories = 8 , CppUtilities::FileSystemIfNoPreDefinedValues = 16 , CppUtilities::AppendEquationSign = 32 , CppUtilities::InvokeCallback = 64 }
| The ValueCompletionBehavior enum specifies the items to be considered when generating completion for an argument value. More...

## Functions
template<typename TargetType, Traits::EnableIf< std::is_same< TargetType, std::string > > * = nullptr>
TargetType | CppUtilities::ValueConversion::convert (const char *value)
template<typename TargetType, Traits::EnableIf< std::is_arithmetic< TargetType > > * = nullptr>
TargetType | CppUtilities::ValueConversion::convert (const char *value)

## Variables
CPP_UTILITIES_EXPORT ApplicationInfo | CppUtilities::applicationInfo
| Stores global application info used by ArgumentParser::printHelp() and AboutDialog.

## Macro Definition Documentation

## ◆ SET_APPLICATION_INFO

#define SET_APPLICATION_INFO

Value:
::CppUtilities::applicationInfo.name = APP_NAME; \
::CppUtilities::applicationInfo.author = APP_AUTHOR; \
::CppUtilities::applicationInfo.version = APP_VERSION; \
::CppUtilities::applicationInfo.url = APP_URL; \
::CppUtilities::applicationInfo.domain = APP_DOMAIN; \
::CppUtilities::applicationInfo.description = APP_DESCRIPTION; \
::CppUtilities::applicationInfo.license = PROJECT_LICENSE; \
::CppUtilities::applicationInfo.credits = APP_CREDITS; \
SET_DEPENDENCY_INFO
SET_DEPENDENCY_INFO
#define SET_DEPENDENCY_INFO
Sets meta data about the dependencies the application was linked against which is used by ArgumentPar...
Definition argumentparser.h:46
CppUtilities::applicationInfo
CPP_UTILITIES_EXPORT ApplicationInfo applicationInfo
Stores global application info used by ArgumentParser::printHelp() and AboutDialog.
Definition argumentparser.cpp:436

Sets application meta data (including SET_DEPENDENCY_INFO) used by ArgumentParser::printHelp().

Remarks
  Reads those data from the config header so "config.h" must be included.

Definition at line 53 of file argumentparser.h.

## ◆ SET_DEPENDENCY_INFO

#define SET_DEPENDENCY_INFO ::CppUtilities::applicationInfo.dependencyVersions = DEPENCENCY_VERSIONS

Sets meta data about the dependencies the application was linked against which is used by ArgumentParser::printHelp().

Remarks
  Reads those data from the config header so "config.h" must be included.

Definition at line 46 of file argumentparser.h.