53#if LASS_COMPILER_TYPE == LASS_COMPILER_TYPE_MSVC
54# pragma warning(disable: 4996)
62std::string safe_vformat(
const char* format, va_list args)
65 std::vector<char> dynamicBuffer(size);
70 const int numWritten = ::vsnprintf(&dynamicBuffer[0], size, format, ap);
74 throw std::runtime_error(
"safe_vformat: encoding error");
76 if (numWritten <
static_cast<int>(size))
78 return std::string(&dynamicBuffer[0]);
80 size =
static_cast<size_t>(numWritten) + 1;
81 if (
static_cast<int>(size) < 0)
83 throw std::length_error(
"safe_vformat: buffer is growing too large");
85 dynamicBuffer.resize(size);
89std::string safe_format(
const char* format, ...)
92 va_start(args, format);
93 std::string result = safe_vformat(format, args);
lass extensions to the standard library
Library for Assembled Shared Sources.