【问题标题】:How to escape special commands in Doxygen inline code如何在 Doxygen 内联代码中转义特殊命令
【发布时间】:2014-06-19 06:08:42
【问题描述】:

我想在 Doxygen 注释中使用内联代码:

Use `#define` for something..

这会产生以下警告:

warning: explicit link request to 'define' could not be resolved

如何转义 # 符号以忽略此警告?

如果我像这样使用反斜杠 (\):

Use `\#define` for something..

我仍然收到同样的警告..

【问题讨论】:

  • @LightnessRacesinOrbit - 这是一个未记录的错误功能。 riot_starter 明确提到反斜杠转义在由反引号分隔的代码跨度中不起作用。
  • @DavidHammen:πάντα ῥεῖ 的答案,两年前发布,显示了记录的解决方案。
  • @LightnessRacesinOrbit - 我完全不同意。这是一种方法。但是,在 doxygen 文档中没有提到用反引号和 doxygen 本身分隔的代码跨度之间的交互。特别是,没有提到 doxygen 的特殊字符不能在降价代码跨度中转义。就我而言,这是一个错误。
  • @DavidHammen:随意写下你自己的答案。就我个人而言,两年前我把它放在床上。
  • @LightnessRacesinOrbit - 我确实写了自己的答案。我遇到了这个问题,因为我收到了相同的消息,但是关于希望在生成的文档中看到以等宽字体表示的 "#foo bar ...",包括引号。

标签: c++ c doxygen


【解决方案1】:

您可能想使用 doxygen 的 \c\# 特殊命令来为下一个单词提供代码格式:

Use \c \#define for something..

【讨论】:

  • 也尝试添加\#
【解决方案2】:

我遇到了类似的警告,但上下文略有不同。我想在生成的文档中看到"#include foo"(引用并使用等宽字体)而不是#define

什么不起作用

doxygen 支持 markdown 表明只需在代码中编写 `"#include foo"` 就可以了。它没有; doxygen 风味的降价与 doxygen 的其余部分之间存在一些未记录的交互。 Doxygen 尝试将 #include 处理为引用某个名为 include 的实体。写`"\#include foo"` 也不起作用。在 Markdown 代码跨度中使用时,Doxygen 不会将反斜杠视为转义井号。

在 doxygen 中使用 `stuff` 时要非常小心。如果stuff 很简单,你会没事的,但如果它包含任何特殊的 doxygen 字符,你最好使用其他东西。

什么有效

如果你想看

  • Word #foo 更多单词。
    (即,#foo 不是等宽字体)。只需将 doxygen 注释中的井号转义即可:

    /*! 
      Word \#foo more words.
     */
    
  • 单词#foo 更多单词。
    (即,#foo 是等宽字体)。将\c\# 结合使用:

    /*! 
      Word \c \#foo more words.
     */
    
  • 单词#foo bar 更多单词。
    (即#foobar 是等宽字体,并且没有双引号)。将<tt>\# 结合使用:

    /*! 
      Word <tt>\#foo bar</tt> more words.
     */
    
  • 单词"#foo bar"更多单词。
    (即,#foobar 采用等宽字体,以及围绕 #foo bar 的双引号)。使用 \c 和 **do not* 反斜杠转义井号:

    /*! 
      Word \c "#foo bar" more words.
     */
    

最后一个很棘手。字符" 是 doxygen 中的一个特殊字符。 \c 命令对字符串 "#foo bar" 进行操作,并且该字符串不会被插值。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-05-01
    • 2016-04-18
    • 2014-02-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-11
    相关资源
    最近更新 更多