Export of internal Abseil changes
-- 9beb68204986a015c9cb065b9fae4f9a8879a788 by Abseil Team <absl-team@google.com>: Move Base64EscapeInternal and CalculateBase64EscapedLenInternal to an internal header. PiperOrigin-RevId: 288917378 -- 90acfbe03b3f9f6de3ffa49c39343dfaa2c5d38c by Greg Falcon <gfalcon@google.com>: Update macos CI script to support the ALTERNATE_OPTIONS environment variable. PiperOrigin-RevId: 288913564 -- f1572e870678cdcda6b48cb39780d1ad984e4c1b by Derek Mauro <dmauro@google.com>: Makes absl::NullSafeStringView constexpr Fixes https://github.com/abseil/abseil-cpp/issues/583 PiperOrigin-RevId: 288906940 -- d28a8471e32c10caa64bfffe6d6d4d0a8d144013 by Abseil Team <absl-team@google.com>: absl::GetFlag is lock free for small trivially copyable types. PiperOrigin-RevId: 288768172 -- 2643b8ed1a1dc836b38ab9e46538a1af129ffd67 by Gennadiy Rozental <rogeeff@google.com>: Eliminate call to callback from flag initialization. We do not need to have this invocation inside FlagImpl::Init since SetCallback performs invocation anyways. Calling InitCallback from inside of Init complicates separation of value initialization from data guard initialization, which is about to happen. PiperOrigin-RevId: 288732526 -- 22caa880b7a4cb6da34e16a2e064a473c99e880b by Abseil Team <absl-team@google.com>: Fix the documentation on how to create a null string_view. PiperOrigin-RevId: 288727968 -- 10727c5cadc561837141176f4c9b9717cec9233a by Greg Falcon <gfalcon@google.com>: Change CI scripts for gcc to use the ALTERNATE_OPTIONS file as well. PiperOrigin-RevId: 288718855 -- 5d1e2dd6c7fb12af8aa4337a0f61872f5f0c5992 by Greg Falcon <gfalcon@google.com>: Add an option for using inline namespaces in Abseil. PiperOrigin-RevId: 288614491 GitOrigin-RevId: 9beb68204986a015c9cb065b9fae4f9a8879a788 Change-Id: If9acd46301e3df8cb231b4c16f7ed651bf4fb3c3
This commit is contained in:
parent
63ee2f8877
commit
b3aaac8a37
19 changed files with 527 additions and 255 deletions
|
|
@ -931,6 +931,31 @@ TEST(StringViewTest, NullSafeStringView) {
|
|||
}
|
||||
}
|
||||
|
||||
TEST(StringViewTest, ConstexprNullSafeStringView) {
|
||||
{
|
||||
constexpr absl::string_view s = absl::NullSafeStringView(nullptr);
|
||||
EXPECT_EQ(nullptr, s.data());
|
||||
EXPECT_EQ(0, s.size());
|
||||
EXPECT_EQ(absl::string_view(), s);
|
||||
}
|
||||
#if !defined(_MSC_VER) || _MSC_VER >= 1910
|
||||
// MSVC 2017+ is required for good constexpr string_view support.
|
||||
// See the implementation of `absl::string_view::StrlenInternal()`.
|
||||
{
|
||||
static constexpr char kHi[] = "hi";
|
||||
absl::string_view s = absl::NullSafeStringView(kHi);
|
||||
EXPECT_EQ(kHi, s.data());
|
||||
EXPECT_EQ(strlen(kHi), s.size());
|
||||
EXPECT_EQ(absl::string_view("hi"), s);
|
||||
}
|
||||
{
|
||||
constexpr absl::string_view s = absl::NullSafeStringView("hello");
|
||||
EXPECT_EQ(s.size(), 5);
|
||||
EXPECT_EQ("hello", s);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
TEST(StringViewTest, ConstexprCompiles) {
|
||||
constexpr absl::string_view sp;
|
||||
#ifdef ABSL_HAVE_STRING_VIEW_FROM_NULLPTR
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue