diff --git a/src/google/protobuf/stubs/stringpiece.h b/src/google/protobuf/stubs/stringpiece.h index e6f5c714eaf..c63e25b2549 100644 --- a/src/google/protobuf/stubs/stringpiece.h +++ b/src/google/protobuf/stubs/stringpiece.h @@ -148,6 +148,10 @@ #include #include +#if defined(__cpp_lib_string_view) +#include +#endif + #include #include @@ -215,6 +219,14 @@ class PROTOBUF_EXPORT StringPiece { length_ = CheckSize(str.size()); } +#if defined(__cpp_lib_string_view) + StringPiece( // NOLINT(runtime/explicit) + std::string_view str) + : ptr_(str.data()), length_(0) { + length_ = CheckSize(str.size()); + } +#endif + StringPiece(const char* offset, size_type len) : ptr_(offset), length_(CheckSize(len)) {}