1
0
Fork 0

Codechange: make EnumBitSet ConvertibleThroughBase

pull/13433/head
Rubidium 2025-02-01 18:40:39 +01:00 committed by rubidium42
parent 55588b052e
commit b6a092f3e0
2 changed files with 2 additions and 8 deletions

View File

@ -117,8 +117,8 @@ debug_inline constexpr void ToggleFlag(T &x, const T y)
template <typename Tenum, typename Tstorage> template <typename Tenum, typename Tstorage>
class EnumBitSet { class EnumBitSet {
public: public:
using enum_type = Tenum; ///< Enum type of this EnumBitSet. using EnumType = Tenum; ///< Enum type of this EnumBitSet.
using storage_type = Tstorage; ///< Storage type of this EnumBitSet. using BaseType = Tstorage; ///< Storage type of this EnumBitSet, be ConvertibleThroughBase
constexpr EnumBitSet() : data(0) {} constexpr EnumBitSet() : data(0) {}
constexpr EnumBitSet(Tenum value) : data(0) { this->Set(value); } constexpr EnumBitSet(Tenum value) : data(0) { this->Set(value); }

View File

@ -35,9 +35,6 @@ public:
EndianBufferWriter &operator <<(std::string_view data) { this->Write(data); return *this; } EndianBufferWriter &operator <<(std::string_view data) { this->Write(data); return *this; }
EndianBufferWriter &operator <<(bool data) { return *this << static_cast<uint8_t>(data ? 1 : 0); } EndianBufferWriter &operator <<(bool data) { return *this << static_cast<uint8_t>(data ? 1 : 0); }
template <typename Tenum, typename Tstorage>
EndianBufferWriter &operator <<(const EnumBitSet<Tenum, Tstorage> &data) { return *this << data.base(); }
template <typename T> template <typename T>
EndianBufferWriter &operator <<(const OverflowSafeInt<T> &data) { return *this << static_cast<T>(data); }; EndianBufferWriter &operator <<(const OverflowSafeInt<T> &data) { return *this << static_cast<T>(data); };
@ -136,9 +133,6 @@ public:
EndianBufferReader &operator >>(std::string &data) { data = this->ReadStr(); return *this; } EndianBufferReader &operator >>(std::string &data) { data = this->ReadStr(); return *this; }
EndianBufferReader &operator >>(bool &data) { data = this->Read<uint8_t>() != 0; return *this; } EndianBufferReader &operator >>(bool &data) { data = this->Read<uint8_t>() != 0; return *this; }
template <typename Tenum, typename Tstorage>
EndianBufferReader &operator >>(EnumBitSet<Tenum, Tstorage> &data) { data = Tenum{this->Read<Tstorage>()}; return *this; }
template <typename T> template <typename T>
EndianBufferReader &operator >>(OverflowSafeInt<T> &data) { data = this->Read<T>(); return *this; }; EndianBufferReader &operator >>(OverflowSafeInt<T> &data) { data = this->Read<T>(); return *this; };