Documentation inside preprocessor macro definition

Matthias Möller <[email protected]>
Newsgroups gmane.text.doxygen.general
Message-ID <[email protected]>
Dear all,

I run into the following problem documenting my code with doxygen.
Large parts of the code are created using preprocessor macros like this

/// Helper macro for generating selectors for specialialized
/// implementations of element-wise binary operations; generic
/// implementation follows below
#define FDBB_GENERATE_BINARY_ELEMENTOPERATION_OVERLOADS(OPNAME)         \
    /** @brief                                                          \
        Selector for (specialized) implementation of                    \
        fdbb::internal::elem_##OPNAME##<A,B>(A&& a, B&& b) function     \
    */                                                                  \
    template<typename A, typename B, typename = void>                   \
    struct elem_##OPNAME##_spec : public std::integral_constant<EnumETL, EnumETL::GENERIC>{};

FDBB_GENERATE_BINARY_ELEMENTOPERATION_OVERLOADS(mul)
FDBB_GENERATE_BINARY_ELEMENTOPERATION_OVERLOADS(div)
FDBB_GENERATE_BINARY_ELEMENTOPERATION_OVERLOADS(pow)

#undef FDBB_GENERATE_BINARY_ELEMENTOPERATION_OVERLOADS


Running doxygen (v1.8.11) with the following configuration of the preprocessor

ENABLE_PREPROCESSING   = YES
MACRO_EXPANSION        = YES
EXPAND_ONLY_PREDEF     = NO
SEARCH_INCLUDES        = YES
INCLUDE_PATH           =
INCLUDE_FILE_PATTERNS  =
PREDEFINED             =
EXPAND_AS_DEFINED      =
SKIP_FUNCTION_MACROS   = YES

produces the following output (html):

struct  	elem_mul_spec <file:///Users/mmoller/codes/FDBB/build.gcc5/doc/html/structfdbb_1_1internal_1_1elem__mul__spec.html>
 	\ Selector for (specialized) implementation of \ fdbb::internal::elem_mul<A,B>(A&& a, B&& b) function \  More... <file:///Users/mmoller/codes/FDBB/build.gcc5/doc/html/structfdbb_1_1internal_1_1elem__mul__spec.html#details>

Obviously, the backslash that is needed for multiline macros is included in the documentation.
Any help on how to configure doxygen and/or modify the documentation is appreciated.

Best regards,
Matthias

------------------------------------------------------------------------------
What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic
patterns at an interface-level. Reveals which users, apps, and protocols are 
consuming the most bandwidth. Provides multi-vendor support for NetFlow, 
J-Flow, sFlow and other flows. Make informed decisions using capacity 
planning reports. http://sdm.link/zohodev2dev

_______________________________________________
Doxygen-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/doxygen-users
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.