C++11 有decltype,C23 有typeof,如果同一个头文件需要同时给 C23 和 C++使用,那么需要自动推导类型的语句应该怎么选? 是应该加设一个 macro 分开处理?对于 C23 就用 typeof ,对于 C++就用 decltype 。 又或者在 C23 环境用#define把 decltype 替换成 typeof ? 然后还有typeof_unqual,C++是用模板的形式来做的,没记错的话应该等价于std::remove_cv_t,是不是只能用 macro 分开处理了?