On Wed, May 10, 2023 at 1:46 AM Antony Polukhin via Boost
Adding support of it to Doxygen should do the job of implementing both searches and helping the C++ community in general.
To add some context to what Mohammad is saying, I've been using Doxygen for years as part of my "docca" toolchain for building C++ library reference pages. For example: https://www.boost.org/doc/libs/1_82_0/libs/json/doc/html/json/ref/boost__jso... I've reached the limit of what Doxygen is capable of and now it is blocking the improvement of documentation. Doxygen's XML output is always behind the HTML output, and there is no really good Asciidoc output. Furthermore Doxygen uses outdated technology for analyzing the C++ program. That is why I have created a new program called "Mr. Dox." This program uses clang's unstable libtooling API to generate an AST tree of a library's actual translation units (the .cpp files) and not just looking at headers using fancy regex or the simplified libclang API. Some discussion on that: https://www.foonathan.net/2019/11/standardese-post-mortem/ Because MrDox uses the exact same API that clang uses to actually compile your program, it can understand every C++ construct. If clang can compile it, then MrDox can see it. That means we can see deduction guides, alias templates, class template specializations, and much much more. The capability of extracting C++ source code features with perfect fidelity allows us to build features which enhance the generated reference in ways that Doxygen never can. For example we can recurse deeply into the AST and analyze the expression inside a conditional noexcept specification. We can understand abbreviated function template parameters. In fact, MrDox can eventually understand C++ features which are not yet part of the Standard but merged into the trunk of LLVM because they are supported by Technical Specifications ("TS") approved by the C++ Standardization Committee. This means MrDox can always stay current and keep pace with every innovation that comes to C++. The program is still in development but we are targeting the winter release date of Boost for having an packaged executable that is ready for production, with a good Asciidoc generator. Check it out here: https://github.com/cppalliance/mrdox Thanks! Vinnie
participants (1)
-
Vinnie Falco