StringPiece substr(size_t pos, size_t n = npos) const;
// Return a string that contains the copy of the referenced data.
+ // DEPRECATED: use std::string(sv) instead.
std::string ToString() const { return std::string(data_, size_); }
// Three-way comparison. Returns value:
// > 0 iff "*this" > "b"
int compare(StringPiece b) const;
+ // Converts to `std::basic_string`.
+ template <typename A>
+ explicit operator std::basic_string<char, std::char_traits<char>, A>() const {
+ if (!data()) return {};
+ return std::basic_string<char, std::char_traits<char>, A>(data(), size());
+ }
+
private:
const char* data_;
size_t size_;
}
}
+TEST(StringPiece, ConversionToString) {
+ EXPECT_EQ("", std::string(StringPiece("")));
+ EXPECT_EQ("foo", std::string(StringPiece("foo")));
+}
+
} // namespace tensorflow