StringView+apps: Add a _sv literal suffix to not confuse function overloads

C++ was being naughty and implicitly casting our fallback const char* to a boolean.
This commit is contained in:
apio 2023-03-29 22:10:01 +02:00
parent e1c03150f8
commit e6645ed607
Signed by: asleepymoon
GPG Key ID: B8A7D06E42258954
4 changed files with 15 additions and 5 deletions

View File

@ -10,7 +10,7 @@ int main(int argc, char** argv)
StringView date;
ArgumentParser parser;
parser.add_value_argument(date, 'd', "date", false);
parser.add_value_argument(date, 'd', "date"_sv, false);
parser.parse(argc, argv);
time_t now;

View File

@ -10,7 +10,7 @@ int main(int argc, char** argv)
StringView pathname;
ArgumentParser parser;
parser.add_positional_argument(pathname, "file", true);
parser.add_positional_argument(pathname, "file"_sv, true);
parser.parse(argc, argv);
f = fopen(pathname.chars(), "w");

View File

@ -12,9 +12,9 @@ int main(int argc, char** argv)
bool show_almost_all;
ArgumentParser parser;
parser.add_positional_argument(pathname, "directory", "/");
parser.add_switch_argument(show_all, 'a', "all");
parser.add_switch_argument(show_almost_all, 'A', "almost-all");
parser.add_positional_argument(pathname, "directory"_sv, "/"_sv);
parser.add_switch_argument(show_all, 'a', "all"_sv);
parser.add_switch_argument(show_almost_all, 'A', "almost-all"_sv);
parser.parse(argc, argv);
DIR* dp = opendir(pathname.chars());

View File

@ -52,3 +52,13 @@ class StringView
usize m_length { 0 };
};
inline StringView operator""_sv(const char* cstring)
{
return StringView { cstring };
}
inline StringView operator""_sv(const char* cstring, usize length)
{
return StringView { cstring, length };
}