An implementation of P0843 using C++20. Example usage:
#include <dpm/static_vector.h>
int main()
{
dpm::static_vector<int, 5> vec{ 1, 2 };
vec.push_back(3);
vec.pop();
return vec.size() - 2;
}cmake -B build .
cmake --build build
# Or to build & install
sudo cmake --build build -t install
The CMake target is dpm::static_vector and the find_package is dpm-static_vector.
Note: The constexpr-ness is basically a lie due to the use of reinterpret_cast and the fact that the unitialized_ algorithms aren't constexpr (P2283 proposes making them so).
It should be possible for it to be constexpr for trivial types by using std::array if the types are trivial and by not using the algorithms.