Catch2 icon indicating copy to clipboard operation
Catch2 copied to clipboard

Doxygen documentation errors

Open LecrisUT opened this issue 1 year ago • 0 comments

Currently if you run doxygen, it generates various errors like:

catch_clara.hpp:81: warning: Detected potential recursive class relation between class Catch::Clara::Detail::UnaryLambdaTraits and base class Catch::Clara::Detail::UnaryLambdaTraits< decltype(&L::operator())>!

These and others generate errors when trying to compile them for sphinx, e.g.:

WARNING: Parsing of expression failed. Using fallback parser. Error was:
Error in postfix expression, expected primary expression or type.
If primary expression:
  Invalid C++ declaration: Expected identifier in nested name, got keyword: decltype [error at 36]
    static const bool value   = decltype(test<std::ostream, const T&>(0))::value
    ------------------------------------^
If type:
  Invalid C++ declaration: Expecting '(' or '{' after type in cast expression. [error at 69]
    static const bool value   = decltype(test<std::ostream, const T&>(0))::value
    ---------------------------------------------------------------------^

Granted probably most of these issues are from aggressively importing all doxygen generated files. But to navigate around that I suggest:

  • Two doxyfiles, one for the public API and one for the developer's one
  • Use of doxygen groups
  • Adding doxygen documentation only to header file so that the source files can be excluded from the parser

@horenmar Are you ok with this organization moving forward? Is there a list of the public api headers?

LecrisUT avatar Jun 27 '23 09:06 LecrisUT