31template <
typename Arg>
void _str(std::ostream &os, Arg &&arg) { os << std::forward<Arg>(arg); }
33template <
typename Arg,
typename... Args>
void _str(std::ostream &os, Arg &&arg, Args &&...args)
35 _str(os, std::forward<Arg>(arg));
36 _str(os, std::forward<Args>(args)...);
46inline std::vector<std::string>
split(
const std::string &s,
char delim)
48 std::stringstream ss(s);
50 std::vector<std::string> elems;
51 while (std::getline(ss, item, delim))
53 elems.push_back(item);
58template <
typename... Args> std::string
str(Args &&...args)
61 _str(ss, std::forward<Args>(args)...);
65template <
typename InputIt> std::string
join(InputIt first, InputIt last,
const std::string &concat)
72 for (++first; first != last; ++first)
std::string join(InputIt first, InputIt last, const std::string &concat)
std::string str(Args &&...args)
std::vector< std::string > split(const std::string &s, char delim)