• Automating C++ reference documentation significantly enhances usability by providing a navigable API and ensuring a single, up-to-date source of truth with minimal effort.

  • However, documenting C++ poses significant challenges due to discrepancies between the codebase and the public API. Doxygen remains a popular tool, yet it is suboptimal for C++ as it fails to fully comprehend C++ constructs and requires many transformation steps, including the incorporation of many macros within the C++ code. These macros maintain well-formed and ill-formed versions of the code, undermining the goal of unifying the source of truth.

  • Existing solutions frequently need better maintenance or usability issues, prompting users to revert to Doxygen.

  • An ideal solution would inherently understand C++ constructs, be actively maintained, and offer diverse options for customizing the output format.

  • MrDocs embodies these qualities. Supported by full-time developers from the C++ Alliance, MrDocs inherently comprehends C++ constructs without the need for macros and provides various output formats, customizable templates, and plugin support, ensuring it meets the demands of comprehensive and efficient documentation.