# bm::bvector< Alloc >::reference Class Reference
[The Main bvector<> Group]

Class reference implements an object for bit assignment. More...

`#include <bm.h>`

## Public Member Functions

| reference (bvector< Alloc > &bv, bm::id_t position)
| reference (const reference &ref)
| operator bool () const
const reference & | operator= (const reference &ref) const
const reference & | operator= (bool value) const
bool | operator== (const reference &ref) const
const reference & | operator&= (bool value) const
const reference & | operator|= (bool value) const
const reference & | operator^= (bool value) const
bool | operator! () const
bool | operator~ () const
reference & | flip ()

## Detailed Description

### template<class Alloc>
class bm::bvector< Alloc >::reference

Class reference implements an object for bit assignment.

Since C++ does not provide with build-in bit type supporting l-value operations we have to emulate it.

Definition at line 140 of file bm.h.

## Constructor & Destructor Documentation

template<class Alloc>

bm::bvector< Alloc >::reference::reference | ( | bvector< Alloc > & | bv,
|  | bm::id_t | position |
| ) |  |  | `[inline]`

Definition at line 143 of file bm.h.

template<class Alloc>

bm::bvector< Alloc >::reference::reference | ( | const reference & | ref | ) | `[inline]`

Definition at line 148 of file bm.h.

## Member Function Documentation

template<class Alloc>

reference& bm::bvector< Alloc >::reference::flip | ( |  | ) | `[inline]`

Negates the bit value

Definition at line 214 of file bm.h.

template<class Alloc>

bm::bvector< Alloc >::reference::operator bool | ( |  | ) | const`[inline]`

Definition at line 155 of file bm.h.

template<class Alloc>

bool bm::bvector< Alloc >::reference::operator! | ( |  | ) | const`[inline]`

Logical Not operator

Definition at line 202 of file bm.h.

template<class Alloc>

const reference& bm::bvector< Alloc >::reference::operator&= | ( | bool | value | ) | const`[inline]`

Bitwise AND. Performs operation: bit = bit AND value

Definition at line 178 of file bm.h.

template<class Alloc>

const reference& bm::bvector< Alloc >::reference::operator= | ( | bool | value | ) | const`[inline]`

Definition at line 166 of file bm.h.

template<class Alloc>

const reference& bm::bvector< Alloc >::reference::operator= | ( | const reference & | ref | ) | const`[inline]`

Definition at line 160 of file bm.h.

template<class Alloc>

bool bm::bvector< Alloc >::reference::operator== | ( | const reference & | ref | ) | const`[inline]`

Definition at line 172 of file bm.h.

template<class Alloc>

const reference& bm::bvector< Alloc >::reference::operator^= | ( | bool | value | ) | const`[inline]`

Bitwise exclusive-OR (XOR). Performs operation: bit = bit XOR value

Definition at line 195 of file bm.h.

template<class Alloc>

const reference& bm::bvector< Alloc >::reference::operator|= | ( | bool | value | ) | const`[inline]`

Bitwise OR. Performs operation: bit = bit OR value

Definition at line 185 of file bm.h.

template<class Alloc>

bool bm::bvector< Alloc >::reference::operator~ | ( |  | ) | const`[inline]`

Bit Not operator

Definition at line 208 of file bm.h.

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

- bm.h