如何在//注释中转义反斜杠

Mat*_*rný 1 c++ comments escaping c-preprocessor clang++

我的评论以反斜杠结尾.就像是

...

// use \

..
Run Code Online (Sandbox Code Playgroud)

Clang(++)警告我,这是多行评论

warning: multi-line // comment [-Wcomment]
    // use \
           ^
Run Code Online (Sandbox Code Playgroud)

所以我尝试在最后添加一些空格,但没有帮助.我可以以某种方式逃避反斜杠吗?

nvo*_*igt 5

虽然这不是一个技术解决方案,但我会将其作为一个提示来写一个更好的评论:

// use \ (backslash) instead of the normal slash here, because ...
Run Code Online (Sandbox Code Playgroud)


Tho*_*ews 5

问题的基础是行延续的定义。

当一行以backslash-newline组合或<backslash><whitespace><newline>组合结尾时,编译器会将下一行文本附加到当前文本行。这可以用宏来证明:

#define ME {\
cout << "me\n" \
}
Run Code Online (Sandbox Code Playgroud)

以上将被视为单行:

#define ME {cout << "me\n"}
Run Code Online (Sandbox Code Playgroud)

编译器抱怨,因为您的“//”注释扩展到下一行,因为 '\' 继续字符。

解决方法:
在'\'后面加上其他字符。
例子:

  '\'
  \ ending character
Run Code Online (Sandbox Code Playgroud)