A custom C++ string class