#include <iostream>
#include <string>
using namespace std;
template<typename... Args>
void foo(Args&... args)
{
constexpr size_t param_count = sizeof...(args);
string* sarray[param_count] = { &args... }; // <= Copy-array
*(sarray[0]) = "Goodbye";
}
int main()
{
std::string str1 = "Hello";
std::string str2 = "World";
std::cout << str1 << std::endl;
std::cout << str2 << std::endl;
foo(str1, str2);
std::cout << str1 << std::endl;
std::cout << str2 << std::endl;
system("pause");
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RyaW5nPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCnRlbXBsYXRlPHR5cGVuYW1lLi4uIEFyZ3M+CnZvaWQgZm9vKEFyZ3MmLi4uIGFyZ3MpCnsKICAgIGNvbnN0ZXhwciBzaXplX3QgcGFyYW1fY291bnQgPSBzaXplb2YuLi4oYXJncyk7CiAgICBzdHJpbmcqIHNhcnJheVtwYXJhbV9jb3VudF0gPSB7ICZhcmdzLi4uIH07ICAvLyA8PSBDb3B5LWFycmF5CiAgICAqKHNhcnJheVswXSkgPSAiR29vZGJ5ZSI7Cn0KCgppbnQgbWFpbigpCnsKICAgIHN0ZDo6c3RyaW5nIHN0cjEgPSAiSGVsbG8iOwogICAgc3RkOjpzdHJpbmcgc3RyMiA9ICJXb3JsZCI7CgogICAgc3RkOjpjb3V0IDw8IHN0cjEgPDwgc3RkOjplbmRsOwogICAgc3RkOjpjb3V0IDw8IHN0cjIgPDwgc3RkOjplbmRsOwoKICAgIGZvbyhzdHIxLCBzdHIyKTsKCiAgICBzdGQ6OmNvdXQgPDwgc3RyMSA8PCBzdGQ6OmVuZGw7CiAgICBzdGQ6OmNvdXQgPDwgc3RyMiA8PCBzdGQ6OmVuZGw7CgogICAgc3lzdGVtKCJwYXVzZSIpOwogICAgcmV0dXJuIDA7Cn0=