- Manual memory management
- NULL-terminated strings instead of std::string and/or a string_view class
The STL has its uses…when you're writing a high level program, for example, that queries a database or when you need to pivot matrices for rendering some graphics. But if you're writing a string manipulating function that's presumably going to be called tons of times, it makes no sense to draw in big monsters like the STL. It's like bringing a jackhammer to nail a picture on drywall.
As for manual memory management, this is C++, not Python. If you're willing to use smart pointers, then you shouldn't even be using C++ because that sacrifices determinism and performance just as much or more than GC. If I wanted that kind of software, I would just use a much quicker-to-write language like Java/Go/CL.
Edit : I actually did a PR on the code. Wait & see