void foo(std::string arg, ...) {
// do something with every argument
}
Lets say I want to be able to take every string argument and append an exclamation mark before printing it out on a new line.
The best way is to use parameters pack. For example:
#include <iostream>
// Modify single string.
void foo(std::string& arg)
{
arg.append("!");
}
// Modify multiple strings. Here we use parameters pack by `...T`
template<typename ...T>
void foo(std::string& arg, T&... args)
{
foo(arg);
foo(args...);
}
int main()
{
// Lets make a test
std::string s1 = "qwe";
std::string s2 = "asd";
foo(s1, s2);
std::cout << s1 << std::endl << s2 << std::endl;
return 0;
}
This will print out:
qwe!
asd!
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With