From 2946455cd16d2205caa270924b844ad47c78d1ff Mon Sep 17 00:00:00 2001 From: Jesse Williamson Date: Tue, 3 Sep 2019 18:25:36 -0700 Subject: [PATCH] common: random: added a deduction guide to make using the function object interface a bit nicer to use. Signed-off-by: Jesse Williamson --- src/include/random.h | 7 +++++-- src/test/common/test_random.cc | 11 +++++++++++ 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/src/include/random.h b/src/include/random.h index b3cb80c31d2..0501a878049 100644 --- a/src/include/random.h +++ b/src/include/random.h @@ -20,10 +20,10 @@ #include #include -// Basic random number facility, adapted from N3551: +// Basic random number facility (see N3551 for inspiration): namespace ceph::util { -inline namespace version_1_0_2 { +inline namespace version_1_0_3 { namespace detail { @@ -282,6 +282,9 @@ class random_number_generator final } }; +template +random_number_generator(const NumberT max) -> random_number_generator; + } // inline namespace version_* } // namespace ceph::util diff --git a/src/test/common/test_random.cc b/src/test/common/test_random.cc index 85bb732b475..14d13ca7e12 100644 --- a/src/test/common/test_random.cc +++ b/src/test/common/test_random.cc @@ -200,6 +200,17 @@ TEST(util, test_random_class_interface) ceph::util::random_number_generator rng(1234); // seed } + // Test deduction guides: + { + { ceph::util::random_number_generator rng(1234); } + { ceph::util::random_number_generator rng(1234.1234); } + + { + int x = 1234; + ceph::util::random_number_generator rng(x); + } + } + { int a = rng_i(); int b = rng_i(); -- 2.39.5