GNOME Bugzilla – Bug 658033
[PATCH] c++ scanner bug: group end marker eats up following sentences in the line
Last modified: 2012-11-18 11:12:03 UTC
Created attachment 195455 [details] [review] patch fixing this bug. In scanner.l, group end marker is defined like following (simplified): "/* @}".*"*/" Unfortunately, it matches multiple c-comment blocks. When using macros, this trouble especially becomes a problem. For example, the following codes define a common member functions of the class by the macro. #define COMMON_MEMBER_FUNCTIONS(klass) \ public: \ /** @name constructors */ \ /* @{ */ \ klass(); \ /* @} */ \ /** @name common functions */ \ /* @{ */ \ void func(); \ /* @} */ class Class { COMMON_MEMBER_FUNCTIONS(Class) }; Macro is expanded in single-line by preprocessor, so, func() is lost, and it is not described in generated documents. Attached patch fixes this bug. My best regards.
The sample code previously enumerated seems to cause another bug too. It is necessary to comment on the Qt style to make only the reported bug appear. #define COMMON_MEMBER_FUNCTIONS(klass) \ public: \ /*! @name constructors */ \ /* @{ */ \ klass(); \ /* @} */ \ /*! @name common functions */ \ /* @{ */ \ void func(); \ /* @} */ class Class { COMMON_MEMBER_FUNCTIONS(Class) };
Confirmed. Should be fixed in the next subversion update.
This bug was previously marked ASSIGNED, which means it should be fixed in doxygen version 1.7.6. Please verify if this is indeed the case. Reopen the bug if you think it is not fixed and please include any additional information that you think can be relevant.