I am using c++17 and wide characters.
I have created a function to create a wchar_t* using a variable number of parameters ...
#include <stdarg.h>
// the caller will free the memory
wchar_t* GetMessage( const wchar_t* format, ... )
{
  va_list args;
  va_start(args, format);
  // get the size of the final string
  const auto size = vswprintf(nullptr, 0, format, args);  
  // create the buffer
  const auto buffSize = size + 1;
  const auto buffer = new wchar_t[buffSize];
  memset(buffer, 0, buffSize * sizeof(wchar_t) );
  // create the string
  vswprintf_s(buffer, buffSize, format, args);
  
  va_end(args);
  // all done
  return buffer;
}
Can you suggest a more efficient, standard, way of achieving the above?

