A STM library for C++