From 5fb52129b9e3fbb4114ddcfd03699fcd318d555d Mon Sep 17 00:00:00 2001 From: namark <namark@disroot.org> Date: Sun, 18 Jul 2021 01:23:08 +0400 Subject: [PATCH] Proper explicit construction in range split function, only recently learned that T x = stuff; is implicit, world shattered, also vector operators are now more permissive so don't need to be so explicit with bool anymore. --- source/utils.hpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/source/utils.hpp b/source/utils.hpp index 29142c1..41116be 100644 --- a/source/utils.hpp +++ b/source/utils.hpp @@ -28,21 +28,21 @@ std::array<range<T>,N> split(const range<T> whole, M mask) { std::array<range<T>, N> pieces{}; T size = whole.upper() - whole.lower(); - T piece_size = size / N; - T remainder = size % N; + auto piece_size = T{size / N}; + auto remainder = T{size % N}; auto lower = whole.lower(); for(size_t i = 0; i < N; ++i) { auto& piece = pieces[i]; - piece = range<T>{lower, lower + piece_size + T{remainder --> T{}}}; + piece = range<T>{lower, lower + piece_size + (remainder --> T{})}; lower = piece.upper(); // apply mask for(size_t j = 0; j < piece.bounds.size(); ++j) { - piece.bounds[j] *= T{mask}; - piece.bounds[j] += whole.bounds[j] * T{~mask}; + piece.bounds[j] *= mask; + piece.bounds[j] += whole.bounds[j] * ~mask; } } -- GitLab