Remove default argument for basic_ptridx(magic,array)

This commit is contained in:
Kp 2015-07-29 03:05:28 +00:00
parent ba38214bab
commit 84bd64a14c
4 changed files with 20 additions and 7 deletions

View file

@ -530,7 +530,13 @@ public:
{ {
} }
template <integral_type v> template <integral_type v>
basic_ptridx(const magic_constant<v> &m, array_managed_type &a = get_array()) : basic_ptridx(const magic_constant<v> &m) :
vptr_type(m),
vidx_type(m)
{
}
template <integral_type v>
basic_ptridx(const magic_constant<v> &m, array_managed_type &a) :
vptr_type(m, a), vptr_type(m, a),
vidx_type(m) vidx_type(m)
{ {
@ -642,6 +648,7 @@ template <typename managed_type>
template <typename P> template <typename P>
class valptridx<managed_type>::basic_vptr_global_factory class valptridx<managed_type>::basic_vptr_global_factory
{ {
using containing_type = valptridx<managed_type>;
public: public:
__attribute_warn_unused_result __attribute_warn_unused_result
P operator()(typename P::const_pointer_type p) const P operator()(typename P::const_pointer_type p) const
@ -654,10 +661,16 @@ public:
return P(p, get_array(p)); return P(p, get_array(p));
} }
__attribute_warn_unused_result __attribute_warn_unused_result
P operator()(typename valptridx<managed_type>::index_type i) const P operator()(typename containing_type::index_type i) const
{ {
return P(i, get_array()); return P(i, get_array());
} }
template <containing_type::integral_type v>
__attribute_warn_unused_result
P operator()(const containing_type::magic_constant<v> &m) const
{
return P(m, get_array());
}
template <typename T> template <typename T>
P operator()(T &&) const = delete; P operator()(T &&) const = delete;
void *operator &() const = delete; void *operator &() const = delete;

View file

@ -1480,7 +1480,7 @@ static void test_create_path_many(void)
for (i=0; i<Test_size; i++) { for (i=0; i<Test_size; i++) {
Cursegp = segptridx(static_cast<segnum_t>((d_rand() * (Highest_segment_index + 1)) / D_RAND_MAX)); Cursegp = segptridx(static_cast<segnum_t>((d_rand() * (Highest_segment_index + 1)) / D_RAND_MAX));
Markedsegp = segptridx(static_cast<segnum_t>((d_rand() * (Highest_segment_index + 1)) / D_RAND_MAX)); Markedsegp = segptridx(static_cast<segnum_t>((d_rand() * (Highest_segment_index + 1)) / D_RAND_MAX));
create_path_points(object_first, Cursegp, Markedsegp, point_segs.begin(), &num_points, -1, 0, 0, segment_none); create_path_points(vobjptridx(object_first), Cursegp, Markedsegp, point_segs.begin(), &num_points, -1, 0, 0, segment_none);
} }
} }
@ -1491,7 +1491,7 @@ static void test_create_path(void)
array<point_seg, 200> point_segs; array<point_seg, 200> point_segs;
short num_points; short num_points;
create_path_points(object_first, Cursegp, Markedsegp, point_segs.begin(), &num_points, -1, 0, 0, segment_none); create_path_points(vobjptridx(object_first), Cursegp, Markedsegp, point_segs.begin(), &num_points, -1, 0, 0, segment_none);
} }
@ -1513,7 +1513,7 @@ static void test_create_all_paths(void)
const auto &&segp1 = vcsegptr(static_cast<segnum_t>(end_seg)); const auto &&segp1 = vcsegptr(static_cast<segnum_t>(end_seg));
if (segp1->segnum != segment_none) if (segp1->segnum != segment_none)
{ {
create_path_points(object_first, start_seg, end_seg, Point_segs_free_ptr, &resultant_length, -1, 0, 0, segment_none); create_path_points(vobjptridx(object_first), start_seg, end_seg, Point_segs_free_ptr, &resultant_length, -1, 0, 0, segment_none);
} }
} }
} }

View file

@ -763,7 +763,7 @@ int load_mine_data(PHYSFS_file *LoadFile)
for (int i=0;i<10;i++) for (int i=0;i<10;i++)
Groupside[i] = mine_editor.Groupside[i]; Groupside[i] = mine_editor.Groupside[i];
Cursegp = mine_editor.current_seg != -1 ? segptridx(static_cast<segnum_t>(mine_editor.current_seg)) : segment_first; Cursegp = mine_editor.current_seg != -1 ? segptridx(static_cast<segnum_t>(mine_editor.current_seg)) : segptridx(segment_first);
Markedsegp = mine_editor.Markedsegp != -1 ? segptridx(static_cast<segnum_t>(mine_editor.Markedsegp)) : segment_none; Markedsegp = mine_editor.Markedsegp != -1 ? segptridx(static_cast<segnum_t>(mine_editor.Markedsegp)) : segment_none;
num_groups = 0; num_groups = 0;

View file

@ -866,7 +866,7 @@ void init_objects()
ConsoleObject = Viewer = &Objects[0]; ConsoleObject = Viewer = &Objects[0];
init_player_object(); init_player_object();
obj_link(vobjptridx(ConsoleObject),segment_first); //put in the world in segment 0 obj_link(vobjptridx(ConsoleObject), vsegptridx(segment_first)); //put in the world in segment 0
num_objects = 1; //just the player num_objects = 1; //just the player
Highest_object_index = 0; Highest_object_index = 0;
} }