mirror of
https://github.com/KeqingMoe/argparse.git
synced 2025-07-04 07:04:39 +00:00
Fixes Issue #22 - Tested w/ Visual Studio 2019
This commit is contained in:
parent
369cd551ac
commit
af650392e7
@ -129,7 +129,7 @@ public:
|
|||||||
mValues.emplace_back(mImplicitValue);
|
mValues.emplace_back(mImplicitValue);
|
||||||
return start;
|
return start;
|
||||||
}
|
}
|
||||||
else if (mNumArgs <= std::distance(start, end)) {
|
else if (mNumArgs <= static_cast<size_t>(std::distance(start, end))) {
|
||||||
end = std::next(start, mNumArgs);
|
end = std::next(start, mNumArgs);
|
||||||
if (std::any_of(start, end, Argument::is_optional)) {
|
if (std::any_of(start, end, Argument::is_optional)) {
|
||||||
throw std::runtime_error("optional argument in parameter sequence");
|
throw std::runtime_error("optional argument in parameter sequence");
|
||||||
@ -252,14 +252,16 @@ public:
|
|||||||
using ValueType = typename CONTAINER::value_type;
|
using ValueType = typename CONTAINER::value_type;
|
||||||
CONTAINER tResult;
|
CONTAINER tResult;
|
||||||
if (!mValues.empty()) {
|
if (!mValues.empty()) {
|
||||||
std::transform(std::begin(mValues), std::end(mValues),
|
std::transform(std::begin(mValues), std::end(mValues), std::back_inserter(tResult), [](const auto & value) {
|
||||||
std::back_inserter(tResult), std::any_cast<ValueType>);
|
return std::any_cast<ValueType>(value);
|
||||||
|
});
|
||||||
return tResult;
|
return tResult;
|
||||||
}
|
}
|
||||||
if (mDefaultValue.has_value()) {
|
if (mDefaultValue.has_value()) {
|
||||||
const auto& tDefaultValues = std::any_cast<const CONTAINER&>(mDefaultValue);
|
const auto& tDefaultValues = std::any_cast<const CONTAINER&>(mDefaultValue);
|
||||||
std::transform(std::begin(tDefaultValues), std::end(tDefaultValues),
|
std::transform(std::begin(tDefaultValues), std::end(tDefaultValues), std::back_inserter(tResult), [](const auto & value) {
|
||||||
std::back_inserter(tResult), std::any_cast<ValueType>);
|
return std::any_cast<ValueType>(value);
|
||||||
|
});
|
||||||
return tResult;
|
return tResult;
|
||||||
}
|
}
|
||||||
throw std::logic_error("No value provided");
|
throw std::logic_error("No value provided");
|
||||||
|
Loading…
Reference in New Issue
Block a user