diff options
-rw-r--r-- | CMakeLists.txt | 5 | ||||
-rw-r--r-- | args.hxx | 4 | ||||
-rw-r--r-- | test/windows_h.cxx | 37 |
3 files changed, 44 insertions, 2 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index d0aaa69..8f17cab 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,10 @@ add_executable(gitlike examples/gitlike.cxx) target_link_libraries(gitlike args) set_property(TARGET gitlike PROPERTY CXX_STANDARD 11) +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) set_property(TARGET completion PROPERTY CXX_STANDARD 11) @@ -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 new file mode 100644 index 0000000..007a1e7 --- /dev/null +++ b/test/windows_h.cxx @@ -0,0 +1,37 @@ +#ifdef _WIN32 +#include "windows.h" +#else +#define min(a,b) ((a)<(b)?(a):(b)) +#define max(a,b) ((a)>(b)?(a):(b)) +#endif + +#include <iostream> +#include <args.hxx> + +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"}); + 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; +} |