#ifndef _CASA_SAKURA_ALIGNED_ARRAY_H_ #define _CASA_SAKURA_ALIGNED_ARRAY_H_ #include #include #include //#include #include #include #include namespace casa { //# NAMESPACE CASA - BEGIN template class SakuraAlignedArray { public: SakuraAlignedArray(size_t num_data); SakuraAlignedArray(casacore::Vector const &in_vector); ~SakuraAlignedArray(); T *data() const {return data_;} casacore::Vector casaVector() const { return casacore::Vector(casacore::IPosition(1, num_data_), data_, casacore::SHARE); } private: void initialize(); size_t num_data_; // number of data to be stored void *storage_; // starting address of allocated memory (unaligned) T *data_; // pointer to aligned data }; } //# NAMESPACE CASA - END #include #endif /* _CASA_SAKURA_ALIGNED_ARRAY_H_ */