Я пытаюсь написать функцию, которая принимает множество строк или чисел (которые работают с 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). Как я могу специализироваться на основе строки или числа, чтобы сделать работу выше? Благодарю.