| 51 | |
| 52 | inline std::string WABT_PRINTF_FORMAT(1, 2) |
| 53 | StringPrintf(const char* format, ...) { |
| 54 | va_list args; |
| 55 | va_list args_copy; |
| 56 | va_start(args, format); |
| 57 | va_copy(args_copy, args); |
| 58 | size_t len = wabt_vsnprintf(nullptr, 0, format, args) + 1; // For \0. |
| 59 | std::vector<char> buffer(len); |
| 60 | va_end(args); |
| 61 | wabt_vsnprintf(buffer.data(), len, format, args_copy); |
| 62 | va_end(args_copy); |
| 63 | return std::string(buffer.data(), len - 1); |
| 64 | } |
| 65 | |
| 66 | } // namespace wabt |
| 67 |