#include <iostream>
#include <sstream>

template<typename ... Ts>
std::string concat(Ts&&...args)
{
    std::stringstream ss;
    const int dummy[] = {0, (ss << std::forward<Ts>(args), 0)...};
    static_cast<void>(dummy); // avoid warning for unused variable
    return ss.str();
}

int main()
{
    std::cout << concat(88, 'a', "home", 9) << std::endl;
    return 0;
}

