44 #ifndef FlagSet_Included
45 #define FlagSet_Included
52 template<
typename TEnum,
int TMaxFlags = 8>
60 friend class FlagSet<TEnum, TMaxFlags>;
103 FlagSet(
const TEnum f1,
const TEnum f2,
const TEnum f3)
110 FlagSet(
const TEnum f1,
const TEnum f2,
const TEnum f3,
const TEnum f4)
118 FlagSet(
const TEnum f1,
const TEnum f2,
const TEnum f3,
const TEnum f4,
const TEnum f5)
127 FlagSet(
const TEnum f1,
const TEnum f2,
const TEnum f3,
const TEnum f4,
const TEnum f5,
const TEnum f6)
138 inline void set(
const TEnum flag,
bool val =
true)
140 flags.set(flag, val);
152 inline void set(
const TEnum f1,
const TEnum f2)
160 inline void set(
const TEnum f1,
const TEnum f2,
const TEnum f3)
169 inline void set(
const TEnum f1,
const TEnum f2,
const TEnum f3,
const TEnum f4)
192 inline void reset(
const TEnum f1,
const TEnum f2)
200 inline void reset(
const TEnum f1,
const TEnum f2,
const TEnum f3)
209 inline void reset(
const TEnum f1,
const TEnum f2,
const TEnum f3,
const TEnum f4)
219 inline void flip(
const TEnum flag)
233 inline bool test(
const TEnum flag)
235 return flags.test(flag);
242 return flags.test(flag);
259 inline bool any(
const TEnum flag1,
const TEnum flag2)
261 return flags.test(flag1) ||
flags.test(flag2);
265 inline bool any(
const TEnum flag1,
const TEnum flag2,
const TEnum flag3)
280 inline bool all(
const TEnum flag1,
const TEnum flag2)
282 return flags.test(flag1) &&
flags.test(flag2);
286 inline bool all(
const TEnum flag1,
const TEnum flag2,
const TEnum flag3)
FlagSetReference(FlagSet< TEnum, TMaxFlags > &theSet, TEnum pos)
FlagSet< TEnum, TMaxFlags > * refSet
FlagSetReference & operator=(bool val)
void reset(const TEnum f1, const TEnum f2, const TEnum f3, const TEnum f4)
void reset(const TEnum f1, const TEnum f2)
void flip(const TEnum flag)
bool any(const TEnum flag1, const TEnum flag2)
void set(const TEnum f1, const TEnum f2)
FlagSet(const TEnum f1, const TEnum f2, const TEnum f3, const TEnum f4)
FlagSet(const TEnum f1, const TEnum f2, const TEnum f3, const TEnum f4, const TEnum f5)
bool all(const TEnum flag1, const TEnum flag2, const TEnum flag3)
void set(const TEnum f1, const TEnum f2, const TEnum f3)
bool any(const TEnum flag1, const TEnum flag2, const TEnum flag3)
bool operator[](const TEnum flag) const
void reset(const TEnum f1, const TEnum f2, const TEnum f3)
BitSet< TMaxFlags > flags
FlagSet(const TEnum f1, const TEnum f2)
void reset(const TEnum flag)
bool test(const TEnum flag)
void set(const TEnum flag, bool val=true)
FlagSet(const TEnum f1, const TEnum f2, const TEnum f3)
bool all(const TEnum flag1, const TEnum flag2)
void set(const TEnum f1, const TEnum f2, const TEnum f3, const TEnum f4)
FlagSet(const TEnum f1, const TEnum f2, const TEnum f3, const TEnum f4, const TEnum f5, const TEnum f6)