xaviersjs
xaviersjs

Reputation: 1737

Doxygen support for only custom classes in stl containers

I just started using doxygen and discovered the very useful configuration:

BUILTIN_STL_SUPPORT = YES

What I am wondering is if there is any way to limit the scope of this? (Not the C++ technical meaning of scope, but the scope of doxygen's understanding.) In particular it would be great to have STL containers only appear for wrapping custom classes. For example if I had the following:

class B;
class A
{
    std::vector<char> vectorOfChar;
    std::vector<B> vectorOfObjects;
};

It would be great to have doxygen show the vector<B> in the collaboration diagram without the vector<char> appearing. Is this possible at all with configuration options, or custom header files, or modifying the built-in stl support?

Upvotes: 2

Views: 1257

Answers (1)

MatthiasB
MatthiasB

Reputation: 1759

Depending on the size of your project, I could think of 2 work-arounds for your case, both are not optimal:

  • There are only a few instances where a STL object should be displayed: Here you can remove the BUILTIN_STL_SUPPORT flag and document each symbol you want to see. e.g you document your std::vector<B> type.

  • A lot of stl types should be shown, only default ones removed: Here you can Exclude symbols, using EXCLUDE_SYMBOLS. You can exclude std::vector<char> for Example, and it won't show up in the dependency graph. This may be a lot of work, but you can use Wildcards for generalization.

Unfortunately both are not very convenient solutions, but maybe it's better than nothing.

Links: http://cs.swan.ac.uk/~csoliver/ok-sat-library/internet_html/doc/doc/Doxygen/1.7.6.1/html/config.html#cfg_exclude_symlinks

Upvotes: 1

Related Questions