38 #ifndef BSFM_STRINGS_JOIN_H
39 #define BSFM_STRINGS_JOIN_H
41 #include <initializer_list>
48 inline std::string
Join(
const std::vector<std::string> &tokens,
49 const std::string &separator) {
50 std::string joined(
"");
51 for (
size_t tt = 0; tt < tokens.size(); ++tt)
53 joined.append(tokens[tt]);
54 if (tt != tokens.size() - 1)
55 joined.append(separator);
60 inline std::string
Join(
const std::vector<std::string> &tokens,
62 std::string separator_string = { separator };
63 return Join(tokens, separator_string);
66 inline std::string
Join(
const std::vector<std::string> &tokens) {
67 const std::string empty_separator(
"");
68 return Join(tokens, empty_separator);
71 inline std::string
Join(
const std::initializer_list<std::string>& tokens) {
72 const std::vector<std::string> string_tokens(tokens);
73 return Join(string_tokens);
76 template <
typename... ArgsT>
77 inline std::string
Join(
const ArgsT &... tokens) {
78 return Join({tokens...});
std::string Join(const std::vector< std::string > &tokens, const std::string &separator)