Add initial work on C++ version.  Third time's the charm?