C++ Utilities  5.5.0
Useful C++ classes and routines such as argument parser, IO and conversion utilities
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 <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

 CppUtilities
 Contains all utilities provides by the c++utilities library.
 
 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(). More...
 
#define SET_APPLICATION_INFO
 Sets application meta data (including SET_DEPENDENCY_INFO) used by ArgumentParser::printHelp(). More...
 

Typedefs

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

Enumerations

enum  CppUtilities::UnknownArgumentBehavior { CppUtilities::UnknownArgumentBehavior::Ignore, CppUtilities::UnknownArgumentBehavior::Warn, CppUtilities::UnknownArgumentBehavior::Fail }
 The UnknownArgumentBehavior enum specifies the behavior of the argument parser when an unknown argument is detected. More...
 
enum  CppUtilities::ParseArgumentBehavior { CppUtilities::ParseArgumentBehavior::ReadArguments = 0x0, CppUtilities::ParseArgumentBehavior::CheckConstraints = 0x1, CppUtilities::ParseArgumentBehavior::InvokeCallbacks = 0x2, CppUtilities::ParseArgumentBehavior::ExitOnFailure = 0x4 }
 The ParseArgumentBehavior enum specifies the behavior when parsing arguments. More...
 
enum  CppUtilities::ValueCompletionBehavior : unsigned char {
  CppUtilities::ValueCompletionBehavior::None = 0, CppUtilities::ValueCompletionBehavior::PreDefinedValues = 2, CppUtilities::ValueCompletionBehavior::Files = 4, CppUtilities::ValueCompletionBehavior::Directories = 8,
  CppUtilities::ValueCompletionBehavior::FileSystemIfNoPreDefinedValues = 16, CppUtilities::ValueCompletionBehavior::AppendEquationSign = 32, CppUtilities::ValueCompletionBehavior::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)
 

Variables

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

Macro Definition Documentation

◆ SET_APPLICATION_INFO

#define SET_APPLICATION_INFO
Value:

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.

CppUtilities::applicationInfo
CPP_UTILITIES_EXPORT ApplicationInfo applicationInfo
Stores global application info used by ArgumentParser::printHelp() and AboutDialog.
Definition: argumentparser.cpp:432
CppUtilities::ApplicationInfo::license
const char * license
Definition: argumentparser.h:29
CppUtilities::ApplicationInfo::domain
const char * domain
Definition: argumentparser.h:27
CppUtilities::ApplicationInfo::url
const char * url
Definition: argumentparser.h:26
CppUtilities::ApplicationInfo::version
const char * version
Definition: argumentparser.h:25
CppUtilities::ApplicationInfo::credits
const char * credits
Definition: argumentparser.h:30
CppUtilities::ApplicationInfo::description
const char * description
Definition: argumentparser.h:28
CppUtilities::ApplicationInfo::name
const char * name
Definition: argumentparser.h:23
CppUtilities::ApplicationInfo::author
const char * author
Definition: argumentparser.h:24