diff options
Diffstat (limited to 'Source/cmAlgorithms.h')
-rw-r--r-- | Source/cmAlgorithms.h | 126 |
1 files changed, 0 insertions, 126 deletions
diff --git a/Source/cmAlgorithms.h b/Source/cmAlgorithms.h index cf71052..d7ea483 100644 --- a/Source/cmAlgorithms.h +++ b/Source/cmAlgorithms.h @@ -6,41 +6,14 @@ #include "cmConfigure.h" // IWYU pragma: keep #include "cmRange.h" - #include "cm_kwiml.h" -#include "cm_string_view.hxx" #include <algorithm> #include <functional> #include <iterator> -#include <sstream> -#include <string.h> -#include <string> #include <unordered_set> #include <utility> #include <vector> -struct cmStrCmp -{ - cmStrCmp(const char* test) - : m_test(test) - { - } - cmStrCmp(std::string test) - : m_test(std::move(test)) - { - } - - bool operator()(const std::string& input) const { return m_test == input; } - - bool operator()(const char* input) const - { - return strcmp(input, m_test.c_str()) == 0; - } - -private: - const std::string m_test; -}; - template <typename FwdIt> FwdIt cmRotate(FwdIt first, FwdIt middle, FwdIt last) { @@ -120,8 +93,6 @@ private: }; } -typedef cmRange<std::vector<std::string>::const_iterator> cmStringRange; - class cmListFileBacktrace; typedef cmRange<std::vector<cmListFileBacktrace>::const_iterator> cmBacktraceRange; @@ -146,31 +117,6 @@ void cmAppend(std::vector<T>& v, InputIt first, InputIt last) } template <typename Range> -std::string cmJoin(Range const& r, const char* delimiter) -{ - if (r.empty()) { - return std::string(); - } - std::ostringstream os; - typedef typename Range::value_type ValueType; - typedef typename Range::const_iterator InputIt; - const InputIt first = r.begin(); - InputIt last = r.end(); - --last; - std::copy(first, last, std::ostream_iterator<ValueType>(os, delimiter)); - - os << *last; - - return os.str(); -} - -template <typename Range> -std::string cmJoin(Range const& r, std::string const& delimiter) -{ - return cmJoin(r, delimiter.c_str()); -} - -template <typename Range> typename Range::const_iterator cmRemoveN(Range& r, size_t n) { return ContainerAlgorithms::RemoveN(r.begin(), r.end(), n); @@ -248,23 +194,6 @@ typename Range::const_iterator cmRemoveDuplicates(Range& r) return cmRemoveDuplicates(r.begin(), r.end()); } -template <typename Range> -std::string cmWrap(std::string const& prefix, Range const& r, - std::string const& suffix, std::string const& sep) -{ - if (r.empty()) { - return std::string(); - } - return prefix + cmJoin(r, suffix + sep + prefix) + suffix; -} - -template <typename Range> -std::string cmWrap(char prefix, Range const& r, char suffix, - std::string const& sep) -{ - return cmWrap(std::string(1, prefix), r, std::string(1, suffix), sep); -} - template <typename Range, typename T> typename Range::const_iterator cmFindNot(Range const& r, T const& t) { @@ -277,61 +206,6 @@ std::reverse_iterator<Iter> cmMakeReverseIterator(Iter it) return std::reverse_iterator<Iter>(it); } -/** Returns true if string @a str starts with the character @a prefix. **/ -inline bool cmHasPrefix(cm::string_view str, char prefix) -{ - return !str.empty() && (str.front() == prefix); -} - -/** Returns true if string @a str starts with string @a prefix. **/ -inline bool cmHasPrefix(cm::string_view str, cm::string_view prefix) -{ - return str.compare(0, prefix.size(), prefix) == 0; -} - -/** Returns true if string @a str starts with string @a prefix. **/ -template <size_t N> -inline bool cmHasLiteralPrefix(cm::string_view str, const char (&prefix)[N]) -{ - return cmHasPrefix(str, cm::string_view(prefix, N - 1)); -} - -/** Returns true if string @a str ends with the character @a suffix. **/ -inline bool cmHasSuffix(cm::string_view str, char suffix) -{ - return !str.empty() && (str.back() == suffix); -} - -/** Returns true if string @a str ends with string @a suffix. **/ -inline bool cmHasSuffix(cm::string_view str, cm::string_view suffix) -{ - return str.size() >= suffix.size() && - str.compare(str.size() - suffix.size(), suffix.size(), suffix) == 0; -} - -/** Returns true if string @a str ends with string @a suffix. **/ -template <size_t N> -inline bool cmHasLiteralSuffix(cm::string_view str, const char (&suffix)[N]) -{ - return cmHasSuffix(str, cm::string_view(suffix, N - 1)); -} - -/** Removes an existing suffix character of from the string @a str. **/ -inline void cmStripSuffixIfExists(std::string& str, char suffix) -{ - if (cmHasSuffix(str, suffix)) { - str.pop_back(); - } -} - -/** Removes an existing suffix string of from the string @a str. **/ -inline void cmStripSuffixIfExists(std::string& str, cm::string_view suffix) -{ - if (cmHasSuffix(str, suffix)) { - str.resize(str.size() - suffix.size()); - } -} - namespace cm { #if __cplusplus >= 201703L || defined(_MSVC_LANG) && _MSVC_LANG >= 201703L |