Question: Consider:

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

```

The comment that I intended for `x` and `y` is interpreted by `doxygfen` to refer only to `y` (or, at least, there is not indication in the resulting documentation that it refers to both of them). I can fix this in two ways:

* Duplicate the comment. However, this would require declaring `x` and `y` on separate lines, which is less readable, since these members are logically related.
* Create a group. However, in which case `x` and `y` will appear after all the other data members in the documentation, which can be undesirable if there is logic to the particular order in which the data members appear.

Is there a way to comment members declared on one line that does not possess the weaknesses of the above methods?

Answer: 
Imho it is good practice in general to declare one variable per line. This avoids some confusion about e.g. 

```
int* x,y; 

```

among other things. I dont really understand your concern about "less readable, since these members are logically related". They are contained in the same struct, because they are logically related. If you want this even more clear just make a 

```
struct XY {
    double x; 
    double y;
}

```

I know this does not really answer your question, but when I was looking for it I didnt find a way with doxygen to provide comments for 2 (or more) variables declared on a single line. And I dont see the weakness of the first approach you mention, as imho it makes the code more readable anyhow.
In doxygen there are some possibilities to copy documentation for items `\copy...` also linking to other documentation is possible `\ref` `\link ... \endlink`.

With the `\copydoc` we can get here:

```
struct Point 
{
   double x;  ///< x & y are coordinates. (more detailed description)
   double y;  ///< \copydoc Point::x
};

```