CXX-3201 remove Doxygen workarounds for using-declarations #1309
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Resolves CXX-3201. An exciting followup to #1182 and #1184.
Following the release of Doxygen 13.0.1, we are finally able to remove the
*_PRIVATE_DOXYGEN_PREPROCESSOR
boilerplate to workaround the absence of Doxygen documentation pages for root namespace redeclarations.Note
The once-more absence of references to the original entity by redeclarations will be addressed separately by CXX-3202 to properly support disambiguating ABI namespaces.
The current class list page generated with 12.0.0 look as follows (using the workarounds):
The class list page generated with 13.0.1 look as follows:
Note that the class list once again resembles its prior state (e.g. for the 3.9.0 release) before the workarounds were implemented by #1182, where the documentation of the original entity is cloned for the redeclaration as-if it were its own distinct entity:
The combination of
SHOW_HEADERFILE
andSTRIP_FROM_INCLUDE_PATH
permits the class page to retain a hint regarding the true origins of a redeclaration in its#include
directive even without CXX-3202:Note that the class page is (once more) complete with documentation that clones the documentation of the original entity, unlike with the workarounds for Doxygen 1.12.0:
More importantly, unlike with old Doxygen documentation (e.g. for the 3.9.0 release), using-declarations of class members are now properly documented by all pages (both the class page of the original entity that using-declares members as well as the class page for the redeclaration). This notably affects the class page of
bsoncxx::v_noabi::array::element
the most, but also applies to various class and namespace pages.This PR also removes documentation for
std
namespace entity specializations, moving them into a note in the corresponding enumeration documentation instead, to avoid the very-lengthy class template specializations from messing with the width of the class list page's first column:The note looks as follows: