Writing your own C++ standard library from scratch