Integrated std::byte added to C++17 recently
This commit is contained in:
TheDoctor
2019-10-15 21:03:24 +01:00
parent 8fbda17074
commit 5ab59a6fb8
49 changed files with 424 additions and 427 deletions

View File

@ -15,41 +15,41 @@ namespace std::net
};
template <typename F>
static ParseResult<std::string> ParseUntil(char const* str, F func)
static ParseResult<string> ParseUntil(char const* str, F func)
{
ParseResult<std::string> result{};
ParseResult<string> result{};
char const* ch = str;
for (; *ch && !func(*ch); ++ch)
{
}
result.value = std::string(str, ch - str);
result.value = string(str, ch - str);
result.ch = ch;
return result;
}
template <typename F>
static inline ParseResult<std::string> ParseWhile(char const* str, F func)
static inline ParseResult<string> ParseWhile(char const* str, F func)
{
ParseResult<std::string> result{};
ParseResult<string> result{};
char const* ch = str;
for (; *ch && func(*ch); ++ch)
{
}
result.value = std::string(str, ch - str);
result.value = string(str, ch - str);
result.ch = ch;
return result;
}
static inline ParseResult<std::string> ParseToken(char const* str)
static inline ParseResult<string> ParseToken(char const* str)
{
auto token = ParseUntil(str, isspace);
token.ch = ParseWhile(token.ch, isspace).ch;
return token;
}
static inline ParseResult<std::string> parseCrLf(char const* str)
static inline ParseResult<string> parseCrLf(char const* str)
{
auto cr = ParseUntil(str, [](char ch) { return ch == '\r'; });
if (*cr.ch == '\r')
@ -60,7 +60,7 @@ namespace std::net
});
}
static inline ParseResult<std::string> ParseWhitespace(char const* str)
static inline ParseResult<string> ParseWhitespace(char const* str)
{
return ParseWhile(str, isspace);
}