存在不符合词法的单引号或双引号
C++-Undefined-Behavior-4
预处理器连接以反斜杠结尾的各行代码后将其转为预处理符号序列,在处理指令和展开宏之前,如果出现了不符合词法的单引号或双引号,会导致未定义的行为。
示例:
#defined X ' // Undefined behavior
#defined Y " // Undefined behavior
例中的引号无法与其他字符组成预处理符号,可能不会通过编译,也可能产生非预期的结果。
依据
ISO/IEC 14882:2003 2.4(2)-undefined
ISO/IEC 14882:2011 2.5(2)-undefined