00001 00006 //------------------------------------------------------------- 00007 // Kurt F Garloff, 08/2000 00008 // $Id: vector_sig.h,v 1.2.2.7 2006/08/14 18:43:05 garloff Exp $ 00009 //------------------------------------------------------------- 00010 00011 00012 #ifndef TBCI_VECTOR_SIG_H 00013 #define TBCI_VECTOR_SIG_H 00014 00015 #include "basics.h" 00016 00017 #ifdef PRAGMA_I 00018 # pragma interface "vector_sig.h" 00019 #endif 00020 00021 NAMESPACE_TBCI 00022 00023 template <typename T> class BVector_Sig; 00024 template <typename T> class Vector_Sig; 00025 template <typename T> class TVector; 00026 template <typename T> class Vector; 00027 00040 template <typename T> 00041 class BVector_Sig 00042 { 00043 public: 00044 // de/constructor 00045 BVector_Sig () {} 00046 BVector_Sig (const unsigned long) {} 00047 /*virtual*/ ~BVector_Sig () {} 00048 00049 // access 00050 T& operator () (const unsigned long); 00051 typename tbci_traits<T>::const_refval_type \ 00052 operator () (const unsigned long) const; 00053 00054 unsigned long size () const; 00055 BVector_Sig<T>& fill (const T&); 00056 BVector_Sig<T>& clear (); 00057 //{ return this->fill ((T)0); } 00058 00059 // available for all vectors 00060 bool operator == (const BVector_Sig<T>&) const; 00061 bool operator != (const BVector_Sig<T>&) const; 00062 00063 00064 // static function 00065 static const char* vec_info(); 00066 }; 00067 00071 template <typename T> 00072 class Vector_Sig : public BVector_Sig<T> 00073 { 00074 public: 00075 // de/constructor 00076 Vector_Sig () {} 00077 Vector_Sig (const unsigned); 00078 /* virtual */ ~Vector_Sig () {} 00079 00080 // put arithmetic abilities here 00081 Vector_Sig<T> operator + (const Vector_Sig<T>&) const; 00082 Vector_Sig<T> operator - (const Vector_Sig<T>&) const; 00083 Vector_Sig<T> operator * (const T&) const; 00084 Vector_Sig<T> operator / (const T&) const; 00085 00086 Vector_Sig<T>& operator += (const Vector_Sig<T>&); 00087 Vector_Sig<T>& operator -= (const Vector_Sig<T>&); 00088 Vector_Sig<T>& operator *= (const T&); 00089 Vector_Sig<T>& operator /= (const T&); 00090 00091 bool operator <= (const Vector_Sig<T>&) const; 00092 bool operator >= (const Vector_Sig<T>&) const; 00093 bool operator < (const Vector_Sig<T>&) const; 00094 bool operator > (const Vector_Sig<T>&) const; 00095 }; 00096 00097 NAMESPACE_END 00098 00099 #endif /* TBCI_VECTOR_SIG_H */
1.5.6