svenevs / exhale

Automatic C++ library api documentation generation: breathe doxygen in and exhale it out.
BSD 3-Clause "New" or "Revised" License
218 stars 51 forks source link

Exhale does not find functions with weird data types #184

Open schlatterbeck opened 1 year ago

schlatterbeck commented 1 year ago

In the code I'm trying to document I have a C-function (plain C, no overloading of function names)

void PGAIntegerSetFixedEdges (PGAContext *ctx, size_t n, PGAInteger(*edge)[2], int symmetric)

It seems the data type PGAInteger(*edge)[2] causes that I'm getting the error:

Warning

doxygenfunction: Unable to resolve function “PGAIntegerSetFixedEdges” with arguments (PGAContext*, size_t, PGAInteger (*), int) in doxygen xml output for project “PGAPack” from directory: ./_doxygen/xml. Potential matches:

- void PGAIntegerSetFixedEdges(PGAContext *ctx, size_t n, PGAInteger (*edge)[2], int symmetric)

The Doxygen XML looks as follows:

        <type>void</type>
        <definition>void PGAIntegerSetFixedEdges</definition>
        <argsstring>(PGAContext *ctx, size_t n, PGAInteger(*edge)[2], int symmetric)</argsstring>
        <name>PGAIntegerSetFixedEdges</name>
        <param>
          <type><ref refid="structPGAContext" kindref="compound">PGAContext</ref> *</type>
          <declname>ctx</declname>
        </param>
        <param>
          <type>size_t</type>
          <declname>n</declname>
        </param>
        <param>
          <type><ref refid="group__const__datatype_1ga1b0e84726e05cb1bfece3064d78e45ae" kindref="member">PGAInteger</ref>(*)</type>
          <declname>edge</declname>
          <array>[2]</array>
        </param>
        <param>
          <type>int</type>
          <declname>symmetric</declname>
        </param>
        <briefdescription>
<para>Set edges that have to be present. </para>
        </briefdescription>

Maybe this simply fails to parse the <array[2]</array> part in the XML?