add cpp function