dune-common  2.6-git
Public Types | Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes | List of all members
Dune::BitSetVectorReference< block_size, Alloc > Class Template Reference

A proxy class that acts as a mutable reference to a single bitset in a BitSetVector. More...

#include <dune/common/bitsetvector.hh>

Public Types

typedef std::bitset< block_size > bitset
 
typedef size_t size_type
 size_type typedef (an unsigned integral type) More...
 
typedef std::vector< bool, Alloc >::reference reference
 
typedef std::vector< bool, Alloc >::const_reference const_reference
 A proxy class that acts as a const reference to a single bit. More...
 

Public Member Functions

BitSetVectorReferenceoperator= (bool b)
 Assignment from bool, sets each bit in the bitset to b. More...
 
BitSetVectorReferenceoperator= (const bitset &b)
 Assignment from bitset. More...
 
BitSetVectorReferenceoperator= (const BitSetVectorConstReference &b)
 Assignment from BitSetVectorConstReference. More...
 
BitSetVectorReferenceoperator= (const BitSetVectorReference &b)
 Assignment from BitSetVectorReference. More...
 
BitSetVectorReferenceoperator&= (const bitset &x)
 Bitwise and (for bitset). More...
 
BitSetVectorReferenceoperator&= (const BitSetVectorConstReference &x)
 Bitwise and (for BitSetVectorConstReference and BitSetVectorReference) More...
 
BitSetVectorReferenceoperator|= (const bitset &x)
 Bitwise inclusive or (for bitset) More...
 
BitSetVectorReferenceoperator|= (const BitSetVectorConstReference &x)
 Bitwise inclusive or (for BitSetVectorConstReference and BitSetVectorReference) More...
 
BitSetVectorReferenceoperator^= (const bitset &x)
 Bitwise exclusive or (for bitset). More...
 
BitSetVectorReferenceoperator^= (const BitSetVectorConstReference &x)
 Bitwise exclusive or (for BitSetVectorConstReference and BitSetVectorReference) More...
 
BitSetVectorReferenceoperator<<= (size_type n)
 Left shift. More...
 
BitSetVectorReferenceoperator>>= (size_type n)
 Right shift. More...
 
BitSetVectorReferenceset ()
 
BitSetVectorReferenceflip ()
 Flips the value of every bit. More...
 
BitSetVectorReferencereset ()
 Clears every bit. More...
 
BitSetVectorReferenceset (size_type n, int val=1)
 Sets bit n if val is nonzero, and clears bit n if val is zero. More...
 
BitSetVectorReferencereset (size_type n)
 Clears bit n. More...
 
BitSetVectorReferenceflip (size_type n)
 Flips bit n. More...
 
reference operator[] (size_type i)
 
bool test (size_type n) const
 Returns true if bit n is set. More...
 

Protected Types

typedef Dune::BitSetVector< block_size, Alloc > BitSetVector
 
typedef Dune::BitSetVectorConstReference< block_size, Alloc > BitSetVectorConstReference
 

Protected Member Functions

 BitSetVectorReference (BitSetVector &blockBitField_, int block_number_)
 
reference getBit (size_type i)
 
const_reference getBit (size_type i) const
 

Protected Attributes

BitSetVectorblockBitField
 

Detailed Description

template<int block_size, class Alloc>
class Dune::BitSetVectorReference< block_size, Alloc >

A proxy class that acts as a mutable reference to a single bitset in a BitSetVector.

It contains an assignment operator from std::bitset. It inherits the const std::bitset interface provided by BitSetVectorConstReference and adds most of the non-const methods of std::bitset.

Warning
As this is only a proxy class, you can not get the address of the bitset.

Member Typedef Documentation

◆ bitset

template<int block_size, class Alloc >
typedef std::bitset<block_size> Dune::BitSetVectorReference< block_size, Alloc >::bitset

◆ BitSetVector

template<int block_size, class Alloc >
typedef Dune::BitSetVector<block_size, Alloc> Dune::BitSetVectorReference< block_size, Alloc >::BitSetVector
protected

◆ BitSetVectorConstReference

template<int block_size, class Alloc >
typedef Dune::BitSetVectorConstReference<block_size,Alloc> Dune::BitSetVectorReference< block_size, Alloc >::BitSetVectorConstReference
protected

◆ const_reference

template<int block_size, class Alloc >
typedef std::vector<bool, Alloc>::const_reference Dune::BitSetVectorReference< block_size, Alloc >::const_reference

A proxy class that acts as a const reference to a single bit.

◆ reference

template<int block_size, class Alloc >
typedef std::vector<bool, Alloc>::reference Dune::BitSetVectorReference< block_size, Alloc >::reference

bitset interface typedefs

A proxy class that acts as a reference to a single bit.

◆ size_type

template<int block_size, class Alloc >
typedef size_t Dune::BitSetVectorReference< block_size, Alloc >::size_type

size_type typedef (an unsigned integral type)

Constructor & Destructor Documentation

◆ BitSetVectorReference()

template<int block_size, class Alloc >
Dune::BitSetVectorReference< block_size, Alloc >::BitSetVectorReference ( BitSetVector blockBitField_,
int  block_number_ 
)
inlineprotected

