Hello, i wrote such code.
But such destructor doesn't work. How should i make this correct?
Code:
template <typename T> class CyclicalArray { private: T* mem_ptr; public: CyclicalArray(size_t capacity, const T& default_value) { this->default_value = default_value; this->capacity = capacity; head_index = 0; mem_ptr = ::new T[capacity]; //memory allocating for(T* p = mem_ptr; p < mem_ptr + capacity * sizeof(T); p += sizeof(T)) { ::new (p) T (default_value); //initialization } } ~CyclicalArray() { for(T* p = mem_ptr + sizeof(T); p < mem_ptr + capacity * sizeof(T); p += sizeof(T)) { p->~T(); } delete[] mem_ptr; }
Comment