feat: error handling, better prelude, double linked lists usage etc

This commit is contained in:
2026-01-02 22:06:56 +01:00
parent a453603b9b
commit 6176d549c1
10 changed files with 148 additions and 65 deletions

View File

@@ -67,7 +67,6 @@ public:
const T* end() const { return data + size; }
};
class StringView final : public View<char>
{
public:
@@ -102,6 +101,32 @@ public:
}
}
static StringView FromFormat(const char* fmt, ...)
{
va_list args;
va_start(args, fmt);
va_list args2;
va_copy(args2, args);
int len = std::vsnprintf(nullptr, 0, fmt, args2);
va_end(args2);
if (len < 0) {
va_end(args);
return StringView();
}
char* str = new char[len + 1];
std::vsnprintf(str, len + 1, fmt, args);
va_end(args);
return StringView(str);
}
size_t len() const { return strlen(data); }
const char* c_str() const { return data; }
};