diff --git a/src/hb-algs.hh b/src/hb-algs.hh index 77382458d3dae19a80833481b194ff66d40a462d..9e8a4aeba50c1bd3d8669908ea1ceb43d3835c9e 100644 --- a/src/hb-algs.hh +++ b/src/hb-algs.hh @@ -163,11 +163,12 @@ struct { private: template auto - impl (T&& a, T2&& b) const HB_AUTO_RETURN (a <= b ? a : b) + impl (T&& a, T2&& b) const HB_AUTO_RETURN + (hb_forward (a) <= hb_forward (b) ? hb_forward (a) : hb_forward (b)) public: template auto - operator () (T&& a) const HB_AUTO_RETURN (a) + operator () (T&& a) const HB_AUTO_RETURN (hb_forward (a)) template auto operator () (T&& a, Ts&& ...ds) const HB_AUTO_RETURN @@ -178,11 +179,12 @@ struct { private: template auto - impl (T&& a, T2&& b) const HB_AUTO_RETURN (a >= b ? a : b) + impl (T&& a, T2&& b) const HB_AUTO_RETURN + (hb_forward (a) >= hb_forward (b) ? hb_forward (a) : hb_forward (b)) public: template auto - operator () (T&& a) const HB_AUTO_RETURN (a) + operator () (T&& a) const HB_AUTO_RETURN (hb_forward (a)) template auto operator () (T&& a, Ts&& ...ds) const HB_AUTO_RETURN