From 7698e54b188bba2010c85ecdc318d073748715b6 Mon Sep 17 00:00:00 2001 From: lisyarus Date: Sat, 16 Jan 2021 22:42:55 +0300 Subject: [PATCH] Support indexing zero-dimensional matrices --- libs/geom/include/psemek/geom/detail/array.hpp | 2 ++ libs/geom/include/psemek/geom/matrix.hpp | 4 ++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/libs/geom/include/psemek/geom/detail/array.hpp b/libs/geom/include/psemek/geom/detail/array.hpp index 0fb73944..53cf4895 100644 --- a/libs/geom/include/psemek/geom/detail/array.hpp +++ b/libs/geom/include/psemek/geom/detail/array.hpp @@ -27,6 +27,8 @@ namespace psemek::geom::detail { T const & operator[](std::size_t) const { throw empty_array_exception{}; } T & operator[](std::size_t) { throw empty_array_exception{}; } + + type operator + (std::size_t) const { return *this; } }; }; diff --git a/libs/geom/include/psemek/geom/matrix.hpp b/libs/geom/include/psemek/geom/matrix.hpp index 3f8d7059..2d99fb70 100644 --- a/libs/geom/include/psemek/geom/matrix.hpp +++ b/libs/geom/include/psemek/geom/matrix.hpp @@ -18,12 +18,12 @@ namespace psemek::geom detail::array::type coords; - T * operator[](std::size_t i) + auto operator[](std::size_t i) { return coords + C * i; } - T const * operator[](std::size_t i) const + auto operator[](std::size_t i) const { return coords + C * i; }