0

I notice some bugs with Doxygen. Indeed when I run the html documentation with call function, some calling functions are not represented in the graph and are not linked in the code. This problem occurs when functions are called by a vector of class with these configurations:

std::vector<myClass*> vect;
...
vect[i]->myFunction();

or

oneClass = vect[i];
oneClass->GetSubClass()->otherFunction();

It is the same problem with std::vector<...>::iterator and (*..).

Doxygen does not take into account ]-> and )-> and so, does not link the associated functions.

My question is: Is there any versions of the tool where these bugs are fixed ?

We can skirt this problem by modifying the code by I prefer to have a automatic issue.

Thank,

Sulivan

Mike Kinghan
  • 55,740
  • 12
  • 153
  • 182

3 Answers3

0

doxygen is, of course, not a C++ compiler. As such, doxygen does not understand every nuance and feature of C++. This is not a bug, in the sense that doxygen is simply not designed to be a 100% parser for C++. And only a 100% C++ parser, such as a C++ compiler, will be able to understand every part of the language. doxygen will try to pick up obvious dependencies and function calls, and document them, but it will not be able to register them in every situation.

If the current version of doxygen does not pick up and register a particular calling sequence, it is unlikely to be a regression. doxygen simply cannot do it.

Sam Varshavchik
  • 114,536
  • 5
  • 94
  • 148
0

Thank you for your answer. In order to send a easy issue for this problem, it is possible to add before this function :

std::vector vect; ... for(int bidon = 0; bidon<1; bidon++) vect[i]->myFunction();

A simple procedure can do that and the documentation is correct. In this case, Doxygen takes into account links with functions with a vector of classes.

0

For information, this problem exists with:

if( something() == vect[i]->myFunction() )

and works with :

if( vect[i]->myFunction() == something() )

and with vector iterator when vect.at(i) is used