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

summaryrefslogtreecommitdiffhomepage
path: root/include
diff options
context:
space:
mode:
authorBilly Robert O'Neal III2016-10-14 14:06:45 -0700
committerBilly Robert O'Neal III2016-10-14 14:06:45 -0700
commitccf7f2842a356e8901f8e6fe988da2f5a93db329 (patch)
tree57d2ee2603c2a06f3c004997a48973cdcee66fc3 /include
parent88732e85b2ac0233bba6fec5c032d02f9c5c230b (diff)
downloadcatch3-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.hpp4
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; }