将在一行上声明的成员记录在一起而不创建组

时间:2016-05-11 11:42:45

标签: c++ doxygen

考虑:

struct S {
    ... // Some data members
    double x, y; ///< Coordinates
    ... // More data members
}

我打算xy的评论由doxygfen解释为仅指y(或者,至少在结果中没有显示它引用两者的文档)。我可以通过两种方式解决这个问题:

  • 复制评论。但是,这需要在单独的行上声明xy,这些行不太可读,因为这些成员在逻辑上是相关的。

  • 创建一个组。但是,在这种情况下,xy将出现在文档中的所有其他数据成员之后,如果数据成员出现的特定顺序存在逻辑,这可能是不合需要的。

有没有办法评论在一行上声明的成员不具备上述方法的弱点?

4 个答案:

答案 0 :(得分:1)

Imho一般来说,每行声明一个变量是一种好习惯。这避免了一些关于例如

int* x,y; 

等等。我真的不明白你对可读性较差的关注,因为这些成员在逻辑上是相关的&#34;。它们包含在同一个结构中,因为它们在逻辑上是相关的。如果你想要更清楚,那就做一个

struct XY {
    double x; 
    double y;
}

我知道这并没有真正回答你的问题,但是当我在寻找它时,我没有找到doxygen的方法来为一行上声明的2个(或更多)变量提供注释。而且我没有看到你提到的第一种方法的弱点,因为无论如何它使代码更具可读性。

答案 1 :(得分:1)

您问题的正确答案是:将坐标封装成一种类型,例如:

struct Point 
{
   double x;
   double y;
};

然后问题消失

struct S {
    ... // Some data members
    Point coordinates; ///< Coordinates
    ... // More data members
};

可能在更改之后,评论不再那么必要......

答案 2 :(得分:1)

我认为没有什么问题;

struct Point 
{
   double x;  ///< x & y are coordinates. (more detailed description)
   double y;  ///< See "x".
};

答案 3 :(得分:0)

在doxygen中,可以复制项目 SELECT id,title,description, dates FROM post_feed where CAST(`dates`as date) BETWEEN CURDATE() AND CURDATE() - INTERVAL 1 DAY ORDER BY dates DESC LIMIT 100 的文档,也可以\copy... \ref链接到其他文档。

有了\link ... \endlink,我们可以到达这里:

\copydoc