mirror of
https://github.com/zebrajr/pytorch.git
synced 2026-01-15 12:15:51 +00:00
Enable c10::sv and std::sv constexpr conversions (#139239)
As a small step towards moving c10::sv to std::sv and this tiny change shouldn't break META builds. Pull Request resolved: https://github.com/pytorch/pytorch/pull/139239 Approved by: https://github.com/malfet
This commit is contained in:
@@ -80,6 +80,20 @@ TEST(StringViewTest, testStringConstructor) {
|
||||
}
|
||||
} // namespace test_string_constructor
|
||||
|
||||
namespace test_std_string_view_constructor {
|
||||
void test_std_string_view_conversion_is_implicit(c10::string_view a) {}
|
||||
TEST(StringViewTest, testStringViewConstructor) {
|
||||
std::string_view empty;
|
||||
EXPECT_EQ(0, c10::string_view(empty).size());
|
||||
std::string_view hello_std_sv = "hello";
|
||||
c10::string_view hello_sv = hello_std_sv;
|
||||
EXPECT_EQ(5, hello_sv.size());
|
||||
EXPECT_TRUE(string_equal("hello", hello_sv.data(), hello_sv.size()));
|
||||
|
||||
test_std_string_view_conversion_is_implicit(hello_std_sv);
|
||||
}
|
||||
} // namespace test_std_string_view_constructor
|
||||
|
||||
namespace test_conversion_to_string {
|
||||
TEST(StringViewTest, testConversionToString) {
|
||||
string_view empty;
|
||||
@@ -91,6 +105,17 @@ TEST(StringViewTest, testConversionToString) {
|
||||
}
|
||||
} // namespace test_conversion_to_string
|
||||
|
||||
namespace test_conversion_to_std_string_view {
|
||||
TEST(StringViewTest, testConversionToString) {
|
||||
c10::string_view empty;
|
||||
EXPECT_EQ(0, std::string_view(empty).size());
|
||||
c10::string_view hello_sv = "hello";
|
||||
std::string_view hello_str(hello_sv);
|
||||
EXPECT_EQ(5, hello_str.size());
|
||||
EXPECT_EQ(std::string_view("hello"), hello_str);
|
||||
}
|
||||
} // namespace test_conversion_to_std_string_view
|
||||
|
||||
namespace test_copy_constructor {
|
||||
constexpr string_view hello = "hello";
|
||||
constexpr string_view copy = hello;
|
||||
|
||||
@@ -54,6 +54,10 @@ class basic_string_view final {
|
||||
/* implicit */ basic_string_view(const ::std::basic_string<CharT>& str)
|
||||
: basic_string_view(str.data(), str.size()) {}
|
||||
|
||||
/* implicit */ constexpr basic_string_view(
|
||||
const ::std::basic_string_view<CharT>& str)
|
||||
: basic_string_view(str.data(), str.size()) {}
|
||||
|
||||
constexpr basic_string_view(const basic_string_view&) noexcept = default;
|
||||
|
||||
constexpr basic_string_view& operator=(
|
||||
@@ -63,6 +67,10 @@ class basic_string_view final {
|
||||
return *this;
|
||||
}
|
||||
|
||||
constexpr operator ::std::basic_string_view<CharT>() const {
|
||||
return ::std::basic_string_view<CharT>(data(), size());
|
||||
}
|
||||
|
||||
explicit operator ::std::basic_string<CharT>() const {
|
||||
return ::std::basic_string<CharT>(data(), size());
|
||||
}
|
||||
@@ -588,7 +596,6 @@ constexpr inline void swap(
|
||||
basic_string_view<CharT>& rhs) noexcept {
|
||||
lhs.swap(rhs);
|
||||
}
|
||||
|
||||
using string_view = basic_string_view<char>;
|
||||
|
||||
} // namespace c10
|
||||
|
||||
Reference in New Issue
Block a user