Prefer emplace_back over push_back

This commit is contained in:
Stephan van Veen 2019-05-09 18:24:16 +02:00
parent bef90a8d4f
commit df21d07bd6

View File

@ -478,8 +478,8 @@ class ArgumentParser {
void parse_args_internal(const std::vector<std::string>& aArguments) { void parse_args_internal(const std::vector<std::string>& aArguments) {
std::vector<char*> argv; std::vector<char*> argv;
for (const auto& arg : aArguments) for (const auto& arg : aArguments)
argv.push_back(const_cast<char*>(arg.data())); argv.emplace_back(const_cast<char*>(arg.data()));
argv.push_back(nullptr); argv.emplace_back(nullptr);
return parse_args_internal(int(argv.size()) - 1, argv.data()); return parse_args_internal(int(argv.size()) - 1, argv.data());
} }
@ -507,21 +507,21 @@ class ArgumentParser {
if (tCount == 0) { if (tCount == 0) {
// Use implicit value for this optional argument // Use implicit value for this optional argument
tArgument->mValues.push_back(tArgument->mImplicitValue); tArgument->mValues.push_back(tArgument->mImplicitValue);
tArgument->mRawValues.push_back(""); tArgument->mRawValues.emplace_back();
tCount = 0; tCount = 0;
} }
while (tCount > 0) { while (tCount > 0) {
i = i + 1; i = i + 1;
if (i < argc) { if (i < argc) {
tArgument->mUsedName = tCurrentArgument; tArgument->mUsedName = tCurrentArgument;
tArgument->mRawValues.push_back(argv[i]); tArgument->mRawValues.emplace_back(argv[i]);
if (tArgument->mAction != nullptr) if (tArgument->mAction != nullptr)
tArgument->mValues.push_back(tArgument->mAction(argv[i])); tArgument->mValues.push_back(tArgument->mAction(argv[i]));
else { else {
if (tArgument->mDefaultValue.has_value()) if (tArgument->mDefaultValue.has_value())
tArgument->mValues.push_back(tArgument->mDefaultValue); tArgument->mValues.push_back(tArgument->mDefaultValue);
else else
tArgument->mValues.push_back(std::string(argv[i])); tArgument->mValues.emplace_back(std::string(argv[i]));
} }
} }
tCount -= 1; tCount -= 1;
@ -546,7 +546,7 @@ class ArgumentParser {
while (tNumArgs > 0 && i < argc) { while (tNumArgs > 0 && i < argc) {
i += 1; i += 1;
if (i < argc) { if (i < argc) {
tArgumentsForRecursiveParsing.push_back(argv[i]); tArgumentsForRecursiveParsing.emplace_back(argv[i]);
tNumArgs -= 1; tNumArgs -= 1;
} }
} }
@ -584,14 +584,14 @@ class ArgumentParser {
} }
if (i < argc) { if (i < argc) {
tArgument->mUsedName = tCurrentArgument; tArgument->mUsedName = tCurrentArgument;
tArgument->mRawValues.push_back(argv[i]); tArgument->mRawValues.emplace_back(argv[i]);
if (tArgument->mAction != nullptr) if (tArgument->mAction != nullptr)
tArgument->mValues.push_back(tArgument->mAction(argv[i])); tArgument->mValues.push_back(tArgument->mAction(argv[i]));
else { else {
if (tArgument->mDefaultValue.has_value()) if (tArgument->mDefaultValue.has_value())
tArgument->mValues.push_back(tArgument->mDefaultValue); tArgument->mValues.push_back(tArgument->mDefaultValue);
else else
tArgument->mValues.push_back(std::string(argv[i])); tArgument->mValues.emplace_back(std::string(argv[i]));
} }
} }
tCount -= 1; tCount -= 1;