Than21
Than21

Reputation: 321

Doxygen doesn't document a class if \code is used

This is either a bug in Doxygen or I am missing something. It is very easy to reproduce as follows:

I have the following class in a foo.h file:

class Foo {

public:
    /**
     * This is a comment with \code value.
     */
    int bar(int value);

};

If I use Doxygen (version 1.8.17) with the default configuration (generated by the doxygen -g command) then class Foo doesn't appear in the produced documentation. If I simply remove the \code symbol in the comment of bar then the class appears. If I put it back, it disappears again and so on.

This looks like a bug. Am I missing something ?

P.S.: I use MacOS 10.15.4 if it makes any difference.

Upvotes: 2

Views: 1154

Answers (1)

albert
albert

Reputation: 9047

The usage of the command \code is incorrect the closing \endcode is missing. There are also warnings:

.../aa.h:10: warning: Reached end of file while still inside a (nested) comment. Nesting level 1 (probable line reference: 4)
...
.../aa.h:10: warning: File ended in the middle of a comment block! Perhaps a missing \endcode?

When correcting this you will get the message:

...aa.h:1: warning: Compound Foo is not documented.

but this is clear as the class itself is not documented.

Note it is a bit strange to have \code in a brief description, maybe you should also look at commands like \a, \arg and \param.

Upvotes: 3

Related Questions