Add a C++ implementation, and update the docs