add cpp documentation