From 9850abf25d8efcdc1ff752f1eeef13b640c4ead4 Mon Sep 17 00:00:00 2001 From: Abseil Team Date: Wed, 8 Nov 2017 09:43:13 -0800 Subject: Changes imported from Abseil "staging" branch: - 55a89fda61ddf8aa76d0a3b6bc44bf6b5b6eadfc Internal cleanup by Abseil Team - b7646f979ee40c5716833692f2eb24b8058cf4c8 Internal cleanup by Gennadiy Rozental - 12a4051b0ea91c6a6211f738fa24e1bc7064c09a Merging changes from https://github.com/abseil/abseil-cpp... by Daniel Katz - 2e259588d62118a70837a3d8408cb6c763f48420 Replace EXPECT_TRUE(StrContains(...)) with an assert exam... by Abseil Team - 8f7d251b3486f2b03dc712ad0822b9dc87a7964b Make Uint128(High|Low)64 constexpr. by Alex Strelnikov - 955fd38a23896e003105defc0ef221a2c10d392e Internal change by Jon Cohen GitOrigin-RevId: 55a89fda61ddf8aa76d0a3b6bc44bf6b5b6eadfc Change-Id: Ia062fe8a0559aa3ace3736d2a53f6da13af40b2c --- absl/numeric/int128.h | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) (limited to 'absl/numeric/int128.h') diff --git a/absl/numeric/int128.h b/absl/numeric/int128.h index a2ca29a..8eca1e9 100644 --- a/absl/numeric/int128.h +++ b/absl/numeric/int128.h @@ -159,12 +159,12 @@ class alignas(16) uint128 { // Uint128Low64() // // Returns the lower 64-bit value of a `uint128` value. - friend uint64_t Uint128Low64(const uint128& v); + friend constexpr uint64_t Uint128Low64(const uint128& v); // Uint128High64() // // Returns the higher 64-bit value of a `uint128` value. - friend uint64_t Uint128High64(const uint128& v); + friend constexpr uint64_t Uint128High64(const uint128& v); // MakeUInt128() // @@ -202,10 +202,6 @@ extern std::ostream& operator<<(std::ostream& o, const uint128& b); // TODO(strel) add operator>>(std::istream&, uint128&) -// Methods to access low and high pieces of 128-bit value. -uint64_t Uint128Low64(const uint128& v); -uint64_t Uint128High64(const uint128& v); - // TODO(absl-team): Implement signed 128-bit type // -------------------------------------------------------------------------- @@ -283,9 +279,9 @@ inline uint128 operator%(const uint128& lhs, const uint128& rhs) { return uint128(lhs) %= rhs; } -inline uint64_t Uint128Low64(const uint128& v) { return v.lo_; } +constexpr uint64_t Uint128Low64(const uint128& v) { return v.lo_; } -inline uint64_t Uint128High64(const uint128& v) { return v.hi_; } +constexpr uint64_t Uint128High64(const uint128& v) { return v.hi_; } // Constructors from integer types. -- cgit v1.2.3