mirror of
				https://github.com/catchorg/Catch2.git
				synced 2025-10-31 12:17:11 +01:00 
			
		
		
		
	Added unique_ptr detection to compiler_capabilities
- as well as use by C++11 conformant compilers now enabled for VS2013 on too (see #479) - updated docs with this (and long long and override support)
This commit is contained in:
		| @@ -18,11 +18,16 @@ | ||||
| // CATCH_CONFIG_CPP11_TUPLE : std::tuple is supported | ||||
| // CATCH_CONFIG_CPP11_LONG_LONG : is long long supported? | ||||
| // CATCH_CONFIG_CPP11_OVERRIDE : is override supported? | ||||
| // CATCH_CONFIG_CPP11_UNIQUE_PTR : is unique_ptr supported (otherwise use auto_ptr) | ||||
|  | ||||
| // CATCH_CONFIG_CPP11_OR_GREATER : Is C++11 supported? | ||||
|  | ||||
| // CATCH_CONFIG_VARIADIC_MACROS : are variadic macros supported? | ||||
|  | ||||
| // **************** | ||||
| // Note to maintainers: if new toggles are added please document them | ||||
| // in configuration.md, too | ||||
| // **************** | ||||
|  | ||||
| // In general each macro has a _NO_<feature name> form | ||||
| // (e.g. CATCH_CONFIG_CPP11_NO_NULLPTR) which disables the feature. | ||||
| @@ -84,6 +89,7 @@ | ||||
|  | ||||
| #if (_MSC_VER >= 1600) | ||||
| #   define CATCH_INTERNAL_CONFIG_CPP11_NULLPTR | ||||
| #   define CATCH_INTERNAL_CONFIG_CPP11_UNIQUE_PTR | ||||
| #endif | ||||
|  | ||||
| #if (_MSC_VER >= 1900 ) // (VC++ 13 (VS2015)) | ||||
| @@ -93,6 +99,8 @@ | ||||
|  | ||||
| #endif // _MSC_VER | ||||
|  | ||||
| //////////////////////////////////////////////////////////////////////////////// | ||||
|  | ||||
| // Use variadic macros if the compiler supports them | ||||
| #if ( defined _MSC_VER && _MSC_VER > 1400 && !defined __EDGE__) || \ | ||||
|     ( defined __WAVE__ && __WAVE_HAS_VARIADICS ) || \ | ||||
| @@ -107,7 +115,7 @@ | ||||
| // C++ language feature support | ||||
|  | ||||
| // catch all support for C++11 | ||||
| #if (__cplusplus >= 201103L) | ||||
| #if defined(__cplusplus) && __cplusplus >= 201103L | ||||
|  | ||||
| #  define CATCH_CPP11_OR_GREATER | ||||
|  | ||||
| @@ -142,6 +150,9 @@ | ||||
| #  if !defined(CATCH_INTERNAL_CONFIG_CPP11_OVERRIDE) | ||||
| #    define CATCH_INTERNAL_CONFIG_CPP11_OVERRIDE | ||||
| #  endif | ||||
| #  if !defined(CATCH_INTERNAL_CONFIG_CPP11_UNIQUE_PTR) | ||||
| #    define CATCH_INTERNAL_CONFIG_CPP11_UNIQUE_PTR | ||||
| #  endif | ||||
|  | ||||
|  | ||||
| #endif // __cplusplus >= 201103L | ||||
| @@ -165,12 +176,15 @@ | ||||
| #if defined(CATCH_INTERNAL_CONFIG_VARIADIC_MACROS) && !defined(CATCH_CONFIG_NO_VARIADIC_MACROS) && !defined(CATCH_CONFIG_VARIADIC_MACROS) | ||||
| #   define CATCH_CONFIG_VARIADIC_MACROS | ||||
| #endif | ||||
| #if defined(CATCH_INTERNAL_CONFIG_CPP11_LONG_LONG) && !defined(CATCH_CONFIG_NO_LONG_LONG) && !defined(CATCH_CONFIG_CPP11_LONG_LONG) | ||||
| #if defined(CATCH_INTERNAL_CONFIG_CPP11_LONG_LONG) && !defined(CATCH_CONFIG_NO_LONG_LONG) && !defined(CATCH_CONFIG_CPP11_LONG_LONG) && !defined(CATCH_CONFIG_NO_CPP11) | ||||
| #   define CATCH_CONFIG_CPP11_LONG_LONG | ||||
| #endif | ||||
| #if defined(CATCH_INTERNAL_CONFIG_CPP11_OVERRIDE) && !defined(CATCH_CONFIG_NO_OVERRIDE) && !defined(CATCH_CONFIG_CPP11_OVERRIDE) | ||||
| #if defined(CATCH_INTERNAL_CONFIG_CPP11_OVERRIDE) && !defined(CATCH_CONFIG_NO_OVERRIDE) && !defined(CATCH_CONFIG_CPP11_OVERRIDE) && !defined(CATCH_CONFIG_NO_CPP11) | ||||
| #   define CATCH_CONFIG_CPP11_OVERRIDE | ||||
| #endif | ||||
| #if defined(CATCH_INTERNAL_CONFIG_CPP11_UNIQUE_PTR) && !defined(CATCH_CONFIG_NO_UNIQUE_PTR) && !defined(CATCH_CONFIG_CPP11_UNIQUE_PTR) && !defined(CATCH_CONFIG_NO_CPP11) | ||||
| #   define CATCH_CONFIG_CPP11_UNIQUE_PTR | ||||
| #endif | ||||
|  | ||||
|  | ||||
| // noexcept support: | ||||
| @@ -196,5 +210,12 @@ | ||||
| #   define CATCH_OVERRIDE | ||||
| #endif | ||||
|  | ||||
| // unique_ptr support | ||||
| #ifdef CATCH_CONFIG_CPP11_UNIQUE_PTR | ||||
| #   define CATCH_AUTO_PTR( T ) std::unique_ptr<T> | ||||
| #else | ||||
| #   define CATCH_AUTO_PTR( T ) std::auto_ptr<T> | ||||
| #endif | ||||
|  | ||||
| #endif // TWOBLUECUBES_CATCH_COMPILER_CAPABILITIES_HPP_INCLUDED | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Phil Nash
					Phil Nash