From e5067964adcb792b7c9dbddbdcfe4d9b94079597 Mon Sep 17 00:00:00 2001 From: Derek Mauro Date: Mon, 20 Mar 2023 12:18:53 -0700 Subject: Fix an implicit truncation warning under MSVC 32-bit Since the return value of `NumBits()` will always fit into `size_t`, use an explicit cast to silence the implicit conversion warning. Fixes #1384 PiperOrigin-RevId: 518041598 Change-Id: If2f2456db4b27b78e9ea9e026dce610953bd5bfb --- absl/random/internal/fast_uniform_bits.h | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'absl/random') diff --git a/absl/random/internal/fast_uniform_bits.h b/absl/random/internal/fast_uniform_bits.h index 8d8ed045..83ee5c0f 100644 --- a/absl/random/internal/fast_uniform_bits.h +++ b/absl/random/internal/fast_uniform_bits.h @@ -57,9 +57,10 @@ constexpr UIntType IntegerLog2(UIntType n) { // `PowerOfTwoVariate(urbg)`. template constexpr size_t NumBits() { - return RangeSize() == 0 - ? std::numeric_limits::digits - : IntegerLog2(RangeSize()); + return static_cast( + RangeSize() == 0 + ? std::numeric_limits::digits + : IntegerLog2(RangeSize())); } // Given a shift value `n`, constructs a mask with exactly the low `n` bits set. -- cgit v1.2.3