exhale: Problem building documentation with overloaded functions

When I use exhale to generate documentation for my library with overloaded function, it shows warnings like this:

/home/akib/Projects/docview/docs/api/function_namespacedocview_1a23dabfacba6b32d41bd966ee72449980.rst:13: WARNING: doxygenfunction: Unable to resolve multiple matches for function "docview::unload_extension" with arguments (std::string) in doxygen xml output for project "libdocview" from directory: xml.
Potential matches:
    - void unload_extension(extension::extension &extension_object)
    - void unload_extension(std::string uuid)
/home/akib/Projects/docview/docs/api/function_namespacedocview_1ab268c8d6637aa0009f5ef5822efc10fe.rst:13: WARNING: doxygenfunction: Unable to resolve multiple matches for function "docview::unload_extension" with arguments (extension::extension&) in doxygen xml output for project "libdocview" from directory: xml.
Potential matches:
    - void unload_extension(extension::extension &extension_object)
    - void unload_extension(std::string uuid)

To diagnose the problem, I disabled Exhale and opened one of the files with problems. It had this line:

.. doxygenfunction:: docview::unload_extension(extension::extension&)

I changed the line to the following but the warning still showed:

.. doxygenfunction:: docview::unload_extension(extension::extension& extension_object)

Then I changed to this and the warning disappeared:

.. doxygenfunction:: docview::unload_extension(extension::extension &extension_object)

It looks like Breathe is very sensitive to whitespace and parameter names.

Is there any workaround?

Sphinx version: 3.3.1 Breathe version: 4.24.1 Exhale version: 0.2.3

Note: Although this issue is similar to #32, it’s not the same or duplicate of that issue.

About this issue

  • Original URL
  • State: closed
  • Created 4 years ago
  • Comments: 15 (5 by maintainers)

Commits related to this issue

Most upvoted comments

No 😦 probably 4.29 or 4.28 looking at the release dates for breathe on PyPI and that the PR 606 linked above fixed it.

I can’t test at this moment but if you find one that works please post back. Sorry that’s not very helpful 😕

closing with reference to #106, right now many overloads work, the ones that still fail are non-specialized template functions and sometimes global (not in a namespace) functions. this bug does resurface differently over time, just trying to consolidate the function overloads discussion

@aprotyas Can you post a complete example, preferably minimal, that fails for you?

I’m getting something similar still. In my case, the complaint is between is_directory(const path&) and is_directory(const path& p). 😞