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>

Inheritance diagram for Dune::BitSetVectorReference< block_size, Alloc >:
Inheritance graph

List of all members.

Public Types

typedef std::bitset< block_size > bitset
typedef size_t size_type
 size_type typedef (an unsigned integral type)

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.

Public Member Functions

BitSetVectorReferenceoperator= (bool b)
 Assignment from bool, sets each bit in the bitset to b.
BitSetVectorReferenceoperator= (const bitset &b)
 Assignment from bitset.
BitSetVectorReferenceoperator= (const BitSetVectorConstReference &b)
 Assignment from BitSetVectorConstReference.
BitSetVectorReferenceoperator= (const BitSetVectorReference &b)
 Assignment from BitSetVectorReference.
BitSetVectorReferenceoperator&= (const bitset &x)
 Bitwise and (for bitset).
BitSetVectorReferenceoperator&= (const BitSetVectorConstReference &x)
 Bitwise and (for BitSetVectorConstReference and BitSetVectorReference).
BitSetVectorReferenceoperator|= (const bitset &x)
 Bitwise inclusive or (for bitset).
BitSetVectorReferenceoperator|= (const BitSetVectorConstReference &x)
 Bitwise inclusive or (for BitSetVectorConstReference and BitSetVectorReference).
BitSetVectorReferenceoperator^= (const bitset &x)
 Bitwise exclusive or (for bitset).
BitSetVectorReferenceoperator^= (const BitSetVectorConstReference &x)
 Bitwise exclusive or (for BitSetVectorConstReference and BitSetVectorReference).
BitSetVectorReferenceoperator<<= (size_type n)
 Left shift.
BitSetVectorReferenceoperator>>= (size_type n)
 Right shift.
BitSetVectorReferenceset ()
BitSetVectorReferenceflip ()
 Flips the value of every bit.
BitSetVectorReferencereset ()
 Clears every bit.
BitSetVectorReferenceset (size_type n, int val=1)
 Sets bit n if val is nonzero, and clears bit n if val is zero.
BitSetVectorReferencereset (size_type n)
 Clears bit n.
BitSetVectorReferenceflip (size_type n)
 Flips bit n.
reference operator[] (size_type i)
bitset operator<< (size_type n) const
 Returns a copy of *this shifted left by n bits.
bitset operator>> (size_type n) const
 Returns a copy of *this shifted right by n bits.
bitset operator~ () const
 Returns a copy of *this with all of its bits flipped.
size_type size () const
 Returns block_size.
size_type count () const
 Returns the number of bits that are set.
bool any () const
 Returns true if any bits are set.
bool none () const
 Returns true if no bits are set.
bool test (size_type n) const
 Returns true if bit n is set.
const_reference operator[] (size_type i) const
 operator bitset () const
 cast to bitset
bool operator== (const bitset &bs) const
 Equality of reference and std::bitset.
bool operator== (const BitSetVectorConstReference &bs) const
 Equality of reference and other reference.
bool operator!= (const bitset &bs) const
 Inequality of reference and std::bitset.
bool operator!= (const BitSetVectorConstReference &bs) const
 Inequality of reference and other reference.

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
template<class BS >
bool equals (const BS &bs) const

Protected Attributes

BitSetVectorblockBitField
int block_number

Friends

class Dune::BitSetVector< block_size, Alloc >
std::ostream & operator<< (std::ostream &s, const BitSetVectorConstReference &v)

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

template<int block_size, class Alloc >
typedef std::bitset<block_size> Dune::BitSetVectorReference< block_size, Alloc >::bitset
template<int block_size, class Alloc >
typedef Dune::BitSetVector<block_size, Alloc> Dune::BitSetVectorReference< block_size, Alloc >::BitSetVector [protected]
template<int block_size, class Alloc >
typedef Dune::BitSetVectorConstReference<block_size,Alloc> Dune::BitSetVectorReference< block_size, Alloc >::BitSetVectorConstReference [protected]
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.

Reimplemented from Dune::BitSetVectorConstReference< block_size, Alloc >.

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.

Reimplemented from Dune::BitSetVectorConstReference< block_size, Alloc >.

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

size_type typedef (an unsigned integral type)

Reimplemented from Dune::BitSetVectorConstReference< block_size, Alloc >.


Constructor & Destructor Documentation

template<int block_size, class Alloc >
Dune::BitSetVectorReference< block_size, Alloc >::BitSetVectorReference ( BitSetVector blockBitField,
int  block_number 
) [inline, protected]

Member Function Documentation

template<int block_size, class Alloc >
bool Dune::BitSetVectorConstReference< block_size, Alloc >::any (  )  const [inline, inherited]
template<int block_size, class Alloc >
size_type Dune::BitSetVectorConstReference< block_size, Alloc >::count (  )  const [inline, inherited]
template<int block_size, class Alloc >
template<class BS >
bool Dune::BitSetVectorConstReference< block_size, Alloc >::equals ( const BS &  bs  )  const [inline, protected, inherited]
template<int block_size, class Alloc >
BitSetVectorReference& Dune::BitSetVectorReference< block_size, Alloc >::flip ( size_type  n  )  [inline]
template<int block_size, class Alloc >
BitSetVectorReference& Dune::BitSetVectorReference< block_size, Alloc >::flip (  )  [inline]

Flips the value of every bit.

template<int block_size, class Alloc >
const_reference Dune::BitSetVectorConstReference< block_size, Alloc >::getBit ( size_type  i  )  const [inline, protected, inherited]
template<int block_size, class Alloc >
reference Dune::BitSetVectorReference< block_size, Alloc >::getBit ( size_type  i  )  [inline, protected]
template<int block_size, class Alloc >
bool Dune::BitSetVectorConstReference< block_size, Alloc >::none (  )  const [inline, inherited]

