octa::concat

master
Daniel Kolesa 2015-05-27 22:05:51 +01:00
parent 593acb35e4
commit 434816840b
2 changed files with 14 additions and 1 deletions

View File

@ -123,6 +123,19 @@ namespace octa {
};
typedef StringBase<char> String;
template<typename R>
String concat(R range, String sep = " ") {
String ret;
if (range.empty()) return move(ret);
for (;;) {
ret += range.first();
range.pop_first();
if (range.empty()) break;
ret += sep;
}
return move(ret);
}
}
#endif

View File

@ -72,7 +72,7 @@ namespace octa {
Vector(): p_buf(nullptr), p_len(0), p_cap(0) {}
explicit Vector(size_t n, const T &val = T()): Vector() {
p_buf = new uchar[n * sizeof(T)];
p_buf = (T *)new uchar[n * sizeof(T)];
p_len = p_cap = n;
T *cur = p_buf, *last = p_buf + n;
while (cur != last) new (cur++) T(val);