--- a/base/libs/androidfw/include/androidfw/StringPiece.h 2022-09-24 10:22:22.808291321 +0800 +++ b/base/libs/androidfw/include/androidfw/StringPiece.h 2022-09-24 10:20:04.808277573 +0800 @@ -68,13 +68,19 @@ size_t size() const; bool empty() const; std::basic_string to_string() const; + bool contains(const BasicStringPiece& rhs) const; int compare(const BasicStringPiece& rhs) const; bool operator<(const BasicStringPiece& rhs) const; bool operator>(const BasicStringPiece& rhs) const; bool operator==(const BasicStringPiece& rhs) const; bool operator!=(const BasicStringPiece& rhs) const; - + // for std::basic_string + bool operator<(const std::basic_string& rhs) const; + bool operator>(const std::basic_string& rhs) const; + bool operator==(const std::basic_string& rhs) const; + bool operator!=(const std::basic_string& rhs) const; + const_iterator begin() const; const_iterator end() const; @@ -256,6 +262,26 @@ } + template +inline bool BasicStringPiece::operator<(const std::basic_string& rhs) const { + return compare(BasicStringPiece(rhs)) < 0; +} + +template +inline bool BasicStringPiece::operator>(const std::basic_string& rhs) const { + return compare(BasicStringPiece(rhs)) > 0; +} + +template +inline bool BasicStringPiece::operator==(const std::basic_string& rhs) const { + return compare(BasicStringPiece(rhs)) == 0; +} + +template +inline bool BasicStringPiece::operator!=(const std::basic_string& rhs) const{ + return compare(BasicStringPiece(rhs)) != 0; +} + template inline typename BasicStringPiece::const_iterator BasicStringPiece::begin() const { return data_; }