Returns true if no bits are set.

References Dune::BitSetVectorConstReference< block_size, Alloc >::any().

template<int block_size, class Alloc >
Dune::BitSetVectorConstReference< block_size, Alloc >::operator bitset (  )  const [inline, inherited]
template<int block_size, class Alloc >
bool Dune::BitSetVectorConstReference< block_size, Alloc >::operator!= ( const BitSetVectorConstReference< block_size, Alloc > &  bs  )  const [inline, inherited]

Inequality of reference and other reference.

References Dune::BitSetVectorConstReference< block_size, Alloc >::equals().

template<int block_size, class Alloc >
bool Dune::BitSetVectorConstReference< block_size, Alloc >::operator!= ( const bitset bs  )  const [inline, inherited]

Inequality of reference and std::bitset.

References Dune::BitSetVectorConstReference< block_size, Alloc >::equals().

template<int block_size, class Alloc >
BitSetVectorReference& Dune::BitSetVectorReference< block_size, Alloc >::operator&= ( const BitSetVectorConstReference x  )  [inline]
template<int block_size, class Alloc >
BitSetVectorReference& Dune::BitSetVectorReference< block_size, Alloc >::operator&= ( const bitset x  )  [inline]
template<int block_size, class Alloc >
bitset Dune::BitSetVectorConstReference< block_size, Alloc >::operator<< ( size_type  n  )  const [inline, inherited]

Returns a copy of *this shifted left by n bits.

template<int block_size, class Alloc >
BitSetVectorReference& Dune::BitSetVectorReference< block_size, Alloc >::operator<<= ( size_type  n  )  [inline]
template<int block_size, class Alloc >
BitSetVectorReference& Dune::BitSetVectorReference< block_size, Alloc >::operator= ( const BitSetVectorReference< block_size, Alloc > &  b  )  [inline]
template<int block_size, class Alloc >
BitSetVectorReference& Dune::BitSetVectorReference< block_size, Alloc >::operator= ( const BitSetVectorConstReference b  )  [inline]
template<int block_size, class Alloc >
BitSetVectorReference& Dune::BitSetVectorReference< block_size, Alloc >::operator= ( const bitset b  )  [inline]
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.

References Dune::BitSetVectorReference< block_size, Alloc >::getBit().

template<int block_size, class Alloc >
bool Dune::BitSetVectorConstReference< block_size, Alloc >::operator== ( const BitSetVectorConstReference< block_size, Alloc > &  bs  )  const [inline, inherited]

Equality of reference and other reference.

References Dune::BitSetVectorConstReference< block_size, Alloc >::equals().

template<int block_size, class Alloc >
bool Dune::BitSetVectorConstReference< block_size, Alloc >::operator== ( const bitset bs  )  const [inline, inherited]

Equality of reference and std::bitset.

References Dune::BitSetVectorConstReference< block_size, Alloc >::equals().

template<int block_size, class Alloc >
bitset Dune::BitSetVectorConstReference< block_size, Alloc >::operator>> ( size_type  n  )  const [inline, inherited]

Returns a copy of *this shifted right by n bits.

template<int block_size, class Alloc >
BitSetVectorReference& Dune::BitSetVectorReference< block_size, Alloc >::operator>>= ( size_type  n  )  [inline]
template<int block_size, class Alloc >
const_reference Dune::BitSetVectorConstReference< block_size, Alloc >::operator[] ( size_type  i  )  const [inline, inherited]
template<int block_size, class Alloc >
reference Dune::BitSetVectorReference< block_size, Alloc >::operator[] ( size_type  i  )  [inline]
template<int block_size, class Alloc >
BitSetVectorReference& Dune::BitSetVectorReference< block_size, Alloc >::operator^= ( const BitSetVectorConstReference x  )  [inline]
template<int block_size, class Alloc >
BitSetVectorReference& Dune::BitSetVectorReference< block_size, Alloc >::operator^= ( const bitset x  )  [inline]
template<int block_size, class Alloc >
BitSetVectorReference& Dune::BitSetVectorReference< block_size, Alloc >::operator|= ( const BitSetVectorConstReference x  )  [inline]
template<int block_size, class Alloc >
BitSetVectorReference& Dune::BitSetVectorReference< block_size, Alloc >::operator|= ( const bitset x  )  [inline]
template<int block_size, class Alloc >
bitset Dune::BitSetVectorConstReference< block_size, Alloc >::operator~ (  )  const [inline, inherited]

Returns a copy of *this with all of its bits flipped.

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

Clears bit n.

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

Clears every bit.

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.

References Dune::BitSetVectorReference< block_size, Alloc >::getBit().

template<int block_size, class Alloc >
BitSetVectorReference& Dune::BitSetVectorReference< block_size, Alloc >::set (  )  [inline]
template<int block_size, class Alloc >
size_type Dune::BitSetVectorConstReference< block_size, Alloc >::size (  )  const [inline, inherited]

Returns block_size.

template<int block_size, class Alloc >
bool Dune::BitSetVectorConstReference< block_size, Alloc >::test ( size_type  n  )  const [inline, inherited]

Friends And Related Function Documentation

template<int block_size, class Alloc >
friend class Dune::BitSetVector< block_size, Alloc > [friend]
template<int block_size, class Alloc >
std::ostream& operator<< ( std::ostream &  s,
const BitSetVectorConstReference< block_size, Alloc > &  v 
) [friend, inherited]

missing operators:

  • unsigned long to_ulong() const

Member Data Documentation

template<int block_size, class Alloc >
int Dune::BitSetVectorConstReference< block_size, Alloc >::block_number [protected, inherited]
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:
Generated on Mon Apr 26 10:45:23 2010 for dune-common by  doxygen 1.6.3