Try to answer your questions one by one:
I think this is a variational constructor.
You're right.
Does the C ++ standard know that a constructor can be a variable?
IANALL, but I think so. Why not? A constructor is just a function (member).
What is the use of such a constructor?
- . , , . , , (C), - ". .
#include <iostream>
#include <cstdarg>
struct Test
{
Test(int n,...)
{
va_list va;
va_start(va, n);
for (int i = 0; i < n; ++i) {
char const *s = va_arg(va, char*);
std::cout<<"s=" << s << std::endl;
}
va_end(va);
}
};
int main()
{
Test t{3, "3","4","5"};
}
, "" . , "pure variadic", , , ++-. , , :
Test t={"3","4","5", NULL};
Variadic?
" C, - ", . <cstdarg>
, . , ++ 11, , , , / . ++ 98 .