直接看代码:
#include <iostream>
#include <sstream>
#include <string>
// 可变参数终结
template <typename T>
std::string ArgString(const T& t)
{
std::stringstream ss;
ss << t;
return ss.str();
}
// 可变参数递归展开
template <typename T, typename... Arg>
std::string ArgString(const T& t, Arg&&... arg)
{
std::stringstream ss;
ss << t;
return ss.str() + ArgString(std::forward<Arg>(arg)...);
}
使用很简单:
auto str = ArgString("猪肉", 10, "块钱一斤!");
std::cout << str << std::endl;
输出: