【发布时间】:2014-03-15 10:04:29
【问题描述】:
我正在尝试编写一个接受各种字符串或数字的函数(与 std::to_string 一起使用并将它们连接起来。我已经让它只处理字符串,但我无法根据输入进行专门化字符串或数字。
我的代码是这样调用的:
stringer("hello", "world", 2, 15, 0.2014, "goodbye", "world")
这就是我所拥有的:
inline std::string stringer(const std::string &string)
{
return string;
}
template <typename T, typename... Args>
inline std::string stringer(const std::string &string, T &&val, Args &&...args)
{
return stringer(string+std::to_string(val), std::forward<Args>(args)...);
}
template <typename... Args>
inline std::string stringer(const std::string &string, Args &&...args)
{
return stringer(string, std::forward<Args>(args)...);
}
目前,除非以下都是数字(由于 to_string),否则添加的字符串不止一个。我如何根据字符串或数字进行专业化以完成上述工作?谢谢。
【问题讨论】:
标签: c++ c++11 variadic-templates variadic-functions