Переглянути джерело

Fix two bugs in arguments.

Sam Jaffe 4 роки тому
батько
коміт
4053ba057c

+ 2 - 1
include/program_args/arguments_impl.hpp

@@ -105,7 +105,8 @@ template <typename Impl>
 Arguments<Impl>::Arguments(int argc, char const * const * const argv) {
   Impl generator;
   *this = static_cast<Arguments const &>(generator);
-  if (argument_names.rbegin()->first != argument_names.size() - 1) {
+  if (argument_names.size() &&
+      argument_names.rbegin()->first != argument_names.size() - 1) {
     throw IllegalPositionError("Higher positional than number recorded",
                                argument_names.rbegin()->first);
   }

+ 1 - 1
include/program_args/utilities.h

@@ -55,7 +55,7 @@ T convert(std::string const & name, std::string const & data) {
 template <typename T>
 T convert(std::string const & name, std::vector<std::string> const & data) {
   conversion_helper<T> helper;
-  if constexpr (!traits::is_repeatable_v<decltype(helper)>) {
+  if constexpr (traits::is_repeatable_v<decltype(helper)>) {
     return helper(data);
   } else if (data.size() == 1) {
     return helper(data.front());