From 3cf06f228dbfae4d4cb1b9a7908554c1b304d126 Mon Sep 17 00:00:00 2001 From: q66 Date: Thu, 11 Jun 2015 00:20:21 +0100 Subject: [PATCH] Vector::insert/insert_range now returns a range --- octa/vector.h | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/octa/vector.h b/octa/vector.h index e87d39b..46a1951 100644 --- a/octa/vector.h +++ b/octa/vector.h @@ -370,38 +370,38 @@ public: return r; } - Pointer insert(Size idx, T &&v) { + Range insert(Size idx, T &&v) { insert_base(idx, 1); p_buf.p_ptr[idx] = octa::move(v); - return &p_buf.p_ptr[idx]; + return Range(&p_buf.p_ptr[idx], &p_buf.p_ptr[p_len]); } - Pointer insert(Size idx, const T &v) { + Range insert(Size idx, const T &v) { insert_base(idx, 1); p_buf.p_ptr[idx] = v; - return &p_buf.p_ptr[idx]; + return Range(&p_buf.p_ptr[idx], &p_buf.p_ptr[p_len]); } - Pointer insert(Size idx, Size n, const T &v) { + Range insert(Size idx, Size n, const T &v) { insert_base(idx, n); for (Size i = 0; i < n; ++i) { p_buf.p_ptr[idx + i] = v; } - return &p_buf.p_ptr[idx]; + return Range(&p_buf.p_ptr[idx], &p_buf.p_ptr[p_len]); } template - Pointer insert_range(Size idx, U range) { + Range insert_range(Size idx, U range) { Size l = range.size(); insert_base(idx, l); for (Size i = 0; i < l; ++i) { p_buf.p_ptr[idx + i] = range.front(); range.pop_front(); } - return &p_buf.p_ptr[idx]; + return Range(&p_buf.p_ptr[idx], &p_buf.p_ptr[p_len]); } - Pointer insert(Size idx, InitializerList il) { + Range insert(Size idx, InitializerList il) { return insert_range(idx, octa::each(il)); }