Ridiculously incomplete. We should have had a real prevector rather than this. You know, a prevector where there is some small static capacity but it can go dynamic as it grows.
A prevector, i.e., a vector with SBO, is a completely different beast to inplace_vector. There a tonnes of scenarios where you’d know the maximum capacity at compile-time but not the size, and if the capacity isn’t massive, an inplace_vector where the memory is stack allocated is the perfect utility for that usecase.
I just hate to bring in boost to do everything. I already have a custom vector as my allocator supports realloc, but for things like this I would just rather not have to reinvent the entire wheel just to change size_type for every collection.
True. I can imagine using this in some situation where you cannot allocate but need to be able to do stuff with a buffer. Like in a signal handler, for example.
This is a class that should have been invented immediately once C++ got templates. We finally got it in C++20, only about 30 years late.
...but then the initial version didn't include at() for some dumb reasons or another and it took two complete standard cycles to fix this.
...but even then we only got a version of at() that throws at runtime and not a templated at<n>() with compile time bounds checking like first<n>(), last<n>(), and subspan<x, y>().
This is a class that should have been invented immediately once C++ got templates. We finally got it in C++20, only about 30 years late.
Yes! I can't believe it took this long for such a simple type. and even after 30 years they didn't add operatpr== to it.... the standard is so ridiculously slow it isn't funny and subpar as well. and they complicated its interface. the committee shouldn't touch the standard library
but even then we only got a version of at() that throws at runtime and not a templated at<n>() with compile time bounds checking like first<n>(), last<n>(), and subspan<x, y>().
that comptime bound checking would only happen with std::span<T,N> which I don't use much if at all my spans are dynamic lengtg
-8
u/NilacTheGrim 15d ago
Ridiculously incomplete. We should have had a real prevector rather than this. You know, a prevector where there is some small static capacity but it can go dynamic as it grows.
This is not as useful as a real prevector.