From c0bbcf613c0fc6c89391c45b1e44d147a4e91971 Mon Sep 17 00:00:00 2001 From: Sean Robinson Date: Wed, 10 Nov 2021 13:54:35 -0700 Subject: [PATCH] Remove sentry check in ArgumentParser::operator<< cppcheck reports "Variable 'sen' is assigned a value that is never used. [unreadVariable]" for this line. As far as I understand, std::ostream::sentry is used to prepare access to the stream buffer. But, we are never directly accessing the stream buffer. Stream access in this function uses other operator<< functions. Most noise in this patch is about unindenting after if() removal. Signed-off-by: Sean Robinson --- include/argparse/argparse.hpp | 60 +++++++++++++++++------------------ 1 file changed, 29 insertions(+), 31 deletions(-) diff --git a/include/argparse/argparse.hpp b/include/argparse/argparse.hpp index 34dab79..2aa06fd 100644 --- a/include/argparse/argparse.hpp +++ b/include/argparse/argparse.hpp @@ -1002,39 +1002,37 @@ public: // Print help message friend auto operator<<(std::ostream &stream, const ArgumentParser &parser) -> std::ostream & { - if (auto sen = std::ostream::sentry(stream)) { - stream.setf(std::ios_base::left); - stream << "Usage: " << parser.mProgramName << " [options] "; - std::size_t tLongestArgumentLength = parser.get_length_of_longest_argument(); + stream.setf(std::ios_base::left); + stream << "Usage: " << parser.mProgramName << " [options] "; + std::size_t tLongestArgumentLength = parser.get_length_of_longest_argument(); - for (const auto &argument : parser.mPositionalArguments) { - stream << argument.mNames.front() << " "; - } - stream << "\n\n"; - - if (!parser.mDescription.empty()) - stream << parser.mDescription << "\n\n"; - - if (!parser.mPositionalArguments.empty()) - stream << "Positional arguments:\n"; - - for (const auto &mPositionalArgument : parser.mPositionalArguments) { - stream.width(tLongestArgumentLength); - stream << mPositionalArgument; - } - - if (!parser.mOptionalArguments.empty()) - stream << (parser.mPositionalArguments.empty() ? "" : "\n") - << "Optional arguments:\n"; - - for (const auto &mOptionalArgument : parser.mOptionalArguments) { - stream.width(tLongestArgumentLength); - stream << mOptionalArgument; - } - - if (!parser.mEpilog.empty()) - stream << parser.mEpilog << "\n\n"; + for (const auto &argument : parser.mPositionalArguments) { + stream << argument.mNames.front() << " "; } + stream << "\n\n"; + + if (!parser.mDescription.empty()) + stream << parser.mDescription << "\n\n"; + + if (!parser.mPositionalArguments.empty()) + stream << "Positional arguments:\n"; + + for (const auto &mPositionalArgument : parser.mPositionalArguments) { + stream.width(tLongestArgumentLength); + stream << mPositionalArgument; + } + + if (!parser.mOptionalArguments.empty()) + stream << (parser.mPositionalArguments.empty() ? "" : "\n") + << "Optional arguments:\n"; + + for (const auto &mOptionalArgument : parser.mOptionalArguments) { + stream.width(tLongestArgumentLength); + stream << mOptionalArgument; + } + + if (!parser.mEpilog.empty()) + stream << parser.mEpilog << "\n\n"; return stream; }