diff --git a/docs/mrdocs.schema.json b/docs/mrdocs.schema.json index 6db2b66717..9efec0ae1b 100644 --- a/docs/mrdocs.schema.json +++ b/docs/mrdocs.schema.json @@ -17,6 +17,16 @@ "title": "Use the first line of the comment as the brief", "type": "boolean" }, + "auto-relates": { + "default": true, + "description": "When set to `true`, MrDocs automatically finds non-member functions that are related to the current class.", + "enum": [ + true, + false + ], + "title": "Automatically find non-member functions", + "type": "boolean" + }, "base-url": { "default": "", "description": "Base URL for links to source code. The base URL is used to create links to the source code in the documentation. The base URL is combined with the path to the source file to create the link.", diff --git a/include/mrdocs/Corpus.hpp b/include/mrdocs/Corpus.hpp index 9700c9b1dc..840afabb68 100644 --- a/include/mrdocs/Corpus.hpp +++ b/include/mrdocs/Corpus.hpp @@ -350,6 +350,35 @@ class MRDOCS_VISIBLE return temp; } + /** Return a qualified name from the specified context. + + This function returns the qualified name + of the specified Info `I` from the context + specified by the SymbolID `context`. + + If the context is a parent of `I`, the + qualified name is constructed relative to + the context. For instance, if `I` is `A::B::C::D` + and context is `A::B`, the result is `C::D`. + + If the context is not a parent of `I`, the + qualified name is constructed relative to + the global namespace with the prefix `::`. + */ + virtual + void + qualifiedName( + Info const& I, + SymbolID const& context, + std::string& result) const = 0; + + std::string + qualifiedName(Info const& I, SymbolID const& context) const + { + std::string temp; + qualifiedName(I, context, temp); + return temp; + } }; //------------------------------------------------ diff --git a/include/mrdocs/Metadata/Info/Record.hpp b/include/mrdocs/Metadata/Info/Record.hpp index 56d8c71349..c0a534acb3 100644 --- a/include/mrdocs/Metadata/Info/Record.hpp +++ b/include/mrdocs/Metadata/Info/Record.hpp @@ -291,6 +291,10 @@ struct RecordInfo final */ std::vector Bases; + /** List of derived classes + */ + std::vector Derived; + RecordInterface Interface; //-------------------------------------------- @@ -347,6 +351,7 @@ tag_invoke( io.map("defaultAccess", getDefaultAccessString(I.KeyKind)); io.map("isTypedef", I.IsTypeDef); io.map("bases", dom::LazyArray(I.Bases, domCorpus)); + io.map("derived", dom::LazyArray(I.Derived, domCorpus)); io.map("interface", I.Interface); io.map("template", I.Template); } diff --git a/include/mrdocs/Metadata/Javadoc.hpp b/include/mrdocs/Metadata/Javadoc.hpp index 43f2144b7d..5fd277f40a 100644 --- a/include/mrdocs/Metadata/Javadoc.hpp +++ b/include/mrdocs/Metadata/Javadoc.hpp @@ -1808,7 +1808,7 @@ tag_invoke( io.defer("description", [&I, domCorpus] { return dom::LazyArray(I.blocks, domCorpus); }); - if (I.brief) + if (I.brief && !I.brief->children.empty()) { io.map("brief", I.brief); } diff --git a/include/mrdocs/Metadata/Type.hpp b/include/mrdocs/Metadata/Type.hpp index 679ecdfe9c..7eaa6f6d88 100644 --- a/include/mrdocs/Metadata/Type.hpp +++ b/include/mrdocs/Metadata/Type.hpp @@ -562,15 +562,20 @@ innerTypePtr(TypeInfo& TI) noexcept; The innermost type is the type which is not modified by any specifiers (e.g. "int" in "pointer to const int"). + + If the type has an inner type, we recursively + call this function until we reach the innermost + type. If the type has no inner type, we return + the current type. */ MRDOCS_DECL -std::optional const>> -innermostType(TypeInfo const& TI) noexcept; +Polymorphic const& +innermostType(Polymorphic const& TI) noexcept; -/// @copydoc innermostType(TypeInfo const&) +/// @copydoc innermostType(Polymorphic const&) MRDOCS_DECL -std::optional>> -innermostType(TypeInfo& TI) noexcept; +Polymorphic& +innermostType(Polymorphic& TI) noexcept; // VFALCO maybe we should rename this to `renderType` or something? MRDOCS_DECL diff --git a/share/mrdocs/addons/generator/adoc/partials/symbol.adoc.hbs b/share/mrdocs/addons/generator/adoc/partials/symbol.adoc.hbs index 8ba038b4da..04f3ccd0e4 100644 --- a/share/mrdocs/addons/generator/adoc/partials/symbol.adoc.hbs +++ b/share/mrdocs/addons/generator/adoc/partials/symbol.adoc.hbs @@ -79,16 +79,20 @@ |=== {{/if}} -{{! Relates symbols }} -{{#if symbol.doc.relates }} -{{#> markup/dynamic-level-h }}Non-Member Of{{/markup/dynamic-level-h}} +{{! Derived classes }} +{{#if symbol.derived}} +{{#> markup/dynamic-level-h }}Derived Classes{{/markup/dynamic-level-h}} [,cols=2] |=== | Name | Description -{{#each symbol.doc.relates }} -| {{> javadoc/reference }} -| {{> javadoc/inline-brief symbol.doc.brief }} +{{#each symbol.derived}} +| {{#if url~}} +{{#>markup/a href=url}}{{#>markup/code}}{{> symbol/name-info . nolink=true}}{{/markup/code}}{{/markup/a}} +{{else~}} +{{> symbol/name-info . nolink=true}} +{{/if}} +| {{> javadoc/inline-brief doc.brief }} {{/each}} |=== @@ -101,7 +105,7 @@ {{! Using symbols }} {{#if symbol.shadows}} {{#> markup/dynamic-level-h }}Introduced Symbols{{/markup/dynamic-level-h}} - +[cols=2] |=== | Name {{#each symbol.shadows}} @@ -113,6 +117,7 @@ {{! Exceptions }} {{#if symbol.doc.exceptions}} {{#> markup/dynamic-level-h }}Exceptions{{/markup/dynamic-level-h}} +[cols=2] |=== | Name | Thrown on @@ -140,6 +145,7 @@ {{! Template Parameters }} {{#if symbol.doc.tparams}} {{#> markup/dynamic-level-h }}Template Parameters{{/markup/dynamic-level-h}} +[cols=2] |=== | Name | Description @@ -153,6 +159,7 @@ {{! Parameters }} {{#if symbol.doc.params}} {{#> markup/dynamic-level-h }}Parameters{{/markup/dynamic-level-h}} +[cols=2] |=== | Name | Description diff --git a/share/mrdocs/addons/generator/html/partials/symbol.html.hbs b/share/mrdocs/addons/generator/html/partials/symbol.html.hbs index d9d3a43dfa..cc0c43c224 100644 --- a/share/mrdocs/addons/generator/html/partials/symbol.html.hbs +++ b/share/mrdocs/addons/generator/html/partials/symbol.html.hbs @@ -106,10 +106,10 @@ {{/if}} -{{! Relates symbols }} -{{#if symbol.doc.relates }} +{{! Derived classes }} +{{#if symbol.derived}}
-{{#> markup/dynamic-level-h }}Non-Member Of{{/markup/dynamic-level-h}} +{{#> markup/dynamic-level-h }}Derived Classes{{/markup/dynamic-level-h}} @@ -118,8 +118,12 @@ -{{#each symbol.doc.relates }} - +{{#each symbol.derived}} + {{/each}}
{{> javadoc/reference }}{{> javadoc/inline-brief symbol.doc.brief }}
{{#if url~}} + {{#>markup/a href=url}}{{#>markup/code}}{{> symbol/name-info . nolink=true}}{{/markup/code}}{{/markup/a}} + {{else~}} + {{> symbol/name-info . nolink=true}} +{{/if}}{{> javadoc/inline-brief doc.brief }}
diff --git a/src/lib/Lib/ConfigOptions.json b/src/lib/Lib/ConfigOptions.json index fe3987245d..d87fc12867 100644 --- a/src/lib/Lib/ConfigOptions.json +++ b/src/lib/Lib/ConfigOptions.json @@ -170,6 +170,13 @@ "details": "When set to `true`, MrDocs uses the first line (until the first dot, question mark, or exclamation mark) of the comment as the brief of the symbol. When set to `false`, a explicit @brief command is required.", "type": "bool", "default": true + }, + { + "name": "auto-relates", + "brief": "Automatically find non-member functions", + "details": "When set to `true`, MrDocs automatically finds non-member functions that are related to the current class.", + "type": "bool", + "default": true } ] }, diff --git a/src/lib/Lib/CorpusImpl.cpp b/src/lib/Lib/CorpusImpl.cpp index d7104dd0af..a207cc2af2 100644 --- a/src/lib/Lib/CorpusImpl.cpp +++ b/src/lib/Lib/CorpusImpl.cpp @@ -18,11 +18,13 @@ #include "lib/Metadata/Finalizers/SortMembersFinalizer.hpp" #include "lib/Metadata/Finalizers/JavadocFinalizer.hpp" #include "lib/Metadata/Finalizers/NamespacesFinalizer.hpp" +#include "lib/Metadata/Finalizers/DerivedFinalizer.hpp" #include "lib/Support/Report.hpp" #include "lib/Support/Chrono.hpp" #include #include #include +#include #include namespace clang::mrdocs { @@ -869,6 +871,57 @@ qualifiedName(Info const& I, std::string& result) const } } +void +CorpusImpl:: +qualifiedName( + Info const& I, + SymbolID const& context, + std::string& result) const +{ + if (context == SymbolID::global) + { + qualifiedName(I, result); + return; + } + + result.clear(); + if (!I.id || I.id == SymbolID::global) + { + return; + } + + if (I.Parent && + !is_one_of(I.Parent, {SymbolID::global, context}) && + I.id != context) + { + if (Info const* PI = find(I.Parent)) + { + qualifiedName(*PI, context, result); + result += "::"; + } + } + + if (I.id == context) + { + return; + } + + if (I.Parent == SymbolID::global) + { + result += "::"; + } + if (!I.Name.empty()) + { + result += I.Name; + } + else + { + result += "sortMembers) { report::debug("Finalizing sorted members"); diff --git a/src/lib/Lib/CorpusImpl.hpp b/src/lib/Lib/CorpusImpl.hpp index a068eaeb2a..21dbdeb9a0 100644 --- a/src/lib/Lib/CorpusImpl.hpp +++ b/src/lib/Lib/CorpusImpl.hpp @@ -61,6 +61,7 @@ class CorpusImpl final : public Corpus friend class SortMembersFinalizer; friend class JavadocFinalizer; friend class NamespacesFinalizer; + friend class DerivedFinalizer; public: /** Constructor. @@ -175,6 +176,12 @@ class CorpusImpl final : public Corpus Info const& I, std::string& result) const override; + void + qualifiedName( + Info const& I, + SymbolID const& context, + std::string& result) const override; + /** Finalize the corpus. */ void diff --git a/src/lib/Metadata/Finalizers/DerivedFinalizer.cpp b/src/lib/Metadata/Finalizers/DerivedFinalizer.cpp new file mode 100644 index 0000000000..a44e45092a --- /dev/null +++ b/src/lib/Metadata/Finalizers/DerivedFinalizer.cpp @@ -0,0 +1,66 @@ +// +// Licensed under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +// Copyright (c) 2025 Alan de Freitas (alandefreitas@gmail.com) +// +// Official repository: https://github.com/cppalliance/mrdocs +// + +#include "DerivedFinalizer.hpp" +#include +#include +#include + +namespace clang::mrdocs { + +void +DerivedFinalizer:: +build() +{ + for (auto& I : corpus_.info_) + { + MRDOCS_ASSERT(I); + MRDOCS_CHECK_OR_CONTINUE(I->Extraction == ExtractionMode::Regular); + MRDOCS_CHECK_OR_CONTINUE(I->isRecord()); + auto& record = dynamic_cast(*I); + MRDOCS_CHECK_OR_CONTINUE(!record.Bases.empty()); + for (BaseInfo& base: record.Bases) + { + MRDOCS_CHECK_OR_CONTINUE(base.Access == AccessKind::Public); + MRDOCS_CHECK_OR_CONTINUE(base.Type); + MRDOCS_CHECK_OR_CONTINUE(base.Type->isNamed()); + auto& namedType = dynamic_cast(*base.Type); + MRDOCS_CHECK_OR_CONTINUE(namedType.Name); + SymbolID const namedSymbolID = namedType.Name->id; + MRDOCS_CHECK_OR_CONTINUE(namedSymbolID != SymbolID::invalid); + Info* baseInfoPtr = corpus_.find(namedSymbolID); + MRDOCS_CHECK_OR_CONTINUE(baseInfoPtr); + MRDOCS_CHECK_OR_CONTINUE(baseInfoPtr->isRecord()); + MRDOCS_CHECK_OR_CONTINUE(baseInfoPtr->Extraction == ExtractionMode::Regular); + if (auto& baseRecord = dynamic_cast(*baseInfoPtr); + !contains(baseRecord.Derived, record.id)) + { + // Insert in order by name + auto const it = std::ranges::lower_bound( + baseRecord.Derived, + record.id, + [&](SymbolID const& lhs, SymbolID const& rhs) { + auto const* lhsRecord = corpus_.find(lhs); + auto const* rhsRecord = corpus_.find(rhs); + MRDOCS_ASSERT(lhsRecord); + MRDOCS_ASSERT(rhsRecord); + if (lhsRecord->Name != rhsRecord->Name) + { + return lhsRecord->Name < rhsRecord->Name; + } + return lhs < rhs; + }); + baseRecord.Derived.insert(it, record.id); + } + } + } +} + +} // clang::mrdocs diff --git a/src/lib/Metadata/Finalizers/DerivedFinalizer.hpp b/src/lib/Metadata/Finalizers/DerivedFinalizer.hpp new file mode 100644 index 0000000000..8726800a0f --- /dev/null +++ b/src/lib/Metadata/Finalizers/DerivedFinalizer.hpp @@ -0,0 +1,42 @@ +// +// Licensed under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +// Copyright (c) 2023 Krystian Stasiowski (sdkrystian@gmail.com) +// Copyright (c) 2025 Alan de Freitas (alandefreitas@gmail.com) +// +// Official repository: https://github.com/cppalliance/mrdocs +// + +#ifndef MRDOCS_LIB_METADATA_FINALIZER_DERIVEDFINALIZER_HPP +#define MRDOCS_LIB_METADATA_FINALIZER_DERIVEDFINALIZER_HPP + +#include "lib/Lib/CorpusImpl.hpp" +#include "lib/Lib/Info.hpp" +#include + +namespace clang::mrdocs { + +/** Finalizes a set of Info. + + This finalizer finds non-member functions + for a record and populate the related + field of the javadoc. +*/ +class DerivedFinalizer +{ + CorpusImpl& corpus_; + +public: + DerivedFinalizer(CorpusImpl& corpus) + : corpus_(corpus) + {} + + void + build(); +}; + +} // clang::mrdocs + +#endif diff --git a/src/lib/Metadata/Finalizers/JavadocFinalizer.cpp b/src/lib/Metadata/Finalizers/JavadocFinalizer.cpp index 32be10f733..f80f638ae5 100644 --- a/src/lib/Metadata/Finalizers/JavadocFinalizer.cpp +++ b/src/lib/Metadata/Finalizers/JavadocFinalizer.cpp @@ -12,6 +12,7 @@ #include "JavadocFinalizer.hpp" #include #include +#include namespace clang::mrdocs { @@ -132,6 +133,11 @@ void JavadocFinalizer:: finalize(doc::Reference& ref, bool const emitWarning) { + if (ref.id != SymbolID::invalid) + { + // Already resolved + return; + } if (auto resRef = corpus_.lookup(current_context_->id, ref.string)) { // KRYSTIAN NOTE: we should provide an overload that @@ -196,7 +202,7 @@ finalize(Javadoc& javadoc) finalize(javadoc.sees); finalize(javadoc.preconditions); finalize(javadoc.postconditions); - setRelateIds(javadoc); + processRelates(javadoc); copyBriefAndDetails(javadoc); setAutoBrief(javadoc); removeTempTextNodes(javadoc); @@ -204,10 +210,40 @@ finalize(Javadoc& javadoc) unindentCodeBlocks(javadoc); } +namespace { +bool +referenceCmp( + doc::Reference const& lhs, + doc::Reference const& rhs) { + bool const lhsIsGlobal = lhs.string.starts_with("::"); + bool const rhsIsGlobal = rhs.string.starts_with("::"); + if (lhsIsGlobal != rhsIsGlobal) + { + return lhsIsGlobal < rhsIsGlobal; + } + std::size_t const lhsCount = std::ranges::count(lhs.string, ':'); + std::size_t const rhsCount = std::ranges::count(rhs.string, ':'); + if (lhsCount != rhsCount) + { + return lhsCount < rhsCount; + } + if (lhs.string != rhs.string) + { + return lhs.string < rhs.string; + } + return lhs.id < rhs.id; +} +} + void JavadocFinalizer:: -setRelateIds(Javadoc& javadoc) +processRelates(Javadoc& javadoc) { + if (corpus_.config->autoRelates) + { + setAutoRelates(); + } + MRDOCS_CHECK_OR(!javadoc.relates.empty()); Info const* currentPtr = corpus_.find(current_context_->id); @@ -239,10 +275,15 @@ setRelateIds(Javadoc& javadoc) return otherRef.id == current_context_->id; })) { - std::string currentName = corpus_.Corpus::qualifiedName(current); + std::string currentName = corpus_.Corpus::qualifiedName(current, relatedPtr->Parent); doc::Reference relatedRef(std::move(currentName)); relatedRef.id = current_context_->id; - related.javadoc->related.push_back(std::move(relatedRef)); + // Insert in order by name + auto const it = std::ranges::lower_bound( + related.javadoc->related, + relatedRef, + referenceCmp); + related.javadoc->related.insert(it, std::move(relatedRef)); } } @@ -252,6 +293,165 @@ setRelateIds(Javadoc& javadoc) }); } +namespace { +void +pushAllDerivedClasses( + RecordInfo const* record, + SmallVector& relatedRecordsOrEnums, + CorpusImpl& corpus) +{ + for (auto& derivedId : record->Derived) + { + Info* derivedPtr = corpus.find(derivedId); + MRDOCS_CHECK_OR_CONTINUE(derivedPtr); + MRDOCS_CHECK_OR_CONTINUE(derivedPtr->Extraction == ExtractionMode::Regular); + auto derived = dynamic_cast(derivedPtr); + MRDOCS_CHECK_OR_CONTINUE(derived); + relatedRecordsOrEnums.push_back(derived); + // Recursively get derived classes of the derived class + pushAllDerivedClasses(derived, relatedRecordsOrEnums, corpus); + } +} +} + +void +JavadocFinalizer:: +setAutoRelates() +{ + MRDOCS_ASSERT(current_context_); + MRDOCS_CHECK_OR(current_context_->Extraction == ExtractionMode::Regular); + MRDOCS_CHECK_OR(current_context_->isFunction()); + MRDOCS_CHECK_OR(current_context_->javadoc); + auto& I = dynamic_cast(*current_context_); + MRDOCS_CHECK_OR(!I.IsRecordMethod); + auto* parentPtr = corpus_.find(I.Parent); + MRDOCS_CHECK_OR(parentPtr); + MRDOCS_CHECK_OR(parentPtr->isNamespace()); + + auto toRecordOrEnum = [&](Polymorphic const& type) -> Info* { + MRDOCS_CHECK_OR(type, nullptr); + auto& innermost = innermostType(type); + MRDOCS_CHECK_OR(innermost, nullptr); + MRDOCS_CHECK_OR(innermost->isNamed(), nullptr); + auto const& namedType = dynamic_cast(*innermost); + MRDOCS_CHECK_OR(namedType.Name, nullptr); + SymbolID const namedSymbolID = namedType.Name->id; + MRDOCS_CHECK_OR(namedSymbolID != SymbolID::invalid, nullptr); + Info* infoPtr = corpus_.find(namedSymbolID); + MRDOCS_CHECK_OR(infoPtr, nullptr); + MRDOCS_CHECK_OR( + infoPtr->isRecord() || + infoPtr->isEnum(), nullptr); + return infoPtr; + }; + + SmallVector relatedRecordsOrEnums; + + // 1) Inner type of the first parameter + [&] { + MRDOCS_CHECK_OR(!I.Params.empty()); + auto* firstParamInfo = toRecordOrEnum(I.Params.front().Type); + MRDOCS_CHECK_OR(firstParamInfo); + if (firstParamInfo->Extraction == ExtractionMode::Regular) + { + relatedRecordsOrEnums.push_back(firstParamInfo); + } + // 2) If the type is a reference or a pointer, derived classes + // of this inner type are also valid related records + MRDOCS_CHECK_OR(firstParamInfo->isRecord()); + auto const* firstParamRecord = dynamic_cast(firstParamInfo); + MRDOCS_CHECK_OR( + I.Params.front().Type->isLValueReference() || + I.Params.front().Type->isRValueReference() || + I.Params.front().Type->isPointer()); + // Get all transitively derived classes of firstParamRecord + pushAllDerivedClasses(firstParamRecord, relatedRecordsOrEnums, corpus_); + }(); + + // 3) The return type of the function + if (auto* returnTypeInfo = toRecordOrEnum(I.ReturnType)) + { + if (returnTypeInfo->Extraction == ExtractionMode::Regular) + { + relatedRecordsOrEnums.push_back(returnTypeInfo); + } + // 4) If the return type is a template specialization, + // and the template parameters are records, then + // each template parameter is also a related record + [&] { + MRDOCS_CHECK_OR(I.ReturnType); + MRDOCS_CHECK_OR(I.ReturnType->isNamed()); + auto& NTI = get(I.ReturnType); + MRDOCS_CHECK_OR(NTI.Name); + MRDOCS_CHECK_OR(NTI.Name->isSpecialization()); + auto const& NTIS = get(NTI.Name); + MRDOCS_CHECK_OR(!NTIS.TemplateArgs.empty()); + Polymorphic const& firstArg = NTIS.TemplateArgs.front(); + MRDOCS_CHECK_OR(firstArg->isType()); + auto const& typeArg = get(firstArg); + if (auto* argInfo = toRecordOrEnum(typeArg.Type)) + { + if (argInfo->Extraction == ExtractionMode::Regular) + { + relatedRecordsOrEnums.push_back(argInfo); + } + } + }(); + } + + // Remove duplicates from relatedRecordsOrEnums + std::ranges::sort(relatedRecordsOrEnums); + relatedRecordsOrEnums.erase( + std::ranges::unique(relatedRecordsOrEnums).begin(), + relatedRecordsOrEnums.end()); + + // Insert the records with valid ids into the javadoc relates section + std::size_t const prevRelatesSize = I.javadoc->relates.size(); + for (Info const* relatedRecordOrEnumPtr : relatedRecordsOrEnums) + { + MRDOCS_CHECK_OR_CONTINUE(relatedRecordOrEnumPtr); + MRDOCS_ASSERT(I.javadoc); + Info const& recordOrEnum = *relatedRecordOrEnumPtr; + MRDOCS_CHECK_OR_CONTINUE(recordOrEnum.Extraction == ExtractionMode::Regular); + doc::Reference ref(recordOrEnum.Name); + ref.id = recordOrEnum.id; + + // Check if already listed as friend + if (auto* record = dynamic_cast(relatedRecordOrEnumPtr)) + { + auto fromFriendIdToTypeID = [&](SymbolID const& id) -> SymbolID { + Info* friendInfo = corpus_.find(id); + MRDOCS_CHECK_OR(friendInfo, SymbolID::invalid); + auto const friendPtr = dynamic_cast(friendInfo); + MRDOCS_CHECK_OR(friendPtr, SymbolID::invalid); + return friendPtr->FriendSymbol; + }; + using std::views::transform; + if (contains(transform(record->Interface.Public.Friends, fromFriendIdToTypeID), I.id)) + { + // Already listed as a public friend + continue; + } + } + + // Ensure no duplicates + if (std::ranges::none_of( + I.javadoc->relates, + [&ref](doc::Reference const& otherRef) { + return otherRef.string == ref.string || otherRef.id == ref.id; + })) + { + // Insert in order by name + auto const it = std::ranges::lower_bound( + I.javadoc->relates.begin() + prevRelatesSize, + I.javadoc->relates.end(), + ref, + referenceCmp); + I.javadoc->relates.insert(it, std::move(ref)); + } + } +} + void JavadocFinalizer:: copyBriefAndDetails(Javadoc& javadoc) diff --git a/src/lib/Metadata/Finalizers/JavadocFinalizer.hpp b/src/lib/Metadata/Finalizers/JavadocFinalizer.hpp index 86bba58ba5..f2412b8cb7 100644 --- a/src/lib/Metadata/Finalizers/JavadocFinalizer.hpp +++ b/src/lib/Metadata/Finalizers/JavadocFinalizer.hpp @@ -127,7 +127,11 @@ class JavadocFinalizer // Find the ID of "relates" symbols and populate // the "related" symbol with the inverse. void - setRelateIds(Javadoc& javadoc); + processRelates(Javadoc& javadoc); + + // Automatically find related symbols + void + setAutoRelates(); // Copy brief and details to the current context void diff --git a/src/lib/Metadata/Type.cpp b/src/lib/Metadata/Type.cpp index 91969e7ab0..0a9d2c2627 100644 --- a/src/lib/Metadata/Type.cpp +++ b/src/lib/Metadata/Type.cpp @@ -771,6 +771,7 @@ operator<=>(Polymorphic const& lhs, Polymorphic const& rhs) } namespace { +// Get an optional reference to the inner type template < class TypeInfoTy, bool isMutable = !std::is_const_v>, @@ -812,6 +813,7 @@ innerTypeImpl(TypeInfoTy&& TI) noexcept return std::nullopt; } +// Get a pointer to the inner type template auto innerTypePtrImpl(TypeInfoTy&& TI) noexcept @@ -825,25 +827,34 @@ innerTypePtrImpl(TypeInfoTy&& TI) noexcept return decltype(&*res->get())(nullptr); } -template -auto -innermostTypeImpl(TypeInfoTy&& TI) noexcept +// Get the innermost type +// If there's an internal type, return it +// If there's no internal type, return the current type +template +requires std::same_as, Polymorphic> +auto& +innermostTypeImpl(PolymorphicTypeInfoTy&& TI) noexcept { - auto inner = innerTypeImpl(TI); + if (!TI) + { + return TI; + } + /* optional */ auto inner = innerTypeImpl(*TI); + if (!inner) + { + return TI; + } while (inner) { - auto& ref = inner->get(); - if (!ref) - { - return inner; - } - if (ref->isNamed()) + /* polymorphic */ auto& ref = inner->get(); + if (!ref || + ref->isNamed()) { - return inner; + return ref; } inner = innerTypeImpl(*ref); } - return inner; + return inner->get(); } } @@ -872,14 +883,14 @@ innerTypePtr(TypeInfo& TI) noexcept return innerTypePtrImpl(TI); } -std::optional const>> -innermostType(TypeInfo const& TI) noexcept +Polymorphic const& +innermostType(Polymorphic const& TI) noexcept { return innermostTypeImpl(TI); } -std::optional>> -innermostType(TypeInfo& TI) noexcept +Polymorphic& +innermostType(Polymorphic& TI) noexcept { return innermostTypeImpl(TI); } diff --git a/test-files/golden-tests/config/auto-relates/auto-relates.adoc b/test-files/golden-tests/config/auto-relates/auto-relates.adoc new file mode 100644 index 0000000000..c37540d40a --- /dev/null +++ b/test-files/golden-tests/config/auto-relates/auto-relates.adoc @@ -0,0 +1,162 @@ += Reference +:mrdocs: + +[#index] +== Global namespace + +=== Types + +[cols=2] +|=== +| Name +| Description +| <> +| A class with non‐member functions +|=== + +=== Functions + +[cols=2] +|=== +| Name +| Description +| <> +| A non‐member function of A +| <> +| A non‐member function of A +| <> +| A non‐member function of A +| <> +| A non‐member function of A +| <> +| A non‐member function of A +| <> +| A non‐member function of A +|=== + +[#A] +== A + +A class with non‐member functions + +=== Synopsis + +Declared in `<auto‐relates.cpp>` + +[source,cpp,subs="verbatim,replacements,macros,-callouts"] +---- +class A; +---- + +=== Non-Member Functions + +[,cols=2] +|=== +| Name +| Description +| <> +| A non‐member function of A +| <> +| A non‐member function of A +| <> +| A non‐member function of A +| <> +| A non‐member function of A +| <> +| A non‐member function of A +| <> +| A non‐member function of A +|=== + +[#f1] +== f1 + +A non‐member function of A + +=== Synopsis + +Declared in `<auto‐relates.cpp>` + +[source,cpp,subs="verbatim,replacements,macros,-callouts"] +---- +void +f1(<>); +---- + +[#f2] +== f2 + +A non‐member function of A + +=== Synopsis + +Declared in `<auto‐relates.cpp>` + +[source,cpp,subs="verbatim,replacements,macros,-callouts"] +---- +void +f2(<>&); +---- + +[#f3] +== f3 + +A non‐member function of A + +=== Synopsis + +Declared in `<auto‐relates.cpp>` + +[source,cpp,subs="verbatim,replacements,macros,-callouts"] +---- +void +f3(<> const&); +---- + +[#f4] +== f4 + +A non‐member function of A + +=== Synopsis + +Declared in `<auto‐relates.cpp>` + +[source,cpp,subs="verbatim,replacements,macros,-callouts"] +---- +void +f4(<>*); +---- + +[#f5] +== f5 + +A non‐member function of A + +=== Synopsis + +Declared in `<auto‐relates.cpp>` + +[source,cpp,subs="verbatim,replacements,macros,-callouts"] +---- +void +f5(<> const*); +---- + +[#f6] +== f6 + +A non‐member function of A + +=== Synopsis + +Declared in `<auto‐relates.cpp>` + +[source,cpp,subs="verbatim,replacements,macros,-callouts"] +---- +void +f6(<> const*); +---- + + +[.small]#Created with https://www.mrdocs.com[MrDocs]# diff --git a/test-files/golden-tests/config/auto-relates/auto-relates.cpp b/test-files/golden-tests/config/auto-relates/auto-relates.cpp new file mode 100644 index 0000000000..a0a168f1a0 --- /dev/null +++ b/test-files/golden-tests/config/auto-relates/auto-relates.cpp @@ -0,0 +1,27 @@ +/** A class with non-member functions +*/ +class A {}; + +/** A non-member function of A + */ +void f1(A); + +/** A non-member function of A + */ +void f2(A&); + +/** A non-member function of A + */ +void f3(A const&); + +/** A non-member function of A + */ +void f4(A*); + +/** A non-member function of A + */ +void f5(A* const); + +/** A non-member function of A + */ +void f6(A const*); diff --git a/test-files/golden-tests/config/auto-relates/auto-relates.html b/test-files/golden-tests/config/auto-relates/auto-relates.html new file mode 100644 index 0000000000..5ceb23762d --- /dev/null +++ b/test-files/golden-tests/config/auto-relates/auto-relates.html @@ -0,0 +1,212 @@ + + +Reference + + +
+

Reference

+
+
+

Global namespace

+
+

Types

+ + + + + + + + + + + +
NameDescription
A A class with non-member functions
+ +

Functions

+ + + + + + + + + + + + + + + + +
NameDescription
f1 A non-member function of A
f2 A non-member function of A
f3 A non-member function of A
f4 A non-member function of A
f5 A non-member function of A
f6 A non-member function of A
+ +
+
+
+

A

+
+A class with non-member functions + +
+
+
+

Synopsis

+
+Declared in <auto-relates.cpp>
+
+
+class A;
+
+
+
+ + +
+

Non-Member Functions

+ + + + + + + + + + + + + + + +
NameDescription
f1A non-member function of A
f2A non-member function of A
f3A non-member function of A
f4A non-member function of A
f5A non-member function of A
f6A non-member function of A
+
+
+
+
+

f1

+
+A non-member function of A + +
+
+
+

Synopsis

+
+Declared in <auto-relates.cpp>
+
+
+void
+f1(A);
+
+
+
+
+
+
+

f2

+
+A non-member function of A + +
+
+
+

Synopsis

+
+Declared in <auto-relates.cpp>
+
+
+void
+f2(A&);
+
+
+
+
+
+
+

f3

+
+A non-member function of A + +
+
+
+

Synopsis

+
+Declared in <auto-relates.cpp>
+
+
+void
+f3(A const&);
+
+
+
+
+
+
+

f4

+
+A non-member function of A + +
+
+
+

Synopsis

+
+Declared in <auto-relates.cpp>
+
+
+void
+f4(A*);
+
+
+
+
+
+
+

f5

+
+A non-member function of A + +
+
+
+

Synopsis

+
+Declared in <auto-relates.cpp>
+
+
+void
+f5(A const*);
+
+
+
+
+
+
+

f6

+
+A non-member function of A + +
+
+
+

Synopsis

+
+Declared in <auto-relates.cpp>
+
+
+void
+f6(A const*);
+
+
+
+
+ +
+
+

Created with MrDocs

+
+ + \ No newline at end of file diff --git a/test-files/golden-tests/config/auto-relates/auto-relates.xml b/test-files/golden-tests/config/auto-relates/auto-relates.xml new file mode 100644 index 0000000000..3fe4f624fc --- /dev/null +++ b/test-files/golden-tests/config/auto-relates/auto-relates.xml @@ -0,0 +1,116 @@ + + + + + + + + A class with non-member functions + + + f1 + f2 + f3 + f4 + f5 + f6 + + + + + + + + + + + A non-member function of A + + + A + + + + + + + + + + + + + A non-member function of A + + + A + + + + + + + + + + + + + A non-member function of A + + + A + + + + + + + + + + + + + A non-member function of A + + + A + + + + + + + + + + + + + A non-member function of A + + + A + + + + + + + + + + + + + A non-member function of A + + + A + + + + + diff --git a/test-files/golden-tests/config/auto-relates/auto-relates.yml b/test-files/golden-tests/config/auto-relates/auto-relates.yml new file mode 100644 index 0000000000..6244665d9f --- /dev/null +++ b/test-files/golden-tests/config/auto-relates/auto-relates.yml @@ -0,0 +1 @@ +auto-relates: true \ No newline at end of file diff --git a/test-files/golden-tests/config/auto-relates/derived.adoc b/test-files/golden-tests/config/auto-relates/derived.adoc new file mode 100644 index 0000000000..8aa1cdeaf9 --- /dev/null +++ b/test-files/golden-tests/config/auto-relates/derived.adoc @@ -0,0 +1,293 @@ += Reference +:mrdocs: + +[#index] +== Global namespace + +=== Types + +[cols=2] +|=== +| Name +| Description +| <> +| A concrete implementation for ABase +| <> +| A base class for non‐member functions +| <> +| A view of A +| <> +| Another view of A +|=== + +=== Functions + +[cols=2] +|=== +| Name +| Description +| <> +| A non‐member function of ABase +| <> +| A non‐member function of ABase +| <> +| A non‐member function of ABase +| <> +| A non‐member function of ABase +| <> +| A non‐member function of ABase +| <> +| A non‐member function of ABase only +|=== + +[#A] +== A + +A concrete implementation for ABase + +=== Synopsis + +Declared in `<derived.cpp>` + +[source,cpp,subs="verbatim,replacements,macros,-callouts"] +---- +struct A + : <>; +---- + +=== Non-Member Functions + +[,cols=2] +|=== +| Name +| Description +| <> +| A non‐member function of ABase +| <> +| A non‐member function of ABase +| <> +| A non‐member function of ABase +| <> +| A non‐member function of ABase +| <> +| A non‐member function of ABase +|=== + +[#ABase] +== ABase + +A base class for non‐member functions + +=== Synopsis + +Declared in `<derived.cpp>` + +[source,cpp,subs="verbatim,replacements,macros,-callouts"] +---- +struct ABase; +---- + +=== Non-Member Functions + +[,cols=2] +|=== +| Name +| Description +| <> +| A non‐member function of ABase +| <> +| A non‐member function of ABase +| <> +| A non‐member function of ABase +| <> +| A non‐member function of ABase +| <> +| A non‐member function of ABase +| <> +| A non‐member function of ABase only +|=== + +=== Derived Classes + +[,cols=2] +|=== +| Name +| Description +| <> +| A concrete implementation for ABase +| <> +| A view of A +|=== + +[#AView] +== AView + +A view of A + +=== Synopsis + +Declared in `<derived.cpp>` + +[source,cpp,subs="verbatim,replacements,macros,-callouts"] +---- +struct AView + : <>; +---- + +=== Non-Member Functions + +[,cols=2] +|=== +| Name +| Description +| <> +| A non‐member function of ABase +| <> +| A non‐member function of ABase +| <> +| A non‐member function of ABase +| <> +| A non‐member function of ABase +| <> +| A non‐member function of ABase +|=== + +=== Derived Classes + +[,cols=2] +|=== +| Name +| Description +| <> +| Another view of A +|=== + +[#AView2] +== AView2 + +Another view of A + +=== Synopsis + +Declared in `<derived.cpp>` + +[source,cpp,subs="verbatim,replacements,macros,-callouts"] +---- +struct AView2 + : <>; +---- + +=== Non-Member Functions + +[,cols=2] +|=== +| Name +| Description +| <> +| A non‐member function of ABase +| <> +| A non‐member function of ABase +| <> +| A non‐member function of ABase +| <> +| A non‐member function of ABase +| <> +| A non‐member function of ABase +|=== + +=== Description + +Used to test indirect derived classes + +[#f1] +== f1 + +A non‐member function of ABase + +=== Synopsis + +Declared in `<derived.cpp>` + +[source,cpp,subs="verbatim,replacements,macros,-callouts"] +---- +void +f1(<> const&); +---- + +[#f2] +== f2 + +A non‐member function of ABase + +=== Synopsis + +Declared in `<derived.cpp>` + +[source,cpp,subs="verbatim,replacements,macros,-callouts"] +---- +void +f2(<>&); +---- + +[#f3] +== f3 + +A non‐member function of ABase + +=== Synopsis + +Declared in `<derived.cpp>` + +[source,cpp,subs="verbatim,replacements,macros,-callouts"] +---- +void +f3(<> const*); +---- + +[#f4] +== f4 + +A non‐member function of ABase + +=== Synopsis + +Declared in `<derived.cpp>` + +[source,cpp,subs="verbatim,replacements,macros,-callouts"] +---- +void +f4(<>*); +---- + +[#f5] +== f5 + +A non‐member function of ABase + +=== Synopsis + +Declared in `<derived.cpp>` + +[source,cpp,subs="verbatim,replacements,macros,-callouts"] +---- +void +f5(<> const*); +---- + +[#n] +== n + +A non‐member function of ABase only + +=== Synopsis + +Declared in `<derived.cpp>` + +[source,cpp,subs="verbatim,replacements,macros,-callouts"] +---- +void +n(<>); +---- + + +[.small]#Created with https://www.mrdocs.com[MrDocs]# diff --git a/test-files/golden-tests/config/auto-relates/derived.cpp b/test-files/golden-tests/config/auto-relates/derived.cpp new file mode 100644 index 0000000000..341a0f16c0 --- /dev/null +++ b/test-files/golden-tests/config/auto-relates/derived.cpp @@ -0,0 +1,43 @@ +/** A base class for non-member functions + */ +struct ABase {}; + +/** A concrete implementation for ABase + */ +struct A : ABase {}; + +/** A view of A + */ +struct AView : ABase {}; + +/** Another view of A + + Used to test indirect derived classes +*/ +struct AView2 : AView {}; + +/** A non-member function of ABase + */ +void f1(ABase const&); + +/** A non-member function of ABase + */ +void f2(ABase&); + +/** A non-member function of ABase + */ +void f3(ABase const*); + +/** A non-member function of ABase + */ +void f4(ABase*); + +/** A non-member function of ABase + */ +void f5(ABase* const); + +/** A non-member function of ABase only + */ +void n(ABase); + + diff --git a/test-files/golden-tests/config/auto-relates/derived.html b/test-files/golden-tests/config/auto-relates/derived.html new file mode 100644 index 0000000000..10701acda6 --- /dev/null +++ b/test-files/golden-tests/config/auto-relates/derived.html @@ -0,0 +1,371 @@ + + +Reference + + +
+

Reference

+
+
+

Global namespace

+
+

Types

+ + + + + + + + + + + + + + +
NameDescription
A A concrete implementation for ABase
ABase A base class for non-member functions
AView A view of A
AView2 Another view of A
+ +

Functions

+ + + + + + + + + + + + + + + + +
NameDescription
f1 A non-member function of ABase
f2 A non-member function of ABase
f3 A non-member function of ABase
f4 A non-member function of ABase
f5 A non-member function of ABase
n A non-member function of ABase only
+ +
+
+
+

A

+
+A concrete implementation for ABase + +
+
+
+

Synopsis

+
+Declared in <derived.cpp>
+
+
+struct A
+    : ABase;
+
+
+
+ + +
+

Non-Member Functions

+ + + + + + + + + + + + + + +
NameDescription
f1A non-member function of ABase
f2A non-member function of ABase
f3A non-member function of ABase
f4A non-member function of ABase
f5A non-member function of ABase
+
+
+
+
+

ABase

+
+A base class for non-member functions + +
+
+
+

Synopsis

+
+Declared in <derived.cpp>
+
+
+struct ABase;
+
+
+
+ + +
+

Non-Member Functions

+ + + + + + + + + + + + + + + +
NameDescription
f1A non-member function of ABase
f2A non-member function of ABase
f3A non-member function of ABase
f4A non-member function of ABase
f5A non-member function of ABase
nA non-member function of ABase only
+
+
+

Derived Classes

+ + + + + + + + + + + +
NameDescription
A + A concrete implementation for ABase
AView + A view of A
+
+
+
+
+

AView

+
+A view of A + +
+
+
+

Synopsis

+
+Declared in <derived.cpp>
+
+
+struct AView
+    : ABase;
+
+
+
+ + +
+

Non-Member Functions

+ + + + + + + + + + + + + + +
NameDescription
f1A non-member function of ABase
f2A non-member function of ABase
f3A non-member function of ABase
f4A non-member function of ABase
f5A non-member function of ABase
+
+
+

Derived Classes

+ + + + + + + + + + +
NameDescription
AView2 + Another view of A
+
+
+
+
+

AView2

+
+Another view of A + +
+
+
+

Synopsis

+
+Declared in <derived.cpp>
+
+
+struct AView2
+    : AView;
+
+
+
+ + +
+

Non-Member Functions

+ + + + + + + + + + + + + + +
NameDescription
f1A non-member function of ABase
f2A non-member function of ABase
f3A non-member function of ABase
f4A non-member function of ABase
f5A non-member function of ABase
+
+
+

Description

+

Used to test indirect derived classes

+
+
+
+
+

f1

+
+A non-member function of ABase + +
+
+
+

Synopsis

+
+Declared in <derived.cpp>
+
+
+void
+f1(ABase const&);
+
+
+
+
+
+
+

f2

+
+A non-member function of ABase + +
+
+
+

Synopsis

+
+Declared in <derived.cpp>
+
+
+void
+f2(ABase&);
+
+
+
+
+
+
+

f3

+
+A non-member function of ABase + +
+
+
+

Synopsis

+
+Declared in <derived.cpp>
+
+
+void
+f3(ABase const*);
+
+
+
+
+
+
+

f4

+
+A non-member function of ABase + +
+
+
+

Synopsis

+
+Declared in <derived.cpp>
+
+
+void
+f4(ABase*);
+
+
+
+
+
+
+

f5

+
+A non-member function of ABase + +
+
+
+

Synopsis

+
+Declared in <derived.cpp>
+
+
+void
+f5(ABase const*);
+
+
+
+
+
+
+

n

+
+A non-member function of ABase only + +
+
+
+

Synopsis

+
+Declared in <derived.cpp>
+
+
+void
+n(ABase);
+
+
+
+
+ +
+
+

Created with MrDocs

+
+ + \ No newline at end of file diff --git a/test-files/golden-tests/config/auto-relates/derived.xml b/test-files/golden-tests/config/auto-relates/derived.xml new file mode 100644 index 0000000000..771e44d918 --- /dev/null +++ b/test-files/golden-tests/config/auto-relates/derived.xml @@ -0,0 +1,188 @@ + + + + + + + + + + + A concrete implementation for ABase + + + f1 + f2 + f3 + f4 + f5 + + + + + + + + A base class for non-member functions + + + f1 + f2 + f3 + f4 + f5 + n + + + + + + + + + + + A view of A + + + f1 + f2 + f3 + f4 + f5 + + + + + + + + + + + Another view of A + + + Used to test indirect derived classes + + + f1 + f2 + f3 + f4 + f5 + + + + + + + + + + + + + A non-member function of ABase + + + A + ABase + AView + AView2 + + + + + + + + + + + + + A non-member function of ABase + + + A + ABase + AView + AView2 + + + + + + + + + + + + + A non-member function of ABase + + + A + ABase + AView + AView2 + + + + + + + + + + + + + A non-member function of ABase + + + A + ABase + AView + AView2 + + + + + + + + + + + + + A non-member function of ABase + + + A + ABase + AView + AView2 + + + + + + + + + + + A non-member function of ABase only + + + ABase + + + + + diff --git a/test-files/golden-tests/config/auto-relates/derived.yml b/test-files/golden-tests/config/auto-relates/derived.yml new file mode 100644 index 0000000000..6244665d9f --- /dev/null +++ b/test-files/golden-tests/config/auto-relates/derived.yml @@ -0,0 +1 @@ +auto-relates: true \ No newline at end of file diff --git a/test-files/golden-tests/config/auto-relates/enum.adoc b/test-files/golden-tests/config/auto-relates/enum.adoc new file mode 100644 index 0000000000..0dd3e03eaf --- /dev/null +++ b/test-files/golden-tests/config/auto-relates/enum.adoc @@ -0,0 +1,181 @@ += Reference +:mrdocs: + +[#index] +== Global namespace + +=== Types + +[cols=2] +|=== +| Name +| Description +| <> +| Helper result class +| <> +| Helper result class +|=== + +=== Enums + +[cols=2] +|=== +| Name +| Description +| <> +| An enum with non‐member functions +|=== + +=== Functions + +[cols=2] +|=== +| Name +| Description +| <> +| Function that returns A +| <> +| Function that returns template on A +| <> +| Function that returns template on A +|=== + +[#Result] +== Result + +Helper result class + +=== Synopsis + +Declared in `<enum.cpp>` + +[source,cpp,subs="verbatim,replacements,macros,-callouts"] +---- +template<class T> +class Result; +---- + +=== Non-Member Functions + +[,cols=2] +|=== +| Name +| Description +| <> +| Function that returns template on A +|=== + +[#SmallVector] +== SmallVector + +Helper result class + +=== Synopsis + +Declared in `<enum.cpp>` + +[source,cpp,subs="verbatim,replacements,macros,-callouts"] +---- +template< + class T, + unsigned long N> +class SmallVector; +---- + +=== Non-Member Functions + +[,cols=2] +|=== +| Name +| Description +| <> +| Function that returns template on A +|=== + +[#E] +== E + +An enum with non‐member functions + +=== Synopsis + +Declared in `<enum.cpp>` + +[source,cpp,subs="verbatim,replacements,macros,-callouts"] +---- +enum class E : int; +---- + +=== Non-Member Functions + +[,cols=2] +|=== +| Name +| Description +| <> +| Function that returns A +| <> +| Function that returns template on A +| <> +| Function that returns template on A +|=== + +[#makeE] +== makeE + +Function that returns A + +=== Synopsis + +Declared in `<enum.cpp>` + +[source,cpp,subs="verbatim,replacements,macros,-callouts"] +---- +<> +makeE(); +---- + +=== Return Value + +An instance of A + +[#makeEs] +== makeEs + +Function that returns template on A + +=== Synopsis + +Declared in `<enum.cpp>` + +[source,cpp,subs="verbatim,replacements,macros,-callouts"] +---- +<><<>, 3> +makeEs(); +---- + +=== Return Value + +A vector of As + +[#tryMakeE] +== tryMakeE + +Function that returns template on A + +=== Synopsis + +Declared in `<enum.cpp>` + +[source,cpp,subs="verbatim,replacements,macros,-callouts"] +---- +<><<>> +tryMakeE(); +---- + +=== Return Value + +An instance of A or an error + + +[.small]#Created with https://www.mrdocs.com[MrDocs]# diff --git a/test-files/golden-tests/config/auto-relates/enum.cpp b/test-files/golden-tests/config/auto-relates/enum.cpp new file mode 100644 index 0000000000..39ca2348a7 --- /dev/null +++ b/test-files/golden-tests/config/auto-relates/enum.cpp @@ -0,0 +1,32 @@ +/** An enum with non-member functions + */ +enum class E {}; + +/** Helper result class + */ +template +class Result {}; + +/** Helper result class + */ +template +class SmallVector {}; + +/** Function that returns A + + @return An instance of A + */ +E makeE(); + +/** Function that returns template on A + + @return An instance of A or an error + */ +Result tryMakeE(); + +/** Function that returns template on A + + @return A vector of As + */ +SmallVector makeEs(); + diff --git a/test-files/golden-tests/config/auto-relates/enum.html b/test-files/golden-tests/config/auto-relates/enum.html new file mode 100644 index 0000000000..09bed4d59f --- /dev/null +++ b/test-files/golden-tests/config/auto-relates/enum.html @@ -0,0 +1,258 @@ + + +Reference + + +
+

Reference

+
+
+

Global namespace

+
+

Types

+ + + + + + + + + + + + +
NameDescription
Result Helper result class
SmallVector Helper result class
+ +

Enums

+ + + + + + + + + + + +
NameDescription
E An enum with non-member functions
+ +

Functions

+ + + + + + + + + + + + + +
NameDescription
makeE Function that returns A
makeEs Function that returns template on A
tryMakeE Function that returns template on A
+ +
+
+
+

Result

+
+Helper result class + +
+
+
+

Synopsis

+
+Declared in <enum.cpp>
+
+
+template<class T>
+class Result;
+
+
+
+ + +
+

Non-Member Functions

+ + + + + + + + + + +
NameDescription
tryMakeEFunction that returns template on A
+
+
+
+
+

SmallVector

+
+Helper result class + +
+
+
+

Synopsis

+
+Declared in <enum.cpp>
+
+
+template<
+    class T,
+    unsigned long N>
+class SmallVector;
+
+
+
+ + +
+

Non-Member Functions

+ + + + + + + + + + +
NameDescription
makeEsFunction that returns template on A
+
+
+
+
+

E

+
+An enum with non-member functions + +
+
+
+

Synopsis

+
+Declared in <enum.cpp>
+
+
+enum class E : int;
+
+
+
+
+

Members

+ + + + + + + + + +
NameDescription
+
+
+

Non-Member Functions

+ + + + + + + + + + + + +
NameDescription
makeEFunction that returns A
makeEsFunction that returns template on A
tryMakeEFunction that returns template on A
+
+
+
+
+

makeE

+
+Function that returns A + +
+
+
+

Synopsis

+
+Declared in <enum.cpp>
+
+
+E
+makeE();
+
+
+
+
+

Return Value

+An instance of A +
+
+
+
+

makeEs

+
+Function that returns template on A + +
+
+
+

Synopsis

+
+Declared in <enum.cpp>
+
+
+SmallVector<E, 3>
+makeEs();
+
+
+
+
+

Return Value

+A vector of As +
+
+
+
+

tryMakeE

+
+Function that returns template on A + +
+
+
+

Synopsis

+
+Declared in <enum.cpp>
+
+
+Result<E>
+tryMakeE();
+
+
+
+
+

Return Value

+An instance of A or an error +
+
+ +
+
+

Created with MrDocs

+
+ + \ No newline at end of file diff --git a/test-files/golden-tests/config/auto-relates/enum.xml b/test-files/golden-tests/config/auto-relates/enum.xml new file mode 100644 index 0000000000..5667f16fc2 --- /dev/null +++ b/test-files/golden-tests/config/auto-relates/enum.xml @@ -0,0 +1,104 @@ + + + + + + + + + + + + + An enum with non-member functions + + + makeE + makeEs + tryMakeE + + + + + + + + + + + Function that returns A + + + An instance of A + + + E + + + + + + + + + + + Function that returns template on A + + + A vector of As + + + E + SmallVector + + + + + + + + + + + Function that returns template on A + + + An instance of A or an error + + + E + Result + + + + + diff --git a/test-files/golden-tests/config/auto-relates/enum.yml b/test-files/golden-tests/config/auto-relates/enum.yml new file mode 100644 index 0000000000..6244665d9f --- /dev/null +++ b/test-files/golden-tests/config/auto-relates/enum.yml @@ -0,0 +1 @@ +auto-relates: true \ No newline at end of file diff --git a/test-files/golden-tests/config/auto-relates/no-auto-relates.adoc b/test-files/golden-tests/config/auto-relates/no-auto-relates.adoc new file mode 100644 index 0000000000..8e36388c01 --- /dev/null +++ b/test-files/golden-tests/config/auto-relates/no-auto-relates.adoc @@ -0,0 +1,142 @@ += Reference +:mrdocs: + +[#index] +== Global namespace + +=== Types + +[cols=2] +|=== +| Name +| Description +| <> +| A class with non‐member functions +|=== + +=== Functions + +[cols=2] +|=== +| Name +| Description +| <> +| A non‐member function of A +| <> +| A non‐member function of A +| <> +| A non‐member function of A +| <> +| A non‐member function of A +| <> +| A non‐member function of A +| <> +| A non‐member function of A +|=== + +[#A] +== A + +A class with non‐member functions + +=== Synopsis + +Declared in `<no‐auto‐relates.cpp>` + +[source,cpp,subs="verbatim,replacements,macros,-callouts"] +---- +class A; +---- + +[#f1] +== f1 + +A non‐member function of A + +=== Synopsis + +Declared in `<no‐auto‐relates.cpp>` + +[source,cpp,subs="verbatim,replacements,macros,-callouts"] +---- +void +f1(<>); +---- + +[#f2] +== f2 + +A non‐member function of A + +=== Synopsis + +Declared in `<no‐auto‐relates.cpp>` + +[source,cpp,subs="verbatim,replacements,macros,-callouts"] +---- +void +f2(<>&); +---- + +[#f3] +== f3 + +A non‐member function of A + +=== Synopsis + +Declared in `<no‐auto‐relates.cpp>` + +[source,cpp,subs="verbatim,replacements,macros,-callouts"] +---- +void +f3(<> const&); +---- + +[#f4] +== f4 + +A non‐member function of A + +=== Synopsis + +Declared in `<no‐auto‐relates.cpp>` + +[source,cpp,subs="verbatim,replacements,macros,-callouts"] +---- +void +f4(<>*); +---- + +[#f5] +== f5 + +A non‐member function of A + +=== Synopsis + +Declared in `<no‐auto‐relates.cpp>` + +[source,cpp,subs="verbatim,replacements,macros,-callouts"] +---- +void +f5(<> const*); +---- + +[#f6] +== f6 + +A non‐member function of A + +=== Synopsis + +Declared in `<no‐auto‐relates.cpp>` + +[source,cpp,subs="verbatim,replacements,macros,-callouts"] +---- +void +f6(<> const*); +---- + + +[.small]#Created with https://www.mrdocs.com[MrDocs]# diff --git a/test-files/golden-tests/config/auto-relates/no-auto-relates.cpp b/test-files/golden-tests/config/auto-relates/no-auto-relates.cpp new file mode 100644 index 0000000000..a0a168f1a0 --- /dev/null +++ b/test-files/golden-tests/config/auto-relates/no-auto-relates.cpp @@ -0,0 +1,27 @@ +/** A class with non-member functions +*/ +class A {}; + +/** A non-member function of A + */ +void f1(A); + +/** A non-member function of A + */ +void f2(A&); + +/** A non-member function of A + */ +void f3(A const&); + +/** A non-member function of A + */ +void f4(A*); + +/** A non-member function of A + */ +void f5(A* const); + +/** A non-member function of A + */ +void f6(A const*); diff --git a/test-files/golden-tests/config/auto-relates/no-auto-relates.html b/test-files/golden-tests/config/auto-relates/no-auto-relates.html new file mode 100644 index 0000000000..16e5e5355e --- /dev/null +++ b/test-files/golden-tests/config/auto-relates/no-auto-relates.html @@ -0,0 +1,193 @@ + + +Reference + + +
+

Reference

+
+
+

Global namespace

+
+

Types

+ + + + + + + + + + + +
NameDescription
A A class with non-member functions
+ +

Functions

+ + + + + + + + + + + + + + + + +
NameDescription
f1 A non-member function of A
f2 A non-member function of A
f3 A non-member function of A
f4 A non-member function of A
f5 A non-member function of A
f6 A non-member function of A
+ +
+
+
+

A

+
+A class with non-member functions + +
+
+
+

Synopsis

+
+Declared in <no-auto-relates.cpp>
+
+
+class A;
+
+
+
+ + +
+
+
+

f1

+
+A non-member function of A + +
+
+
+

Synopsis

+
+Declared in <no-auto-relates.cpp>
+
+
+void
+f1(A);
+
+
+
+
+
+
+

f2

+
+A non-member function of A + +
+
+
+

Synopsis

+
+Declared in <no-auto-relates.cpp>
+
+
+void
+f2(A&);
+
+
+
+
+
+
+

f3

+
+A non-member function of A + +
+
+
+

Synopsis

+
+Declared in <no-auto-relates.cpp>
+
+
+void
+f3(A const&);
+
+
+
+
+
+
+

f4

+
+A non-member function of A + +
+
+
+

Synopsis

+
+Declared in <no-auto-relates.cpp>
+
+
+void
+f4(A*);
+
+
+
+
+
+
+

f5

+
+A non-member function of A + +
+
+
+

Synopsis

+
+Declared in <no-auto-relates.cpp>
+
+
+void
+f5(A const*);
+
+
+
+
+
+
+

f6

+
+A non-member function of A + +
+
+
+

Synopsis

+
+Declared in <no-auto-relates.cpp>
+
+
+void
+f6(A const*);
+
+
+
+
+ +
+
+

Created with MrDocs

+
+ + \ No newline at end of file diff --git a/test-files/golden-tests/config/auto-relates/no-auto-relates.xml b/test-files/golden-tests/config/auto-relates/no-auto-relates.xml new file mode 100644 index 0000000000..9b85a05bb7 --- /dev/null +++ b/test-files/golden-tests/config/auto-relates/no-auto-relates.xml @@ -0,0 +1,90 @@ + + + + + + + + A class with non-member functions + + + + + + + + + + + A non-member function of A + + + + + + + + + + + + + A non-member function of A + + + + + + + + + + + + + A non-member function of A + + + + + + + + + + + + + A non-member function of A + + + + + + + + + + + + + A non-member function of A + + + + + + + + + + + + + A non-member function of A + + + + + diff --git a/test-files/golden-tests/config/auto-relates/no-auto-relates.yml b/test-files/golden-tests/config/auto-relates/no-auto-relates.yml new file mode 100644 index 0000000000..362565607f --- /dev/null +++ b/test-files/golden-tests/config/auto-relates/no-auto-relates.yml @@ -0,0 +1 @@ +auto-relates: false \ No newline at end of file diff --git a/test-files/golden-tests/config/auto-relates/qualified.adoc b/test-files/golden-tests/config/auto-relates/qualified.adoc new file mode 100644 index 0000000000..bec8463fca --- /dev/null +++ b/test-files/golden-tests/config/auto-relates/qualified.adoc @@ -0,0 +1,244 @@ += Reference +:mrdocs: + +[#index] +== Global namespace + +=== Namespaces + +[cols=1] +|=== +| Name +| <> +| <> +|=== + +=== Types + +[cols=2] +|=== +| Name +| Description +| <> +| A class with non‐member functions +|=== + +=== Functions + +[cols=2] +|=== +| Name +| Description +| <> +| A non‐member function of A +| <> +| A non‐member function of ::N::B +|=== + +[#N] +== N + +=== Namespaces + +[cols=1] +|=== +| Name +| <> +|=== + +=== Types + +[cols=2] +|=== +| Name +| Description +| <> +| A nested class with non‐member functions +|=== + +=== Functions + +[cols=2] +|=== +| Name +| Description +| <> +| A non‐member function of A +| <> +| A non‐member function of B +|=== + +[#N-M] +== <>::M + +=== Functions + +[cols=2] +|=== +| Name +| Description +| <> +| A non‐member function of ::N::B +|=== + +[#N-M-f4] +== <>::<>::f4 + +A non‐member function of ::N::B + +=== Synopsis + +Declared in `<qualified.cpp>` + +[source,cpp,subs="verbatim,replacements,macros,-callouts"] +---- +void +f4(<>::<> const&); +---- + +[#N-B] +== <>::B + +A nested class with non‐member functions + +=== Synopsis + +Declared in `<qualified.cpp>` + +[source,cpp,subs="verbatim,replacements,macros,-callouts"] +---- +struct B; +---- + +=== Non-Member Functions + +[,cols=2] +|=== +| Name +| Description +| <> +| A non‐member function of B +| <> +| A non‐member function of ::N::B +| <> +| A non‐member function of ::N::B +| <> +| A non‐member function of ::N::B +|=== + +[#N-f2] +== <>::f2 + +A non‐member function of A + +=== Synopsis + +Declared in `<qualified.cpp>` + +[source,cpp,subs="verbatim,replacements,macros,-callouts"] +---- +void +f2(<>&); +---- + +[#N-f3] +== <>::f3 + +A non‐member function of B + +=== Synopsis + +Declared in `<qualified.cpp>` + +[source,cpp,subs="verbatim,replacements,macros,-callouts"] +---- +void +f3(<>::<> const&); +---- + +[#O] +== O + +=== Functions + +[cols=2] +|=== +| Name +| Description +| <> +| A non‐member function of ::N::B +|=== + +[#O-f6] +== <>::f6 + +A non‐member function of ::N::B + +=== Synopsis + +Declared in `<qualified.cpp>` + +[source,cpp,subs="verbatim,replacements,macros,-callouts"] +---- +void +f6(<>::<> const&); +---- + +[#A] +== A + +A class with non‐member functions + +=== Synopsis + +Declared in `<qualified.cpp>` + +[source,cpp,subs="verbatim,replacements,macros,-callouts"] +---- +struct A; +---- + +=== Non-Member Functions + +[,cols=2] +|=== +| Name +| Description +| <> +| A non‐member function of A +| <> +| A non‐member function of A +|=== + +[#f1] +== f1 + +A non‐member function of A + +=== Synopsis + +Declared in `<qualified.cpp>` + +[source,cpp,subs="verbatim,replacements,macros,-callouts"] +---- +void +f1(<> const&); +---- + +[#f5] +== f5 + +A non‐member function of ::N::B + +=== Synopsis + +Declared in `<qualified.cpp>` + +[source,cpp,subs="verbatim,replacements,macros,-callouts"] +---- +void +f5(<>::<> const&); +---- + + +[.small]#Created with https://www.mrdocs.com[MrDocs]# diff --git a/test-files/golden-tests/config/auto-relates/qualified.cpp b/test-files/golden-tests/config/auto-relates/qualified.cpp new file mode 100644 index 0000000000..d737e41ef4 --- /dev/null +++ b/test-files/golden-tests/config/auto-relates/qualified.cpp @@ -0,0 +1,37 @@ +/** A class with non-member functions + */ +struct A {}; + +/** A non-member function of A + */ +void f1(A const&); + +namespace N { + /** A non-member function of A + */ + void f2(A&); + + /** A nested class with non-member functions + */ + struct B {}; + + /** A non-member function of B + */ + void f3(::N::B const&); + + namespace M { + /** A non-member function of ::N::B + */ + void f4(::N::B const&); + } +} + +/** A non-member function of ::N::B + */ +void f5(::N::B const&); + +namespace O { + /** A non-member function of ::N::B + */ + void f6(::N::B const&); +} \ No newline at end of file diff --git a/test-files/golden-tests/config/auto-relates/qualified.html b/test-files/golden-tests/config/auto-relates/qualified.html new file mode 100644 index 0000000000..d75351b35c --- /dev/null +++ b/test-files/golden-tests/config/auto-relates/qualified.html @@ -0,0 +1,341 @@ + + +Reference + + +
+

Reference

+
+
+

Global namespace

+
+

Namespaces

+ + + + + + + + + + + +
Name
N
O
+ +

Types

+ + + + + + + + + + + +
NameDescription
A A class with non-member functions
+ +

Functions

+ + + + + + + + + + + + +
NameDescription
f1 A non-member function of A
f5 A non-member function of ::N::B
+ +
+
+
+

N

+
+

Namespaces

+ + + + + + + + + + +
Name
M
+ +

Types

+ + + + + + + + + + + +
NameDescription
B A nested class with non-member functions
+ +

Functions

+ + + + + + + + + + + + +
NameDescription
f2 A non-member function of A
f3 A non-member function of B
+ +
+
+
+

N::M

+
+

Functions

+ + + + + + + + + + + +
NameDescription
f4 A non-member function of ::N::B
+ +
+
+
+

N::M::f4

+
+A non-member function of ::N::B + +
+
+
+

Synopsis

+
+Declared in <qualified.cpp>
+
+
+void
+f4(N::B const&);
+
+
+
+
+
+
+

N::B

+
+A nested class with non-member functions + +
+
+
+

Synopsis

+
+Declared in <qualified.cpp>
+
+
+struct B;
+
+
+
+ + +
+

Non-Member Functions

+ + + + + + + + + + + + + +
NameDescription
f3A non-member function of B
M::f4A non-member function of ::N::B
::f5A non-member function of ::N::B
::O::f6A non-member function of ::N::B
+
+
+
+
+

N::f2

+
+A non-member function of A + +
+
+
+

Synopsis

+
+Declared in <qualified.cpp>
+
+
+void
+f2(A&);
+
+
+
+
+
+
+

N::f3

+
+A non-member function of B + +
+
+
+

Synopsis

+
+Declared in <qualified.cpp>
+
+
+void
+f3(N::B const&);
+
+
+
+
+
+
+

O

+
+

Functions

+ + + + + + + + + + + +
NameDescription
f6 A non-member function of ::N::B
+ +
+
+
+

O::f6

+
+A non-member function of ::N::B + +
+
+
+

Synopsis

+
+Declared in <qualified.cpp>
+
+
+void
+f6(N::B const&);
+
+
+
+
+
+
+

A

+
+A class with non-member functions + +
+
+
+

Synopsis

+
+Declared in <qualified.cpp>
+
+
+struct A;
+
+
+
+ + +
+

Non-Member Functions

+ + + + + + + + + + + +
NameDescription
f1A non-member function of A
N::f2A non-member function of A
+
+
+
+
+

f1

+
+A non-member function of A + +
+
+
+

Synopsis

+
+Declared in <qualified.cpp>
+
+
+void
+f1(A const&);
+
+
+
+
+
+
+

f5

+
+A non-member function of ::N::B + +
+
+
+

Synopsis

+
+Declared in <qualified.cpp>
+
+
+void
+f5(N::B const&);
+
+
+
+
+ +
+
+

Created with MrDocs

+
+ + \ No newline at end of file diff --git a/test-files/golden-tests/config/auto-relates/qualified.xml b/test-files/golden-tests/config/auto-relates/qualified.xml new file mode 100644 index 0000000000..c510ae9824 --- /dev/null +++ b/test-files/golden-tests/config/auto-relates/qualified.xml @@ -0,0 +1,134 @@ + + + + + + + + + + + + + + + A non-member function of ::N::B + + + B + + + + + + + + + A nested class with non-member functions + + + f3 + M::f4 + ::f5 + ::O::f6 + + + + + + + + + + + + + A non-member function of A + + + A + + + + + + + + + + + + + A non-member function of B + + + B + + + + + + + + + + + + + + + A non-member function of ::N::B + + + B + + + + + + + + + A class with non-member functions + + + f1 + N::f2 + + + + + + + + + + + + + A non-member function of A + + + A + + + + + + + + + + + + + A non-member function of ::N::B + + + B + + + + + diff --git a/test-files/golden-tests/config/auto-relates/qualified.yml b/test-files/golden-tests/config/auto-relates/qualified.yml new file mode 100644 index 0000000000..6244665d9f --- /dev/null +++ b/test-files/golden-tests/config/auto-relates/qualified.yml @@ -0,0 +1 @@ +auto-relates: true \ No newline at end of file diff --git a/test-files/golden-tests/config/auto-relates/remove-friend.adoc b/test-files/golden-tests/config/auto-relates/remove-friend.adoc new file mode 100644 index 0000000000..9a1462ff3c --- /dev/null +++ b/test-files/golden-tests/config/auto-relates/remove-friend.adoc @@ -0,0 +1,168 @@ += Reference +:mrdocs: + +[#index] +== Global namespace + +=== Types + +[cols=2] +|=== +| Name +| Description +| <> +| A record with non‐member functions +|=== + +=== Functions + +[cols=2] +|=== +| Name +| Description +| <> +| Non‐member function of A +| <> +| Friend function not listed as non‐member +|=== + +[#A] +== A + +A record with non‐member functions + +=== Synopsis + +Declared in `<remove‐friend.cpp>` + +[source,cpp,subs="verbatim,replacements,macros,-callouts"] +---- +class A; +---- + +=== Friends + +[cols=2] +|=== +| Name +| Description +| <> +| Friend function not listed as non‐member +|=== + +=== Non-Member Functions + +[,cols=2] +|=== +| Name +| Description +| <> +| Non‐member function of A +|=== + +[#A-08friend] +== operator== + +Friend function not listed as non‐member + +=== Synopsis + +Declared in `<remove‐friend.cpp>` + +[source,cpp,subs="verbatim,replacements,macros,-callouts"] +---- +friend +bool +operator==( + <> const& lhs, + <> const& rhs); +---- + +=== Description + +Friends are already listed in the class definition. + +=== Return Value + +`true` if the objects are equal + +=== Parameters + +[cols=2] +|=== +| Name +| Description +| *lhs* +| The left‐hand side of the comparison +| *rhs* +| The right‐hand side of the comparison +|=== + +[#to_string] +== to_string + +Non‐member function of A + +=== Synopsis + +Declared in `<remove‐friend.cpp>` + +[source,cpp,subs="verbatim,replacements,macros,-callouts"] +---- +char const* +to_string(<> const& a); +---- + +=== Return Value + +The string representation of the object + +=== Parameters + +[cols=2] +|=== +| Name +| Description +| *a* +| The object to stringify +|=== + +[#operator_eq] +== operator== + +Friend function not listed as non‐member + +=== Synopsis + +Declared in `<remove‐friend.cpp>` + +[source,cpp,subs="verbatim,replacements,macros,-callouts"] +---- +bool +operator==( + <> const& lhs, + <> const& rhs); +---- + +=== Description + +Friends are already listed in the class definition. + +=== Return Value + +`true` if the objects are equal + +=== Parameters + +[cols=2] +|=== +| Name +| Description +| *lhs* +| The left‐hand side of the comparison +| *rhs* +| The right‐hand side of the comparison +|=== + + +[.small]#Created with https://www.mrdocs.com[MrDocs]# diff --git a/test-files/golden-tests/config/auto-relates/remove-friend.cpp b/test-files/golden-tests/config/auto-relates/remove-friend.cpp new file mode 100644 index 0000000000..18674408ac --- /dev/null +++ b/test-files/golden-tests/config/auto-relates/remove-friend.cpp @@ -0,0 +1,24 @@ +/** A record with non-member functions + */ +class A { +public: + /** Friend function not listed as non-member + + Friends are already listed in the class definition. + + @param lhs The left-hand side of the comparison + @param rhs The right-hand side of the comparison + @return `true` if the objects are equal + */ + friend + bool + operator==(A const& lhs, A const& rhs); +}; + +/** Non-member function of A + + @param a The object to stringify + @return The string representation of the object + */ +char const* +to_string(A const& a); \ No newline at end of file diff --git a/test-files/golden-tests/config/auto-relates/remove-friend.html b/test-files/golden-tests/config/auto-relates/remove-friend.html new file mode 100644 index 0000000000..f4e3802499 --- /dev/null +++ b/test-files/golden-tests/config/auto-relates/remove-friend.html @@ -0,0 +1,241 @@ + + +Reference + + +
+

Reference

+
+
+

Global namespace

+
+

Types

+ + + + + + + + + + + +
NameDescription
A A record with non-member functions
+ +

Functions

+ + + + + + + + + + + + +
NameDescription
to_string Non-member function of A
operator== Friend function not listed as non-member
+ +
+
+
+

A

+
+A record with non-member functions + +
+
+
+

Synopsis

+
+Declared in <remove-friend.cpp>
+
+
+class A;
+
+
+
+

Friends

+ + + + + + + + + + + +
NameDescription
operator== Friend function not listed as non-member
+ + + +
+

Non-Member Functions

+ + + + + + + + + + +
NameDescription
to_stringNon-member function of A
+
+
+
+
+

operator==

+
+Friend function not listed as non-member + +
+
+
+

Synopsis

+
+Declared in <remove-friend.cpp>
+
+
+friend
+bool
+operator==(
+    A const& lhs,
+    A const& rhs);
+
+
+
+
+

Description

+

Friends are already listed in the class definition.

+
+
+

Return Value

+true if the objects are equal +
+
+

Parameters

+ + + + + + + + + + + + + + + + + +
NameDescription
lhsThe left-hand side of the comparison
rhsThe right-hand side of the comparison
+
+
+
+
+

to_string

+
+Non-member function of A + +
+
+
+

Synopsis

+
+Declared in <remove-friend.cpp>
+
+
+char const*
+to_string(A const& a);
+
+
+
+
+

Return Value

+The string representation of the object +
+
+

Parameters

+ + + + + + + + + + + + + +
NameDescription
aThe object to stringify
+
+
+
+
+

operator==

+
+Friend function not listed as non-member + +
+
+
+

Synopsis

+
+Declared in <remove-friend.cpp>
+
+
+bool
+operator==(
+    A const& lhs,
+    A const& rhs);
+
+
+
+
+

Description

+

Friends are already listed in the class definition.

+
+
+

Return Value

+true if the objects are equal +
+
+

Parameters

+ + + + + + + + + + + + + + + + + +
NameDescription
lhsThe left-hand side of the comparison
rhsThe right-hand side of the comparison
+
+
+ +
+
+

Created with MrDocs

+
+ + \ No newline at end of file diff --git a/test-files/golden-tests/config/auto-relates/remove-friend.xml b/test-files/golden-tests/config/auto-relates/remove-friend.xml new file mode 100644 index 0000000000..f9349dac31 --- /dev/null +++ b/test-files/golden-tests/config/auto-relates/remove-friend.xml @@ -0,0 +1,101 @@ + + + + + + + + A record with non-member functions + + + to_string + + + + + + + Friend function not listed as non-member + + + Friends are already listed in the class definition. + + + true + if the objects are equal + + + The left-hand side of the comparison + + + The right-hand side of the comparison + + + + + + + + + + + + + + + + + + + + Non-member function of A + + + The string representation of the object + + + The object to stringify + + + A + + + + + + + + + + + + + + + + + + + + + + Friend function not listed as non-member + + + Friends are already listed in the class definition. + + + true + if the objects are equal + + + The left-hand side of the comparison + + + The right-hand side of the comparison + + + + + diff --git a/test-files/golden-tests/config/auto-relates/remove-friend.yml b/test-files/golden-tests/config/auto-relates/remove-friend.yml new file mode 100644 index 0000000000..6244665d9f --- /dev/null +++ b/test-files/golden-tests/config/auto-relates/remove-friend.yml @@ -0,0 +1 @@ +auto-relates: true \ No newline at end of file diff --git a/test-files/golden-tests/config/auto-relates/return-type.adoc b/test-files/golden-tests/config/auto-relates/return-type.adoc new file mode 100644 index 0000000000..3d6801a81f --- /dev/null +++ b/test-files/golden-tests/config/auto-relates/return-type.adoc @@ -0,0 +1,173 @@ += Reference +:mrdocs: + +[#index] +== Global namespace + +=== Types + +[cols=2] +|=== +| Name +| Description +| <> +| A class with non‐member functions +| <> +| Helper result class +| <> +| Helper result class +|=== + +=== Functions + +[cols=2] +|=== +| Name +| Description +| <> +| Function that returns A +| <> +| Function that returns template on A +| <> +| Function that returns template on A +|=== + +[#A] +== A + +A class with non‐member functions + +=== Synopsis + +Declared in `<return‐type.cpp>` + +[source,cpp,subs="verbatim,replacements,macros,-callouts"] +---- +class A; +---- + +=== Non-Member Functions + +[,cols=2] +|=== +| Name +| Description +| <> +| Function that returns A +| <> +| Function that returns template on A +| <> +| Function that returns template on A +|=== + +[#Result] +== Result + +Helper result class + +=== Synopsis + +Declared in `<return‐type.cpp>` + +[source,cpp,subs="verbatim,replacements,macros,-callouts"] +---- +template<class T> +class Result; +---- + +=== Non-Member Functions + +[,cols=2] +|=== +| Name +| Description +| <> +| Function that returns template on A +|=== + +[#SmallVector] +== SmallVector + +Helper result class + +=== Synopsis + +Declared in `<return‐type.cpp>` + +[source,cpp,subs="verbatim,replacements,macros,-callouts"] +---- +template< + class T, + unsigned long N> +class SmallVector; +---- + +=== Non-Member Functions + +[,cols=2] +|=== +| Name +| Description +| <> +| Function that returns template on A +|=== + +[#makeA] +== makeA + +Function that returns A + +=== Synopsis + +Declared in `<return‐type.cpp>` + +[source,cpp,subs="verbatim,replacements,macros,-callouts"] +---- +<> +makeA(); +---- + +=== Return Value + +An instance of A + +[#makeAs] +== makeAs + +Function that returns template on A + +=== Synopsis + +Declared in `<return‐type.cpp>` + +[source,cpp,subs="verbatim,replacements,macros,-callouts"] +---- +<><<>, 3> +makeAs(); +---- + +=== Return Value + +A vector of As + +[#tryMakeA] +== tryMakeA + +Function that returns template on A + +=== Synopsis + +Declared in `<return‐type.cpp>` + +[source,cpp,subs="verbatim,replacements,macros,-callouts"] +---- +<><<>> +tryMakeA(); +---- + +=== Return Value + +An instance of A or an error + + +[.small]#Created with https://www.mrdocs.com[MrDocs]# diff --git a/test-files/golden-tests/config/auto-relates/return-type.cpp b/test-files/golden-tests/config/auto-relates/return-type.cpp new file mode 100644 index 0000000000..46c5eda020 --- /dev/null +++ b/test-files/golden-tests/config/auto-relates/return-type.cpp @@ -0,0 +1,32 @@ +/** A class with non-member functions + */ +class A {}; + +/** Helper result class + */ +template +class Result {}; + +/** Helper result class + */ +template +class SmallVector {}; + +/** Function that returns A + + @return An instance of A + */ +A makeA(); + +/** Function that returns template on A + + @return An instance of A or an error + */ +Result tryMakeA(); + +/** Function that returns template on A + + @return A vector of As + */ +SmallVector makeAs(); + diff --git a/test-files/golden-tests/config/auto-relates/return-type.html b/test-files/golden-tests/config/auto-relates/return-type.html new file mode 100644 index 0000000000..716f41d9b0 --- /dev/null +++ b/test-files/golden-tests/config/auto-relates/return-type.html @@ -0,0 +1,234 @@ + + +Reference + + +
+

Reference

+
+
+

Global namespace

+
+

Types

+ + + + + + + + + + + + + +
NameDescription
A A class with non-member functions
Result Helper result class
SmallVector Helper result class
+ +

Functions

+ + + + + + + + + + + + + +
NameDescription
makeA Function that returns A
makeAs Function that returns template on A
tryMakeA Function that returns template on A
+ +
+
+
+

A

+
+A class with non-member functions + +
+
+
+

Synopsis

+
+Declared in <return-type.cpp>
+
+
+class A;
+
+
+
+ + +
+

Non-Member Functions

+ + + + + + + + + + + + +
NameDescription
makeAFunction that returns A
makeAsFunction that returns template on A
tryMakeAFunction that returns template on A
+
+
+
+
+

Result

+
+Helper result class + +
+
+
+

Synopsis

+
+Declared in <return-type.cpp>
+
+
+template<class T>
+class Result;
+
+
+
+ + +
+

Non-Member Functions

+ + + + + + + + + + +
NameDescription
tryMakeAFunction that returns template on A
+
+
+
+
+

SmallVector

+
+Helper result class + +
+
+
+

Synopsis

+
+Declared in <return-type.cpp>
+
+
+template<
+    class T,
+    unsigned long N>
+class SmallVector;
+
+
+
+ + +
+

Non-Member Functions

+ + + + + + + + + + +
NameDescription
makeAsFunction that returns template on A
+
+
+
+
+
+

makeAs

+
+Function that returns template on A + +
+
+
+

Synopsis

+
+Declared in <return-type.cpp>
+
+
+SmallVector<A, 3>
+makeAs();
+
+
+
+
+

Return Value

+A vector of As +
+
+
+
+

tryMakeA

+
+Function that returns template on A + +
+
+
+

Synopsis

+
+Declared in <return-type.cpp>
+
+
+Result<A>
+tryMakeA();
+
+
+
+
+

Return Value

+An instance of A or an error +
+
+ +
+
+

Created with MrDocs

+
+ + \ No newline at end of file diff --git a/test-files/golden-tests/config/auto-relates/return-type.xml b/test-files/golden-tests/config/auto-relates/return-type.xml new file mode 100644 index 0000000000..28170572e8 --- /dev/null +++ b/test-files/golden-tests/config/auto-relates/return-type.xml @@ -0,0 +1,101 @@ + + + + + + + + A class with non-member functions + + + makeA + makeAs + tryMakeA + + + + + + + + + + + + + Function that returns A + + + An instance of A + + + A + + + + + + + + + + + Function that returns template on A + + + A vector of As + + + A + SmallVector + + + + + + + + + + + Function that returns template on A + + + An instance of A or an error + + + A + Result + + + + + diff --git a/test-files/golden-tests/config/auto-relates/return-type.yml b/test-files/golden-tests/config/auto-relates/return-type.yml new file mode 100644 index 0000000000..6244665d9f --- /dev/null +++ b/test-files/golden-tests/config/auto-relates/return-type.yml @@ -0,0 +1 @@ +auto-relates: true \ No newline at end of file diff --git a/test-files/golden-tests/config/inherit-base-members/copy-dependencies.adoc b/test-files/golden-tests/config/inherit-base-members/copy-dependencies.adoc index 31426c0196..fba0fcacaa 100644 --- a/test-files/golden-tests/config/inherit-base-members/copy-dependencies.adoc +++ b/test-files/golden-tests/config/inherit-base-members/copy-dependencies.adoc @@ -67,6 +67,16 @@ class base | This function should be shadowed by derived classes. |=== +=== Derived Classes + +[,cols=2] +|=== +| Name +| Description +| <> +| +|=== + [#base-base_inherited] == <>::base_inherited @@ -181,6 +191,16 @@ class base_base; | This function should be indirectly inherited by derived classes. |=== +=== Derived Classes + +[,cols=2] +|=== +| Name +| Description +| <> +| +|=== + [#base_base-base_base_inherited] == <>::base_base_inherited diff --git a/test-files/golden-tests/config/inherit-base-members/copy-dependencies.html b/test-files/golden-tests/config/inherit-base-members/copy-dependencies.html index e97d47f8b5..3e5a5273c7 100644 --- a/test-files/golden-tests/config/inherit-base-members/copy-dependencies.html +++ b/test-files/golden-tests/config/inherit-base-members/copy-dependencies.html @@ -79,6 +79,21 @@

Protected Member Functions

+
+

Derived Classes

+ + + + + + + + + + +
NameDescription
derived +
+
@@ -231,6 +246,21 @@

Member Functions

+
+

Derived Classes

+ + + + + + + + + + +
NameDescription
base +
+
diff --git a/test-files/golden-tests/config/inherit-base-members/copy.adoc b/test-files/golden-tests/config/inherit-base-members/copy.adoc index 4175c2fb05..dee00a9622 100644 --- a/test-files/golden-tests/config/inherit-base-members/copy.adoc +++ b/test-files/golden-tests/config/inherit-base-members/copy.adoc @@ -67,6 +67,16 @@ class base | This function should be shadowed by derived classes. |=== +=== Derived Classes + +[,cols=2] +|=== +| Name +| Description +| <> +| +|=== + [#base-base_base_inherited] == <>::base_base_inherited @@ -211,6 +221,16 @@ class base_base; | This function should be indirectly inherited by derived classes. |=== +=== Derived Classes + +[,cols=2] +|=== +| Name +| Description +| <> +| +|=== + [#base_base-base_base_inherited] == <>::base_base_inherited diff --git a/test-files/golden-tests/config/inherit-base-members/copy.html b/test-files/golden-tests/config/inherit-base-members/copy.html index 66f1984879..27a7abb0b6 100644 --- a/test-files/golden-tests/config/inherit-base-members/copy.html +++ b/test-files/golden-tests/config/inherit-base-members/copy.html @@ -79,6 +79,21 @@

Protected Member Functions

+
+

Derived Classes

+ + + + + + + + + + +
NameDescription
derived +
+
@@ -271,6 +286,21 @@

Member Functions

+
+

Derived Classes

+ + + + + + + + + + +
NameDescription
base +
+
diff --git a/test-files/golden-tests/config/inherit-base-members/never.adoc b/test-files/golden-tests/config/inherit-base-members/never.adoc index 88c2f84285..777e23a25e 100644 --- a/test-files/golden-tests/config/inherit-base-members/never.adoc +++ b/test-files/golden-tests/config/inherit-base-members/never.adoc @@ -63,6 +63,16 @@ class base | This function should be shadowed by derived classes. |=== +=== Derived Classes + +[,cols=2] +|=== +| Name +| Description +| <> +| +|=== + [#base-base_inherited] == <>::base_inherited @@ -177,6 +187,16 @@ class base_base; | This function should be indirectly inherited by derived classes. |=== +=== Derived Classes + +[,cols=2] +|=== +| Name +| Description +| <> +| +|=== + [#base_base-base_base_inherited] == <>::base_base_inherited diff --git a/test-files/golden-tests/config/inherit-base-members/never.html b/test-files/golden-tests/config/inherit-base-members/never.html index 3d80af6c31..6322cfdf94 100644 --- a/test-files/golden-tests/config/inherit-base-members/never.html +++ b/test-files/golden-tests/config/inherit-base-members/never.html @@ -77,6 +77,21 @@

Protected Member Functions

+
+

Derived Classes

+ + + + + + + + + + +
NameDescription
derived +
+
@@ -229,6 +244,21 @@

Member Functions

+
+

Derived Classes

+ + + + + + + + + + +
NameDescription
base +
+
diff --git a/test-files/golden-tests/config/inherit-base-members/reference.adoc b/test-files/golden-tests/config/inherit-base-members/reference.adoc index 2fee2e906b..fda5c07e11 100644 --- a/test-files/golden-tests/config/inherit-base-members/reference.adoc +++ b/test-files/golden-tests/config/inherit-base-members/reference.adoc @@ -67,6 +67,16 @@ class base | This function should be shadowed by derived classes. |=== +=== Derived Classes + +[,cols=2] +|=== +| Name +| Description +| <> +| +|=== + [#base-base_inherited] == <>::base_inherited @@ -181,6 +191,16 @@ class base_base; | This function should be indirectly inherited by derived classes. |=== +=== Derived Classes + +[,cols=2] +|=== +| Name +| Description +| <> +| +|=== + [#base_base-base_base_inherited] == <>::base_base_inherited diff --git a/test-files/golden-tests/config/inherit-base-members/reference.html b/test-files/golden-tests/config/inherit-base-members/reference.html index a22e425692..ab335b6474 100644 --- a/test-files/golden-tests/config/inherit-base-members/reference.html +++ b/test-files/golden-tests/config/inherit-base-members/reference.html @@ -79,6 +79,21 @@

Protected Member Functions

+
+

Derived Classes

+ + + + + + + + + + +
NameDescription
derived +
+
@@ -231,6 +246,21 @@

Member Functions

+
+

Derived Classes

+ + + + + + + + + + +
NameDescription
base +
+
diff --git a/test-files/golden-tests/core/libcxx.adoc b/test-files/golden-tests/core/libcxx.adoc index eab4c4dee2..bbed527e9d 100644 --- a/test-files/golden-tests/core/libcxx.adoc +++ b/test-files/golden-tests/core/libcxx.adoc @@ -37,6 +37,7 @@ This function calculates the square root of a given integral value using bit man === Exceptions +[cols=2] |=== | Name | Thrown on @@ -50,6 +51,7 @@ The square root of the input value. === Template Parameters +[cols=2] |=== | Name | Description @@ -59,6 +61,7 @@ The square root of the input value. === Parameters +[cols=2] |=== | Name | Description diff --git a/test-files/golden-tests/filters/symbol-name/extraction-mode.adoc b/test-files/golden-tests/filters/symbol-name/extraction-mode.adoc index daf740f622..55a4fe506f 100644 --- a/test-files/golden-tests/filters/symbol-name/extraction-mode.adoc +++ b/test-files/golden-tests/filters/symbol-name/extraction-mode.adoc @@ -115,6 +115,16 @@ struct regular; | Child of a regular symbol extracted as regular |=== +=== Non-Member Functions + +[,cols=2] +|=== +| Name +| Description +| <> +| A function to get a regular symbol +|=== + === Description The symbol should have a page as usual @@ -436,6 +446,16 @@ struct regular; | Child of a regular symbol: should be traversed as usual |=== +=== Non-Member Functions + +[,cols=2] +|=== +| Name +| Description +| <> +| A function to get a regular symbol in the global namespace +|=== + === Description This symbol should have a page as usual. diff --git a/test-files/golden-tests/filters/symbol-name/extraction-mode.html b/test-files/golden-tests/filters/symbol-name/extraction-mode.html index 7acba2172c..65531b8958 100644 --- a/test-files/golden-tests/filters/symbol-name/extraction-mode.html +++ b/test-files/golden-tests/filters/symbol-name/extraction-mode.html @@ -148,6 +148,20 @@

Types

+
+

Non-Member Functions

+ + + + + + + + + + +
NameDescription
get_regularA function to get a regular symbol
+

Description

The symbol should have a page as usual

@@ -570,6 +584,20 @@

Types

+
+

Non-Member Functions

+ + + + + + + + + + +
NameDescription
get_regularA function to get a regular symbol in the global namespace
+

Description

This symbol should have a page as usual.

diff --git a/test-files/golden-tests/filters/symbol-name/extraction-mode.xml b/test-files/golden-tests/filters/symbol-name/extraction-mode.xml index 569473cf78..0780a1d15a 100644 --- a/test-files/golden-tests/filters/symbol-name/extraction-mode.xml +++ b/test-files/golden-tests/filters/symbol-name/extraction-mode.xml @@ -38,6 +38,9 @@ The symbol should have a page as usual + + get_regular + @@ -110,6 +113,9 @@ When used in a function, the symbol should be shown as usual with a link to the page. + + regular + @@ -260,6 +266,9 @@ This symbol should have a page as usual. + + get_regular + @@ -335,6 +344,9 @@ When used in a function, the symbol should be shown as usual with a link to the page. + + regular + diff --git a/test-files/golden-tests/javadoc/copydetails/copydetails.adoc b/test-files/golden-tests/javadoc/copydetails/copydetails.adoc index d9f87cc43c..ec436b8908 100644 --- a/test-files/golden-tests/javadoc/copydetails/copydetails.adoc +++ b/test-files/golden-tests/javadoc/copydetails/copydetails.adoc @@ -52,6 +52,7 @@ A nice integer === Template Parameters +[cols=2] |=== | Name | Description @@ -63,6 +64,7 @@ A nice integer === Parameters +[cols=2] |=== | Name | Description @@ -118,6 +120,7 @@ Parameter b is not copied because it doesn't exist in the destination funct === Exceptions +[cols=2] |=== | Name | Thrown on @@ -131,6 +134,7 @@ An integer meaning something else. === Template Parameters +[cols=2] |=== | Name | Description @@ -144,6 +148,7 @@ An integer meaning something else. === Parameters +[cols=2] |=== | Name | Description @@ -193,6 +198,7 @@ This is the documentation from the source function. === Exceptions +[cols=2] |=== | Name | Thrown on @@ -206,6 +212,7 @@ A nice integer === Template Parameters +[cols=2] |=== | Name | Description @@ -217,6 +224,7 @@ A nice integer === Parameters +[cols=2] |=== | Name | Description diff --git a/test-files/golden-tests/javadoc/copydoc/conversion.adoc b/test-files/golden-tests/javadoc/copydoc/conversion.adoc index 0f40bae251..d60ca08376 100644 --- a/test-files/golden-tests/javadoc/copydoc/conversion.adoc +++ b/test-files/golden-tests/javadoc/copydoc/conversion.adoc @@ -77,6 +77,7 @@ A representation of the string === Parameters +[cols=2] |=== | Name | Description @@ -105,6 +106,7 @@ A representation of the string === Parameters +[cols=2] |=== | Name | Description @@ -133,6 +135,7 @@ A representation of the string === Parameters +[cols=2] |=== | Name | Description diff --git a/test-files/golden-tests/javadoc/copydoc/decay-params.adoc b/test-files/golden-tests/javadoc/copydoc/decay-params.adoc index 1cd2e3e8ee..5f4304296e 100644 --- a/test-files/golden-tests/javadoc/copydoc/decay-params.adoc +++ b/test-files/golden-tests/javadoc/copydoc/decay-params.adoc @@ -42,6 +42,7 @@ A boolean value. === Parameters +[cols=2] |=== | Name | Description @@ -98,6 +99,7 @@ A boolean value. === Parameters +[cols=2] |=== | Name | Description @@ -145,6 +147,7 @@ foo(int a); === Parameters +[cols=2] |=== | Name | Description @@ -178,6 +181,7 @@ A boolean value. === Parameters +[cols=2] |=== | Name | Description diff --git a/test-files/golden-tests/javadoc/copydoc/fundamental.adoc b/test-files/golden-tests/javadoc/copydoc/fundamental.adoc index b8af58e039..415c032909 100644 --- a/test-files/golden-tests/javadoc/copydoc/fundamental.adoc +++ b/test-files/golden-tests/javadoc/copydoc/fundamental.adoc @@ -51,6 +51,7 @@ void === Parameters +[cols=2] |=== | Name | Description @@ -75,6 +76,7 @@ f(int a); === Parameters +[cols=2] |=== | Name | Description @@ -103,6 +105,7 @@ Details === Parameters +[cols=2] |=== | Name | Description @@ -131,6 +134,7 @@ Details === Parameters +[cols=2] |=== | Name | Description @@ -159,6 +163,7 @@ Details === Parameters +[cols=2] |=== | Name | Description diff --git a/test-files/golden-tests/javadoc/copydoc/no-param.adoc b/test-files/golden-tests/javadoc/copydoc/no-param.adoc index e414b95a41..4932c35efe 100644 --- a/test-files/golden-tests/javadoc/copydoc/no-param.adoc +++ b/test-files/golden-tests/javadoc/copydoc/no-param.adoc @@ -107,6 +107,7 @@ A boolean value. === Parameters +[cols=2] |=== | Name | Description @@ -164,6 +165,7 @@ A boolean value. === Parameters +[cols=2] |=== | Name | Description diff --git a/test-files/golden-tests/javadoc/copydoc/operator-param.adoc b/test-files/golden-tests/javadoc/copydoc/operator-param.adoc index f77a781781..4314312297 100644 --- a/test-files/golden-tests/javadoc/copydoc/operator-param.adoc +++ b/test-files/golden-tests/javadoc/copydoc/operator-param.adoc @@ -73,6 +73,7 @@ True if ch is in the set, otherwise false. === Parameters +[cols=2] |=== | Name | Description @@ -106,6 +107,7 @@ True if ch is in the set, otherwise false. === Parameters +[cols=2] |=== | Name | Description @@ -139,6 +141,7 @@ True if ch is in the set, otherwise false. === Parameters +[cols=2] |=== | Name | Description diff --git a/test-files/golden-tests/javadoc/copydoc/param-types.adoc b/test-files/golden-tests/javadoc/copydoc/param-types.adoc index 423317ac18..2dd699e3cc 100644 --- a/test-files/golden-tests/javadoc/copydoc/param-types.adoc +++ b/test-files/golden-tests/javadoc/copydoc/param-types.adoc @@ -28,10 +28,12 @@ === Enums -[cols=1] +[cols=2] |=== | Name +| Description | <> +| |=== === Functions @@ -90,6 +92,16 @@ Declared in `<param‐types.cpp>` struct Q; ---- +=== Non-Member Functions + +[,cols=2] +|=== +| Name +| Description +| <> +| Qualified identifier param function +|=== + [#A] == A @@ -116,6 +128,16 @@ struct A; | Reference member function. |=== +=== Non-Member Functions + +[,cols=2] +|=== +| Name +| Description +| <> +| struct param function +|=== + [#A-f] == <>::f @@ -139,6 +161,7 @@ This reference uses the `this` keyword. === Parameters +[cols=2] |=== | Name | Description @@ -169,6 +192,7 @@ Documentation for a function with an explicit object parameter. === Parameters +[cols=2] |=== | Name | Description @@ -193,6 +217,32 @@ template<int Idx> struct paramType; ---- +=== Non-Member Functions + +[,cols=2] +|=== +| Name +| Description +| <> +| Reference function. +| <> +| Enum param function +| <> +| Variadic function +| <> +| struct param function +| <> +| Decltype function +| <> +| Qualified identifier param function +| <> +| Reference function. +| <> +| struct param function +| <> +| Non‐variadic function +|=== + [#testEnum] == testEnum @@ -205,6 +255,16 @@ Declared in `<param‐types.cpp>` enum testEnum; ---- +=== Non-Member Functions + +[,cols=2] +|=== +| Name +| Description +| <> +| Enum param function +|=== + [#f-0e] == f @@ -326,6 +386,7 @@ void === Parameters +[cols=2] |=== | Name | Description @@ -375,6 +436,7 @@ This function uses a reference with no parameters. === Parameters +[cols=2] |=== | Name | Description @@ -405,6 +467,7 @@ This reference uses the `void` keyword. === Parameters +[cols=2] |=== | Name | Description @@ -435,6 +498,7 @@ This reference uses the `...` keyword. === Parameters +[cols=2] |=== | Name | Description @@ -465,6 +529,7 @@ This reference uses the `int` keyword. === Parameters +[cols=2] |=== | Name | Description @@ -495,6 +560,7 @@ This reference uses the `auto` keyword. === Parameters +[cols=2] |=== | Name | Description @@ -525,6 +591,7 @@ This reference uses the `decltype` keyword. === Parameters +[cols=2] |=== | Name | Description @@ -555,6 +622,7 @@ This reference uses the `struct` keyword. === Parameters +[cols=2] |=== | Name | Description @@ -585,6 +653,7 @@ This reference uses the `enum` keyword. === Parameters +[cols=2] |=== | Name | Description @@ -615,6 +684,7 @@ This reference uses the qualified identifier `N::M::Q`&p === Parameters +[cols=2] |=== | Name | Description @@ -711,6 +781,7 @@ void === Parameters +[cols=2] |=== | Name | Description @@ -741,6 +812,7 @@ Documentation for a function with a struct parameter. === Parameters +[cols=2] |=== | Name | Description @@ -769,6 +841,7 @@ Documentation for a function with a qualified identifier parameter. === Parameters +[cols=2] |=== | Name | Description @@ -797,6 +870,7 @@ Documentation for a function with an enum parameter. === Parameters +[cols=2] |=== | Name | Description @@ -825,6 +899,7 @@ Documentation for the variadic function. === Parameters +[cols=2] |=== | Name | Description @@ -853,6 +928,7 @@ Documentation for the non‐variadic function. === Parameters +[cols=2] |=== | Name | Description @@ -897,6 +973,7 @@ Documentation for a function with a `decltype` parameter. === Parameters +[cols=2] |=== | Name | Description diff --git a/test-files/golden-tests/javadoc/copydoc/param-types.html b/test-files/golden-tests/javadoc/copydoc/param-types.html index 79ad0f3e44..8e59fabbd9 100644 --- a/test-files/golden-tests/javadoc/copydoc/param-types.html +++ b/test-files/golden-tests/javadoc/copydoc/param-types.html @@ -43,11 +43,12 @@

Enums

Name +Description -testEnum +testEnum @@ -133,6 +134,20 @@

Synopsis

+
+

Non-Member Functions

+ + + + + + + + + + +
NameDescription
::gQualified identifier param function
+
@@ -169,6 +184,20 @@

Member Functions

+
+

Non-Member Functions

+ + + + + + + + + + +
NameDescription
gstruct param function
+
@@ -280,6 +309,28 @@

Synopsis

+
+

Non-Member Functions

+ + + + + + + + + + + + + + + + + + +
NameDescription
fReference function.
fEnum param function
fVariadic function
fstruct param function
fDecltype function
fQualified identifier param function
fReference function.
fstruct param function
fNon-variadic function
+
@@ -308,6 +359,20 @@

Members

+
+

Non-Member Functions

+ + + + + + + + + + +
NameDescription
gEnum param function
+
diff --git a/test-files/golden-tests/javadoc/copydoc/param-types.xml b/test-files/golden-tests/javadoc/copydoc/param-types.xml index 22caa9edc6..87db46c135 100644 --- a/test-files/golden-tests/javadoc/copydoc/param-types.xml +++ b/test-files/golden-tests/javadoc/copydoc/param-types.xml @@ -20,6 +20,9 @@ Struct to test qualified identifier parameters. + + ::g + @@ -30,6 +33,9 @@ Struct to test explicit object member functions. + + g + @@ -88,11 +94,27 @@ Struct used to vary the parameter type. + + f + f + f + f + f + f + f + f + f + + + + g + + @@ -123,6 +145,9 @@ The first parameter of f + + paramType + @@ -145,6 +170,9 @@ The first parameter of f + + paramType + @@ -167,6 +195,9 @@ The first parameter of g + + paramType + @@ -189,6 +220,9 @@ The first parameter of g + + paramType + @@ -211,6 +245,9 @@ The first parameter of g + + paramType + @@ -235,6 +272,9 @@ The first parameter of g + + paramType + @@ -257,6 +297,9 @@ The first parameter of g + + paramType + @@ -279,6 +322,9 @@ The first parameter of g + + paramType + @@ -301,6 +347,9 @@ The first parameter of g + + paramType + @@ -318,6 +367,9 @@ The first parameter of g + + A + @@ -335,6 +387,9 @@ The first parameter of g + + Q + @@ -352,6 +407,9 @@ The first parameter of g + + testEnum + diff --git a/test-files/golden-tests/javadoc/copydoc/qualified.adoc b/test-files/golden-tests/javadoc/copydoc/qualified.adoc index a116ee393c..f79c798bfd 100644 --- a/test-files/golden-tests/javadoc/copydoc/qualified.adoc +++ b/test-files/golden-tests/javadoc/copydoc/qualified.adoc @@ -178,6 +178,7 @@ void === Parameters +[cols=2] |=== | Name | Description @@ -206,6 +207,7 @@ Documentation for the reference function === Parameters +[cols=2] |=== | Name | Description @@ -234,6 +236,7 @@ Documentation for the reference function === Parameters +[cols=2] |=== | Name | Description @@ -262,6 +265,7 @@ Documentation for the reference function === Parameters +[cols=2] |=== | Name | Description @@ -290,6 +294,7 @@ Documentation for the reference function === Parameters +[cols=2] |=== | Name | Description @@ -318,6 +323,7 @@ Documentation for the reference function === Parameters +[cols=2] |=== | Name | Description @@ -346,6 +352,7 @@ Documentation for the reference function === Parameters +[cols=2] |=== | Name | Description @@ -374,6 +381,7 @@ Documentation for the reference function === Parameters +[cols=2] |=== | Name | Description @@ -402,6 +410,7 @@ Documentation for the reference function === Parameters +[cols=2] |=== | Name | Description @@ -442,6 +451,7 @@ void === Parameters +[cols=2] |=== | Name | Description @@ -470,6 +480,7 @@ Documentation for the reference function === Parameters +[cols=2] |=== | Name | Description @@ -498,6 +509,7 @@ Function with same number of parameters but different types. This should === Parameters +[cols=2] |=== | Name | Description @@ -538,6 +550,7 @@ void === Parameters +[cols=2] |=== | Name | Description @@ -566,6 +579,7 @@ Documentation for the reference function === Parameters +[cols=2] |=== | Name | Description @@ -594,6 +608,7 @@ Function with same number of parameters but different types. This should === Parameters +[cols=2] |=== | Name | Description diff --git a/test-files/golden-tests/javadoc/copydoc/template-arguments.adoc b/test-files/golden-tests/javadoc/copydoc/template-arguments.adoc index da9d6facd3..d7aadf22c8 100644 --- a/test-files/golden-tests/javadoc/copydoc/template-arguments.adoc +++ b/test-files/golden-tests/javadoc/copydoc/template-arguments.adoc @@ -96,6 +96,7 @@ using B_t = <><T, I>; === Template Parameters +[cols=2] |=== | Name | Description @@ -150,6 +151,7 @@ using C_t = <><T, B>; === Template Parameters +[cols=2] |=== | Name | Description @@ -176,6 +178,7 @@ struct B; === Template Parameters +[cols=2] |=== | Name | Description @@ -234,6 +237,7 @@ struct C; === Template Parameters +[cols=2] |=== | Name | Description diff --git a/test-files/golden-tests/javadoc/inline/styled.adoc b/test-files/golden-tests/javadoc/inline/styled.adoc index 280b89fea4..db28c0e1a3 100644 --- a/test-files/golden-tests/javadoc/inline/styled.adoc +++ b/test-files/golden-tests/javadoc/inline/styled.adoc @@ -65,6 +65,7 @@ compare(<> const& other) const noexcept; === Parameters +[cols=2] |=== | Name | Description diff --git a/test-files/golden-tests/javadoc/param/param-1.adoc b/test-files/golden-tests/javadoc/param/param-1.adoc index b5bd546d24..13e7fd772b 100644 --- a/test-files/golden-tests/javadoc/param/param-1.adoc +++ b/test-files/golden-tests/javadoc/param/param-1.adoc @@ -37,6 +37,7 @@ f0(int i); === Parameters +[cols=2] |=== | Name | Description @@ -59,6 +60,7 @@ f1(int i); === Parameters +[cols=2] |=== | Name | Description @@ -81,6 +83,7 @@ f2(int& i); === Parameters +[cols=2] |=== | Name | Description @@ -103,6 +106,7 @@ f3(int& i); === Parameters +[cols=2] |=== | Name | Description @@ -127,6 +131,7 @@ f4( === Parameters +[cols=2] |=== | Name | Description diff --git a/test-files/golden-tests/javadoc/param/param-direction.adoc b/test-files/golden-tests/javadoc/param/param-direction.adoc index 204e9469e6..cdfd5317d2 100644 --- a/test-files/golden-tests/javadoc/param/param-direction.adoc +++ b/test-files/golden-tests/javadoc/param/param-direction.adoc @@ -47,6 +47,7 @@ f(int x0); === Parameters +[cols=2] |=== | Name | Description @@ -71,6 +72,7 @@ g( === Parameters +[cols=2] |=== | Name | Description @@ -97,6 +99,7 @@ h( === Parameters +[cols=2] |=== | Name | Description @@ -123,6 +126,7 @@ i( === Parameters +[cols=2] |=== | Name | Description @@ -149,6 +153,7 @@ j( === Parameters +[cols=2] |=== | Name | Description @@ -176,6 +181,7 @@ k( === Parameters +[cols=2] |=== | Name | Description @@ -206,6 +212,7 @@ l( === Parameters +[cols=2] |=== | Name | Description @@ -234,6 +241,7 @@ m( === Parameters +[cols=2] |=== | Name | Description @@ -258,6 +266,7 @@ n(int x8); === Parameters +[cols=2] |=== | Name | Description @@ -280,6 +289,7 @@ o(int x9); === Parameters +[cols=2] |=== | Name | Description diff --git a/test-files/golden-tests/javadoc/param/param-duplicate.adoc b/test-files/golden-tests/javadoc/param/param-duplicate.adoc index 4024ced6fa..39420ce655 100644 --- a/test-files/golden-tests/javadoc/param/param-duplicate.adoc +++ b/test-files/golden-tests/javadoc/param/param-duplicate.adoc @@ -81,6 +81,7 @@ g0(int a); === Parameters +[cols=2] |=== | Name | Description @@ -107,6 +108,7 @@ g1(int a); === Parameters +[cols=2] |=== | Name | Description @@ -134,6 +136,7 @@ h0(); === Template Parameters +[cols=2] |=== | Name | Description @@ -161,6 +164,7 @@ h1(); === Template Parameters +[cols=2] |=== | Name | Description diff --git a/test-files/golden-tests/javadoc/param/param.adoc b/test-files/golden-tests/javadoc/param/param.adoc index 65d2f31909..ab5990e8f0 100644 --- a/test-files/golden-tests/javadoc/param/param.adoc +++ b/test-files/golden-tests/javadoc/param/param.adoc @@ -35,6 +35,7 @@ f(int x); === Parameters +[cols=2] |=== | Name | Description @@ -59,6 +60,7 @@ g( === Parameters +[cols=2] |=== | Name | Description @@ -86,6 +88,7 @@ h( === Parameters +[cols=2] |=== | Name | Description @@ -116,6 +119,7 @@ i( === Parameters +[cols=2] |=== | Name | Description diff --git a/test-files/golden-tests/javadoc/ref/ref.adoc b/test-files/golden-tests/javadoc/ref/ref.adoc index 3380e90820..5fd1a36d65 100644 --- a/test-files/golden-tests/javadoc/ref/ref.adoc +++ b/test-files/golden-tests/javadoc/ref/ref.adoc @@ -124,6 +124,16 @@ struct C; | <> |=== +=== Derived Classes + +[,cols=2] +|=== +| Name +| Description +| <> +| +|=== + [#A-C-f3] == <>::<>::f3 diff --git a/test-files/golden-tests/javadoc/ref/ref.html b/test-files/golden-tests/javadoc/ref/ref.html index 1bbfe47721..b2d71f6011 100644 --- a/test-files/golden-tests/javadoc/ref/ref.html +++ b/test-files/golden-tests/javadoc/ref/ref.html @@ -173,6 +173,21 @@

Member Functions

+
+

Derived Classes

+ + + + + + + + + + +
NameDescription
D +
+
diff --git a/test-files/golden-tests/javadoc/relates/relates.adoc b/test-files/golden-tests/javadoc/relates/relates.adoc index af86c0ab41..d5a4a68b63 100644 --- a/test-files/golden-tests/javadoc/relates/relates.adoc +++ b/test-files/golden-tests/javadoc/relates/relates.adoc @@ -79,15 +79,5 @@ void f(); ---- -=== Non-Member Of - -[,cols=2] -|=== -| Name -| Description -| <> -| A brief for A. -|=== - [.small]#Created with https://www.mrdocs.com[MrDocs]# diff --git a/test-files/golden-tests/javadoc/relates/relates.html b/test-files/golden-tests/javadoc/relates/relates.html index c7ff7fce55..07cd57cc8a 100644 --- a/test-files/golden-tests/javadoc/relates/relates.html +++ b/test-files/golden-tests/javadoc/relates/relates.html @@ -114,20 +114,6 @@

Synopsis

-
-

Non-Member Of

- - - - - - - - - - -
NameDescription
AA brief for A.
-
diff --git a/test-files/golden-tests/javadoc/returns/returns.adoc b/test-files/golden-tests/javadoc/returns/returns.adoc index 69df91c79e..6f07dda796 100644 --- a/test-files/golden-tests/javadoc/returns/returns.adoc +++ b/test-files/golden-tests/javadoc/returns/returns.adoc @@ -6,10 +6,12 @@ === Types -[cols=1] +[cols=2] |=== | Name +| Description | <> +| |=== === Functions @@ -48,6 +50,16 @@ struct pair; | <> |=== +=== Non-Member Functions + +[,cols=2] +|=== +| Name +| Description +| <> +| A function with multiple return values. +|=== + [#pair-first] == <>::first diff --git a/test-files/golden-tests/javadoc/returns/returns.html b/test-files/golden-tests/javadoc/returns/returns.html index 629864a429..321d01f559 100644 --- a/test-files/golden-tests/javadoc/returns/returns.html +++ b/test-files/golden-tests/javadoc/returns/returns.html @@ -14,11 +14,12 @@

Types

Name +Description -pair +pair @@ -71,6 +72,20 @@

Data Members

+
+

Non-Member Functions

+ + + + + + + + + + +
NameDescription
gA function with multiple return values.
+
diff --git a/test-files/golden-tests/javadoc/returns/returns.xml b/test-files/golden-tests/javadoc/returns/returns.xml index 36aee08eca..15efff74c0 100644 --- a/test-files/golden-tests/javadoc/returns/returns.xml +++ b/test-files/golden-tests/javadoc/returns/returns.xml @@ -7,6 +7,11 @@ + + + g + + @@ -46,6 +51,9 @@ The second return value of the function. + + pair + diff --git a/test-files/golden-tests/javadoc/throw/throw.adoc b/test-files/golden-tests/javadoc/throw/throw.adoc index 4492f36bbb..04ab5f10c6 100644 --- a/test-files/golden-tests/javadoc/throw/throw.adoc +++ b/test-files/golden-tests/javadoc/throw/throw.adoc @@ -31,6 +31,7 @@ f(); === Exceptions +[cols=2] |=== | Name | Thrown on diff --git a/test-files/golden-tests/javadoc/tparam/tparam-1.adoc b/test-files/golden-tests/javadoc/tparam/tparam-1.adoc index ee327d2003..ccaa0e18b3 100644 --- a/test-files/golden-tests/javadoc/tparam/tparam-1.adoc +++ b/test-files/golden-tests/javadoc/tparam/tparam-1.adoc @@ -32,6 +32,7 @@ f0(); === Template Parameters +[cols=2] |=== | Name | Description @@ -61,6 +62,7 @@ desc === Template Parameters +[cols=2] |=== | Name | Description diff --git a/test-files/golden-tests/snippets/distance.adoc b/test-files/golden-tests/snippets/distance.adoc index c88281446f..35c4040849 100644 --- a/test-files/golden-tests/snippets/distance.adoc +++ b/test-files/golden-tests/snippets/distance.adoc @@ -30,6 +30,7 @@ The distance between the two points === Parameters +[cols=2] |=== | Name | Description diff --git a/test-files/golden-tests/snippets/is_prime.adoc b/test-files/golden-tests/snippets/is_prime.adoc index f157e184e2..3c25974760 100644 --- a/test-files/golden-tests/snippets/is_prime.adoc +++ b/test-files/golden-tests/snippets/is_prime.adoc @@ -27,6 +27,7 @@ Whether or not n is prime. === Parameters +[cols=2] |=== | Name | Description diff --git a/test-files/golden-tests/snippets/sqrt.adoc b/test-files/golden-tests/snippets/sqrt.adoc index 407b62ffef..5c35b2eebc 100644 --- a/test-files/golden-tests/snippets/sqrt.adoc +++ b/test-files/golden-tests/snippets/sqrt.adoc @@ -24,6 +24,7 @@ This function calculates the square root of a given integral value using bit man === Exceptions +[cols=2] |=== | Name | Thrown on @@ -37,6 +38,7 @@ The square root of the input value. === Template Parameters +[cols=2] |=== | Name | Description @@ -46,6 +48,7 @@ The square root of the input value. === Parameters +[cols=2] |=== | Name | Description diff --git a/test-files/golden-tests/symbols/function/mem-fn.adoc b/test-files/golden-tests/symbols/function/mem-fn.adoc index fd581a6740..e1e8e3bb95 100644 --- a/test-files/golden-tests/symbols/function/mem-fn.adoc +++ b/test-files/golden-tests/symbols/function/mem-fn.adoc @@ -448,6 +448,16 @@ struct T14; | <> [.small]#[virtual]# |=== +=== Derived Classes + +[,cols=2] +|=== +| Name +| Description +| <> +| +|=== + [#T14-f] == <>::f @@ -593,6 +603,16 @@ struct U; | <> |=== +=== Derived Classes + +[,cols=2] +|=== +| Name +| Description +| <> +| +|=== + [#U-f1] == <>::f1 diff --git a/test-files/golden-tests/symbols/function/mem-fn.html b/test-files/golden-tests/symbols/function/mem-fn.html index 75479e8638..d702d28185 100644 --- a/test-files/golden-tests/symbols/function/mem-fn.html +++ b/test-files/golden-tests/symbols/function/mem-fn.html @@ -624,6 +624,21 @@

Member Functions

+
+

Derived Classes

+ + + + + + + + + + +
NameDescription
T17 +
+
@@ -826,6 +841,21 @@

Static Member Functions

+
+

Derived Classes

+ + + + + + + + + + +
NameDescription
V +
+
diff --git a/test-files/golden-tests/symbols/function/merge-params.adoc b/test-files/golden-tests/symbols/function/merge-params.adoc index def6b2a812..f8ade6a1c1 100644 --- a/test-files/golden-tests/symbols/function/merge-params.adoc +++ b/test-files/golden-tests/symbols/function/merge-params.adoc @@ -33,6 +33,7 @@ f( === Parameters +[cols=2] |=== | Name | Description diff --git a/test-files/golden-tests/symbols/function/merge-tparams.adoc b/test-files/golden-tests/symbols/function/merge-tparams.adoc index bce955d704..3b4cd8890f 100644 --- a/test-files/golden-tests/symbols/function/merge-tparams.adoc +++ b/test-files/golden-tests/symbols/function/merge-tparams.adoc @@ -34,6 +34,7 @@ f(); === Template Parameters +[cols=2] |=== | Name | Description diff --git a/test-files/golden-tests/symbols/function/sfinae.adoc b/test-files/golden-tests/symbols/function/sfinae.adoc index a888e71a13..30913e192f 100644 --- a/test-files/golden-tests/symbols/function/sfinae.adoc +++ b/test-files/golden-tests/symbols/function/sfinae.adoc @@ -61,10 +61,12 @@ === Types -[cols=1] +[cols=2] |=== | Name +| Description | <> +| |=== [#B-C] @@ -79,6 +81,16 @@ Declared in `<sfinae.cpp>` struct C; ---- +=== Non-Member Functions + +[,cols=2] +|=== +| Name +| Description +| <> +| Enabling a specified return type in another namespace +|=== + [#A-09] == A diff --git a/test-files/golden-tests/symbols/function/sfinae.html b/test-files/golden-tests/symbols/function/sfinae.html index 58d486666c..f3d94879b7 100644 --- a/test-files/golden-tests/symbols/function/sfinae.html +++ b/test-files/golden-tests/symbols/function/sfinae.html @@ -72,11 +72,12 @@

Types

Name +Description -C +C @@ -97,6 +98,20 @@

Synopsis

+
+

Non-Member Functions

+ + + + + + + + + + +
NameDescription
::f3Enabling a specified return type in another namespace
+
diff --git a/test-files/golden-tests/symbols/function/sfinae.xml b/test-files/golden-tests/symbols/function/sfinae.xml index 1900cb1ecc..39bf3e8349 100644 --- a/test-files/golden-tests/symbols/function/sfinae.xml +++ b/test-files/golden-tests/symbols/function/sfinae.xml @@ -5,6 +5,11 @@ + + + ::f3 + + diff --git a/test-files/golden-tests/symbols/overloads/overloads-brief.adoc b/test-files/golden-tests/symbols/overloads/overloads-brief.adoc index 01e137206e..3fc9ad5e74 100644 --- a/test-files/golden-tests/symbols/overloads/overloads-brief.adoc +++ b/test-files/golden-tests/symbols/overloads/overloads-brief.adoc @@ -60,6 +60,16 @@ struct A; | `operator‐` overloads |=== +=== Non-Member Functions + +[,cols=2] +|=== +| Name +| Description +| <> +| Unary operator for A +|=== + [#A-2constructor-08] == <>::A @@ -91,6 +101,7 @@ Second constructor === Parameters +[cols=2] |=== | Name | Description @@ -128,6 +139,7 @@ A(int a); === Parameters +[cols=2] |=== | Name | Description @@ -172,6 +184,7 @@ Assign from A === Parameters +[cols=2] |=== | Name | Description @@ -200,6 +213,7 @@ operator=(int a); === Parameters +[cols=2] |=== | Name | Description @@ -228,6 +242,7 @@ operator=(<> const& a); === Parameters +[cols=2] |=== | Name | Description @@ -272,6 +287,7 @@ Addition operator for As === Parameters +[cols=2] |=== | Name | Description @@ -300,6 +316,7 @@ operator+(int a); === Parameters +[cols=2] |=== | Name | Description @@ -328,6 +345,7 @@ operator+(<> const& a); === Parameters +[cols=2] |=== | Name | Description @@ -430,6 +448,16 @@ Declared in `<overloads‐brief.cpp>` struct B; ---- +=== Non-Member Functions + +[,cols=2] +|=== +| Name +| Description +| <> +| Unary operator for B +|=== + [#no_way_to_infer_this_brief-0e] == no_way_to_infer_this_brief @@ -463,6 +491,7 @@ void === Parameters +[cols=2] |=== | Name | Description @@ -502,6 +531,7 @@ no_way_to_infer_this_brief(int a); === Parameters +[cols=2] |=== | Name | Description @@ -617,6 +647,7 @@ void === Parameters +[cols=2] |=== | Name | Description @@ -643,6 +674,7 @@ sameBrief(int a); === Parameters +[cols=2] |=== | Name | Description @@ -669,6 +701,7 @@ sameBrief( === Parameters +[cols=2] |=== | Name | Description diff --git a/test-files/golden-tests/symbols/overloads/overloads-brief.html b/test-files/golden-tests/symbols/overloads/overloads-brief.html index 1c240ca0a3..2bf38779d4 100644 --- a/test-files/golden-tests/symbols/overloads/overloads-brief.html +++ b/test-files/golden-tests/symbols/overloads/overloads-brief.html @@ -78,6 +78,20 @@

Member Functions

+
+

Non-Member Functions

+ + + + + + + + + + +
NameDescription
operator+Unary operator for A
+
@@ -559,6 +573,20 @@

Synopsis

+
+

Non-Member Functions

+ + + + + + + + + + +
NameDescription
operator+Unary operator for B
+
diff --git a/test-files/golden-tests/symbols/overloads/overloads-brief.xml b/test-files/golden-tests/symbols/overloads/overloads-brief.xml index 5abf31957c..d872733f00 100644 --- a/test-files/golden-tests/symbols/overloads/overloads-brief.xml +++ b/test-files/golden-tests/symbols/overloads/overloads-brief.xml @@ -8,6 +8,9 @@ Overload briefs from function or operator classes + + operator+ + @@ -171,6 +174,9 @@ Auxiliary class + + operator+ + @@ -213,6 +219,9 @@ Result + + A + @@ -233,6 +242,9 @@ Result + + B + diff --git a/test-files/golden-tests/symbols/overloads/overloads-metadata.adoc b/test-files/golden-tests/symbols/overloads/overloads-metadata.adoc index c77b91a4be..1a19930de8 100644 --- a/test-files/golden-tests/symbols/overloads/overloads-metadata.adoc +++ b/test-files/golden-tests/symbols/overloads/overloads-metadata.adoc @@ -66,6 +66,7 @@ int === Exceptions +[cols=2] |=== | Name | Thrown on @@ -82,6 +83,7 @@ int === Template Parameters +[cols=2] |=== | Name | Description @@ -93,6 +95,7 @@ int === Parameters +[cols=2] |=== | Name | Description @@ -136,6 +139,7 @@ f(int a); === Exceptions +[cols=2] |=== | Name | Thrown on @@ -149,6 +153,7 @@ The number corresponding to a === Template Parameters +[cols=2] |=== | Name | Description @@ -158,6 +163,7 @@ The number corresponding to a === Parameters +[cols=2] |=== | Name | Description @@ -200,6 +206,7 @@ The number corresponding to a === Parameters +[cols=2] |=== | Name | Description @@ -233,6 +240,7 @@ f( === Exceptions +[cols=2] |=== | Name | Thrown on @@ -246,6 +254,7 @@ The number corresponding to a and b === Template Parameters +[cols=2] |=== | Name | Description @@ -257,6 +266,7 @@ The number corresponding to a and b === Parameters +[cols=2] |=== | Name | Description diff --git a/test-files/golden-tests/symbols/record/class-template-specializations-1.adoc b/test-files/golden-tests/symbols/record/class-template-specializations-1.adoc index 73e246e985..a52eb42aa8 100644 --- a/test-files/golden-tests/symbols/record/class-template-specializations-1.adoc +++ b/test-files/golden-tests/symbols/record/class-template-specializations-1.adoc @@ -902,6 +902,22 @@ struct S0; | <> |=== +=== Derived Classes + +[,cols=2] +|=== +| Name +| Description +| <> +| +| <> +| +| <> +| +| <> +| +|=== + [#S0-0cf-S1] == <>::S1 @@ -1282,6 +1298,16 @@ template<> struct <><0>; ---- +=== Derived Classes + +[,cols=2] +|=== +| Name +| Description +| <> +| +|=== + [#S0-08] == S0<10> @@ -1413,6 +1439,16 @@ template< struct S4; ---- +=== Derived Classes + +[,cols=2] +|=== +| Name +| Description +| <> +| +|=== + [#S0-08-S1-S2-08-f2] == <><10>::<>::<><11>::f2 @@ -1612,6 +1648,16 @@ template<> struct <><14>; ---- +=== Derived Classes + +[,cols=2] +|=== +| Name +| Description +| <> +| +|=== + [#S0-0e-S1-S2-02-f2] == <><12>::<>::<><13>::f2 @@ -1799,6 +1845,16 @@ template< struct S4; ---- +=== Derived Classes + +[,cols=2] +|=== +| Name +| Description +| <> +| +|=== + [#S0-09e4-S1-S2-02-S4-02] == <><15>::<>::<><16>::S4<17, int*> @@ -1812,6 +1868,16 @@ template<> struct <><17, int*>; ---- +=== Derived Classes + +[,cols=2] +|=== +| Name +| Description +| <> +| +|=== + [#S0-09e4-S1-S2-02-S4-07] == <><15>::<>::<><16>::S4<17, T*> @@ -1936,6 +2002,16 @@ template< struct S5; ---- +=== Derived Classes + +[,cols=2] +|=== +| Name +| Description +| <> +| +|=== + [#S0-07a-f0] == <><18>::f0 @@ -2020,6 +2096,16 @@ template<> struct <><20>; ---- +=== Derived Classes + +[,cols=2] +|=== +| Name +| Description +| <> +| +|=== + [#S0-0a7-f0] == <><19>::f0 @@ -2075,6 +2161,16 @@ Declared in `<class‐template‐specializations‐1.cp struct S1; ---- +=== Derived Classes + +[,cols=2] +|=== +| Name +| Description +| <> +| +|=== + [#S0-09c-S5] == <><2>::S5 @@ -2162,6 +2258,16 @@ template< struct S5; ---- +=== Derived Classes + +[,cols=2] +|=== +| Name +| Description +| <> +| +|=== + [#S0-0314-S5-03] == <><21>::S5<22, int*> @@ -2175,6 +2281,16 @@ template<> struct <><22, int*>; ---- +=== Derived Classes + +[,cols=2] +|=== +| Name +| Description +| <> +| +|=== + [#S0-0314-S5-0b] == <><21>::S5<22, T*> @@ -2300,6 +2416,16 @@ Declared in `<class‐template‐specializations‐1.cp struct S6; ---- +=== Derived Classes + +[,cols=2] +|=== +| Name +| Description +| <> +| +|=== + [#S0-058-S5-09-f5] == <><23>::<><24>::f5 @@ -2456,6 +2582,16 @@ template< struct S7; ---- +=== Derived Classes + +[,cols=2] +|=== +| Name +| Description +| <> +| +|=== + [#S0-0a2-S5-02-S6-f6] == <><25>::<><26>::<>::f6 @@ -2627,6 +2763,16 @@ template< struct S7; ---- +=== Derived Classes + +[,cols=2] +|=== +| Name +| Description +| <> +| +|=== + [#S0-09e2-S5-0c-S6-S7-0d] == <><27>::<><28>::<>::S7<29, int*> @@ -2640,6 +2786,16 @@ template<> struct <><29, int*>; ---- +=== Derived Classes + +[,cols=2] +|=== +| Name +| Description +| <> +| +|=== + [#S0-09e2-S5-0c-S6-S7-0a] == <><27>::<><28>::<>::S7<29, T*> @@ -2765,6 +2921,16 @@ template< struct S2; ---- +=== Derived Classes + +[,cols=2] +|=== +| Name +| Description +| <> +| +|=== + [#S0-073-S1-f1] == <><3>::<>::f1 @@ -2950,6 +3116,16 @@ template<> struct <><32>; ---- +=== Derived Classes + +[,cols=2] +|=== +| Name +| Description +| <> +| +|=== + [#S0-01-S5-04-S6-f6] == <><30>::<><31>::<>::f6 @@ -3162,6 +3338,16 @@ Declared in `<class‐template‐specializations‐1.cp struct S8; ---- +=== Derived Classes + +[,cols=2] +|=== +| Name +| Description +| <> +| +|=== + [#S0-09ee-S5-02-S6-S7-03-S9] == <><33>::<><34>::<>::<><35>::S9 @@ -3417,6 +3603,16 @@ template< struct S9; ---- +=== Derived Classes + +[,cols=2] +|=== +| Name +| Description +| <> +| +|=== + [#S0-033-S5-0f-S6-S7-0d-f7] == <><36>::<><37>::<>::<><38>::f7 @@ -3659,6 +3855,16 @@ template< struct S9; ---- +=== Derived Classes + +[,cols=2] +|=== +| Name +| Description +| <> +| +|=== + [#S0-06-S5-07-S6-S7-0a-S9-08] == <><39>::<><40>::<>::<><41>::S9<42, int*> @@ -3672,6 +3878,16 @@ template<> struct <><42, int*>; ---- +=== Derived Classes + +[,cols=2] +|=== +| Name +| Description +| <> +| +|=== + [#S0-06-S5-07-S6-S7-0a-S9-00] == <><39>::<><40>::<>::<><41>::S9<42, T*> @@ -3824,6 +4040,16 @@ template<> struct <><5>; ---- +=== Derived Classes + +[,cols=2] +|=== +| Name +| Description +| <> +| +|=== + [#S0-0a1-S1-f1] == <><4>::<>::f1 @@ -4067,6 +4293,16 @@ template<> struct <><46>; ---- +=== Derived Classes + +[,cols=2] +|=== +| Name +| Description +| <> +| +|=== + [#S0-0ba-S5-08-S6-S7-02-f7] == <><43>::<><44>::<>::<><45>::f7 @@ -4194,6 +4430,16 @@ template< struct S2; ---- +=== Derived Classes + +[,cols=2] +|=== +| Name +| Description +| <> +| +|=== + [#S0-07e-S1-S2-07] == <><6>::<>::S2<7, int*> @@ -4207,6 +4453,16 @@ template<> struct <><7, int*>; ---- +=== Derived Classes + +[,cols=2] +|=== +| Name +| Description +| <> +| +|=== + [#S0-07e-S1-S2-06] == <><6>::<>::S2<7, T*> @@ -4377,6 +4633,16 @@ Declared in `<class‐template‐specializations‐1.cp struct S3; ---- +=== Derived Classes + +[,cols=2] +|=== +| Name +| Description +| <> +| +|=== + [#S0-0a3-S1-S2-0c-S4] == <><8>::<>::<><9>::S4 @@ -4459,6 +4725,16 @@ template<> struct <><1, int*>; ---- +=== Derived Classes + +[,cols=2] +|=== +| Name +| Description +| <> +| +|=== + [#S0-05a] == S0<10, bool> @@ -4590,6 +4866,16 @@ template< struct S4; ---- +=== Derived Classes + +[,cols=2] +|=== +| Name +| Description +| <> +| +|=== + [#S0-05a-S1-S2-0b-f2] == <><10, bool>::<>::<><11, bool>::f2 @@ -4775,6 +5061,16 @@ template< struct S4; ---- +=== Derived Classes + +[,cols=2] +|=== +| Name +| Description +| <> +| +|=== + [#S0-0cd-S1-S2-05-f2] == <><12, bool>::<>::<><13, bool>::f2 @@ -4960,6 +5256,16 @@ template< struct S4; ---- +=== Derived Classes + +[,cols=2] +|=== +| Name +| Description +| <> +| +|=== + [#S0-000-S1-S2-03-f2] == <><15, bool>::<>::<><16, bool>::f2 @@ -5071,6 +5377,16 @@ template< struct S5; ---- +=== Derived Classes + +[,cols=2] +|=== +| Name +| Description +| <> +| +|=== + [#S0-051-f0] == <><18, bool>::f0 @@ -5141,6 +5457,16 @@ template< struct S5; ---- +=== Derived Classes + +[,cols=2] +|=== +| Name +| Description +| <> +| +|=== + [#S0-002-f0] == <><19, bool>::f0 @@ -5212,6 +5538,16 @@ struct S1; | <> |=== +=== Derived Classes + +[,cols=2] +|=== +| Name +| Description +| <> +| +|=== + [#S0-03c-S1-S2] == <><2, bool>::<>::S2 @@ -5325,6 +5661,16 @@ template< struct S5; ---- +=== Derived Classes + +[,cols=2] +|=== +| Name +| Description +| <> +| +|=== + [#S0-003-f0] == <><21, bool>::f0 @@ -5453,6 +5799,16 @@ struct S6; | <> |=== +=== Derived Classes + +[,cols=2] +|=== +| Name +| Description +| <> +| +|=== + [#S0-0c7-S5-0f-S6-S7] == <><23, bool>::<><24, bool>::<>::S7 @@ -5637,6 +5993,16 @@ template< struct S7; ---- +=== Derived Classes + +[,cols=2] +|=== +| Name +| Description +| <> +| +|=== + [#S0-0529f-S5-05c-S6-f6] == <><25, bool>::<><26, bool>::<>::f6 @@ -5806,6 +6172,16 @@ template< struct S7; ---- +=== Derived Classes + +[,cols=2] +|=== +| Name +| Description +| <> +| +|=== + [#S0-007-S5-0d-S6-f6] == <><27, bool>::<><28, bool>::<>::f6 @@ -5918,6 +6294,16 @@ template< struct S2; ---- +=== Derived Classes + +[,cols=2] +|=== +| Name +| Description +| <> +| +|=== + [#S0-092-S1-f1] == <><3, bool>::<>::f1 @@ -6089,6 +6475,16 @@ template< struct S7; ---- +=== Derived Classes + +[,cols=2] +|=== +| Name +| Description +| <> +| +|=== + [#S0-021-S5-0b-S6-f6] == <><30, bool>::<><31, bool>::<>::f6 @@ -6309,6 +6705,16 @@ struct S8; | <> |=== +=== Derived Classes + +[,cols=2] +|=== +| Name +| Description +| <> +| +|=== + [#S0-0318-S5-0b-S6-S7-05-S8-f8] == <><33, bool>::<><34, bool>::<>::<><35, bool>::<>::f8 @@ -6577,6 +6983,16 @@ template< struct S9; ---- +=== Derived Classes + +[,cols=2] +|=== +| Name +| Description +| <> +| +|=== + [#S0-0d-S5-0b-S6-S7-0d-f7] == <><36, bool>::<><37, bool>::<>::<><38, bool>::f7 @@ -6817,6 +7233,16 @@ template< struct S9; ---- +=== Derived Classes + +[,cols=2] +|=== +| Name +| Description +| <> +| +|=== + [#S0-0206-S5-08-S6-S7-01-f7] == <><39, bool>::<><40, bool>::<>::<><41, bool>::f7 @@ -6942,6 +7368,16 @@ template< struct S2; ---- +=== Derived Classes + +[,cols=2] +|=== +| Name +| Description +| <> +| +|=== + [#S0-0b6-S1-f1] == <><4, bool>::<>::f1 @@ -7171,6 +7607,16 @@ template< struct S9; ---- +=== Derived Classes + +[,cols=2] +|=== +| Name +| Description +| <> +| +|=== + [#S0-05291-S5-0e-S6-S7-0f-f7] == <><43, bool>::<><44, bool>::<>::<><45, bool>::f7 @@ -7296,6 +7742,16 @@ template< struct S2; ---- +=== Derived Classes + +[,cols=2] +|=== +| Name +| Description +| <> +| +|=== + [#S0-023-S1-f1] == <><6, bool>::<>::f1 @@ -7461,6 +7917,16 @@ struct S3; | <> |=== +=== Derived Classes + +[,cols=2] +|=== +| Name +| Description +| <> +| +|=== + [#S0-04-S1-S2-0a-S3-f3] == <><8, bool>::<>::<><9, bool>::<>::f3 diff --git a/test-files/golden-tests/symbols/record/class-template-specializations-1.html b/test-files/golden-tests/symbols/record/class-template-specializations-1.html index d3dda6b468..7374219a82 100644 --- a/test-files/golden-tests/symbols/record/class-template-specializations-1.html +++ b/test-files/golden-tests/symbols/record/class-template-specializations-1.html @@ -1242,6 +1242,27 @@

Member Functions

+
+

Derived Classes

+ + + + + + + + + + + + + +
NameDescription
R0 +
R2 +
R28 +
R29 +
+
@@ -1772,6 +1793,21 @@

Synopsis

+
+

Derived Classes

+ + + + + + + + + + +
NameDescription
R1 +
+
@@ -1963,6 +1999,21 @@

Synopsis

+
+

Derived Classes

+ + + + + + + + + + +
NameDescription
R10 +
+
@@ -2241,6 +2292,21 @@

Synopsis

+
+

Derived Classes

+ + + + + + + + + + +
NameDescription
R11 +
+
@@ -2502,6 +2568,21 @@

Synopsis

+
+

Derived Classes

+ + + + + + + + + + +
NameDescription
R12 +
+
@@ -2520,6 +2601,21 @@

Synopsis

+
+

Derived Classes

+ + + + + + + + + + +
NameDescription
R13 +
+
@@ -2688,6 +2784,21 @@

Synopsis

+
+

Derived Classes

+ + + + + + + + + + +
NameDescription
R14 +
+
@@ -2805,6 +2916,21 @@

Synopsis

+
+

Derived Classes

+ + + + + + + + + + +
NameDescription
R15 +
+
@@ -2883,6 +3009,21 @@

Synopsis

+
+

Derived Classes

+ + + + + + + + + + +
NameDescription
R4 +
+
@@ -3003,6 +3144,21 @@

Synopsis

+
+

Derived Classes

+ + + + + + + + + + +
NameDescription
R16 +
+
@@ -3021,6 +3177,21 @@

Synopsis

+
+

Derived Classes

+ + + + + + + + + + +
NameDescription
R17 +
+
@@ -3199,6 +3370,21 @@

Synopsis

+
+

Derived Classes

+ + + + + + + + + + +
NameDescription
R18 +
+
@@ -3421,6 +3607,21 @@

Synopsis

+
+

Derived Classes

+ + + + + + + + + + +
NameDescription
R19 +
+
@@ -3661,6 +3862,21 @@

Synopsis

+
+

Derived Classes

+ + + + + + + + + + +
NameDescription
R20 +
+
@@ -3679,6 +3895,21 @@

Synopsis

+
+

Derived Classes

+ + + + + + + + + + +
NameDescription
R21 +
+
@@ -3853,6 +4084,21 @@

Synopsis

+
+

Derived Classes

+ + + + + + + + + + +
NameDescription
R5 +
+
@@ -4114,6 +4360,21 @@

Synopsis

+
+

Derived Classes

+ + + + + + + + + + +
NameDescription
R22 +
+
@@ -4415,6 +4676,21 @@

Synopsis

+
+

Derived Classes

+ + + + + + + + + + +
NameDescription
R23 +
+
@@ -4772,6 +5048,21 @@

Synopsis

+
+

Derived Classes

+ + + + + + + + + + +
NameDescription
R24 +
+
@@ -5111,6 +5402,21 @@

Synopsis

+
+

Derived Classes

+ + + + + + + + + + +
NameDescription
R25 +
+
@@ -5129,6 +5435,21 @@

Synopsis

+
+

Derived Classes

+ + + + + + + + + + +
NameDescription
R26 +
+
@@ -5338,6 +5659,21 @@

Synopsis

+
+

Derived Classes

+ + + + + + + + + + +
NameDescription
R6 +
+
@@ -5682,6 +6018,21 @@

Synopsis

+
+

Derived Classes

+ + + + + + + + + + +
NameDescription
R27 +
+
@@ -5856,6 +6207,21 @@

Synopsis

+
+

Derived Classes

+ + + + + + + + + + +
NameDescription
R7 +
+
@@ -5874,6 +6240,21 @@

Synopsis

+
+

Derived Classes

+ + + + + + + + + + +
NameDescription
R8 +
+
@@ -6115,6 +6496,21 @@

Synopsis

+
+

Derived Classes

+ + + + + + + + + + +
NameDescription
R9 +
+
@@ -6221,6 +6617,21 @@

Synopsis

+
+

Derived Classes

+ + + + + + + + + + +
NameDescription
R3 +
+
@@ -6412,6 +6823,21 @@

Synopsis

+
+

Derived Classes

+ + + + + + + + + + +
NameDescription
R35 +
+
@@ -6671,6 +7097,21 @@

Synopsis

+
+

Derived Classes

+ + + + + + + + + + +
NameDescription
R36 +
+
@@ -6930,6 +7371,21 @@

Synopsis

+
+

Derived Classes

+ + + + + + + + + + +
NameDescription
R37 +
+
@@ -7080,6 +7536,21 @@

Synopsis

+
+

Derived Classes

+ + + + + + + + + + +
NameDescription
R38 +
+
@@ -7178,6 +7649,21 @@

Synopsis

+
+

Derived Classes

+ + + + + + + + + + +
NameDescription
R39 +
+
@@ -7282,6 +7768,21 @@

Member Functions

+
+

Derived Classes

+ + + + + + + + + + +
NameDescription
R30 +
+
@@ -7436,6 +7937,21 @@

Synopsis

+
+

Derived Classes

+ + + + + + + + + + +
NameDescription
R40 +
+
@@ -7622,6 +8138,21 @@

Member Functions

+
+

Derived Classes

+ + + + + + + + + + +
NameDescription
R41 +
+
@@ -7880,6 +8411,21 @@

Synopsis

+
+

Derived Classes

+ + + + + + + + + + +
NameDescription
R42 +
+
@@ -8118,6 +8664,21 @@

Synopsis

+
+

Derived Classes

+ + + + + + + + + + +
NameDescription
R43 +
+
@@ -8274,6 +8835,21 @@

Synopsis

+
+

Derived Classes

+ + + + + + + + + + +
NameDescription
R31 +
+
@@ -8516,6 +9092,21 @@

Synopsis

+
+

Derived Classes

+ + + + + + + + + + +
NameDescription
R44 +
+
@@ -8830,6 +9421,21 @@

Member Functions

+
+

Derived Classes

+ + + + + + + + + + +
NameDescription
R45 +
+
@@ -9203,6 +9809,21 @@

Synopsis

+
+

Derived Classes

+ + + + + + + + + + +
NameDescription
R46 +
+
@@ -9540,6 +10161,21 @@

Synopsis

+
+

Derived Classes

+ + + + + + + + + + +
NameDescription
R47 +
+
@@ -9712,6 +10348,21 @@

Synopsis

+
+

Derived Classes

+ + + + + + + + + + +
NameDescription
R32 +
+
@@ -10037,6 +10688,21 @@

Synopsis

+
+

Derived Classes

+ + + + + + + + + + +
NameDescription
R48 +
+
@@ -10209,6 +10875,21 @@

Synopsis

+
+

Derived Classes

+ + + + + + + + + + +
NameDescription
R33 +
+
@@ -10445,6 +11126,21 @@

Member Functions

+
+

Derived Classes

+ + + + + + + + + + +
NameDescription
R34 +
+
diff --git a/test-files/golden-tests/symbols/record/record-1.adoc b/test-files/golden-tests/symbols/record/record-1.adoc index 23e08e918d..a05045f80b 100644 --- a/test-files/golden-tests/symbols/record/record-1.adoc +++ b/test-files/golden-tests/symbols/record/record-1.adoc @@ -179,6 +179,7 @@ the separator === Parameters +[cols=2] |=== | Name | Description diff --git a/test-files/golden-tests/symbols/record/record-inheritance.adoc b/test-files/golden-tests/symbols/record/record-inheritance.adoc index af6b614429..a3eb0f9a84 100644 --- a/test-files/golden-tests/symbols/record/record-inheritance.adoc +++ b/test-files/golden-tests/symbols/record/record-inheritance.adoc @@ -39,6 +39,16 @@ Declared in `<record‐inheritance.cpp>` class C0; ---- +=== Derived Classes + +[,cols=2] +|=== +| Name +| Description +| <> +| +|=== + [#C1] == C1 @@ -104,6 +114,16 @@ class C5 : virtual <>; ---- +=== Derived Classes + +[,cols=2] +|=== +| Name +| Description +| <> +| +|=== + [#C6] == C6 @@ -117,6 +137,16 @@ class C6 : virtual <>; ---- +=== Derived Classes + +[,cols=2] +|=== +| Name +| Description +| <> +| +|=== + [#C7] == C7 @@ -143,6 +173,16 @@ Declared in `<record‐inheritance.cpp>` struct S0; ---- +=== Derived Classes + +[,cols=2] +|=== +| Name +| Description +| <> +| +|=== + [#S1] == S1 @@ -155,6 +195,16 @@ Declared in `<record‐inheritance.cpp>` struct S1; ---- +=== Derived Classes + +[,cols=2] +|=== +| Name +| Description +| <> +| +|=== + [#S2] == S2 @@ -168,6 +218,16 @@ struct S2 : <>; ---- +=== Derived Classes + +[,cols=2] +|=== +| Name +| Description +| <> +| +|=== + [#S3] == S3 @@ -181,6 +241,16 @@ struct S3 : <>; ---- +=== Derived Classes + +[,cols=2] +|=== +| Name +| Description +| <> +| +|=== + [#S4] == S4 diff --git a/test-files/golden-tests/symbols/record/record-inheritance.html b/test-files/golden-tests/symbols/record/record-inheritance.html index 47d7a7e4e7..17fa9dc7ce 100644 --- a/test-files/golden-tests/symbols/record/record-inheritance.html +++ b/test-files/golden-tests/symbols/record/record-inheritance.html @@ -54,6 +54,21 @@

Synopsis

+
+

Derived Classes

+ + + + + + + + + + +
NameDescription
C2 +
+
@@ -144,6 +159,21 @@

Synopsis

+
+

Derived Classes

+ + + + + + + + + + +
NameDescription
C7 +
+
@@ -162,6 +192,21 @@

Synopsis

+
+

Derived Classes

+ + + + + + + + + + +
NameDescription
C7 +
+
@@ -198,6 +243,21 @@

Synopsis

+
+

Derived Classes

+ + + + + + + + + + +
NameDescription
S2 +
+
@@ -215,6 +275,21 @@

Synopsis

+
+

Derived Classes

+ + + + + + + + + + +
NameDescription
S3 +
+
@@ -233,6 +308,21 @@

Synopsis

+
+

Derived Classes

+ + + + + + + + + + +
NameDescription
S4 +
+
@@ -251,6 +341,21 @@

Synopsis

+
+

Derived Classes

+ + + + + + + + + + +
NameDescription
S4 +
+
diff --git a/test-files/golden-tests/symbols/record/template-specialization-inheritance.adoc b/test-files/golden-tests/symbols/record/template-specialization-inheritance.adoc index 639979b414..91b87c7ce6 100644 --- a/test-files/golden-tests/symbols/record/template-specialization-inheritance.adoc +++ b/test-files/golden-tests/symbols/record/template-specialization-inheritance.adoc @@ -128,6 +128,16 @@ struct S0; | <> |=== +=== Derived Classes + +[,cols=2] +|=== +| Name +| Description +| <> +| +|=== + [#S0-0c-S1] == <>::S1 @@ -173,6 +183,16 @@ Declared in `<template‐specialization‐inheritance.cpp> struct S1; ---- +=== Derived Classes + +[,cols=2] +|=== +| Name +| Description +| <> +| +|=== + [#S0-073] == S0<3> @@ -186,6 +206,16 @@ template<> struct <><3>; ---- +=== Derived Classes + +[,cols=2] +|=== +| Name +| Description +| <> +| +|=== + [#S0-0e] == S0<5> diff --git a/test-files/golden-tests/symbols/record/template-specialization-inheritance.html b/test-files/golden-tests/symbols/record/template-specialization-inheritance.html index a5ab791c1c..bae9b3aa92 100644 --- a/test-files/golden-tests/symbols/record/template-specialization-inheritance.html +++ b/test-files/golden-tests/symbols/record/template-specialization-inheritance.html @@ -177,6 +177,21 @@

Types

+
+

Derived Classes

+ + + + + + + + + + +
NameDescription
R0 +
+
@@ -242,6 +257,21 @@

Synopsis

+
+

Derived Classes

+ + + + + + + + + + +
NameDescription
R1 +
+
@@ -260,6 +290,21 @@

Synopsis

+
+

Derived Classes

+ + + + + + + + + + +
NameDescription
R2 +
+
diff --git a/test-files/golden-tests/symbols/using/using-2.adoc b/test-files/golden-tests/symbols/using/using-2.adoc index 1a235c6335..fee75f12fb 100644 --- a/test-files/golden-tests/symbols/using/using-2.adoc +++ b/test-files/golden-tests/symbols/using/using-2.adoc @@ -62,7 +62,7 @@ using <>::S1; === Introduced Symbols - +[cols=2] |=== | Name | S1 @@ -82,7 +82,7 @@ using <>::S2; === Introduced Symbols - +[cols=2] |=== | Name | S2 diff --git a/test-files/golden-tests/symbols/using/using-3.adoc b/test-files/golden-tests/symbols/using/using-3.adoc index 4b73c40761..a9082d9955 100644 --- a/test-files/golden-tests/symbols/using/using-3.adoc +++ b/test-files/golden-tests/symbols/using/using-3.adoc @@ -34,6 +34,16 @@ struct A; | <> |=== +=== Derived Classes + +[,cols=2] +|=== +| Name +| Description +| <> +| +|=== + [#A-f] == <>::f @@ -67,6 +77,16 @@ struct B; | <> |=== +=== Derived Classes + +[,cols=2] +|=== +| Name +| Description +| <> +| +|=== + [#B-f] == <>::f @@ -178,7 +198,7 @@ using <>::f; === Introduced Symbols - +[cols=2] |=== | Name | f @@ -198,7 +218,7 @@ using <>::f; === Introduced Symbols - +[cols=2] |=== | Name | f diff --git a/test-files/golden-tests/symbols/using/using-3.html b/test-files/golden-tests/symbols/using/using-3.html index 2fba6dc011..07bbac5ab0 100644 --- a/test-files/golden-tests/symbols/using/using-3.html +++ b/test-files/golden-tests/symbols/using/using-3.html @@ -54,6 +54,21 @@

Member Functions

+
+

Derived Classes

+ + + + + + + + + + +
NameDescription
C +
+
@@ -100,6 +115,21 @@

Member Functions

+
+

Derived Classes

+ + + + + + + + + + +
NameDescription
C +
+