71 data_array(
const std::size_t n) noexcept : m_size(n) {
72 data = m_size == 0 ? nullptr :
new T[m_size];
75 data_array(
const std::size_t n,
const T& v) noexcept : m_size(n) {
76 data = m_size == 0 ? nullptr :
new T[m_size];
80 ~data_array() noexcept {
87 data_array(
const data_array& d) : m_size(d.m_size) {
88 data = m_size == 0 ? nullptr :
new T[m_size];
89 std::copy(d.begin(), d.end(), begin());
92 data_array& operator= (
const data_array& d) {
93 if (m_size != d.m_size) {
98 std::copy(d.begin(), d.end(), begin());
103 data_array(data_array&& d) noexcept : m_size(d.m_size) {
111 data_array& operator= (data_array&& d) {
125 inline constexpr std::size_t size() const noexcept {
return m_size; }
128 [[nodiscard]]
inline T& operator[] (
const std::size_t i)
noexcept {
135 inline const T& operator[] (
const std::size_t i)
const noexcept {
143 inline void fill(
const T& v)
noexcept {
144 std::fill(&data[0], &data[m_size], v);
148 [[nodiscard]]
inline T *begin() {
return &data[0]; }
149 [[nodiscard]]
inline T *end() {
return &data[m_size]; }
152 [[nodiscard]]
inline const T *begin()
const {
return &data[0]; }
153 [[nodiscard]]
inline const T *end()
const {
return &data[m_size]; }
Main namespace of the library.
Definition definitions.hpp:48