add ifdef __cplusplus