Существует ли версия следующего кода в стиле va_list для безопасного выполнения неусеченного sprintf:
// format a char buffer
int size = 1 + _snprintf(NULL, 0, "%d", 132);
std::vector<char> buffer (size);
sprintf_s(&buffer[0], buffer.size (), "%d", 132);
// format a wchar_t buffer
int wsize = 1 + _snwprintf(NULL, 0, L"%d", 132);
std::vector<wchar_t> wbuffer (wsize);
swprintf_s(&wbuffer[0], wbuffer.size (), L"%d", 132);
Насколько я могу судить из документации и экспериментов, все функции _vsnprintf не возвращают вычисление длины, а только усекают или генерируют ошибку. Есть ли альтернатива?