C++ STM library