From db3b31c2463a4dfa3caaa416a5d3c9ab8a59889b Mon Sep 17 00:00:00 2001 From: Lioncash Date: Fri, 2 Aug 2019 17:53:18 -0400 Subject: [PATCH] DiscIO/Volume: Make Partition's interface constexpr PARTITION_NONE technically has a runtime static constructor otherwise. This allows compile-time instances of Partition to be created without the use of a static constructor. --- Source/Core/DiscIO/Volume.h | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/Source/Core/DiscIO/Volume.h b/Source/Core/DiscIO/Volume.h index a26db94370..05325aced2 100644 --- a/Source/Core/DiscIO/Volume.h +++ b/Source/Core/DiscIO/Volume.h @@ -26,18 +26,18 @@ class VolumeWAD; struct Partition final { - Partition() : offset(std::numeric_limits::max()) {} - explicit Partition(u64 offset_) : offset(offset_) {} - bool operator==(const Partition& other) const { return offset == other.offset; } - bool operator!=(const Partition& other) const { return !(*this == other); } - bool operator<(const Partition& other) const { return offset < other.offset; } - bool operator>(const Partition& other) const { return other < *this; } - bool operator<=(const Partition& other) const { return !(*this < other); } - bool operator>=(const Partition& other) const { return !(*this > other); } - u64 offset; + constexpr Partition() = default; + constexpr explicit Partition(u64 offset_) : offset(offset_) {} + constexpr bool operator==(const Partition& other) const { return offset == other.offset; } + constexpr bool operator!=(const Partition& other) const { return !(*this == other); } + constexpr bool operator<(const Partition& other) const { return offset < other.offset; } + constexpr bool operator>(const Partition& other) const { return other < *this; } + constexpr bool operator<=(const Partition& other) const { return !(*this < other); } + constexpr bool operator>=(const Partition& other) const { return !(*this > other); } + u64 offset{std::numeric_limits::max()}; }; -const Partition PARTITION_NONE(std::numeric_limits::max() - 1); +constexpr Partition PARTITION_NONE(std::numeric_limits::max() - 1); class Volume {