BoundedInlineVector: Add resize() method

Bug: webrtc:11391
Change-Id: I34d659d0e295617e9058393d4d1b510111a78b83
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/169520
Commit-Queue: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30664}
This commit is contained in:
Karl Wiberg
2020-03-02 21:49:20 +01:00
committed by Commit Bot
parent c126937564
commit d084ea93b6
3 changed files with 42 additions and 0 deletions

View File

@ -45,6 +45,16 @@ void InitializeElements(T* data, U&& element, Us&&... elements) {
InitializeElements(data + 1, std::forward<Us>(elements)...);
}
// Default initializes uninitialized array elements.
// TODO(kwiberg): Replace with std::uninitialized_default_construct_n() (C++17).
template <typename T>
void DefaultInitializeElements(T* data, int size) {
for (int i = 0; i < size; ++i) {
// Placement new, because we construct a new object in uninitialized memory.
::new (&data[i]) T;
}
}
// Copies from source to uninitialized destination. Caller is responsible for
// ensuring that there is enough space in `dst_data`.
template <typename T>