util/{Const,Writable}Buffer: add operator[]

This commit is contained in:
Max Kellermann
2014-03-01 07:25:17 +01:00
parent 9dc5335e3e
commit 4ba7427fa0
7 changed files with 41 additions and 19 deletions

View File

@@ -63,7 +63,7 @@ bool TextInputStream::ReadLine(std::string &line)
the current line */
dest = buffer.Write();
assert(!dest.IsEmpty());
dest.data[0] = '\n';
dest[0] = '\n';
buffer.Append(1);
}
} while (p == nullptr);

View File

@@ -85,7 +85,7 @@ pcm_resample_fallback(PcmBuffer &buffer,
while (dest_pos < dest_samples) {
unsigned src_pos = dest_pos * src_rate / dest_rate;
dest_buffer[dest_pos++] = src.data[src_pos];
dest_buffer[dest_pos++] = src[src_pos];
}
break;
case 2:
@@ -93,8 +93,8 @@ pcm_resample_fallback(PcmBuffer &buffer,
unsigned src_pos = dest_pos * src_rate / dest_rate;
src_pos &= ~1;
dest_buffer[dest_pos++] = src.data[src_pos];
dest_buffer[dest_pos++] = src.data[src_pos + 1];
dest_buffer[dest_pos++] = src[src_pos];
dest_buffer[dest_pos++] = src[src_pos + 1];
}
break;
}

View File

@@ -143,6 +143,17 @@ struct ConstBuffer {
constexpr const_iterator cend() const {
return data + size;
}
#ifdef NDEBUG
constexpr
#endif
const T &operator[](size_type i) const {
#ifndef NDEBUG
assert(i < size);
#endif
return data[i];
}
};
#endif

View File

@@ -145,6 +145,17 @@ struct WritableBuffer {
constexpr const_iterator cend() const {
return data + size;
}
#ifdef NDEBUG
constexpr
#endif
T &operator[](size_type i) const {
#ifndef NDEBUG
assert(i < size);
#endif
return data[i];
}
};
#endif