Revert "Make c10::string_view an alias of std::string_view (#130417)"

This reverts commit c9551a3f50efc8163d8508a3c2189536528577ac.

Reverted https://github.com/pytorch/pytorch/pull/130417 on behalf of https://github.com/izaitsevfb due to depends on #130009 which needs to be reverted ([comment](https://github.com/pytorch/pytorch/pull/130417#issuecomment-2224212227))
This commit is contained in:
PyTorch MergeBot
2024-07-12 00:37:04 +00:00
parent b5b91b418d
commit 7ce5b5767c
7 changed files with 747 additions and 93 deletions

View File

@ -4,7 +4,6 @@
// NOLINTBEGIN(modernize*, readability*, bugprone-string-constructor)
using c10::string_view;
using c10::string_view_ext;
namespace {
namespace testutils {
@ -243,18 +242,18 @@ TEST(StringViewTest, whenRemovingValidSuffix_thenWorks) {
} // namespace test_remove_suffix
namespace test_swap_function {
constexpr std::pair<string_view_ext, string_view_ext> get() {
string_view_ext first = "first";
string_view_ext second = "second";
constexpr std::pair<string_view, string_view> get() {
string_view first = "first";
string_view second = "second";
swap(first, second);
return std::make_pair(first, second);
}
TEST(StringViewTest, testSwapFunction) {
static_assert(string_view_ext("second") == get().first, "");
static_assert(string_view_ext("first") == get().second, "");
static_assert(string_view("second") == get().first, "");
static_assert(string_view("first") == get().second, "");
EXPECT_EQ(string_view_ext("second"), get().first);
EXPECT_EQ(string_view_ext("first"), get().second);
EXPECT_EQ(string_view("second"), get().first);
EXPECT_EQ(string_view("first"), get().second);
}
} // namespace test_swap_function
@ -518,77 +517,71 @@ static_assert(!(string_view("hello") > string_view("helloa")), "");
} // namespace test_greater_than
namespace test_greater_or_equals_than {
static_assert(string_view_ext("") >= string_view_ext(""), "");
static_assert(string_view_ext("a") >= string_view_ext("a"), "");
static_assert(string_view_ext("hello") >= string_view_ext("hello"), "");
static_assert(string_view_ext("hello") >= string_view_ext(""), "");
static_assert(string_view_ext("hello") >= string_view_ext("aello"), "");
static_assert(string_view_ext("hello") >= string_view_ext("a"), "");
static_assert(
string_view_ext("hello") >= string_view_ext("abcdefghijklmno"),
"");
static_assert(string_view_ext("hello") >= string_view_ext("hela"), "");
static_assert(string_view_ext("hello") >= string_view_ext("helao"), "");
static_assert(string_view_ext("hello") >= string_view_ext("helaobcdefgh"), "");
static_assert(string_view_ext("hello") >= string_view_ext("hell"), "");
static_assert(!(string_view_ext("") >= string_view_ext("hello")), "");
static_assert(!(string_view_ext("hello") >= string_view_ext("zello")), "");
static_assert(!(string_view_ext("hello") >= string_view_ext("z")), "");
static_assert(
!(string_view_ext("hello") >= string_view_ext("zabcdefghijklmno")),
"");
static_assert(!(string_view_ext("hello") >= string_view_ext("helz")), "");
static_assert(!(string_view_ext("hello") >= string_view_ext("helzo")), "");
static_assert(
!(string_view_ext("hello") >= string_view_ext("helzobcdefgh")),
"");
static_assert(!(string_view_ext("hello") >= string_view_ext("helloa")), "");
static_assert(string_view("") >= string_view(""), "");
static_assert(string_view("a") >= string_view("a"), "");
static_assert(string_view("hello") >= string_view("hello"), "");
static_assert(string_view("hello") >= string_view(""), "");
static_assert(string_view("hello") >= string_view("aello"), "");
static_assert(string_view("hello") >= string_view("a"), "");
static_assert(string_view("hello") >= string_view("abcdefghijklmno"), "");
static_assert(string_view("hello") >= string_view("hela"), "");
static_assert(string_view("hello") >= string_view("helao"), "");
static_assert(string_view("hello") >= string_view("helaobcdefgh"), "");
static_assert(string_view("hello") >= string_view("hell"), "");
static_assert(!(string_view("") >= string_view("hello")), "");
static_assert(!(string_view("hello") >= string_view("zello")), "");
static_assert(!(string_view("hello") >= string_view("z")), "");
static_assert(!(string_view("hello") >= string_view("zabcdefghijklmno")), "");
static_assert(!(string_view("hello") >= string_view("helz")), "");
static_assert(!(string_view("hello") >= string_view("helzo")), "");
static_assert(!(string_view("hello") >= string_view("helzobcdefgh")), "");
static_assert(!(string_view("hello") >= string_view("helloa")), "");
} // namespace test_greater_or_equals_than
namespace test_starts_with {
static_assert(string_view_ext("hi").starts_with(string_view_ext("hi")), "");
static_assert(string_view_ext("").starts_with(string_view_ext("")), "");
static_assert(string_view_ext("hi2").starts_with(string_view_ext("")), "");
static_assert(!string_view_ext("").starts_with(string_view_ext("hi")), "");
static_assert(string_view_ext("hi2").starts_with(string_view_ext("hi")), "");
static_assert(!string_view_ext("hi").starts_with(string_view_ext("hi2")), "");
static_assert(!string_view_ext("hi").starts_with(string_view_ext("ha")), "");
static_assert(string_view("hi").starts_with(string_view("hi")), "");
static_assert(string_view("").starts_with(string_view("")), "");
static_assert(string_view("hi2").starts_with(string_view("")), "");
static_assert(!string_view("").starts_with(string_view("hi")), "");
static_assert(string_view("hi2").starts_with(string_view("hi")), "");
static_assert(!string_view("hi").starts_with(string_view("hi2")), "");
static_assert(!string_view("hi").starts_with(string_view("ha")), "");
static_assert(string_view_ext("hi").starts_with("hi"), "");
static_assert(string_view_ext("").starts_with(""), "");
static_assert(string_view_ext("hi2").starts_with(""), "");
static_assert(!string_view_ext("").starts_with("hi"), "");
static_assert(string_view_ext("hi2").starts_with("hi"), "");
static_assert(!string_view_ext("hi").starts_with("hi2"), "");
static_assert(!string_view_ext("hi").starts_with("ha"), "");
static_assert(string_view("hi").starts_with("hi"), "");
static_assert(string_view("").starts_with(""), "");
static_assert(string_view("hi2").starts_with(""), "");
static_assert(!string_view("").starts_with("hi"), "");
static_assert(string_view("hi2").starts_with("hi"), "");
static_assert(!string_view("hi").starts_with("hi2"), "");
static_assert(!string_view("hi").starts_with("ha"), "");
static_assert(!string_view_ext("").starts_with('a'), "");
static_assert(!string_view_ext("").starts_with('\0'), "");
static_assert(!string_view_ext("hello").starts_with('a'), "");
static_assert(string_view_ext("hello").starts_with('h'), "");
static_assert(!string_view("").starts_with('a'), "");
static_assert(!string_view("").starts_with('\0'), "");
static_assert(!string_view("hello").starts_with('a'), "");
static_assert(string_view("hello").starts_with('h'), "");
} // namespace test_starts_with
namespace test_ends_with {
static_assert(string_view_ext("hi").ends_with(string_view_ext("hi")), "");
static_assert(string_view_ext("").ends_with(string_view_ext("")), "");
static_assert(string_view_ext("hi2").ends_with(string_view_ext("")), "");
static_assert(!string_view_ext("").ends_with(string_view_ext("hi")), "");
static_assert(string_view_ext("hi2").ends_with(string_view_ext("i2")), "");
static_assert(!string_view_ext("i2").ends_with(string_view_ext("hi2")), "");
static_assert(!string_view_ext("hi").ends_with(string_view_ext("ha")), "");
static_assert(string_view("hi").ends_with(string_view("hi")), "");
static_assert(string_view("").ends_with(string_view("")), "");
static_assert(string_view("hi2").ends_with(string_view("")), "");
static_assert(!string_view("").ends_with(string_view("hi")), "");
static_assert(string_view("hi2").ends_with(string_view("i2")), "");
static_assert(!string_view("i2").ends_with(string_view("hi2")), "");
static_assert(!string_view("hi").ends_with(string_view("ha")), "");
static_assert(string_view_ext("hi").ends_with("hi"), "");
static_assert(string_view_ext("").ends_with(""), "");
static_assert(string_view_ext("hi2").ends_with(""), "");
static_assert(!string_view_ext("").ends_with("hi"), "");
static_assert(string_view_ext("hi2").ends_with("i2"), "");
static_assert(!string_view_ext("i2").ends_with("hi2"), "");
static_assert(!string_view_ext("hi").ends_with("ha"), "");
static_assert(string_view("hi").ends_with("hi"), "");
static_assert(string_view("").ends_with(""), "");
static_assert(string_view("hi2").ends_with(""), "");
static_assert(!string_view("").ends_with("hi"), "");
static_assert(string_view("hi2").ends_with("i2"), "");
static_assert(!string_view("i2").ends_with("hi2"), "");
static_assert(!string_view("hi").ends_with("ha"), "");
static_assert(!string_view_ext("").ends_with('a'), "");
static_assert(!string_view_ext("").ends_with('\0'), "");
static_assert(!string_view_ext("hello").ends_with('a'), "");
static_assert(string_view_ext("hello").ends_with('o'), "");
static_assert(!string_view("").ends_with('a'), "");
static_assert(!string_view("").ends_with('\0'), "");
static_assert(!string_view("hello").ends_with('a'), "");
static_assert(string_view("hello").ends_with('o'), "");
} // namespace test_ends_with
namespace test_find_overload1 {
@ -664,6 +657,486 @@ static_assert(string_view::npos == string_view("ababa").find("ba", 4, 2), "");
static_assert(string_view::npos == string_view("abc").find("abcd", 0, 4), "");
} // namespace test_find_overload3
namespace test_find_overload4 {
static_assert(0 == string_view("").find(""), "");
static_assert(string_view::npos == string_view("").find("a"), "");
static_assert(string_view::npos == string_view("").find("", 1), "");
static_assert(0 == string_view("abc").find(""), "");
static_assert(2 == string_view("abc").find("", 2), "");
static_assert(0 == string_view("abc").find("a"), "");
static_assert(0 == string_view("abc").find("ab"), "");
static_assert(0 == string_view("abc").find("abc"), "");
static_assert(1 == string_view("abc").find("bc"), "");
static_assert(1 == string_view("abc").find("b"), "");
static_assert(2 == string_view("abc").find("c"), "");
static_assert(0 == string_view("abc").find("a"), "");
static_assert(0 == string_view("abc").find("ab"), "");
static_assert(0 == string_view("abc").find("abc"), "");
static_assert(1 == string_view("ababa").find("ba"), "");
static_assert(3 == string_view("ababa").find("ba", 2), "");
static_assert(3 == string_view("ababa").find("ba", 3), "");
static_assert(string_view::npos == string_view("ababa").find("ba", 4), "");
static_assert(string_view::npos == string_view("abc").find("abcd"), "");
} // namespace test_find_overload4
namespace test_rfind_overload1 {
static_assert(0 == string_view("").rfind(string_view("")), "");
static_assert(string_view::npos == string_view("").rfind(string_view("a")), "");
static_assert(0 == string_view("").rfind(string_view(""), 1), "");
static_assert(3 == string_view("abc").rfind(string_view("")), "");
static_assert(0 == string_view("abc").rfind(string_view(""), 0), "");
static_assert(0 == string_view("abc").rfind(string_view("a")), "");
static_assert(0 == string_view("abc").rfind(string_view("ab")), "");
static_assert(0 == string_view("abc").rfind(string_view("abc")), "");
static_assert(1 == string_view("abc").rfind(string_view("bc")), "");
static_assert(1 == string_view("abc").rfind(string_view("b")), "");
static_assert(2 == string_view("abc").rfind(string_view("c")), "");
static_assert(0 == string_view("abc").rfind(string_view("a")), "");
static_assert(0 == string_view("abc").rfind(string_view("ab")), "");
static_assert(0 == string_view("abc").rfind(string_view("abc")), "");
static_assert(3 == string_view("ababa").rfind(string_view("ba")), "");
static_assert(1 == string_view("ababa").rfind(string_view("ba"), 2), "");
static_assert(1 == string_view("ababa").rfind(string_view("ba"), 1), "");
static_assert(
string_view::npos == string_view("ababa").rfind(string_view("ba"), 0),
"");
static_assert(
string_view::npos == string_view("abc").rfind(string_view("abcd")),
"");
} // namespace test_rfind_overload1
namespace test_rfind_overload2 {
static_assert(string_view::npos == string_view("").rfind('a'), "");
static_assert(0 == string_view("a").rfind('a'), "");
static_assert(0 == string_view("abc").rfind('a'), "");
static_assert(0 == string_view("a").rfind('a', 0), "");
static_assert(1 == string_view("abc").rfind('b'), "");
static_assert(string_view::npos == string_view("abc").rfind('b', 0), "");
static_assert(1 == string_view("abc").rfind('b', 1), "");
static_assert(2 == string_view("abc").rfind('c'), "");
static_assert(string_view::npos == string_view("abc").rfind('c', 0), "");
static_assert(string_view::npos == string_view("abc").rfind('c', 1), "");
static_assert(2 == string_view("abc").rfind('c', 2), "");
static_assert(2 == string_view("abc").rfind('c', 3), "");
static_assert(0 == string_view("abc").rfind('a', 100), "");
static_assert(string_view::npos == string_view("abc").rfind('z'), "");
static_assert(4 == string_view("ababa").rfind('a'), "");
static_assert(0 == string_view("ababa").rfind('a', 0), "");
static_assert(0 == string_view("ababa").rfind('a', 1), "");
static_assert(2 == string_view("ababa").rfind('a', 2), "");
static_assert(2 == string_view("ababa").rfind('a', 3), "");
static_assert(4 == string_view("ababa").rfind('a', 4), "");
static_assert(4 == string_view("ababa").rfind('a', 5), "");
} // namespace test_rfind_overload2
namespace test_rfind_overload3 {
static_assert(0 == string_view("").rfind("", string_view::npos, 0), "");
static_assert(
string_view::npos == string_view("").rfind("a", string_view::npos, 1),
"");
static_assert(0 == string_view("").rfind("", 1, 0), "");
static_assert(3 == string_view("abc").rfind("", string_view::npos, 0), "");
static_assert(0 == string_view("abc").rfind("", 0, 0), "");
static_assert(0 == string_view("abc").rfind("a", string_view::npos, 1), "");
static_assert(0 == string_view("abc").rfind("ab", string_view::npos, 2), "");
static_assert(0 == string_view("abc").rfind("abc", string_view::npos, 3), "");
static_assert(1 == string_view("abc").rfind("bc", string_view::npos, 2), "");
static_assert(1 == string_view("abc").rfind("b", string_view::npos, 1), "");
static_assert(2 == string_view("abc").rfind("c", string_view::npos, 1), "");
static_assert(0 == string_view("abc").rfind("a", string_view::npos, 1), "");
static_assert(0 == string_view("abc").rfind("ab", string_view::npos, 2), "");
static_assert(0 == string_view("abc").rfind("abc", string_view::npos, 3), "");
static_assert(3 == string_view("ababa").rfind("ba", string_view::npos, 2), "");
static_assert(1 == string_view("ababa").rfind("ba", 2, 2), "");
static_assert(1 == string_view("ababa").rfind("ba", 1, 2), "");
static_assert(string_view::npos == string_view("ababa").rfind("ba", 0, 2), "");
static_assert(
string_view::npos == string_view("abc").rfind("abcd", string_view::npos, 4),
"");
} // namespace test_rfind_overload3
namespace test_rfind_overload4 {
static_assert(0 == string_view("").rfind(""), "");
static_assert(string_view::npos == string_view("").rfind("a"), "");
static_assert(0 == string_view("").rfind("", 1), "");
static_assert(3 == string_view("abc").rfind(""), "");
static_assert(0 == string_view("abc").rfind("", 0), "");
static_assert(0 == string_view("abc").rfind("a"), "");
static_assert(0 == string_view("abc").rfind("ab"), "");
static_assert(0 == string_view("abc").rfind("abc"), "");
static_assert(1 == string_view("abc").rfind("bc"), "");
static_assert(1 == string_view("abc").rfind("b"), "");
static_assert(2 == string_view("abc").rfind("c"), "");
static_assert(0 == string_view("abc").rfind("a"), "");
static_assert(0 == string_view("abc").rfind("ab"), "");
static_assert(0 == string_view("abc").rfind("abc"), "");
static_assert(3 == string_view("ababa").rfind("ba"), "");
static_assert(1 == string_view("ababa").rfind("ba", 2), "");
static_assert(1 == string_view("ababa").rfind("ba", 1), "");
static_assert(string_view::npos == string_view("ababa").rfind("ba", 0), "");
static_assert(string_view::npos == string_view("abc").rfind("abcd"), "");
} // namespace test_rfind_overload4
namespace test_find_first_of_overload1 {
static_assert(
string_view::npos == string_view("").find_first_of(string_view("")),
"");
static_assert(
string_view::npos == string_view("").find_first_of(string_view("a")),
"");
static_assert(
string_view::npos == string_view("").find_first_of(string_view("abc")),
"");
static_assert(
string_view::npos == string_view("abc").find_first_of(string_view("")),
"");
static_assert(
string_view::npos == string_view("abc").find_first_of(string_view("d")),
"");
static_assert(
string_view::npos == string_view("abc").find_first_of(string_view("def")),
"");
static_assert(0 == string_view("abcabc").find_first_of(string_view("a")), "");
static_assert(1 == string_view("abcabc").find_first_of(string_view("b")), "");
static_assert(2 == string_view("abcabc").find_first_of(string_view("c")), "");
static_assert(1 == string_view("abcabc").find_first_of(string_view("bc")), "");
static_assert(1 == string_view("abcabc").find_first_of(string_view("cbd")), "");
static_assert(
string_view::npos == string_view("").find_first_of(string_view(""), 1),
"");
static_assert(
string_view::npos == string_view("").find_first_of(string_view("a"), 1),
"");
static_assert(
string_view::npos == string_view("").find_first_of(string_view("abc"), 100),
"");
static_assert(
string_view::npos == string_view("abc").find_first_of(string_view(""), 1),
"");
static_assert(
string_view::npos == string_view("abc").find_first_of(string_view("d"), 3),
"");
static_assert(
string_view::npos ==
string_view("abc").find_first_of(string_view("def"), 2),
"");
static_assert(
3 == string_view("abcabc").find_first_of(string_view("a"), 1),
"");
static_assert(
4 == string_view("abcabc").find_first_of(string_view("b"), 3),
"");
static_assert(
5 == string_view("abcabc").find_first_of(string_view("c"), 5),
"");
static_assert(
4 == string_view("abcabc").find_first_of(string_view("bc"), 3),
"");
static_assert(
4 == string_view("abcabc").find_first_of(string_view("cbd"), 4),
"");
} // namespace test_find_first_of_overload1
namespace test_find_first_of_overload2 {
static_assert(string_view::npos == string_view("").find_first_of('a'), "");
static_assert(0 == string_view("a").find_first_of('a'), "");
static_assert(0 == string_view("abc").find_first_of('a'), "");
static_assert(string_view::npos == string_view("a").find_first_of('a', 1), "");
static_assert(1 == string_view("abc").find_first_of('b'), "");
static_assert(1 == string_view("abc").find_first_of('b', 1), "");
static_assert(
string_view::npos == string_view("abc").find_first_of('b', 2),
"");
static_assert(2 == string_view("abc").find_first_of('c'), "");
static_assert(2 == string_view("abc").find_first_of('c', 1), "");
static_assert(2 == string_view("abc").find_first_of('c', 2), "");
static_assert(
string_view::npos == string_view("abc").find_first_of('c', 3),
"");
static_assert(
string_view::npos == string_view("abc").find_first_of('a', 100),
"");
static_assert(string_view::npos == string_view("abc").find_first_of('z'), "");
static_assert(0 == string_view("ababa").find_first_of('a'), "");
static_assert(0 == string_view("ababa").find_first_of('a', 0), "");
static_assert(2 == string_view("ababa").find_first_of('a', 1), "");
static_assert(2 == string_view("ababa").find_first_of('a', 2), "");
static_assert(4 == string_view("ababa").find_first_of('a', 3), "");
static_assert(4 == string_view("ababa").find_first_of('a', 4), "");
static_assert(
string_view::npos == string_view("ababa").find_first_of('a', 5),
"");
} // namespace test_find_first_of_overload2
namespace test_find_first_of_overload3 {
static_assert(
string_view::npos == string_view("").find_first_of("ab", 0, 0),
"");
static_assert(
string_view::npos == string_view("").find_first_of("abc", 0, 1),
"");
static_assert(
string_view::npos == string_view("").find_first_of("abcdef", 0, 3),
"");
static_assert(
string_view::npos == string_view("abc").find_first_of("abcdef", 0, 0),
"");
static_assert(
string_view::npos == string_view("abc").find_first_of("defa", 0, 1),
"");
static_assert(
string_view::npos == string_view("abc").find_first_of("defabc", 0, 3),
"");
static_assert(0 == string_view("abcabc").find_first_of("abc", 0, 1), "");
static_assert(1 == string_view("abcabc").find_first_of("bac", 0, 1), "");
static_assert(2 == string_view("abcabc").find_first_of("cab", 0, 1), "");
static_assert(1 == string_view("abcabc").find_first_of("bccda", 0, 2), "");
static_assert(1 == string_view("abcabc").find_first_of("cbdab", 0, 3), "");
static_assert(
string_view::npos == string_view("").find_first_of("ab", 1, 0),
"");
static_assert(
string_view::npos == string_view("").find_first_of("abc", 1, 1),
"");
static_assert(
string_view::npos == string_view("").find_first_of("abcdef", 100, 3),
"");
static_assert(
string_view::npos == string_view("abc").find_first_of("abcdef", 1, 0),
"");
static_assert(
string_view::npos == string_view("abc").find_first_of("defa", 3, 1),
"");
static_assert(
string_view::npos == string_view("abc").find_first_of("defabc", 2, 3),
"");
static_assert(3 == string_view("abcabc").find_first_of("abc", 1, 1), "");
static_assert(4 == string_view("abcabc").find_first_of("bac", 3, 1), "");
static_assert(5 == string_view("abcabc").find_first_of("cab", 5, 1), "");
static_assert(4 == string_view("abcabc").find_first_of("bccda", 3, 2), "");
static_assert(4 == string_view("abcabc").find_first_of("cbdab", 4, 3), "");
} // namespace test_find_first_of_overload3
namespace test_find_first_of_overload4 {
static_assert(string_view::npos == string_view("").find_first_of(""), "");
static_assert(string_view::npos == string_view("").find_first_of("a"), "");
static_assert(string_view::npos == string_view("").find_first_of("abc"), "");
static_assert(string_view::npos == string_view("abc").find_first_of(""), "");
static_assert(string_view::npos == string_view("abc").find_first_of("d"), "");
static_assert(string_view::npos == string_view("abc").find_first_of("def"), "");
static_assert(0 == string_view("abcabc").find_first_of("a"), "");
static_assert(1 == string_view("abcabc").find_first_of("b"), "");
static_assert(2 == string_view("abcabc").find_first_of("c"), "");
static_assert(1 == string_view("abcabc").find_first_of("bc"), "");
static_assert(1 == string_view("abcabc").find_first_of("cbd"), "");
static_assert(string_view::npos == string_view("").find_first_of("", 1), "");
static_assert(string_view::npos == string_view("").find_first_of("a", 1), "");
static_assert(
string_view::npos == string_view("").find_first_of("abc", 100),
"");
static_assert(string_view::npos == string_view("abc").find_first_of("", 1), "");
static_assert(
string_view::npos == string_view("abc").find_first_of("d", 3),
"");
static_assert(
string_view::npos == string_view("abc").find_first_of("def", 2),
"");
static_assert(3 == string_view("abcabc").find_first_of("a", 1), "");
static_assert(4 == string_view("abcabc").find_first_of("b", 3), "");
static_assert(5 == string_view("abcabc").find_first_of("c", 5), "");
static_assert(4 == string_view("abcabc").find_first_of("bc", 3), "");
static_assert(4 == string_view("abcabc").find_first_of("cbd", 4), "");
} // namespace test_find_first_of_overload4
namespace test_find_last_of_overload1 {
static_assert(
string_view::npos == string_view("").find_last_of(string_view("")),
"");
static_assert(
string_view::npos == string_view("").find_last_of(string_view("a")),
"");
static_assert(
string_view::npos == string_view("").find_last_of(string_view("abc")),
"");
static_assert(
string_view::npos == string_view("abc").find_last_of(string_view("")),
"");
static_assert(
string_view::npos == string_view("abc").find_last_of(string_view("d")),
"");
static_assert(
string_view::npos == string_view("abc").find_last_of(string_view("def")),
"");
static_assert(3 == string_view("abcabc").find_last_of(string_view("a")), "");
static_assert(4 == string_view("abcabc").find_last_of(string_view("b")), "");
static_assert(5 == string_view("abcabc").find_last_of(string_view("c")), "");
static_assert(5 == string_view("abcabc").find_last_of(string_view("bc")), "");
static_assert(5 == string_view("abcabc").find_last_of(string_view("cbd")), "");
static_assert(
string_view::npos == string_view("").find_last_of(string_view(""), 1),
"");
static_assert(
string_view::npos == string_view("").find_last_of(string_view("a"), 0),
"");
static_assert(
string_view::npos == string_view("").find_last_of(string_view("abc"), 100),
"");
static_assert(
string_view::npos == string_view("abc").find_last_of(string_view(""), 1),
"");
static_assert(
string_view::npos == string_view("abc").find_last_of(string_view("d"), 3),
"");
static_assert(
string_view::npos == string_view("abc").find_last_of(string_view("def"), 2),
"");
static_assert(0 == string_view("abcabc").find_last_of(string_view("a"), 2), "");
static_assert(1 == string_view("abcabc").find_last_of(string_view("b"), 3), "");
static_assert(2 == string_view("abcabc").find_last_of(string_view("c"), 2), "");
static_assert(
2 == string_view("abcabc").find_last_of(string_view("bc"), 3),
"");
static_assert(
2 == string_view("abcabc").find_last_of(string_view("cbd"), 2),
"");
} // namespace test_find_last_of_overload1
namespace test_find_last_of_overload2 {
static_assert(string_view::npos == string_view("").find_last_of('a'), "");
static_assert(0 == string_view("a").find_last_of('a'), "");
static_assert(0 == string_view("abc").find_last_of('a'), "");
static_assert(0 == string_view("a").find_last_of('a', 0), "");
static_assert(1 == string_view("abc").find_last_of('b'), "");
static_assert(string_view::npos == string_view("abc").find_last_of('b', 0), "");
static_assert(1 == string_view("abc").find_last_of('b', 1), "");
static_assert(2 == string_view("abc").find_last_of('c'), "");
static_assert(string_view::npos == string_view("abc").find_last_of('c', 0), "");
static_assert(string_view::npos == string_view("abc").find_last_of('c', 1), "");
static_assert(2 == string_view("abc").find_last_of('c', 2), "");
static_assert(2 == string_view("abc").find_last_of('c', 3), "");
static_assert(0 == string_view("abc").find_last_of('a', 100), "");
static_assert(string_view::npos == string_view("abc").find_last_of('z'), "");
static_assert(4 == string_view("ababa").find_last_of('a'), "");
static_assert(0 == string_view("ababa").find_last_of('a', 0), "");
static_assert(0 == string_view("ababa").find_last_of('a', 1), "");
static_assert(2 == string_view("ababa").find_last_of('a', 2), "");
static_assert(2 == string_view("ababa").find_last_of('a', 3), "");
static_assert(4 == string_view("ababa").find_last_of('a', 4), "");
static_assert(4 == string_view("ababa").find_last_of('a', 5), "");
} // namespace test_find_last_of_overload2
namespace test_find_last_of_overload3 {
static_assert(
string_view::npos ==
string_view("").find_last_of("ab", string_view::npos, 0),
"");
static_assert(
string_view::npos ==
string_view("").find_last_of("abc", string_view::npos, 1),
"");
static_assert(
string_view::npos ==
string_view("").find_last_of("abcdef", string_view::npos, 3),
"");
static_assert(
string_view::npos ==
string_view("abc").find_last_of("abcdef", string_view::npos, 0),
"");
static_assert(
string_view::npos ==
string_view("abc").find_last_of("defa", string_view::npos, 1),
"");
static_assert(
string_view::npos ==
string_view("abc").find_last_of("defcba", string_view::npos, 3),
"");
static_assert(
3 == string_view("abcabc").find_last_of("abc", string_view::npos, 1),
"");
static_assert(
4 == string_view("abcabc").find_last_of("bca", string_view::npos, 1),
"");
static_assert(
5 == string_view("abcabc").find_last_of("cab", string_view::npos, 1),
"");
static_assert(
5 == string_view("abcabc").find_last_of("bcab", string_view::npos, 2),
"");
static_assert(
5 == string_view("abcabc").find_last_of("cbdac", string_view::npos, 3),
"");
static_assert(
string_view::npos == string_view("").find_last_of("ab", 1, 0),
"");
static_assert(
string_view::npos == string_view("").find_last_of("abc", 0, 1),
"");
static_assert(
string_view::npos == string_view("").find_last_of("abcdef", 100, 3),
"");
static_assert(
string_view::npos == string_view("abc").find_last_of("abcdef", 1, 0),
"");
static_assert(
string_view::npos == string_view("abc").find_last_of("defa", 3, 1),
"");
static_assert(
string_view::npos == string_view("abc").find_last_of("defcba", 2, 3),
"");
static_assert(0 == string_view("abcabc").find_last_of("abc", 2, 1), "");
static_assert(1 == string_view("abcabc").find_last_of("bca", 3, 1), "");
static_assert(2 == string_view("abcabc").find_last_of("cab", 2, 1), "");
static_assert(2 == string_view("abcabc").find_last_of("bcab", 3, 2), "");
static_assert(2 == string_view("abcabc").find_last_of("cbdac", 2, 2), "");
} // namespace test_find_last_of_overload3
namespace test_find_last_of_overload4 {
static_assert(string_view::npos == string_view("").find_last_of(""), "");
static_assert(string_view::npos == string_view("").find_last_of("a"), "");
static_assert(string_view::npos == string_view("").find_last_of("abc"), "");
static_assert(string_view::npos == string_view("abc").find_last_of(""), "");
static_assert(string_view::npos == string_view("abc").find_last_of("d"), "");
static_assert(string_view::npos == string_view("abc").find_last_of("def"), "");
static_assert(3 == string_view("abcabc").find_last_of("a"), "");
static_assert(4 == string_view("abcabc").find_last_of("b"), "");
static_assert(5 == string_view("abcabc").find_last_of("c"), "");
static_assert(5 == string_view("abcabc").find_last_of("bc"), "");
static_assert(5 == string_view("abcabc").find_last_of("cbd"), "");
static_assert(string_view::npos == string_view("").find_last_of("", 1), "");
static_assert(string_view::npos == string_view("").find_last_of("a", 0), "");
static_assert(
string_view::npos == string_view("").find_last_of("abc", 100),
"");
static_assert(string_view::npos == string_view("abc").find_last_of("", 1), "");
static_assert(string_view::npos == string_view("abc").find_last_of("d", 3), "");
static_assert(
string_view::npos == string_view("abc").find_last_of("def", 2),
"");
static_assert(0 == string_view("abcabc").find_last_of("a", 2), "");
static_assert(1 == string_view("abcabc").find_last_of("b", 3), "");
static_assert(2 == string_view("abcabc").find_last_of("c", 2), "");
static_assert(2 == string_view("abcabc").find_last_of("bc", 3), "");
static_assert(2 == string_view("abcabc").find_last_of("cbd", 2), "");
} // namespace test_find_last_of_overload4
namespace test_find_first_not_of_overload1 {
static_assert(
string_view::npos == string_view("").find_first_not_of(string_view("")),
@ -840,6 +1313,139 @@ static_assert(4 == string_view("abcabc").find_first_not_of("abac", 3, 1), "");
static_assert(4 == string_view("abcabc").find_first_not_of("dadab", 4, 2), "");
} // namespace test_find_first_not_of_overload3
namespace test_find_first_not_of_overload4 {
static_assert(string_view::npos == string_view("").find_first_not_of(""), "");
static_assert(string_view::npos == string_view("").find_first_not_of("a"), "");
static_assert(
string_view::npos == string_view("").find_first_not_of("abc"),
"");
static_assert(
string_view::npos == string_view("abc").find_first_not_of("abc"),
"");
static_assert(
string_view::npos == string_view("abc").find_first_not_of("acdb"),
"");
static_assert(
string_view::npos == string_view("abc").find_first_not_of("defabc"),
"");
static_assert(0 == string_view("abcabc").find_first_not_of(""), "");
static_assert(0 == string_view("abcabc").find_first_not_of("bc"), "");
static_assert(1 == string_view("abcabc").find_first_not_of("ac"), "");
static_assert(2 == string_view("abcabc").find_first_not_of("ab"), "");
static_assert(1 == string_view("abcabc").find_first_not_of("a"), "");
static_assert(1 == string_view("abcabc").find_first_not_of("da"), "");
static_assert(
string_view::npos == string_view("").find_first_not_of("", 1),
"");
static_assert(
string_view::npos == string_view("").find_first_not_of("a", 1),
"");
static_assert(
string_view::npos == string_view("").find_first_not_of("abc", 100),
"");
static_assert(
string_view::npos == string_view("abc").find_first_not_of("abc", 1),
"");
static_assert(
string_view::npos == string_view("abc").find_first_not_of("acdb", 3),
"");
static_assert(
string_view::npos == string_view("abc").find_first_not_of("defabc", 2),
"");
static_assert(1 == string_view("abcabc").find_first_not_of("", 1), "");
static_assert(3 == string_view("abcabc").find_first_not_of("bc", 1), "");
static_assert(4 == string_view("abcabc").find_first_not_of("ac", 4), "");
static_assert(5 == string_view("abcabc").find_first_not_of("ab", 5), "");
static_assert(4 == string_view("abcabc").find_first_not_of("a", 3), "");
static_assert(4 == string_view("abcabc").find_first_not_of("da", 4), "");
} // namespace test_find_first_not_of_overload4
namespace test_find_last_not_of_overload1 {
static_assert(
string_view::npos == string_view("").find_last_not_of(string_view("")),
"");
static_assert(
string_view::npos == string_view("").find_last_not_of(string_view("a")),
"");
static_assert(
string_view::npos == string_view("").find_last_not_of(string_view("abc")),
"");
static_assert(
string_view::npos ==
string_view("abc").find_last_not_of(string_view("abc")),
"");
static_assert(
string_view::npos ==
string_view("abc").find_last_not_of(string_view("acdb")),
"");
static_assert(
string_view::npos ==
string_view("abc").find_last_not_of(string_view("defabc")),
"");
static_assert(5 == string_view("abcabc").find_last_not_of(string_view("")), "");
static_assert(
3 == string_view("abcabc").find_last_not_of(string_view("bc")),
"");
static_assert(
4 == string_view("abcabc").find_last_not_of(string_view("ac")),
"");
static_assert(
5 == string_view("abcabc").find_last_not_of(string_view("ab")),
"");
static_assert(
4 == string_view("abcabc").find_last_not_of(string_view("c")),
"");
static_assert(
4 == string_view("abcabc").find_last_not_of(string_view("ca")),
"");
static_assert(
string_view::npos == string_view("").find_last_not_of(string_view(""), 1),
"");
static_assert(
string_view::npos == string_view("").find_last_not_of(string_view("a"), 0),
"");
static_assert(
string_view::npos ==
string_view("").find_last_not_of(string_view("abc"), 100),
"");
static_assert(
string_view::npos ==
string_view("abc").find_last_not_of(string_view("abc"), 1),
"");
static_assert(
string_view::npos ==
string_view("abc").find_last_not_of(string_view("acdb"), 3),
"");
static_assert(
string_view::npos ==
string_view("abc").find_last_not_of(string_view("defabc"), 2),
"");
static_assert(
4 == string_view("abcabc").find_last_not_of(string_view(""), 4),
"");
static_assert(
0 == string_view("abcabc").find_last_not_of(string_view("bc"), 2),
"");
static_assert(
1 == string_view("abcabc").find_last_not_of(string_view("ac"), 2),
"");
static_assert(
2 == string_view("abcabc").find_last_not_of(string_view("ab"), 2),
"");
static_assert(
4 == string_view("abcabc").find_last_not_of(string_view("c"), 4),
"");
static_assert(
1 == string_view("abcabc").find_last_not_of(string_view("ca"), 2),
"");
} // namespace test_find_last_not_of_overload1
namespace test_find_last_not_of_overload2 {
static_assert(string_view::npos == string_view("").find_last_not_of('a'), "");
static_assert(string_view::npos == string_view("a").find_last_not_of('a'), "");
@ -941,6 +1547,52 @@ static_assert(4 == string_view("abcabc").find_last_not_of("caba", 4, 1), "");
static_assert(1 == string_view("abcabc").find_last_not_of("cacab", 2, 2), "");
} // namespace test_find_last_not_of_overload3
namespace test_find_last_not_of_overload4 {
static_assert(string_view::npos == string_view("").find_last_not_of(""), "");
static_assert(string_view::npos == string_view("").find_last_not_of("a"), "");
static_assert(string_view::npos == string_view("").find_last_not_of("abc"), "");
static_assert(
string_view::npos == string_view("abc").find_last_not_of("abc"),
"");
static_assert(
string_view::npos == string_view("abc").find_last_not_of("acdb"),
"");
static_assert(
string_view::npos == string_view("abc").find_last_not_of("defabc"),
"");
static_assert(5 == string_view("abcabc").find_last_not_of(""), "");
static_assert(3 == string_view("abcabc").find_last_not_of("bc"), "");
static_assert(4 == string_view("abcabc").find_last_not_of("ac"), "");
static_assert(5 == string_view("abcabc").find_last_not_of("ab"), "");
static_assert(4 == string_view("abcabc").find_last_not_of("c"), "");
static_assert(4 == string_view("abcabc").find_last_not_of("ca"), "");
static_assert(string_view::npos == string_view("").find_last_not_of("", 1), "");
static_assert(
string_view::npos == string_view("").find_last_not_of("a", 0),
"");
static_assert(
string_view::npos == string_view("").find_last_not_of("abc", 100),
"");
static_assert(
string_view::npos == string_view("abc").find_last_not_of("abc", 1),
"");
static_assert(
string_view::npos == string_view("abc").find_last_not_of("acdb", 3),
"");
static_assert(
string_view::npos == string_view("abc").find_last_not_of("defabc", 2),
"");
static_assert(4 == string_view("abcabc").find_last_not_of("", 4), "");
static_assert(0 == string_view("abcabc").find_last_not_of("bc", 2), "");
static_assert(1 == string_view("abcabc").find_last_not_of("ac", 2), "");
static_assert(2 == string_view("abcabc").find_last_not_of("ab", 2), "");
static_assert(4 == string_view("abcabc").find_last_not_of("c", 4), "");
static_assert(1 == string_view("abcabc").find_last_not_of("ca", 2), "");
} // namespace test_find_last_not_of_overload4
namespace test_output_operator {
void testOutputIterator(const std::string& str) {
std::ostringstream stream;

View File

@ -87,10 +87,10 @@ namespace detail {
#error "You're running a too old version of Clang. We need Clang 4 or later."
#endif
inline constexpr string_view_ext extract(
string_view_ext prefix,
string_view_ext suffix,
string_view_ext str) {
inline constexpr string_view extract(
string_view prefix,
string_view suffix,
string_view str) {
#if !defined(__CUDA_ARCH__) // CUDA doesn't like std::logic_error in device code
return (!str.starts_with(prefix) || !str.ends_with(suffix))
? (throw std::logic_error("Invalid pattern"), string_view())
@ -101,8 +101,7 @@ inline constexpr string_view_ext extract(
}
template <typename T>
inline C10_TYPENAME_CONSTEXPR c10::string_view_ext
fully_qualified_type_name_impl() {
inline C10_TYPENAME_CONSTEXPR c10::string_view fully_qualified_type_name_impl() {
#if defined(_MSC_VER) && !defined(__clang__)
#if defined(__NVCC__)
return extract(
@ -117,17 +116,17 @@ fully_qualified_type_name_impl() {
#endif
#elif defined(__clang__)
return extract(
"c10::string_view_ext c10::util::detail::fully_qualified_type_name_impl() [T = ",
"c10::string_view c10::util::detail::fully_qualified_type_name_impl() [T = ",
"]",
__PRETTY_FUNCTION__);
#elif defined(__GNUC__)
return extract(
#if C10_TYPENAME_SUPPORTS_CONSTEXPR
"constexpr c10::string_view_ext c10::util::detail::fully_qualified_type_name_impl() [with T = ",
"constexpr c10::string_view c10::util::detail::fully_qualified_type_name_impl() [with T = ",
#else
"c10::string_view_ext c10::util::detail::fully_qualified_type_name_impl() [with T = ",
"c10::string_view c10::util::detail::fully_qualified_type_name_impl() [with T = ",
#endif
"; c10::string_view_ext = c10::basic_string_view<char>]",
"; c10::string_view = c10::basic_string_view<char>]",
__PRETTY_FUNCTION__);
#endif
}
@ -182,14 +181,14 @@ inline constexpr type_index get_type_index<std::string>() {
#endif
template <typename T>
inline C10_TYPENAME_CONSTEXPR string_view_ext
inline C10_TYPENAME_CONSTEXPR string_view
get_fully_qualified_type_name() noexcept {
#if C10_TYPENAME_SUPPORTS_CONSTEXPR
constexpr
#else
static
#endif
auto name = detail::fully_qualified_type_name_impl<T>();
string_view name = detail::fully_qualified_type_name_impl<T>();
return name;
}
} // namespace c10::util

View File

@ -135,8 +135,7 @@ constexpr void swap(
basic_string_view<CharT>& rhs) noexcept {
lhs.swap(rhs);
}
using std::string_view;
using string_view_ext = basic_string_view<char>;
using string_view = basic_string_view<char>;
} // namespace c10

View File

@ -283,7 +283,7 @@ size_t getPadding(
bool PyTorchStreamReader::hasRecord(const std::string& name) {
std::lock_guard<std::mutex> guard(reader_lock_);
if ((!load_debug_symbol_) && c10::string_view_ext(name).ends_with(kDebugPklSuffix)) {
if ((!load_debug_symbol_) && c10::string_view(name).ends_with(kDebugPklSuffix)) {
return false;
}
std::string ss = archive_name_plus_slash_ + name;
@ -320,7 +320,7 @@ std::vector<std::string> PyTorchStreamReader::getAllRecords() {
buf);
}
if ((load_debug_symbol_) ||
(!c10::string_view_ext(buf + archive_name_plus_slash_.size()).ends_with(kDebugPklSuffix))) {
(!c10::string_view(buf + archive_name_plus_slash_.size()).ends_with(kDebugPklSuffix))) {
// NOLINTNEXTLINE(modernize-use-emplace)
out.push_back(buf + archive_name_plus_slash_.size());
}
@ -343,7 +343,7 @@ size_t PyTorchStreamReader::getRecordID(const std::string& name) {
// return dataptr, size
std::tuple<at::DataPtr, size_t> PyTorchStreamReader::getRecord(const std::string& name) {
std::lock_guard<std::mutex> guard(reader_lock_);
if ((!load_debug_symbol_) && c10::string_view_ext(name).ends_with(kDebugPklSuffix)) {
if ((!load_debug_symbol_) && c10::string_view(name).ends_with(kDebugPklSuffix)) {
at::DataPtr retval;
return std::make_tuple(std::move(retval), 0);
}
@ -424,7 +424,7 @@ PyTorchStreamReader::getRecord(const std::string& name,
return getRecord(name);
}
if ((!load_debug_symbol_) && c10::string_view_ext(name).ends_with(kDebugPklSuffix)) {
if ((!load_debug_symbol_) && c10::string_view(name).ends_with(kDebugPklSuffix)) {
at::DataPtr retval;
return std::make_tuple(std::move(retval), 0);
}
@ -448,7 +448,7 @@ PyTorchStreamReader::getRecord(const std::string& name,
size_t
PyTorchStreamReader::getRecord(const std::string& name, void* dst, size_t n) {
std::lock_guard<std::mutex> guard(reader_lock_);
if ((!load_debug_symbol_) && c10::string_view_ext(name).ends_with(kDebugPklSuffix)) {
if ((!load_debug_symbol_) && c10::string_view(name).ends_with(kDebugPklSuffix)) {
return 0;
}
size_t key = getRecordID(name);
@ -477,7 +477,7 @@ PyTorchStreamReader::getRecord(const std::string& name, void* dst, size_t n,
return getRecord(name, dst, n);
}
if ((!load_debug_symbol_) && c10::string_view_ext(name).ends_with(kDebugPklSuffix)) {
if ((!load_debug_symbol_) && c10::string_view(name).ends_with(kDebugPklSuffix)) {
return 0;
}
size_t key = getRecordID(name);
@ -508,7 +508,7 @@ size_t PyTorchStreamReader::getRecord(
void* buf,
const std::function<void(void*, const void*, size_t)>& memcpy_func) {
std::lock_guard<std::mutex> guard(reader_lock_);
if ((!load_debug_symbol_) && c10::string_view_ext(name).ends_with(kDebugPklSuffix)) {
if ((!load_debug_symbol_) && c10::string_view(name).ends_with(kDebugPklSuffix)) {
return 0;
}
if (chunk_size <= 0) {

View File

@ -118,7 +118,7 @@ MobileDebugTable::MobileDebugTable(
const std::vector<std::string>& record_names = reader->getAllRecords();
const c10::string_view suffix(".debug_pkl");
for (const auto& record_name : record_names) {
if (c10::string_view_ext(record_name).ends_with(suffix)) {
if (c10::string_view(record_name).ends_with(suffix)) {
auto [debug_data, debug_size] = reader->getRecord(record_name);
auto ivalueTuple = jit::unpickle(
reinterpret_cast<const char*>(debug_data.get()),

View File

@ -189,7 +189,7 @@ TypePtr resolveType(
const std::string& type_string,
std::shared_ptr<CompilationUnit> cu) {
TypePtr type;
c10::string_view_ext type_str(type_string);
c10::string_view type_str(type_string);
if (type_str.starts_with(kCustomClassPrefix)) {
type = getCustomClass(type_string);
TORCH_CHECK(
@ -606,7 +606,7 @@ ClassTypePtr FlatbufferLoader::getOrCreateClassTypeForObject(
const mobile::serialization::ObjectType* obj_type =
module_->object_types()->Get(object->type_index());
if (cls == nullptr) {
c10::string_view_ext qn_str(
c10::string_view qn_str(
obj_type->type_name()->c_str(), obj_type->type_name()->size());
if (qn_str.starts_with(kTorchPrefix) || qn_str.starts_with(kJitPrefix)) {
c10::QualifiedName qn(obj_type->type_name()->str());

View File

@ -152,6 +152,10 @@ static inline hash_t Hash(const std::string& value) {
return DataHash(value.data(), value.size());
}
static inline hash_t Hash(const c10::string_view& value) {
return DataHash(value.data(), value.size());
}
static inline hash_t Hash(const std::string_view& value) {
return DataHash(value.data(), value.size());
}