mirror of
				https://github.com/PabloMK7/citra.git
				synced 2025-10-31 05:40:04 +00:00 
			
		
		
		
	Upgrade codebase to C++ 20 + fix warnings + update submodules (#6115)
This commit is contained in:
		
							parent
							
								
									90b418fd1a
								
							
						
					
					
						commit
						cbd5d1c15c
					
				
					 67 changed files with 6837 additions and 7475 deletions
				
			
		|  | @ -137,8 +137,10 @@ endif() | |||
| 
 | ||||
| create_target_directory_groups(common) | ||||
| 
 | ||||
| target_link_libraries(common PUBLIC fmt microprofile Boost::boost Boost::serialization) | ||||
| target_link_libraries(common PUBLIC fmt::fmt microprofile Boost::boost Boost::serialization) | ||||
| target_link_libraries(common PRIVATE libzstd_static) | ||||
| set_target_properties(common PROPERTIES INTERPROCEDURAL_OPTIMIZATION ${ENABLE_LTO}) | ||||
| 
 | ||||
| if (ARCHITECTURE_x86_64) | ||||
|     target_link_libraries(common PRIVATE xbyak) | ||||
| endif() | ||||
|  |  | |||
|  | @ -33,6 +33,14 @@ static inline u64 ComputeStructHash64(const T& data) noexcept { | |||
|     return ComputeHash64(&data, sizeof(data)); | ||||
| } | ||||
| 
 | ||||
| /**
 | ||||
|  * Combines the seed parameter with the provided hash, producing a new unique hash | ||||
|  * Implementation from: http://boost.sourceforge.net/doc/html/boost/hash_combine.html
 | ||||
|  */ | ||||
| inline u64 HashCombine(std::size_t& seed, const u64 hash) { | ||||
|     return seed ^= hash + 0x9e3779b9 + (seed << 6) + (seed >> 2); | ||||
| } | ||||
| 
 | ||||
| /// A helper template that ensures the padding in a struct is initialized by memsetting to 0.
 | ||||
| template <typename T> | ||||
| struct HashableStruct { | ||||
|  |  | |||
							
								
								
									
										22
									
								
								src/common/logging/formatter.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								src/common/logging/formatter.h
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,22 @@ | |||
| // Copyright 2022 Citra Emulator Project
 | ||||
| // Licensed under GPLv2 or any later version
 | ||||
| // Refer to the license.txt file included.
 | ||||
| 
 | ||||
| #pragma once | ||||
| 
 | ||||
| #include <type_traits> | ||||
| #include <fmt/format.h> | ||||
| 
 | ||||
| // adapted from https://github.com/fmtlib/fmt/issues/2704
 | ||||
| // a generic formatter for enum classes
 | ||||
| #if FMT_VERSION >= 80100 | ||||
| template <typename T> | ||||
| struct fmt::formatter<T, std::enable_if_t<std::is_enum_v<T>, char>> | ||||
|     : formatter<std::underlying_type_t<T>> { | ||||
|     template <typename FormatContext> | ||||
|     auto format(const T& value, FormatContext& ctx) -> decltype(ctx.out()) { | ||||
|         return fmt::formatter<std::underlying_type_t<T>>::format( | ||||
|             static_cast<std::underlying_type_t<T>>(value), ctx); | ||||
|     } | ||||
| }; | ||||
| #endif | ||||
|  | @ -4,10 +4,10 @@ | |||
| 
 | ||||
| #pragma once | ||||
| 
 | ||||
| #include <algorithm> | ||||
| #include <array> | ||||
| #include <fmt/format.h> | ||||
| #include "common/common_types.h" | ||||
| 
 | ||||
| #include "common/logging/formatter.h" | ||||
| namespace Log { | ||||
| 
 | ||||
| // trims up to and including the last of ../, ..\, src/, src\ in a string
 | ||||
|  |  | |||
|  | @ -35,7 +35,7 @@ std::vector<u8> CompressDataZSTDDefault(const u8* source, std::size_t source_siz | |||
| 
 | ||||
| std::vector<u8> DecompressDataZSTD(const std::vector<u8>& compressed) { | ||||
|     const std::size_t decompressed_size = | ||||
|         ZSTD_getDecompressedSize(compressed.data(), compressed.size()); | ||||
|         ZSTD_getFrameContentSize(compressed.data(), compressed.size()); | ||||
|     std::vector<u8> decompressed(decompressed_size); | ||||
| 
 | ||||
|     const std::size_t uncompressed_result_size = ZSTD_decompress( | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue