diff --git a/src/OpenMesh/Core/Mesh/SmartRange.hh b/src/OpenMesh/Core/Mesh/SmartRange.hh index 5f925e0d..affaeb71 100644 --- a/src/OpenMesh/Core/Mesh/SmartRange.hh +++ b/src/OpenMesh/Core/Mesh/SmartRange.hh @@ -78,13 +78,13 @@ struct SmartRangeT * @param f Functor that is applied to all elements before computing the sum */ template - auto sum(Functor&& f) -> decltype (f(std::declval())+f(std::declval())) + auto sum(Functor&& f) -> decltype (f(std::declval())) { auto range = static_cast(this); auto begin = range->begin(); auto end = range->end(); assert(begin != end); - decltype (f(*begin) + f(*begin)) sum = f(*begin); + decltype (f(*begin)) sum = f(*begin); auto it = begin; ++it; for (; it != end; ++it) @@ -99,13 +99,13 @@ struct SmartRangeT * @param f Functor that is applied to all elements before computing the average. */ template - auto avg(Functor&& f) -> decltype (1.0 * (f(std::declval())+f(std::declval()))) + auto avg(Functor&& f) -> decltype (f(std::declval())) { auto range = static_cast(this); auto begin = range->begin(); auto end = range->end(); assert(begin != end); - decltype (f(*begin) + f(*begin)) sum = f(*begin); + decltype (f(*begin)) sum = f(*begin); auto it = begin; ++it; int n_elements = 1;