diff -r 6d95c1a41e6e -r 63125c36de73 src/model.h --- a/src/model.h Tue Jun 14 17:55:50 2022 +0300 +++ b/src/model.h Tue Jun 14 19:50:31 2022 +0300 @@ -47,36 +47,6 @@ struct Empty {}; -template -struct transfer_reference -{ - using type = std::remove_reference_t; -}; - -template -struct transfer_reference -{ - using type = std::remove_reference_t&; -}; - -template -struct transfer_reference -{ - using type = const std::remove_reference_t&; -}; - -template -struct transfer_reference -{ - using type = std::remove_reference_t&&; -}; - -template -using transfer_reference_t = typename transfer_reference::type; -static_assert(std::is_same_v, char>); -static_assert(std::is_same_v, char&>); -static_assert(std::is_same_v, char&&>); - using ModelElement = std::variant< Colored, Colored, @@ -142,25 +112,25 @@ constexpr void visitPoints(Fn&& func, T&& element) { visitPolygon( - [&func](transfer_reference_t edge) + [&func](transfer_cvref_t edge) { func(edge.p1); func(edge.p2); }, - [&func](transfer_reference_t& tri) + [&func](transfer_cvref_t& tri) { func(tri.p1); func(tri.p2); func(tri.p3); }, - [&func](transfer_reference_t& quad) + [&func](transfer_cvref_t& quad) { func(quad.p1); func(quad.p2); func(quad.p3); func(quad.p4); }, - [&func](transfer_reference_t& cedge) + [&func](transfer_cvref_t& cedge) { func(cedge.p1); func(cedge.p2);