Раскрытие пакета в вызове в C++
Раскрытие пакета дублирует многоточие рядом с именем пакета и вставляет все элементы на место одного параметра.
Вызов другой функции может принять столько аргументов, сколько лежит в пакете. Запишем приемник и шаблон, который передает значения дальше:
#include <iostream>
void line(int a, int b, int c) {
std::cout << a << " " << b << " " << c << "\n";
}
template<typename... Ts>
void relay(Ts... xs) {
line(xs...);
}
int main() {
relay(4, 5, 6);
return 0;
}
Объявите void tag(const char* s, int n),
печатающую строку и число через пробел.
Передайте в нее пакет из шаблона relay
со значениями "id" и 7.