changed __cplusplus macro's restriction