exhale: Problem with overloaded functions

Hi there,

I’m just using Exhale to document a small c++ library, the tool works pretty well except for overloaded functions. When it tries to parse them, it does not seem to be able to choose the right definition, as it produces the following warning message.

WARNING: doxygenfunction: Unable to resolve multiple matches for function "tsa::dimensionality::PAA" with arguments () in doxygen xml output for project "TSA" from directory: /grijander/repositories/fistro-lib/build/doc/doxygen/xml. Potential matches: - array<Point> fistro::PAA(array<Point>, int) - std::vector<Point> fistro::PAA(std::vector<Point>, int)

Actually, it includes both function definitions in the list of available functions, but If you click on any of them, I get a yellow/orange warning box with the same text as above.

Do you know any work-around to overcome this problem. Thanks in advance, you have done a great work. Antonio Vilches.

About this issue

  • Original URL
  • State: closed
  • Created 6 years ago
  • Reactions: 2
  • Comments: 17 (9 by maintainers)

Most upvoted comments

It took me a while to get sphinx-build --version display sphinx-build 1.8.0b1, but here I am.

I confirm what you have, where every second build in the same tree produces

checking consistency... /home/mquinson/Code/simgrid/docs/source/api/unabridged_api.rst: WARNING: document isn't included in any toctree
fait
preparing documents... fait
writing output... [100%] index                                                                                                                                               
Exception occurred:
  File "/home/mquinson/.local/lib/python3.6/site-packages/sphinx/domains/cpp.py", line 4170, in find_declaration
    candId = symbol.declaration.get_newest_id()
AttributeError: 'NoneType' object has no attribute 'get_newest_id'

Isn’t that a bit weird that unabridged_api is not listed in a toctree when it fails?

Hello,

I know about virtualenv, but wanted to use pip --requirement instead because that’s what I use to rebuild the pages in production. Now that I got my requirements.txt to work (by forcing sphinx>=1.8.0b1), the problem is solved for me in prod:

https://simgrid.frama.io/simgrid/tuto_s4u.html#lab-3-fixed-experiment-duration The link to simgrid::s4u::Actor::kill(aid_t) is working there.

Thanks for your help,

I’m hit with the same issue. One of my classes have two methods of the same name: https://framagit.org/simgrid/simgrid/blob/master/include/simgrid/s4u/Actor.hpp#L259

  void kill();   
  static void kill(aid_t pid); 

There is no mention of these functions in my build logs: https://framagit.org/simgrid/simgrid/-/jobs/204729

If I dump my objects.inv (using intersphinx.debug(['', './build/html/objects.inv'])), I see the following elements:

...
cpp:function
        ...
        simgrid::s4u::Actor::kill                api/classsimgrid_1_1s4u_1_1Actor.html#_CPPv3N7simgrid3s4u5Actor4killEv
        ...
cpp:functionParam
        ...
        simgrid::s4u::Actor::kill::pid           api/classsimgrid_1_1s4u_1_1Actor.html#_CPPv3N7simgrid3s4u5Actor4killE5aid_t
...

As one could expect, a reference to :cpp:func:simgrid::s4u::Actor::kill points to the first function without a parameter, but I fail to generate a link to the static void kill(aid_t pid); function. I was trying to generate a link to the parameter, but I fail to do so.