From 04e798920d57cc9117187e41cfe4dcc1567c48f1 Mon Sep 17 00:00:00 2001 From: Max Lyon Date: Thu, 28 Nov 2019 11:49:37 +0100 Subject: [PATCH] use decay instead of remove_reference to also remove constness in SmartRanges --- src/OpenMesh/Core/Mesh/SmartRange.hh | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/src/OpenMesh/Core/Mesh/SmartRange.hh b/src/OpenMesh/Core/Mesh/SmartRange.hh index 24b12f39..5f925e0d 100644 --- a/src/OpenMesh/Core/Mesh/SmartRange.hh +++ b/src/OpenMesh/Core/Mesh/SmartRange.hh @@ -161,10 +161,10 @@ struct SmartRangeT * the array will contain the handles. */ template - auto to_array(Functor&& f = {}) -> std::array()))>::type, n> + auto to_array(Functor&& f = {}) -> std::array()))>::type, n> { auto range = static_cast(this); - std::array()))>::type, n> res; + std::array()))>::type, n> res; auto it = range->begin(); auto end = range->end(); int i = 0; @@ -181,10 +181,10 @@ struct SmartRangeT * the vector will contain the handles. */ template - auto to_vector(Functor&& f = {}) -> std::vector()))>::type> + auto to_vector(Functor&& f = {}) -> std::vector()))>::type> { auto range = static_cast(this); - std::vector()))>::type> res; + std::vector()))>::type> res; for (const auto& e : *range) res.push_back(f(e)); return res; @@ -198,10 +198,10 @@ struct SmartRangeT * the set will contain the handles. */ template - auto to_set(Functor&& f = {}) -> std::set()))>::type> + auto to_set(Functor&& f = {}) -> std::set()))>::type> { auto range = static_cast(this); - std::set()))>::type> res; + std::set()))>::type> res; for (const auto& e : *range) res.insert(f(e)); return res; @@ -232,7 +232,7 @@ struct SmartRangeT * @param f Functor that is applied to all elements before computing minimum. */ template - auto min(Functor&& f) -> typename std::remove_reference()))>::type + auto min(Functor&& f) -> typename std::decay()))>::type { using std::min; @@ -241,7 +241,7 @@ struct SmartRangeT auto end = range->end(); assert(it != end); - typename std::remove_reference()))>::type res = f(*it); + typename std::decay()))>::type res = f(*it); ++it; for (; it != end; ++it) @@ -257,7 +257,7 @@ struct SmartRangeT * @param f Functor that is applied to all elements before computing maximum. */ template - auto max(Functor&& f) -> typename std::remove_reference()))>::type + auto max(Functor&& f) -> typename std::decay()))>::type { using std::max; @@ -266,7 +266,7 @@ struct SmartRangeT auto end = range->end(); assert(it != end); - typename std::remove_reference()))>::type res = f(*it); + typename std::decay()))>::type res = f(*it); ++it; for (; it != end; ++it) @@ -283,8 +283,8 @@ struct SmartRangeT * @param f Functor that is applied to all elements before computing maximum. */ template - auto minmax(Functor&& f) -> std::pair()))>::type, - typename std::remove_reference()))>::type> + auto minmax(Functor&& f) -> std::pair()))>::type, + typename std::decay()))>::type> { return std::make_pair(this->min(f), this->max(f)); }