|
Regina 7.0 Calculation Engine
|
A set of booleans. More...
#include <utilities/boolset.h>
Public Member Functions | |
| constexpr | BoolSet () |
| Creates a new empty set. More... | |
| constexpr | BoolSet (bool member) |
| Creates a set containing a single member as given. More... | |
| constexpr | BoolSet (const BoolSet &cloneMe)=default |
| Creates a set equal to the given set. More... | |
| constexpr | BoolSet (bool insertTrue, bool insertFalse) |
Creates a set specifying whether true and/or false should be a member. More... | |
| constexpr bool | hasTrue () const |
Determines if true is a member of this set. More... | |
| constexpr bool | hasFalse () const |
Determines if false is a member of this set. More... | |
| constexpr bool | contains (bool value) const |
| Determines if the given boolean is a member of this set. More... | |
| void | insertTrue () |
Inserts true into this set if it is not already present. More... | |
| void | insertFalse () |
Inserts false into this set if it is not already present. More... | |
| void | removeTrue () |
Removes true from this set if it is present. More... | |
| void | removeFalse () |
Removes false from this set if it is present. More... | |
| void | empty () |
| Removes all elements from this set. More... | |
| void | fill () |
Places both true and false into this set if they are not already present. More... | |
| constexpr bool | operator== (BoolSet other) const |
| Determines if this set is equal to the given set. More... | |
| constexpr bool | operator!= (BoolSet other) const |
| Determines if this set is not equal to the given set. More... | |
| constexpr bool | operator< (BoolSet other) const |
| Determines if this set is a proper subset of the given set. More... | |
| constexpr bool | operator> (BoolSet other) const |
| Determines if this set is a proper superset of the given set. More... | |
| constexpr bool | operator<= (BoolSet other) const |
| Determines if this set is a subset of (possibly equal to) the given set. More... | |
| constexpr bool | operator>= (BoolSet other) const |
| Determines if this set is a superset of (possibly equal to) the given set. More... | |
| BoolSet & | operator= (const BoolSet &cloneMe)=default |
| Sets this set to be identical to the given set. More... | |
| BoolSet & | operator= (bool member) |
| Sets this set to the single member set containing the given element. More... | |
| BoolSet & | operator|= (BoolSet other) |
| Sets this set to be the union of this and the given set. More... | |
| BoolSet & | operator&= (BoolSet other) |
| Sets this set to be the intersection of this and the given set. More... | |
| BoolSet & | operator^= (BoolSet other) |
| Sets this set to be the symmetric difference of this and the given set. More... | |
| constexpr BoolSet | operator| (BoolSet other) const |
| Returns the union of this set with the given set. More... | |
| constexpr BoolSet | operator& (BoolSet other) const |
| Returns the intersection of this set with the given set. More... | |
| constexpr BoolSet | operator^ (BoolSet other) const |
| Returns the symmetric difference of this set and the given set. More... | |
| constexpr BoolSet | operator~ () const |
| Returns the complement of this set. More... | |
| constexpr unsigned char | byteCode () const |
| Returns the byte code representing this boolean set. More... | |
| bool | setByteCode (unsigned char code) |
| Sets this to be the boolean set represented by the given byte code. More... | |
| const char * | stringCode () const |
| Returns the string code representing this boolean set. More... | |
| bool | setStringCode (const std::string &code) |
| Sets this to be the boolean set represented by the given string code. More... | |
Static Public Member Functions | |
| constexpr static BoolSet | fromByteCode (unsigned char code) |
| Creates a boolean set from the given byte code. More... | |
Static Public Attributes | |
| static const BoolSet | sNone |
| The empty set. More... | |
| static const BoolSet | sTrue |
The set containing only true. More... | |
| static const BoolSet | sFalse |
The set containing only false. More... | |
| static const BoolSet | sBoth |
The set containing both true and false. More... | |
Friends | |
| std::ostream & | operator<< (std::ostream &out, BoolSet set) |
| Writes the given boolean set to the given output stream. More... | |
A set of booleans.
Note that there are only four possible such sets.
These objects are small enough to pass by value and swap with std::swap(), with no need for any specialised move operations or swap functions.
|
inlineconstexpr |
Creates a new empty set.
|
inlineconstexpr |
Creates a set containing a single member as given.
| member | the single element to include in this set. |
|
constexprdefault |
Creates a set equal to the given set.
| cloneMe | the set upon which we will base the new set. |
|
inlineconstexpr |
Creates a set specifying whether true and/or false should be a member.
| insertTrue | should the new set include the element true? |
| insertFalse | should the new set include the element false? |
|
inlineconstexpr |
Returns the byte code representing this boolean set.
The byte code is sufficient to reconstruct the set and is thus a useful means for passing boolean sets to and from the engine.
The lowest order bit of the byte code is 1 if and only if true is in the set. The next lowest order bit is 1 if and only if false is in the set. All other bits are 0. Therefore sets {}, {true}, {false} and {true, false} have byte codes 0, 1, 2 and 3 respectively.
|
inlineconstexpr |
Determines if the given boolean is a member of this set.
| value | the boolean to search for in this set. |
true if and only if the given boolean is a member of this set.
|
inline |
Removes all elements from this set.
|
inline |
Places both true and false into this set if they are not already present.
|
inlinestaticconstexpr |
Creates a boolean set from the given byte code.
See byteCode() for more information on byte codes.
| code | the byte code from which the new set will be created. |
|
inlineconstexpr |
Determines if false is a member of this set.
true if and only if false is a member of this set.
|
inlineconstexpr |
Determines if true is a member of this set.
true if and only if true is a member of this set.
|
inline |
Inserts false into this set if it is not already present.
|
inline |
Inserts true into this set if it is not already present.
|
inlineconstexpr |
Determines if this set is not equal to the given set.
| other | the set to compare with this. |
true if and only if this and the given set are not equal. Returns the intersection of this set with the given set.
The result is a set containing precisely the elements that belong to both original sets. This set is not changed.
| other | the set to intersect with this set. |
Sets this set to be the intersection of this and the given set.
The result is a set containing precisely the elements that belong to both original sets. Note that this set will be modified.
| other | the set to intersect with this set. |
|
inlineconstexpr |
Determines if this set is a proper subset of the given set.
| other | the set to compare with this. |
true if and only if this is a proper subset of the given set.
|
inlineconstexpr |
Determines if this set is a subset of (possibly equal to) the given set.
| other | the set to compare with this. |
true if and only if this is a subset of the given set.
|
inline |
Sets this set to the single member set containing the given element.
| member | the single element to include in this set. |
Sets this set to be identical to the given set.
| cloneMe | the set whose value this set will take. |
|
inlineconstexpr |
Determines if this set is equal to the given set.
| other | the set to compare with this. |
true if and only if this and the given set are equal.
|
inlineconstexpr |
Determines if this set is a proper superset of the given set.
| other | the set to compare with this. |
true if and only if this is a proper superset of the given set.
|
inlineconstexpr |
Determines if this set is a superset of (possibly equal to) the given set.
| other | the set to compare with this. |
true if and only if this is a superset of the given set. Returns the symmetric difference of this set and the given set.
The result is a set containing precisely the elements that belong to one but not both of the original sets. This set is not changed.
| other | the set whose symmetric difference with this set is to be found. |
Sets this set to be the symmetric difference of this and the given set.
The result is a set containing precisely the elements that belong to one but not both of the original sets. Note that this set will be modified.
| other | the set whose symmetric difference with this set is to be found. |
Returns the union of this set with the given set.
The result is a set containing precisely the elements that belong to either of the original sets. This set is not changed.
| other | the set to union with this set. |
Sets this set to be the union of this and the given set.
The result is a set containing precisely the elements that belong to either of the original sets. Note that this set will be modified.
| other | the set to union with this set. |
|
inlineconstexpr |
Returns the complement of this set.
The result is a set containing precisely the elements that this set does not contain. This set is not changed.
|
inline |
Removes false from this set if it is present.
|
inline |
Removes true from this set if it is present.
|
inline |
Sets this to be the boolean set represented by the given byte code.
See byteCode() for more information on byte codes.
If code is not a value byte code, then this routine will do nothing and return false.
| code | the byte code that will determine the new value of this set. |
true if and only if code is a valid byte code. | bool regina::BoolSet::setStringCode | ( | const std::string & | code | ) |
Sets this to be the boolean set represented by the given string code.
See stringCode() for more information on string codes.
If code is not a value string code, then this routine will do nothing and return false.
| code | the string code that will determine the new value of this set. |
true if and only if code is a valid string code.
|
inline |
Returns the string code representing this boolean set.
String codes are a more human-readable alternative to byte codes; in particular, they are used in XML data files.
Every string code contains precisely two characters (plus a terminating null). Sets {}, {true}, {false} and {true, false} have string codes "--", "T-", "-F" and "TF" respectively.
|
friend |
Writes the given boolean set to the given output stream.
The set will be written in the form { true, false }, { true }, { false } or { }.
| out | the output stream to which to write. |
| set | the boolean set to write. |
|
static |
The set containing both true and false.
|
static |
The set containing only false.
false instead.
|
static |
The empty set.
|
static |
The set containing only true.
true instead.