diff options
| author | Billy Robert O'Neal III | 2016-10-14 14:06:45 -0700 |
|---|---|---|
| committer | Billy Robert O'Neal III | 2016-10-14 14:06:45 -0700 |
| commit | ccf7f2842a356e8901f8e6fe988da2f5a93db329 (patch) | |
| tree | 57d2ee2603c2a06f3c004997a48973cdcee66fc3 /include | |
| parent | 88732e85b2ac0233bba6fec5c032d02f9c5c230b (diff) | |
| download | catch3-ccf7f2842a356e8901f8e6fe988da2f5a93db329.tar.gz | |
Fix random_shuffle narrowing warnings
Catch passes an RNG which accepts int to random_shuffle. Inside
random_shuffle, the STL tries to call that RNG with the difference_type
of the user provided iterators. For std::vector, this is ptrdiff_t,
which on amd64 builds is wider than int. This triggers a narrowing
warning because the 64 bit difference is being truncated to 32 bits.
Note that this RNG implementation still does not produce a correctly
uniformly shuffled result -- it's currently asserting that std::rand
can produce 1000000 which is false -- but I don't know enough about
how much repeatable shuffles are necessary here, so I'm leaving that
alone for now.
Diffstat (limited to 'include')
| -rw-r--r-- | include/internal/catch_test_case_registry_impl.hpp | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/include/internal/catch_test_case_registry_impl.hpp b/include/internal/catch_test_case_registry_impl.hpp index 04bd37fc..a70b019b 100644 --- a/include/internal/catch_test_case_registry_impl.hpp +++ b/include/internal/catch_test_case_registry_impl.hpp @@ -24,9 +24,9 @@ #endif namespace Catch { - + struct RandomNumberGenerator { - typedef int result_type; + typedef std::ptrdiff_t result_type; result_type operator()( result_type n ) const { return std::rand() % n; } |