diff options
| -rw-r--r-- | toolsrc/include/vcpkg_Strings.h | 3 | ||||
| -rw-r--r-- | toolsrc/src/vcpkg_Strings.cpp | 21 |
2 files changed, 24 insertions, 0 deletions
diff --git a/toolsrc/include/vcpkg_Strings.h b/toolsrc/include/vcpkg_Strings.h index 70526198c..d55a01224 100644 --- a/toolsrc/include/vcpkg_Strings.h +++ b/toolsrc/include/vcpkg_Strings.h @@ -1,6 +1,7 @@ #pragma once #include <string> +#include <vector> namespace vcpkg {namespace Strings {namespace details { @@ -67,4 +68,6 @@ namespace vcpkg {namespace Strings std::string::const_iterator case_insensitive_ascii_find(const std::string& s, const std::string& pattern); std::string ascii_to_lowercase(const std::string& input); + + std::string join(const std::vector<std::string>& v, const std::string& delimiter); }} diff --git a/toolsrc/src/vcpkg_Strings.cpp b/toolsrc/src/vcpkg_Strings.cpp index 56eeae7a0..c53cba1fc 100644 --- a/toolsrc/src/vcpkg_Strings.cpp +++ b/toolsrc/src/vcpkg_Strings.cpp @@ -64,4 +64,25 @@ namespace vcpkg {namespace Strings std::transform(output.begin(), output.end(), output.begin(), ::tolower); return output; } + + std::string join(const std::vector<std::string>& v, const std::string& delimiter) + { + if (v.empty()) + { + return std::string(); + } + + std::string output; + size_t size = v.size(); + + output.append(v.at(0)); + + for (int i = 1; i < size; ++i) + { + output.append(delimiter); + output.append(v.at(i)); + } + + return output; + } }} |
