Core/Flags: Add Test method
This commit is contained in:
parent
54faabcc33
commit
aa623a4933
|
|
@ -22,6 +22,7 @@ Nazara Engine:
|
||||||
- Flags class now use an UInt8 or UInt16 to store the value if possible.
|
- Flags class now use an UInt8 or UInt16 to store the value if possible.
|
||||||
- Flags class is now explicitly convertible to any integer type of the same size (or greater size) than the internal size.
|
- Flags class is now explicitly convertible to any integer type of the same size (or greater size) than the internal size.
|
||||||
- Fix String movement constructor, which was leaving a null shared string (which was not reusable)
|
- Fix String movement constructor, which was leaving a null shared string (which was not reusable)
|
||||||
|
- Add Flags<E>::Test method, in order to test one or multiple flags at once.
|
||||||
|
|
||||||
Nazara Development Kit:
|
Nazara Development Kit:
|
||||||
- Added ImageWidget (#139)
|
- Added ImageWidget (#139)
|
||||||
|
|
|
||||||
|
|
@ -48,6 +48,8 @@ namespace Nz
|
||||||
constexpr Flags(BitField value = 0);
|
constexpr Flags(BitField value = 0);
|
||||||
constexpr Flags(E enumVal);
|
constexpr Flags(E enumVal);
|
||||||
|
|
||||||
|
constexpr bool Test(const Flags& flags) const;
|
||||||
|
|
||||||
explicit constexpr operator bool() const;
|
explicit constexpr operator bool() const;
|
||||||
template<typename T, typename = std::enable_if_t<std::is_integral<T>::value && sizeof(T) >= sizeof(BitField)>> explicit constexpr operator T() const;
|
template<typename T, typename = std::enable_if_t<std::is_integral<T>::value && sizeof(T) >= sizeof(BitField)>> explicit constexpr operator T() const;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -40,7 +40,17 @@ namespace Nz
|
||||||
}
|
}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
* \brief Tests a Flags
|
* \brief Tests if all flags from a Flags object are enabled
|
||||||
|
* \return True if all tested flags are enabled.
|
||||||
|
*/
|
||||||
|
template<typename E>
|
||||||
|
constexpr bool Flags<E>::Test(const Flags& flags) const
|
||||||
|
{
|
||||||
|
return (m_value & flags.m_value) == flags.m_value;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* \brief Tests any flag
|
||||||
* \return True if any flag is enabled.
|
* \return True if any flag is enabled.
|
||||||
*
|
*
|
||||||
* This will convert to a boolean value allowing to check if any flag is set.
|
* This will convert to a boolean value allowing to check if any flag is set.
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue