2
3
4
5
6
7
8
11#ifndef _MSTD_FLAGS_HPP_
12 #define _MSTD_FLAGS_HPP_
14 #include <mstd/config.hpp>
17_MSTD_WARNING(
"this is only available for c++17 and greater!");
20 #include <mstd/management_types.hpp>
26 template<
class BitsEnum, std::enable_if_t<std::is_enum_v<BitsEnum>,
bool> >
38 #pragma region DEFAULT_CONSTRUCTORS
44 #pragma region CONVERSIONS_CONSTRUCTORS
54 #pragma region DEFAULT_ASSIGNMENT_OPERATOR
101 template<
class BitsEnum>
_MSTD_CONSTEXPR17 flags(const flags &other) noexcept=default
_MSTD_CONSTEXPR17 flags operator&(const flags other) const noexcept
Definition flags.hpp:69
_MSTD_CONSTEXPR20 ~flags() noexcept=default
std::underlying_type_t< BitsEnum > value_type
Definition flags.hpp:32
_MSTD_CONSTEXPR17 flags & operator=(const flags &other) noexcept=default
_MSTD_CONSTEXPR17 flags & operator|=(const flags other) noexcept
Definition flags.hpp:73
_MSTD_CONSTEXPR17 flags(const bits_type bit) noexcept
Definition flags.hpp:46
_MSTD_CONSTEXPR17 flags operator|(const flags other) const noexcept
Definition flags.hpp:67
_MSTD_CONSTEXPR17 flags & operator&=(const flags other) noexcept
Definition flags.hpp:78
_MSTD_CONSTEXPR17 value_type value() const noexcept
Definition flags.hpp:63
_MSTD_CONSTEXPR17 operator value_type() const noexcept
Definition flags.hpp:65
_MSTD_CONSTEXPR17 bool operator==(const flags other) const noexcept
Definition flags.hpp:88
_MSTD_CONSTEXPR17 flags & operator^=(const flags other) noexcept
Definition flags.hpp:83
BitsEnum bits_type
Definition flags.hpp:31
_MSTD_CONSTEXPR17 flags() noexcept=default
_MSTD_CONSTEXPR17 operator bool() const noexcept
Definition flags.hpp:98
_MSTD_CONSTEXPR17 flags(flags &&other) noexcept=default
_MSTD_CONSTEXPR17 flags operator^(const flags other) const noexcept
Definition flags.hpp:71
_MSTD_CONSTEXPR17 flags operator~() const noexcept
Definition flags.hpp:92
_MSTD_CONSTEXPR17 bool contains(const flags other) const noexcept
Definition flags.hpp:59
value_type _flags
Definition flags.hpp:35
_MSTD_CONSTEXPR17 flags(const value_type flags) noexcept
Definition flags.hpp:48
_MSTD_CONSTEXPR17 bool operator!() const noexcept
Definition flags.hpp:96
_MSTD_CONSTEXPR17 flags & operator=(flags &&other) noexcept=default
_MSTD_CONSTEXPR17 bool operator!=(const flags other) const noexcept
Definition flags.hpp:90
#define _MSTD_HAS_CXX17
Definition config.hpp:45
#define _MSTD_CONSTEXPR17
Definition config.hpp:76
#define _MSTD_HAS_CXX20
Definition config.hpp:52
#define _MSTD_REQUIRES(condition)
Definition config.hpp:86
#define _MSTD_CONSTEXPR20
Definition config.hpp:84
Definition arithmetic_types.hpp:23
_MSTD_CONSTEXPR17 flags< BitsEnum > operator|(const BitsEnum bit, const BitsEnum otherBit) noexcept
Definition flags.hpp:102