mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-15 20:29:48 +00:00
Move StringRef comparison operators out of class.
Also, tweak the return type of size(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76588 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
1010c21e4e
commit
7cb6860185
@ -73,7 +73,14 @@ namespace llvm {
|
||||
bool empty() const { return Length == 0; }
|
||||
|
||||
/// size - Get the string size.
|
||||
unsigned size() const { return Length; }
|
||||
size_t size() const { return Length; }
|
||||
|
||||
/// equals - Check for string equality, this is more efficient than
|
||||
/// compare() in when the relative ordering of inequal strings isn't needed.
|
||||
bool equals(const StringRef &RHS) const {
|
||||
return (Length == RHS.Length &&
|
||||
memcmp(Data, RHS.Data, Length) == 0);
|
||||
}
|
||||
|
||||
/// compare - Compare two strings; the result is -1, 0, or 1 if this string
|
||||
/// is lexicographically less than, equal to, or greater than the \arg RHS.
|
||||
@ -95,20 +102,6 @@ namespace llvm {
|
||||
/// @name Operator Overloads
|
||||
/// @{
|
||||
|
||||
bool operator==(const StringRef &RHS) const {
|
||||
return Length == RHS.Length && memcmp(Data, RHS.Data, Length) == 0;
|
||||
}
|
||||
|
||||
bool operator!=(const StringRef &RHS) const { return !(*this == RHS); }
|
||||
|
||||
bool operator<(const StringRef &RHS) const { return compare(RHS) == -1; }
|
||||
|
||||
bool operator<=(const StringRef &RHS) const { return compare(RHS) != 1; }
|
||||
|
||||
bool operator>(const StringRef &RHS) const { return compare(RHS) == 1; }
|
||||
|
||||
bool operator>=(const StringRef &RHS) const { return compare(RHS) != -1; }
|
||||
|
||||
char operator[](size_t Index) const {
|
||||
assert(Index < Length && "Invalid index!");
|
||||
return Data[Index];
|
||||
@ -142,12 +135,41 @@ namespace llvm {
|
||||
|
||||
/// startswith - Check if this string starts with the given \arg Prefix.
|
||||
bool startswith(const StringRef &Prefix) const {
|
||||
return substr(0, Prefix.Length) == Prefix;
|
||||
return substr(0, Prefix.Length).equals(Prefix);
|
||||
}
|
||||
|
||||
/// @}
|
||||
};
|
||||
|
||||
/// @name StringRef Comparison Operators
|
||||
/// @{
|
||||
|
||||
inline bool operator==(const StringRef &LHS, const StringRef &RHS) {
|
||||
return LHS.equals(RHS);
|
||||
}
|
||||
|
||||
inline bool operator!=(const StringRef &LHS, const StringRef &RHS) {
|
||||
return !(LHS == RHS);
|
||||
}
|
||||
|
||||
inline bool operator<(const StringRef &LHS, const StringRef &RHS) {
|
||||
return LHS.compare(RHS) == -1;
|
||||
}
|
||||
|
||||
inline bool operator<=(const StringRef &LHS, const StringRef &RHS) {
|
||||
return LHS.compare(RHS) != 1;
|
||||
}
|
||||
|
||||
inline bool operator>(const StringRef &LHS, const StringRef &RHS) {
|
||||
return LHS.compare(RHS) == 1;
|
||||
}
|
||||
|
||||
inline bool operator>=(const StringRef &LHS, const StringRef &RHS) {
|
||||
return LHS.compare(RHS) != -1;
|
||||
}
|
||||
|
||||
/// @}
|
||||
|
||||
}
|
||||
|
||||
#endif
|
||||
|
Loading…
Reference in New Issue
Block a user