Read-only mirrors. Development, issues and pull requests are on GitHub.

summaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorMartin Hořeňovský2023-12-10 21:22:43 +0100
committerMartin Hořeňovský2023-12-10 21:22:43 +0100
commita6f22c51699b78116cac54a4ac95bbed710efbd4 (patch)
tree03084267c83b6a35d7eaedbef02d05e99ab42bff /src
parent1887d42e3d880414a8e9c6746810a42521b0ee90 (diff)
downloadcatch3-a6f22c51699b78116cac54a4ac95bbed710efbd4.tar.gz
Remove static instance of std::random_device in Benchmark::analyse_samples
Diffstat (limited to 'src')
-rw-r--r--src/catch2/benchmark/detail/catch_stats.cpp11
1 files changed, 4 insertions, 7 deletions
diff --git a/src/catch2/benchmark/detail/catch_stats.cpp b/src/catch2/benchmark/detail/catch_stats.cpp
index 5867f1e1..a56edfc0 100644
--- a/src/catch2/benchmark/detail/catch_stats.cpp
+++ b/src/catch2/benchmark/detail/catch_stats.cpp
@@ -355,11 +355,6 @@ namespace Catch {
unsigned int n_resamples,
double* first,
double* last) {
- CATCH_INTERNAL_START_WARNINGS_SUPPRESSION
- CATCH_INTERNAL_SUPPRESS_GLOBALS_WARNINGS
- static std::random_device entropy;
- CATCH_INTERNAL_STOP_WARNINGS_SUPPRESSION
-
auto n = static_cast<int>(last - first); // seriously, one can't use integral types without hell in C++
auto mean = &Detail::mean;
@@ -367,7 +362,8 @@ namespace Catch {
#if defined(CATCH_CONFIG_USE_ASYNC)
auto Estimate = [=](double(*f)(double const*, double const*)) {
- auto seed = entropy();
+ std::random_device rd;
+ auto seed = rd();
return std::async(std::launch::async, [=] {
SimplePcg32 rng( seed );
auto resampled = resample(rng, n_resamples, first, last, f);
@@ -382,7 +378,8 @@ namespace Catch {
auto stddev_estimate = stddev_future.get();
#else
auto Estimate = [=](double(*f)(double const* , double const*)) {
- auto seed = entropy();
+ std::random_device rd;
+ auto seed = rd();
SimplePcg32 rng( seed );
auto resampled = resample(rng, n_resamples, first, last, f);
return bootstrap(confidence_level, first, last, resampled, f);