Added bits_t member to BitFlags and is_bitflags_v helper constant.
This commit is contained in:
parent
c214398fac
commit
e586698fb6
@ -25,6 +25,8 @@ namespace mijin
|
||||
template<typename TBits>
|
||||
struct BitFlags
|
||||
{
|
||||
using bits_t = TBits;
|
||||
|
||||
constexpr TBits& operator |=(const BitFlags& other) {
|
||||
for (std::size_t idx = 0; idx < sizeof(TBits); ++idx) {
|
||||
*(std::bit_cast<std::byte*>(asBits()) + idx) |= *(std::bit_cast<const std::byte*>(other.asBits()) + idx);
|
||||
@ -83,6 +85,9 @@ private:
|
||||
constexpr const TBits* asBits() const { return static_cast<const TBits*>(this); }
|
||||
};
|
||||
|
||||
template<typename T>
|
||||
constexpr bool is_bitflags_v = std::is_base_of_v<BitFlags<T>, T>;
|
||||
|
||||
//
|
||||
// public functions
|
||||
//
|
||||
|
Loading…
x
Reference in New Issue
Block a user