• C++宏__cplusplus包含并扩展为什么?
  • 即使在最古老的C++实现中,宏__cplusplus是否也始终包含并扩展为数值吗?
  • 使用#if __cplusplus是否安全?
    还是我们应该使用该#ifdef __cplusplus代替?
  • 最佳答案

    是的,它始终会扩展为数值,其含义是所使用的C++标准的版本。根据cppreference page__cplusplus宏应扩展为:


    #if#ifdef指令之间的区别在于,应使用#ifdef来检查是否已定义了给定的宏以允许编译一段代码。

    另一方面,#if(#else#elif)伪指令可用于检查是否满足指定条件(就像典型的if条件)。

    10-06 10:38