diff options
author | Derek Mauro <dmauro@google.com> | 2023-03-20 12:18:53 -0700 |
---|---|---|
committer | Copybara-Service <copybara-worker@google.com> | 2023-03-20 12:19:48 -0700 |
commit | e5067964adcb792b7c9dbddbdcfe4d9b94079597 (patch) | |
tree | cdd231fd259cef020bbb8f559b8086e6a570f63e /absl/random | |
parent | f959f6ba970d9b2fef4fd2eb084668651dacf961 (diff) |
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
Diffstat (limited to 'absl/random')
-rw-r--r-- | absl/random/internal/fast_uniform_bits.h | 7 |
1 files changed, 4 insertions, 3 deletions
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 <typename URBG> constexpr size_t NumBits() { - return RangeSize<URBG>() == 0 - ? std::numeric_limits<typename URBG::result_type>::digits - : IntegerLog2(RangeSize<URBG>()); + return static_cast<size_t>( + RangeSize<URBG>() == 0 + ? std::numeric_limits<typename URBG::result_type>::digits + : IntegerLog2(RangeSize<URBG>())); } // Given a shift value `n`, constructs a mask with exactly the low `n` bits set. |