Как написать функцию C ++, которая принимает неизвестный тип и количество аргументов?

Я хочу написать функцию этого типа:

void Print(void* args ...)
{
while(args)
cout<<args[i];
}

функция должна обрабатывать int и (std :: string или char *)

Является ли это возможным?

1

Решение

Вы можете сделать это с помощью различных шаблонов:

void Print() { }

template <typename T, typename ...Args>
void Print(T const & t, Args const &... args)
{
cout << t;
Print(args...);
}
6

Другие решения

Ответ

тип переменной конкатенации / количество аргументов в одну строку

Для этого не нужно писать собственную функцию, просто используйте std::stringstream:

std::stringstream ss;
ss << intVar << stringVar << whatever;
4

По вопросам рекламы [email protected]