c++ rules