Export of internal Abseil changes
-- 167cd2647144583746311129b0cc98a89a9897e1 by Andy Soffer <asoffer@google.com>: Internal Changes PiperOrigin-RevId: 268000987 -- ab44fea7dfdaf763c69609a08ddfac22480ce520 by Derek Mauro <dmauro@google.com>: Fix flags Cmake tests on Windows PiperOrigin-RevId: 267859442 -- d7ec9f7611370b01bc9a5aed7e18460df2a15429 by Abseil Team <absl-team@google.com>: Fix undefined behavior in symbolize_elf.inc PiperOrigin-RevId: 267684904 -- e7c5f8e472a91ed99bdf4876942f2bda5751aa6c by Abseil Team <absl-team@google.com>: Turn off ABSL_HAS_ALARM on Fuchsia. PiperOrigin-RevId: 267666090 -- b7d25d5c71a49e697a8bf6440ed30f2e3f036420 by Chris Kennelly <ckennelly@google.com>: Mark once initialization function as no inline. We expect this code to run infrequently. PiperOrigin-RevId: 267649713 -- dc2a5e5f1e39a03fff837d34a319033fde55d9ba by Derek Mauro <dmauro@google.com>: Fix the MSVC CMake random build PiperOrigin-RevId: 267624074 -- ba2751b67fa17d1b6c53e5ba79f81a5371e4a03a by Abseil Team <absl-team@google.com>: Move "internal/flag.*" files to the "internal" build target. PiperOrigin-RevId: 267588996 -- 05b985a33eec4f8acff1809ad9218a1e22220f34 by Abseil Team <absl-team@google.com>: Move "internal/flag.*" files to the "internal" build target. PiperOrigin-RevId: 267580412 GitOrigin-RevId: 167cd2647144583746311129b0cc98a89a9897e1 Change-Id: Ibd334f46a5671c7c1d3fcf5354029e2fbb7ba91f
This commit is contained in:
parent
325fd7b042
commit
97c1664b4b
14 changed files with 154 additions and 62 deletions
|
|
@ -39,22 +39,20 @@ NumType UniformImpl(TagType tag,
|
|||
"absl::Uniform<T>() must use an integer or real parameter type.");
|
||||
|
||||
using distribution_t =
|
||||
typename std::conditional<std::is_integral<NumType>::value,
|
||||
absl::uniform_int_distribution<NumType>,
|
||||
absl::uniform_real_distribution<NumType>>::type;
|
||||
UniformDistributionWrapper<absl::decay_t<TagType>, NumType>;
|
||||
using format_t = random_internal::DistributionFormatTraits<distribution_t>;
|
||||
auto a = uniform_lower_bound(tag, lo, hi);
|
||||
auto b = uniform_upper_bound(tag, lo, hi);
|
||||
|
||||
auto a = random_internal::uniform_lower_bound<NumType>(tag, lo, hi);
|
||||
auto b = random_internal::uniform_upper_bound<NumType>(tag, lo, hi);
|
||||
// TODO(lar): it doesn't make a lot of sense to ask for a random number in an
|
||||
// empty range. Right now we just return a boundary--even though that
|
||||
// boundary is not an acceptable value! Is there something better we can do
|
||||
// here?
|
||||
if (a > b) return a;
|
||||
|
||||
using gen_t = absl::decay_t<URBG>;
|
||||
if (a > b) return a;
|
||||
return DistributionCaller<gen_t>::template Call<distribution_t, format_t>(
|
||||
&urbg, a, b);
|
||||
&urbg, tag, lo, hi);
|
||||
}
|
||||
|
||||
// In the absence of an explicitly provided return-type, the template
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue