From cdfd266cab08b866624123cca7c5b203026854cd Mon Sep 17 00:00:00 2001 From: Hans-Christian Ebke Date: Thu, 19 Nov 2015 17:32:11 +0100 Subject: [PATCH] C++11: Using std::inner_product for VectorT::operator|. --- src/OpenMesh/Core/Geometry/Vector11T.hh | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/src/OpenMesh/Core/Geometry/Vector11T.hh b/src/OpenMesh/Core/Geometry/Vector11T.hh index 4d8792aa..fe0b92b2 100644 --- a/src/OpenMesh/Core/Geometry/Vector11T.hh +++ b/src/OpenMesh/Core/Geometry/Vector11T.hh @@ -376,13 +376,10 @@ class VectorT { /// \see OpenMesh::dot template auto operator|(const VectorT& _rhs) const -> - decltype(this->values_[0] * _rhs[0]) { + decltype(*data() * *_rhs.data()) { - auto p = values_[0] * _rhs[0]; - for (int i = 1; i < DIM; ++i) { - p += values_[i] * _rhs[i]; - } - return p; + return std::inner_product(data() + 1, data() + DIM, _rhs.data() + 1, + *data() * *_rhs.data()); } //------------------------------------------------------------ euclidean norm