Export of internal Abseil changes.
-- cae9f0c87632d690ec3f471e181be247fe4fb025 by Abseil Team <absl-team@google.com>: Run IWYU on some headers. PiperOrigin-RevId: 248749194 -- f57dcac97cacbe31769a8646020a99b6686987dc by Samuel Benzaquen <sbenza@google.com>: Accept vector<bool>::reference in StrFormat and friends. The proxy types might overload `operator&`. Use std::addressof instead. PiperOrigin-RevId: 248619661 GitOrigin-RevId: cae9f0c87632d690ec3f471e181be247fe4fb025 Change-Id: Iacf5d46a59d1d5f1fa1fd4a1e0d0de8c6cbedb3e
This commit is contained in:
parent
daf381e853
commit
8a394b19c1
7 changed files with 19 additions and 1 deletions
|
@ -29,6 +29,7 @@
|
|||
#include <atomic>
|
||||
#include <cstdint>
|
||||
#include <type_traits>
|
||||
#include <utility>
|
||||
|
||||
#include "absl/base/internal/invoke.h"
|
||||
#include "absl/base/internal/low_level_scheduling.h"
|
||||
|
@ -36,6 +37,7 @@
|
|||
#include "absl/base/internal/scheduling_mode.h"
|
||||
#include "absl/base/internal/spinlock_wait.h"
|
||||
#include "absl/base/macros.h"
|
||||
#include "absl/base/optimization.h"
|
||||
#include "absl/base/port.h"
|
||||
|
||||
namespace absl {
|
||||
|
|
|
@ -27,6 +27,7 @@
|
|||
#include <cstring>
|
||||
#include <memory>
|
||||
#include <type_traits>
|
||||
#include <utility>
|
||||
|
||||
#include "absl/base/internal/identity.h"
|
||||
#include "absl/base/macros.h"
|
||||
|
|
|
@ -25,6 +25,7 @@
|
|||
// IWYU pragma: private, include "base/low_level_alloc.h"
|
||||
|
||||
#include <sys/types.h>
|
||||
|
||||
#include <cstdint>
|
||||
|
||||
#include "absl/base/attributes.h"
|
||||
|
|
|
@ -32,6 +32,7 @@
|
|||
|
||||
#include <stdint.h>
|
||||
#include <sys/types.h>
|
||||
|
||||
#include <atomic>
|
||||
|
||||
#include "absl/base/attributes.h"
|
||||
|
|
|
@ -31,6 +31,7 @@
|
|||
#include <cassert>
|
||||
#include <cstddef>
|
||||
|
||||
#include "absl/base/optimization.h"
|
||||
#include "absl/base/port.h"
|
||||
|
||||
// ABSL_ARRAYSIZE()
|
||||
|
|
|
@ -7,6 +7,7 @@
|
|||
#include <cstdio>
|
||||
#include <iomanip>
|
||||
#include <limits>
|
||||
#include <memory>
|
||||
#include <sstream>
|
||||
#include <string>
|
||||
#include <type_traits>
|
||||
|
@ -292,7 +293,7 @@ class FormatArgImpl {
|
|||
struct Manager<T, ByPointer> {
|
||||
static Data SetValue(const T& value) {
|
||||
Data data;
|
||||
data.ptr = &value;
|
||||
data.ptr = std::addressof(value);
|
||||
return data;
|
||||
}
|
||||
|
||||
|
|
|
@ -367,6 +367,17 @@ typedef ::testing::Types<
|
|||
INSTANTIATE_TYPED_TEST_CASE_P(TypedFormatConvertTestWithAllIntTypes,
|
||||
TypedFormatConvertTest, AllIntTypes);
|
||||
|
||||
TEST_F(FormatConvertTest, VectorBool) {
|
||||
// Make sure vector<bool>'s values behave as bools.
|
||||
std::vector<bool> v = {true, false};
|
||||
const std::vector<bool> cv = {true, false};
|
||||
EXPECT_EQ("1,0,1,0",
|
||||
FormatPack(UntypedFormatSpecImpl("%d,%d,%d,%d"),
|
||||
absl::Span<const FormatArgImpl>(
|
||||
{FormatArgImpl(v[0]), FormatArgImpl(v[1]),
|
||||
FormatArgImpl(cv[0]), FormatArgImpl(cv[1])})));
|
||||
}
|
||||
|
||||
TEST_F(FormatConvertTest, Uint128) {
|
||||
absl::uint128 v = static_cast<absl::uint128>(0x1234567890abcdef) * 1979;
|
||||
absl::uint128 max = absl::Uint128Max();
|
||||
|
|
Loading…
Reference in a new issue