diff --git a/common/include/partial_range.h b/common/include/partial_range.h index 51293b0d5..77f8c97af 100644 --- a/common/include/partial_range.h +++ b/common/include/partial_range.h @@ -7,6 +7,7 @@ #pragma once #include "dxxsconf.h" #include "compiler-begin.h" +#include "compiler-type_traits.h" template struct partial_range_t @@ -40,15 +41,18 @@ namespace boost } #endif -template -partial_range_t partial_range(T &t, typename T::size_type l) +template +typename tt::enable_if::value, void>::type partial_range(T &, U) DXX_CXX11_EXPLICIT_DELETE; + +template +typename tt::enable_if::value, partial_range_t>::type partial_range(T &t, const U &l) { auto b = begin(t); return partial_range_t(b, b + l); } -template -partial_range_t partial_range(const T &t, typename T::size_type l) +template +typename tt::enable_if::value, partial_range_t>::type partial_range(const T &t, const U &l) { auto b = begin(t); return partial_range_t(b, b + l); diff --git a/common/main/gameseg.h b/common/main/gameseg.h index a8e7947a1..a5599b4f3 100644 --- a/common/main/gameseg.h +++ b/common/main/gameseg.h @@ -49,7 +49,7 @@ struct segmasks struct segment_depth_array_t : public array {}; extern int Highest_vertex_index; // Highest index in Vertices and Vertex_active, an efficiency hack -extern int Highest_segment_index; // Highest index in Segments, an efficiency hack +extern unsigned Highest_segment_index; // Highest index in Segments, an efficiency hack extern int Doing_lighting_hack_flag; extern void compute_center_point_on_side(vms_vector *vp,segment *sp,int side); diff --git a/similar/main/mglobal.cpp b/similar/main/mglobal.cpp index 02ccf79ed..ade503c1d 100644 --- a/similar/main/mglobal.cpp +++ b/similar/main/mglobal.cpp @@ -52,7 +52,7 @@ int Num_vertices = 0; int Num_segments = 0; int Highest_vertex_index=0; -int Highest_segment_index=0; +unsigned Highest_segment_index; // Translate table to get opposite side of a face on a segment. const char Side_opposite[MAX_SIDES_PER_SEGMENT] = {WRIGHT, WBOTTOM, WLEFT, WTOP, WFRONT, WBACK};