Listing 2 Accompanies file bitarr.h

//file: BitArr.cpp copyright 1994 by Siegfried Heintze
#include "BitArr.h"

ostream& operator<<(ostream& os, const BitArray & bv){
  for(int ii = bv.first(); ii<=bv.last(); ii++){
    os << bv[ii] << " ";
  }
  return os;
}

BitArray reverse(const BitArray& src){
  BitArray result(src);
  for(int ii = src.first(); ii<= src.last(); ii++)
    result[src.last()-ii] = src[ii];
  return result;
}

struct X{
  X(unsigned long x){
    cout<<"create X, x = "<<hex<<x;
  }
};
void f(const X&){
  cout<<" Fuction f"<<endl;
}

main(){
  cout << "begin"<<endl;
  
  BitArray x(1, 0x8aaa71b5ul);
  cout << reverse(x) << endl;
  x[3] = x[2] = x[1] = 1;
  cout << reverse(x) <<endl;
  
  const BitArray xx = x;
  f(xx[1]);
  
  BitArray y(4, 0x8aaa71b5ul);
  cout << reverse(y) << endl;
  y[7]=13
  y[1]=15;
  cout << reverse(y) << endl;
  
  BitArray z(16, 0x8aaa71b5ul);
  cout << reverse(z) << endl;
  z[1]=15;
  cout << reverse(z) << endl;
  
  return 0; }

// End of File