From 32b50c9113cf1f6fdfc6c306d11f9a5945c14988 Mon Sep 17 00:00:00 2001 From: Krzysiek Karbowiak Date: Wed, 3 Dec 2025 16:24:44 +0100 Subject: [PATCH 1/7] Replace lambda with member pointer --- include/argparse.hpp | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/include/argparse.hpp b/include/argparse.hpp index a961499..48b8212 100644 --- a/include/argparse.hpp +++ b/include/argparse.hpp @@ -1165,10 +1165,7 @@ namespace argparse static auto get_consumable(Tokens & tokens) { return tokens - | std::views::drop_while([](auto const & token) - { - return token.m_consumed; - }) + | std::views::drop_while(&Token::m_consumed) | std::views::take_while([](auto const & token) { return !token.m_consumed; From 09ff26e0f72fec50742188c2458545d0557728b1 Mon Sep 17 00:00:00 2001 From: Krzysiek Karbowiak Date: Wed, 3 Dec 2025 16:27:37 +0100 Subject: [PATCH 2/7] Replace lambda with member pointer --- include/argparse.hpp | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/include/argparse.hpp b/include/argparse.hpp index 48b8212..fa5914a 100644 --- a/include/argparse.hpp +++ b/include/argparse.hpp @@ -1166,10 +1166,7 @@ namespace argparse { return tokens | std::views::drop_while(&Token::m_consumed) - | std::views::take_while([](auto const & token) - { - return !token.m_consumed; - }) + | std::views::take_while(std::not_fn(&Token::m_consumed)) | std::views::filter([past_pseudo_arg = false](auto const & token) mutable { if (past_pseudo_arg && (token.m_token != "--")) From bdd1c41dc5ff23aeb8b57fff29c963b5e427fcf0 Mon Sep 17 00:00:00 2001 From: Krzysiek Karbowiak Date: Wed, 3 Dec 2025 16:43:56 +0100 Subject: [PATCH 3/7] Replace lambda with member pointer --- include/argparse.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/argparse.hpp b/include/argparse.hpp index fa5914a..a462f4b 100644 --- a/include/argparse.hpp +++ b/include/argparse.hpp @@ -435,7 +435,7 @@ namespace argparse static auto check_unrecognised_arguments(Tokens const & tokens) -> void { auto unconsumed = tokens - | std::views::filter([](auto const & token) { return !token.m_consumed; }); + | std::views::filter(std::not_fn(&Token::m_consumed)); if (!unconsumed.empty()) { throw parsing_error(std::format("unrecognised arguments: {}", join(unconsumed | std::views::transform(&Token::m_token), " "))); From c448b17e5ed4b875191866aa4489deb2a694e7ed Mon Sep 17 00:00:00 2001 From: Krzysiek Karbowiak Date: Wed, 3 Dec 2025 16:44:04 +0100 Subject: [PATCH 4/7] Replace lambda with member pointer --- include/argparse.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/argparse.hpp b/include/argparse.hpp index a462f4b..fa4ef10 100644 --- a/include/argparse.hpp +++ b/include/argparse.hpp @@ -1442,7 +1442,7 @@ namespace argparse static auto get_consumable(Tokens & tokens) { return tokens - | std::views::drop_while([](auto const & token) { return token.m_consumed; }) + | std::views::drop_while(&Token::m_consumed) | std::views::take_while([](auto const & token) { return token.m_token != "--"; }); } From 00ea245bc05e82f5a35aa647a4ca62cdef174220 Mon Sep 17 00:00:00 2001 From: Krzysiek Karbowiak Date: Wed, 3 Dec 2025 16:44:26 +0100 Subject: [PATCH 5/7] Replace lambda with member function pointer --- include/argparse.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/argparse.hpp b/include/argparse.hpp index fa4ef10..a8f546d 100644 --- a/include/argparse.hpp +++ b/include/argparse.hpp @@ -1712,7 +1712,7 @@ namespace argparse { auto usage_text = std::string(); - auto non_positionals = arguments | std::views::filter([](auto const & argument) { return !argument.is_positional(); }); + auto non_positionals = arguments | std::views::filter(std::not_fn(&Formattable::is_positional)); for (auto it = non_positionals.begin(); it != non_positionals.end(); ++it) { From 9ce1286c89a672f585ea41a24fb6fb2c08853cfb Mon Sep 17 00:00:00 2001 From: Krzysiek Karbowiak Date: Wed, 3 Dec 2025 16:44:53 +0100 Subject: [PATCH 6/7] Replace lambda with member function pointer --- include/argparse.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/argparse.hpp b/include/argparse.hpp index a8f546d..cd0b4bf 100644 --- a/include/argparse.hpp +++ b/include/argparse.hpp @@ -1789,7 +1789,7 @@ namespace argparse auto help_text = std::string(); for (auto const & argument : arguments - | std::views::filter([](auto const & argument) { return !argument.is_positional(); })) + | std::views::filter(std::not_fn(&Formattable::is_positional))) { auto help_line = std::string(" "); auto const formatted_arg = format(argument); From 75b77444d79d7b021660324e3d3763ac573e79c0 Mon Sep 17 00:00:00 2001 From: Krzysiek Karbowiak Date: Wed, 3 Dec 2025 16:49:09 +0100 Subject: [PATCH 7/7] Simplify code --- include/argparse.hpp | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/include/argparse.hpp b/include/argparse.hpp index cd0b4bf..d30643a 100644 --- a/include/argparse.hpp +++ b/include/argparse.hpp @@ -1451,15 +1451,7 @@ namespace argparse return std::ranges::subrange(std::ranges::next(it), consumable.end()) | std::views::take_while([](auto const & token) { - if (!token.m_token.starts_with("-")) - { - return true; - } - if (ArgumentImpl::is_negative_number(token.m_token)) - { - return true; - } - return false; + return !token.m_token.starts_with("-") || ArgumentImpl::is_negative_number(token.m_token); }); }