16 va_start(list, format);
18 if (
auto string_length = ::vsnprintf(
nullptr, 0, format, list);
20 auto buffer =
reinterpret_cast<char*
>(::malloc(string_length + 1));
21 ::vsnprintf(buffer, string_length + 1, format, list2);
22 ret_val = std::string{buffer,
static_cast<size_t>(string_length)};
30 bool HasPrefix(
const std::string&
string,
const std::string& prefix) {
31 return string.find(prefix) == 0u;
34 bool HasSuffix(
const std::string&
string,
const std::string& suffix) {
35 auto position =
string.rfind(suffix);
36 if (position == std::string::npos) {
39 return position ==
string.size() - suffix.size();
43 const std::string& to_strip) {
47 return string.substr(to_strip.length());
#define IMPELLER_PRINTF_FORMAT(format_number, args_number)
bool HasPrefix(const std::string &string, const std::string &prefix)
std::string SPrintF(const char *format,...)
bool HasSuffix(const std::string &string, const std::string &suffix)
std::string StripPrefix(const std::string &string, const std::string &to_strip)