std:: va_list

From cppreference.com
Utilities library
General utilities
Relational operators (deprecated in C++20)
Defined in header <cstdarg>
typedef /* unspecified */ va_list ;

va_list is a complete object type (in practice, a unique built-in type or char * ) suitable for holding the information needed by the macros va_start , va_copy , va_arg , and va_end .

If a va_list instance is created, passed to another function, and used via va_arg in that function, then any subsequent use in the calling function should be preceded by a call to va_end .

It is legal to pass a pointer to a va_list object to another function and then use that object after the function returns.

See also

enables access to variadic function arguments
(function macro)
(C++11)
makes a copy of the variadic function arguments
(function macro)
accesses the next variadic function argument
(function macro)
ends traversal of the variadic function arguments
(function macro)
C documentation for va_list