Skip to content
Permalink
Browse files

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.
  • Loading branch information...
lioncash committed Aug 2, 2019
1 parent c70da39 commit db3b31c2463a4dfa3caaa416a5d3c9ab8a59889b
Showing with 10 additions and 10 deletions.
  1. +10 −10 Source/Core/DiscIO/Volume.h
@@ -26,18 +26,18 @@ class VolumeWAD;

struct Partition final
{
Partition() : offset(std::numeric_limits<u64>::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<u64>::max()};
};

const Partition PARTITION_NONE(std::numeric_limits<u64>::max() - 1);
constexpr Partition PARTITION_NONE(std::numeric_limits<u64>::max() - 1);

class Volume
{

0 comments on commit db3b31c

Please sign in to comment.
You can’t perform that action at this time.