separate header for clang cpp api