简体   繁体   中英

Generating Doxygen documentation for C++ STL headers

Trying to generate Doxygen output for GNU C++ STL headers (located in /usr/include/c++/6/ directory). It kind of works, it generates the output but the result is rather meager - no documentation generated for, for example, std::vector public functions etc. The header file functions look properly annotated but still can't get the desired output.

Tried tweaking numerous entries in Doxyfile (RECURSIVE, EXTRACT_ALL, etc) but no joy. Any pointers would be appreciated.

$ doxygen --version
1.8.13

As an example, the annotation for std::vector::swap() function looks like:

 /**
  *  @brief  Swaps data with another %vector.
  *  @param  __x  A %vector of the same element and allocator types.
  *
  *  This exchanges the elements between two vectors in constant time.
  *  (Three pointers, so it should be quite fast.)
  *  Note that the global std::swap() function is specialized such that
  *  std::swap(v1,v2) will feed to this function.
  */
void
swap(vector& __x) _GLIBCXX_NOEXCEPT
{
     //....
}

Not an answer, but I wanted to include an image.

I took the code as indicated, a plain Doxyfile with only EXTRACT_ALL set to YES and I get:

在此处输入图片说明

I might overlook something, but this looks OK to me. If I overlooked something please indicate it in the original question as an edit.

  • what is the filename you used?

Some side remarks:

  • current doxygen version is 1.8.15
  • have also a look at the chapter "Preprocessing" for _GLIBCXX_NOEXCEPT

There is actually an "official" means of generating this documentation: https://gcc.gnu.org/onlinedocs/libstdc++/manual/documentation_hacking.html

If nothing else, you could grab a GCC package and look at what Doxygen file it has, and then re-purpose that so it looks in your system header directory. There are a lot of preprocessor macros in the headers, so likely Doxygen is getting tripped up on these.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM