73 template <
typename option_type,
typename val
idator_type>
107 template <
typename option_type,
typename val
idator_type>
156 template <
typename id_type>
159 if constexpr (std::same_as<std::remove_cvref_t<id_type>,
std::string>)
186 template <
typename iterator_type,
typename id_type>
187 static iterator_type
find_option_id(iterator_type begin_it, iterator_type end_it, id_type
const &
id)
198 if constexpr (std::same_as<id_type, char>)
277 if (
arg[0] ==
'-' &&
arg.size() > 1 &&
arg[1] !=
'-')
281 if (pos != std::string::npos)
302 template <
typename option_t>
309 if (stream.fail() || !stream.eof())
322 template <named_enumeration option_t>
327 if (
auto it = map.find(in);
it == map.end())
333 if constexpr (std::totally_ordered<option_t>)
343 ". Please use one of: ",
373 template <detail::is_container_option container_option_t,
typename format_parse_t = format_parse>
377 {
fp.parse_option_value(
container_value, in) } -> std::same_as<option_parse_result>;
381 typename container_option_t::value_type
tmp{};
386 value.push_back(
tmp);
403 template <arithmetic option_t>
409 if (
res.ec == std::errc::result_out_of_range)
411 else if (
res.ec == std::errc::invalid_argument ||
res.ptr != &in[in.
size()])
433 else if (in ==
"true")
435 else if (in ==
"false")
450 template <
typename option_type>
493 template <
typename option_type,
typename id_type>
503 if ((*option_it).size() >
id_size)
507 if ((*option_it).size() ==
id_size + 1)
553 template <
typename option_type,
typename id_type>
563 +
" is no list/container but declared multiple times.");
579 template <detail::is_container_option option_type,
typename id_type>
615 if (!
arg.empty() &&
arg[0] ==
'-')
621 else if (
arg[1] !=
'-' &&
arg.size() > 2)
624 +
". In case this is meant to be a non-option/argument/parameter, "
625 +
"please specify the start of arguments with '--'. "
626 +
"See -h/--help for program information.");
631 +
". In case this is meant to be a non-option/argument/parameter, "
632 +
"please specify the start of non-options with '--'. "
633 +
"See -h/--help for program information.");
659 throw too_many_arguments(
"Too many arguments provided. Please see -h/--help for more information.");
682 template <
typename option_type,
typename val
idator_type>
695 +
" is no list/container but specified multiple times");
714 +
" is required but not set.");
752 template <
typename option_type,
typename val
idator_type>
764 throw too_few_arguments(
"Not enough positional arguments provided (Need at least "
766 +
"). See -h/--help for more information.");
768 if constexpr (detail::is_container_option<
The <charconv> header from C++17's standard library.
Argument parser exception thrown when a non-list option is declared multiple times.
Definition exceptions.hpp:104
Argument parser exception thrown when a required option is missing.
Definition exceptions.hpp:91
Argument parser exception thrown when too few arguments are provided.
Definition exceptions.hpp:78
Argument parser exception thrown when too many arguments are provided.
Definition exceptions.hpp:65
Argument parser exception thrown when encountering unknown option.
Definition exceptions.hpp:52
Argument parser exception thrown when an argument could not be casted to the according type.
Definition exceptions.hpp:130
option_spec
Used to further specify argument_parser options/flags.
Definition auxiliary.hpp:249
@ required
Definition auxiliary.hpp:251
A type that satisfies std::is_arithmetic_v<t>.
The concept for option validators passed to add_option/positional_option.
The internal SeqAn3 namespace.
Definition aligned_sequence_concept.hpp:26
std::string to_string(value_type &&... values)
Streams all parameters via the seqan3::debug_stream and returns a concatenated string.
Definition to_string.hpp:26
constexpr auto const & get(configuration< configs_t... > const &config) noexcept
This is an overloaded member function, provided for convenience. It differs from the above function o...
Definition configuration.hpp:412
SeqAn specific customisations in the standard namespace.
Provides character predicates for tokenisation.