mirror of
				https://github.com/catchorg/Catch2.git
				synced 2025-11-04 05:59:32 +01:00 
			
		
		
		
	Split void_type into its own header and rename it to void_t
This commit is contained in:
		@@ -140,6 +140,7 @@ set(INTERNAL_HEADERS
 | 
				
			|||||||
    ${SOURCES_DIR}/catch_translate_exception.hpp
 | 
					    ${SOURCES_DIR}/catch_translate_exception.hpp
 | 
				
			||||||
    ${SOURCES_DIR}/internal/catch_uncaught_exceptions.hpp
 | 
					    ${SOURCES_DIR}/internal/catch_uncaught_exceptions.hpp
 | 
				
			||||||
    ${SOURCES_DIR}/internal/catch_unique_ptr.hpp
 | 
					    ${SOURCES_DIR}/internal/catch_unique_ptr.hpp
 | 
				
			||||||
 | 
					    ${SOURCES_DIR}/internal/catch_void_type.hpp
 | 
				
			||||||
    ${SOURCES_DIR}/catch_version.hpp
 | 
					    ${SOURCES_DIR}/catch_version.hpp
 | 
				
			||||||
    ${SOURCES_DIR}/catch_version_macros.hpp
 | 
					    ${SOURCES_DIR}/catch_version_macros.hpp
 | 
				
			||||||
    ${SOURCES_DIR}/internal/catch_wildcard_pattern.hpp
 | 
					    ${SOURCES_DIR}/internal/catch_wildcard_pattern.hpp
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -106,6 +106,7 @@
 | 
				
			|||||||
#include <catch2/internal/catch_uncaught_exceptions.hpp>
 | 
					#include <catch2/internal/catch_uncaught_exceptions.hpp>
 | 
				
			||||||
#include <catch2/internal/catch_unique_name.hpp>
 | 
					#include <catch2/internal/catch_unique_name.hpp>
 | 
				
			||||||
#include <catch2/internal/catch_unique_ptr.hpp>
 | 
					#include <catch2/internal/catch_unique_ptr.hpp>
 | 
				
			||||||
 | 
					#include <catch2/internal/catch_void_type.hpp>
 | 
				
			||||||
#include <catch2/internal/catch_wildcard_pattern.hpp>
 | 
					#include <catch2/internal/catch_wildcard_pattern.hpp>
 | 
				
			||||||
#include <catch2/internal/catch_windows_h_proxy.hpp>
 | 
					#include <catch2/internal/catch_windows_h_proxy.hpp>
 | 
				
			||||||
#include <catch2/internal/catch_xmlwriter.hpp>
 | 
					#include <catch2/internal/catch_xmlwriter.hpp>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -14,9 +14,11 @@
 | 
				
			|||||||
#include <type_traits>
 | 
					#include <type_traits>
 | 
				
			||||||
#include <string>
 | 
					#include <string>
 | 
				
			||||||
#include <string.h>
 | 
					#include <string.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include <catch2/internal/catch_compiler_capabilities.hpp>
 | 
					#include <catch2/internal/catch_compiler_capabilities.hpp>
 | 
				
			||||||
#include <catch2/internal/catch_config_wchar.hpp>
 | 
					#include <catch2/internal/catch_config_wchar.hpp>
 | 
				
			||||||
#include <catch2/internal/catch_stream.hpp>
 | 
					#include <catch2/internal/catch_stream.hpp>
 | 
				
			||||||
 | 
					#include <catch2/internal/catch_void_type.hpp>
 | 
				
			||||||
#include <catch2/interfaces/catch_interfaces_enum_values_registry.hpp>
 | 
					#include <catch2/interfaces/catch_interfaces_enum_values_registry.hpp>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifdef CATCH_CONFIG_CPP17_STRING_VIEW
 | 
					#ifdef CATCH_CONFIG_CPP17_STRING_VIEW
 | 
				
			||||||
@@ -474,19 +476,11 @@ namespace Catch {
 | 
				
			|||||||
    using std::end;
 | 
					    using std::end;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    namespace Detail {
 | 
					    namespace Detail {
 | 
				
			||||||
        template <typename...>
 | 
					 | 
				
			||||||
        struct void_type {
 | 
					 | 
				
			||||||
            using type = void;
 | 
					 | 
				
			||||||
        };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        template <typename... Ts>
 | 
					 | 
				
			||||||
        using void_type_t = typename void_type<Ts...>::type;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        template <typename T, typename = void>
 | 
					        template <typename T, typename = void>
 | 
				
			||||||
        struct is_range_impl : std::false_type {};
 | 
					        struct is_range_impl : std::false_type {};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        template <typename T>
 | 
					        template <typename T>
 | 
				
			||||||
        struct is_range_impl<T, void_type_t<decltype(begin(std::declval<T>()))>> : std::true_type {};
 | 
					        struct is_range_impl<T, void_t<decltype(begin(std::declval<T>()))>> : std::true_type {};
 | 
				
			||||||
    } // namespace Detail
 | 
					    } // namespace Detail
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    template <typename T>
 | 
					    template <typename T>
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										25
									
								
								src/catch2/internal/catch_void_type.hpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										25
									
								
								src/catch2/internal/catch_void_type.hpp
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,25 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
 | 
					//              Copyright Catch2 Authors
 | 
				
			||||||
 | 
					// Distributed under the Boost Software License, Version 1.0.
 | 
				
			||||||
 | 
					//   (See accompanying file LICENSE_1_0.txt or copy at
 | 
				
			||||||
 | 
					//        https://www.boost.org/LICENSE_1_0.txt)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// SPDX-License-Identifier: BSL-1.0
 | 
				
			||||||
 | 
					#ifndef CATCH_VOID_TYPE_HPP_INCLUDED
 | 
				
			||||||
 | 
					#define CATCH_VOID_TYPE_HPP_INCLUDED
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					namespace Catch {
 | 
				
			||||||
 | 
					    namespace Detail {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        template <typename...>
 | 
				
			||||||
 | 
					        struct make_void { using type = void; };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        template <typename... Ts>
 | 
				
			||||||
 | 
					        using void_t = typename make_void<Ts...>::type;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    } // namespace Detail
 | 
				
			||||||
 | 
					} // namespace Catch
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif // CATCH_VOID_TYPE_HPP_INCLUDED
 | 
				
			||||||
		Reference in New Issue
	
	Block a user