squash with initial c++
Re-work C++ version using Boost and Boost.Build.
squash with boost version