regina::Flags< T > Class Template Reference
Miscellaneous Utilities

A class representing a bitwise combination of flags defined by an enumeration type. More...

`#include <utilities/flags.h>`

## Public Types

typedef T | Enum
| The underlying enumeration type. More...

## Public Member Functions

| Flags ()
| Creates an empty flag set, with no flags set at all. More...
| Flags (T init)
| Creates a flag set initialised to the given value. More...
| Flags (const Flags< T > &init)
| Creates a clone of the given flag set. More...
int | intValue () const
| Returns the integer representation of this set. More...
bool | has (T flag) const
| Returns whether the given flag is set. More...
bool | has (const Flags< T > &rhs) const
| Returns whether all of the flags in the given set are set. More...
bool | operator== (T rhs) const
| Determines whether this set is precisely equal to the given flag. More...
bool | operator== (const Flags< T > &rhs) const
| Determines whether this set is precisely equal to the given flag set. More...
bool | operator!= (T rhs) const
| Determines whether this set is not equal to the given flag. More...
bool | operator!= (const Flags< T > &rhs) const
| Determines whether this set is not equal to the given flag set. More...
Flags< T > & | operator= (T rhs)
| Sets this flag set to contain precisely the given flag only. More...
Flags< T > & | operator= (const Flags< T > &rhs)
| Sets this flag set to contain a copy of the given flag set. More...
Flags< T > & | operator|= (T rhs)
| Changes this flag set by taking a bitwise OR with the given flag. More...
Flags< T > & | operator|= (const Flags< T > &rhs)
| Changes this flag set by taking a bitwise OR with the given flag set. More...
Flags< T > & | operator&= (T rhs)
| Changes this flag set by taking a bitwise AND with the given flag. More...
Flags< T > & | operator&= (const Flags< T > &rhs)
| Changes this flag set by taking a bitwise AND with the given flag set. More...
Flags< T > & | operator^= (T rhs)
| Changes this flag set by taking a bitwise XOR with the given flag. More...
Flags< T > & | operator^= (const Flags< T > &rhs)
| Changes this flag set by taking a bitwise XOR with the given flag set. More...
Flags< T > | operator| (T rhs) const
| Returns the bitwise OR of this set and the given flag. More...
Flags< T > | operator| (const Flags< T > &rhs) const
| Returns the bitwise OR of this and the given flag set. More...
Flags< T > | operator& (T rhs) const
| Returns the bitwise AND of this set and the given flag. More...
Flags< T > | operator& (const Flags< T > &rhs) const
| Returns the bitwise AND of this and the given flag set. More...
Flags< T > | operator^ (T rhs) const
| Returns the bitwise XOR of this set and the given flag. More...
Flags< T > | operator^ (const Flags< T > &rhs) const
| Returns the bitwise XOR of this and the given flag set. More...
void | clear (T rhs)
| Clears all bits from this set that appear in the given flag. More...
void | clear (const Flags< T > &rhs)
| Clears all bits from this set that appear in the given set. More...
void | ensureOne (T default_, T other)
| Adjust this set so that exactly one and only one of the two given flags are included. More...
void | ensureOne (T default_, T second, T last)
| Adjust this set so that exactly one and only one of the three given flags are included. More...
void | ensureOne (T default_, T second, T third, T last)
| Adjust this set so that exactly one and only one of the four given flags are included. More...

## Static Public Member Functions

static Flags< T > | fromInt (int value)
| Returns the set corresponding to the given integer value. More...

## Detailed Description

### template<typename T>
class regina::Flags< T >

A class representing a bitwise combination of flags defined by an enumeration type.

The enumeration type is given in the template parameter T. This class allows the user to form and test bitwise combinations of the individual enum values, without losing type safety.

Python:\n Present only for some particular enumeration types T,
  when explicitly noted in the corresponding enum documentation.

The documentation for this class was generated from the following file:

- utilities/flags.h

Copyright © 1999-2016, The Regina development team
This software is released under the GNU General Public License, with some additional permissions; see the source code for details.
For further information, or to submit a bug or other problem, please contact Ben Burton (bab@maths.uq.edu.au).