Use range based for loop

This commit is contained in:
Stephan van Veen 2019-05-09 18:00:36 +02:00
parent 89e4bb11ac
commit d57b191f77

View File

@ -211,8 +211,8 @@ public:
} }
else { else {
if (mRawValues.size() > 0) { if (mRawValues.size() > 0) {
for (size_t i = 0; i < mValues.size(); i++) { for (const auto& mValue : mValues) {
tResult.push_back(std::any_cast<typename T::value_type>(mValues[i])); tResult.push_back(std::any_cast<typename T::value_type>(mValue));
} }
return tResult; return tResult;
} }
@ -247,8 +247,8 @@ public:
} }
else { else {
if (mRawValues.size() > 0) { if (mRawValues.size() > 0) {
for (size_t i = 0; i < mValues.size(); i++) { for (const auto& mValue : mValues) {
tResult.push_back(std::any_cast<typename T::value_type>(mValues[i])); tResult.push_back(std::any_cast<typename T::value_type>(mValue));
} }
return tResult; return tResult;
} }
@ -314,8 +314,7 @@ class ArgumentParser {
// Base case for add_parents parameter packing // Base case for add_parents parameter packing
void add_parents() { void add_parents() {
for (size_t i = 0; i < mParentParsers.size(); i++) { for (const auto& tParentParser : mParentParsers) {
auto tParentParser = mParentParsers[i];
auto tPositionalArguments = tParentParser.mPositionalArguments; auto tPositionalArguments = tParentParser.mPositionalArguments;
for (auto& tArgument : tPositionalArguments) { for (auto& tArgument : tPositionalArguments) {
mPositionalArguments.push_back(tArgument); mPositionalArguments.push_back(tArgument);
@ -415,9 +414,9 @@ class ArgumentParser {
if (mPositionalArguments.size() > 0) if (mPositionalArguments.size() > 0)
stream << "Positional arguments:\n"; stream << "Positional arguments:\n";
for (size_t i = 0; i < mPositionalArguments.size(); i++) { for (const auto& mPositionalArgument : mPositionalArguments) {
size_t tCurrentLength = 0; size_t tCurrentLength = 0;
auto tNames = mPositionalArguments[i]->mNames; auto tNames = mPositionalArgument->mNames;
for (size_t j = 0; j < tNames.size() - 1; j++) { for (size_t j = 0; j < tNames.size() - 1; j++) {
auto tCurrentName = tNames[j]; auto tCurrentName = tNames[j];
stream << tCurrentName; stream << tCurrentName;
@ -433,16 +432,16 @@ class ArgumentParser {
else else
stream << std::string((tCurrentLength - tLongestArgumentLength) + 2, ' '); stream << std::string((tCurrentLength - tLongestArgumentLength) + 2, ' ');
stream << mPositionalArguments[i]->mHelp << "\n"; stream << mPositionalArgument->mHelp << "\n";
} }
if (mOptionalArguments.size() > 0 && mPositionalArguments.size() > 0) if (mOptionalArguments.size() > 0 && mPositionalArguments.size() > 0)
stream << "\nOptional arguments:\n"; stream << "\nOptional arguments:\n";
else if (mOptionalArguments.size() > 0) else if (mOptionalArguments.size() > 0)
stream << "Optional arguments:\n"; stream << "Optional arguments:\n";
for (size_t i = 0; i < mOptionalArguments.size(); i++) { for (const auto & mOptionalArgument : mOptionalArguments) {
size_t tCurrentLength = 0; size_t tCurrentLength = 0;
auto tNames = mOptionalArguments[i]->mNames; auto tNames = mOptionalArgument->mNames;
std::sort(tNames.begin(), tNames.end(), std::sort(tNames.begin(), tNames.end(),
[](const std::string& lhs, const std::string& rhs) { [](const std::string& lhs, const std::string& rhs) {
return lhs.size() == rhs.size() ? lhs < rhs : lhs.size() < rhs.size(); return lhs.size() == rhs.size() ? lhs < rhs : lhs.size() < rhs.size();
@ -462,7 +461,7 @@ class ArgumentParser {
else else
stream << std::string((tCurrentLength - tLongestArgumentLength) + 2, ' '); stream << std::string((tCurrentLength - tLongestArgumentLength) + 2, ' ');
stream << mOptionalArguments[i]->mHelp << "\n"; stream << mOptionalArgument->mHelp << "\n";
} }
std::cout << stream.str(); std::cout << stream.str();
@ -607,8 +606,7 @@ class ArgumentParser {
void parse_args_validate() { void parse_args_validate() {
// Check if all positional arguments are parsed // Check if all positional arguments are parsed
for (size_t i = 0; i < mPositionalArguments.size(); i++) { for (const auto& tArgument : mPositionalArguments) {
auto tArgument = mPositionalArguments[i];
if (tArgument->mValues.size() != tArgument->mNumArgs) { if (tArgument->mValues.size() != tArgument->mNumArgs) {
std::cout << "error: " << tArgument->mUsedName << ": expected " std::cout << "error: " << tArgument->mUsedName << ": expected "
<< tArgument->mNumArgs << (tArgument->mNumArgs == 1 ? " argument. " : " arguments. ") << tArgument->mNumArgs << (tArgument->mNumArgs == 1 ? " argument. " : " arguments. ")
@ -619,8 +617,7 @@ class ArgumentParser {
} }
// Check if all user-provided optional argument values are parsed correctly // Check if all user-provided optional argument values are parsed correctly
for (size_t i = 0; i < mOptionalArguments.size(); i++) { for (const auto& tArgument : mOptionalArguments) {
auto tArgument = mOptionalArguments[i];
if (tArgument->mIsUsed && tArgument->mNumArgs > 0) { if (tArgument->mIsUsed && tArgument->mNumArgs > 0) {
if (tArgument->mValues.size() != tArgument->mNumArgs) { if (tArgument->mValues.size() != tArgument->mNumArgs) {
// All cool if there's a default value to return // All cool if there's a default value to return
@ -643,9 +640,9 @@ class ArgumentParser {
// Used by print_help. // Used by print_help.
size_t get_length_of_longest_argument() { size_t get_length_of_longest_argument() {
size_t tResult = 0; size_t tResult = 0;
for (size_t i = 0; i < mPositionalArguments.size(); i++) { for (const auto& mPositionalArgument : mPositionalArguments) {
size_t tCurrentArgumentLength = 0; size_t tCurrentArgumentLength = 0;
auto tNames = mPositionalArguments[i]->mNames; auto tNames = mPositionalArgument->mNames;
for (size_t j = 0; j < tNames.size() - 1; j++) { for (size_t j = 0; j < tNames.size() - 1; j++) {
auto tNameLength = tNames[j].length(); auto tNameLength = tNames[j].length();
tCurrentArgumentLength += tNameLength + 2; // +2 for ", " tCurrentArgumentLength += tNameLength + 2; // +2 for ", "
@ -655,9 +652,9 @@ class ArgumentParser {
tResult = tCurrentArgumentLength; tResult = tCurrentArgumentLength;
} }
for (size_t i = 0; i < mOptionalArguments.size(); i++) { for (const auto& mOptionalArgument : mOptionalArguments) {
size_t tCurrentArgumentLength = 0; size_t tCurrentArgumentLength = 0;
auto tNames = mOptionalArguments[i]->mNames; auto tNames = mOptionalArgument->mNames;
for (size_t j = 0; j < tNames.size() - 1; j++) { for (size_t j = 0; j < tNames.size() - 1; j++) {
auto tNameLength = tNames[j].length(); auto tNameLength = tNames[j].length();
tCurrentArgumentLength += tNameLength + 2; // +2 for ", " tCurrentArgumentLength += tNameLength + 2; // +2 for ", "