cpp rules