Re-work C++ version using Boost and Boost.Build.