diff --git a/ostd/string.hh b/ostd/string.hh index b69b299..21be612 100644 --- a/ostd/string.hh +++ b/ostd/string.hh @@ -165,6 +165,17 @@ public: return ret ? ret : (size() - s.size()); } + template + EnableIf, Size> copy(R &&orange, Size n = -1) { + return orange.put_n(data(), ostd::min(n, size())); + } + + Size copy(RemoveCv *p, Size n = -1) { + Size c = ostd::min(n, size()); + memcpy(p, data(), c * sizeof(T)); + return c; + } + private: T *p_beg, *p_end; };