#ifdef MEMORY_T_HPP template MemoryT::MemoryT(const MemoryT& rhs) : MemoryT(rhs.size_) { memcpy(data_, rhs.data_, rhs.size_.size * sizeof(T)); } template template MemoryT::MemoryT(const MemoryT& rhs) : MemoryT({ rhs.size_.size }) { for (size_t i = 0; i < size_.size; ++i) data_[i] = static_cast(rhs.data_[i]); } template<> template MemoryT::MemoryT(const MemoryT& rhs) : MemoryT({ rhs.size_.size }) { for (size_t i = 0; i < size_.size; ++i) data_[i] = std::to_string(rhs.data_[i]); } template template MemoryT MemoryT::to(void) { return MemoryT(*this); } template MemoryT::MemoryT(MemoryT&& rhs) : data_(rhs.data_), size_(std::move(rhs.size_)) { rhs.data_ = nullptr; rhs.size_size = 0; } #endif