Standard Library Implementations

This repository contains a custom standard library implementation which I made to learn and practice or/and out of curiosity and fun.
Documentation for the functions/methods is provided via doxygen descriptions from inside the IDE/text editor or when build from the project root.

Project Information

  • Project namespace: ext
  • Automated testing using Boost.Test

Vector

Header only implementation of a vector.

ext::vector<T> vec;

Dynamic Array

TODO: Add constructor with init value (how to solve ambiguity?)
TODO: Add constructor from iterable/list/dynamic_array with dimension and sizes
TODO: Add all assignment cases
TODO: Add slice insert
TODO: Add slice get (possible?, typesafe?)

Header only implementation of an n-dimensional dynamic array.

ext::dynamic_array<T> arr;

Static array

TODO: everything

Header only implementation of an n-dimensional static array.

ext::static_array<T, D, N...> arr;

Heap

TODO: Add heap moving and copying (figure out how to copy functions)

Header only implementation of a dynamic sized heap (sometimes priority queue).

ext::heap<T> heap;

Thanks, Credits and Sources

Thanks to Martin York for the really good series on vectors.
Thanks to Abdul Bari for his great video about heaps.