diff options
-rw-r--r-- | include/libcamera/internal/vector.h | 8 | ||||
-rw-r--r-- | src/libcamera/vector.cpp | 8 |
2 files changed, 14 insertions, 2 deletions
diff --git a/include/libcamera/internal/vector.h b/include/libcamera/internal/vector.h index a67a0947..4e9ef1ee 100644 --- a/include/libcamera/internal/vector.h +++ b/include/libcamera/internal/vector.h @@ -42,8 +42,12 @@ public: constexpr Vector(const std::array<T, Rows> &data) { - for (unsigned int i = 0; i < Rows; i++) - data_[i] = data[i]; + std::copy(data.begin(), data.end(), data_.begin()); + } + + constexpr Vector(const Span<const T, Rows> data) + { + std::copy(data.begin(), data.end(), data_.begin()); } const T &operator[](size_t i) const diff --git a/src/libcamera/vector.cpp b/src/libcamera/vector.cpp index 85ca2208..5567d5b8 100644 --- a/src/libcamera/vector.cpp +++ b/src/libcamera/vector.cpp @@ -45,6 +45,14 @@ LOG_DEFINE_CATEGORY(Vector) */ /** + * \fn Vector::Vector(const Span<const T, Rows> data) + * \brief Construct vector from supplied data + * \param data Data from which to construct a vector + * + * The size of \a data must be equal to the dimension size Rows of the vector. + */ + +/** * \fn T Vector::operator[](size_t i) const * \brief Index to an element in the vector * \param i Index of element to retrieve |