30 friend class ::ap::argument_parser;
41 [[nodiscard]]
const std::optional<std::string>&
help() const noexcept {
42 return this->_help_msg;
66 virtual
bool is_used() const noexcept = 0;
69 virtual std::
size_t count() const noexcept = 0;
88 virtual const std::any&
value() const = 0;
91 virtual const std::vector<std::any>&
values() const = 0;
94 std::optional<std::
string> _help_msg;
104[[nodiscard]]
bool is_valid_choice(const T&
value, const std::vector<T>& choices) noexcept {
106 return choices.empty() or std::ranges::find(choices,
value) != choices.end();
Defines structures for formatting argument descriptions.
Argument class interface.
virtual bool has_value() const noexcept=0
virtual std::weak_ordering nvalues_ordering() const noexcept=0
virtual std::size_t count() const noexcept=0
virtual bool is_used() const noexcept=0
virtual bool set_value(const std::string &value)=0
Set the value for the argument.
virtual const std::any & value() const =0
const ap::detail::argument_name & name() const noexcept
virtual bool is_required() const noexcept=0
virtual detail::argument_descriptor desc(const bool verbose, const char flag_char) const noexcept=0
virtual const std::vector< std::any > & values() const =0
const std::optional< std::string > & help() const noexcept
virtual bool has_parsed_values() const noexcept=0
virtual bool mark_used()=0
Mark the argument as used.
virtual bool bypass_required_enabled() const noexcept=0
A structure used to represent an argument's description.
The concept is used to verify the validity of the arguments' value types.
Structure holding the argument's name.