From e05039156c61c9b36bdb34f2c163c80268f22bc7 Mon Sep 17 00:00:00 2001 From: Marco Costalba Date: Mon, 9 Nov 2009 09:00:24 +0100 Subject: [PATCH] Fix operator/(Score s, int i) And remove some useless declarations No functional change. Signed-off-by: Marco Costalba --- src/value.h | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/src/value.h b/src/value.h index 03ae24b7..3d23f505 100644 --- a/src/value.h +++ b/src/value.h @@ -68,20 +68,14 @@ inline Score operator-(Score s1, Score s2) { return Score(int(s1) - int(s2)); } inline void operator+=(Score& s1, Score s2) { s1 = Score(int(s1) + int(s2)); } inline void operator-=(Score& s1, Score s2) { s1 = Score(int(s1) - int(s2)); } inline Score operator*(int i, Score s) { return Score(i * int(s)); } -inline Score operator/(Score s, int i) { return Score(int(s) / i); } + +// Division must be handled separately for each term +inline Score operator/(Score s, int i) { return make_score(mg_value(s) / i, eg_value(s) / i); } // Only declared but not defined. We don't want to multiply two scores due to // a very high risk of overflow. So user should explicitly convert to integer. inline Score operator*(Score s1, Score s2); -// Following are only declared to prevent erroneus instantations -inline Score operator*(Score s, int i); -inline Score operator/(Score s1, Score s2); -inline Score operator+(Score s, int i); -inline Score operator+(int i, Score s); -inline Score operator-(Score s, int i); -inline Score operator-(int i, Score s); - //// //// Constants and variables -- 2.39.2