c++ abuse