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