A type that can be specialised to provide customisation point implementations for the sharg::parser such that third party types may be adapted.
More...
template<typename t>
struct sharg::custom::parsing< t >
A type that can be specialised to provide customisation point implementations for the sharg::parser such that third party types may be adapted.
- Template Parameters
-
t | The type you wish to specialise for. |
Named Enumerations
In order to use a third party type within the sharg::parser::add_option or sharg::parser::add_positional_option call, you can specialise this struct in the following way:
namespace sharg::custom
{
template <>
{
{"timed_out", std::errc::timed_out},
{"invalid_argument", std::errc::invalid_argument},
{"io_error", std::errc::io_error}};
};
}
int main(int argc, char const * argv[])
{
parser.add_option(value,
.long_id = "errc",
.description = "Give me a std::errc value.",
.validator = validator});
try
{
parser.parse();
}
{
return -1;
}
return 0;
}
Meta-header for the Parser module .
Parser exception that is thrown whenever there is an error while parsing the command line arguments.
Definition: exceptions.hpp:43
The Sharg command line parser.
Definition: parser.hpp:156
A validator that checks whether a value is inside a list of valid values.
Definition: validators.hpp:176
Option struct that is passed to the sharg::parser::add_option() function.
Definition: config.hpp:46
char short_id
The short identifier for the option (e.g. 'a', making the option callable via -a).
Definition: config.hpp:56
A type that can be specialised to provide customisation point implementations for the sharg::parser s...
Definition: enumeration_names.hpp:51
Please note that by default the t const
, t &
and t const &
specialisations of this class inherit the specialisation for t
so you usually only need to provide a specialisation for t
.
- Note
- Only use this if you cannot provide respective functions in your namespace. See the tutorial Parsing command line arguments with Sharg for an example of customising a type within your own namespace.
This entity is experimental and subject to change in the future. Experimental since version 1.0.