[libc-commits] [PATCH] D118954: [libc] add a vector internal class

Michael Jones via Phabricator via libc-commits libc-commits at lists.llvm.org
Wed Feb 9 13:17:19 PST 2022

michaelrj marked 3 inline comments as done.
michaelrj added inline comments.

Comment at: libc/src/__support/CPP/vector.h:50
+  // undefined.
+  constexpr void resize(size_t new_size) {
+    if (new_size >= array_size)
sivachandra wrote:
> I still don't understand the argument for having a resize method. Also, it is not inserting any elements for a size increase. So, it is different from `std::vector` behavior.
if you look on line 36 of vector_test.cpp you can see an example usage of this function. There needs to be some way of resizing this array other than push_back, since one of the intended use cases is writing out of order. I need some way of increasing the size (represented by num_elements) as well as the capacity (represented by array_size). If you have a better idea for how to do that please share it. If it would help I can rename this class so that there's no confusion with the `std::vector` class.

Comment at: libc/src/__support/CPP/vector.h:65
+    if (pos >= num_elements)
+      num_elements = pos + 1;
+    return data_array[pos];
sivachandra wrote:
> I don't think is still correct. For one, `std::vector::operator[]` does not insert a new element.
I forgot to remove that code in the previous patch. Fixed.

  rG LLVM Github Monorepo



More information about the libc-commits mailing list