get_n is now called copy (and doesn't modify itself unless it's InputRange)

master
Daniel Kolesa 2015-07-01 22:32:41 +01:00
parent dd157f8be8
commit e6e1020702
3 changed files with 9 additions and 9 deletions

View File

@ -463,8 +463,8 @@ template<typename B, typename C, typename V, typename R = V &,
template<typename OR, template<typename OR,
typename = octa::EnableIf<octa::IsOutputRange<OR>::value typename = octa::EnableIf<octa::IsOutputRange<OR>::value
>> Size get_n(OR orange, Size n = -1) { >> Size copy(OR orange, Size n = -1) {
B &r = *((B *)this); B r(*((B *)this));
Size on = n; Size on = n;
for (; n && !r.empty(); --n) { for (; n && !r.empty(); --n) {
orange.put(r.front()); orange.put(r.front());
@ -473,8 +473,8 @@ template<typename B, typename C, typename V, typename R = V &,
return (on - n); return (on - n);
} }
Size get_n(octa::RemoveCv<Value> *p, Size n = -1) { Size copy(octa::RemoveCv<Value> *p, Size n = -1) {
B &r = *((B *)this); B r(*((B *)this));
Size on = n; Size on = n;
for (; n && !r.empty(); --n) { for (; n && !r.empty(); --n) {
*p++ = r.front(); *p++ = r.front();
@ -910,16 +910,16 @@ struct PointerRange: InputRange<PointerRange<T>, FiniteRandomAccessRangeTag, T>
template<typename R, template<typename R,
typename = octa::EnableIf<octa::IsOutputRange<R>::value typename = octa::EnableIf<octa::IsOutputRange<R>::value
>> octa::Size get_n(R orange, octa::Size n = -1) { >> octa::Size copy(R orange, octa::Size n = -1) {
octa::Size c = size(); octa::Size c = size();
if (n < c) c = n; if (n < c) c = n;
return orange.put_n(p_beg, c); return orange.put_n(p_beg, c);
} }
octa::Size get_n(octa::RemoveCv<T> *p, octa::Size n = -1) { octa::Size copy(octa::RemoveCv<T> *p, octa::Size n = -1) {
octa::Size c = size(); octa::Size c = size();
if (n < c) c = n; if (n < c) c = n;
return get_n(PointerRange(p, c), c); return copy(PointerRange(p, c), c);
} }
private: private:

View File

@ -214,7 +214,7 @@ struct StreamRange<T, true>: InputRange<
return p_stream->put(p, n); return p_stream->put(p, n);
} }
octa::Size get_n(octa::RemoveCv<T> *p, octa::Size n = -1) { octa::Size copy(octa::RemoveCv<T> *p, octa::Size n = -1) {
if (n == octa::Size(-1)) { if (n == octa::Size(-1)) {
n = p_stream->size() / sizeof(T); n = p_stream->size() / sizeof(T);
} }

View File

@ -45,7 +45,7 @@ class Vector {
octa::RangeSize<R> l = range.size(); octa::RangeSize<R> l = range.size();
reserve(l); reserve(l);
p_len = l; p_len = l;
range.get_n(p_buf.first(), l); range.copy(p_buf.first(), l);
} }
template<typename R> template<typename R>