revert workaround for msvc arm64 ICE in WIABlob

This commit is contained in:
Shawn Hoffman 2021-08-14 03:57:53 -07:00
parent f3031e2be2
commit 4ef87194a4
1 changed files with 15 additions and 16 deletions

View File

@ -240,27 +240,26 @@ private:
struct ReuseID struct ReuseID
{ {
// This code is a workaround for an ICE in Visual Studio 16.10.0 when making an ARM64 Release bool operator==(const ReuseID& other) const
// build. Once a fixed version of Visual Studio is released, we can use std::tie instead. {
#define COMPARE_REUSE_ID_INNER(op, f, next) ((f != other.f) ? (f op other.f) : (next)) return std::tie(partition_key, data_size, encrypted, value) ==
#define COMPARE_REUSE_ID(op, equal_result) \ std::tie(other.partition_key, other.data_size, other.encrypted, other.value);
COMPARE_REUSE_ID_INNER( \ }
op, partition_key, \ bool operator<(const ReuseID& other) const
COMPARE_REUSE_ID_INNER( \ {
op, data_size, \ return std::tie(partition_key, data_size, encrypted, value) <
COMPARE_REUSE_ID_INNER(op, encrypted, COMPARE_REUSE_ID_INNER(op, value, equal_result)))) std::tie(other.partition_key, other.data_size, other.encrypted, other.value);
}
bool operator==(const ReuseID& other) const { return COMPARE_REUSE_ID(==, true); } bool operator>(const ReuseID& other) const
bool operator<(const ReuseID& other) const { return COMPARE_REUSE_ID(<, false); } {
bool operator>(const ReuseID& other) const { return COMPARE_REUSE_ID(>, false); } return std::tie(partition_key, data_size, encrypted, value) >
std::tie(other.partition_key, other.data_size, other.encrypted, other.value);
}
bool operator!=(const ReuseID& other) const { return !operator==(other); } bool operator!=(const ReuseID& other) const { return !operator==(other); }
bool operator>=(const ReuseID& other) const { return !operator<(other); } bool operator>=(const ReuseID& other) const { return !operator<(other); }
bool operator<=(const ReuseID& other) const { return !operator>(other); } bool operator<=(const ReuseID& other) const { return !operator>(other); }
#undef COMPARE_REUSE_ID_INNER
#undef COMPARE_REUSE_ID
WiiKey partition_key; WiiKey partition_key;
u64 data_size; u64 data_size;
bool encrypted; bool encrypted;