直接看代码:
#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;
输出:

本文介绍了一种利用C++模板元编程技术来实现可变数量参数字符串拼接的方法。通过递归模板特化技术,可以将任意数量和类型的参数转化为字符串并输出。示例展示了如何使用该技术打印混合类型参数。

927万+

被折叠的 条评论
为什么被折叠?



