Commit 101c926dacf4dd79894909f6557dcd09f629b6b3
1 parent
d697cb6d
Adding tidy cleanups (modernize)
Showing
13 changed files
with
36 additions
and
33 deletions
include/CLI/App.hpp
| ... | ... | @@ -12,6 +12,7 @@ |
| 12 | 12 | #include <sstream> |
| 13 | 13 | #include <set> |
| 14 | 14 | #include <numeric> |
| 15 | +#include <utility> | |
| 15 | 16 | #include <vector> |
| 16 | 17 | |
| 17 | 18 | |
| ... | ... | @@ -33,7 +34,7 @@ struct AppFriend; |
| 33 | 34 | class App; |
| 34 | 35 | |
| 35 | 36 | |
| 36 | -typedef std::unique_ptr<App> App_p; | |
| 37 | +using App_p = std::unique_ptr<App>; | |
| 37 | 38 | |
| 38 | 39 | /// Creates a command line program, with very few defaults. |
| 39 | 40 | /** To use, create a new `Program()` instance with `argc`, `argv`, and a help description. The templated |
| ... | ... | @@ -122,7 +123,7 @@ protected: |
| 122 | 123 | |
| 123 | 124 | /// Special private constructor for subcommand |
| 124 | 125 | App(std::string description_, bool help, detail::enabler) |
| 125 | - : description_(description_) { | |
| 126 | + : description_(std::move(description_)) { | |
| 126 | 127 | |
| 127 | 128 | if(help) |
| 128 | 129 | help_ptr_ = add_flag("-h,--help", "Print this help message and exit"); |
| ... | ... | @@ -514,7 +515,7 @@ public: |
| 514 | 515 | name_ = argv[0]; |
| 515 | 516 | std::vector<std::string> args; |
| 516 | 517 | for(int i=argc-1; i>0; i--) |
| 517 | - args.push_back(argv[i]); | |
| 518 | + args.emplace_back(argv[i]); | |
| 518 | 519 | return parse(args); |
| 519 | 520 | |
| 520 | 521 | } |
| ... | ... | @@ -949,7 +950,7 @@ protected: |
| 949 | 950 | try { |
| 950 | 951 | size_t ui = std::stoul(val); |
| 951 | 952 | for (size_t i=0; i<ui; i++) |
| 952 | - op->results_.push_back(""); | |
| 953 | + op->results_.emplace_back(""); | |
| 953 | 954 | } catch (const std::invalid_argument &) { |
| 954 | 955 | throw ConversionError(current.fullname + ": Should be true/false or a number"); |
| 955 | 956 | } | ... | ... |
include/CLI/Ini.hpp
| ... | ... | @@ -24,10 +24,10 @@ inline std::string inijoin(std::vector<std::string> args) { |
| 24 | 24 | auto it = std::find_if(arg.begin(), arg.end(), [](char ch){ return std::isspace<char>(ch , std::locale());}); |
| 25 | 25 | if(it == arg.end()) |
| 26 | 26 | s << arg; |
| 27 | - else if(arg.find("\"") == std::string::npos) | |
| 28 | - s << "\"" << arg << "\""; | |
| 27 | + else if(arg.find(R"(")") == std::string::npos) | |
| 28 | + s << R"(")" << arg << R"(")"; | |
| 29 | 29 | else |
| 30 | - s << "\'" << arg << "\'"; | |
| 30 | + s << R"(')" << arg << R"(')"; | |
| 31 | 31 | } |
| 32 | 32 | |
| 33 | 33 | return s.str(); | ... | ... |
include/CLI/Option.hpp
| ... | ... | @@ -5,6 +5,7 @@ |
| 5 | 5 | |
| 6 | 6 | #include <string> |
| 7 | 7 | #include <functional> |
| 8 | +#include <utility> | |
| 8 | 9 | #include <vector> |
| 9 | 10 | #include <tuple> |
| 10 | 11 | #include <algorithm> |
| ... | ... | @@ -17,13 +18,13 @@ |
| 17 | 18 | |
| 18 | 19 | namespace CLI { |
| 19 | 20 | |
| 20 | -typedef std::vector<std::string> results_t; | |
| 21 | -typedef std::function<bool(results_t)> callback_t; | |
| 21 | +using results_t = std::vector<std::string>; | |
| 22 | +using callback_t = std::function<bool (results_t)>; | |
| 22 | 23 | |
| 23 | 24 | class Option; |
| 24 | 25 | class App; |
| 25 | 26 | |
| 26 | -typedef std::unique_ptr<Option> Option_p; | |
| 27 | +using Option_p = std::unique_ptr<Option>; | |
| 27 | 28 | |
| 28 | 29 | |
| 29 | 30 | class Option { |
| ... | ... | @@ -113,7 +114,7 @@ protected: |
| 113 | 114 | |
| 114 | 115 | /// Making an option by hand is not defined, it must be made by the App class |
| 115 | 116 | Option(std::string name, std::string description = "", std::function<bool(results_t)> callback=[](results_t){return true;}, bool default_=true, App* parent = nullptr) : |
| 116 | - description_(description), default_(default_), parent_(parent), callback_(callback) { | |
| 117 | + description_(std::move(description)), default_(default_), parent_(parent), callback_(std::move(callback)) { | |
| 117 | 118 | std::tie(snames_, lnames_, pname_) = detail::get_names(detail::split_names(name)); |
| 118 | 119 | } |
| 119 | 120 | ... | ... |
include/CLI/Split.hpp
| ... | ... | @@ -65,7 +65,7 @@ inline std::tuple<std::vector<std::string>,std::vector<std::string>, std::string |
| 65 | 65 | continue; |
| 66 | 66 | else if(name.length() > 1 && name[0] == '-' && name[1] != '-') { |
| 67 | 67 | if(name.length()==2 && valid_first_char(name[1])) |
| 68 | - short_names.push_back(std::string(1,name[1])); | |
| 68 | + short_names.emplace_back(1,name[1]); | |
| 69 | 69 | else |
| 70 | 70 | throw BadNameString("Invalid one char name: "+name); |
| 71 | 71 | } else if(name.length() > 2 && name.substr(0,2) == "--") { | ... | ... |
include/CLI/StringTools.hpp
| ... | ... | @@ -20,7 +20,7 @@ inline std::vector<std::string> split(const std::string &s, char delim) { |
| 20 | 20 | std::vector<std::string> elems; |
| 21 | 21 | // Check to see if emtpy string, give consistent result |
| 22 | 22 | if(s=="") |
| 23 | - elems.push_back(""); | |
| 23 | + elems.emplace_back(""); | |
| 24 | 24 | else { |
| 25 | 25 | std::stringstream ss; |
| 26 | 26 | ss.str(s); | ... | ... |
include/CLI/Timer.hpp
| ... | ... | @@ -7,19 +7,20 @@ |
| 7 | 7 | #include <iostream> |
| 8 | 8 | #include <chrono> |
| 9 | 9 | #include <functional> |
| 10 | +#include <utility> | |
| 10 | 11 | |
| 11 | 12 | namespace CLI { |
| 12 | 13 | |
| 13 | 14 | class Timer { |
| 14 | 15 | protected: |
| 15 | 16 | /// This is a typedef to make clocks easier to use |
| 16 | - typedef std::chrono::steady_clock clock; | |
| 17 | + using clock = std::chrono::steady_clock; | |
| 17 | 18 | |
| 18 | 19 | /// This typedef is for points in time |
| 19 | - typedef std::chrono::time_point<clock> time_point; | |
| 20 | + using time_point = std::chrono::time_point<clock>; | |
| 20 | 21 | |
| 21 | 22 | /// This is the type of a printing function, you can make your own |
| 22 | - typedef std::function<std::string(std::string, std::string)> time_print_t; | |
| 23 | + using time_print_t = std::function<std::string (std::string, std::string)>; | |
| 23 | 24 | |
| 24 | 25 | /// This is the title of the timer |
| 25 | 26 | std::string title_; |
| ... | ... | @@ -50,7 +51,7 @@ public: |
| 50 | 51 | public: |
| 51 | 52 | /// Standard constructor, can set title and print function |
| 52 | 53 | Timer(std::string title="Timer", time_print_t time_print = Simple) |
| 53 | - : title_(title), time_print_(time_print), start_(clock::now()) {} | |
| 54 | + : title_(std::move(title)), time_print_(std::move(time_print)), start_(clock::now()) {} | |
| 54 | 55 | |
| 55 | 56 | /// Time a function by running it multiple times. Target time is the len to target. |
| 56 | 57 | std::string time_it(std::function<void()> f, double target_time=1) { | ... | ... |
tests/AppTest.cpp
tests/CreationTest.cpp
tests/HelpTest.cpp
| ... | ... | @@ -283,7 +283,7 @@ TEST(Exit, ErrorWithoutHelp) { |
| 283 | 283 | TEST(Exit, ExitCodes) { |
| 284 | 284 | CLI::App app; |
| 285 | 285 | |
| 286 | - int i = static_cast<int>(CLI::ExitCodes::Extras); | |
| 286 | + auto i = static_cast<int>(CLI::ExitCodes::Extras); | |
| 287 | 287 | EXPECT_EQ(0, app.exit(CLI::Success())); |
| 288 | 288 | EXPECT_EQ(0, app.exit(CLI::CallForHelp())); |
| 289 | 289 | EXPECT_EQ(i, app.exit(CLI::ExtrasError("Thing"))); | ... | ... |
tests/HelpersTest.cpp
| ... | ... | @@ -2,7 +2,7 @@ |
| 2 | 2 | |
| 3 | 3 | #include <cstdio> |
| 4 | 4 | #include <fstream> |
| 5 | -#include <stdint.h> | |
| 5 | +#include <cstdint> | |
| 6 | 6 | #include <string> |
| 7 | 7 | |
| 8 | 8 | TEST(Split, SimpleByToken) { |
| ... | ... | @@ -278,33 +278,33 @@ TEST(Join, Backward) { |
| 278 | 278 | |
| 279 | 279 | TEST(SplitUp, Simple) { |
| 280 | 280 | std::vector<std::string> oput = {"one", "two three"}; |
| 281 | - std::string orig {"one \"two three\""}; | |
| 281 | + std::string orig {R"(one "two three")"}; | |
| 282 | 282 | std::vector<std::string> result = CLI::detail::split_up(orig); |
| 283 | 283 | EXPECT_EQ(oput, result); |
| 284 | 284 | } |
| 285 | 285 | |
| 286 | 286 | TEST(SplitUp, Layered) { |
| 287 | - std::vector<std::string> output = {"one \'two three\'"}; | |
| 288 | - std::string orig {"\"one \'two three\'\""}; | |
| 287 | + std::vector<std::string> output = {R"(one 'two three')"}; | |
| 288 | + std::string orig {R"("one 'two three'")"}; | |
| 289 | 289 | std::vector<std::string> result = CLI::detail::split_up(orig); |
| 290 | 290 | EXPECT_EQ(output, result); |
| 291 | 291 | } |
| 292 | 292 | |
| 293 | 293 | TEST(SplitUp, Spaces) { |
| 294 | 294 | std::vector<std::string> oput = {"one", " two three"}; |
| 295 | - std::string orig {" one \" two three\" "}; | |
| 295 | + std::string orig {R"( one " two three" )"}; | |
| 296 | 296 | std::vector<std::string> result = CLI::detail::split_up(orig); |
| 297 | 297 | EXPECT_EQ(oput, result); |
| 298 | 298 | } |
| 299 | 299 | |
| 300 | 300 | TEST(SplitUp, BadStrings) { |
| 301 | 301 | std::vector<std::string> oput = {"one", " two three"}; |
| 302 | - std::string orig {" one \" two three "}; | |
| 302 | + std::string orig {R"( one " two three )"}; | |
| 303 | 303 | std::vector<std::string> result = CLI::detail::split_up(orig); |
| 304 | 304 | EXPECT_EQ(oput, result); |
| 305 | 305 | |
| 306 | 306 | oput = {"one", " two three"}; |
| 307 | - orig = " one \' two three "; | |
| 307 | + orig = R"( one ' two three )"; | |
| 308 | 308 | result = CLI::detail::split_up(orig); |
| 309 | 309 | EXPECT_EQ(oput, result); |
| 310 | 310 | } | ... | ... |
tests/IniTest.cpp
| ... | ... | @@ -51,9 +51,9 @@ TEST(StringBased, FirstWithComments) { |
| 51 | 51 | TEST(StringBased, Quotes) { |
| 52 | 52 | std::stringstream ofile; |
| 53 | 53 | |
| 54 | - ofile << "one = \"three\"" << std::endl; | |
| 55 | - ofile << "two = \'four\'" << std::endl; | |
| 56 | - ofile << "five = \"six and seven\"" << std::endl; | |
| 54 | + ofile << R"(one = "three")" << std::endl; | |
| 55 | + ofile << R"(two = 'four')" << std::endl; | |
| 56 | + ofile << R"(five = "six and seven")" << std::endl; | |
| 57 | 57 | |
| 58 | 58 | ofile.seekg(0, std::ios::beg); |
| 59 | 59 | |
| ... | ... | @@ -575,7 +575,7 @@ TEST_F(TApp, IniQuotedOutput) { |
| 575 | 575 | std::string val2; |
| 576 | 576 | app.add_option("--val2", val2); |
| 577 | 577 | |
| 578 | - args = {"--val1", "I am a string", "--val2", "I am a \"confusing\" string"}; | |
| 578 | + args = {"--val1", "I am a string", "--val2", R"(I am a "confusing" string)"}; | |
| 579 | 579 | |
| 580 | 580 | run(); |
| 581 | 581 | ... | ... |
tests/NewParseTest.cpp