Member Function Documentation

◆ flip() [1/2]

template<int block_size, class Alloc >
BitSetVectorReference& Dune::BitSetVectorReference< block_size, Alloc >::flip ( )
inline

Flips the value of every bit.

◆ flip() [2/2]

template<int block_size, class Alloc >
BitSetVectorReference& Dune::BitSetVectorReference< block_size, Alloc >::flip ( size_type  n)
inline

Flips bit n.

◆ getBit() [1/2]

template<int block_size, class Alloc >
reference Dune::BitSetVectorReference< block_size, Alloc >::getBit ( size_type  i)
inlineprotected

◆ getBit() [2/2]

template<int block_size, class Alloc >
const_reference Dune::BitSetVectorConstReference< block_size, Alloc >::getBit
inlineprotected

◆ operator&=() [1/2]

template<int block_size, class Alloc >
BitSetVectorReference& Dune::BitSetVectorReference< block_size, Alloc >::operator&= ( const bitset x)
inline

Bitwise and (for bitset).

◆ operator&=() [2/2]

template<int block_size, class Alloc >
BitSetVectorReference& Dune::BitSetVectorReference< block_size, Alloc >::operator&= ( const BitSetVectorConstReference x)
inline

◆ operator<<=()

template<int block_size, class Alloc >
BitSetVectorReference& Dune::BitSetVectorReference< block_size, Alloc >::operator<<= ( size_type  n)
inline

Left shift.

◆ operator=() [1/4]

template<int block_size, class Alloc >
BitSetVectorReference& Dune::BitSetVectorReference< block_size, Alloc >::operator= ( bool  b)
inline

Assignment from bool, sets each bit in the bitset to b.

◆ operator=() [2/4]

template<int block_size, class Alloc >
BitSetVectorReference& Dune::BitSetVectorReference< block_size, Alloc >::operator= ( const bitset b)
inline

Assignment from bitset.

◆ operator=() [3/4]

template<int block_size, class Alloc >
BitSetVectorReference& Dune::BitSetVectorReference< block_size, Alloc >::operator= ( const BitSetVectorConstReference b)
inline

Assignment from BitSetVectorConstReference.

◆ operator=() [4/4]

template<int block_size, class Alloc >
BitSetVectorReference& Dune::BitSetVectorReference< block_size, Alloc >::operator= ( const BitSetVectorReference< block_size, Alloc > &  b)
inline

Assignment from BitSetVectorReference.

◆ operator>>=()

template<int block_size, class Alloc >
BitSetVectorReference& Dune::BitSetVectorReference< block_size, Alloc >::operator>>= ( size_type  n)
inline

Right shift.

◆ operator[]()

template<int block_size, class Alloc >
reference Dune::BitSetVectorReference< block_size, Alloc >::operator[] ( size_type  i)
inline

◆ operator^=() [1/2]

template<int block_size, class Alloc >
BitSetVectorReference& Dune::BitSetVectorReference< block_size, Alloc >::operator^= ( const bitset x)
inline

Bitwise exclusive or (for bitset).

◆ operator^=() [2/2]

template<int block_size, class Alloc >
BitSetVectorReference& Dune::BitSetVectorReference< block_size, Alloc >::operator^= ( const BitSetVectorConstReference x)
inline

Bitwise exclusive or (for BitSetVectorConstReference and BitSetVectorReference)

◆ operator|=() [1/2]

template<int block_size, class Alloc >
BitSetVectorReference& Dune::BitSetVectorReference< block_size, Alloc >::operator|= ( const bitset x)
inline

Bitwise inclusive or (for bitset)

◆ operator|=() [2/2]

template<int block_size, class Alloc >
BitSetVectorReference& Dune::BitSetVectorReference< block_size, Alloc >::operator|= ( const BitSetVectorConstReference x)
inline

Bitwise inclusive or (for BitSetVectorConstReference and BitSetVectorReference)

◆ reset() [1/2]

template<int block_size, class Alloc >
BitSetVectorReference& Dune::BitSetVectorReference< block_size, Alloc >::reset ( )
inline

Clears every bit.

◆ reset() [2/2]

template<int block_size, class Alloc >
BitSetVectorReference& Dune::BitSetVectorReference< block_size, Alloc >::reset ( size_type  n)
inline

Clears bit n.

◆ set() [1/2]

template<int block_size, class Alloc >
BitSetVectorReference& Dune::BitSetVectorReference< block_size, Alloc >::set ( )
inline

◆ set() [2/2]

template<int block_size, class Alloc >
BitSetVectorReference& Dune::BitSetVectorReference< block_size, Alloc >::set ( size_type  n,
int  val = 1 
)
inline

Sets bit n if val is nonzero, and clears bit n if val is zero.

◆ test()

template<int block_size, class Alloc >
bool Dune::BitSetVectorConstReference< block_size, Alloc >::test
inline

Returns true if bit n is set.

Member Data Documentation

◆ blockBitField

template<int block_size, class Alloc >
BitSetVector& Dune::BitSetVectorReference< block_size, Alloc >::blockBitField
protected

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