From 542c49bab0eb2c40adbc70e85bd93762899c0755 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9o=20Lam?= Date: Fri, 20 Nov 2020 18:25:02 +0100 Subject: [PATCH] Core: Fix invalid lambda captures PR #9260 made the MsgAlert macros use lambdas so that local constexpr variables can be added while keeping the ability to return a boolean from the macros. Unfortunately, C++17 forbids referring to structured bindings in lambda captures. This is fixed in P1091R3 but we cannot rely on C++20 yet... --- Source/Core/Core/HW/EXI/EXI_DeviceMemoryCard.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/Source/Core/Core/HW/EXI/EXI_DeviceMemoryCard.cpp b/Source/Core/Core/HW/EXI/EXI_DeviceMemoryCard.cpp index 2ab706e671..92eb5e40f6 100644 --- a/Source/Core/Core/HW/EXI/EXI_DeviceMemoryCard.cpp +++ b/Source/Core/Core/HW/EXI/EXI_DeviceMemoryCard.cpp @@ -185,7 +185,11 @@ void CEXIMemoryCard::SetupGciFolder(const Memcard::HeaderData& header_data) CurrentGameId = Common::swap32(reinterpret_cast(game_id.c_str())); } - const auto [strDirectoryName, migrate] = GetGCIFolderPath(card_index, AllowMovieFolder::Yes); + // TODO(C++20): Use structured bindings when we can use C++20 and refer to structured bindings + // in lambda captures + const auto folder_path = GetGCIFolderPath(card_index, AllowMovieFolder::Yes); + const auto& strDirectoryName = folder_path.first; + const bool migrate = folder_path.second; const File::FileInfo file_info(strDirectoryName); if (!file_info.Exists())