• Main Page
  • Classes
  • Files
  • File List

SharedArray.h

00001 #ifndef SharedArray_H_
00002 #define SharedArray_H_
00003 
00004 #include <cstdlib>
00005 #include <vector>
00006 using std::vector;
00007 
00008 #include <boost/shared_ptr.hpp>
00009 
00010 typedef boost::shared_ptr<vector<double> > shared_dbl_vector_ptr;
00011 
00012 template<typename T>
00013 class SharedArray
00014 {
00015 public:
00016         SharedArray(const T v[], size_t size);
00017 
00018         SharedArray(const std::vector<T> &v = std::vector<T>());
00019 
00020         const T operator[] (size_t n) const;
00021 
00022         size_t size() const;
00023 
00024         const vector<T> * get() const
00025         {
00026                 return &el_vec;
00027         }
00028 
00029 protected:
00030         vector<T> el_vec;
00031 };
00032 
00033 template<typename T>
00034 SharedArray<T>::SharedArray(const T v[], size_t size)
00035         : el_vec(v,v+size)
00036 {}
00037 
00038 template<typename T>
00039 SharedArray<T>::SharedArray(const std::vector<T> &v)
00040   : el_vec(v){ }
00041 
00042 
00043 template<typename T>
00044 const T SharedArray<T>::operator[] (size_t n) const
00045 {
00046         return el_vec[n];
00047 }
00048 
00049 template<typename T>
00050 size_t SharedArray<T>::size() const
00051 {
00052         return el_vec.size();
00053 }
00054 
00055 
00056 #endif /*SharedArray_H_*/

Generated on Wed Sep 18 2013 11:25:40 for NEVESIM by  doxygen 1.7.1