From 65087c8e36676c3c08e3261f8abe5ba6226feeae Mon Sep 17 00:00:00 2001 From: q66 Date: Tue, 16 May 2017 01:32:18 +0200 Subject: [PATCH] more reliable add_optional/positional/category (allow narrowing etc) --- build.cc | 12 ++++++------ ostd/argparse.hh | 6 +++--- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/build.cc b/build.cc index 91a9769..323db5a 100644 --- a/build.cc +++ b/build.cc @@ -148,23 +148,23 @@ int main(int argc, char **argv) { auto &help = ap.add_help("print this message and exit"); - ap.add_optional('\0', "no-examples", ostd::arg_value::NONE) + ap.add_optional(0, "no-examples", ostd::arg_value::NONE) .help("do not build examples") .action(ostd::arg_store_false(build_examples)); - ap.add_optional('\0', "no-test-suite", ostd::arg_value::NONE) + ap.add_optional(0, "no-test-suite", ostd::arg_value::NONE) .help("do not build test suite") .action(ostd::arg_store_false(build_testsuite)); - ap.add_optional('\0', "no-static", ostd::arg_value::NONE) + ap.add_optional(0, "no-static", ostd::arg_value::NONE) .help("do not build static libostd") .action(ostd::arg_store_false(build_static)); - ap.add_optional('\0', "shared", ostd::arg_value::NONE) + ap.add_optional(0, "shared", ostd::arg_value::NONE) .help("build shared libostd") .action(ostd::arg_store_true(build_shared)); - ap.add_optional('\0', "config", ostd::arg_value::REQUIRED) + ap.add_optional(0, "config", ostd::arg_value::REQUIRED) .help("build configuration (debug/release)") .action(ostd::arg_store_str(build_cfg)); @@ -172,7 +172,7 @@ int main(int argc, char **argv) { .help("print entire commands") .action(ostd::arg_store_true(verbose)); - ap.add_optional('\0', "clean", ostd::arg_value::NONE) + ap.add_optional(0, "clean", ostd::arg_value::NONE) .help("remove generated files and exit") .action(ostd::arg_store_true(clean)); diff --git a/ostd/argparse.hh b/ostd/argparse.hh index 230c620..a22593c 100644 --- a/ostd/argparse.hh +++ b/ostd/argparse.hh @@ -250,19 +250,19 @@ struct arg_parser { template arg_optional &add_optional(A &&...args) { - arg_description *p = new arg_optional{std::forward(args)...}; + arg_description *p = new arg_optional(std::forward(args)...); return static_cast(*p_opts.emplace_back(p)); } template arg_positional &add_positional(A &&...args) { - arg_description *p = new arg_positional{std::forward(args)...}; + arg_description *p = new arg_positional(std::forward(args)...); return static_cast(*p_opts.emplace_back(p)); } template arg_category &add_category(A &&...args) { - arg_description *p = new arg_category{std::forward(args)...}; + arg_description *p = new arg_category(std::forward(args)...); return static_cast(*p_opts.emplace_back(p)); }