List: limits are const again, added static_asserts requiring integral types for INDEX and SUBDEX.
List: limits are const again, added static_asserts requiring integral types for INDEX and SUBDEX.

--- a/include/boilerplate.hpp
+++ b/include/boilerplate.hpp
@@ -159,6 +159,8 @@
 template <typename T, typename INDEX_TYPE, typename SUBDEX_TYPE, SUBDEX_TYPE _DEFAULT_MAX_BUCKETS, SUBDEX_TYPE _DEFAULT_ITEMS_PER_BUCKET>
 struct __Base_List {
 private:
+	static_assert(std::is_integral<INDEX_TYPE>(), "Invalid INDEX_TYPE argument to __Base_List: INDEX_TYPE must be integral");
+	static_assert(std::is_integral<SUBDEX_TYPE>(), "Invalid SUBDEX_TYPE argument to __Base_List: SUBDEX_TYPE must be integral");
 	static s8 default_comparer(T l, T r) {
 		if (l < r) {
 			return -1;
@@ -171,8 +173,8 @@
 		}
 	}
 
-	SUBDEX_TYPE ITEMS_PER_BUCKET;
-	SUBDEX_TYPE MAX_BUCKETS;
+	const SUBDEX_TYPE ITEMS_PER_BUCKET;
+	const SUBDEX_TYPE MAX_BUCKETS;
 
 	T** buckets;