| 
    ROSE
    0.11.96.11
    
   | 
 
Stores a vector of enum bit flags.
This is a more self-documenting and terse way to use bit flags. For example, consider this original code:
Now rewritten to use this class:
Definition at line 59 of file Rose/BitFlags.h.
#include <BitFlags.h>


Public Types | |
| typedef E | Enum | 
| typedef V | Vector | 
  Public Types inherited from Sawyer::BitFlags< E, int64_t > | |
| typedef E | Enum | 
| typedef int64_t | Vector | 
Public Member Functions | |
| BitFlags () | |
| Default constructor with all bits clear.  | |
| BitFlags (Vector v) | |
| Construct bit vector from value or bit.  | |
| BitFlags (Sawyer::BitFlags< E, V > bf) | |
| std::string | toString (std::vector< int64_t > constants, const char *(*stringifier)(int64_t)) const | 
| Convert to string.  More... | |
  Public Member Functions inherited from Sawyer::BitFlags< E, int64_t > | |
| BitFlags () | |
| Default constructor with all bits clear.  | |
| BitFlags (Vector v) | |
| Construct bit vector from value or bit.  | |
| BitFlags (E e) | |
| Vector | vector () const | 
| Current value of the bit vector.  | |
| bool | isSet (Enum e) const | 
| Test whether a bit is set.  | |
| bool | isAllSet (BitFlags other) const | 
| True if all specified bits are set.  | |
| bool | isAnySet (BitFlags other) const | 
| True if any of the specified bits are set.  | |
| bool | isAnySet () const | 
| True if any bit is set.  | |
| bool | isEmpty () const | 
| True if no bits are set.  | |
| bool | isClear (Enum e) const | 
| Test whether a bit is clear.  | |
| BitFlags & | set (Enum e) | 
| Set the specified bit.  | |
| BitFlags & | set (BitFlags other) | 
Set all bits that are set in other.  | |
| BitFlags & | clear (Enum e) | 
| Clear the specified bit.  | |
| BitFlags & | clear (BitFlags other) | 
Clear all bits that are set in other.  | |
| BitFlags & | clear () | 
| Clear all bits.  | |
| bool | testAndClear (Enum e) | 
| Test whether a bit is set, then clear it.  | |
| bool | testAndSet (Enum e) | 
| Test whether a bit is set, then set it.  | |
| BitFlags & | operator= (Vector v) | 
| Set the vector to an exact value.  | |
| BitFlags & | operator= (BitFlags other) | 
| Set the vector to the same as another.  | |
| std::vector< Enum > | split (std::vector< int64_t > constants, Vector &leftovers) const | 
| Split a vector into the individual enum values.  More... | |
| std::vector< Enum > | split (Vector &leftovers) const | 
| Split a vector into the individual bits values.  | |
| BitFlags | operator| (BitFlags other) const | 
| Create a new vector that's the union of two vectors.  | |
| BitFlags | operator| (Enum e) const | 
| Create a new vector that's the union of two vectors.  | |
| BitFlags | intersection (BitFlags other) const | 
| Create a new vector that's the intersection of two vectors.  | |
| BitFlags | intersection (Enum e) const | 
| Create a new vector that's the intersection of two vectors.  | |
| BitFlags | operator& (BitFlags other) const | 
| Create a new vector that's the intersection of two vectors.  | |
| BitFlags | operator& (Enum e) const | 
| Create a new vector that's the intersection of two vectors.  | |
| bool | operator== (BitFlags other) const | 
| Compare two vectors.  | |
| bool | operator!= (BitFlags other) const | 
| Compare two vectors.  | |
| bool | operator< (BitFlags other) const | 
| Compare two vectors.  | |
| bool | operator<= (BitFlags other) const | 
| Compare two vectors.  | |
| bool | operator> (BitFlags other) const | 
| Compare two vectors.  | |
| bool | operator>= (BitFlags other) const | 
| Compare two vectors.  | |
      
  | 
  inline | 
Convert to string.
Converts a bit vector to a string of the form "NAME1|NAME2|...". The constants are the individual enum flags, and the stringifier is a function that converts each of those constants to strings. 
Definition at line 79 of file Rose/BitFlags.h.
References Sawyer::BitFlags< E, int64_t >::split(), and Sawyer::BitFlags< E, int64_t >::vector().

 1.8.17