[libc-commits] [libc] [libc] Add `shm_open/shm_unlink` (PR #84974)
Nick Desaulniers via libc-commits
libc-commits at lists.llvm.org
Wed Mar 13 09:26:01 PDT 2024
================
@@ -179,21 +179,38 @@ class string_view {
LIBC_INLINE char back() const { return Data[Len - 1]; }
// Finds the first occurence of c in this view, starting at position From.
- LIBC_INLINE size_t find_first_of(const char c, size_t From = 0) const {
+ LIBC_INLINE constexpr size_t find_first_of(const char c,
+ size_t From = 0) const {
for (size_t Pos = From; Pos < size(); ++Pos)
if ((*this)[Pos] == c)
return Pos;
return npos;
}
// Finds the last occurence of c in this view, ending at position End.
- LIBC_INLINE size_t find_last_of(const char c, size_t End = npos) const {
+ LIBC_INLINE constexpr size_t find_last_of(const char c,
+ size_t End = npos) const {
End = End >= size() ? size() : End + 1;
for (; End > 0; --End)
if ((*this)[End - 1] == c)
return End - 1;
return npos;
}
+
+ // Finds the first character not equal to c in this view, starting at position
+ // From.
+ LIBC_INLINE constexpr size_t find_first_not_of(const char c,
+ size_t From = 0) const {
+ for (size_t Pos = From; Pos < size(); ++Pos)
+ if ((*this)[Pos] != c)
+ return Pos;
+ return npos;
+ }
+
+ // Check if this view contains the given character.
+ LIBC_INLINE constexpr bool contains(char c) const {
+ return find_first_of(c) != npos;
+ }
----------------
nickdesaulniers wrote:
Please add test coverage for these to test/src/__support/CPP/stringview_test.cpp.
https://github.com/llvm/llvm-project/pull/84974
More information about the libc-commits
mailing list