00001 #ifndef _CTBcarray2d_HXX
00002 #define _CTBcarray2d_HXX 1
00003
00008
00009
00010
00011
00012
00013
00014
00015
00016 #include "CTBmatrixDsc.hxx"
00017
00018 template <class T, CTBint DIM1, CTBint DIM2>
00019 class CTBcarray2d {
00020 public:
00021
00022 CTBcarray2d();
00023
00024 explicit CTBcarray2d(T rhs);
00025
00026 CTBcarray2d(const CTBcarray2d<T,DIM1,DIM2>& rhs);
00027
00028 T* operator[](CTBint i_row);
00029 const T* operator[](CTBint i_row) const;
00030
00031 T& operator()(CTBint i_row, CTBint i_col);
00032 const T& operator()(CTBint i_row, CTBint i_col) const;
00033
00034 #ifdef never
00035 operator T*();
00036 operator const T*() const;
00037 #endif
00038 operator CTBmatrixDsc<T>();
00039 operator CTBmatrixCDsc<T>() const;
00040
00041 CTBcarray2d<T,DIM1,DIM2>& operator=(T rhs);
00042 CTBcarray2d<T,DIM1,DIM2>& operator=(const CTBcarray2d<T,DIM1,DIM2>& rhs);
00043
00044 protected:
00045
00046 T m_data[DIM1][DIM2];
00047 };
00048
00049 template <class T, CTBint DIM1, CTBint DIM2>
00050 ostream& operator<<(ostream& os, const CTBcarray2d<T,DIM1,DIM2>& obj);
00051
00052
00053 #include "CTBcarray2d.icc"
00054
00055 #endif