From: Marco Costalba Date: Mon, 9 Nov 2009 08:00:24 +0000 (+0100) Subject: Fix operator/(Score s, int i) X-Git-Url: https://git.sesse.net/?p=stockfish;a=commitdiff_plain;h=e05039156c61c9b36bdb34f2c163c80268f22bc7 Fix operator/(Score s, int i) And remove some useless declarations No functional change. Signed-off-by: Marco Costalba --- 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