diff options
| author | mitaclaw <140017135+mitaclaw@users.noreply.github.com> | 2024-09-29 11:19:33 -0700 |
|---|---|---|
| committer | mitaclaw <140017135+mitaclaw@users.noreply.github.com> | 2025-03-09 13:26:38 -0700 |
| commit | 8b9f92a0af0f467ffa0bde5f4e6239e57fbd4b5e (patch) | |
| tree | 094c6bc6d9007cbf96cdaac54dbdc3cc8e24e320 /Source/Core/DiscIO/DirectoryBlob.cpp | |
| parent | 9f972db4b8e730751d643680ec90f177c3010333 (diff) | |
Modernize `std::sort` with ranges and projections
In PPCTables.cpp, the code is currently unused so I was unable to test it.
In CustomPipeline.cpp, a pointer to member function cannot be used due to 16.4.5.2.1 of the C++ Standard regarding "addressable functions". https://eel.is/c++draft/namespace.std#6
In Fs.cpp and DirectoryBlob.cpp, these examples used projections in a previous iteration of this commit, but no longer do. Still, they remain in this commit because the PR they would actually belong to is already merged.
Diffstat (limited to 'Source/Core/DiscIO/DirectoryBlob.cpp')
| -rw-r--r-- | Source/Core/DiscIO/DirectoryBlob.cpp | 16 |
1 files changed, 7 insertions, 9 deletions
diff --git a/Source/Core/DiscIO/DirectoryBlob.cpp b/Source/Core/DiscIO/DirectoryBlob.cpp index 5d080afe1d..442c8ae851 100644 --- a/Source/Core/DiscIO/DirectoryBlob.cpp +++ b/Source/Core/DiscIO/DirectoryBlob.cpp @@ -1192,15 +1192,13 @@ void DirectoryBlobPartition::WriteDirectory(std::vector<u8>* fst_data, std::vector<FSTBuilderNode>& sorted_entries = *parent_entries; // Sort for determinism - std::sort(sorted_entries.begin(), sorted_entries.end(), - [](const FSTBuilderNode& one, const FSTBuilderNode& two) { - std::string one_upper = one.m_filename; - std::string two_upper = two.m_filename; - Common::ToUpper(&one_upper); - Common::ToUpper(&two_upper); - return one_upper == two_upper ? one.m_filename < two.m_filename : - one_upper < two_upper; - }); + std::ranges::sort(sorted_entries, [](const FSTBuilderNode& one, const FSTBuilderNode& two) { + std::string one_upper = one.m_filename; + std::string two_upper = two.m_filename; + Common::ToUpper(&one_upper); + Common::ToUpper(&two_upper); + return one_upper == two_upper ? one.m_filename < two.m_filename : one_upper < two_upper; + }); for (FSTBuilderNode& entry : sorted_entries) { |
