From de3b674ea4baba4b699ebaddbb15639c024e3a0f Mon Sep 17 00:00:00 2001 From: Pavel Belikov Date: Fri, 4 May 2018 20:11:55 +0300 Subject: Add test for windows minmax --- CMakeLists.txt | 7 +++++++ test/windows_h.cxx | 31 +++++++++++++++++++++++++++++++ 2 files changed, 38 insertions(+) create mode 100644 test/windows_h.cxx diff --git a/CMakeLists.txt b/CMakeLists.txt index d0aaa69..76caba4 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -36,6 +36,7 @@ else () endif () add_executable(argstest-multiple-inclusion test/multiple_inclusion_1.cxx test/multiple_inclusion_2.cxx) + target_link_libraries(argstest-multiple-inclusion args) set_property(TARGET argstest-multiple-inclusion PROPERTY CXX_STANDARD 11) @@ -43,6 +44,12 @@ add_executable(gitlike examples/gitlike.cxx) target_link_libraries(gitlike args) set_property(TARGET gitlike PROPERTY CXX_STANDARD 11) +if (WIN32) + add_executable(argstest-windows-h test/windows_h.cxx) + target_link_libraries(argstest-windows-h args) + set_property(TARGET argstest-windows-h PROPERTY CXX_STANDARD 11) +endif () + add_executable(completion examples/completion.cxx) target_link_libraries(completion args) set_property(TARGET completion PROPERTY CXX_STANDARD 11) diff --git a/test/windows_h.cxx b/test/windows_h.cxx new file mode 100644 index 0000000..a9befe1 --- /dev/null +++ b/test/windows_h.cxx @@ -0,0 +1,31 @@ +#include "windows.h" +#include +#include + +int main() +{ + args::ArgumentParser parser("This is a test program.", "This goes after the options."); + args::HelpFlag help(parser, "help", "Display this help menu", {'h', "help"}); + args::CompletionFlag completion(parser, {"complete"}); + try + { + parser.ParseCLI(argc, argv); + } + catch (args::Completion& e) + { + std::cout << e.what(); + return 0; + } + catch (args::Help&) + { + std::cout << parser; + return 0; + } + catch (args::ParseError& e) + { + std::cerr << e.what() << std::endl; + std::cerr << parser; + return 1; + } + return 0; +} -- cgit v1.2.1 From 17cfe1afd74dbfa5e4ba1401eeca9c80f6011b95 Mon Sep 17 00:00:00 2001 From: Pavel Belikov Date: Fri, 4 May 2018 20:19:33 +0300 Subject: Fix Nargs::min, Nargs::max initializers for min/max macros from --- CMakeLists.txt | 8 +++----- args.hxx | 4 ++-- test/windows_h.cxx | 8 +++++++- 3 files changed, 12 insertions(+), 8 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 76caba4..8f17cab 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -44,11 +44,9 @@ add_executable(gitlike examples/gitlike.cxx) target_link_libraries(gitlike args) set_property(TARGET gitlike PROPERTY CXX_STANDARD 11) -if (WIN32) - add_executable(argstest-windows-h test/windows_h.cxx) - target_link_libraries(argstest-windows-h args) - set_property(TARGET argstest-windows-h PROPERTY CXX_STANDARD 11) -endif () +add_executable(argstest-windows-h test/windows_h.cxx) +target_link_libraries(argstest-windows-h args) +set_property(TARGET argstest-windows-h PROPERTY CXX_STANDARD 11) add_executable(completion examples/completion.cxx) target_link_libraries(completion args) diff --git a/args.hxx b/args.hxx index 655718f..c4fbc10 100644 --- a/args.hxx +++ b/args.hxx @@ -748,7 +748,7 @@ namespace args const size_t min; const size_t max; - Nargs(size_t min_, size_t max_) : min(min_), max(max_) + Nargs(size_t min_, size_t max_) : min{min_}, max{max_} { #ifndef ARGS_NOEXCEPT if (max < min) @@ -758,7 +758,7 @@ namespace args #endif } - Nargs(size_t num_) : min(num_), max(num_) + Nargs(size_t num_) : min{num_}, max{num_} { } diff --git a/test/windows_h.cxx b/test/windows_h.cxx index a9befe1..007a1e7 100644 --- a/test/windows_h.cxx +++ b/test/windows_h.cxx @@ -1,8 +1,14 @@ +#ifdef _WIN32 #include "windows.h" +#else +#define min(a,b) ((a)<(b)?(a):(b)) +#define max(a,b) ((a)>(b)?(a):(b)) +#endif + #include #include -int main() +int main(int argc, char** argv) { args::ArgumentParser parser("This is a test program.", "This goes after the options."); args::HelpFlag help(parser, "help", "Display this help menu", {'h', "help"}); -- cgit v1.2.1