cmdopt2/args: acceptor should take a char*

This commit is contained in:
Danny Robson 2022-03-21 10:46:29 +10:00
parent 11dc485c88
commit 86eafa366d

View File

@ -24,7 +24,7 @@ namespace cruft::cmdopt2 {
std::optional<std::string> description; std::optional<std::string> description;
bool required_ = false; bool required_ = false;
using acceptor1_t = std::function<void(std::string_view)>; using acceptor1_t = std::function<void(char const *)>;
std::optional<acceptor1_t> acceptor1; std::optional<acceptor1_t> acceptor1;
}; };
@ -44,9 +44,9 @@ namespace cruft::cmdopt2 {
{ {
CHECK (!acceptor1); CHECK (!acceptor1);
if constexpr (parseable<ValueT>) { if constexpr (parseable<ValueT>) {
acceptor1 = [&ref] (std::string_view str) { ref = str; }; acceptor1 = [&ref] (char const* str) { ref = parse::from_string<ValueT> (str); };
} else { } else {
acceptor1 = [&ref] (std::string_view str) { ref = parse::from_string<ValueT> (str); }; acceptor1 = [&ref] (char const* str) { ref = str; };
} }
return get (); return get ();
} }
@ -58,9 +58,9 @@ namespace cruft::cmdopt2 {
CHECK (!acceptor1); CHECK (!acceptor1);
if constexpr (parseable<ValueT>) { if constexpr (parseable<ValueT>) {
acceptor1 = [&ref] (std::string_view str) { ref = str; }; acceptor1 = [&ref] (char const* str) { ref = parse::from_string<ValueT> (str); };
} else { } else {
acceptor1 = [&ref] (std::string_view str) { ref = parse::from_string<ValueT> (str); }; acceptor1 = [&ref] (char const* str) { ref = str; };
} }
return get (); return get ();