A C++ Hardware Description Language and Toolchain