diff options
| author | Phil Nash | 2016-06-09 08:19:23 +0100 |
|---|---|---|
| committer | Phil Nash | 2016-06-09 08:19:23 +0100 |
| commit | ac220289a617481b05b4d7821a19a89ba20d282c (patch) | |
| tree | 2aa6c4a44c0bc428556f98f9d8c7e9d01032e04d /single_include | |
| parent | be3570ef22a450e7e040913822828468f70d7f81 (diff) | |
| download | catch3-1.5.5.tar.gz | |
v1.5.5:v1.5.5
Deal with auto_ptr and random_shuffle hard deprecations in C++14
Diffstat (limited to 'single_include')
| -rw-r--r-- | single_include/catch.hpp | 53 |
1 files changed, 38 insertions, 15 deletions
diff --git a/single_include/catch.hpp b/single_include/catch.hpp index 7df2fd09..79570fb4 100644 --- a/single_include/catch.hpp +++ b/single_include/catch.hpp @@ -1,6 +1,6 @@ /* - * Catch v1.5.4 - * Generated: 2016-05-12 19:16:01.957320 + * Catch v1.5.5 + * Generated: 2016-06-09 08:17:50.409622 * ---------------------------------------------------------- * This file has been merged from multiple headers. Please don't edit it directly * Copyright (c) 2012 Two Blue Cubes Ltd. All rights reserved. @@ -106,8 +106,16 @@ // All the C++11 features can be disabled with CATCH_CONFIG_NO_CPP11 -#if defined(__cplusplus) && __cplusplus >= 201103L -# define CATCH_CPP11_OR_GREATER +#ifdef __cplusplus + +# if __cplusplus >= 201103L +# define CATCH_CPP11_OR_GREATER +# endif + +# if __cplusplus >= 201402L +# define CATCH_CPP14_OR_GREATER +# endif + #endif #ifdef __clang__ @@ -3450,7 +3458,7 @@ namespace Catch { }; class DebugOutStream : public IStream { - std::auto_ptr<StreamBufBase> m_streamBuf; + CATCH_AUTO_PTR( StreamBufBase ) m_streamBuf; mutable std::ostream m_os; public: DebugOutStream(); @@ -3598,7 +3606,7 @@ namespace Catch { } ConfigData m_data; - std::auto_ptr<IStream const> m_stream; + CATCH_AUTO_PTR( IStream const ) m_stream; TestSpec m_testSpec; }; @@ -6439,13 +6447,30 @@ namespace Catch { #include <iostream> #include <algorithm> +#ifdef CATCH_CPP14_OR_GREATER +#include <random> +#endif + namespace Catch { - struct LexSort { - bool operator() (TestCase i,TestCase j) const { return (i<j);} - }; struct RandomNumberGenerator { - int operator()( int n ) const { return std::rand() % n; } + typedef int result_type; + + result_type operator()( result_type n ) const { return std::rand() % n; } + +#ifdef CATCH_CPP14_OR_GREATER + static constexpr result_type min() { return 0; } + static constexpr result_type max() { return 1000000; } + result_type operator()() const { return std::rand() % max(); } +#endif + template<typename V> + static void shuffle( V& vector ) { +#ifdef CATCH_CPP14_OR_GREATER + std::shuffle( vector.begin(), vector.end(), RandomNumberGenerator() ); +#else + std::random_shuffle( vector.begin(), vector.end(), RandomNumberGenerator() ); +#endif + } }; inline std::vector<TestCase> sortTests( IConfig const& config, std::vector<TestCase> const& unsortedTestCases ) { @@ -6454,14 +6479,12 @@ namespace Catch { switch( config.runOrder() ) { case RunTests::InLexicographicalOrder: - std::sort( sorted.begin(), sorted.end(), LexSort() ); + std::sort( sorted.begin(), sorted.end() ); break; case RunTests::InRandomOrder: { seedRng( config ); - - RandomNumberGenerator rng; - std::random_shuffle( sorted.begin(), sorted.end(), rng ); + RandomNumberGenerator::shuffle( sorted ); } break; case RunTests::InDeclarationOrder: @@ -7547,7 +7570,7 @@ namespace Catch { return os; } - Version libraryVersion( 1, 5, 4, "", 0 ); + Version libraryVersion( 1, 5, 5, "", 0 ); } |