diff options
| author | Alexander Karatarakis <alkarata@microsoft.com> | 2017-03-08 22:33:28 -0800 |
|---|---|---|
| committer | Alexander Karatarakis <alkarata@microsoft.com> | 2017-03-10 16:21:17 -0800 |
| commit | 07e43a7cae217f91808402020e19da2147f5d72b (patch) | |
| tree | bb52daf2b13b4d159838a1756a4ce8bdf0907f45 /toolsrc/include | |
| parent | 4d0abd5841b9639c20126a5a25e2b0d4a9eb98d2 (diff) | |
| download | vcpkg-07e43a7cae217f91808402020e19da2147f5d72b.tar.gz vcpkg-07e43a7cae217f91808402020e19da2147f5d72b.zip | |
Nuke Joiner. Add wjoin()
Diffstat (limited to 'toolsrc/include')
| -rw-r--r-- | toolsrc/include/vcpkg_Strings.h | 37 |
1 files changed, 18 insertions, 19 deletions
diff --git a/toolsrc/include/vcpkg_Strings.h b/toolsrc/include/vcpkg_Strings.h index 5b536e5e1..abf3651e5 100644 --- a/toolsrc/include/vcpkg_Strings.h +++ b/toolsrc/include/vcpkg_Strings.h @@ -74,7 +74,7 @@ namespace vcpkg::Strings std::string ascii_to_lowercase(const std::string& input); template <class T, class Transformer> - static std::string join(const std::vector<T>& v, const std::string& prefix, const std::string& delimiter, const std::string& suffix, Transformer transformer) + std::string join(const std::string& delimiter, const std::vector<T>& v, Transformer transformer) { if (v.empty()) { @@ -84,7 +84,6 @@ namespace vcpkg::Strings std::string output; size_t size = v.size(); - output.append(prefix); output.append(transformer(v.at(0))); for (size_t i = 1; i < size; ++i) @@ -93,35 +92,35 @@ namespace vcpkg::Strings output.append(transformer(v.at(i))); } - output.append(suffix); return output; } - static std::string join(const std::vector<std::string>& v, const std::string& prefix, const std::string& delimiter, const std::string& suffix); + std::string join(const std::string& delimiter, const std::vector<std::string>& v); - class Joiner + template <class T, class Transformer> + std::wstring wjoin(const std::wstring& delimiter, const std::vector<T>& v, Transformer transformer) { - public: - static Joiner on(const std::string& delimiter); + if (v.empty()) + { + return std::wstring(); + } - Joiner& prefix(const std::string& prefix); - Joiner& suffix(const std::string& suffix); + std::wstring output; + size_t size = v.size(); - std::string join(const std::vector<std::string>& v) const; + output.append(transformer(v.at(0))); - template <class T, class Transformer> - std::string join(const std::vector<T>& v, Transformer transformer) const + for (size_t i = 1; i < size; ++i) { - return Strings::join(v, this->m_prefix, this->m_delimiter, this->m_suffix, transformer); + output.append(delimiter); + output.append(transformer(v.at(i))); } - private: - explicit Joiner(const std::string& delimiter); + return output; + } + + std::wstring wjoin(const std::wstring& delimiter, const std::vector<std::wstring>& v); - std::string m_prefix; - std::string m_delimiter; - std::string m_suffix; - }; void trim(std::string* s); |
