// This code implementation is the intellectual property of // the GEANT4 collaboration. // // By copying, distributing or modifying the Program (or any work // based on the Program) you indicate your acceptance of this statement, // and all its terms. // // $Id: tvvector.icc,v 1.4 2000/11/20 17:26:45 gcosmo Exp $ // GEANT4 tag $Name: geant4-03-01 $ // // //--------------------------------------------------------------- // GEANT 4 class header file // // G4RWTValVector //--------------------------------------------------------------- template G4RWTValVector::G4RWTValVector () : std_vector(), rwsize(0){} template G4RWTValVector::G4RWTValVector (size_t n) : std_vector(n,T()), rwsize(n){} template G4RWTValVector::G4RWTValVector (size_t n, const T& ival) : std_vector(n,ival), rwsize(n){} template G4RWTValVector::G4RWTValVector (const G4RWTValVector& ival) : std_vector(ival), rwsize(ival.rwsize){} template G4RWTValVector::~G4RWTValVector(){} template G4RWTValVector& G4RWTValVector::operator= (const G4RWTValVector& v) { std_vector::operator=(v); rwsize=v.rwsize; return *this; } template size_t G4RWTValVector::length() const { return std_vector::size(); } template T& G4RWTValVector::operator()(size_t i) { // temporarly commented; to allow use as left-value rwsize is increased // #ifdef G4DEBUG // if(i>=rwsize) // G4RWTHROW(G4RWBoundsErr("G4RWTValVector operator()",rwsize,i)); // #endif if(rwsize<=i && i const T& G4RWTValVector::operator()(size_t i) const { #ifdef G4DEBUG if(i>=rwsize) G4RWTHROW(G4RWBoundsErr("G4RWTValVector operator()",rwsize,i)); #endif return std_vector::operator[](i); } template T& G4RWTValVector::operator[](size_t i) { if(i>=rwsize) G4RWTHROW(G4RWBoundsErr("G4RWTValVector operator[]",rwsize,i)); return std_vector::operator[](i); } template const T& G4RWTValVector::operator[](size_t i) const { if(i>=rwsize) G4RWTHROW(G4RWBoundsErr("G4RWTValVector const operator[]",rwsize,i)); return std_vector::operator[](i); } template const T* G4RWTValVector::data() const { return &(std_vector::front()); } template void G4RWTValVector::resize(size_t N) { if(N>std_vector::size()) { size_t e=N-std_vector::size(); for(size_t i=0;i void G4RWTValVector::reshape(size_t n) { resize(n); } template const T& G4RWTValVector::ref(size_t i) const { return std_vector::operator[](i); }