#pragma once #include #include namespace MbD { template class Array : public std::vector { public: Array(){} Array(size_t count) : std::vector(count) {} Array(size_t count, const T& value) : std::vector(count, value) {} Array(std::initializer_list list) : std::vector{ list } {} void copy(std::shared_ptr> x); void zeroSelf(); }; template inline void Array::copy(std::shared_ptr> x) { for (int i = 0; i < x->size(); i++) { this->at(i) = x->at(i); } } template <> inline void Array::zeroSelf() { for (int i = 0; i < this->size(); i++) { this->at(i) = 0.0;; } } using ListD = std::initializer_list; using ListListD = std::initializer_list>; using ListListPairD = std::initializer_list>>; }