70class SOURCEMETA_CORE_OPTIONS_EXPORT Options {
74 Options(
const Options &) =
delete;
75 auto operator=(
const Options &) -> Options & =
delete;
78 auto operator=(Options &&) noexcept -> Options & = default;
81 auto
option(std::
string &&name, std::initializer_list<std::
string> aliases)
85 auto
flag(std::
string &&name, std::initializer_list<std::
string> aliases)
89 [[nodiscard]] auto
at(const std::string_view name) const
90 -> const std::vector<std::string_view> &;
93 [[nodiscard]] auto
contains(const std::string_view name) const ->
bool;
97 -> const std::vector<std::string_view> &;
111#pragma warning(disable : 4251 4275)
113 static constexpr std::string_view POSITIONAL_ARGUMENT_NAME{
""};
114 static const std::vector<std::string_view> EMPTY;
116 std::vector<std::unique_ptr<std::string>> storage;
117 std::unordered_map<std::string_view, std::string_view> aliases_;
118 std::unordered_map<std::string_view, std::vector<std::string_view>> options_;
119 std::unordered_set<std::string_view> flags;
121#pragma warning(default : 4251 4275)
auto parse(const int argc, const char *const argv[], const OptionsModifiers options={}) -> void
Parse program arguments given the declared options and flags.