= Reference :mrdocs: == Namespaces [cols=1] |=== | Name | link:#mrdocs[`mrdocs`] |=== == link:#mrdocs[mrdocs] namespace === Namespaces [cols=2] |=== | Name | Description | link:#mrdocs-doc[`doc`] | | link:#mrdocs-dom[`dom`] | Objects representing JSON‐like values. | link:#mrdocs-files[`files`] | | link:#mrdocs-helpers[`helpers`] | | link:#mrdocs-js[`js`] | | link:#mrdocs-lua[`lua`] | | link:#mrdocs-report[`report`] | |=== === Types [cols=2] |=== | Name | Description | link:#mrdocs-AnyFileVisitor[`AnyFileVisitor`] | | link:#mrdocs-ArrayType[`ArrayType`] | | link:#mrdocs-ArrayView-06[`ArrayView`] | A non‐owning, read‐only view over a contiguous array of T. | link:#mrdocs-AutoType[`AutoType`] | | link:#mrdocs-BadExpectedAccess-05[`BadExpectedAccess`] | | link:#mrdocs-BadExpectedAccess-0f[`BadExpectedAccess<void>`] | | link:#mrdocs-BaseInfo[`BaseInfo`] | Metadata for a direct base. | link:#mrdocs-ConceptSymbol[`ConceptSymbol`] | Info for concepts. | link:#mrdocs-Config[`Config`] | Configuration used to generate the Corpus and Docs | link:#mrdocs-ConstantExprInfo[`ConstantExprInfo`] | Represents an expression with a (possibly known) value | link:#mrdocs-ConstantTArg[`ConstantTArg`] | | link:#mrdocs-ConstantTParam[`ConstantTParam`] | A constant template parameter | link:#mrdocs-Corpus[`Corpus`] | The collection of declarations in extracted form. | link:#mrdocs-DecltypeType[`DecltypeType`] | | link:#mrdocs-DocComment[`DocComment`] | A processed documentation comment attached to a declaration. | link:#mrdocs-DomCorpus[`DomCorpus`] | Front‐end factory for producing Dom nodes. | link:#mrdocs-EnumConstantSymbol[`EnumConstantSymbol`] | Info for enum constants. | link:#mrdocs-EnumSymbol[`EnumSymbol`] | | link:#mrdocs-Error[`Error`] | Holds the description of an error, or success. | link:#mrdocs-Exception[`Exception`] | Type of all exceptions thrown by the API. | link:#mrdocs-ExecutorGroup[`ExecutorGroup`] | A set of execution agents for performing concurrent work. | link:#mrdocs-ExecutorGroupBase[`ExecutorGroupBase`] | | link:#mrdocs-Expected-0a[`Expected`] | A container holding an error or a value. | link:#mrdocs-Expected-0f[`Expected<T, E>`] | | link:#mrdocs-Expected-01[`Expected<T&, E>`] | | link:#mrdocs-ExplicitInfo[`ExplicitInfo`] | Stores only the operand of the explicit‐specifier or noexcept‐specifier as a string. The complete expression is not preserved at this time. This is a temporary design and may be improved in the future. | link:#mrdocs-ExprInfo[`ExprInfo`] | Represents an expression | link:#mrdocs-FormatString[`FormatString`] | A format string with source location. | link:#mrdocs-FriendInfo[`FriendInfo`] | Info for friend declarations. | link:#mrdocs-FunctionSymbol[`FunctionSymbol`] | | link:#mrdocs-FunctionType[`FunctionType`] | | link:#mrdocs-Generator[`Generator`] | Base class for documentation generators. | link:#mrdocs-Generators[`Generators`] | A dynamic list of link:#mrdocs-Generator[`Generator`] elements. | link:#mrdocs-GlobPattern[`GlobPattern`] | A glob pattern matcher | link:#mrdocs-GuideSymbol[`GuideSymbol`] | Info for deduction guides. | link:#mrdocs-Handlebars[`Handlebars`] | A handlebars environment | link:#mrdocs-HandlebarsError[`HandlebarsError`] | An error thrown or returned by Handlebars | link:#mrdocs-HandlebarsOptions[`HandlebarsOptions`] | Options for handlebars | link:#mrdocs-IdentifierName[`IdentifierName`] | Represents an identifier | link:#mrdocs-LValueReferenceType[`LValueReferenceType`] | | link:#mrdocs-Location[`Location`] | | link:#mrdocs-MemberPointerType[`MemberPointerType`] | | link:#mrdocs-Name[`Name`] | Represents a name for a named `Type` | link:#mrdocs-NamedType[`NamedType`] | | link:#mrdocs-NamespaceAliasSymbol[`NamespaceAliasSymbol`] | Info for namespace aliases. | link:#mrdocs-NamespaceSymbol[`NamespaceSymbol`] | Describes a namespace. | link:#mrdocs-NamespaceTranche[`NamespaceTranche`] | The members of a Namespace | link:#mrdocs-NoexceptInfo[`NoexceptInfo`] | | link:#mrdocs-Optional-03[`Optional`] | A compact optional that automatically uses nullable_traits<T> when available. | link:#mrdocs-Optional-02[`Optional<T&>`] | | link:#mrdocs-OutputRef[`OutputRef`] | Reference to output stream used by handlebars | link:#mrdocs-Overload-09[`Overload`] | Combines multiple callable types into a single overloaded function object. | link:#mrdocs-OverloadsSymbol[`OverloadsSymbol`] | Represents a set of function overloads. | link:#mrdocs-Param[`Param`] | Represents a single function parameter | link:#mrdocs-ParseResult[`ParseResult`] | The result of a parse operation. | link:#mrdocs-PathGlobPattern[`PathGlobPattern`] | A glob pattern matcher for paths | link:#mrdocs-PointerType[`PointerType`] | | link:#mrdocs-Polymorphic[`Polymorphic`] | A polymorphic value‐type. | link:#mrdocs-RValueReferenceType[`RValueReferenceType`] | | link:#mrdocs-RangeFor-0f[`RangeFor`] | Range to help range‐for loops identify first and last. | link:#mrdocs-RecordInterface[`RecordInterface`] | The aggregated interface for a given struct, class, or union. | link:#mrdocs-RecordSymbol[`RecordSymbol`] | Metadata for struct, class, or union. | link:#mrdocs-RecordTranche[`RecordTranche`] | A group of members that have the same access specifier. | link:#mrdocs-ReferenceDirectories[`ReferenceDirectories`] | Reference directories used to resolve paths | link:#mrdocs-ScopeExit-0a[`ScopeExit`] | | link:#mrdocs-ScopeExitRestore-01[`ScopeExitRestore`] | | link:#mrdocs-SourceInfo[`SourceInfo`] | Stores source information for a declaration. | link:#mrdocs-SourceLocation[`SourceLocation`] | A source location with filename prettification. | link:#mrdocs-SpecializationName[`SpecializationName`] | Represents a (possibly qualified) symbol name with template arguments. | link:#mrdocs-SplitLinesAdaptor[`SplitLinesAdaptor`] | | link:#mrdocs-SplitLinesView[`SplitLinesView`] | | link:#mrdocs-StringHash[`StringHash`] | | link:#mrdocs-Symbol[`Symbol`] | Base class with common properties of all symbols | link:#mrdocs-SymbolCommonBase-015[`SymbolCommonBase`] | Base class for providing variant discriminator functions. | link:#mrdocs-SymbolGlobPattern[`SymbolGlobPattern`] | A glob pattern matcher for C++ symbols | link:#mrdocs-SymbolID[`SymbolID`] | A unique identifier for a symbol. | link:#mrdocs-TArg[`TArg`] | | link:#mrdocs-TArgCommonBase-06[`TArgCommonBase`] | | link:#mrdocs-TParam[`TParam`] | | link:#mrdocs-TParamCommonBase-0c[`TParamCommonBase`] | | link:#mrdocs-TaskGroup[`TaskGroup`] | A subset of possible work in a thread pool. | link:#mrdocs-TemplateInfo[`TemplateInfo`] | Information about templates and specializations thereof. | link:#mrdocs-TemplateTArg[`TemplateTArg`] | | link:#mrdocs-TemplateTParam[`TemplateTParam`] | | link:#mrdocs-ThreadPool[`ThreadPool`] | A pool of threads for executing work concurrently. | link:#mrdocs-Type[`Type`] | A possibly qualified type. | link:#mrdocs-TypeCommonBase-0e[`TypeCommonBase`] | | link:#mrdocs-TypeTArg[`TypeTArg`] | | link:#mrdocs-TypeTParam[`TypeTParam`] | | link:#mrdocs-TypedefSymbol[`TypedefSymbol`] | | link:#mrdocs-Unexpected-0c[`Unexpected`] | | link:#mrdocs-UsingSymbol[`UsingSymbol`] | Info for using declarations. | link:#mrdocs-VariableSymbol[`VariableSymbol`] | A variable. | link:#mrdocs-Visitor[`Visitor`] | A visitor for a type | link:#mrdocs-YCombinator[`YCombinator`] | Enables recursive lambdas by passing a self‐reference as the first argument. | link:#mrdocs-add_const_from[`add_const_from`] | | link:#mrdocs-add_cv_from[`add_cv_from`] | | link:#mrdocs-add_cvref_from[`add_cvref_from`] | | link:#mrdocs-add_lvalue_reference_from[`add_lvalue_reference_from`] | | link:#mrdocs-add_reference_from[`add_reference_from`] | | link:#mrdocs-add_rvalue_reference_from[`add_rvalue_reference_from`] | | link:#mrdocs-add_volatile_from[`add_volatile_from`] | | link:#mrdocs-any_callable-01[`any_callable`] | A movable, type‐erased function object. | link:#mrdocs-any_callable-0a[`any_callable<R(Args...)>`] | | link:#mrdocs-make_dependent[`make_dependent`] | | link:#mrdocs-nullable_traits-0b[`nullable_traits`] | nullable_traits<T> defines how to treat a T as “nullable” without an external engaged bit. | link:#mrdocs-nullable_traits-00[`nullable_traits<Location>`] | nullable_traits specialization for Location. | link:#mrdocs-nullable_traits-06[`nullable_traits<T>`] | nullable_traits for types with a sentinel. | link:#mrdocs-nullable_traits-0c[`nullable_traits<Polymorphic<T>>`] | nullable_traits for Polymorphic<T>. | link:#mrdocs-sentinel_traits-0a[`sentinel_traits`] | Defines a customization point for types that have an intrinsic sentinel value denoting “null”. | link:#mrdocs-sentinel_traits-03a[`sentinel_traits<std::nullptr_t>`] | sentinel_traits specialization for std::nullptr_t. | link:#mrdocs-sentinel_traits-01[`sentinel_traits<T>`] | sentinel_traits specialization for unsigned integral types. | link:#mrdocs-sentinel_traits-03c[`sentinel_traits<T*>`] | sentinel_traits specialization for raw pointers. | link:#mrdocs-unexpect_t[`unexpect_t`] | | link:#mrdocs-unlock_guard[`unlock_guard`] | A scoped guard which unlocks a mutex. | link:#mrdocs-UnorderedStringMap[`UnorderedStringMap`] | | link:#mrdocs-UnorderedStringMultiMap[`UnorderedStringMultiMap`] | | link:#mrdocs-add_const_from_t[`add_const_from_t`] | | link:#mrdocs-add_cv_from_t[`add_cv_from_t`] | | link:#mrdocs-add_cvref_from_t[`add_cvref_from_t`] | | link:#mrdocs-add_lvalue_reference_from_t[`add_lvalue_reference_from_t`] | | link:#mrdocs-add_reference_from_t[`add_reference_from_t`] | | link:#mrdocs-add_rvalue_reference_from_t[`add_rvalue_reference_from_t`] | | link:#mrdocs-add_volatile_from_t[`add_volatile_from_t`] | | link:#mrdocs-make_dependent_t[`make_dependent_t`] | |=== === Enums [cols=2] |=== | Name | Description | link:#mrdocs-AccessKind[`AccessKind`] | Access specifier. | link:#mrdocs-AutoKind[`AutoKind`] | The kind of `auto` keyword used in a declaration. | link:#mrdocs-ConstexprKind[`ConstexprKind`] | `constexpr`/`consteval` specifier kinds | link:#mrdocs-ExplicitKind[`ExplicitKind`] | Explicit specifier kinds | link:#mrdocs-ExtractionMode[`ExtractionMode`] | Determine why a symbol is extracted | link:#mrdocs-FileKind[`FileKind`] | | link:#mrdocs-FunctionClass[`FunctionClass`] | Function classifications | link:#mrdocs-FundamentalTypeKind[`FundamentalTypeKind`] | Categorically describes a fundamental type. | link:#mrdocs-ListKind[`ListKind`] | | link:#mrdocs-NameKind[`NameKind`] | | link:#mrdocs-NoexceptKind[`NoexceptKind`] | Exception specification kinds | link:#mrdocs-OperatorKind[`OperatorKind`] | Operator kinds | link:#mrdocs-QualifierKind[`QualifierKind`] | Type qualifiers | link:#mrdocs-RecordKeyKind[`RecordKeyKind`] | The kind of record: struct, class, or union. | link:#mrdocs-ReferenceKind[`ReferenceKind`] | Reference type kinds | link:#mrdocs-StorageClassKind[`StorageClassKind`] | Storage class kinds | link:#mrdocs-SymbolKind[`SymbolKind`] | Info variant discriminator | link:#mrdocs-TArgKind[`TArgKind`] | The kind of template argument. | link:#mrdocs-TParamKeyKind[`TParamKeyKind`] | The keyword a template parameter was declared with | link:#mrdocs-TParamKind[`TParamKind`] | | link:#mrdocs-TableAlignmentKind[`TableAlignmentKind`] | | link:#mrdocs-TemplateSpecKind[`TemplateSpecKind`] | The kind of template or specialization. | link:#mrdocs-TypeKind[`TypeKind`] | | link:#mrdocs-UsingClass[`UsingClass`] | The class of using declaration. |=== === Functions [cols=2] |=== | Name | Description | link:#mrdocs-CompareDerived-0f[`CompareDerived`] | Compares two polymorphic objects that have visit functions | link:#mrdocs-HTMLEscape-0f[`HTMLEscape`] | `HTMLEscape` overloads | link:#mrdocs-addMember[`addMember`] | | link:#mrdocs-allMembers-0a[`allMembers`] | | link:#mrdocs-assert_failed[`assert_failed`] | | link:#mrdocs-bottomUpTraverse[`bottomUpTraverse`] | | link:#mrdocs-canMerge[`canMerge`] | | link:#mrdocs-cast-023[`cast`] | | link:#mrdocs-cast_or_null-0c[`cast_or_null`] | | link:#mrdocs-compareSymbolNames[`compareSymbolNames`] | Return the result of comparing s0 to s1. | link:#mrdocs-contains-06[`contains`] | Determine if a range contains a specific element. | link:#mrdocs-contains_any-00[`contains_any`] | Determine if a range contains any of the specified elements. | link:#mrdocs-contains_n[`contains_n`] | Determine if a range contains at least N instances of the specified element. | link:#mrdocs-contains_n_any-0e[`contains_n_any`] | Determine if a range contains at least N instances of any of the specified elements. | link:#mrdocs-countSymbolKind[`countSymbolKind`] | | link:#mrdocs-createFrame-01[`createFrame`] | Create child data objects. | link:#mrdocs-dyn_cast-02[`dyn_cast`] | | link:#mrdocs-dyn_cast_or_null-0f[`dyn_cast_or_null`] | | link:#mrdocs-endsWithOneOf[`endsWithOneOf`] | Determine if a string ends with one of the specified characters | link:#mrdocs-escapeExpression[`escapeExpression`] | | link:#mrdocs-find_last_of[`find_last_of`] | Find the last element in a range that matches an element in the specified range. | link:#mrdocs-forEachFile-08[`forEachFile`] | `forEachFile` overloads | link:#mrdocs-formatError[`formatError`] | Return a formatted error. | link:#mrdocs-fromString[`fromString`] | Convert a string to a FundamentalTypeKind. | link:#mrdocs-getDefaultAccessString[`getDefaultAccessString`] | | link:#mrdocs-getGenerators[`getGenerators`] | Return a reference to the global Generators instance. | link:#mrdocs-getOperatorKind[`getOperatorKind`] | Return the short name of an operator as a string. | link:#mrdocs-getOperatorKindFromSuffix[`getOperatorKindFromSuffix`] | Return the short name of an operator as a string. | link:#mrdocs-getOperatorName[`getOperatorName`] | Return the name of an operator as a string. | link:#mrdocs-getOperatorReadableName[`getOperatorReadableName`] | Return the human‐readable name of the operator | link:#mrdocs-getParents-0d[`getParents`] | `getParents` overloads | link:#mrdocs-getPrimaryLocation-04[`getPrimaryLocation`] | | link:#mrdocs-getSafeOperatorName[`getSafeOperatorName`] | Return the safe name of an operator as a string. | link:#mrdocs-getShortOperatorName[`getShortOperatorName`] | Return the short name of an operator as a string. | link:#mrdocs-getSinglePageFullPath[`getSinglePageFullPath`] | Return the full path for single page output. | link:#mrdocs-innerType-00[`innerType`] | Return the inner type. | link:#mrdocs-innerTypePtr-06[`innerTypePtr`] | Return the inner type. | link:#mrdocs-innermostType-06[`innermostType`] | Return the innermost type. | link:#mrdocs-isAlphaNumeric-05[`isAlphaNumeric`] | | link:#mrdocs-isAlphabetic-05[`isAlphabetic`] | | link:#mrdocs-isBinaryOperator[`isBinaryOperator`] | Determines whether the operator is potentially binary. | link:#mrdocs-isDigit-03[`isDigit`] | | link:#mrdocs-isEmpty[`isEmpty`] | Determine if a value is empty | link:#mrdocs-isLowerCase-04[`isLowerCase`] | | link:#mrdocs-isUnaryOperator[`isUnaryOperator`] | Determines whether the operator is potentially unary. | link:#mrdocs-isUpperCase-04[`isUpperCase`] | | link:#mrdocs-isWhitespace-09[`isWhitespace`] | Determine if a string is only whitespace. | link:#mrdocs-is_null[`is_null`] | is_null helper that uses nullable_traits<T> if available. | link:#mrdocs-is_one_of-0e[`is_one_of`] | Determine if an element is equal to any of the elements in the specified range. | link:#mrdocs-isa[`isa`] | | link:#mrdocs-isa_or_null[`isa_or_null`] | | link:#mrdocs-leastSpecific[`leastSpecific`] | Compare ExtractionModes and returns the least specific | link:#mrdocs-ltrim-051[`ltrim`] | `ltrim` overloads | link:#mrdocs-makeChar[`makeChar`] | Apply the "char" specifier to the type | link:#mrdocs-makeLong[`makeLong`] | Apply the "long" specifier to the type | link:#mrdocs-makeOverload[`makeOverload`] | Factory function that creates an Overload from the given callables. | link:#mrdocs-makeShort[`makeShort`] | Apply the "short" specifier to the type | link:#mrdocs-makeSigned[`makeSigned`] | Apply the "signed" specifier to the type | link:#mrdocs-makeUnsigned[`makeUnsigned`] | Apply the "unsigned" specifier to the type | link:#mrdocs-makeVisitor[`makeVisitor`] | Make a visitor for a base type | link:#mrdocs-make_array_view-0a[`make_array_view`] | | link:#mrdocs-make_null[`make_null`] | make_null helper that uses nullable_traits<T> if available. | link:#mrdocs-match[`match`] | Applies a set of callables to a std::variant using std::visit and Overload. | link:#mrdocs-merge-0a[`merge`] | `merge` overloads | link:#mrdocs-mostSpecific[`mostSpecific`] | Compare ExtractionModes and returns the most specific | link:#mrdocs-null_of[`null_of`] | null_of helper that constructs a null T using nullable_traits<T>. | link:#mrdocs-operator_bitor[`operator|`] | | link:#mrdocs-overrides[`overrides`] | Determine if one function would override the other | link:#mrdocs-parse-07[`parse`] | Parse a string view | link:#mrdocs-reindentCode[`reindentCode`] | Reindent code by removing the common leading spaces and adding the specified indent. | link:#mrdocs-replace[`replace`] | Return the substring without leading and trailing horizontal whitespace. | link:#mrdocs-rtrim-0c5[`rtrim`] | `rtrim` overloads | link:#mrdocs-safeString-0a[`safeString`] | Create a wrapper for a safe string. | link:#mrdocs-startsWithOneOf[`startsWithOneOf`] | Determine if a string starts with one of the specified characters | link:#mrdocs-swap-07d[`swap`] | | link:#mrdocs-tag_invoke-005[`tag_invoke`] | `tag_invoke` overloads | link:#mrdocs-toBase16Str[`toBase16Str`] | Convert a SymbolID to a string | link:#mrdocs-toCamelCase[`toCamelCase`] | | link:#mrdocs-toKebabCase[`toKebabCase`] | | link:#mrdocs-toLowerCase-0a6[`toLowerCase`] | | link:#mrdocs-toPascalCase[`toPascalCase`] | | link:#mrdocs-toSnakeCase[`toSnakeCase`] | | link:#mrdocs-toString-02[`toString`] | `toString` overloads | link:#mrdocs-toUpperCase-0f[`toUpperCase`] | | link:#mrdocs-to_underlying[`to_underlying`] | Return the value as its underlying type. | link:#mrdocs-topDownTraverse[`topDownTraverse`] | | link:#mrdocs-trim-0a[`trim`] | `trim` overloads | link:#mrdocs-visit-0f[`visit`] | Invoke a function object with a type derived from Symbol | link:#mrdocs-visitIndexed[`visitIndexed`] | Visits a std::variant and calls the combined callable with the active index and the value. | link:#mrdocs-yCombinator[`yCombinator`] | Factory that creates a YCombinator from a callable. | link:#mrdocs-operator_lshift-0e1[`operator<<`] | Write to output | link:#mrdocs-operator_eq-04[`operator==`] | Equality operators | link:#mrdocs-operator_not_eq-0a[`operator!=`] | Inequality operators | link:#mrdocs-operator_lt-0f[`operator<`] | Less‐than operators | link:#mrdocs-operator_le-0b[`operator<=`] | Less‐than‐or‐equal operators | link:#mrdocs-operator_gt-09[`operator>`] | Greater‐than operators | link:#mrdocs-operator_ge-00[`operator>=`] | Greater‐than‐or‐equal operators | link:#mrdocs-operator_3way-00[`operator<=>`] | Three‐way comparison operators |=== === Variables [cols=2] |=== | Name | Description | link:#mrdocs-splitLines[`splitLines`] | Split a string view into lines, recognizing all common line breaks | link:#mrdocs-unexpect[`unexpect`] | |=== === Concepts [cols=2] |=== | Name | Description | link:#mrdocs-ClearableContainerLike[`ClearableContainerLike`] | Internal concept that matches “empty‐clear default‐constructible” types. | link:#mrdocs-DocCommentNode[`DocCommentNode`] | Concept to check if a type represents a DocComment node. | link:#mrdocs-DocCommentNodeTraversable[`DocCommentNodeTraversable`] | | link:#mrdocs-HasParse[`HasParse`] | Concept to determine if there's a parse function for a type. | link:#mrdocs-HasSentinel[`HasSentinel`] | Concept that is satisfied when sentinel_traits<T> declares a usable sentinel. | link:#mrdocs-SymbolParent[`SymbolParent`] | A concept for types that have `Symbol` members. | link:#mrdocs-dereferenceable[`dereferenceable`] | Determine if a type is dereferenceable | link:#mrdocs-has_nullable_traits_v[`has_nullable_traits_v`] | Utility function that returns true if T has a nullable_traits specialization enabled. | link:#mrdocs-pair_like[`pair_like`] | Concept to check if a type is pair‐like | link:#mrdocs-polymorphic_storage_for[`polymorphic_storage_for`] | Concept to check if a type is representing a polymorphic storage | link:#mrdocs-range_of[`range_of`] | Concept to check if a type is a range of T | link:#mrdocs-range_of_tuple_like[`range_of_tuple_like`] | Concept to check if a range is a range of tuple‐like elements | link:#mrdocs-reference_constructs_from_temporary_v[`reference_constructs_from_temporary_v`] | | link:#mrdocs-reference_converts_from_temporary_v[`reference_converts_from_temporary_v`] | | link:#mrdocs-tuple_like[`tuple_like`] | Concept to check if a type is tuple‐like |=== === Deduction Guides [cols=2] |=== | Name | Description | link:#mrdocs-ArrayView-0c[`ArrayView<T>`] | | link:#mrdocs-ArrayView-01[`ArrayView<T>`] | | link:#mrdocs-Overload-0a[`Overload<Ts...>`] | Class template argument deduction guide for Overload. | link:#mrdocs-RangeFor-0c[`RangeFor<Container>`] | | link:#mrdocs-ScopeExit-0d[`ScopeExit<F>`] | | link:#mrdocs-ScopeExitRestore-04[`ScopeExitRestore<T>`] | | link:#mrdocs-ScopeExitRestore-03[`ScopeExitRestore<T>`] | | link:#mrdocs-Unexpected-0d[`Unexpected<E>`] | |=== === Using Declarations [cols=1] |=== | Name | link:#mrdocs-source_location[`source_location`] |=== == link:#mrdocs-doc[mrdocs::doc] namespace === Types [cols=2] |=== | Name | Description | link:#mrdocs-doc-AdmonitionBlock[`AdmonitionBlock`] | A block for side‐notes like tips, warnings, notes | link:#mrdocs-doc-Block[`Block`] | A piece of block content | link:#mrdocs-doc-BlockCommonBase-0ed[`BlockCommonBase`] | Base class for providing variant discriminator functions. | link:#mrdocs-doc-BlockContainer[`BlockContainer`] | | link:#mrdocs-doc-BriefBlock[`BriefBlock`] | The brief description | link:#mrdocs-doc-CodeBlock[`CodeBlock`] | Preformatted source code. | link:#mrdocs-doc-CodeInline[`CodeInline`] | A piece of styled text. | link:#mrdocs-doc-CopyDetailsInline[`CopyDetailsInline`] | Documentation copied from another symbol. | link:#mrdocs-doc-DefinitionListBlock[`DefinitionListBlock`] | | link:#mrdocs-doc-DefinitionListItem[`DefinitionListItem`] | An item in a definition list | link:#mrdocs-doc-EmphInline[`EmphInline`] | A piece of styled text. | link:#mrdocs-doc-FootnoteDefinitionBlock[`FootnoteDefinitionBlock`] | Preformatted source code. | link:#mrdocs-doc-FootnoteReferenceInline[`FootnoteReferenceInline`] | A reference to a symbol. | link:#mrdocs-doc-HeadingBlock[`HeadingBlock`] | A manually specified section heading. | link:#mrdocs-doc-HighlightInline[`HighlightInline`] | A piece of highlighted text. | link:#mrdocs-doc-ImageInline[`ImageInline`] | An image. | link:#mrdocs-doc-Inline[`Inline`] | A Node containing a string of text. | link:#mrdocs-doc-InlineCommonBase-0dc[`InlineCommonBase`] | Base class for providing variant discriminator functions. | link:#mrdocs-doc-InlineContainer[`InlineContainer`] | An internal node in the inline element tree | link:#mrdocs-doc-InlineTextLeaf[`InlineTextLeaf`] | A leaf node that stores a string of text. | link:#mrdocs-doc-LineBreakInline[`LineBreakInline`] | A hard line break that renders as "" | link:#mrdocs-doc-LinkInline[`LinkInline`] | A hyperlink. | link:#mrdocs-doc-ListBlock[`ListBlock`] | A list of list items | link:#mrdocs-doc-ListItem[`ListItem`] | An item in a list | link:#mrdocs-doc-MathBlock[`MathBlock`] | A block of LaTeX math | link:#mrdocs-doc-MathInline[`MathInline`] | An inline LaTeX math expression | link:#mrdocs-doc-ParagraphBlock[`ParagraphBlock`] | A sequence of text nodes. | link:#mrdocs-doc-ParamBlock[`ParamBlock`] | Documentation for a function parameter | link:#mrdocs-doc-PostconditionBlock[`PostconditionBlock`] | | link:#mrdocs-doc-PreconditionBlock[`PreconditionBlock`] | | link:#mrdocs-doc-QuoteBlock[`QuoteBlock`] | A list of list items | link:#mrdocs-doc-ReferenceInline[`ReferenceInline`] | A reference to a symbol. | link:#mrdocs-doc-ReturnsBlock[`ReturnsBlock`] | Documentation for a function return type | link:#mrdocs-doc-SeeBlock[`SeeBlock`] | A | link:#mrdocs-doc-SoftBreakInline[`SoftBreakInline`] | A line break that may render as space | link:#mrdocs-doc-StrikethroughInline[`StrikethroughInline`] | A piece of styled text. | link:#mrdocs-doc-StrongInline[`StrongInline`] | A piece of styled text. | link:#mrdocs-doc-SubscriptInline[`SubscriptInline`] | A piece of styled text. | link:#mrdocs-doc-SuperscriptInline[`SuperscriptInline`] | A piece of styled text. | link:#mrdocs-doc-TParamBlock[`TParamBlock`] | Documentation for a template parameter | link:#mrdocs-doc-TableBlock[`TableBlock`] | A table block | link:#mrdocs-doc-TableCell[`TableCell`] | A cell in a table | link:#mrdocs-doc-TableRow[`TableRow`] | An item in a list | link:#mrdocs-doc-TextInline[`TextInline`] | A Node containing a string of text. | link:#mrdocs-doc-ThematicBreakBlock[`ThematicBreakBlock`] | The brief description | link:#mrdocs-doc-ThrowsBlock[`ThrowsBlock`] | Documentation for a function parameter |=== === Enums [cols=2] |=== | Name | Description | link:#mrdocs-doc-AdmonitionKind[`AdmonitionKind`] | An admonishment style. | link:#mrdocs-doc-BlockKind[`BlockKind`] | | link:#mrdocs-doc-InlineKind[`InlineKind`] | | link:#mrdocs-doc-ParamDirection[`ParamDirection`] | Parameter pass direction. | link:#mrdocs-doc-Parts[`Parts`] | Which parts of the documentation to copy. |=== === Functions [cols=2] |=== | Name | Description | link:#mrdocs-doc-getAsPlainText-02[`getAsPlainText`] | `getAsPlainText` overloads | link:#mrdocs-doc-isBlockCommand[`isBlockCommand`] | | link:#mrdocs-doc-isEmpty-04[`isEmpty`] | Determine if the inline is empty | link:#mrdocs-doc-ltrim-09[`ltrim`] | `ltrim` overloads | link:#mrdocs-doc-rtrim-03[`rtrim`] | `rtrim` overloads | link:#mrdocs-doc-tag_invoke-0ea[`tag_invoke`] | `tag_invoke` overloads | link:#mrdocs-doc-toString-0b[`toString`] | `toString` overloads | link:#mrdocs-doc-traverse[`traverse`] | Traverse a list of inlines. | link:#mrdocs-doc-trim-00[`trim`] | `trim` overloads | link:#mrdocs-doc-visit-0e[`visit`] | `visit` overloads | link:#mrdocs-doc-operator_eq-0a[`operator==`] | Equality operators | link:#mrdocs-doc-operator_3way-01c[`operator<=>`] | Three‐way comparison operators |=== == link:#mrdocs-dom[mrdocs::dom] namespace Objects representing JSON‐like values. === Namespaces [cols=1] |=== | Name | link:#mrdocs-dom-JSON[`JSON`] |=== === Types [cols=2] |=== | Name | Description | link:#mrdocs-dom-Array[`Array`] | An array of values | link:#mrdocs-dom-ArrayImpl[`ArrayImpl`] | Abstract array interface. | link:#mrdocs-dom-DefaultArrayImpl[`DefaultArrayImpl`] | The default array implementation. | link:#mrdocs-dom-DefaultFunctionImpl[`DefaultFunctionImpl`] | | link:#mrdocs-dom-DefaultObjectImpl[`DefaultObjectImpl`] | The default Object implementation. | link:#mrdocs-dom-Function[`Function`] | | link:#mrdocs-dom-FunctionImpl[`FunctionImpl`] | | link:#mrdocs-dom-LazyArrayImpl-03[`LazyArrayImpl`] | Lazy array implementation | link:#mrdocs-dom-LazyArrayImpl-0a[`LazyArrayImpl`] | Lazy array implementation | link:#mrdocs-dom-LazyObjectImpl-04[`LazyObjectImpl`] | Lazy object implementation. | link:#mrdocs-dom-LazyObjectImpl-09[`LazyObjectImpl`] | Lazy object implementation. | link:#mrdocs-dom-LazyObjectMapTag[`LazyObjectMapTag`] | Customization point tag. | link:#mrdocs-dom-Object[`Object`] | A container of key and value pairs. | link:#mrdocs-dom-ObjectImpl[`ObjectImpl`] | Abstract object interface. | link:#mrdocs-dom-String[`String`] | | link:#mrdocs-dom-Value[`Value`] | A variant container for any kind of Dom value. | link:#mrdocs-dom-ValueFromTag[`ValueFromTag`] | Customization point tag. | link:#mrdocs-dom-VariadicFunctionImpl[`VariadicFunctionImpl`] | | link:#mrdocs-dom-function_traits-056[`function_traits`] | | link:#mrdocs-dom-function_traits-06[`function_traits<F>`] | | link:#mrdocs-dom-function_traits-0f[`function_traits<R(*)(Args...)>`] | | link:#mrdocs-dom-function_traits-04[`function_traits<R(Args...)>`] | | link:#mrdocs-dom-function_traits-05f[`function_traits<R const volatile(C::*)(Args...)>`] | |=== === Enums [cols=2] |=== | Name | Description | link:#mrdocs-dom-Kind[`Kind`] | The type of data in a Value. |=== === Functions [cols=2] |=== | Name | Description | link:#mrdocs-dom-LazyArray-04[`LazyArray`] | `LazyArray` overloads | link:#mrdocs-dom-LazyObject-07[`LazyObject`] | `LazyObject` overloads | link:#mrdocs-dom-TransformArray[`TransformArray`] | Return a new dom::Array based on a transformed lazy array implementation. | link:#mrdocs-dom-ValueFrom-0a[`ValueFrom`] | `ValueFrom` overloads | link:#mrdocs-dom-makeInvocable[`makeInvocable`] | | link:#mrdocs-dom-makeVariadicInvocable[`makeVariadicInvocable`] | | link:#mrdocs-dom-newArray[`newArray`] | Return a new array using a custom implementation. | link:#mrdocs-dom-newFunction[`newFunction`] | Return a diagnostic string. | link:#mrdocs-dom-newObject[`newObject`] | Return a new object using a custom implementation. | link:#mrdocs-dom-operator_and-0df7[`operator&&`] | Return the first dom::Value that is not truthy, or the last one. | link:#mrdocs-dom-operator_plus-002[`operator+`] | Addition operators | link:#mrdocs-dom-operator_or-0e[`operator||`] | Return the first dom::Value that is truthy, or the last one. | link:#mrdocs-dom-stringOrNull-04[`stringOrNull`] | Return a non‐empty string, or a null. | link:#mrdocs-dom-swap-0c[`swap`] | `swap` overloads | link:#mrdocs-dom-toString-07[`toString`] | `toString` overloads | link:#mrdocs-dom-operator_eq-00[`operator==`] | Equality operators | link:#mrdocs-dom-operator_not_eq-04[`operator!=`] | Return the result of comparing two strings. | link:#mrdocs-dom-operator_3way-07b[`operator<=>`] | Three‐way comparison operators |=== === Concepts [cols=2] |=== | Name | Description | link:#mrdocs-dom-HasLazyObjectMap[`HasLazyObjectMap`] | Determine if `T` can be converted to link:#mrdocs-dom-Value[`dom::Value`]. | link:#mrdocs-dom-HasLazyObjectMapWithContext[`HasLazyObjectMapWithContext`] | Concept to determine if a type can be mapped to a link:#mrdocs-dom-LazyObjectImpl-04[`dom::LazyObjectImpl`] with a user‐provided conversion. | link:#mrdocs-dom-HasLazyObjectMapWithoutContext[`HasLazyObjectMapWithoutContext`] | Concept to determine if a type can be mapped to a link:#mrdocs-dom-LazyObjectImpl-04[`dom::LazyObjectImpl`] with a user‐provided conversion. | link:#mrdocs-dom-HasStandaloneValueFrom[`HasStandaloneValueFrom`] | Determine if ` T` can be converted to link:#mrdocs-dom-Value[`dom::Value`] without a context. | link:#mrdocs-dom-HasValueFrom[`HasValueFrom`] | Determine if `T` can be converted to link:#mrdocs-dom-Value[`dom::Value`]. | link:#mrdocs-dom-HasValueFromWithContext[`HasValueFromWithContext`] | Concept to determine if a type can be converted to a link:#mrdocs-dom-Value[`dom::Value`] with a user‐provided conversion. | link:#mrdocs-dom-HasValueFromWithoutContext[`HasValueFromWithoutContext`] | Concept to determine if a type can be converted to a link:#mrdocs-dom-Value[`dom::Value`] with a user‐provided conversion. | link:#mrdocs-dom-StringLikeTy[`StringLikeTy`] | Satisfied if StringTy is convertible to String but not a String. | link:#mrdocs-dom-function_traits_convertible_to_value[`function_traits_convertible_to_value`] | | link:#mrdocs-dom-has_function_args_for_default_function_impl[`has_function_args_for_default_function_impl`] | | link:#mrdocs-dom-has_function_traits[`has_function_traits`] | | link:#mrdocs-dom-has_function_traits_for_default_function_impl[`has_function_traits_for_default_function_impl`] | | link:#mrdocs-dom-has_invoke_expected_result_convertible_to_dom_value[`has_invoke_expected_result_convertible_to_dom_value`] | | link:#mrdocs-dom-has_invoke_result_convertible_to_dom_value[`has_invoke_result_convertible_to_dom_value`] | | link:#mrdocs-dom-has_invoke_result_for_default_function_impl[`has_invoke_result_for_default_function_impl`] | |=== == link:#mrdocs-dom-JSON[mrdocs::dom::JSON] namespace === Functions [cols=2] |=== | Name | Description | link:#mrdocs-dom-JSON-stringify[`stringify`] | Stringify a value as JSON |=== == link:#mrdocs-files[mrdocs::files] namespace === Enums [cols=2] |=== | Name | Description | link:#mrdocs-files-FileType[`FileType`] | The type of a file. |=== === Functions [cols=2] |=== | Name | Description | link:#mrdocs-files-appendPath-04[`appendPath`] | | link:#mrdocs-files-createDirectory[`createDirectory`] | Create a directory. | link:#mrdocs-files-exists[`exists`] | Determine if a path exists | link:#mrdocs-files-getFileName[`getFileName`] | Return the filename part of the path. | link:#mrdocs-files-getFileText[`getFileText`] | Return the contents of a file as a string. | link:#mrdocs-files-getFileType[`getFileType`] | Return the file type or an error | link:#mrdocs-files-getParentDir-00[`getParentDir`] | Return the parent directory. | link:#mrdocs-files-getSourceFilename[`getSourceFilename`] | Return the relevant suffix of a source file path. | link:#mrdocs-files-isAbsolute[`isAbsolute`] | Return true if pathName is absolute. | link:#mrdocs-files-isDirectory[`isDirectory`] | Determine if a path is a directory. | link:#mrdocs-files-isDirsy[`isDirsy`] | Return true if pathName ends in a separator. | link:#mrdocs-files-isLexicalDirectory[`isLexicalDirectory`] | Determine lexically if a path is a directory. | link:#mrdocs-files-isPosixStyle[`isPosixStyle`] | Check if the path is posix style. | link:#mrdocs-files-makeAbsolute-0d[`makeAbsolute`] | Return an absolute path from a possibly relative path. | link:#mrdocs-files-makeDirsy[`makeDirsy`] | Append a trailing native separator if not already present. | link:#mrdocs-files-makePosixStyle[`makePosixStyle`] | Convert all backward slashes to forward slashes. | link:#mrdocs-files-normalizeDir[`normalizeDir`] | Return a normalized directory. | link:#mrdocs-files-normalizePath[`normalizePath`] | Return a normalized path. | link:#mrdocs-files-requireAbsolute[`requireAbsolute`] | Return an error if pathName is not absolute. | link:#mrdocs-files-requireDirectory[`requireDirectory`] | Return an error if the path is not a directory. | link:#mrdocs-files-startsWith[`startsWith`] | Checks if the given path starts with the specified prefix. | link:#mrdocs-files-withExtension[`withExtension`] | Return the filename with a new or different extension. |=== == link:#mrdocs-helpers[mrdocs::helpers] namespace === Functions [cols=2] |=== | Name | Description | link:#mrdocs-helpers-and_fn[`and_fn`] | "and" helper function | link:#mrdocs-helpers-detag_fn[`detag_fn`] | "detag" helper function | link:#mrdocs-helpers-eq_fn[`eq_fn`] | "eq" helper function | link:#mrdocs-helpers-increment_fn[`increment_fn`] | "increment" helper function | link:#mrdocs-helpers-ne_fn[`ne_fn`] | "ne" helper function | link:#mrdocs-helpers-not_fn[`not_fn`] | "not" helper function | link:#mrdocs-helpers-or_fn[`or_fn`] | "or" helper function | link:#mrdocs-helpers-registerAntoraHelpers[`registerAntoraHelpers`] | Register all the Antora helpers into a Handlebars instance | link:#mrdocs-helpers-registerBuiltinHelpers[`registerBuiltinHelpers`] | Register all the built‐in helpers into a Handlebars instance | link:#mrdocs-helpers-registerConstructorHelpers[`registerConstructorHelpers`] | Register contructor helpers into a Handlebars instance | link:#mrdocs-helpers-registerContainerHelpers[`registerContainerHelpers`] | Register helpers to manipulate composite data types | link:#mrdocs-helpers-registerLogicalHelpers[`registerLogicalHelpers`] | Register logical helpers into a Handlebars instance | link:#mrdocs-helpers-registerMathHelpers[`registerMathHelpers`] | Register math helpers into a Handlebars instance | link:#mrdocs-helpers-registerStringHelpers[`registerStringHelpers`] | Register string helpers into a Handlebars instance | link:#mrdocs-helpers-registerTypeHelpers[`registerTypeHelpers`] | Register type helpers into a Handlebars instance | link:#mrdocs-helpers-relativize_fn[`relativize_fn`] | "relativize" helper function | link:#mrdocs-helpers-select_fn[`select_fn`] | "select" helper function | link:#mrdocs-helpers-year_fn[`year_fn`] | "year" helper function |=== == link:#mrdocs-js[mrdocs::js] namespace === Types [cols=2] |=== | Name | Description | link:#mrdocs-js-Access[`Access`] | | link:#mrdocs-js-Array[`Array`] | | link:#mrdocs-js-Boolean[`Boolean`] | | link:#mrdocs-js-Context[`Context`] | An instance of a JavaScript interpreter. | link:#mrdocs-js-Object[`Object`] | | link:#mrdocs-js-Prop[`Prop`] | | link:#mrdocs-js-Scope[`Scope`] | A JavaScript scope | link:#mrdocs-js-String[`String`] | | link:#mrdocs-js-Value[`Value`] | An ECMAScript value. |=== === Enums [cols=2] |=== | Name | Description | link:#mrdocs-js-Type[`Type`] | Types of values. |=== === Functions [cols=2] |=== | Name | Description | link:#mrdocs-js-operator_and-0c[`operator&&`] | Return the first Value that is not truthy, or the last one. | link:#mrdocs-js-operator_or-0e1[`operator||`] | Return the first Value that is truthy, or the last one. | link:#mrdocs-js-registerHelper[`registerHelper`] | Register a JavaScript helper function | link:#mrdocs-js-swap[`swap`] | Swap two values. | link:#mrdocs-js-toString[`toString`] | Return value as a string. | link:#mrdocs-js-operator_eq-0c[`operator==`] | Compare two values for equality. | link:#mrdocs-js-operator_not_eq-076[`operator!=`] | Inequality operators | link:#mrdocs-js-operator_3way[`operator<=>`] | Compare two values for inequality. |=== == link:#mrdocs-lua[mrdocs::lua] namespace === Types [cols=2] |=== | Name | Description | link:#mrdocs-lua-Access[`Access`] | | link:#mrdocs-lua-Context[`Context`] | A reference to an instance of a Lua interpreter. | link:#mrdocs-lua-Function[`Function`] | A Lua function. | link:#mrdocs-lua-Param[`Param`] | A lazy container to push values to the Lua stack. | link:#mrdocs-lua-Scope[`Scope`] | | link:#mrdocs-lua-String[`String`] | A Lua string. | link:#mrdocs-lua-Table[`Table`] | A Lua table. | link:#mrdocs-lua-Value[`Value`] | A Lua value. | link:#mrdocs-lua-zstring[`zstring`] | A null‐terminated string. | link:#mrdocs-lua-FunctionPtr[`FunctionPtr`] | |=== === Enums [cols=2] |=== | Name | Description | link:#mrdocs-lua-Type[`Type`] | Types of values. |=== == link:#mrdocs-report[mrdocs::report] namespace === Types [cols=2] |=== | Name | Description | link:#mrdocs-report-Located[`Located`] | Parameter type that adds a source location to a value. | link:#mrdocs-report-Results[`Results`] | Provides statistics on the number of reported messages. |=== === Enums [cols=2] |=== | Name | Description | link:#mrdocs-report-Level[`Level`] | Severity levels attached to reported messags. |=== === Functions [cols=2] |=== | Name | Description | link:#mrdocs-report-debug[`debug`] | Report a message to the console. | link:#mrdocs-report-error[`error`] | Report a message to the console. | link:#mrdocs-report-fatal[`fatal`] | Report a message to the console. | link:#mrdocs-report-getMinimumLevel[`getMinimumLevel`] | | link:#mrdocs-report-info[`info`] | Report a message to the console. | link:#mrdocs-report-log[`log`] | Format a message to the console. | link:#mrdocs-report-print-08[`print`] | Report a message to the console. | link:#mrdocs-report-setMinimumLevel[`setMinimumLevel`] | Set the minimum threshold level for reporting. | link:#mrdocs-report-setSourceLocationWarnings[`setSourceLocationWarnings`] | If true, source location information will be printed with warnings, errors, and fatal messages. | link:#mrdocs-report-trace[`trace`] | Report a message to the console. | link:#mrdocs-report-warn[`warn`] | Report a message to the console. |=== === Variables [cols=2] |=== | Name | Description | link:#mrdocs-report-results[`results`] | Holds current statistics on reported messages. |=== == Namespaces [cols=2] |=== | Name | Description | link:#mrdocs-doc[`doc`] | | link:#mrdocs-dom[`dom`] | Objects representing JSON‐like values. | link:#mrdocs-files[`files`] | | link:#mrdocs-helpers[`helpers`] | | link:#mrdocs-js[`js`] | | link:#mrdocs-lua[`lua`] | | link:#mrdocs-report[`report`] | |=== == Types [cols=2] |=== | Name | Description | link:#mrdocs-AnyFileVisitor[`AnyFileVisitor`] | | link:#mrdocs-ArrayType[`ArrayType`] | | link:#mrdocs-ArrayView-06[`ArrayView`] | A non‐owning, read‐only view over a contiguous array of T. | link:#mrdocs-AutoType[`AutoType`] | | link:#mrdocs-BadExpectedAccess-05[`BadExpectedAccess`] | | link:#mrdocs-BadExpectedAccess-0f[`BadExpectedAccess<void>`] | | link:#mrdocs-BaseInfo[`BaseInfo`] | Metadata for a direct base. | link:#mrdocs-ConceptSymbol[`ConceptSymbol`] | Info for concepts. | link:#mrdocs-Config[`Config`] | Configuration used to generate the Corpus and Docs | link:#mrdocs-ConstantExprInfo[`ConstantExprInfo`] | Represents an expression with a (possibly known) value | link:#mrdocs-ConstantTArg[`ConstantTArg`] | | link:#mrdocs-ConstantTParam[`ConstantTParam`] | A constant template parameter | link:#mrdocs-Corpus[`Corpus`] | The collection of declarations in extracted form. | link:#mrdocs-DecltypeType[`DecltypeType`] | | link:#mrdocs-DocComment[`DocComment`] | A processed documentation comment attached to a declaration. | link:#mrdocs-DomCorpus[`DomCorpus`] | Front‐end factory for producing Dom nodes. | link:#mrdocs-EnumConstantSymbol[`EnumConstantSymbol`] | Info for enum constants. | link:#mrdocs-EnumSymbol[`EnumSymbol`] | | link:#mrdocs-Error[`Error`] | Holds the description of an error, or success. | link:#mrdocs-Exception[`Exception`] | Type of all exceptions thrown by the API. | link:#mrdocs-ExecutorGroup[`ExecutorGroup`] | A set of execution agents for performing concurrent work. | link:#mrdocs-ExecutorGroupBase[`ExecutorGroupBase`] | | link:#mrdocs-Expected-0a[`Expected`] | A container holding an error or a value. | link:#mrdocs-Expected-0f[`Expected<T, E>`] | | link:#mrdocs-Expected-01[`Expected<T&, E>`] | | link:#mrdocs-ExplicitInfo[`ExplicitInfo`] | Stores only the operand of the explicit‐specifier or noexcept‐specifier as a string. The complete expression is not preserved at this time. This is a temporary design and may be improved in the future. | link:#mrdocs-ExprInfo[`ExprInfo`] | Represents an expression | link:#mrdocs-FormatString[`FormatString`] | A format string with source location. | link:#mrdocs-FriendInfo[`FriendInfo`] | Info for friend declarations. | link:#mrdocs-FunctionSymbol[`FunctionSymbol`] | | link:#mrdocs-FunctionType[`FunctionType`] | | link:#mrdocs-Generator[`Generator`] | Base class for documentation generators. | link:#mrdocs-Generators[`Generators`] | A dynamic list of link:#mrdocs-Generator[`Generator`] elements. | link:#mrdocs-GlobPattern[`GlobPattern`] | A glob pattern matcher | link:#mrdocs-GuideSymbol[`GuideSymbol`] | Info for deduction guides. | link:#mrdocs-Handlebars[`Handlebars`] | A handlebars environment | link:#mrdocs-HandlebarsError[`HandlebarsError`] | An error thrown or returned by Handlebars | link:#mrdocs-HandlebarsOptions[`HandlebarsOptions`] | Options for handlebars | link:#mrdocs-IdentifierName[`IdentifierName`] | Represents an identifier | link:#mrdocs-LValueReferenceType[`LValueReferenceType`] | | link:#mrdocs-Location[`Location`] | | link:#mrdocs-MemberPointerType[`MemberPointerType`] | | link:#mrdocs-Name[`Name`] | Represents a name for a named `Type` | link:#mrdocs-NamedType[`NamedType`] | | link:#mrdocs-NamespaceAliasSymbol[`NamespaceAliasSymbol`] | Info for namespace aliases. | link:#mrdocs-NamespaceSymbol[`NamespaceSymbol`] | Describes a namespace. | link:#mrdocs-NamespaceTranche[`NamespaceTranche`] | The members of a Namespace | link:#mrdocs-NoexceptInfo[`NoexceptInfo`] | | link:#mrdocs-Optional-03[`Optional`] | A compact optional that automatically uses nullable_traits<T> when available. | link:#mrdocs-Optional-02[`Optional<T&>`] | | link:#mrdocs-OutputRef[`OutputRef`] | Reference to output stream used by handlebars | link:#mrdocs-Overload-09[`Overload`] | Combines multiple callable types into a single overloaded function object. | link:#mrdocs-OverloadsSymbol[`OverloadsSymbol`] | Represents a set of function overloads. | link:#mrdocs-Param[`Param`] | Represents a single function parameter | link:#mrdocs-ParseResult[`ParseResult`] | The result of a parse operation. | link:#mrdocs-PathGlobPattern[`PathGlobPattern`] | A glob pattern matcher for paths | link:#mrdocs-PointerType[`PointerType`] | | link:#mrdocs-Polymorphic[`Polymorphic`] | A polymorphic value‐type. | link:#mrdocs-RValueReferenceType[`RValueReferenceType`] | | link:#mrdocs-RangeFor-0f[`RangeFor`] | Range to help range‐for loops identify first and last. | link:#mrdocs-RecordInterface[`RecordInterface`] | The aggregated interface for a given struct, class, or union. | link:#mrdocs-RecordSymbol[`RecordSymbol`] | Metadata for struct, class, or union. | link:#mrdocs-RecordTranche[`RecordTranche`] | A group of members that have the same access specifier. | link:#mrdocs-ReferenceDirectories[`ReferenceDirectories`] | Reference directories used to resolve paths | link:#mrdocs-ScopeExit-0a[`ScopeExit`] | | link:#mrdocs-ScopeExitRestore-01[`ScopeExitRestore`] | | link:#mrdocs-SourceInfo[`SourceInfo`] | Stores source information for a declaration. | link:#mrdocs-SourceLocation[`SourceLocation`] | A source location with filename prettification. | link:#mrdocs-SpecializationName[`SpecializationName`] | Represents a (possibly qualified) symbol name with template arguments. | link:#mrdocs-SplitLinesAdaptor[`SplitLinesAdaptor`] | | link:#mrdocs-SplitLinesView[`SplitLinesView`] | | link:#mrdocs-StringHash[`StringHash`] | | link:#mrdocs-Symbol[`Symbol`] | Base class with common properties of all symbols | link:#mrdocs-SymbolCommonBase-015[`SymbolCommonBase`] | Base class for providing variant discriminator functions. | link:#mrdocs-SymbolGlobPattern[`SymbolGlobPattern`] | A glob pattern matcher for C++ symbols | link:#mrdocs-SymbolID[`SymbolID`] | A unique identifier for a symbol. | link:#mrdocs-TArg[`TArg`] | | link:#mrdocs-TArgCommonBase-06[`TArgCommonBase`] | | link:#mrdocs-TParam[`TParam`] | | link:#mrdocs-TParamCommonBase-0c[`TParamCommonBase`] | | link:#mrdocs-TaskGroup[`TaskGroup`] | A subset of possible work in a thread pool. | link:#mrdocs-TemplateInfo[`TemplateInfo`] | Information about templates and specializations thereof. | link:#mrdocs-TemplateTArg[`TemplateTArg`] | | link:#mrdocs-TemplateTParam[`TemplateTParam`] | | link:#mrdocs-ThreadPool[`ThreadPool`] | A pool of threads for executing work concurrently. | link:#mrdocs-Type[`Type`] | A possibly qualified type. | link:#mrdocs-TypeCommonBase-0e[`TypeCommonBase`] | | link:#mrdocs-TypeTArg[`TypeTArg`] | | link:#mrdocs-TypeTParam[`TypeTParam`] | | link:#mrdocs-TypedefSymbol[`TypedefSymbol`] | | link:#mrdocs-Unexpected-0c[`Unexpected`] | | link:#mrdocs-UsingSymbol[`UsingSymbol`] | Info for using declarations. | link:#mrdocs-VariableSymbol[`VariableSymbol`] | A variable. | link:#mrdocs-Visitor[`Visitor`] | A visitor for a type | link:#mrdocs-YCombinator[`YCombinator`] | Enables recursive lambdas by passing a self‐reference as the first argument. | link:#mrdocs-add_const_from[`add_const_from`] | | link:#mrdocs-add_cv_from[`add_cv_from`] | | link:#mrdocs-add_cvref_from[`add_cvref_from`] | | link:#mrdocs-add_lvalue_reference_from[`add_lvalue_reference_from`] | | link:#mrdocs-add_reference_from[`add_reference_from`] | | link:#mrdocs-add_rvalue_reference_from[`add_rvalue_reference_from`] | | link:#mrdocs-add_volatile_from[`add_volatile_from`] | | link:#mrdocs-any_callable-01[`any_callable`] | A movable, type‐erased function object. | link:#mrdocs-any_callable-0a[`any_callable<R(Args...)>`] | | link:#mrdocs-make_dependent[`make_dependent`] | | link:#mrdocs-nullable_traits-0b[`nullable_traits`] | nullable_traits<T> defines how to treat a T as “nullable” without an external engaged bit. | link:#mrdocs-nullable_traits-00[`nullable_traits<Location>`] | nullable_traits specialization for Location. | link:#mrdocs-nullable_traits-06[`nullable_traits<T>`] | nullable_traits for types with a sentinel. | link:#mrdocs-nullable_traits-0c[`nullable_traits<Polymorphic<T>>`] | nullable_traits for Polymorphic<T>. | link:#mrdocs-sentinel_traits-0a[`sentinel_traits`] | Defines a customization point for types that have an intrinsic sentinel value denoting “null”. | link:#mrdocs-sentinel_traits-03a[`sentinel_traits<std::nullptr_t>`] | sentinel_traits specialization for std::nullptr_t. | link:#mrdocs-sentinel_traits-01[`sentinel_traits<T>`] | sentinel_traits specialization for unsigned integral types. | link:#mrdocs-sentinel_traits-03c[`sentinel_traits<T*>`] | sentinel_traits specialization for raw pointers. | link:#mrdocs-unexpect_t[`unexpect_t`] | | link:#mrdocs-unlock_guard[`unlock_guard`] | A scoped guard which unlocks a mutex. | link:#mrdocs-UnorderedStringMap[`UnorderedStringMap`] | | link:#mrdocs-UnorderedStringMultiMap[`UnorderedStringMultiMap`] | | link:#mrdocs-add_const_from_t[`add_const_from_t`] | | link:#mrdocs-add_cv_from_t[`add_cv_from_t`] | | link:#mrdocs-add_cvref_from_t[`add_cvref_from_t`] | | link:#mrdocs-add_lvalue_reference_from_t[`add_lvalue_reference_from_t`] | | link:#mrdocs-add_reference_from_t[`add_reference_from_t`] | | link:#mrdocs-add_rvalue_reference_from_t[`add_rvalue_reference_from_t`] | | link:#mrdocs-add_volatile_from_t[`add_volatile_from_t`] | | link:#mrdocs-make_dependent_t[`make_dependent_t`] | |=== == Enums [cols=2] |=== | Name | Description | link:#mrdocs-AccessKind[`AccessKind`] | Access specifier. | link:#mrdocs-AutoKind[`AutoKind`] | The kind of `auto` keyword used in a declaration. | link:#mrdocs-ConstexprKind[`ConstexprKind`] | `constexpr`/`consteval` specifier kinds | link:#mrdocs-ExplicitKind[`ExplicitKind`] | Explicit specifier kinds | link:#mrdocs-ExtractionMode[`ExtractionMode`] | Determine why a symbol is extracted | link:#mrdocs-FileKind[`FileKind`] | | link:#mrdocs-FunctionClass[`FunctionClass`] | Function classifications | link:#mrdocs-FundamentalTypeKind[`FundamentalTypeKind`] | Categorically describes a fundamental type. | link:#mrdocs-ListKind[`ListKind`] | | link:#mrdocs-NameKind[`NameKind`] | | link:#mrdocs-NoexceptKind[`NoexceptKind`] | Exception specification kinds | link:#mrdocs-OperatorKind[`OperatorKind`] | Operator kinds | link:#mrdocs-QualifierKind[`QualifierKind`] | Type qualifiers | link:#mrdocs-RecordKeyKind[`RecordKeyKind`] | The kind of record: struct, class, or union. | link:#mrdocs-ReferenceKind[`ReferenceKind`] | Reference type kinds | link:#mrdocs-StorageClassKind[`StorageClassKind`] | Storage class kinds | link:#mrdocs-SymbolKind[`SymbolKind`] | Info variant discriminator | link:#mrdocs-TArgKind[`TArgKind`] | The kind of template argument. | link:#mrdocs-TParamKeyKind[`TParamKeyKind`] | The keyword a template parameter was declared with | link:#mrdocs-TParamKind[`TParamKind`] | | link:#mrdocs-TableAlignmentKind[`TableAlignmentKind`] | | link:#mrdocs-TemplateSpecKind[`TemplateSpecKind`] | The kind of template or specialization. | link:#mrdocs-TypeKind[`TypeKind`] | | link:#mrdocs-UsingClass[`UsingClass`] | The class of using declaration. |=== == Functions [cols=2] |=== | Name | Description | link:#mrdocs-CompareDerived-0f[`CompareDerived`] | Compares two polymorphic objects that have visit functions | link:#mrdocs-HTMLEscape-0f[`HTMLEscape`] | `HTMLEscape` overloads | link:#mrdocs-addMember[`addMember`] | | link:#mrdocs-allMembers-0a[`allMembers`] | | link:#mrdocs-assert_failed[`assert_failed`] | | link:#mrdocs-bottomUpTraverse[`bottomUpTraverse`] | | link:#mrdocs-canMerge[`canMerge`] | | link:#mrdocs-cast-023[`cast`] | | link:#mrdocs-cast_or_null-0c[`cast_or_null`] | | link:#mrdocs-compareSymbolNames[`compareSymbolNames`] | Return the result of comparing s0 to s1. | link:#mrdocs-contains-06[`contains`] | Determine if a range contains a specific element. | link:#mrdocs-contains_any-00[`contains_any`] | Determine if a range contains any of the specified elements. | link:#mrdocs-contains_n[`contains_n`] | Determine if a range contains at least N instances of the specified element. | link:#mrdocs-contains_n_any-0e[`contains_n_any`] | Determine if a range contains at least N instances of any of the specified elements. | link:#mrdocs-countSymbolKind[`countSymbolKind`] | | link:#mrdocs-createFrame-01[`createFrame`] | Create child data objects. | link:#mrdocs-dyn_cast-02[`dyn_cast`] | | link:#mrdocs-dyn_cast_or_null-0f[`dyn_cast_or_null`] | | link:#mrdocs-endsWithOneOf[`endsWithOneOf`] | Determine if a string ends with one of the specified characters | link:#mrdocs-escapeExpression[`escapeExpression`] | | link:#mrdocs-find_last_of[`find_last_of`] | Find the last element in a range that matches an element in the specified range. | link:#mrdocs-forEachFile-08[`forEachFile`] | `forEachFile` overloads | link:#mrdocs-formatError[`formatError`] | Return a formatted error. | link:#mrdocs-fromString[`fromString`] | Convert a string to a FundamentalTypeKind. | link:#mrdocs-getDefaultAccessString[`getDefaultAccessString`] | | link:#mrdocs-getGenerators[`getGenerators`] | Return a reference to the global Generators instance. | link:#mrdocs-getOperatorKind[`getOperatorKind`] | Return the short name of an operator as a string. | link:#mrdocs-getOperatorKindFromSuffix[`getOperatorKindFromSuffix`] | Return the short name of an operator as a string. | link:#mrdocs-getOperatorName[`getOperatorName`] | Return the name of an operator as a string. | link:#mrdocs-getOperatorReadableName[`getOperatorReadableName`] | Return the human‐readable name of the operator | link:#mrdocs-getParents-0d[`getParents`] | `getParents` overloads | link:#mrdocs-getPrimaryLocation-04[`getPrimaryLocation`] | | link:#mrdocs-getSafeOperatorName[`getSafeOperatorName`] | Return the safe name of an operator as a string. | link:#mrdocs-getShortOperatorName[`getShortOperatorName`] | Return the short name of an operator as a string. | link:#mrdocs-getSinglePageFullPath[`getSinglePageFullPath`] | Return the full path for single page output. | link:#mrdocs-innerType-00[`innerType`] | Return the inner type. | link:#mrdocs-innerTypePtr-06[`innerTypePtr`] | Return the inner type. | link:#mrdocs-innermostType-06[`innermostType`] | Return the innermost type. | link:#mrdocs-isAlphaNumeric-05[`isAlphaNumeric`] | | link:#mrdocs-isAlphabetic-05[`isAlphabetic`] | | link:#mrdocs-isBinaryOperator[`isBinaryOperator`] | Determines whether the operator is potentially binary. | link:#mrdocs-isDigit-03[`isDigit`] | | link:#mrdocs-isEmpty[`isEmpty`] | Determine if a value is empty | link:#mrdocs-isLowerCase-04[`isLowerCase`] | | link:#mrdocs-isUnaryOperator[`isUnaryOperator`] | Determines whether the operator is potentially unary. | link:#mrdocs-isUpperCase-04[`isUpperCase`] | | link:#mrdocs-isWhitespace-09[`isWhitespace`] | Determine if a string is only whitespace. | link:#mrdocs-is_null[`is_null`] | is_null helper that uses nullable_traits<T> if available. | link:#mrdocs-is_one_of-0e[`is_one_of`] | Determine if an element is equal to any of the elements in the specified range. | link:#mrdocs-isa[`isa`] | | link:#mrdocs-isa_or_null[`isa_or_null`] | | link:#mrdocs-leastSpecific[`leastSpecific`] | Compare ExtractionModes and returns the least specific | link:#mrdocs-ltrim-051[`ltrim`] | `ltrim` overloads | link:#mrdocs-makeChar[`makeChar`] | Apply the "char" specifier to the type | link:#mrdocs-makeLong[`makeLong`] | Apply the "long" specifier to the type | link:#mrdocs-makeOverload[`makeOverload`] | Factory function that creates an Overload from the given callables. | link:#mrdocs-makeShort[`makeShort`] | Apply the "short" specifier to the type | link:#mrdocs-makeSigned[`makeSigned`] | Apply the "signed" specifier to the type | link:#mrdocs-makeUnsigned[`makeUnsigned`] | Apply the "unsigned" specifier to the type | link:#mrdocs-makeVisitor[`makeVisitor`] | Make a visitor for a base type | link:#mrdocs-make_array_view-0a[`make_array_view`] | | link:#mrdocs-make_null[`make_null`] | make_null helper that uses nullable_traits<T> if available. | link:#mrdocs-match[`match`] | Applies a set of callables to a std::variant using std::visit and Overload. | link:#mrdocs-merge-0a[`merge`] | `merge` overloads | link:#mrdocs-mostSpecific[`mostSpecific`] | Compare ExtractionModes and returns the most specific | link:#mrdocs-null_of[`null_of`] | null_of helper that constructs a null T using nullable_traits<T>. | link:#mrdocs-operator_bitor[`operator|`] | | link:#mrdocs-overrides[`overrides`] | Determine if one function would override the other | link:#mrdocs-parse-07[`parse`] | Parse a string view | link:#mrdocs-reindentCode[`reindentCode`] | Reindent code by removing the common leading spaces and adding the specified indent. | link:#mrdocs-replace[`replace`] | Return the substring without leading and trailing horizontal whitespace. | link:#mrdocs-rtrim-0c5[`rtrim`] | `rtrim` overloads | link:#mrdocs-safeString-0a[`safeString`] | Create a wrapper for a safe string. | link:#mrdocs-startsWithOneOf[`startsWithOneOf`] | Determine if a string starts with one of the specified characters | link:#mrdocs-swap-07d[`swap`] | | link:#mrdocs-tag_invoke-005[`tag_invoke`] | `tag_invoke` overloads | link:#mrdocs-toBase16Str[`toBase16Str`] | Convert a SymbolID to a string | link:#mrdocs-toCamelCase[`toCamelCase`] | | link:#mrdocs-toKebabCase[`toKebabCase`] | | link:#mrdocs-toLowerCase-0a6[`toLowerCase`] | | link:#mrdocs-toPascalCase[`toPascalCase`] | | link:#mrdocs-toSnakeCase[`toSnakeCase`] | | link:#mrdocs-toString-02[`toString`] | `toString` overloads | link:#mrdocs-toUpperCase-0f[`toUpperCase`] | | link:#mrdocs-to_underlying[`to_underlying`] | Return the value as its underlying type. | link:#mrdocs-topDownTraverse[`topDownTraverse`] | | link:#mrdocs-trim-0a[`trim`] | `trim` overloads | link:#mrdocs-visit-0f[`visit`] | Invoke a function object with a type derived from Symbol | link:#mrdocs-visitIndexed[`visitIndexed`] | Visits a std::variant and calls the combined callable with the active index and the value. | link:#mrdocs-yCombinator[`yCombinator`] | Factory that creates a YCombinator from a callable. | link:#mrdocs-operator_lshift-0e1[`operator<<`] | Write to output | link:#mrdocs-operator_eq-04[`operator==`] | Equality operators | link:#mrdocs-operator_not_eq-0a[`operator!=`] | Inequality operators | link:#mrdocs-operator_lt-0f[`operator<`] | Less‐than operators | link:#mrdocs-operator_le-0b[`operator<=`] | Less‐than‐or‐equal operators | link:#mrdocs-operator_gt-09[`operator>`] | Greater‐than operators | link:#mrdocs-operator_ge-00[`operator>=`] | Greater‐than‐or‐equal operators | link:#mrdocs-operator_3way-00[`operator<=>`] | Three‐way comparison operators |=== == Variables [cols=2] |=== | Name | Description | link:#mrdocs-splitLines[`splitLines`] | Split a string view into lines, recognizing all common line breaks | link:#mrdocs-unexpect[`unexpect`] | |=== == Concepts [cols=2] |=== | Name | Description | link:#mrdocs-ClearableContainerLike[`ClearableContainerLike`] | Internal concept that matches “empty‐clear default‐constructible” types. | link:#mrdocs-DocCommentNode[`DocCommentNode`] | Concept to check if a type represents a DocComment node. | link:#mrdocs-DocCommentNodeTraversable[`DocCommentNodeTraversable`] | | link:#mrdocs-HasParse[`HasParse`] | Concept to determine if there's a parse function for a type. | link:#mrdocs-HasSentinel[`HasSentinel`] | Concept that is satisfied when sentinel_traits<T> declares a usable sentinel. | link:#mrdocs-SymbolParent[`SymbolParent`] | A concept for types that have `Symbol` members. | link:#mrdocs-dereferenceable[`dereferenceable`] | Determine if a type is dereferenceable | link:#mrdocs-has_nullable_traits_v[`has_nullable_traits_v`] | Utility function that returns true if T has a nullable_traits specialization enabled. | link:#mrdocs-pair_like[`pair_like`] | Concept to check if a type is pair‐like | link:#mrdocs-polymorphic_storage_for[`polymorphic_storage_for`] | Concept to check if a type is representing a polymorphic storage | link:#mrdocs-range_of[`range_of`] | Concept to check if a type is a range of T | link:#mrdocs-range_of_tuple_like[`range_of_tuple_like`] | Concept to check if a range is a range of tuple‐like elements | link:#mrdocs-reference_constructs_from_temporary_v[`reference_constructs_from_temporary_v`] | | link:#mrdocs-reference_converts_from_temporary_v[`reference_converts_from_temporary_v`] | | link:#mrdocs-tuple_like[`tuple_like`] | Concept to check if a type is tuple‐like |=== == Deduction Guides [cols=2] |=== | Name | Description | link:#mrdocs-ArrayView-0c[`ArrayView<T>`] | | link:#mrdocs-ArrayView-01[`ArrayView<T>`] | | link:#mrdocs-Overload-0a[`Overload<Ts...>`] | Class template argument deduction guide for Overload. | link:#mrdocs-RangeFor-0c[`RangeFor<Container>`] | | link:#mrdocs-ScopeExit-0d[`ScopeExit<F>`] | | link:#mrdocs-ScopeExitRestore-04[`ScopeExitRestore<T>`] | | link:#mrdocs-ScopeExitRestore-03[`ScopeExitRestore<T>`] | | link:#mrdocs-Unexpected-0d[`Unexpected<E>`] | |=== == Using Declarations [cols=1] |=== | Name | link:#mrdocs-source_location[`source_location`] |=== == Types [cols=2] |=== | Name | Description | link:#mrdocs-doc-AdmonitionBlock[`AdmonitionBlock`] | A block for side‐notes like tips, warnings, notes | link:#mrdocs-doc-Block[`Block`] | A piece of block content | link:#mrdocs-doc-BlockCommonBase-0ed[`BlockCommonBase`] | Base class for providing variant discriminator functions. | link:#mrdocs-doc-BlockContainer[`BlockContainer`] | | link:#mrdocs-doc-BriefBlock[`BriefBlock`] | The brief description | link:#mrdocs-doc-CodeBlock[`CodeBlock`] | Preformatted source code. | link:#mrdocs-doc-CodeInline[`CodeInline`] | A piece of styled text. | link:#mrdocs-doc-CopyDetailsInline[`CopyDetailsInline`] | Documentation copied from another symbol. | link:#mrdocs-doc-DefinitionListBlock[`DefinitionListBlock`] | | link:#mrdocs-doc-DefinitionListItem[`DefinitionListItem`] | An item in a definition list | link:#mrdocs-doc-EmphInline[`EmphInline`] | A piece of styled text. | link:#mrdocs-doc-FootnoteDefinitionBlock[`FootnoteDefinitionBlock`] | Preformatted source code. | link:#mrdocs-doc-FootnoteReferenceInline[`FootnoteReferenceInline`] | A reference to a symbol. | link:#mrdocs-doc-HeadingBlock[`HeadingBlock`] | A manually specified section heading. | link:#mrdocs-doc-HighlightInline[`HighlightInline`] | A piece of highlighted text. | link:#mrdocs-doc-ImageInline[`ImageInline`] | An image. | link:#mrdocs-doc-Inline[`Inline`] | A Node containing a string of text. | link:#mrdocs-doc-InlineCommonBase-0dc[`InlineCommonBase`] | Base class for providing variant discriminator functions. | link:#mrdocs-doc-InlineContainer[`InlineContainer`] | An internal node in the inline element tree | link:#mrdocs-doc-InlineTextLeaf[`InlineTextLeaf`] | A leaf node that stores a string of text. | link:#mrdocs-doc-LineBreakInline[`LineBreakInline`] | A hard line break that renders as "" | link:#mrdocs-doc-LinkInline[`LinkInline`] | A hyperlink. | link:#mrdocs-doc-ListBlock[`ListBlock`] | A list of list items | link:#mrdocs-doc-ListItem[`ListItem`] | An item in a list | link:#mrdocs-doc-MathBlock[`MathBlock`] | A block of LaTeX math | link:#mrdocs-doc-MathInline[`MathInline`] | An inline LaTeX math expression | link:#mrdocs-doc-ParagraphBlock[`ParagraphBlock`] | A sequence of text nodes. | link:#mrdocs-doc-ParamBlock[`ParamBlock`] | Documentation for a function parameter | link:#mrdocs-doc-PostconditionBlock[`PostconditionBlock`] | | link:#mrdocs-doc-PreconditionBlock[`PreconditionBlock`] | | link:#mrdocs-doc-QuoteBlock[`QuoteBlock`] | A list of list items | link:#mrdocs-doc-ReferenceInline[`ReferenceInline`] | A reference to a symbol. | link:#mrdocs-doc-ReturnsBlock[`ReturnsBlock`] | Documentation for a function return type | link:#mrdocs-doc-SeeBlock[`SeeBlock`] | A | link:#mrdocs-doc-SoftBreakInline[`SoftBreakInline`] | A line break that may render as space | link:#mrdocs-doc-StrikethroughInline[`StrikethroughInline`] | A piece of styled text. | link:#mrdocs-doc-StrongInline[`StrongInline`] | A piece of styled text. | link:#mrdocs-doc-SubscriptInline[`SubscriptInline`] | A piece of styled text. | link:#mrdocs-doc-SuperscriptInline[`SuperscriptInline`] | A piece of styled text. | link:#mrdocs-doc-TParamBlock[`TParamBlock`] | Documentation for a template parameter | link:#mrdocs-doc-TableBlock[`TableBlock`] | A table block | link:#mrdocs-doc-TableCell[`TableCell`] | A cell in a table | link:#mrdocs-doc-TableRow[`TableRow`] | An item in a list | link:#mrdocs-doc-TextInline[`TextInline`] | A Node containing a string of text. | link:#mrdocs-doc-ThematicBreakBlock[`ThematicBreakBlock`] | The brief description | link:#mrdocs-doc-ThrowsBlock[`ThrowsBlock`] | Documentation for a function parameter |=== == Enums [cols=2] |=== | Name | Description | link:#mrdocs-doc-AdmonitionKind[`AdmonitionKind`] | An admonishment style. | link:#mrdocs-doc-BlockKind[`BlockKind`] | | link:#mrdocs-doc-InlineKind[`InlineKind`] | | link:#mrdocs-doc-ParamDirection[`ParamDirection`] | Parameter pass direction. | link:#mrdocs-doc-Parts[`Parts`] | Which parts of the documentation to copy. |=== == Functions [cols=2] |=== | Name | Description | link:#mrdocs-doc-getAsPlainText-02[`getAsPlainText`] | `getAsPlainText` overloads | link:#mrdocs-doc-isBlockCommand[`isBlockCommand`] | | link:#mrdocs-doc-isEmpty-04[`isEmpty`] | Determine if the inline is empty | link:#mrdocs-doc-ltrim-09[`ltrim`] | `ltrim` overloads | link:#mrdocs-doc-rtrim-03[`rtrim`] | `rtrim` overloads | link:#mrdocs-doc-tag_invoke-0ea[`tag_invoke`] | `tag_invoke` overloads | link:#mrdocs-doc-toString-0b[`toString`] | `toString` overloads | link:#mrdocs-doc-traverse[`traverse`] | Traverse a list of inlines. | link:#mrdocs-doc-trim-00[`trim`] | `trim` overloads | link:#mrdocs-doc-visit-0e[`visit`] | `visit` overloads | link:#mrdocs-doc-operator_eq-0a[`operator==`] | Equality operators | link:#mrdocs-doc-operator_3way-01c[`operator<=>`] | Three‐way comparison operators |=== A block for side‐notes like tips, warnings, notes == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/AdmonitionBlock.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- struct AdmonitionBlock final : link:#mrdocs-doc-BlockCommonBase-0ed[BlockCommonBase<BlockKind::Admonition>] , link:#mrdocs-doc-BlockContainer[BlockContainer] ---- == Base Classes [cols=2] |=== | Name | Description | `link:#mrdocs-doc-BlockCommonBase-0ed[BlockCommonBase<BlockKind::Admonition>]` | Base class for providing variant discriminator functions. | `link:#mrdocs-doc-BlockContainer[BlockContainer]` | |=== == Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-doc-AdmonitionBlock-2constructor[`AdmonitionBlock`] [.small]#[constructor]# | Construct from `AdmonitionKind` | link:#mrdocs-doc-BlockContainer-asBlockContainer-0c[`asBlockContainer`] | | link:#mrdocs-doc-AdmonitionBlock-operator_eq-0d[`operator==`] | Equality operators | link:#mrdocs-doc-AdmonitionBlock-operator_3way-0e97[`operator<=>`] | Three‐way comparison operators |=== == Static Member Functions [cols=1] |=== | Name | link:#mrdocs-doc-AdmonitionBlock-isAdmonition[`isAdmonition`] | link:#mrdocs-doc-AdmonitionBlock-isBrief[`isBrief`] | link:#mrdocs-doc-AdmonitionBlock-isCode[`isCode`] | link:#mrdocs-doc-AdmonitionBlock-isDefinitionList[`isDefinitionList`] | link:#mrdocs-doc-AdmonitionBlock-isFootnoteDefinition[`isFootnoteDefinition`] | link:#mrdocs-doc-AdmonitionBlock-isHeading[`isHeading`] | link:#mrdocs-doc-AdmonitionBlock-isList[`isList`] | link:#mrdocs-doc-AdmonitionBlock-isMath[`isMath`] | link:#mrdocs-doc-AdmonitionBlock-isParagraph[`isParagraph`] | link:#mrdocs-doc-AdmonitionBlock-isParam[`isParam`] | link:#mrdocs-doc-AdmonitionBlock-isPostcondition[`isPostcondition`] | link:#mrdocs-doc-AdmonitionBlock-isPrecondition[`isPrecondition`] | link:#mrdocs-doc-AdmonitionBlock-isQuote[`isQuote`] | link:#mrdocs-doc-AdmonitionBlock-isReturns[`isReturns`] | link:#mrdocs-doc-AdmonitionBlock-isSee[`isSee`] | link:#mrdocs-doc-AdmonitionBlock-isTParam[`isTParam`] | link:#mrdocs-doc-AdmonitionBlock-isTable[`isTable`] | link:#mrdocs-doc-AdmonitionBlock-isThematicBreak[`isThematicBreak`] | link:#mrdocs-doc-AdmonitionBlock-isThrows[`isThrows`] |=== == Data Members [cols=2] |=== | Name | Description | link:#mrdocs-doc-AdmonitionBlock-Title[`Title`] | Optional title for the admonition | link:#mrdocs-doc-AdmonitionBlock-admonish[`admonish`] | The kind of admonition | link:#mrdocs-doc-BlockContainer-blocks[`blocks`] | |=== == Static Data Members [cols=1] |=== | Name | link:#mrdocs-doc-AdmonitionBlock-kind_id[`kind_id`] |=== == Non-Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-doc-isEmpty-06[`isEmpty`] | Determine if the inline is empty | link:#mrdocs-doc-ltrim-01[`ltrim`] | Removes leading whitespace from the first text elements | link:#mrdocs-doc-ltrim-0d[`ltrim`] | Removes leading whitespace from the block. | link:#mrdocs-doc-rtrim-06[`rtrim`] | Removes trailing whitespace from the last text elements | link:#mrdocs-doc-rtrim-0c[`rtrim`] | Removes trailing whitespace from the block. | link:#mrdocs-doc-trim-071[`trim`] | Removes leading and trailing whitespace from the block. | link:#mrdocs-doc-trim-0b[`trim`] | Removes leading and trailing whitespace from the text elements |=== == Description This paragraph represents an admonition, such as a note, tip, important, caution, or warning. Construct from `AdmonitionKind` == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/AdmonitionBlock.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- explicit AdmonitionBlock(link:#mrdocs-doc-AdmonitionKind[AdmonitionKind] const admonish_ = AdmonitionKind::none) noexcept; ---- == Parameters [cols=2] |=== | Name | Description | *admonish_* | The object to construct from |=== Equality operators == Synopses Declared in `<mrdocs/Metadata/DocComment/Block/AdmonitionBlock.hpp>` Equality operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr bool link:#mrdocs-doc-AdmonitionBlock-operator_eq-05[operator==](link:#mrdocs-doc-AdmonitionBlock[AdmonitionBlock] const& rhs) const noexcept = default; ---- [.small]#link:#mrdocs-doc-AdmonitionBlock-operator_eq-05[_» more..._]# Equality operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr bool link:#mrdocs-doc-BlockContainer-operator_eq[operator==](link:#mrdocs-doc-BlockContainer[BlockContainer] const& rhs) const = default; ---- [.small]#link:#mrdocs-doc-BlockContainer-operator_eq[_» more..._]# Equality operator == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/AdmonitionBlock.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr bool operator==(link:#mrdocs-doc-AdmonitionBlock[AdmonitionBlock] const& rhs) const noexcept = default; ---- == Return Value `true` if the objects are equal, `false` otherwise == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== Equality operator == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr bool operator==(link:#mrdocs-doc-BlockContainer[BlockContainer] const& rhs) const = default; ---- == Return Value `true` if the objects are equal, `false` otherwise == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== Three‐way comparison operators == Synopses Declared in `<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>` Three‐way comparison operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- auto link:#mrdocs-doc-AdmonitionBlock-operator_3way-06[operator<=>](link:#mrdocs-doc-AdmonitionBlock[AdmonitionBlock] const& rhs) const = default; ---- [.small]#link:#mrdocs-doc-AdmonitionBlock-operator_3way-06[_» more..._]# Three‐way comparison operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr auto link:#mrdocs-doc-AdmonitionBlock-operator_3way-0e96[operator<=>](link:#mrdocs-doc-BlockCommonBase-0ed[BlockCommonBase<mrdocs::doc::BlockKind::Admonition>] const& rhs) const = default; ---- [.small]#link:#mrdocs-doc-AdmonitionBlock-operator_3way-0e96[_» more..._]# Three‐way comparison operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::strong_ordering link:#mrdocs-doc-BlockContainer-operator_3way[operator<=>](link:#mrdocs-doc-BlockContainer[BlockContainer] const& rhs) const; ---- [.small]#link:#mrdocs-doc-BlockContainer-operator_3way[_» more..._]# Three‐way comparison operator == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/AdmonitionBlock.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- auto operator<=>(link:#mrdocs-doc-AdmonitionBlock[AdmonitionBlock] const& rhs) const = default; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== Three‐way comparison operator == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr auto operator<=>(link:#mrdocs-doc-BlockCommonBase-0ed[BlockCommonBase<mrdocs::doc::BlockKind::Admonition>] const& rhs) const = default; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== Three‐way comparison operator == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::strong_ordering operator<=>(link:#mrdocs-doc-BlockContainer[BlockContainer] const& rhs) const; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isAdmonition() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isBrief() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isCode() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isDefinitionList() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isFootnoteDefinition() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isHeading() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isList() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isMath() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isParagraph() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isParam() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isPostcondition() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isPrecondition() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isQuote() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isReturns() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isSee() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isTParam() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isTable() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isThematicBreak() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isThrows() noexcept; ---- Optional title for the admonition == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/AdmonitionBlock.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-Optional-03[Optional<Polymorphic<Inline>>] Title; ---- The kind of admonition == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/AdmonitionBlock.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-doc-AdmonitionKind[AdmonitionKind] admonish; ---- == Description This is typically a string in other implementations. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static link:#mrdocs-doc-BlockKind[BlockKind] kind_id; ---- A piece of block content == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- struct Block; ---- == Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-doc-Block-2destructor[`~Block`] [.small]#[destructor]# [.small]#[virtual]# | Destructor | link:#mrdocs-doc-Block-asBlock-01[`asBlock`] | | link:#mrdocs-doc-Block-operator_eq[`operator==`] | Equality operator | link:#mrdocs-doc-Block-operator_3way[`operator<=>`] | Three‐way comparison operator |=== == Data Members [cols=1] |=== | Name | link:#mrdocs-doc-Block-Kind[`Kind`] |=== == Protected Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-doc-Block-2constructor-084[`Block`] [.small]#[constructor]# | Constructors |=== == Non-Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-doc-isEmpty-06[`isEmpty`] | Determine if the inline is empty | link:#mrdocs-doc-ltrim-0d[`ltrim`] | Removes leading whitespace from the block. | link:#mrdocs-doc-rtrim-0c[`rtrim`] | Removes trailing whitespace from the block. | link:#mrdocs-doc-trim-071[`trim`] | Removes leading and trailing whitespace from the block. |=== == Derived Classes [cols=2] |=== | Name | Description | link:#mrdocs-doc-BlockCommonBase-0ed[`BlockCommonBase`] | Base class for providing variant discriminator functions. |=== == Description The top level is a list of blocks. There are two types of blocks: headings and paragraphs. Destructor == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr virtual ~Block() = default; ---- == Synopses Declared in `<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-doc-Block[Block] const& link:#mrdocs-doc-Block-asBlock-0d[asBlock]() const noexcept; ---- [.small]#link:#mrdocs-doc-Block-asBlock-0d[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-doc-Block[Block]& link:#mrdocs-doc-Block-asBlock-06[asBlock]() noexcept; ---- [.small]#link:#mrdocs-doc-Block-asBlock-06[_» more..._]# == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-doc-Block[Block] const& asBlock() const noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-doc-Block[Block]& asBlock() noexcept; ---- Equality operator == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr bool operator==(link:#mrdocs-doc-Block[Block] const& other) const noexcept = default; ---- == Return Value `true` if the objects are equal, `false` otherwise == Parameters [cols=2] |=== | Name | Description | *other* | The right operand |=== Three‐way comparison operator == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr auto operator<=>(link:#mrdocs-doc-Block[Block] const& other) const = default; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *other* | The right operand |=== == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-doc-BlockKind[BlockKind] Kind = BlockKind::Paragraph; ---- Constructors == Synopses Declared in `<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>` Default constructor [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-doc-Block-2constructor-0c[Block]() = default; ---- [.small]#link:#mrdocs-doc-Block-2constructor-0c[_» more..._]# Construct from `BlockKind` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- explicit link:#mrdocs-doc-Block-2constructor-082[Block](link:#mrdocs-doc-BlockKind[BlockKind] const kind_) noexcept; ---- [.small]#link:#mrdocs-doc-Block-2constructor-082[_» more..._]# Default constructor == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr Block() = default; ---- Construct from `BlockKind` == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- explicit Block(link:#mrdocs-doc-BlockKind[BlockKind] const kind_) noexcept; ---- == Parameters [cols=2] |=== | Name | Description | *kind_* | The object to construct from |=== Base class for providing variant discriminator functions. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<link:#mrdocs-doc-BlockKind[BlockKind] K> struct BlockCommonBase : link:#mrdocs-doc-Block[Block] ---- == Base Classes [cols=2] |=== | Name | Description | `link:#mrdocs-doc-Block[Block]` | A piece of block content |=== == Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-doc-BlockCommonBase-0ed-2destructor[`~BlockCommonBase`] [.small]#[destructor]# [.small]#[virtual]# | Destructor | link:#mrdocs-doc-Block-asBlock-01[`asBlock`] | | link:#mrdocs-doc-Block-operator_eq[`operator==`] | Equality operator | link:#mrdocs-doc-BlockCommonBase-0ed-operator_3way-00[`operator<=>`] | Three‐way comparison operators |=== == Data Members [cols=1] |=== | Name | link:#mrdocs-doc-Block-Kind[`Kind`] |=== == Static Data Members [cols=2] |=== | Name | Description | link:#mrdocs-doc-BlockCommonBase-0ed-kind_id[`kind_id`] | The variant discriminator constant of the most‐derived class. |=== == Protected Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-doc-BlockCommonBase-0ed-2constructor[`BlockCommonBase`] [.small]#[constructor]# | Default constructor |=== == Non-Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-doc-isEmpty-06[`isEmpty`] | Determine if the inline is empty | link:#mrdocs-doc-ltrim-0d[`ltrim`] | Removes leading whitespace from the block. | link:#mrdocs-doc-rtrim-0c[`rtrim`] | Removes trailing whitespace from the block. | link:#mrdocs-doc-trim-071[`trim`] | Removes leading and trailing whitespace from the block. |=== == Derived Classes [cols=2] |=== | Name | Description | link:#mrdocs-doc-AdmonitionBlock[`AdmonitionBlock`] | A block for side‐notes like tips, warnings, notes | link:#mrdocs-doc-BriefBlock[`BriefBlock`] | The brief description | link:#mrdocs-doc-CodeBlock[`CodeBlock`] | Preformatted source code. | link:#mrdocs-doc-DefinitionListBlock[`DefinitionListBlock`] | | link:#mrdocs-doc-FootnoteDefinitionBlock[`FootnoteDefinitionBlock`] | Preformatted source code. | link:#mrdocs-doc-HeadingBlock[`HeadingBlock`] | A manually specified section heading. | link:#mrdocs-doc-ListBlock[`ListBlock`] | A list of list items | link:#mrdocs-doc-MathBlock[`MathBlock`] | A block of LaTeX math | link:#mrdocs-doc-ParagraphBlock[`ParagraphBlock`] | A sequence of text nodes. | link:#mrdocs-doc-ParamBlock[`ParamBlock`] | Documentation for a function parameter | link:#mrdocs-doc-PostconditionBlock[`PostconditionBlock`] | | link:#mrdocs-doc-PreconditionBlock[`PreconditionBlock`] | | link:#mrdocs-doc-QuoteBlock[`QuoteBlock`] | A list of list items | link:#mrdocs-doc-ReturnsBlock[`ReturnsBlock`] | Documentation for a function return type | link:#mrdocs-doc-SeeBlock[`SeeBlock`] | A | link:#mrdocs-doc-TParamBlock[`TParamBlock`] | Documentation for a template parameter | link:#mrdocs-doc-TableBlock[`TableBlock`] | A table block | link:#mrdocs-doc-ThematicBreakBlock[`ThematicBreakBlock`] | The brief description | link:#mrdocs-doc-ThrowsBlock[`ThrowsBlock`] | Documentation for a function parameter |=== == Description This offers functions that return a boolean at compile‐time, indicating if the most‐derived class is a certain type. Destructor == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- virtual ~BlockCommonBase() override = default; ---- Three‐way comparison operators == Synopses Declared in `<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>` Three‐way comparison operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- auto link:#mrdocs-doc-BlockCommonBase-0ed-operator_3way-0a[operator<=>](link:#mrdocs-doc-BlockCommonBase-0ed[BlockCommonBase] const& rhs) const = default; ---- [.small]#link:#mrdocs-doc-BlockCommonBase-0ed-operator_3way-0a[_» more..._]# Three‐way comparison operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr auto link:#mrdocs-doc-Block-operator_3way[operator<=>](link:#mrdocs-doc-Block[Block] const& other) const = default; ---- [.small]#link:#mrdocs-doc-Block-operator_3way[_» more..._]# Three‐way comparison operator == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- auto operator<=>(link:#mrdocs-doc-BlockCommonBase-0ed[BlockCommonBase] const& rhs) const = default; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== Three‐way comparison operator == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr auto operator<=>(link:#mrdocs-doc-Block[Block] const& other) const = default; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *other* | The right operand |=== The variant discriminator constant of the most‐derived class. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- inline constexpr static link:#mrdocs-doc-BlockKind[BlockKind] kind_id = K; ---- == Description It only distinguishes from `Block::kind` in that it is a constant. Default constructor == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr explicit BlockCommonBase(); ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- struct BlockContainer; ---- == Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-doc-BlockContainer-asBlockContainer-0c[`asBlockContainer`] | | link:#mrdocs-doc-BlockContainer-operator_eq[`operator==`] | Equality operator | link:#mrdocs-doc-BlockContainer-operator_3way[`operator<=>`] | Three‐way comparison operator |=== == Data Members [cols=1] |=== | Name | link:#mrdocs-doc-BlockContainer-blocks[`blocks`] |=== == Non-Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-doc-ltrim-01[`ltrim`] | Removes leading whitespace from the first text elements | link:#mrdocs-doc-rtrim-06[`rtrim`] | Removes trailing whitespace from the last text elements | link:#mrdocs-doc-trim-0b[`trim`] | Removes leading and trailing whitespace from the text elements |=== == Derived Classes [cols=2] |=== | Name | Description | link:#mrdocs-doc-AdmonitionBlock[`AdmonitionBlock`] | A block for side‐notes like tips, warnings, notes | link:#mrdocs-doc-DefinitionListItem[`DefinitionListItem`] | An item in a definition list | link:#mrdocs-doc-FootnoteDefinitionBlock[`FootnoteDefinitionBlock`] | Preformatted source code. | link:#mrdocs-doc-ListItem[`ListItem`] | An item in a list | link:#mrdocs-doc-QuoteBlock[`QuoteBlock`] | A list of list items |=== == Synopses Declared in `<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-doc-BlockContainer[BlockContainer]& link:#mrdocs-doc-BlockContainer-asBlockContainer-0e3[asBlockContainer](); ---- [.small]#link:#mrdocs-doc-BlockContainer-asBlockContainer-0e3[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-doc-BlockContainer[BlockContainer] const& link:#mrdocs-doc-BlockContainer-asBlockContainer-0e4[asBlockContainer]() const; ---- [.small]#link:#mrdocs-doc-BlockContainer-asBlockContainer-0e4[_» more..._]# == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-doc-BlockContainer[BlockContainer]& asBlockContainer(); ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-doc-BlockContainer[BlockContainer] const& asBlockContainer() const; ---- Equality operator == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr bool operator==(link:#mrdocs-doc-BlockContainer[BlockContainer] const& rhs) const = default; ---- == Return Value `true` if the objects are equal, `false` otherwise == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== Three‐way comparison operator == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::strong_ordering operator<=>(link:#mrdocs-doc-BlockContainer[BlockContainer] const& rhs) const; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::vector<Polymorphic<Block>> blocks; ---- The brief description == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BriefBlock.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- struct BriefBlock final : link:#mrdocs-doc-BlockCommonBase-0ed[BlockCommonBase<BlockKind::Brief>] , link:#mrdocs-doc-InlineContainer[InlineContainer] ---- == Base Classes [cols=2] |=== | Name | Description | `link:#mrdocs-doc-BlockCommonBase-0ed[BlockCommonBase<BlockKind::Brief>]` | Base class for providing variant discriminator functions. | `link:#mrdocs-doc-InlineContainer[InlineContainer]` | An internal node in the inline element tree |=== == Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-doc-BriefBlock-2constructor-04[`BriefBlock`] [.small]#[constructor]# | Constructors | link:#mrdocs-doc-BriefBlock-operator_assign-03[`operator=`] | Assign an InlineContainer with a single TextInline child. | link:#mrdocs-doc-InlineContainer-append-0c[`append`] | `append` overloads | link:#mrdocs-doc-InlineContainer-asInlineContainer-0b[`asInlineContainer`] | Helper function so that derived classes can get a reference to the base class. | link:#mrdocs-doc-InlineContainer-back-03[`back`] | Get the last inline child. | link:#mrdocs-doc-InlineContainer-begin[`begin`] | Begin iterator forwarding to children | link:#mrdocs-doc-InlineContainer-clear[`clear`] | Clear all inline children. | link:#mrdocs-doc-InlineContainer-emplace_back[`emplace_back`] | Append a child of the specified type. | link:#mrdocs-doc-InlineContainer-empty[`empty`] | Determine if there are no inline children. | link:#mrdocs-doc-InlineContainer-end[`end`] | End iterator forwarding to children | link:#mrdocs-doc-InlineContainer-erase[`erase`] | Erase from children | link:#mrdocs-doc-InlineContainer-front-03[`front`] | Get the first inline child. | link:#mrdocs-doc-InlineContainer-insert[`insert`] | Erase from children | link:#mrdocs-doc-InlineContainer-operator_plus_eq-06[`operator+=`] | Addition assignment operators | link:#mrdocs-doc-InlineContainer-size[`size`] | Get the number of inline children. | link:#mrdocs-doc-InlineContainer-operator_eq[`operator==`] | Compare two InlineContainers. | link:#mrdocs-doc-BriefBlock-operator_3way-05[`operator<=>`] | Compare two InlineContainers. |=== == Static Member Functions [cols=1] |=== | Name | link:#mrdocs-doc-BriefBlock-isAdmonition[`isAdmonition`] | link:#mrdocs-doc-BriefBlock-isBrief[`isBrief`] | link:#mrdocs-doc-BriefBlock-isCode[`isCode`] | link:#mrdocs-doc-BriefBlock-isDefinitionList[`isDefinitionList`] | link:#mrdocs-doc-BriefBlock-isFootnoteDefinition[`isFootnoteDefinition`] | link:#mrdocs-doc-BriefBlock-isHeading[`isHeading`] | link:#mrdocs-doc-BriefBlock-isList[`isList`] | link:#mrdocs-doc-BriefBlock-isMath[`isMath`] | link:#mrdocs-doc-BriefBlock-isParagraph[`isParagraph`] | link:#mrdocs-doc-BriefBlock-isParam[`isParam`] | link:#mrdocs-doc-BriefBlock-isPostcondition[`isPostcondition`] | link:#mrdocs-doc-BriefBlock-isPrecondition[`isPrecondition`] | link:#mrdocs-doc-BriefBlock-isQuote[`isQuote`] | link:#mrdocs-doc-BriefBlock-isReturns[`isReturns`] | link:#mrdocs-doc-BriefBlock-isSee[`isSee`] | link:#mrdocs-doc-BriefBlock-isTParam[`isTParam`] | link:#mrdocs-doc-BriefBlock-isTable[`isTable`] | link:#mrdocs-doc-BriefBlock-isThematicBreak[`isThematicBreak`] | link:#mrdocs-doc-BriefBlock-isThrows[`isThrows`] |=== == Data Members [cols=1] |=== | Name | link:#mrdocs-doc-InlineContainer-children[`children`] | link:#mrdocs-doc-BriefBlock-copiedFrom[`copiedFrom`] |=== == Static Data Members [cols=1] |=== | Name | link:#mrdocs-doc-BriefBlock-kind_id[`kind_id`] |=== == Using Declarations [cols=1] |=== | Name | link:#mrdocs-doc-BriefBlock-2constructor-08[`BriefBlock`] | link:#mrdocs-doc-BriefBlock-operator_assign-06[`operator=`] |=== == Non-Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-doc-getAsPlainText-097[`getAsPlainText`] | Flatten an InlineContainer to plain text. | link:#mrdocs-doc-getAsPlainText-09f[`getAsPlainText`] | Flatten an InlineContainer to plain text. | link:#mrdocs-doc-isEmpty-06[`isEmpty`] | Determine if the inline is empty | link:#mrdocs-doc-ltrim-0b[`ltrim`] | Removes leading whitespace from the first text element in the given InlineContainer. | link:#mrdocs-doc-ltrim-0d[`ltrim`] | Removes leading whitespace from the block. | link:#mrdocs-doc-rtrim-0b[`rtrim`] | Removes trailing whitespace from the last text element in the given InlineContainer. | link:#mrdocs-doc-rtrim-0c[`rtrim`] | Removes trailing whitespace from the block. | link:#mrdocs-doc-trim-071[`trim`] | Removes leading and trailing whitespace from the block. | link:#mrdocs-doc-trim-08[`trim`] | Removes leading and trailing whitespace from the text elements in the given InlineContainer. |=== Constructors == Synopses Declared in `<mrdocs/Metadata/DocComment/Block/BriefBlock.hpp>` Default constructor [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-doc-BriefBlock-2constructor-00[BriefBlock]() = default; ---- [.small]#link:#mrdocs-doc-BriefBlock-2constructor-00[_» more..._]# Copy constructor [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-doc-BriefBlock-2constructor-01[BriefBlock](link:#mrdocs-doc-BriefBlock[BriefBlock] const& other) = default; ---- [.small]#link:#mrdocs-doc-BriefBlock-2constructor-01[_» more..._]# Default constructor == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BriefBlock.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr BriefBlock() = default; ---- Copy constructor == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BriefBlock.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr BriefBlock(link:#mrdocs-doc-BriefBlock[BriefBlock] const& other) = default; ---- == Parameters [cols=2] |=== | Name | Description | *other* | The object to copy construct from |=== Assign an InlineContainer with a single TextInline child. == Synopses Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` Copy assignment operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-doc-BriefBlock[BriefBlock]& link:#mrdocs-doc-BriefBlock-operator_assign-02[operator=](link:#mrdocs-doc-BriefBlock[BriefBlock] const& other) = default; ---- [.small]#link:#mrdocs-doc-BriefBlock-operator_assign-02[_» more..._]# Copy assignment operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-doc-InlineContainer[InlineContainer]& link:#mrdocs-doc-InlineContainer-operator_assign-05[operator=](link:#mrdocs-doc-InlineContainer[InlineContainer] const& other) = default; ---- [.small]#link:#mrdocs-doc-InlineContainer-operator_assign-05[_» more..._]# Move assignment operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-doc-InlineContainer[InlineContainer]& link:#mrdocs-doc-InlineContainer-operator_assign-0b[operator=](link:#mrdocs-doc-InlineContainer[InlineContainer]&& other) noexcept = default; ---- [.small]#link:#mrdocs-doc-InlineContainer-operator_assign-0b[_» more..._]# Assign an InlineContainer with a single TextInline child. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-doc-InlineContainer[InlineContainer]& link:#mrdocs-doc-InlineContainer-operator_assign-09[operator=](std::string_view text); ---- [.small]#link:#mrdocs-doc-InlineContainer-operator_assign-09[_» more..._]# Copy assignment operator == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BriefBlock.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-doc-BriefBlock[BriefBlock]& operator=(link:#mrdocs-doc-BriefBlock[BriefBlock] const& other) = default; ---- == Return Value Reference to the current object == Parameters [cols=2] |=== | Name | Description | *other* | The object to copy assign from |=== Copy assignment operator == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-doc-InlineContainer[InlineContainer]& operator=(link:#mrdocs-doc-InlineContainer[InlineContainer] const& other) = default; ---- == Return Value Reference to the current object == Parameters [cols=2] |=== | Name | Description | *other* | The object to copy assign from |=== Move assignment operator == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-doc-InlineContainer[InlineContainer]& operator=(link:#mrdocs-doc-InlineContainer[InlineContainer]&& other) noexcept = default; ---- == Return Value Reference to the current object == Parameters [cols=2] |=== | Name | Description | *other* | The object to move assign from |=== Assign an InlineContainer with a single TextInline child. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-doc-InlineContainer[InlineContainer]& operator=(std::string_view text); ---- == Return Value Reference to the current object == Parameters [cols=2] |=== | Name | Description | *text* | The object to assign from |=== Compare two InlineContainers. == Synopses Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` Three‐way comparison operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- auto link:#mrdocs-doc-BriefBlock-operator_3way-09[operator<=>](link:#mrdocs-doc-BriefBlock[BriefBlock] const& rhs) const = default; ---- [.small]#link:#mrdocs-doc-BriefBlock-operator_3way-09[_» more..._]# Three‐way comparison operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr auto link:#mrdocs-doc-BriefBlock-operator_3way-0c[operator<=>](link:#mrdocs-doc-BlockCommonBase-0ed[BlockCommonBase<mrdocs::doc::BlockKind::Brief>] const& rhs) const = default; ---- [.small]#link:#mrdocs-doc-BriefBlock-operator_3way-0c[_» more..._]# Compare two InlineContainers. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::strong_ordering link:#mrdocs-doc-InlineContainer-operator_3way[operator<=>](link:#mrdocs-doc-InlineContainer[InlineContainer] const& rhs) const; ---- [.small]#link:#mrdocs-doc-InlineContainer-operator_3way[_» more..._]# Three‐way comparison operator == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BriefBlock.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- auto operator<=>(link:#mrdocs-doc-BriefBlock[BriefBlock] const& rhs) const = default; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== Three‐way comparison operator == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr auto operator<=>(link:#mrdocs-doc-BlockCommonBase-0ed[BlockCommonBase<mrdocs::doc::BlockKind::Brief>] const& rhs) const = default; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== Compare two InlineContainers. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::strong_ordering operator<=>(link:#mrdocs-doc-InlineContainer[InlineContainer] const& rhs) const; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isAdmonition() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isBrief() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isCode() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isDefinitionList() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isFootnoteDefinition() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isHeading() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isList() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isMath() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isParagraph() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isParam() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isPostcondition() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isPrecondition() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isQuote() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isReturns() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isSee() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isTParam() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isTable() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isThematicBreak() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isThrows() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BriefBlock.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::vector<std::string> copiedFrom; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static link:#mrdocs-doc-BlockKind[BlockKind] kind_id; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BriefBlock.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- using InlineContainer::BriefBlock; ---- == Introduced Symbols [cols=2] |=== | Name | Description | link:#mrdocs-doc-InlineContainer-2constructor-06[mrdocs::doc::InlineContainer::InlineContainer] | Construct an InlineContainer with a single TextInline child. | link:#mrdocs-doc-InlineContainer-2constructor-0b[mrdocs::doc::InlineContainer::InlineContainer] | Construct an InlineContainer with a single TextInline child. | link:#mrdocs-doc-InlineContainer-2constructor-0a8[mrdocs::doc::InlineContainer::InlineContainer] | Construct an InlineContainer with a single TextInline child. | link:#mrdocs-doc-InlineContainer-2constructor-09[mrdocs::doc::InlineContainer::InlineContainer] | Construct an InlineContainer with a single TextInline child. | link:#mrdocs-doc-InlineContainer-2constructor-07[mrdocs::doc::InlineContainer::InlineContainer] | Move constructor | link:#mrdocs-doc-InlineContainer-2constructor-0af[mrdocs::doc::InlineContainer::InlineContainer] | Copy constructor |=== == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BriefBlock.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- using InlineContainer::operator=; ---- == Introduced Symbols [cols=2] |=== | Name | Description | link:#mrdocs-doc-InlineContainer-operator_assign-09[mrdocs::doc::InlineContainer::operator=] | Assign an InlineContainer with a single TextInline child. | link:#mrdocs-doc-InlineContainer-operator_assign-0b[mrdocs::doc::InlineContainer::operator=] | Move assignment operator | link:#mrdocs-doc-InlineContainer-operator_assign-05[mrdocs::doc::InlineContainer::operator=] | Copy assignment operator |=== Preformatted source code. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/CodeBlock.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- struct CodeBlock final : link:#mrdocs-doc-BlockCommonBase-0ed[BlockCommonBase<BlockKind::Code>] ---- == Base Classes [cols=2] |=== | Name | Description | `link:#mrdocs-doc-BlockCommonBase-0ed[BlockCommonBase<BlockKind::Code>]` | Base class for providing variant discriminator functions. |=== == Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-doc-CodeBlock-2constructor[`CodeBlock`] [.small]#[constructor]# | Default constructor | link:#mrdocs-doc-CodeBlock-operator_eq[`operator==`] | Equality operator | link:#mrdocs-doc-CodeBlock-operator_3way-0c[`operator<=>`] | Three‐way comparison operators |=== == Static Member Functions [cols=1] |=== | Name | link:#mrdocs-doc-CodeBlock-isAdmonition[`isAdmonition`] | link:#mrdocs-doc-CodeBlock-isBrief[`isBrief`] | link:#mrdocs-doc-CodeBlock-isCode[`isCode`] | link:#mrdocs-doc-CodeBlock-isDefinitionList[`isDefinitionList`] | link:#mrdocs-doc-CodeBlock-isFootnoteDefinition[`isFootnoteDefinition`] | link:#mrdocs-doc-CodeBlock-isHeading[`isHeading`] | link:#mrdocs-doc-CodeBlock-isList[`isList`] | link:#mrdocs-doc-CodeBlock-isMath[`isMath`] | link:#mrdocs-doc-CodeBlock-isParagraph[`isParagraph`] | link:#mrdocs-doc-CodeBlock-isParam[`isParam`] | link:#mrdocs-doc-CodeBlock-isPostcondition[`isPostcondition`] | link:#mrdocs-doc-CodeBlock-isPrecondition[`isPrecondition`] | link:#mrdocs-doc-CodeBlock-isQuote[`isQuote`] | link:#mrdocs-doc-CodeBlock-isReturns[`isReturns`] | link:#mrdocs-doc-CodeBlock-isSee[`isSee`] | link:#mrdocs-doc-CodeBlock-isTParam[`isTParam`] | link:#mrdocs-doc-CodeBlock-isTable[`isTable`] | link:#mrdocs-doc-CodeBlock-isThematicBreak[`isThematicBreak`] | link:#mrdocs-doc-CodeBlock-isThrows[`isThrows`] |=== == Data Members [cols=2] |=== | Name | Description | link:#mrdocs-doc-CodeBlock-info[`info`] | Fence info string, e.g. "cpp" | link:#mrdocs-doc-CodeBlock-literal[`literal`] | |=== == Static Data Members [cols=1] |=== | Name | link:#mrdocs-doc-CodeBlock-kind_id[`kind_id`] |=== == Non-Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-doc-isEmpty-06[`isEmpty`] | Determine if the inline is empty | link:#mrdocs-doc-ltrim-0d[`ltrim`] | Removes leading whitespace from the block. | link:#mrdocs-doc-rtrim-0c[`rtrim`] | Removes trailing whitespace from the block. | link:#mrdocs-doc-trim-071[`trim`] | Removes leading and trailing whitespace from the block. |=== Default constructor == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/CodeBlock.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr CodeBlock() noexcept = default; ---- Equality operator == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/CodeBlock.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr bool operator==(link:#mrdocs-doc-CodeBlock[CodeBlock] const& rhs) const noexcept = default; ---- == Return Value `true` if the objects are equal, `false` otherwise == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== Three‐way comparison operators == Synopses Declared in `<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>` Three‐way comparison operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr auto link:#mrdocs-doc-CodeBlock-operator_3way-09[operator<=>](link:#mrdocs-doc-CodeBlock[CodeBlock] const& rhs) const = default; ---- [.small]#link:#mrdocs-doc-CodeBlock-operator_3way-09[_» more..._]# Three‐way comparison operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr auto link:#mrdocs-doc-CodeBlock-operator_3way-07[operator<=>](link:#mrdocs-doc-BlockCommonBase-0ed[BlockCommonBase<mrdocs::doc::BlockKind::Code>] const& rhs) const = default; ---- [.small]#link:#mrdocs-doc-CodeBlock-operator_3way-07[_» more..._]# Three‐way comparison operator == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/CodeBlock.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr auto operator<=>(link:#mrdocs-doc-CodeBlock[CodeBlock] const& rhs) const = default; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== Three‐way comparison operator == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr auto operator<=>(link:#mrdocs-doc-BlockCommonBase-0ed[BlockCommonBase<mrdocs::doc::BlockKind::Code>] const& rhs) const = default; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isAdmonition() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isBrief() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isCode() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isDefinitionList() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isFootnoteDefinition() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isHeading() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isList() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isMath() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isParagraph() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isParam() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isPostcondition() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isPrecondition() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isQuote() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isReturns() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isSee() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isTParam() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isTable() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isThematicBreak() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isThrows() noexcept; ---- Fence info string, e.g. "cpp" == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/CodeBlock.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::string info; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/CodeBlock.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::string literal; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static link:#mrdocs-doc-BlockKind[BlockKind] kind_id; ---- A piece of styled text. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/CodeInline.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- struct CodeInline final : link:#mrdocs-doc-InlineCommonBase-0dc[InlineCommonBase<InlineKind::Code>] , link:#mrdocs-doc-InlineContainer[InlineContainer] ---- == Base Classes [cols=2] |=== | Name | Description | `link:#mrdocs-doc-InlineCommonBase-0dc[InlineCommonBase<InlineKind::Code>]` | Base class for providing variant discriminator functions. | `link:#mrdocs-doc-InlineContainer[InlineContainer]` | An internal node in the inline element tree |=== == Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-doc-InlineContainer-operator_assign-02[`operator=`] | Assign an InlineContainer with a single TextInline child. | link:#mrdocs-doc-InlineContainer-append-0c[`append`] | `append` overloads | link:#mrdocs-doc-InlineContainer-asInlineContainer-0b[`asInlineContainer`] | Helper function so that derived classes can get a reference to the base class. | link:#mrdocs-doc-InlineContainer-back-03[`back`] | Get the last inline child. | link:#mrdocs-doc-InlineContainer-begin[`begin`] | Begin iterator forwarding to children | link:#mrdocs-doc-InlineContainer-clear[`clear`] | Clear all inline children. | link:#mrdocs-doc-InlineContainer-emplace_back[`emplace_back`] | Append a child of the specified type. | link:#mrdocs-doc-InlineContainer-empty[`empty`] | Determine if there are no inline children. | link:#mrdocs-doc-InlineContainer-end[`end`] | End iterator forwarding to children | link:#mrdocs-doc-InlineContainer-erase[`erase`] | Erase from children | link:#mrdocs-doc-InlineContainer-front-03[`front`] | Get the first inline child. | link:#mrdocs-doc-InlineContainer-insert[`insert`] | Erase from children | link:#mrdocs-doc-InlineContainer-operator_plus_eq-06[`operator+=`] | Addition assignment operators | link:#mrdocs-doc-InlineContainer-size[`size`] | Get the number of inline children. | link:#mrdocs-doc-CodeInline-operator_eq-08[`operator==`] | Compare two InlineContainers. | link:#mrdocs-doc-CodeInline-operator_3way-0f[`operator<=>`] | Compare two InlineContainers. |=== == Static Member Functions [cols=1] |=== | Name | link:#mrdocs-doc-CodeInline-isCode[`isCode`] | link:#mrdocs-doc-CodeInline-isCopyDetails[`isCopyDetails`] | link:#mrdocs-doc-CodeInline-isEmph[`isEmph`] | link:#mrdocs-doc-CodeInline-isFootnoteReference[`isFootnoteReference`] | link:#mrdocs-doc-CodeInline-isHighlight[`isHighlight`] | link:#mrdocs-doc-CodeInline-isImage[`isImage`] | link:#mrdocs-doc-CodeInline-isLineBreak[`isLineBreak`] | link:#mrdocs-doc-CodeInline-isLink[`isLink`] | link:#mrdocs-doc-CodeInline-isMath[`isMath`] | link:#mrdocs-doc-CodeInline-isReference[`isReference`] | link:#mrdocs-doc-CodeInline-isSoftBreak[`isSoftBreak`] | link:#mrdocs-doc-CodeInline-isStrikethrough[`isStrikethrough`] | link:#mrdocs-doc-CodeInline-isStrong[`isStrong`] | link:#mrdocs-doc-CodeInline-isSubscript[`isSubscript`] | link:#mrdocs-doc-CodeInline-isSuperscript[`isSuperscript`] | link:#mrdocs-doc-CodeInline-isText[`isText`] |=== == Data Members [cols=1] |=== | Name | link:#mrdocs-doc-InlineContainer-children[`children`] |=== == Static Data Members [cols=1] |=== | Name | link:#mrdocs-doc-CodeInline-kind_id[`kind_id`] |=== == Using Declarations [cols=1] |=== | Name | link:#mrdocs-doc-CodeInline-2constructor[`CodeInline`] |=== == Non-Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-doc-getAsPlainText-097[`getAsPlainText`] | Flatten an InlineContainer to plain text. | link:#mrdocs-doc-getAsPlainText-09f[`getAsPlainText`] | Flatten an InlineContainer to plain text. | link:#mrdocs-doc-getAsPlainText-0ad[`getAsPlainText`] | Get the plain text representation of an inline element tree. | link:#mrdocs-doc-getAsPlainText-0ae[`getAsPlainText`] | Get the plain text representation of an inline element tree. | link:#mrdocs-doc-ltrim-0b[`ltrim`] | Removes leading whitespace from the first text element in the given InlineContainer. | link:#mrdocs-doc-rtrim-0b[`rtrim`] | Removes trailing whitespace from the last text element in the given InlineContainer. | link:#mrdocs-doc-trim-08[`trim`] | Removes leading and trailing whitespace from the text elements in the given InlineContainer. |=== Compare two InlineContainers. == Synopses Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` Equality operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr bool link:#mrdocs-doc-CodeInline-operator_eq-0f[operator==](link:#mrdocs-doc-CodeInline[CodeInline] const& rhs) const noexcept = default; ---- [.small]#link:#mrdocs-doc-CodeInline-operator_eq-0f[_» more..._]# Compare two InlineContainers. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr bool link:#mrdocs-doc-InlineContainer-operator_eq[operator==](link:#mrdocs-doc-InlineContainer[InlineContainer] const& rhs) const = default; ---- [.small]#link:#mrdocs-doc-InlineContainer-operator_eq[_» more..._]# Equality operator == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/CodeInline.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr bool operator==(link:#mrdocs-doc-CodeInline[CodeInline] const& rhs) const noexcept = default; ---- == Return Value `true` if the objects are equal, `false` otherwise == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== Compare two InlineContainers. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr bool operator==(link:#mrdocs-doc-InlineContainer[InlineContainer] const& rhs) const = default; ---- == Return Value `true` if the objects are equal, `false` otherwise == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== Compare two InlineContainers. == Synopses Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` Three‐way comparison operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- auto link:#mrdocs-doc-CodeInline-operator_3way-0e[operator<=>](link:#mrdocs-doc-CodeInline[CodeInline] const& rhs) const = default; ---- [.small]#link:#mrdocs-doc-CodeInline-operator_3way-0e[_» more..._]# Three‐way comparison operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr auto link:#mrdocs-doc-CodeInline-operator_3way-09[operator<=>](link:#mrdocs-doc-InlineCommonBase-0dc[InlineCommonBase<mrdocs::doc::InlineKind::Code>] const& rhs) const = default; ---- [.small]#link:#mrdocs-doc-CodeInline-operator_3way-09[_» more..._]# Compare two InlineContainers. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::strong_ordering link:#mrdocs-doc-InlineContainer-operator_3way[operator<=>](link:#mrdocs-doc-InlineContainer[InlineContainer] const& rhs) const; ---- [.small]#link:#mrdocs-doc-InlineContainer-operator_3way[_» more..._]# Three‐way comparison operator == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/CodeInline.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- auto operator<=>(link:#mrdocs-doc-CodeInline[CodeInline] const& rhs) const = default; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== Three‐way comparison operator == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr auto operator<=>(link:#mrdocs-doc-InlineCommonBase-0dc[InlineCommonBase<mrdocs::doc::InlineKind::Code>] const& rhs) const = default; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== Compare two InlineContainers. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::strong_ordering operator<=>(link:#mrdocs-doc-InlineContainer[InlineContainer] const& rhs) const; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isCode() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isCopyDetails() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isEmph() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isFootnoteReference() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isHighlight() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isImage() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isLineBreak() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isLink() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isMath() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isReference() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isSoftBreak() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isStrikethrough() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isStrong() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isSubscript() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isSuperscript() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isText() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static link:#mrdocs-doc-InlineKind[InlineKind] kind_id; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/CodeInline.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- using InlineContainer::CodeInline; ---- == Introduced Symbols [cols=2] |=== | Name | Description | link:#mrdocs-doc-InlineContainer-2constructor-06[mrdocs::doc::InlineContainer::InlineContainer] | Construct an InlineContainer with a single TextInline child. | link:#mrdocs-doc-InlineContainer-2constructor-0b[mrdocs::doc::InlineContainer::InlineContainer] | Construct an InlineContainer with a single TextInline child. | link:#mrdocs-doc-InlineContainer-2constructor-0a8[mrdocs::doc::InlineContainer::InlineContainer] | Construct an InlineContainer with a single TextInline child. | link:#mrdocs-doc-InlineContainer-2constructor-09[mrdocs::doc::InlineContainer::InlineContainer] | Construct an InlineContainer with a single TextInline child. | link:#mrdocs-doc-InlineContainer-2constructor-07[mrdocs::doc::InlineContainer::InlineContainer] | Move constructor | link:#mrdocs-doc-InlineContainer-2constructor-0af[mrdocs::doc::InlineContainer::InlineContainer] | Copy constructor |=== Documentation copied from another symbol. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/CopyDetailsInline.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- struct CopyDetailsInline final : link:#mrdocs-doc-InlineCommonBase-0dc[InlineCommonBase<InlineKind::CopyDetails>] ---- == Base Classes [cols=2] |=== | Name | Description | `link:#mrdocs-doc-InlineCommonBase-0dc[InlineCommonBase<InlineKind::CopyDetails>]` | Base class for providing variant discriminator functions. |=== == Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-doc-CopyDetailsInline-2constructor[`CopyDetailsInline`] [.small]#[constructor]# | Construct from `string` | link:#mrdocs-doc-CopyDetailsInline-operator_eq[`operator==`] | Equality operator | link:#mrdocs-doc-CopyDetailsInline-operator_3way-02[`operator<=>`] | Three‐way comparison operators |=== == Static Member Functions [cols=1] |=== | Name | link:#mrdocs-doc-CopyDetailsInline-isCode[`isCode`] | link:#mrdocs-doc-CopyDetailsInline-isCopyDetails[`isCopyDetails`] | link:#mrdocs-doc-CopyDetailsInline-isEmph[`isEmph`] | link:#mrdocs-doc-CopyDetailsInline-isFootnoteReference[`isFootnoteReference`] | link:#mrdocs-doc-CopyDetailsInline-isHighlight[`isHighlight`] | link:#mrdocs-doc-CopyDetailsInline-isImage[`isImage`] | link:#mrdocs-doc-CopyDetailsInline-isLineBreak[`isLineBreak`] | link:#mrdocs-doc-CopyDetailsInline-isLink[`isLink`] | link:#mrdocs-doc-CopyDetailsInline-isMath[`isMath`] | link:#mrdocs-doc-CopyDetailsInline-isReference[`isReference`] | link:#mrdocs-doc-CopyDetailsInline-isSoftBreak[`isSoftBreak`] | link:#mrdocs-doc-CopyDetailsInline-isStrikethrough[`isStrikethrough`] | link:#mrdocs-doc-CopyDetailsInline-isStrong[`isStrong`] | link:#mrdocs-doc-CopyDetailsInline-isSubscript[`isSubscript`] | link:#mrdocs-doc-CopyDetailsInline-isSuperscript[`isSuperscript`] | link:#mrdocs-doc-CopyDetailsInline-isText[`isText`] |=== == Data Members [cols=1] |=== | Name | link:#mrdocs-doc-CopyDetailsInline-id[`id`] | link:#mrdocs-doc-CopyDetailsInline-string[`string`] |=== == Static Data Members [cols=1] |=== | Name | link:#mrdocs-doc-CopyDetailsInline-kind_id[`kind_id`] |=== == Non-Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-doc-getAsPlainText-0ad[`getAsPlainText`] | Get the plain text representation of an inline element tree. | link:#mrdocs-doc-getAsPlainText-0ae[`getAsPlainText`] | Get the plain text representation of an inline element tree. |=== Construct from `string` == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/CopyDetailsInline.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- CopyDetailsInline(std::string string_ = std::string()) noexcept; ---- == Parameters [cols=2] |=== | Name | Description | *string_* | The object to construct from |=== Equality operator == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/CopyDetailsInline.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr bool operator==(link:#mrdocs-doc-CopyDetailsInline[CopyDetailsInline] const& rhs) const noexcept = default; ---- == Return Value `true` if the objects are equal, `false` otherwise == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== Three‐way comparison operators == Synopses Declared in `<mrdocs/Metadata/DocComment/Inline/CopyDetailsInline.hpp>` Three‐way comparison operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- auto link:#mrdocs-doc-CopyDetailsInline-operator_3way-0e[operator<=>](link:#mrdocs-doc-CopyDetailsInline[CopyDetailsInline] const& rhs) const = default; ---- [.small]#link:#mrdocs-doc-CopyDetailsInline-operator_3way-0e[_» more..._]# Three‐way comparison operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr auto link:#mrdocs-doc-CopyDetailsInline-operator_3way-06[operator<=>](link:#mrdocs-doc-InlineCommonBase-0dc[InlineCommonBase<mrdocs::doc::InlineKind::CopyDetails>] const& rhs) const = default; ---- [.small]#link:#mrdocs-doc-CopyDetailsInline-operator_3way-06[_» more..._]# Three‐way comparison operator == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/CopyDetailsInline.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- auto operator<=>(link:#mrdocs-doc-CopyDetailsInline[CopyDetailsInline] const& rhs) const = default; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== Three‐way comparison operator == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr auto operator<=>(link:#mrdocs-doc-InlineCommonBase-0dc[InlineCommonBase<mrdocs::doc::InlineKind::CopyDetails>] const& rhs) const = default; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isCode() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isCopyDetails() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isEmph() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isFootnoteReference() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isHighlight() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isImage() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isLineBreak() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isLink() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isMath() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isReference() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isSoftBreak() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isStrikethrough() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isStrong() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isSubscript() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isSuperscript() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isText() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/CopyDetailsInline.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-SymbolID[SymbolID] id = = SymbolID::invalid; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/CopyDetailsInline.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::string string; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static link:#mrdocs-doc-InlineKind[InlineKind] kind_id; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/DefinitionListBlock.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- struct DefinitionListBlock final : link:#mrdocs-doc-BlockCommonBase-0ed[BlockCommonBase<BlockKind::List>] ---- == Base Classes [cols=2] |=== | Name | Description | `link:#mrdocs-doc-BlockCommonBase-0ed[BlockCommonBase<BlockKind::List>]` | Base class for providing variant discriminator functions. |=== == Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-doc-DefinitionListBlock-operator_eq[`operator==`] | Equality operator | link:#mrdocs-doc-DefinitionListBlock-operator_3way-00[`operator<=>`] | Three‐way comparison operators |=== == Static Member Functions [cols=1] |=== | Name | link:#mrdocs-doc-DefinitionListBlock-isAdmonition[`isAdmonition`] | link:#mrdocs-doc-DefinitionListBlock-isBrief[`isBrief`] | link:#mrdocs-doc-DefinitionListBlock-isCode[`isCode`] | link:#mrdocs-doc-DefinitionListBlock-isDefinitionList[`isDefinitionList`] | link:#mrdocs-doc-DefinitionListBlock-isFootnoteDefinition[`isFootnoteDefinition`] | link:#mrdocs-doc-DefinitionListBlock-isHeading[`isHeading`] | link:#mrdocs-doc-DefinitionListBlock-isList[`isList`] | link:#mrdocs-doc-DefinitionListBlock-isMath[`isMath`] | link:#mrdocs-doc-DefinitionListBlock-isParagraph[`isParagraph`] | link:#mrdocs-doc-DefinitionListBlock-isParam[`isParam`] | link:#mrdocs-doc-DefinitionListBlock-isPostcondition[`isPostcondition`] | link:#mrdocs-doc-DefinitionListBlock-isPrecondition[`isPrecondition`] | link:#mrdocs-doc-DefinitionListBlock-isQuote[`isQuote`] | link:#mrdocs-doc-DefinitionListBlock-isReturns[`isReturns`] | link:#mrdocs-doc-DefinitionListBlock-isSee[`isSee`] | link:#mrdocs-doc-DefinitionListBlock-isTParam[`isTParam`] | link:#mrdocs-doc-DefinitionListBlock-isTable[`isTable`] | link:#mrdocs-doc-DefinitionListBlock-isThematicBreak[`isThematicBreak`] | link:#mrdocs-doc-DefinitionListBlock-isThrows[`isThrows`] |=== == Data Members [cols=1] |=== | Name | link:#mrdocs-doc-DefinitionListBlock-items[`items`] |=== == Static Data Members [cols=1] |=== | Name | link:#mrdocs-doc-DefinitionListBlock-kind_id[`kind_id`] |=== == Non-Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-doc-isEmpty-06[`isEmpty`] | Determine if the inline is empty | link:#mrdocs-doc-ltrim-0d[`ltrim`] | Removes leading whitespace from the block. | link:#mrdocs-doc-rtrim-0c[`rtrim`] | Removes trailing whitespace from the block. | link:#mrdocs-doc-trim-071[`trim`] | Removes leading and trailing whitespace from the block. |=== Equality operator == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/DefinitionListBlock.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr bool operator==(link:#mrdocs-doc-DefinitionListBlock[DefinitionListBlock] const& rhs) const noexcept = default; ---- == Return Value `true` if the objects are equal, `false` otherwise == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== Three‐way comparison operators == Synopses Declared in `<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>` Three‐way comparison operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- auto link:#mrdocs-doc-DefinitionListBlock-operator_3way-0b[operator<=>](link:#mrdocs-doc-DefinitionListBlock[DefinitionListBlock] const& other) const; ---- [.small]#link:#mrdocs-doc-DefinitionListBlock-operator_3way-0b[_» more..._]# Three‐way comparison operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr auto link:#mrdocs-doc-DefinitionListBlock-operator_3way-04[operator<=>](link:#mrdocs-doc-BlockCommonBase-0ed[BlockCommonBase<mrdocs::doc::BlockKind::List>] const& rhs) const = default; ---- [.small]#link:#mrdocs-doc-DefinitionListBlock-operator_3way-04[_» more..._]# Three‐way comparison operator == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/DefinitionListBlock.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- auto operator<=>(link:#mrdocs-doc-DefinitionListBlock[DefinitionListBlock] const& other) const; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *other* | The right operand |=== Three‐way comparison operator == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr auto operator<=>(link:#mrdocs-doc-BlockCommonBase-0ed[BlockCommonBase<mrdocs::doc::BlockKind::List>] const& rhs) const = default; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isAdmonition() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isBrief() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isCode() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isDefinitionList() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isFootnoteDefinition() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isHeading() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isList() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isMath() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isParagraph() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isParam() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isPostcondition() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isPrecondition() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isQuote() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isReturns() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isSee() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isTParam() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isTable() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isThematicBreak() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isThrows() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/DefinitionListBlock.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::vector<DefinitionListItem> items; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static link:#mrdocs-doc-BlockKind[BlockKind] kind_id; ---- An item in a definition list == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/DefinitionListItem.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- struct DefinitionListItem final : link:#mrdocs-doc-BlockContainer[BlockContainer] ---- == Base Classes [cols=2] |=== | Name | Description | `link:#mrdocs-doc-BlockContainer[BlockContainer]` | |=== == Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-doc-BlockContainer-asBlockContainer-0c[`asBlockContainer`] | | link:#mrdocs-doc-DefinitionListItem-operator_eq-02d[`operator==`] | Equality operators | link:#mrdocs-doc-DefinitionListItem-operator_3way-0f[`operator<=>`] | Three‐way comparison operators |=== == Data Members [cols=1] |=== | Name | link:#mrdocs-doc-BlockContainer-blocks[`blocks`] | link:#mrdocs-doc-DefinitionListItem-term[`term`] |=== == Non-Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-doc-ltrim-01[`ltrim`] | Removes leading whitespace from the first text elements | link:#mrdocs-doc-rtrim-06[`rtrim`] | Removes trailing whitespace from the last text elements | link:#mrdocs-doc-trim-0b[`trim`] | Removes leading and trailing whitespace from the text elements |=== Equality operators == Synopses Declared in `<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>` Equality operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr bool link:#mrdocs-doc-DefinitionListItem-operator_eq-024[operator==](link:#mrdocs-doc-DefinitionListItem[DefinitionListItem] const& rhs) const noexcept = default; ---- [.small]#link:#mrdocs-doc-DefinitionListItem-operator_eq-024[_» more..._]# Equality operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr bool link:#mrdocs-doc-BlockContainer-operator_eq[operator==](link:#mrdocs-doc-BlockContainer[BlockContainer] const& rhs) const = default; ---- [.small]#link:#mrdocs-doc-BlockContainer-operator_eq[_» more..._]# Equality operator == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/DefinitionListItem.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr bool operator==(link:#mrdocs-doc-DefinitionListItem[DefinitionListItem] const& rhs) const noexcept = default; ---- == Return Value `true` if the objects are equal, `false` otherwise == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== Equality operator == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr bool operator==(link:#mrdocs-doc-BlockContainer[BlockContainer] const& rhs) const = default; ---- == Return Value `true` if the objects are equal, `false` otherwise == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== Three‐way comparison operators == Synopses Declared in `<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>` Three‐way comparison operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- auto link:#mrdocs-doc-DefinitionListItem-operator_3way-0c[operator<=>](link:#mrdocs-doc-DefinitionListItem[DefinitionListItem] const& rhs) const = default; ---- [.small]#link:#mrdocs-doc-DefinitionListItem-operator_3way-0c[_» more..._]# Three‐way comparison operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::strong_ordering link:#mrdocs-doc-BlockContainer-operator_3way[operator<=>](link:#mrdocs-doc-BlockContainer[BlockContainer] const& rhs) const; ---- [.small]#link:#mrdocs-doc-BlockContainer-operator_3way[_» more..._]# Three‐way comparison operator == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/DefinitionListItem.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- auto operator<=>(link:#mrdocs-doc-DefinitionListItem[DefinitionListItem] const& rhs) const = default; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== Three‐way comparison operator == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::strong_ordering operator<=>(link:#mrdocs-doc-BlockContainer[BlockContainer] const& rhs) const; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/DefinitionListItem.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-doc-InlineContainer[InlineContainer] term; ---- A piece of styled text. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/EmphInline.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- struct EmphInline final : link:#mrdocs-doc-InlineCommonBase-0dc[InlineCommonBase<InlineKind::Emph>] , link:#mrdocs-doc-InlineContainer[InlineContainer] ---- == Base Classes [cols=2] |=== | Name | Description | `link:#mrdocs-doc-InlineCommonBase-0dc[InlineCommonBase<InlineKind::Emph>]` | Base class for providing variant discriminator functions. | `link:#mrdocs-doc-InlineContainer[InlineContainer]` | An internal node in the inline element tree |=== == Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-doc-InlineContainer-operator_assign-02[`operator=`] | Assign an InlineContainer with a single TextInline child. | link:#mrdocs-doc-InlineContainer-append-0c[`append`] | `append` overloads | link:#mrdocs-doc-InlineContainer-asInlineContainer-0b[`asInlineContainer`] | Helper function so that derived classes can get a reference to the base class. | link:#mrdocs-doc-InlineContainer-back-03[`back`] | Get the last inline child. | link:#mrdocs-doc-InlineContainer-begin[`begin`] | Begin iterator forwarding to children | link:#mrdocs-doc-InlineContainer-clear[`clear`] | Clear all inline children. | link:#mrdocs-doc-InlineContainer-emplace_back[`emplace_back`] | Append a child of the specified type. | link:#mrdocs-doc-InlineContainer-empty[`empty`] | Determine if there are no inline children. | link:#mrdocs-doc-InlineContainer-end[`end`] | End iterator forwarding to children | link:#mrdocs-doc-InlineContainer-erase[`erase`] | Erase from children | link:#mrdocs-doc-InlineContainer-front-03[`front`] | Get the first inline child. | link:#mrdocs-doc-InlineContainer-insert[`insert`] | Erase from children | link:#mrdocs-doc-InlineContainer-operator_plus_eq-06[`operator+=`] | Addition assignment operators | link:#mrdocs-doc-InlineContainer-size[`size`] | Get the number of inline children. | link:#mrdocs-doc-EmphInline-operator_eq-0b[`operator==`] | Compare two InlineContainers. | link:#mrdocs-doc-EmphInline-operator_3way-040[`operator<=>`] | Compare two InlineContainers. |=== == Static Member Functions [cols=1] |=== | Name | link:#mrdocs-doc-EmphInline-isCode[`isCode`] | link:#mrdocs-doc-EmphInline-isCopyDetails[`isCopyDetails`] | link:#mrdocs-doc-EmphInline-isEmph[`isEmph`] | link:#mrdocs-doc-EmphInline-isFootnoteReference[`isFootnoteReference`] | link:#mrdocs-doc-EmphInline-isHighlight[`isHighlight`] | link:#mrdocs-doc-EmphInline-isImage[`isImage`] | link:#mrdocs-doc-EmphInline-isLineBreak[`isLineBreak`] | link:#mrdocs-doc-EmphInline-isLink[`isLink`] | link:#mrdocs-doc-EmphInline-isMath[`isMath`] | link:#mrdocs-doc-EmphInline-isReference[`isReference`] | link:#mrdocs-doc-EmphInline-isSoftBreak[`isSoftBreak`] | link:#mrdocs-doc-EmphInline-isStrikethrough[`isStrikethrough`] | link:#mrdocs-doc-EmphInline-isStrong[`isStrong`] | link:#mrdocs-doc-EmphInline-isSubscript[`isSubscript`] | link:#mrdocs-doc-EmphInline-isSuperscript[`isSuperscript`] | link:#mrdocs-doc-EmphInline-isText[`isText`] |=== == Data Members [cols=1] |=== | Name | link:#mrdocs-doc-InlineContainer-children[`children`] |=== == Static Data Members [cols=1] |=== | Name | link:#mrdocs-doc-EmphInline-kind_id[`kind_id`] |=== == Using Declarations [cols=1] |=== | Name | link:#mrdocs-doc-EmphInline-2constructor[`EmphInline`] |=== == Non-Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-doc-getAsPlainText-097[`getAsPlainText`] | Flatten an InlineContainer to plain text. | link:#mrdocs-doc-getAsPlainText-09f[`getAsPlainText`] | Flatten an InlineContainer to plain text. | link:#mrdocs-doc-getAsPlainText-0ad[`getAsPlainText`] | Get the plain text representation of an inline element tree. | link:#mrdocs-doc-getAsPlainText-0ae[`getAsPlainText`] | Get the plain text representation of an inline element tree. | link:#mrdocs-doc-ltrim-0b[`ltrim`] | Removes leading whitespace from the first text element in the given InlineContainer. | link:#mrdocs-doc-rtrim-0b[`rtrim`] | Removes trailing whitespace from the last text element in the given InlineContainer. | link:#mrdocs-doc-trim-08[`trim`] | Removes leading and trailing whitespace from the text elements in the given InlineContainer. |=== Compare two InlineContainers. == Synopses Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` Equality operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr bool link:#mrdocs-doc-EmphInline-operator_eq-06[operator==](link:#mrdocs-doc-EmphInline[EmphInline] const& rhs) const noexcept = default; ---- [.small]#link:#mrdocs-doc-EmphInline-operator_eq-06[_» more..._]# Compare two InlineContainers. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr bool link:#mrdocs-doc-InlineContainer-operator_eq[operator==](link:#mrdocs-doc-InlineContainer[InlineContainer] const& rhs) const = default; ---- [.small]#link:#mrdocs-doc-InlineContainer-operator_eq[_» more..._]# Equality operator == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/EmphInline.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr bool operator==(link:#mrdocs-doc-EmphInline[EmphInline] const& rhs) const noexcept = default; ---- == Return Value `true` if the objects are equal, `false` otherwise == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== Compare two InlineContainers. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr bool operator==(link:#mrdocs-doc-InlineContainer[InlineContainer] const& rhs) const = default; ---- == Return Value `true` if the objects are equal, `false` otherwise == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== Compare two InlineContainers. == Synopses Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` Three‐way comparison operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- auto link:#mrdocs-doc-EmphInline-operator_3way-047[operator<=>](link:#mrdocs-doc-EmphInline[EmphInline] const& rhs) const = default; ---- [.small]#link:#mrdocs-doc-EmphInline-operator_3way-047[_» more..._]# Three‐way comparison operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr auto link:#mrdocs-doc-EmphInline-operator_3way-02[operator<=>](link:#mrdocs-doc-InlineCommonBase-0dc[InlineCommonBase<mrdocs::doc::InlineKind::Emph>] const& rhs) const = default; ---- [.small]#link:#mrdocs-doc-EmphInline-operator_3way-02[_» more..._]# Compare two InlineContainers. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::strong_ordering link:#mrdocs-doc-InlineContainer-operator_3way[operator<=>](link:#mrdocs-doc-InlineContainer[InlineContainer] const& rhs) const; ---- [.small]#link:#mrdocs-doc-InlineContainer-operator_3way[_» more..._]# Three‐way comparison operator == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/EmphInline.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- auto operator<=>(link:#mrdocs-doc-EmphInline[EmphInline] const& rhs) const = default; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== Three‐way comparison operator == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr auto operator<=>(link:#mrdocs-doc-InlineCommonBase-0dc[InlineCommonBase<mrdocs::doc::InlineKind::Emph>] const& rhs) const = default; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== Compare two InlineContainers. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::strong_ordering operator<=>(link:#mrdocs-doc-InlineContainer[InlineContainer] const& rhs) const; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isCode() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isCopyDetails() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isEmph() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isFootnoteReference() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isHighlight() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isImage() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isLineBreak() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isLink() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isMath() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isReference() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isSoftBreak() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isStrikethrough() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isStrong() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isSubscript() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isSuperscript() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isText() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static link:#mrdocs-doc-InlineKind[InlineKind] kind_id; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/EmphInline.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- using InlineContainer::EmphInline; ---- == Introduced Symbols [cols=2] |=== | Name | Description | link:#mrdocs-doc-InlineContainer-2constructor-06[mrdocs::doc::InlineContainer::InlineContainer] | Construct an InlineContainer with a single TextInline child. | link:#mrdocs-doc-InlineContainer-2constructor-0b[mrdocs::doc::InlineContainer::InlineContainer] | Construct an InlineContainer with a single TextInline child. | link:#mrdocs-doc-InlineContainer-2constructor-0a8[mrdocs::doc::InlineContainer::InlineContainer] | Construct an InlineContainer with a single TextInline child. | link:#mrdocs-doc-InlineContainer-2constructor-09[mrdocs::doc::InlineContainer::InlineContainer] | Construct an InlineContainer with a single TextInline child. | link:#mrdocs-doc-InlineContainer-2constructor-07[mrdocs::doc::InlineContainer::InlineContainer] | Move constructor | link:#mrdocs-doc-InlineContainer-2constructor-0af[mrdocs::doc::InlineContainer::InlineContainer] | Copy constructor |=== Preformatted source code. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/FootnoteDefinitionBlock.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- struct FootnoteDefinitionBlock final : link:#mrdocs-doc-BlockCommonBase-0ed[BlockCommonBase<BlockKind::FootnoteDefinition>] , link:#mrdocs-doc-BlockContainer[BlockContainer] ---- == Base Classes [cols=2] |=== | Name | Description | `link:#mrdocs-doc-BlockCommonBase-0ed[BlockCommonBase<BlockKind::FootnoteDefinition>]` | Base class for providing variant discriminator functions. | `link:#mrdocs-doc-BlockContainer[BlockContainer]` | |=== == Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-doc-FootnoteDefinitionBlock-2constructor[`FootnoteDefinitionBlock`] [.small]#[constructor]# | Default constructor | link:#mrdocs-doc-BlockContainer-asBlockContainer-0c[`asBlockContainer`] | | link:#mrdocs-doc-FootnoteDefinitionBlock-operator_eq-08[`operator==`] | Equality operators | link:#mrdocs-doc-FootnoteDefinitionBlock-operator_3way-0f[`operator<=>`] | Three‐way comparison operators |=== == Static Member Functions [cols=1] |=== | Name | link:#mrdocs-doc-FootnoteDefinitionBlock-isAdmonition[`isAdmonition`] | link:#mrdocs-doc-FootnoteDefinitionBlock-isBrief[`isBrief`] | link:#mrdocs-doc-FootnoteDefinitionBlock-isCode[`isCode`] | link:#mrdocs-doc-FootnoteDefinitionBlock-isDefinitionList[`isDefinitionList`] | link:#mrdocs-doc-FootnoteDefinitionBlock-isFootnoteDefinition[`isFootnoteDefinition`] | link:#mrdocs-doc-FootnoteDefinitionBlock-isHeading[`isHeading`] | link:#mrdocs-doc-FootnoteDefinitionBlock-isList[`isList`] | link:#mrdocs-doc-FootnoteDefinitionBlock-isMath[`isMath`] | link:#mrdocs-doc-FootnoteDefinitionBlock-isParagraph[`isParagraph`] | link:#mrdocs-doc-FootnoteDefinitionBlock-isParam[`isParam`] | link:#mrdocs-doc-FootnoteDefinitionBlock-isPostcondition[`isPostcondition`] | link:#mrdocs-doc-FootnoteDefinitionBlock-isPrecondition[`isPrecondition`] | link:#mrdocs-doc-FootnoteDefinitionBlock-isQuote[`isQuote`] | link:#mrdocs-doc-FootnoteDefinitionBlock-isReturns[`isReturns`] | link:#mrdocs-doc-FootnoteDefinitionBlock-isSee[`isSee`] | link:#mrdocs-doc-FootnoteDefinitionBlock-isTParam[`isTParam`] | link:#mrdocs-doc-FootnoteDefinitionBlock-isTable[`isTable`] | link:#mrdocs-doc-FootnoteDefinitionBlock-isThematicBreak[`isThematicBreak`] | link:#mrdocs-doc-FootnoteDefinitionBlock-isThrows[`isThrows`] |=== == Data Members [cols=1] |=== | Name | link:#mrdocs-doc-BlockContainer-blocks[`blocks`] | link:#mrdocs-doc-FootnoteDefinitionBlock-label[`label`] |=== == Static Data Members [cols=1] |=== | Name | link:#mrdocs-doc-FootnoteDefinitionBlock-kind_id[`kind_id`] |=== == Non-Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-doc-isEmpty-06[`isEmpty`] | Determine if the inline is empty | link:#mrdocs-doc-ltrim-01[`ltrim`] | Removes leading whitespace from the first text elements | link:#mrdocs-doc-ltrim-0d[`ltrim`] | Removes leading whitespace from the block. | link:#mrdocs-doc-rtrim-06[`rtrim`] | Removes trailing whitespace from the last text elements | link:#mrdocs-doc-rtrim-0c[`rtrim`] | Removes trailing whitespace from the block. | link:#mrdocs-doc-trim-071[`trim`] | Removes leading and trailing whitespace from the block. | link:#mrdocs-doc-trim-0b[`trim`] | Removes leading and trailing whitespace from the text elements |=== Default constructor == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/FootnoteDefinitionBlock.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr FootnoteDefinitionBlock() noexcept = default; ---- Equality operators == Synopses Declared in `<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>` Equality operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr bool link:#mrdocs-doc-FootnoteDefinitionBlock-operator_eq-06[operator==](link:#mrdocs-doc-FootnoteDefinitionBlock[FootnoteDefinitionBlock] const& rhs) const noexcept = default; ---- [.small]#link:#mrdocs-doc-FootnoteDefinitionBlock-operator_eq-06[_» more..._]# Equality operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr bool link:#mrdocs-doc-BlockContainer-operator_eq[operator==](link:#mrdocs-doc-BlockContainer[BlockContainer] const& rhs) const = default; ---- [.small]#link:#mrdocs-doc-BlockContainer-operator_eq[_» more..._]# Equality operator == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/FootnoteDefinitionBlock.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr bool operator==(link:#mrdocs-doc-FootnoteDefinitionBlock[FootnoteDefinitionBlock] const& rhs) const noexcept = default; ---- == Return Value `true` if the objects are equal, `false` otherwise == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== Equality operator == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr bool operator==(link:#mrdocs-doc-BlockContainer[BlockContainer] const& rhs) const = default; ---- == Return Value `true` if the objects are equal, `false` otherwise == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== Three‐way comparison operators == Synopses Declared in `<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>` Three‐way comparison operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- auto link:#mrdocs-doc-FootnoteDefinitionBlock-operator_3way-06[operator<=>](link:#mrdocs-doc-FootnoteDefinitionBlock[FootnoteDefinitionBlock] const& rhs) const = default; ---- [.small]#link:#mrdocs-doc-FootnoteDefinitionBlock-operator_3way-06[_» more..._]# Three‐way comparison operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr auto link:#mrdocs-doc-FootnoteDefinitionBlock-operator_3way-0e[operator<=>](link:#mrdocs-doc-BlockCommonBase-0ed[BlockCommonBase<mrdocs::doc::BlockKind::FootnoteDefinition>] const& rhs) const = default; ---- [.small]#link:#mrdocs-doc-FootnoteDefinitionBlock-operator_3way-0e[_» more..._]# Three‐way comparison operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::strong_ordering link:#mrdocs-doc-BlockContainer-operator_3way[operator<=>](link:#mrdocs-doc-BlockContainer[BlockContainer] const& rhs) const; ---- [.small]#link:#mrdocs-doc-BlockContainer-operator_3way[_» more..._]# Three‐way comparison operator == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/FootnoteDefinitionBlock.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- auto operator<=>(link:#mrdocs-doc-FootnoteDefinitionBlock[FootnoteDefinitionBlock] const& rhs) const = default; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== Three‐way comparison operator == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr auto operator<=>(link:#mrdocs-doc-BlockCommonBase-0ed[BlockCommonBase<mrdocs::doc::BlockKind::FootnoteDefinition>] const& rhs) const = default; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== Three‐way comparison operator == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::strong_ordering operator<=>(link:#mrdocs-doc-BlockContainer[BlockContainer] const& rhs) const; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isAdmonition() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isBrief() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isCode() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isDefinitionList() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isFootnoteDefinition() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isHeading() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isList() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isMath() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isParagraph() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isParam() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isPostcondition() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isPrecondition() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isQuote() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isReturns() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isSee() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isTParam() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isTable() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isThematicBreak() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isThrows() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/FootnoteDefinitionBlock.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::string label; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static link:#mrdocs-doc-BlockKind[BlockKind] kind_id; ---- A reference to a symbol. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/FootnoteReferenceInline.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- struct FootnoteReferenceInline : link:#mrdocs-doc-InlineCommonBase-0dc[InlineCommonBase<InlineKind::FootnoteReference>] ---- == Base Classes [cols=2] |=== | Name | Description | `link:#mrdocs-doc-InlineCommonBase-0dc[InlineCommonBase<InlineKind::FootnoteReference>]` | Base class for providing variant discriminator functions. |=== == Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-doc-FootnoteReferenceInline-operator_eq[`operator==`] | Equality operator | link:#mrdocs-doc-FootnoteReferenceInline-operator_3way-00[`operator<=>`] | Three‐way comparison operators |=== == Static Member Functions [cols=1] |=== | Name | link:#mrdocs-doc-FootnoteReferenceInline-isCode[`isCode`] | link:#mrdocs-doc-FootnoteReferenceInline-isCopyDetails[`isCopyDetails`] | link:#mrdocs-doc-FootnoteReferenceInline-isEmph[`isEmph`] | link:#mrdocs-doc-FootnoteReferenceInline-isFootnoteReference[`isFootnoteReference`] | link:#mrdocs-doc-FootnoteReferenceInline-isHighlight[`isHighlight`] | link:#mrdocs-doc-FootnoteReferenceInline-isImage[`isImage`] | link:#mrdocs-doc-FootnoteReferenceInline-isLineBreak[`isLineBreak`] | link:#mrdocs-doc-FootnoteReferenceInline-isLink[`isLink`] | link:#mrdocs-doc-FootnoteReferenceInline-isMath[`isMath`] | link:#mrdocs-doc-FootnoteReferenceInline-isReference[`isReference`] | link:#mrdocs-doc-FootnoteReferenceInline-isSoftBreak[`isSoftBreak`] | link:#mrdocs-doc-FootnoteReferenceInline-isStrikethrough[`isStrikethrough`] | link:#mrdocs-doc-FootnoteReferenceInline-isStrong[`isStrong`] | link:#mrdocs-doc-FootnoteReferenceInline-isSubscript[`isSubscript`] | link:#mrdocs-doc-FootnoteReferenceInline-isSuperscript[`isSuperscript`] | link:#mrdocs-doc-FootnoteReferenceInline-isText[`isText`] |=== == Data Members [cols=1] |=== | Name | link:#mrdocs-doc-FootnoteReferenceInline-label[`label`] |=== == Static Data Members [cols=1] |=== | Name | link:#mrdocs-doc-FootnoteReferenceInline-kind_id[`kind_id`] |=== == Non-Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-doc-getAsPlainText-0ad[`getAsPlainText`] | Get the plain text representation of an inline element tree. | link:#mrdocs-doc-getAsPlainText-0ae[`getAsPlainText`] | Get the plain text representation of an inline element tree. |=== == Description In markdown, this is represented as "[]". Equality operator == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/FootnoteReferenceInline.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr bool operator==(link:#mrdocs-doc-FootnoteReferenceInline[FootnoteReferenceInline] const& rhs) const noexcept = default; ---- == Return Value `true` if the objects are equal, `false` otherwise == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== Three‐way comparison operators == Synopses Declared in `<mrdocs/Metadata/DocComment/Inline/FootnoteReferenceInline.hpp>` Three‐way comparison operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr auto link:#mrdocs-doc-FootnoteReferenceInline-operator_3way-0d[operator<=>](link:#mrdocs-doc-FootnoteReferenceInline[FootnoteReferenceInline] const& rhs) const = default; ---- [.small]#link:#mrdocs-doc-FootnoteReferenceInline-operator_3way-0d[_» more..._]# Three‐way comparison operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr auto link:#mrdocs-doc-FootnoteReferenceInline-operator_3way-07[operator<=>](link:#mrdocs-doc-InlineCommonBase-0dc[InlineCommonBase<mrdocs::doc::InlineKind::FootnoteReference>] const& rhs) const = default; ---- [.small]#link:#mrdocs-doc-FootnoteReferenceInline-operator_3way-07[_» more..._]# Three‐way comparison operator == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/FootnoteReferenceInline.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr auto operator<=>(link:#mrdocs-doc-FootnoteReferenceInline[FootnoteReferenceInline] const& rhs) const = default; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== Three‐way comparison operator == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr auto operator<=>(link:#mrdocs-doc-InlineCommonBase-0dc[InlineCommonBase<mrdocs::doc::InlineKind::FootnoteReference>] const& rhs) const = default; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isCode() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isCopyDetails() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isEmph() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isFootnoteReference() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isHighlight() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isImage() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isLineBreak() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isLink() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isMath() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isReference() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isSoftBreak() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isStrikethrough() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isStrong() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isSubscript() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isSuperscript() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isText() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/FootnoteReferenceInline.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::string label; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static link:#mrdocs-doc-InlineKind[InlineKind] kind_id; ---- A manually specified section heading. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/HeadingBlock.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- struct HeadingBlock final : link:#mrdocs-doc-BlockCommonBase-0ed[BlockCommonBase<BlockKind::Heading>] , link:#mrdocs-doc-InlineContainer[InlineContainer] ---- == Base Classes [cols=2] |=== | Name | Description | `link:#mrdocs-doc-BlockCommonBase-0ed[BlockCommonBase<BlockKind::Heading>]` | Base class for providing variant discriminator functions. | `link:#mrdocs-doc-InlineContainer[InlineContainer]` | An internal node in the inline element tree |=== == Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-doc-InlineContainer-operator_assign-02[`operator=`] | Assign an InlineContainer with a single TextInline child. | link:#mrdocs-doc-InlineContainer-append-0c[`append`] | `append` overloads | link:#mrdocs-doc-InlineContainer-asInlineContainer-0b[`asInlineContainer`] | Helper function so that derived classes can get a reference to the base class. | link:#mrdocs-doc-InlineContainer-back-03[`back`] | Get the last inline child. | link:#mrdocs-doc-InlineContainer-begin[`begin`] | Begin iterator forwarding to children | link:#mrdocs-doc-InlineContainer-clear[`clear`] | Clear all inline children. | link:#mrdocs-doc-InlineContainer-emplace_back[`emplace_back`] | Append a child of the specified type. | link:#mrdocs-doc-InlineContainer-empty[`empty`] | Determine if there are no inline children. | link:#mrdocs-doc-InlineContainer-end[`end`] | End iterator forwarding to children | link:#mrdocs-doc-InlineContainer-erase[`erase`] | Erase from children | link:#mrdocs-doc-InlineContainer-front-03[`front`] | Get the first inline child. | link:#mrdocs-doc-InlineContainer-insert[`insert`] | Erase from children | link:#mrdocs-doc-InlineContainer-operator_plus_eq-06[`operator+=`] | Addition assignment operators | link:#mrdocs-doc-InlineContainer-size[`size`] | Get the number of inline children. | link:#mrdocs-doc-HeadingBlock-operator_eq-0c[`operator==`] | Compare two InlineContainers. | link:#mrdocs-doc-HeadingBlock-operator_3way-0e[`operator<=>`] | Compare two InlineContainers. |=== == Static Member Functions [cols=1] |=== | Name | link:#mrdocs-doc-HeadingBlock-isAdmonition[`isAdmonition`] | link:#mrdocs-doc-HeadingBlock-isBrief[`isBrief`] | link:#mrdocs-doc-HeadingBlock-isCode[`isCode`] | link:#mrdocs-doc-HeadingBlock-isDefinitionList[`isDefinitionList`] | link:#mrdocs-doc-HeadingBlock-isFootnoteDefinition[`isFootnoteDefinition`] | link:#mrdocs-doc-HeadingBlock-isHeading[`isHeading`] | link:#mrdocs-doc-HeadingBlock-isList[`isList`] | link:#mrdocs-doc-HeadingBlock-isMath[`isMath`] | link:#mrdocs-doc-HeadingBlock-isParagraph[`isParagraph`] | link:#mrdocs-doc-HeadingBlock-isParam[`isParam`] | link:#mrdocs-doc-HeadingBlock-isPostcondition[`isPostcondition`] | link:#mrdocs-doc-HeadingBlock-isPrecondition[`isPrecondition`] | link:#mrdocs-doc-HeadingBlock-isQuote[`isQuote`] | link:#mrdocs-doc-HeadingBlock-isReturns[`isReturns`] | link:#mrdocs-doc-HeadingBlock-isSee[`isSee`] | link:#mrdocs-doc-HeadingBlock-isTParam[`isTParam`] | link:#mrdocs-doc-HeadingBlock-isTable[`isTable`] | link:#mrdocs-doc-HeadingBlock-isThematicBreak[`isThematicBreak`] | link:#mrdocs-doc-HeadingBlock-isThrows[`isThrows`] |=== == Data Members [cols=1] |=== | Name | link:#mrdocs-doc-InlineContainer-children[`children`] | link:#mrdocs-doc-HeadingBlock-level[`level`] |=== == Static Data Members [cols=1] |=== | Name | link:#mrdocs-doc-HeadingBlock-kind_id[`kind_id`] |=== == Using Declarations [cols=1] |=== | Name | link:#mrdocs-doc-HeadingBlock-2constructor[`HeadingBlock`] |=== == Non-Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-doc-getAsPlainText-097[`getAsPlainText`] | Flatten an InlineContainer to plain text. | link:#mrdocs-doc-getAsPlainText-09f[`getAsPlainText`] | Flatten an InlineContainer to plain text. | link:#mrdocs-doc-isEmpty-06[`isEmpty`] | Determine if the inline is empty | link:#mrdocs-doc-ltrim-0b[`ltrim`] | Removes leading whitespace from the first text element in the given InlineContainer. | link:#mrdocs-doc-ltrim-0d[`ltrim`] | Removes leading whitespace from the block. | link:#mrdocs-doc-rtrim-0b[`rtrim`] | Removes trailing whitespace from the last text element in the given InlineContainer. | link:#mrdocs-doc-rtrim-0c[`rtrim`] | Removes trailing whitespace from the block. | link:#mrdocs-doc-trim-071[`trim`] | Removes leading and trailing whitespace from the block. | link:#mrdocs-doc-trim-08[`trim`] | Removes leading and trailing whitespace from the text elements in the given InlineContainer. |=== Compare two InlineContainers. == Synopses Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` Equality operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr bool link:#mrdocs-doc-HeadingBlock-operator_eq-03[operator==](link:#mrdocs-doc-HeadingBlock[HeadingBlock] const& rhs) const noexcept = default; ---- [.small]#link:#mrdocs-doc-HeadingBlock-operator_eq-03[_» more..._]# Compare two InlineContainers. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr bool link:#mrdocs-doc-InlineContainer-operator_eq[operator==](link:#mrdocs-doc-InlineContainer[InlineContainer] const& rhs) const = default; ---- [.small]#link:#mrdocs-doc-InlineContainer-operator_eq[_» more..._]# Equality operator == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/HeadingBlock.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr bool operator==(link:#mrdocs-doc-HeadingBlock[HeadingBlock] const& rhs) const noexcept = default; ---- == Return Value `true` if the objects are equal, `false` otherwise == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== Compare two InlineContainers. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr bool operator==(link:#mrdocs-doc-InlineContainer[InlineContainer] const& rhs) const = default; ---- == Return Value `true` if the objects are equal, `false` otherwise == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== Compare two InlineContainers. == Synopses Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` Three‐way comparison operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- auto link:#mrdocs-doc-HeadingBlock-operator_3way-09[operator<=>](link:#mrdocs-doc-HeadingBlock[HeadingBlock] const& rhs) const = default; ---- [.small]#link:#mrdocs-doc-HeadingBlock-operator_3way-09[_» more..._]# Three‐way comparison operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr auto link:#mrdocs-doc-HeadingBlock-operator_3way-0f[operator<=>](link:#mrdocs-doc-BlockCommonBase-0ed[BlockCommonBase<mrdocs::doc::BlockKind::Heading>] const& rhs) const = default; ---- [.small]#link:#mrdocs-doc-HeadingBlock-operator_3way-0f[_» more..._]# Compare two InlineContainers. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::strong_ordering link:#mrdocs-doc-InlineContainer-operator_3way[operator<=>](link:#mrdocs-doc-InlineContainer[InlineContainer] const& rhs) const; ---- [.small]#link:#mrdocs-doc-InlineContainer-operator_3way[_» more..._]# Three‐way comparison operator == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/HeadingBlock.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- auto operator<=>(link:#mrdocs-doc-HeadingBlock[HeadingBlock] const& rhs) const = default; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== Three‐way comparison operator == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr auto operator<=>(link:#mrdocs-doc-BlockCommonBase-0ed[BlockCommonBase<mrdocs::doc::BlockKind::Heading>] const& rhs) const = default; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== Compare two InlineContainers. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::strong_ordering operator<=>(link:#mrdocs-doc-InlineContainer[InlineContainer] const& rhs) const; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isAdmonition() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isBrief() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isCode() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isDefinitionList() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isFootnoteDefinition() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isHeading() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isList() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isMath() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isParagraph() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isParam() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isPostcondition() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isPrecondition() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isQuote() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isReturns() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isSee() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isTParam() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isTable() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isThematicBreak() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isThrows() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/HeadingBlock.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- unsigned int level = 1; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static link:#mrdocs-doc-BlockKind[BlockKind] kind_id; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/HeadingBlock.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- using InlineContainer::HeadingBlock; ---- == Introduced Symbols [cols=2] |=== | Name | Description | link:#mrdocs-doc-InlineContainer-2constructor-06[mrdocs::doc::InlineContainer::InlineContainer] | Construct an InlineContainer with a single TextInline child. | link:#mrdocs-doc-InlineContainer-2constructor-0b[mrdocs::doc::InlineContainer::InlineContainer] | Construct an InlineContainer with a single TextInline child. | link:#mrdocs-doc-InlineContainer-2constructor-0a8[mrdocs::doc::InlineContainer::InlineContainer] | Construct an InlineContainer with a single TextInline child. | link:#mrdocs-doc-InlineContainer-2constructor-09[mrdocs::doc::InlineContainer::InlineContainer] | Construct an InlineContainer with a single TextInline child. | link:#mrdocs-doc-InlineContainer-2constructor-07[mrdocs::doc::InlineContainer::InlineContainer] | Move constructor | link:#mrdocs-doc-InlineContainer-2constructor-0af[mrdocs::doc::InlineContainer::InlineContainer] | Copy constructor |=== A piece of highlighted text. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/HighlightInline.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- struct HighlightInline final : link:#mrdocs-doc-InlineCommonBase-0dc[InlineCommonBase<InlineKind::Highlight>] , link:#mrdocs-doc-InlineContainer[InlineContainer] ---- == Base Classes [cols=2] |=== | Name | Description | `link:#mrdocs-doc-InlineCommonBase-0dc[InlineCommonBase<InlineKind::Highlight>]` | Base class for providing variant discriminator functions. | `link:#mrdocs-doc-InlineContainer[InlineContainer]` | An internal node in the inline element tree |=== == Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-doc-InlineContainer-operator_assign-02[`operator=`] | Assign an InlineContainer with a single TextInline child. | link:#mrdocs-doc-InlineContainer-append-0c[`append`] | `append` overloads | link:#mrdocs-doc-InlineContainer-asInlineContainer-0b[`asInlineContainer`] | Helper function so that derived classes can get a reference to the base class. | link:#mrdocs-doc-InlineContainer-back-03[`back`] | Get the last inline child. | link:#mrdocs-doc-InlineContainer-begin[`begin`] | Begin iterator forwarding to children | link:#mrdocs-doc-InlineContainer-clear[`clear`] | Clear all inline children. | link:#mrdocs-doc-InlineContainer-emplace_back[`emplace_back`] | Append a child of the specified type. | link:#mrdocs-doc-InlineContainer-empty[`empty`] | Determine if there are no inline children. | link:#mrdocs-doc-InlineContainer-end[`end`] | End iterator forwarding to children | link:#mrdocs-doc-InlineContainer-erase[`erase`] | Erase from children | link:#mrdocs-doc-InlineContainer-front-03[`front`] | Get the first inline child. | link:#mrdocs-doc-InlineContainer-insert[`insert`] | Erase from children | link:#mrdocs-doc-InlineContainer-operator_plus_eq-06[`operator+=`] | Addition assignment operators | link:#mrdocs-doc-InlineContainer-size[`size`] | Get the number of inline children. | link:#mrdocs-doc-HighlightInline-operator_eq-07[`operator==`] | Compare two InlineContainers. | link:#mrdocs-doc-HighlightInline-operator_3way-04[`operator<=>`] | Compare two InlineContainers. |=== == Static Member Functions [cols=1] |=== | Name | link:#mrdocs-doc-HighlightInline-isCode[`isCode`] | link:#mrdocs-doc-HighlightInline-isCopyDetails[`isCopyDetails`] | link:#mrdocs-doc-HighlightInline-isEmph[`isEmph`] | link:#mrdocs-doc-HighlightInline-isFootnoteReference[`isFootnoteReference`] | link:#mrdocs-doc-HighlightInline-isHighlight[`isHighlight`] | link:#mrdocs-doc-HighlightInline-isImage[`isImage`] | link:#mrdocs-doc-HighlightInline-isLineBreak[`isLineBreak`] | link:#mrdocs-doc-HighlightInline-isLink[`isLink`] | link:#mrdocs-doc-HighlightInline-isMath[`isMath`] | link:#mrdocs-doc-HighlightInline-isReference[`isReference`] | link:#mrdocs-doc-HighlightInline-isSoftBreak[`isSoftBreak`] | link:#mrdocs-doc-HighlightInline-isStrikethrough[`isStrikethrough`] | link:#mrdocs-doc-HighlightInline-isStrong[`isStrong`] | link:#mrdocs-doc-HighlightInline-isSubscript[`isSubscript`] | link:#mrdocs-doc-HighlightInline-isSuperscript[`isSuperscript`] | link:#mrdocs-doc-HighlightInline-isText[`isText`] |=== == Data Members [cols=1] |=== | Name | link:#mrdocs-doc-InlineContainer-children[`children`] |=== == Static Data Members [cols=1] |=== | Name | link:#mrdocs-doc-HighlightInline-kind_id[`kind_id`] |=== == Non-Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-doc-getAsPlainText-097[`getAsPlainText`] | Flatten an InlineContainer to plain text. | link:#mrdocs-doc-getAsPlainText-09f[`getAsPlainText`] | Flatten an InlineContainer to plain text. | link:#mrdocs-doc-getAsPlainText-0ad[`getAsPlainText`] | Get the plain text representation of an inline element tree. | link:#mrdocs-doc-getAsPlainText-0ae[`getAsPlainText`] | Get the plain text representation of an inline element tree. | link:#mrdocs-doc-ltrim-0b[`ltrim`] | Removes leading whitespace from the first text element in the given InlineContainer. | link:#mrdocs-doc-rtrim-0b[`rtrim`] | Removes trailing whitespace from the last text element in the given InlineContainer. | link:#mrdocs-doc-trim-08[`trim`] | Removes leading and trailing whitespace from the text elements in the given InlineContainer. |=== Compare two InlineContainers. == Synopses Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` Equality operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr bool link:#mrdocs-doc-HighlightInline-operator_eq-05[operator==](link:#mrdocs-doc-HighlightInline[HighlightInline] const& rhs) const noexcept = default; ---- [.small]#link:#mrdocs-doc-HighlightInline-operator_eq-05[_» more..._]# Compare two InlineContainers. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr bool link:#mrdocs-doc-InlineContainer-operator_eq[operator==](link:#mrdocs-doc-InlineContainer[InlineContainer] const& rhs) const = default; ---- [.small]#link:#mrdocs-doc-InlineContainer-operator_eq[_» more..._]# Equality operator == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/HighlightInline.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr bool operator==(link:#mrdocs-doc-HighlightInline[HighlightInline] const& rhs) const noexcept = default; ---- == Return Value `true` if the objects are equal, `false` otherwise == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== Compare two InlineContainers. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr bool operator==(link:#mrdocs-doc-InlineContainer[InlineContainer] const& rhs) const = default; ---- == Return Value `true` if the objects are equal, `false` otherwise == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== Compare two InlineContainers. == Synopses Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` Three‐way comparison operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- auto link:#mrdocs-doc-HighlightInline-operator_3way-00[operator<=>](link:#mrdocs-doc-HighlightInline[HighlightInline] const& rhs) const = default; ---- [.small]#link:#mrdocs-doc-HighlightInline-operator_3way-00[_» more..._]# Three‐way comparison operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr auto link:#mrdocs-doc-HighlightInline-operator_3way-02[operator<=>](link:#mrdocs-doc-InlineCommonBase-0dc[InlineCommonBase<mrdocs::doc::InlineKind::Highlight>] const& rhs) const = default; ---- [.small]#link:#mrdocs-doc-HighlightInline-operator_3way-02[_» more..._]# Compare two InlineContainers. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::strong_ordering link:#mrdocs-doc-InlineContainer-operator_3way[operator<=>](link:#mrdocs-doc-InlineContainer[InlineContainer] const& rhs) const; ---- [.small]#link:#mrdocs-doc-InlineContainer-operator_3way[_» more..._]# Three‐way comparison operator == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/HighlightInline.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- auto operator<=>(link:#mrdocs-doc-HighlightInline[HighlightInline] const& rhs) const = default; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== Three‐way comparison operator == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr auto operator<=>(link:#mrdocs-doc-InlineCommonBase-0dc[InlineCommonBase<mrdocs::doc::InlineKind::Highlight>] const& rhs) const = default; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== Compare two InlineContainers. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::strong_ordering operator<=>(link:#mrdocs-doc-InlineContainer[InlineContainer] const& rhs) const; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isCode() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isCopyDetails() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isEmph() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isFootnoteReference() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isHighlight() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isImage() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isLineBreak() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isLink() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isMath() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isReference() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isSoftBreak() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isStrikethrough() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isStrong() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isSubscript() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isSuperscript() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isText() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static link:#mrdocs-doc-InlineKind[InlineKind] kind_id; ---- An image. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/ImageInline.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- struct ImageInline final : link:#mrdocs-doc-InlineCommonBase-0dc[InlineCommonBase<InlineKind::Image>] , link:#mrdocs-doc-InlineContainer[InlineContainer] ---- == Base Classes [cols=2] |=== | Name | Description | `link:#mrdocs-doc-InlineCommonBase-0dc[InlineCommonBase<InlineKind::Image>]` | Base class for providing variant discriminator functions. | `link:#mrdocs-doc-InlineContainer[InlineContainer]` | An internal node in the inline element tree |=== == Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-doc-InlineContainer-operator_assign-02[`operator=`] | Assign an InlineContainer with a single TextInline child. | link:#mrdocs-doc-InlineContainer-append-0c[`append`] | `append` overloads | link:#mrdocs-doc-InlineContainer-asInlineContainer-0b[`asInlineContainer`] | Helper function so that derived classes can get a reference to the base class. | link:#mrdocs-doc-InlineContainer-back-03[`back`] | Get the last inline child. | link:#mrdocs-doc-InlineContainer-begin[`begin`] | Begin iterator forwarding to children | link:#mrdocs-doc-InlineContainer-clear[`clear`] | Clear all inline children. | link:#mrdocs-doc-InlineContainer-emplace_back[`emplace_back`] | Append a child of the specified type. | link:#mrdocs-doc-InlineContainer-empty[`empty`] | Determine if there are no inline children. | link:#mrdocs-doc-InlineContainer-end[`end`] | End iterator forwarding to children | link:#mrdocs-doc-InlineContainer-erase[`erase`] | Erase from children | link:#mrdocs-doc-InlineContainer-front-03[`front`] | Get the first inline child. | link:#mrdocs-doc-InlineContainer-insert[`insert`] | Erase from children | link:#mrdocs-doc-InlineContainer-operator_plus_eq-06[`operator+=`] | Addition assignment operators | link:#mrdocs-doc-InlineContainer-size[`size`] | Get the number of inline children. | link:#mrdocs-doc-ImageInline-operator_eq-06[`operator==`] | Compare two InlineContainers. | link:#mrdocs-doc-ImageInline-operator_3way-0c[`operator<=>`] | Compare two InlineContainers. |=== == Static Member Functions [cols=1] |=== | Name | link:#mrdocs-doc-ImageInline-isCode[`isCode`] | link:#mrdocs-doc-ImageInline-isCopyDetails[`isCopyDetails`] | link:#mrdocs-doc-ImageInline-isEmph[`isEmph`] | link:#mrdocs-doc-ImageInline-isFootnoteReference[`isFootnoteReference`] | link:#mrdocs-doc-ImageInline-isHighlight[`isHighlight`] | link:#mrdocs-doc-ImageInline-isImage[`isImage`] | link:#mrdocs-doc-ImageInline-isLineBreak[`isLineBreak`] | link:#mrdocs-doc-ImageInline-isLink[`isLink`] | link:#mrdocs-doc-ImageInline-isMath[`isMath`] | link:#mrdocs-doc-ImageInline-isReference[`isReference`] | link:#mrdocs-doc-ImageInline-isSoftBreak[`isSoftBreak`] | link:#mrdocs-doc-ImageInline-isStrikethrough[`isStrikethrough`] | link:#mrdocs-doc-ImageInline-isStrong[`isStrong`] | link:#mrdocs-doc-ImageInline-isSubscript[`isSubscript`] | link:#mrdocs-doc-ImageInline-isSuperscript[`isSuperscript`] | link:#mrdocs-doc-ImageInline-isText[`isText`] |=== == Data Members [cols=1] |=== | Name | link:#mrdocs-doc-ImageInline-alt[`alt`] | link:#mrdocs-doc-InlineContainer-children[`children`] | link:#mrdocs-doc-ImageInline-src[`src`] |=== == Static Data Members [cols=1] |=== | Name | link:#mrdocs-doc-ImageInline-kind_id[`kind_id`] |=== == Non-Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-doc-getAsPlainText-097[`getAsPlainText`] | Flatten an InlineContainer to plain text. | link:#mrdocs-doc-getAsPlainText-09f[`getAsPlainText`] | Flatten an InlineContainer to plain text. | link:#mrdocs-doc-getAsPlainText-0ad[`getAsPlainText`] | Get the plain text representation of an inline element tree. | link:#mrdocs-doc-getAsPlainText-0ae[`getAsPlainText`] | Get the plain text representation of an inline element tree. | link:#mrdocs-doc-ltrim-0b[`ltrim`] | Removes leading whitespace from the first text element in the given InlineContainer. | link:#mrdocs-doc-rtrim-0b[`rtrim`] | Removes trailing whitespace from the last text element in the given InlineContainer. | link:#mrdocs-doc-trim-08[`trim`] | Removes leading and trailing whitespace from the text elements in the given InlineContainer. |=== Compare two InlineContainers. == Synopses Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` Equality operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr bool link:#mrdocs-doc-ImageInline-operator_eq-0c[operator==](link:#mrdocs-doc-ImageInline[ImageInline] const& rhs) const noexcept = default; ---- [.small]#link:#mrdocs-doc-ImageInline-operator_eq-0c[_» more..._]# Compare two InlineContainers. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr bool link:#mrdocs-doc-InlineContainer-operator_eq[operator==](link:#mrdocs-doc-InlineContainer[InlineContainer] const& rhs) const = default; ---- [.small]#link:#mrdocs-doc-InlineContainer-operator_eq[_» more..._]# Equality operator == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/ImageInline.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr bool operator==(link:#mrdocs-doc-ImageInline[ImageInline] const& rhs) const noexcept = default; ---- == Return Value `true` if the objects are equal, `false` otherwise == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== Compare two InlineContainers. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr bool operator==(link:#mrdocs-doc-InlineContainer[InlineContainer] const& rhs) const = default; ---- == Return Value `true` if the objects are equal, `false` otherwise == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== Compare two InlineContainers. == Synopses Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` Three‐way comparison operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- auto link:#mrdocs-doc-ImageInline-operator_3way-00[operator<=>](link:#mrdocs-doc-ImageInline[ImageInline] const& rhs) const = default; ---- [.small]#link:#mrdocs-doc-ImageInline-operator_3way-00[_» more..._]# Three‐way comparison operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr auto link:#mrdocs-doc-ImageInline-operator_3way-0e[operator<=>](link:#mrdocs-doc-InlineCommonBase-0dc[InlineCommonBase<mrdocs::doc::InlineKind::Image>] const& rhs) const = default; ---- [.small]#link:#mrdocs-doc-ImageInline-operator_3way-0e[_» more..._]# Compare two InlineContainers. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::strong_ordering link:#mrdocs-doc-InlineContainer-operator_3way[operator<=>](link:#mrdocs-doc-InlineContainer[InlineContainer] const& rhs) const; ---- [.small]#link:#mrdocs-doc-InlineContainer-operator_3way[_» more..._]# Three‐way comparison operator == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/ImageInline.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- auto operator<=>(link:#mrdocs-doc-ImageInline[ImageInline] const& rhs) const = default; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== Three‐way comparison operator == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr auto operator<=>(link:#mrdocs-doc-InlineCommonBase-0dc[InlineCommonBase<mrdocs::doc::InlineKind::Image>] const& rhs) const = default; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== Compare two InlineContainers. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::strong_ordering operator<=>(link:#mrdocs-doc-InlineContainer[InlineContainer] const& rhs) const; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isCode() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isCopyDetails() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isEmph() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isFootnoteReference() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isHighlight() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isImage() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isLineBreak() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isLink() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isMath() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isReference() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isSoftBreak() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isStrikethrough() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isStrong() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isSubscript() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isSuperscript() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isText() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/ImageInline.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::string alt; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/ImageInline.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::string src; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static link:#mrdocs-doc-InlineKind[InlineKind] kind_id; ---- A Node containing a string of text. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- struct Inline; ---- == Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-doc-Inline-2destructor[`~Inline`] [.small]#[destructor]# [.small]#[virtual]# | Destructor | link:#mrdocs-doc-Inline-asInline-0b[`asInline`] | | link:#mrdocs-doc-Inline-operator_eq[`operator==`] | Equality operator | link:#mrdocs-doc-Inline-operator_3way[`operator<=>`] | Three‐way comparison operator |=== == Data Members [cols=1] |=== | Name | link:#mrdocs-doc-Inline-Kind[`Kind`] |=== == Protected Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-doc-Inline-2constructor-0b[`Inline`] [.small]#[constructor]# | Constructors |=== == Non-Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-doc-getAsPlainText-0ad[`getAsPlainText`] | Get the plain text representation of an inline element tree. | link:#mrdocs-doc-getAsPlainText-0ae[`getAsPlainText`] | Get the plain text representation of an inline element tree. |=== == Derived Classes [cols=2] |=== | Name | Description | link:#mrdocs-doc-InlineCommonBase-0dc[`InlineCommonBase`] | Base class for providing variant discriminator functions. |=== == Description There will be no newlines in the text. Otherwise, this would be represented as multiple text nodes within a Paragraph node. Destructor == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr virtual ~Inline() = default; ---- == Synopses Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-doc-Inline[Inline] const& link:#mrdocs-doc-Inline-asInline-09[asInline]() const noexcept; ---- [.small]#link:#mrdocs-doc-Inline-asInline-09[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-doc-Inline[Inline]& link:#mrdocs-doc-Inline-asInline-05[asInline]() noexcept; ---- [.small]#link:#mrdocs-doc-Inline-asInline-05[_» more..._]# == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-doc-Inline[Inline] const& asInline() const noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-doc-Inline[Inline]& asInline() noexcept; ---- Equality operator == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr bool operator==(link:#mrdocs-doc-Inline[Inline] const& rhs) const noexcept = default; ---- == Return Value `true` if the objects are equal, `false` otherwise == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== Three‐way comparison operator == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr auto operator<=>(link:#mrdocs-doc-Inline[Inline] const& rhs) const = default; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-doc-InlineKind[InlineKind] Kind = InlineKind::Text; ---- Constructors == Synopses Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` Default constructor [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-doc-Inline-2constructor-08[Inline]() noexcept = default; ---- [.small]#link:#mrdocs-doc-Inline-2constructor-08[_» more..._]# Construct from `InlineKind` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-doc-Inline-2constructor-09[Inline](link:#mrdocs-doc-InlineKind[InlineKind] kind_); ---- [.small]#link:#mrdocs-doc-Inline-2constructor-09[_» more..._]# Default constructor == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr Inline() noexcept = default; ---- Construct from `InlineKind` == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- Inline(link:#mrdocs-doc-InlineKind[InlineKind] kind_); ---- == Parameters [cols=2] |=== | Name | Description | *kind_* | The object to construct from |=== Base class for providing variant discriminator functions. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<link:#mrdocs-doc-InlineKind[InlineKind] K> struct InlineCommonBase : link:#mrdocs-doc-Inline[Inline] ---- == Base Classes [cols=2] |=== | Name | Description | `link:#mrdocs-doc-Inline[Inline]` | A Node containing a string of text. |=== == Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-doc-InlineCommonBase-0dc-2destructor[`~InlineCommonBase`] [.small]#[destructor]# [.small]#[virtual]# | Destructor | link:#mrdocs-doc-Inline-asInline-0b[`asInline`] | | link:#mrdocs-doc-Inline-operator_eq[`operator==`] | Equality operator | link:#mrdocs-doc-InlineCommonBase-0dc-operator_3way-0f[`operator<=>`] | Three‐way comparison operators |=== == Data Members [cols=1] |=== | Name | link:#mrdocs-doc-Inline-Kind[`Kind`] |=== == Static Data Members [cols=2] |=== | Name | Description | link:#mrdocs-doc-InlineCommonBase-0dc-kind_id[`kind_id`] | The variant discriminator constant of the most‐derived class. |=== == Protected Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-doc-InlineCommonBase-0dc-2constructor[`InlineCommonBase`] [.small]#[constructor]# | Default constructor |=== == Non-Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-doc-getAsPlainText-0ad[`getAsPlainText`] | Get the plain text representation of an inline element tree. | link:#mrdocs-doc-getAsPlainText-0ae[`getAsPlainText`] | Get the plain text representation of an inline element tree. |=== == Derived Classes [cols=2] |=== | Name | Description | link:#mrdocs-doc-CodeInline[`CodeInline`] | A piece of styled text. | link:#mrdocs-doc-CopyDetailsInline[`CopyDetailsInline`] | Documentation copied from another symbol. | link:#mrdocs-doc-EmphInline[`EmphInline`] | A piece of styled text. | link:#mrdocs-doc-FootnoteReferenceInline[`FootnoteReferenceInline`] | A reference to a symbol. | link:#mrdocs-doc-HighlightInline[`HighlightInline`] | A piece of highlighted text. | link:#mrdocs-doc-ImageInline[`ImageInline`] | An image. | link:#mrdocs-doc-LineBreakInline[`LineBreakInline`] | A hard line break that renders as "" | link:#mrdocs-doc-LinkInline[`LinkInline`] | A hyperlink. | link:#mrdocs-doc-MathInline[`MathInline`] | An inline LaTeX math expression | link:#mrdocs-doc-ReferenceInline[`ReferenceInline`] | A reference to a symbol. | link:#mrdocs-doc-SoftBreakInline[`SoftBreakInline`] | A line break that may render as space | link:#mrdocs-doc-StrikethroughInline[`StrikethroughInline`] | A piece of styled text. | link:#mrdocs-doc-StrongInline[`StrongInline`] | A piece of styled text. | link:#mrdocs-doc-SubscriptInline[`SubscriptInline`] | A piece of styled text. | link:#mrdocs-doc-SuperscriptInline[`SuperscriptInline`] | A piece of styled text. | link:#mrdocs-doc-TextInline[`TextInline`] | A Node containing a string of text. |=== == Description This offers functions that return a boolean at compile‐time, indicating if the most‐derived class is a certain type. Destructor == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- virtual ~InlineCommonBase() override = default; ---- Three‐way comparison operators == Synopses Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` Three‐way comparison operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- auto link:#mrdocs-doc-InlineCommonBase-0dc-operator_3way-07[operator<=>](link:#mrdocs-doc-InlineCommonBase-0dc[InlineCommonBase] const& rhs) const = default; ---- [.small]#link:#mrdocs-doc-InlineCommonBase-0dc-operator_3way-07[_» more..._]# Three‐way comparison operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr auto link:#mrdocs-doc-Inline-operator_3way[operator<=>](link:#mrdocs-doc-Inline[Inline] const& rhs) const = default; ---- [.small]#link:#mrdocs-doc-Inline-operator_3way[_» more..._]# Three‐way comparison operator == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- auto operator<=>(link:#mrdocs-doc-InlineCommonBase-0dc[InlineCommonBase] const& rhs) const = default; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== Three‐way comparison operator == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr auto operator<=>(link:#mrdocs-doc-Inline[Inline] const& rhs) const = default; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== The variant discriminator constant of the most‐derived class. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- inline constexpr static link:#mrdocs-doc-InlineKind[InlineKind] kind_id = K; ---- == Description It only distinguishes from `Inline::kind` in that it is a constant. Default constructor == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr explicit InlineCommonBase(); ---- An internal node in the inline element tree == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- struct InlineContainer; ---- == Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-doc-InlineContainer-2constructor-04[`InlineContainer`] [.small]#[constructor]# | Construct an InlineContainer with a single TextInline child. | link:#mrdocs-doc-InlineContainer-2destructor[`~InlineContainer`] [.small]#[destructor]# [.small]#[virtual]# | Destructor | link:#mrdocs-doc-InlineContainer-operator_assign-02[`operator=`] | Assign an InlineContainer with a single TextInline child. | link:#mrdocs-doc-InlineContainer-append-0c[`append`] | `append` overloads | link:#mrdocs-doc-InlineContainer-asInlineContainer-0b[`asInlineContainer`] | Helper function so that derived classes can get a reference to the base class. | link:#mrdocs-doc-InlineContainer-back-03[`back`] | Get the last inline child. | link:#mrdocs-doc-InlineContainer-begin[`begin`] | Begin iterator forwarding to children | link:#mrdocs-doc-InlineContainer-clear[`clear`] | Clear all inline children. | link:#mrdocs-doc-InlineContainer-emplace_back[`emplace_back`] | Append a child of the specified type. | link:#mrdocs-doc-InlineContainer-empty[`empty`] | Determine if there are no inline children. | link:#mrdocs-doc-InlineContainer-end[`end`] | End iterator forwarding to children | link:#mrdocs-doc-InlineContainer-erase[`erase`] | Erase from children | link:#mrdocs-doc-InlineContainer-front-03[`front`] | Get the first inline child. | link:#mrdocs-doc-InlineContainer-insert[`insert`] | Erase from children | link:#mrdocs-doc-InlineContainer-operator_plus_eq-06[`operator+=`] | Addition assignment operators | link:#mrdocs-doc-InlineContainer-size[`size`] | Get the number of inline children. | link:#mrdocs-doc-InlineContainer-operator_eq[`operator==`] | Compare two InlineContainers. | link:#mrdocs-doc-InlineContainer-operator_3way[`operator<=>`] | Compare two InlineContainers. |=== == Data Members [cols=1] |=== | Name | link:#mrdocs-doc-InlineContainer-children[`children`] |=== == Non-Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-doc-getAsPlainText-097[`getAsPlainText`] | Flatten an InlineContainer to plain text. | link:#mrdocs-doc-getAsPlainText-09f[`getAsPlainText`] | Flatten an InlineContainer to plain text. | link:#mrdocs-doc-ltrim-0b[`ltrim`] | Removes leading whitespace from the first text element in the given InlineContainer. | link:#mrdocs-doc-rtrim-0b[`rtrim`] | Removes trailing whitespace from the last text element in the given InlineContainer. | link:#mrdocs-doc-trim-08[`trim`] | Removes leading and trailing whitespace from the text elements in the given InlineContainer. |=== == Derived Classes [cols=2] |=== | Name | Description | link:#mrdocs-doc-BriefBlock[`BriefBlock`] | The brief description | link:#mrdocs-doc-CodeInline[`CodeInline`] | A piece of styled text. | link:#mrdocs-doc-EmphInline[`EmphInline`] | A piece of styled text. | link:#mrdocs-doc-HeadingBlock[`HeadingBlock`] | A manually specified section heading. | link:#mrdocs-doc-HighlightInline[`HighlightInline`] | A piece of highlighted text. | link:#mrdocs-doc-ImageInline[`ImageInline`] | An image. | link:#mrdocs-doc-LinkInline[`LinkInline`] | A hyperlink. | link:#mrdocs-doc-ParagraphBlock[`ParagraphBlock`] | A sequence of text nodes. | link:#mrdocs-doc-ParamBlock[`ParamBlock`] | Documentation for a function parameter | link:#mrdocs-doc-PostconditionBlock[`PostconditionBlock`] | | link:#mrdocs-doc-PreconditionBlock[`PreconditionBlock`] | | link:#mrdocs-doc-ReturnsBlock[`ReturnsBlock`] | Documentation for a function return type | link:#mrdocs-doc-SeeBlock[`SeeBlock`] | A | link:#mrdocs-doc-StrikethroughInline[`StrikethroughInline`] | A piece of styled text. | link:#mrdocs-doc-StrongInline[`StrongInline`] | A piece of styled text. | link:#mrdocs-doc-SubscriptInline[`SubscriptInline`] | A piece of styled text. | link:#mrdocs-doc-SuperscriptInline[`SuperscriptInline`] | A piece of styled text. | link:#mrdocs-doc-TParamBlock[`TParamBlock`] | Documentation for a template parameter | link:#mrdocs-doc-TableCell[`TableCell`] | A cell in a table | link:#mrdocs-doc-ThrowsBlock[`ThrowsBlock`] | Documentation for a function parameter |=== Construct an InlineContainer with a single TextInline child. == Synopses Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` Default constructor [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-doc-InlineContainer-2constructor-03[InlineContainer]() = default; ---- [.small]#link:#mrdocs-doc-InlineContainer-2constructor-03[_» more..._]# Copy constructor [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-doc-InlineContainer-2constructor-0af[InlineContainer](link:#mrdocs-doc-InlineContainer[InlineContainer] const& other) = default; ---- [.small]#link:#mrdocs-doc-InlineContainer-2constructor-0af[_» more..._]# Move constructor [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-doc-InlineContainer-2constructor-07[InlineContainer](link:#mrdocs-doc-InlineContainer[InlineContainer]&& other) noexcept = default; ---- [.small]#link:#mrdocs-doc-InlineContainer-2constructor-07[_» more..._]# Construct an InlineContainer with a single TextInline child. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- explicit link:#mrdocs-doc-InlineContainer-2constructor-09[InlineContainer](std::string_view text); ---- [.small]#link:#mrdocs-doc-InlineContainer-2constructor-09[_» more..._]# Construct an InlineContainer with a single TextInline child. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- explicit link:#mrdocs-doc-InlineContainer-2constructor-0b[InlineContainer](std::string const& text); ---- [.small]#link:#mrdocs-doc-InlineContainer-2constructor-0b[_» more..._]# Construct an InlineContainer with a single TextInline child. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- explicit link:#mrdocs-doc-InlineContainer-2constructor-06[InlineContainer](std::string&& text); ---- [.small]#link:#mrdocs-doc-InlineContainer-2constructor-06[_» more..._]# Construct an InlineContainer with a single TextInline child. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- explicit link:#mrdocs-doc-InlineContainer-2constructor-0a8[InlineContainer](char const* text); ---- [.small]#link:#mrdocs-doc-InlineContainer-2constructor-0a8[_» more..._]# Default constructor == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr InlineContainer() = default; ---- Copy constructor == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr InlineContainer(link:#mrdocs-doc-InlineContainer[InlineContainer] const& other) = default; ---- == Parameters [cols=2] |=== | Name | Description | *other* | The object to copy construct from |=== Move constructor == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr InlineContainer(link:#mrdocs-doc-InlineContainer[InlineContainer]&& other) noexcept = default; ---- == Parameters [cols=2] |=== | Name | Description | *other* | The object to move construct from |=== Construct an InlineContainer with a single TextInline child. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- explicit InlineContainer(std::string_view text); ---- == Parameters [cols=2] |=== | Name | Description | *text* | The object to construct from |=== Construct an InlineContainer with a single TextInline child. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- explicit InlineContainer(std::string const& text); ---- == Parameters [cols=2] |=== | Name | Description | *text* | The object to copy construct from |=== Construct an InlineContainer with a single TextInline child. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- explicit InlineContainer(std::string&& text); ---- == Parameters [cols=2] |=== | Name | Description | *text* | The object to move construct from |=== Construct an InlineContainer with a single TextInline child. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- explicit InlineContainer(char const* text); ---- == Parameters [cols=2] |=== | Name | Description | *text* | The value to construct from |=== Destructor == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr virtual ~InlineContainer() = default; ---- Assign an InlineContainer with a single TextInline child. == Synopses Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` Copy assignment operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-doc-InlineContainer[InlineContainer]& link:#mrdocs-doc-InlineContainer-operator_assign-05[operator=](link:#mrdocs-doc-InlineContainer[InlineContainer] const& other) = default; ---- [.small]#link:#mrdocs-doc-InlineContainer-operator_assign-05[_» more..._]# Move assignment operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-doc-InlineContainer[InlineContainer]& link:#mrdocs-doc-InlineContainer-operator_assign-0b[operator=](link:#mrdocs-doc-InlineContainer[InlineContainer]&& other) noexcept = default; ---- [.small]#link:#mrdocs-doc-InlineContainer-operator_assign-0b[_» more..._]# Assign an InlineContainer with a single TextInline child. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-doc-InlineContainer[InlineContainer]& link:#mrdocs-doc-InlineContainer-operator_assign-09[operator=](std::string_view text); ---- [.small]#link:#mrdocs-doc-InlineContainer-operator_assign-09[_» more..._]# Copy assignment operator == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-doc-InlineContainer[InlineContainer]& operator=(link:#mrdocs-doc-InlineContainer[InlineContainer] const& other) = default; ---- == Return Value Reference to the current object == Parameters [cols=2] |=== | Name | Description | *other* | The object to copy assign from |=== Move assignment operator == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-doc-InlineContainer[InlineContainer]& operator=(link:#mrdocs-doc-InlineContainer[InlineContainer]&& other) noexcept = default; ---- == Return Value Reference to the current object == Parameters [cols=2] |=== | Name | Description | *other* | The object to move assign from |=== Assign an InlineContainer with a single TextInline child. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-doc-InlineContainer[InlineContainer]& operator=(std::string_view text); ---- == Return Value Reference to the current object == Parameters [cols=2] |=== | Name | Description | *text* | The object to assign from |=== `append` overloads == Synopses Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` Append a TextInline child. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-doc-InlineContainer[InlineContainer]& link:#mrdocs-doc-InlineContainer-append-07[append](std::string_view text); ---- [.small]#link:#mrdocs-doc-InlineContainer-append-07[_» more..._]# Append a child of the specified type. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< std::derived_from<Inline> InlineTy, class... Args> link:#mrdocs-doc-InlineContainer[InlineContainer]& link:#mrdocs-doc-InlineContainer-append-03[append](Args...&&... args); ---- [.small]#link:#mrdocs-doc-InlineContainer-append-03[_» more..._]# Append a TextInline child. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-doc-InlineContainer[InlineContainer]& append(std::string_view text); ---- == Return Value An internal node in the inline element tree Append a child of the specified type. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< std::derived_from<Inline> InlineTy, class... Args> link:#mrdocs-doc-InlineContainer[InlineContainer]& append(Args...&&... args); ---- == Return Value An internal node in the inline element tree Helper function so that derived classes can get a reference to the base class. == Synopses Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` Helper function so that derived classes can get a reference to the base class. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-doc-InlineContainer[InlineContainer]& link:#mrdocs-doc-InlineContainer-asInlineContainer-085[asInlineContainer](); ---- [.small]#link:#mrdocs-doc-InlineContainer-asInlineContainer-085[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-doc-InlineContainer[InlineContainer] const& link:#mrdocs-doc-InlineContainer-asInlineContainer-08a[asInlineContainer]() const; ---- [.small]#link:#mrdocs-doc-InlineContainer-asInlineContainer-08a[_» more..._]# Helper function so that derived classes can get a reference to the base class. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-doc-InlineContainer[InlineContainer]& asInlineContainer(); ---- == Return Value An internal node in the inline element tree == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-doc-InlineContainer[InlineContainer] const& asInlineContainer() const; ---- == Return Value An internal node in the inline element tree Get the last inline child. == Synopses Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` Get the last inline child. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-Polymorphic[Polymorphic<Inline>] const& link:#mrdocs-doc-InlineContainer-back-06[back]() const; ---- [.small]#link:#mrdocs-doc-InlineContainer-back-06[_» more..._]# Get the last inline child. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-Polymorphic[Polymorphic<Inline>]& link:#mrdocs-doc-InlineContainer-back-09[back](); ---- [.small]#link:#mrdocs-doc-InlineContainer-back-09[_» more..._]# Get the last inline child. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-Polymorphic[Polymorphic<Inline>] const& back() const; ---- == Return Value the last inline child. Get the last inline child. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-Polymorphic[Polymorphic<Inline>]& back(); ---- == Return Value the last inline child. Begin iterator forwarding to children == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- decltype(auto) begin(this auto&& self) noexcept; ---- Clear all inline children. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void clear(); ---- Append a child of the specified type. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< std::derived_from<Inline> InlineTy, class... Args> link:#mrdocs-doc-InlineContainer[InlineContainer]& emplace_back(Args...&&... args); ---- == Return Value An internal node in the inline element tree Determine if there are no inline children. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool empty() const noexcept; ---- == Return Value if there are no inline children. End iterator forwarding to children == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- decltype(auto) end(this auto&& self) noexcept; ---- Erase from children == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- decltype(auto) erase(this auto&& self, auto...&&... args); ---- Get the first inline child. == Synopses Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` Get the first inline child. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-Polymorphic[Polymorphic<Inline>] const& link:#mrdocs-doc-InlineContainer-front-09[front]() const; ---- [.small]#link:#mrdocs-doc-InlineContainer-front-09[_» more..._]# Get the first inline child. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-Polymorphic[Polymorphic<Inline>]& link:#mrdocs-doc-InlineContainer-front-0e[front](); ---- [.small]#link:#mrdocs-doc-InlineContainer-front-0e[_» more..._]# Get the first inline child. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-Polymorphic[Polymorphic<Inline>] const& front() const; ---- == Return Value the first inline child. Get the first inline child. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-Polymorphic[Polymorphic<Inline>]& front(); ---- == Return Value the first inline child. Erase from children == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- decltype(auto) insert(this auto&& self, auto...&&... args); ---- Addition assignment operators == Synopses Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` Append a TextInline child. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-doc-InlineContainer[InlineContainer]& link:#mrdocs-doc-InlineContainer-operator_plus_eq-0e[operator+=](std::string_view text); ---- [.small]#link:#mrdocs-doc-InlineContainer-operator_plus_eq-0e[_» more..._]# Append an inline child. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<std::derived_from<Inline> InlineTy> link:#mrdocs-doc-InlineContainer[InlineContainer]& link:#mrdocs-doc-InlineContainer-operator_plus_eq-07[operator+=](InlineTy&& inlineChild); ---- [.small]#link:#mrdocs-doc-InlineContainer-operator_plus_eq-07[_» more..._]# Append a TextInline child. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-doc-InlineContainer[InlineContainer]& operator+=(std::string_view text); ---- == Return Value Reference to the current object == Parameters [cols=2] |=== | Name | Description | *text* | The right operand |=== Append an inline child. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<std::derived_from<Inline> InlineTy> link:#mrdocs-doc-InlineContainer[InlineContainer]& operator+=(InlineTy&& inlineChild); ---- == Return Value Reference to the current object == Parameters [cols=2] |=== | Name | Description | *inlineChild* | The right operand |=== Get the number of inline children. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::size_t size() const noexcept; ---- == Return Value the number of inline children. Compare two InlineContainers. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr bool operator==(link:#mrdocs-doc-InlineContainer[InlineContainer] const& rhs) const = default; ---- == Return Value `true` if the objects are equal, `false` otherwise == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== Compare two InlineContainers. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::strong_ordering operator<=>(link:#mrdocs-doc-InlineContainer[InlineContainer] const& rhs) const; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::vector<Polymorphic<Inline>> children; ---- A leaf node that stores a string of text. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- struct InlineTextLeaf; ---- == Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-doc-InlineTextLeaf-2constructor-0c[`InlineTextLeaf`] [.small]#[constructor]# | Constructors | link:#mrdocs-doc-InlineTextLeaf-operator_eq[`operator==`] | Equality operator | link:#mrdocs-doc-InlineTextLeaf-operator_3way[`operator<=>`] | Three‐way comparison operator |=== == Data Members [cols=1] |=== | Name | link:#mrdocs-doc-InlineTextLeaf-literal[`literal`] |=== Constructors == Synopses Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` Construct from `string_view` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- explicit link:#mrdocs-doc-InlineTextLeaf-2constructor-0f[InlineTextLeaf](std::string_view literal_); ---- [.small]#link:#mrdocs-doc-InlineTextLeaf-2constructor-0f[_» more..._]# Construct from `string` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- explicit link:#mrdocs-doc-InlineTextLeaf-2constructor-00[InlineTextLeaf](std::string const& literal_); ---- [.small]#link:#mrdocs-doc-InlineTextLeaf-2constructor-00[_» more..._]# Construct from `string` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- explicit link:#mrdocs-doc-InlineTextLeaf-2constructor-08[InlineTextLeaf](std::string&& literal_) noexcept; ---- [.small]#link:#mrdocs-doc-InlineTextLeaf-2constructor-08[_» more..._]# Construct from `string_view` == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- explicit InlineTextLeaf(std::string_view literal_); ---- == Parameters [cols=2] |=== | Name | Description | *literal_* | The object to construct from |=== Construct from `string` == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- explicit InlineTextLeaf(std::string const& literal_); ---- == Parameters [cols=2] |=== | Name | Description | *literal_* | The object to copy construct from |=== Construct from `string` == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- explicit InlineTextLeaf(std::string&& literal_) noexcept; ---- == Parameters [cols=2] |=== | Name | Description | *literal_* | The object to move construct from |=== Equality operator == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr bool operator==(link:#mrdocs-doc-InlineTextLeaf[InlineTextLeaf] const& rhs) const noexcept = default; ---- == Return Value `true` if the objects are equal, `false` otherwise == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== Three‐way comparison operator == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr auto operator<=>(link:#mrdocs-doc-InlineTextLeaf[InlineTextLeaf] const& rhs) const = default; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::string literal; ---- A hard line break that renders as "" == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/LineBreakInline.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- struct LineBreakInline : link:#mrdocs-doc-InlineCommonBase-0dc[InlineCommonBase<InlineKind::LineBreak>] ---- == Base Classes [cols=2] |=== | Name | Description | `link:#mrdocs-doc-InlineCommonBase-0dc[InlineCommonBase<InlineKind::LineBreak>]` | Base class for providing variant discriminator functions. |=== == Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-doc-LineBreakInline-2constructor[`LineBreakInline`] [.small]#[constructor]# | Default constructor | link:#mrdocs-doc-LineBreakInline-2destructor[`~LineBreakInline`] [.small]#[destructor]# [.small]#[virtual]# | Destructor | link:#mrdocs-doc-LineBreakInline-operator_eq[`operator==`] | Equality operator | link:#mrdocs-doc-LineBreakInline-operator_3way-05[`operator<=>`] | Three‐way comparison operators |=== == Static Member Functions [cols=1] |=== | Name | link:#mrdocs-doc-LineBreakInline-isCode[`isCode`] | link:#mrdocs-doc-LineBreakInline-isCopyDetails[`isCopyDetails`] | link:#mrdocs-doc-LineBreakInline-isEmph[`isEmph`] | link:#mrdocs-doc-LineBreakInline-isFootnoteReference[`isFootnoteReference`] | link:#mrdocs-doc-LineBreakInline-isHighlight[`isHighlight`] | link:#mrdocs-doc-LineBreakInline-isImage[`isImage`] | link:#mrdocs-doc-LineBreakInline-isLineBreak[`isLineBreak`] | link:#mrdocs-doc-LineBreakInline-isLink[`isLink`] | link:#mrdocs-doc-LineBreakInline-isMath[`isMath`] | link:#mrdocs-doc-LineBreakInline-isReference[`isReference`] | link:#mrdocs-doc-LineBreakInline-isSoftBreak[`isSoftBreak`] | link:#mrdocs-doc-LineBreakInline-isStrikethrough[`isStrikethrough`] | link:#mrdocs-doc-LineBreakInline-isStrong[`isStrong`] | link:#mrdocs-doc-LineBreakInline-isSubscript[`isSubscript`] | link:#mrdocs-doc-LineBreakInline-isSuperscript[`isSuperscript`] | link:#mrdocs-doc-LineBreakInline-isText[`isText`] |=== == Static Data Members [cols=1] |=== | Name | link:#mrdocs-doc-LineBreakInline-kind_id[`kind_id`] |=== == Non-Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-doc-getAsPlainText-0ad[`getAsPlainText`] | Get the plain text representation of an inline element tree. | link:#mrdocs-doc-getAsPlainText-0ae[`getAsPlainText`] | Get the plain text representation of an inline element tree. |=== Default constructor == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/LineBreakInline.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr LineBreakInline() noexcept = default; ---- Destructor == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/LineBreakInline.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr virtual ~LineBreakInline() override = default; ---- Equality operator == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/LineBreakInline.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr bool operator==(link:#mrdocs-doc-LineBreakInline[LineBreakInline] const& rhs) const noexcept = default; ---- == Return Value `true` if the objects are equal, `false` otherwise == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== Three‐way comparison operators == Synopses Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` Three‐way comparison operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr auto link:#mrdocs-doc-LineBreakInline-operator_3way-09[operator<=>](link:#mrdocs-doc-LineBreakInline[LineBreakInline] const& rhs) const = default; ---- [.small]#link:#mrdocs-doc-LineBreakInline-operator_3way-09[_» more..._]# Three‐way comparison operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr auto link:#mrdocs-doc-LineBreakInline-operator_3way-04[operator<=>](link:#mrdocs-doc-InlineCommonBase-0dc[InlineCommonBase<mrdocs::doc::InlineKind::LineBreak>] const& rhs) const = default; ---- [.small]#link:#mrdocs-doc-LineBreakInline-operator_3way-04[_» more..._]# Three‐way comparison operator == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/LineBreakInline.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr auto operator<=>(link:#mrdocs-doc-LineBreakInline[LineBreakInline] const& rhs) const = default; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== Three‐way comparison operator == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr auto operator<=>(link:#mrdocs-doc-InlineCommonBase-0dc[InlineCommonBase<mrdocs::doc::InlineKind::LineBreak>] const& rhs) const = default; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isCode() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isCopyDetails() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isEmph() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isFootnoteReference() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isHighlight() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isImage() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isLineBreak() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isLink() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isMath() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isReference() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isSoftBreak() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isStrikethrough() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isStrong() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isSubscript() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isSuperscript() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isText() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static link:#mrdocs-doc-InlineKind[InlineKind] kind_id; ---- A hyperlink. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/LinkInline.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- struct LinkInline final : link:#mrdocs-doc-InlineCommonBase-0dc[InlineCommonBase<InlineKind::Link>] , link:#mrdocs-doc-InlineContainer[InlineContainer] ---- == Base Classes [cols=2] |=== | Name | Description | `link:#mrdocs-doc-InlineCommonBase-0dc[InlineCommonBase<InlineKind::Link>]` | Base class for providing variant discriminator functions. | `link:#mrdocs-doc-InlineContainer[InlineContainer]` | An internal node in the inline element tree |=== == Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-doc-LinkInline-2constructor-061[`LinkInline`] [.small]#[constructor]# | Constructors | link:#mrdocs-doc-InlineContainer-operator_assign-02[`operator=`] | Assign an InlineContainer with a single TextInline child. | link:#mrdocs-doc-InlineContainer-append-0c[`append`] | `append` overloads | link:#mrdocs-doc-InlineContainer-asInlineContainer-0b[`asInlineContainer`] | Helper function so that derived classes can get a reference to the base class. | link:#mrdocs-doc-InlineContainer-back-03[`back`] | Get the last inline child. | link:#mrdocs-doc-InlineContainer-begin[`begin`] | Begin iterator forwarding to children | link:#mrdocs-doc-InlineContainer-clear[`clear`] | Clear all inline children. | link:#mrdocs-doc-InlineContainer-emplace_back[`emplace_back`] | Append a child of the specified type. | link:#mrdocs-doc-InlineContainer-empty[`empty`] | Determine if there are no inline children. | link:#mrdocs-doc-InlineContainer-end[`end`] | End iterator forwarding to children | link:#mrdocs-doc-InlineContainer-erase[`erase`] | Erase from children | link:#mrdocs-doc-InlineContainer-front-03[`front`] | Get the first inline child. | link:#mrdocs-doc-InlineContainer-insert[`insert`] | Erase from children | link:#mrdocs-doc-InlineContainer-operator_plus_eq-06[`operator+=`] | Addition assignment operators | link:#mrdocs-doc-InlineContainer-size[`size`] | Get the number of inline children. | link:#mrdocs-doc-LinkInline-operator_eq-06[`operator==`] | Compare two InlineContainers. | link:#mrdocs-doc-LinkInline-operator_3way-0a[`operator<=>`] | Compare two InlineContainers. |=== == Static Member Functions [cols=1] |=== | Name | link:#mrdocs-doc-LinkInline-isCode[`isCode`] | link:#mrdocs-doc-LinkInline-isCopyDetails[`isCopyDetails`] | link:#mrdocs-doc-LinkInline-isEmph[`isEmph`] | link:#mrdocs-doc-LinkInline-isFootnoteReference[`isFootnoteReference`] | link:#mrdocs-doc-LinkInline-isHighlight[`isHighlight`] | link:#mrdocs-doc-LinkInline-isImage[`isImage`] | link:#mrdocs-doc-LinkInline-isLineBreak[`isLineBreak`] | link:#mrdocs-doc-LinkInline-isLink[`isLink`] | link:#mrdocs-doc-LinkInline-isMath[`isMath`] | link:#mrdocs-doc-LinkInline-isReference[`isReference`] | link:#mrdocs-doc-LinkInline-isSoftBreak[`isSoftBreak`] | link:#mrdocs-doc-LinkInline-isStrikethrough[`isStrikethrough`] | link:#mrdocs-doc-LinkInline-isStrong[`isStrong`] | link:#mrdocs-doc-LinkInline-isSubscript[`isSubscript`] | link:#mrdocs-doc-LinkInline-isSuperscript[`isSuperscript`] | link:#mrdocs-doc-LinkInline-isText[`isText`] |=== == Data Members [cols=1] |=== | Name | link:#mrdocs-doc-InlineContainer-children[`children`] | link:#mrdocs-doc-LinkInline-href[`href`] |=== == Static Data Members [cols=1] |=== | Name | link:#mrdocs-doc-LinkInline-kind_id[`kind_id`] |=== == Non-Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-doc-getAsPlainText-097[`getAsPlainText`] | Flatten an InlineContainer to plain text. | link:#mrdocs-doc-getAsPlainText-09f[`getAsPlainText`] | Flatten an InlineContainer to plain text. | link:#mrdocs-doc-getAsPlainText-0ad[`getAsPlainText`] | Get the plain text representation of an inline element tree. | link:#mrdocs-doc-getAsPlainText-0ae[`getAsPlainText`] | Get the plain text representation of an inline element tree. | link:#mrdocs-doc-ltrim-0b[`ltrim`] | Removes leading whitespace from the first text element in the given InlineContainer. | link:#mrdocs-doc-rtrim-0b[`rtrim`] | Removes trailing whitespace from the last text element in the given InlineContainer. | link:#mrdocs-doc-trim-08[`trim`] | Removes leading and trailing whitespace from the text elements in the given InlineContainer. |=== Constructors == Synopses Declared in `<mrdocs/Metadata/DocComment/Inline/LinkInline.hpp>` Default constructor [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-doc-LinkInline-2constructor-08[LinkInline]() = default; ---- [.small]#link:#mrdocs-doc-LinkInline-2constructor-08[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-doc-LinkInline-2constructor-062[LinkInline]( std::string_view text, std::string_view href); ---- [.small]#link:#mrdocs-doc-LinkInline-2constructor-062[_» more..._]# Default constructor == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/LinkInline.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr LinkInline() = default; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/LinkInline.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- LinkInline( std::string_view text, std::string_view href); ---- Compare two InlineContainers. == Synopses Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` Equality operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr bool link:#mrdocs-doc-LinkInline-operator_eq-03[operator==](link:#mrdocs-doc-LinkInline[LinkInline] const& rhs) const noexcept = default; ---- [.small]#link:#mrdocs-doc-LinkInline-operator_eq-03[_» more..._]# Compare two InlineContainers. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr bool link:#mrdocs-doc-InlineContainer-operator_eq[operator==](link:#mrdocs-doc-InlineContainer[InlineContainer] const& rhs) const = default; ---- [.small]#link:#mrdocs-doc-InlineContainer-operator_eq[_» more..._]# Equality operator == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/LinkInline.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr bool operator==(link:#mrdocs-doc-LinkInline[LinkInline] const& rhs) const noexcept = default; ---- == Return Value `true` if the objects are equal, `false` otherwise == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== Compare two InlineContainers. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr bool operator==(link:#mrdocs-doc-InlineContainer[InlineContainer] const& rhs) const = default; ---- == Return Value `true` if the objects are equal, `false` otherwise == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== Compare two InlineContainers. == Synopses Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` Three‐way comparison operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- auto link:#mrdocs-doc-LinkInline-operator_3way-06[operator<=>](link:#mrdocs-doc-LinkInline[LinkInline] const& rhs) const = default; ---- [.small]#link:#mrdocs-doc-LinkInline-operator_3way-06[_» more..._]# Three‐way comparison operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr auto link:#mrdocs-doc-LinkInline-operator_3way-04[operator<=>](link:#mrdocs-doc-InlineCommonBase-0dc[InlineCommonBase<mrdocs::doc::InlineKind::Link>] const& rhs) const = default; ---- [.small]#link:#mrdocs-doc-LinkInline-operator_3way-04[_» more..._]# Compare two InlineContainers. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::strong_ordering link:#mrdocs-doc-InlineContainer-operator_3way[operator<=>](link:#mrdocs-doc-InlineContainer[InlineContainer] const& rhs) const; ---- [.small]#link:#mrdocs-doc-InlineContainer-operator_3way[_» more..._]# Three‐way comparison operator == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/LinkInline.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- auto operator<=>(link:#mrdocs-doc-LinkInline[LinkInline] const& rhs) const = default; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== Three‐way comparison operator == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr auto operator<=>(link:#mrdocs-doc-InlineCommonBase-0dc[InlineCommonBase<mrdocs::doc::InlineKind::Link>] const& rhs) const = default; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== Compare two InlineContainers. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::strong_ordering operator<=>(link:#mrdocs-doc-InlineContainer[InlineContainer] const& rhs) const; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isCode() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isCopyDetails() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isEmph() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isFootnoteReference() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isHighlight() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isImage() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isLineBreak() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isLink() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isMath() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isReference() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isSoftBreak() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isStrikethrough() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isStrong() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isSubscript() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isSuperscript() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isText() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/LinkInline.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::string href; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static link:#mrdocs-doc-InlineKind[InlineKind] kind_id; ---- A list of list items == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/ListBlock.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- struct ListBlock final : link:#mrdocs-doc-BlockCommonBase-0ed[BlockCommonBase<BlockKind::List>] ---- == Base Classes [cols=2] |=== | Name | Description | `link:#mrdocs-doc-BlockCommonBase-0ed[BlockCommonBase<BlockKind::List>]` | Base class for providing variant discriminator functions. |=== == Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-doc-ListBlock-operator_eq[`operator==`] | Equality operator | link:#mrdocs-doc-ListBlock-operator_3way-0b[`operator<=>`] | Three‐way comparison operators |=== == Static Member Functions [cols=1] |=== | Name | link:#mrdocs-doc-ListBlock-isAdmonition[`isAdmonition`] | link:#mrdocs-doc-ListBlock-isBrief[`isBrief`] | link:#mrdocs-doc-ListBlock-isCode[`isCode`] | link:#mrdocs-doc-ListBlock-isDefinitionList[`isDefinitionList`] | link:#mrdocs-doc-ListBlock-isFootnoteDefinition[`isFootnoteDefinition`] | link:#mrdocs-doc-ListBlock-isHeading[`isHeading`] | link:#mrdocs-doc-ListBlock-isList[`isList`] | link:#mrdocs-doc-ListBlock-isMath[`isMath`] | link:#mrdocs-doc-ListBlock-isParagraph[`isParagraph`] | link:#mrdocs-doc-ListBlock-isParam[`isParam`] | link:#mrdocs-doc-ListBlock-isPostcondition[`isPostcondition`] | link:#mrdocs-doc-ListBlock-isPrecondition[`isPrecondition`] | link:#mrdocs-doc-ListBlock-isQuote[`isQuote`] | link:#mrdocs-doc-ListBlock-isReturns[`isReturns`] | link:#mrdocs-doc-ListBlock-isSee[`isSee`] | link:#mrdocs-doc-ListBlock-isTParam[`isTParam`] | link:#mrdocs-doc-ListBlock-isTable[`isTable`] | link:#mrdocs-doc-ListBlock-isThematicBreak[`isThematicBreak`] | link:#mrdocs-doc-ListBlock-isThrows[`isThrows`] |=== == Data Members [cols=1] |=== | Name | link:#mrdocs-doc-ListBlock-items[`items`] | link:#mrdocs-doc-ListBlock-listKind[`listKind`] |=== == Static Data Members [cols=1] |=== | Name | link:#mrdocs-doc-ListBlock-kind_id[`kind_id`] |=== == Non-Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-doc-isEmpty-06[`isEmpty`] | Determine if the inline is empty | link:#mrdocs-doc-ltrim-0d[`ltrim`] | Removes leading whitespace from the block. | link:#mrdocs-doc-rtrim-0c[`rtrim`] | Removes trailing whitespace from the block. | link:#mrdocs-doc-trim-071[`trim`] | Removes leading and trailing whitespace from the block. |=== Equality operator == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/ListBlock.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr bool operator==(link:#mrdocs-doc-ListBlock[ListBlock] const& rhs) const noexcept = default; ---- == Return Value `true` if the objects are equal, `false` otherwise == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== Three‐way comparison operators == Synopses Declared in `<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>` Three‐way comparison operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- auto link:#mrdocs-doc-ListBlock-operator_3way-0f[operator<=>](link:#mrdocs-doc-ListBlock[ListBlock] const& other) const; ---- [.small]#link:#mrdocs-doc-ListBlock-operator_3way-0f[_» more..._]# Three‐way comparison operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr auto link:#mrdocs-doc-ListBlock-operator_3way-03[operator<=>](link:#mrdocs-doc-BlockCommonBase-0ed[BlockCommonBase<mrdocs::doc::BlockKind::List>] const& rhs) const = default; ---- [.small]#link:#mrdocs-doc-ListBlock-operator_3way-03[_» more..._]# Three‐way comparison operator == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/ListBlock.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- auto operator<=>(link:#mrdocs-doc-ListBlock[ListBlock] const& other) const; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *other* | The right operand |=== Three‐way comparison operator == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr auto operator<=>(link:#mrdocs-doc-BlockCommonBase-0ed[BlockCommonBase<mrdocs::doc::BlockKind::List>] const& rhs) const = default; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isAdmonition() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isBrief() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isCode() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isDefinitionList() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isFootnoteDefinition() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isHeading() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isList() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isMath() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isParagraph() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isParam() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isPostcondition() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isPrecondition() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isQuote() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isReturns() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isSee() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isTParam() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isTable() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isThematicBreak() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isThrows() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/ListBlock.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::vector<ListItem> items; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/ListBlock.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-ListKind[ListKind] listKind = ListKind::Unordered; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static link:#mrdocs-doc-BlockKind[BlockKind] kind_id; ---- An item in a list == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/ListItem.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- struct ListItem final : link:#mrdocs-doc-BlockContainer[BlockContainer] ---- == Base Classes [cols=2] |=== | Name | Description | `link:#mrdocs-doc-BlockContainer[BlockContainer]` | |=== == Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-doc-BlockContainer-asBlockContainer-0c[`asBlockContainer`] | | link:#mrdocs-doc-ListItem-operator_eq-09[`operator==`] | Equality operators | link:#mrdocs-doc-ListItem-operator_3way-00[`operator<=>`] | Three‐way comparison operators |=== == Data Members [cols=1] |=== | Name | link:#mrdocs-doc-BlockContainer-blocks[`blocks`] |=== == Non-Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-doc-ltrim-01[`ltrim`] | Removes leading whitespace from the first text elements | link:#mrdocs-doc-rtrim-06[`rtrim`] | Removes trailing whitespace from the last text elements | link:#mrdocs-doc-trim-0b[`trim`] | Removes leading and trailing whitespace from the text elements |=== Equality operators == Synopses Declared in `<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>` Equality operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr bool link:#mrdocs-doc-ListItem-operator_eq-02[operator==](link:#mrdocs-doc-ListItem[ListItem] const& rhs) const noexcept = default; ---- [.small]#link:#mrdocs-doc-ListItem-operator_eq-02[_» more..._]# Equality operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr bool link:#mrdocs-doc-BlockContainer-operator_eq[operator==](link:#mrdocs-doc-BlockContainer[BlockContainer] const& rhs) const = default; ---- [.small]#link:#mrdocs-doc-BlockContainer-operator_eq[_» more..._]# Equality operator == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/ListItem.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr bool operator==(link:#mrdocs-doc-ListItem[ListItem] const& rhs) const noexcept = default; ---- == Return Value `true` if the objects are equal, `false` otherwise == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== Equality operator == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr bool operator==(link:#mrdocs-doc-BlockContainer[BlockContainer] const& rhs) const = default; ---- == Return Value `true` if the objects are equal, `false` otherwise == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== Three‐way comparison operators == Synopses Declared in `<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>` Three‐way comparison operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- auto link:#mrdocs-doc-ListItem-operator_3way-07[operator<=>](link:#mrdocs-doc-ListItem[ListItem] const& rhs) const = default; ---- [.small]#link:#mrdocs-doc-ListItem-operator_3way-07[_» more..._]# Three‐way comparison operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::strong_ordering link:#mrdocs-doc-BlockContainer-operator_3way[operator<=>](link:#mrdocs-doc-BlockContainer[BlockContainer] const& rhs) const; ---- [.small]#link:#mrdocs-doc-BlockContainer-operator_3way[_» more..._]# Three‐way comparison operator == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/ListItem.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- auto operator<=>(link:#mrdocs-doc-ListItem[ListItem] const& rhs) const = default; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== Three‐way comparison operator == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::strong_ordering operator<=>(link:#mrdocs-doc-BlockContainer[BlockContainer] const& rhs) const; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== A block of LaTeX math == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/MathBlock.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- struct MathBlock final : link:#mrdocs-doc-BlockCommonBase-0ed[BlockCommonBase<BlockKind::Math>] ---- == Base Classes [cols=2] |=== | Name | Description | `link:#mrdocs-doc-BlockCommonBase-0ed[BlockCommonBase<BlockKind::Math>]` | Base class for providing variant discriminator functions. |=== == Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-doc-MathBlock-2constructor[`MathBlock`] [.small]#[constructor]# | Copy constructor | link:#mrdocs-doc-MathBlock-operator_assign[`operator=`] | Copy assignment operator | link:#mrdocs-doc-MathBlock-operator_3way-05[`operator<=>`] | Three‐way comparison operators |=== == Static Member Functions [cols=1] |=== | Name | link:#mrdocs-doc-MathBlock-isAdmonition[`isAdmonition`] | link:#mrdocs-doc-MathBlock-isBrief[`isBrief`] | link:#mrdocs-doc-MathBlock-isCode[`isCode`] | link:#mrdocs-doc-MathBlock-isDefinitionList[`isDefinitionList`] | link:#mrdocs-doc-MathBlock-isFootnoteDefinition[`isFootnoteDefinition`] | link:#mrdocs-doc-MathBlock-isHeading[`isHeading`] | link:#mrdocs-doc-MathBlock-isList[`isList`] | link:#mrdocs-doc-MathBlock-isMath[`isMath`] | link:#mrdocs-doc-MathBlock-isParagraph[`isParagraph`] | link:#mrdocs-doc-MathBlock-isParam[`isParam`] | link:#mrdocs-doc-MathBlock-isPostcondition[`isPostcondition`] | link:#mrdocs-doc-MathBlock-isPrecondition[`isPrecondition`] | link:#mrdocs-doc-MathBlock-isQuote[`isQuote`] | link:#mrdocs-doc-MathBlock-isReturns[`isReturns`] | link:#mrdocs-doc-MathBlock-isSee[`isSee`] | link:#mrdocs-doc-MathBlock-isTParam[`isTParam`] | link:#mrdocs-doc-MathBlock-isTable[`isTable`] | link:#mrdocs-doc-MathBlock-isThematicBreak[`isThematicBreak`] | link:#mrdocs-doc-MathBlock-isThrows[`isThrows`] |=== == Data Members [cols=2] |=== | Name | Description | link:#mrdocs-doc-MathBlock-literal[`literal`] | Raw TeX math source |=== == Static Data Members [cols=1] |=== | Name | link:#mrdocs-doc-MathBlock-kind_id[`kind_id`] |=== == Non-Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-doc-isEmpty-06[`isEmpty`] | Determine if the inline is empty | link:#mrdocs-doc-ltrim-0d[`ltrim`] | Removes leading whitespace from the block. | link:#mrdocs-doc-rtrim-0c[`rtrim`] | Removes trailing whitespace from the block. | link:#mrdocs-doc-trim-071[`trim`] | Removes leading and trailing whitespace from the block. |=== == Description A block of LaTeX math, typically between _ … _ or fenced with "math". Copy constructor == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/MathBlock.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr MathBlock(link:#mrdocs-doc-MathBlock[MathBlock] const& other) = default; ---- == Parameters [cols=2] |=== | Name | Description | *other* | The object to copy construct from |=== Copy assignment operator == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/MathBlock.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-doc-MathBlock[MathBlock]& operator=(link:#mrdocs-doc-MathBlock[MathBlock] const& other) = default; ---- == Return Value Reference to the current object == Parameters [cols=2] |=== | Name | Description | *other* | The object to copy assign from |=== Three‐way comparison operators == Synopses Declared in `<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>` Three‐way comparison operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr auto link:#mrdocs-doc-MathBlock-operator_3way-08[operator<=>](link:#mrdocs-doc-MathBlock[MathBlock] const& rhs) const = default; ---- [.small]#link:#mrdocs-doc-MathBlock-operator_3way-08[_» more..._]# Three‐way comparison operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr auto link:#mrdocs-doc-MathBlock-operator_3way-07[operator<=>](link:#mrdocs-doc-BlockCommonBase-0ed[BlockCommonBase<mrdocs::doc::BlockKind::Math>] const& rhs) const = default; ---- [.small]#link:#mrdocs-doc-MathBlock-operator_3way-07[_» more..._]# Three‐way comparison operator == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/MathBlock.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr auto operator<=>(link:#mrdocs-doc-MathBlock[MathBlock] const& rhs) const = default; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== Three‐way comparison operator == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr auto operator<=>(link:#mrdocs-doc-BlockCommonBase-0ed[BlockCommonBase<mrdocs::doc::BlockKind::Math>] const& rhs) const = default; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isAdmonition() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isBrief() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isCode() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isDefinitionList() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isFootnoteDefinition() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isHeading() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isList() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isMath() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isParagraph() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isParam() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isPostcondition() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isPrecondition() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isQuote() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isReturns() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isSee() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isTParam() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isTable() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isThematicBreak() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isThrows() noexcept; ---- Raw TeX math source == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/MathBlock.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::string literal; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static link:#mrdocs-doc-BlockKind[BlockKind] kind_id; ---- An inline LaTeX math expression == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/MathInline.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- struct MathInline : link:#mrdocs-doc-InlineCommonBase-0dc[InlineCommonBase<InlineKind::Math>] ---- == Base Classes [cols=2] |=== | Name | Description | `link:#mrdocs-doc-InlineCommonBase-0dc[InlineCommonBase<InlineKind::Math>]` | Base class for providing variant discriminator functions. |=== == Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-doc-MathInline-2constructor-0c[`MathInline`] [.small]#[constructor]# | Constructors | link:#mrdocs-doc-MathInline-2destructor[`~MathInline`] [.small]#[destructor]# [.small]#[virtual]# | Destructor | link:#mrdocs-doc-MathInline-operator_eq[`operator==`] | Equality operator | link:#mrdocs-doc-MathInline-operator_3way-0d[`operator<=>`] | Three‐way comparison operators |=== == Static Member Functions [cols=1] |=== | Name | link:#mrdocs-doc-MathInline-isCode[`isCode`] | link:#mrdocs-doc-MathInline-isCopyDetails[`isCopyDetails`] | link:#mrdocs-doc-MathInline-isEmph[`isEmph`] | link:#mrdocs-doc-MathInline-isFootnoteReference[`isFootnoteReference`] | link:#mrdocs-doc-MathInline-isHighlight[`isHighlight`] | link:#mrdocs-doc-MathInline-isImage[`isImage`] | link:#mrdocs-doc-MathInline-isLineBreak[`isLineBreak`] | link:#mrdocs-doc-MathInline-isLink[`isLink`] | link:#mrdocs-doc-MathInline-isMath[`isMath`] | link:#mrdocs-doc-MathInline-isReference[`isReference`] | link:#mrdocs-doc-MathInline-isSoftBreak[`isSoftBreak`] | link:#mrdocs-doc-MathInline-isStrikethrough[`isStrikethrough`] | link:#mrdocs-doc-MathInline-isStrong[`isStrong`] | link:#mrdocs-doc-MathInline-isSubscript[`isSubscript`] | link:#mrdocs-doc-MathInline-isSuperscript[`isSuperscript`] | link:#mrdocs-doc-MathInline-isText[`isText`] |=== == Data Members [cols=1] |=== | Name | link:#mrdocs-doc-MathInline-literal[`literal`] |=== == Static Data Members [cols=1] |=== | Name | link:#mrdocs-doc-MathInline-kind_id[`kind_id`] |=== == Non-Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-doc-getAsPlainText-0ad[`getAsPlainText`] | Get the plain text representation of an inline element tree. | link:#mrdocs-doc-getAsPlainText-0ae[`getAsPlainText`] | Get the plain text representation of an inline element tree. |=== == Description Inline LaTeX math, typically between _…_. Constructors == Synopses Declared in `<mrdocs/Metadata/DocComment/Inline/MathInline.hpp>` Default constructor [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-doc-MathInline-2constructor-08[MathInline]() noexcept = default; ---- [.small]#link:#mrdocs-doc-MathInline-2constructor-08[_» more..._]# Construct from `string` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- explicit link:#mrdocs-doc-MathInline-2constructor-0e[MathInline](std::string string_) noexcept; ---- [.small]#link:#mrdocs-doc-MathInline-2constructor-0e[_» more..._]# Default constructor == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/MathInline.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr MathInline() noexcept = default; ---- Construct from `string` == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/MathInline.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- explicit MathInline(std::string string_) noexcept; ---- == Parameters [cols=2] |=== | Name | Description | *string_* | The object to construct from |=== Destructor == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/MathInline.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr virtual ~MathInline() override = default; ---- Equality operator == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/MathInline.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr bool operator==(link:#mrdocs-doc-MathInline[MathInline] const& rhs) const noexcept = default; ---- == Return Value `true` if the objects are equal, `false` otherwise == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== Three‐way comparison operators == Synopses Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` Three‐way comparison operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr auto link:#mrdocs-doc-MathInline-operator_3way-09[operator<=>](link:#mrdocs-doc-MathInline[MathInline] const& rhs) const = default; ---- [.small]#link:#mrdocs-doc-MathInline-operator_3way-09[_» more..._]# Three‐way comparison operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr auto link:#mrdocs-doc-MathInline-operator_3way-04[operator<=>](link:#mrdocs-doc-InlineCommonBase-0dc[InlineCommonBase<mrdocs::doc::InlineKind::Math>] const& rhs) const = default; ---- [.small]#link:#mrdocs-doc-MathInline-operator_3way-04[_» more..._]# Three‐way comparison operator == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/MathInline.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr auto operator<=>(link:#mrdocs-doc-MathInline[MathInline] const& rhs) const = default; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== Three‐way comparison operator == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr auto operator<=>(link:#mrdocs-doc-InlineCommonBase-0dc[InlineCommonBase<mrdocs::doc::InlineKind::Math>] const& rhs) const = default; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isCode() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isCopyDetails() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isEmph() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isFootnoteReference() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isHighlight() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isImage() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isLineBreak() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isLink() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isMath() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isReference() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isSoftBreak() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isStrikethrough() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isStrong() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isSubscript() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isSuperscript() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isText() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/MathInline.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::string literal; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static link:#mrdocs-doc-InlineKind[InlineKind] kind_id; ---- A sequence of text nodes. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/ParagraphBlock.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- struct ParagraphBlock : link:#mrdocs-doc-BlockCommonBase-0ed[BlockCommonBase<BlockKind::Paragraph>] , link:#mrdocs-doc-InlineContainer[InlineContainer] ---- == Base Classes [cols=2] |=== | Name | Description | `link:#mrdocs-doc-BlockCommonBase-0ed[BlockCommonBase<BlockKind::Paragraph>]` | Base class for providing variant discriminator functions. | `link:#mrdocs-doc-InlineContainer[InlineContainer]` | An internal node in the inline element tree |=== == Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-doc-ParagraphBlock-2constructor[`ParagraphBlock`] [.small]#[constructor]# | Default constructor | link:#mrdocs-doc-ParagraphBlock-2destructor[`~ParagraphBlock`] [.small]#[destructor]# [.small]#[virtual]# | Destructor | link:#mrdocs-doc-InlineContainer-operator_assign-02[`operator=`] | Assign an InlineContainer with a single TextInline child. | link:#mrdocs-doc-InlineContainer-append-0c[`append`] | `append` overloads | link:#mrdocs-doc-InlineContainer-asInlineContainer-0b[`asInlineContainer`] | Helper function so that derived classes can get a reference to the base class. | link:#mrdocs-doc-InlineContainer-back-03[`back`] | Get the last inline child. | link:#mrdocs-doc-InlineContainer-begin[`begin`] | Begin iterator forwarding to children | link:#mrdocs-doc-InlineContainer-clear[`clear`] | Clear all inline children. | link:#mrdocs-doc-InlineContainer-emplace_back[`emplace_back`] | Append a child of the specified type. | link:#mrdocs-doc-InlineContainer-empty[`empty`] | Determine if there are no inline children. | link:#mrdocs-doc-InlineContainer-end[`end`] | End iterator forwarding to children | link:#mrdocs-doc-InlineContainer-erase[`erase`] | Erase from children | link:#mrdocs-doc-InlineContainer-front-03[`front`] | Get the first inline child. | link:#mrdocs-doc-InlineContainer-insert[`insert`] | Erase from children | link:#mrdocs-doc-InlineContainer-operator_plus_eq-06[`operator+=`] | Addition assignment operators | link:#mrdocs-doc-InlineContainer-size[`size`] | Get the number of inline children. | link:#mrdocs-doc-InlineContainer-operator_eq[`operator==`] | Compare two InlineContainers. | link:#mrdocs-doc-ParagraphBlock-operator_3way-09[`operator<=>`] | Compare two InlineContainers. |=== == Static Member Functions [cols=1] |=== | Name | link:#mrdocs-doc-ParagraphBlock-isAdmonition[`isAdmonition`] | link:#mrdocs-doc-ParagraphBlock-isBrief[`isBrief`] | link:#mrdocs-doc-ParagraphBlock-isCode[`isCode`] | link:#mrdocs-doc-ParagraphBlock-isDefinitionList[`isDefinitionList`] | link:#mrdocs-doc-ParagraphBlock-isFootnoteDefinition[`isFootnoteDefinition`] | link:#mrdocs-doc-ParagraphBlock-isHeading[`isHeading`] | link:#mrdocs-doc-ParagraphBlock-isList[`isList`] | link:#mrdocs-doc-ParagraphBlock-isMath[`isMath`] | link:#mrdocs-doc-ParagraphBlock-isParagraph[`isParagraph`] | link:#mrdocs-doc-ParagraphBlock-isParam[`isParam`] | link:#mrdocs-doc-ParagraphBlock-isPostcondition[`isPostcondition`] | link:#mrdocs-doc-ParagraphBlock-isPrecondition[`isPrecondition`] | link:#mrdocs-doc-ParagraphBlock-isQuote[`isQuote`] | link:#mrdocs-doc-ParagraphBlock-isReturns[`isReturns`] | link:#mrdocs-doc-ParagraphBlock-isSee[`isSee`] | link:#mrdocs-doc-ParagraphBlock-isTParam[`isTParam`] | link:#mrdocs-doc-ParagraphBlock-isTable[`isTable`] | link:#mrdocs-doc-ParagraphBlock-isThematicBreak[`isThematicBreak`] | link:#mrdocs-doc-ParagraphBlock-isThrows[`isThrows`] |=== == Data Members [cols=1] |=== | Name | link:#mrdocs-doc-InlineContainer-children[`children`] |=== == Static Data Members [cols=1] |=== | Name | link:#mrdocs-doc-ParagraphBlock-kind_id[`kind_id`] |=== == Non-Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-doc-getAsPlainText-097[`getAsPlainText`] | Flatten an InlineContainer to plain text. | link:#mrdocs-doc-getAsPlainText-09f[`getAsPlainText`] | Flatten an InlineContainer to plain text. | link:#mrdocs-doc-isEmpty-06[`isEmpty`] | Determine if the inline is empty | link:#mrdocs-doc-ltrim-0b[`ltrim`] | Removes leading whitespace from the first text element in the given InlineContainer. | link:#mrdocs-doc-ltrim-0d[`ltrim`] | Removes leading whitespace from the block. | link:#mrdocs-doc-rtrim-0b[`rtrim`] | Removes trailing whitespace from the last text element in the given InlineContainer. | link:#mrdocs-doc-rtrim-0c[`rtrim`] | Removes trailing whitespace from the block. | link:#mrdocs-doc-trim-071[`trim`] | Removes leading and trailing whitespace from the block. | link:#mrdocs-doc-trim-08[`trim`] | Removes leading and trailing whitespace from the text elements in the given InlineContainer. |=== Default constructor == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/ParagraphBlock.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr ParagraphBlock() noexcept = default; ---- Destructor == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/ParagraphBlock.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr virtual ~ParagraphBlock() override = default; ---- Compare two InlineContainers. == Synopses Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` Three‐way comparison operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- auto link:#mrdocs-doc-ParagraphBlock-operator_3way-00[operator<=>](link:#mrdocs-doc-ParagraphBlock[ParagraphBlock] const& rhs) const = default; ---- [.small]#link:#mrdocs-doc-ParagraphBlock-operator_3way-00[_» more..._]# Three‐way comparison operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr auto link:#mrdocs-doc-ParagraphBlock-operator_3way-0c[operator<=>](link:#mrdocs-doc-BlockCommonBase-0ed[BlockCommonBase<mrdocs::doc::BlockKind::Paragraph>] const& rhs) const = default; ---- [.small]#link:#mrdocs-doc-ParagraphBlock-operator_3way-0c[_» more..._]# Compare two InlineContainers. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::strong_ordering link:#mrdocs-doc-InlineContainer-operator_3way[operator<=>](link:#mrdocs-doc-InlineContainer[InlineContainer] const& rhs) const; ---- [.small]#link:#mrdocs-doc-InlineContainer-operator_3way[_» more..._]# Three‐way comparison operator == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/ParagraphBlock.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- auto operator<=>(link:#mrdocs-doc-ParagraphBlock[ParagraphBlock] const& rhs) const = default; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== Three‐way comparison operator == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr auto operator<=>(link:#mrdocs-doc-BlockCommonBase-0ed[BlockCommonBase<mrdocs::doc::BlockKind::Paragraph>] const& rhs) const = default; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== Compare two InlineContainers. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::strong_ordering operator<=>(link:#mrdocs-doc-InlineContainer[InlineContainer] const& rhs) const; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isAdmonition() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isBrief() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isCode() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isDefinitionList() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isFootnoteDefinition() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isHeading() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isList() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isMath() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isParagraph() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isParam() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isPostcondition() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isPrecondition() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isQuote() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isReturns() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isSee() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isTParam() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isTable() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isThematicBreak() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isThrows() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static link:#mrdocs-doc-BlockKind[BlockKind] kind_id; ---- Documentation for a function parameter == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/ParamBlock.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- struct ParamBlock final : link:#mrdocs-doc-BlockCommonBase-0ed[BlockCommonBase<BlockKind::Param>] , link:#mrdocs-doc-InlineContainer[InlineContainer] ---- == Base Classes [cols=2] |=== | Name | Description | `link:#mrdocs-doc-BlockCommonBase-0ed[BlockCommonBase<BlockKind::Param>]` | Base class for providing variant discriminator functions. | `link:#mrdocs-doc-InlineContainer[InlineContainer]` | An internal node in the inline element tree |=== == Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-doc-ParamBlock-2constructor-0ad[`ParamBlock`] [.small]#[constructor]# | Constructors | link:#mrdocs-doc-InlineContainer-operator_assign-02[`operator=`] | Assign an InlineContainer with a single TextInline child. | link:#mrdocs-doc-InlineContainer-append-0c[`append`] | `append` overloads | link:#mrdocs-doc-InlineContainer-asInlineContainer-0b[`asInlineContainer`] | Helper function so that derived classes can get a reference to the base class. | link:#mrdocs-doc-InlineContainer-back-03[`back`] | Get the last inline child. | link:#mrdocs-doc-InlineContainer-begin[`begin`] | Begin iterator forwarding to children | link:#mrdocs-doc-InlineContainer-clear[`clear`] | Clear all inline children. | link:#mrdocs-doc-InlineContainer-emplace_back[`emplace_back`] | Append a child of the specified type. | link:#mrdocs-doc-InlineContainer-empty[`empty`] | Determine if there are no inline children. | link:#mrdocs-doc-InlineContainer-end[`end`] | End iterator forwarding to children | link:#mrdocs-doc-InlineContainer-erase[`erase`] | Erase from children | link:#mrdocs-doc-InlineContainer-front-03[`front`] | Get the first inline child. | link:#mrdocs-doc-InlineContainer-insert[`insert`] | Erase from children | link:#mrdocs-doc-InlineContainer-operator_plus_eq-06[`operator+=`] | Addition assignment operators | link:#mrdocs-doc-InlineContainer-size[`size`] | Get the number of inline children. | link:#mrdocs-doc-ParamBlock-operator_eq-0a[`operator==`] | Compare two InlineContainers. | link:#mrdocs-doc-ParamBlock-operator_3way-0e[`operator<=>`] | Compare two InlineContainers. |=== == Static Member Functions [cols=1] |=== | Name | link:#mrdocs-doc-ParamBlock-isAdmonition[`isAdmonition`] | link:#mrdocs-doc-ParamBlock-isBrief[`isBrief`] | link:#mrdocs-doc-ParamBlock-isCode[`isCode`] | link:#mrdocs-doc-ParamBlock-isDefinitionList[`isDefinitionList`] | link:#mrdocs-doc-ParamBlock-isFootnoteDefinition[`isFootnoteDefinition`] | link:#mrdocs-doc-ParamBlock-isHeading[`isHeading`] | link:#mrdocs-doc-ParamBlock-isList[`isList`] | link:#mrdocs-doc-ParamBlock-isMath[`isMath`] | link:#mrdocs-doc-ParamBlock-isParagraph[`isParagraph`] | link:#mrdocs-doc-ParamBlock-isParam[`isParam`] | link:#mrdocs-doc-ParamBlock-isPostcondition[`isPostcondition`] | link:#mrdocs-doc-ParamBlock-isPrecondition[`isPrecondition`] | link:#mrdocs-doc-ParamBlock-isQuote[`isQuote`] | link:#mrdocs-doc-ParamBlock-isReturns[`isReturns`] | link:#mrdocs-doc-ParamBlock-isSee[`isSee`] | link:#mrdocs-doc-ParamBlock-isTParam[`isTParam`] | link:#mrdocs-doc-ParamBlock-isTable[`isTable`] | link:#mrdocs-doc-ParamBlock-isThematicBreak[`isThematicBreak`] | link:#mrdocs-doc-ParamBlock-isThrows[`isThrows`] |=== == Data Members [cols=1] |=== | Name | link:#mrdocs-doc-InlineContainer-children[`children`] | link:#mrdocs-doc-ParamBlock-direction[`direction`] | link:#mrdocs-doc-ParamBlock-name[`name`] |=== == Static Data Members [cols=1] |=== | Name | link:#mrdocs-doc-ParamBlock-kind_id[`kind_id`] |=== == Using Declarations [cols=1] |=== | Name | link:#mrdocs-doc-ParamBlock-2constructor-09[`ParamBlock`] |=== == Non-Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-doc-getAsPlainText-097[`getAsPlainText`] | Flatten an InlineContainer to plain text. | link:#mrdocs-doc-getAsPlainText-09f[`getAsPlainText`] | Flatten an InlineContainer to plain text. | link:#mrdocs-doc-isEmpty-06[`isEmpty`] | Determine if the inline is empty | link:#mrdocs-doc-ltrim-0b[`ltrim`] | Removes leading whitespace from the first text element in the given InlineContainer. | link:#mrdocs-doc-ltrim-0d[`ltrim`] | Removes leading whitespace from the block. | link:#mrdocs-doc-rtrim-0b[`rtrim`] | Removes trailing whitespace from the last text element in the given InlineContainer. | link:#mrdocs-doc-rtrim-0c[`rtrim`] | Removes trailing whitespace from the block. | link:#mrdocs-doc-trim-071[`trim`] | Removes leading and trailing whitespace from the block. | link:#mrdocs-doc-trim-08[`trim`] | Removes leading and trailing whitespace from the text elements in the given InlineContainer. |=== Constructors == Synopses Declared in `<mrdocs/Metadata/DocComment/Block/ParamBlock.hpp>` Construct from `InlineContainer` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-doc-ParamBlock-2constructor-0e[ParamBlock](link:#mrdocs-doc-InlineContainer[InlineContainer] const& other); ---- [.small]#link:#mrdocs-doc-ParamBlock-2constructor-0e[_» more..._]# Construct from `InlineContainer` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-doc-ParamBlock-2constructor-0a6[ParamBlock](link:#mrdocs-doc-InlineContainer[InlineContainer]&& other) noexcept; ---- [.small]#link:#mrdocs-doc-ParamBlock-2constructor-0a6[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-doc-ParamBlock-2constructor-0f[ParamBlock]( std::string_view name, std::string_view text, link:#mrdocs-doc-ParamDirection[ParamDirection] direction = ParamDirection::none); ---- [.small]#link:#mrdocs-doc-ParamBlock-2constructor-0f[_» more..._]# Construct from `InlineContainer` == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/ParamBlock.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- ParamBlock(link:#mrdocs-doc-InlineContainer[InlineContainer] const& other); ---- == Parameters [cols=2] |=== | Name | Description | *other* | The object to copy construct from |=== Construct from `InlineContainer` == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/ParamBlock.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- ParamBlock(link:#mrdocs-doc-InlineContainer[InlineContainer]&& other) noexcept; ---- == Parameters [cols=2] |=== | Name | Description | *other* | The object to move construct from |=== == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/ParamBlock.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- ParamBlock( std::string_view name, std::string_view text, link:#mrdocs-doc-ParamDirection[ParamDirection] direction = ParamDirection::none); ---- Compare two InlineContainers. == Synopses Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` Equality operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr bool link:#mrdocs-doc-ParamBlock-operator_eq-01[operator==](link:#mrdocs-doc-ParamBlock[ParamBlock] const& rhs) const noexcept = default; ---- [.small]#link:#mrdocs-doc-ParamBlock-operator_eq-01[_» more..._]# Compare two InlineContainers. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr bool link:#mrdocs-doc-InlineContainer-operator_eq[operator==](link:#mrdocs-doc-InlineContainer[InlineContainer] const& rhs) const = default; ---- [.small]#link:#mrdocs-doc-InlineContainer-operator_eq[_» more..._]# Equality operator == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/ParamBlock.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr bool operator==(link:#mrdocs-doc-ParamBlock[ParamBlock] const& rhs) const noexcept = default; ---- == Return Value `true` if the objects are equal, `false` otherwise == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== Compare two InlineContainers. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr bool operator==(link:#mrdocs-doc-InlineContainer[InlineContainer] const& rhs) const = default; ---- == Return Value `true` if the objects are equal, `false` otherwise == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== Compare two InlineContainers. == Synopses Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` Three‐way comparison operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- auto link:#mrdocs-doc-ParamBlock-operator_3way-06[operator<=>](link:#mrdocs-doc-ParamBlock[ParamBlock] const& rhs) const = default; ---- [.small]#link:#mrdocs-doc-ParamBlock-operator_3way-06[_» more..._]# Three‐way comparison operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr auto link:#mrdocs-doc-ParamBlock-operator_3way-02[operator<=>](link:#mrdocs-doc-BlockCommonBase-0ed[BlockCommonBase<mrdocs::doc::BlockKind::Param>] const& rhs) const = default; ---- [.small]#link:#mrdocs-doc-ParamBlock-operator_3way-02[_» more..._]# Compare two InlineContainers. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::strong_ordering link:#mrdocs-doc-InlineContainer-operator_3way[operator<=>](link:#mrdocs-doc-InlineContainer[InlineContainer] const& rhs) const; ---- [.small]#link:#mrdocs-doc-InlineContainer-operator_3way[_» more..._]# Three‐way comparison operator == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/ParamBlock.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- auto operator<=>(link:#mrdocs-doc-ParamBlock[ParamBlock] const& rhs) const = default; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== Three‐way comparison operator == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr auto operator<=>(link:#mrdocs-doc-BlockCommonBase-0ed[BlockCommonBase<mrdocs::doc::BlockKind::Param>] const& rhs) const = default; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== Compare two InlineContainers. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::strong_ordering operator<=>(link:#mrdocs-doc-InlineContainer[InlineContainer] const& rhs) const; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isAdmonition() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isBrief() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isCode() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isDefinitionList() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isFootnoteDefinition() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isHeading() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isList() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isMath() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isParagraph() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isParam() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isPostcondition() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isPrecondition() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isQuote() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isReturns() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isSee() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isTParam() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isTable() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isThematicBreak() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isThrows() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/ParamBlock.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-doc-ParamDirection[ParamDirection] direction = ParamDirection::none; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/ParamBlock.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::string name; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static link:#mrdocs-doc-BlockKind[BlockKind] kind_id; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/ParamBlock.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- using InlineContainer::ParamBlock; ---- == Introduced Symbols [cols=2] |=== | Name | Description | link:#mrdocs-doc-InlineContainer-2constructor-06[mrdocs::doc::InlineContainer::InlineContainer] | Construct an InlineContainer with a single TextInline child. | link:#mrdocs-doc-InlineContainer-2constructor-0b[mrdocs::doc::InlineContainer::InlineContainer] | Construct an InlineContainer with a single TextInline child. | link:#mrdocs-doc-InlineContainer-2constructor-0a8[mrdocs::doc::InlineContainer::InlineContainer] | Construct an InlineContainer with a single TextInline child. | link:#mrdocs-doc-InlineContainer-2constructor-09[mrdocs::doc::InlineContainer::InlineContainer] | Construct an InlineContainer with a single TextInline child. |=== == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/PostconditionBlock.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- struct PostconditionBlock : link:#mrdocs-doc-BlockCommonBase-0ed[BlockCommonBase<BlockKind::Postcondition>] , link:#mrdocs-doc-InlineContainer[InlineContainer] ---- == Base Classes [cols=2] |=== | Name | Description | `link:#mrdocs-doc-BlockCommonBase-0ed[BlockCommonBase<BlockKind::Postcondition>]` | Base class for providing variant discriminator functions. | `link:#mrdocs-doc-InlineContainer[InlineContainer]` | An internal node in the inline element tree |=== == Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-doc-InlineContainer-operator_assign-02[`operator=`] | Assign an InlineContainer with a single TextInline child. | link:#mrdocs-doc-InlineContainer-append-0c[`append`] | `append` overloads | link:#mrdocs-doc-InlineContainer-asInlineContainer-0b[`asInlineContainer`] | Helper function so that derived classes can get a reference to the base class. | link:#mrdocs-doc-InlineContainer-back-03[`back`] | Get the last inline child. | link:#mrdocs-doc-InlineContainer-begin[`begin`] | Begin iterator forwarding to children | link:#mrdocs-doc-InlineContainer-clear[`clear`] | Clear all inline children. | link:#mrdocs-doc-InlineContainer-emplace_back[`emplace_back`] | Append a child of the specified type. | link:#mrdocs-doc-InlineContainer-empty[`empty`] | Determine if there are no inline children. | link:#mrdocs-doc-InlineContainer-end[`end`] | End iterator forwarding to children | link:#mrdocs-doc-InlineContainer-erase[`erase`] | Erase from children | link:#mrdocs-doc-InlineContainer-front-03[`front`] | Get the first inline child. | link:#mrdocs-doc-InlineContainer-insert[`insert`] | Erase from children | link:#mrdocs-doc-InlineContainer-operator_plus_eq-06[`operator+=`] | Addition assignment operators | link:#mrdocs-doc-InlineContainer-size[`size`] | Get the number of inline children. | link:#mrdocs-doc-PostconditionBlock-operator_eq-0f[`operator==`] | Compare two InlineContainers. | link:#mrdocs-doc-PostconditionBlock-operator_3way-00[`operator<=>`] | Compare two InlineContainers. |=== == Static Member Functions [cols=1] |=== | Name | link:#mrdocs-doc-PostconditionBlock-isAdmonition[`isAdmonition`] | link:#mrdocs-doc-PostconditionBlock-isBrief[`isBrief`] | link:#mrdocs-doc-PostconditionBlock-isCode[`isCode`] | link:#mrdocs-doc-PostconditionBlock-isDefinitionList[`isDefinitionList`] | link:#mrdocs-doc-PostconditionBlock-isFootnoteDefinition[`isFootnoteDefinition`] | link:#mrdocs-doc-PostconditionBlock-isHeading[`isHeading`] | link:#mrdocs-doc-PostconditionBlock-isList[`isList`] | link:#mrdocs-doc-PostconditionBlock-isMath[`isMath`] | link:#mrdocs-doc-PostconditionBlock-isParagraph[`isParagraph`] | link:#mrdocs-doc-PostconditionBlock-isParam[`isParam`] | link:#mrdocs-doc-PostconditionBlock-isPostcondition[`isPostcondition`] | link:#mrdocs-doc-PostconditionBlock-isPrecondition[`isPrecondition`] | link:#mrdocs-doc-PostconditionBlock-isQuote[`isQuote`] | link:#mrdocs-doc-PostconditionBlock-isReturns[`isReturns`] | link:#mrdocs-doc-PostconditionBlock-isSee[`isSee`] | link:#mrdocs-doc-PostconditionBlock-isTParam[`isTParam`] | link:#mrdocs-doc-PostconditionBlock-isTable[`isTable`] | link:#mrdocs-doc-PostconditionBlock-isThematicBreak[`isThematicBreak`] | link:#mrdocs-doc-PostconditionBlock-isThrows[`isThrows`] |=== == Data Members [cols=1] |=== | Name | link:#mrdocs-doc-InlineContainer-children[`children`] |=== == Static Data Members [cols=1] |=== | Name | link:#mrdocs-doc-PostconditionBlock-kind_id[`kind_id`] |=== == Using Declarations [cols=1] |=== | Name | link:#mrdocs-doc-PostconditionBlock-2constructor[`PostconditionBlock`] |=== == Non-Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-doc-getAsPlainText-097[`getAsPlainText`] | Flatten an InlineContainer to plain text. | link:#mrdocs-doc-getAsPlainText-09f[`getAsPlainText`] | Flatten an InlineContainer to plain text. | link:#mrdocs-doc-isEmpty-06[`isEmpty`] | Determine if the inline is empty | link:#mrdocs-doc-ltrim-0b[`ltrim`] | Removes leading whitespace from the first text element in the given InlineContainer. | link:#mrdocs-doc-ltrim-0d[`ltrim`] | Removes leading whitespace from the block. | link:#mrdocs-doc-rtrim-0b[`rtrim`] | Removes trailing whitespace from the last text element in the given InlineContainer. | link:#mrdocs-doc-rtrim-0c[`rtrim`] | Removes trailing whitespace from the block. | link:#mrdocs-doc-trim-071[`trim`] | Removes leading and trailing whitespace from the block. | link:#mrdocs-doc-trim-08[`trim`] | Removes leading and trailing whitespace from the text elements in the given InlineContainer. |=== Compare two InlineContainers. == Synopses Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` Equality operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr bool link:#mrdocs-doc-PostconditionBlock-operator_eq-05[operator==](link:#mrdocs-doc-PostconditionBlock[PostconditionBlock] const& rhs) const noexcept = default; ---- [.small]#link:#mrdocs-doc-PostconditionBlock-operator_eq-05[_» more..._]# Compare two InlineContainers. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr bool link:#mrdocs-doc-InlineContainer-operator_eq[operator==](link:#mrdocs-doc-InlineContainer[InlineContainer] const& rhs) const = default; ---- [.small]#link:#mrdocs-doc-InlineContainer-operator_eq[_» more..._]# Equality operator == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/PostconditionBlock.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr bool operator==(link:#mrdocs-doc-PostconditionBlock[PostconditionBlock] const& rhs) const noexcept = default; ---- == Return Value `true` if the objects are equal, `false` otherwise == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== Compare two InlineContainers. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr bool operator==(link:#mrdocs-doc-InlineContainer[InlineContainer] const& rhs) const = default; ---- == Return Value `true` if the objects are equal, `false` otherwise == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== Compare two InlineContainers. == Synopses Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` Three‐way comparison operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- auto link:#mrdocs-doc-PostconditionBlock-operator_3way-0b[operator<=>](link:#mrdocs-doc-PostconditionBlock[PostconditionBlock] const& rhs) const = default; ---- [.small]#link:#mrdocs-doc-PostconditionBlock-operator_3way-0b[_» more..._]# Three‐way comparison operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr auto link:#mrdocs-doc-PostconditionBlock-operator_3way-02[operator<=>](link:#mrdocs-doc-BlockCommonBase-0ed[BlockCommonBase<mrdocs::doc::BlockKind::Postcondition>] const& rhs) const = default; ---- [.small]#link:#mrdocs-doc-PostconditionBlock-operator_3way-02[_» more..._]# Compare two InlineContainers. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::strong_ordering link:#mrdocs-doc-InlineContainer-operator_3way[operator<=>](link:#mrdocs-doc-InlineContainer[InlineContainer] const& rhs) const; ---- [.small]#link:#mrdocs-doc-InlineContainer-operator_3way[_» more..._]# Three‐way comparison operator == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/PostconditionBlock.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- auto operator<=>(link:#mrdocs-doc-PostconditionBlock[PostconditionBlock] const& rhs) const = default; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== Three‐way comparison operator == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr auto operator<=>(link:#mrdocs-doc-BlockCommonBase-0ed[BlockCommonBase<mrdocs::doc::BlockKind::Postcondition>] const& rhs) const = default; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== Compare two InlineContainers. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::strong_ordering operator<=>(link:#mrdocs-doc-InlineContainer[InlineContainer] const& rhs) const; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isAdmonition() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isBrief() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isCode() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isDefinitionList() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isFootnoteDefinition() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isHeading() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isList() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isMath() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isParagraph() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isParam() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isPostcondition() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isPrecondition() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isQuote() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isReturns() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isSee() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isTParam() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isTable() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isThematicBreak() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isThrows() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static link:#mrdocs-doc-BlockKind[BlockKind] kind_id; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/PostconditionBlock.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- using InlineContainer::PostconditionBlock; ---- == Introduced Symbols [cols=2] |=== | Name | Description | link:#mrdocs-doc-InlineContainer-2constructor-06[mrdocs::doc::InlineContainer::InlineContainer] | Construct an InlineContainer with a single TextInline child. | link:#mrdocs-doc-InlineContainer-2constructor-0b[mrdocs::doc::InlineContainer::InlineContainer] | Construct an InlineContainer with a single TextInline child. | link:#mrdocs-doc-InlineContainer-2constructor-0a8[mrdocs::doc::InlineContainer::InlineContainer] | Construct an InlineContainer with a single TextInline child. | link:#mrdocs-doc-InlineContainer-2constructor-09[mrdocs::doc::InlineContainer::InlineContainer] | Construct an InlineContainer with a single TextInline child. | link:#mrdocs-doc-InlineContainer-2constructor-07[mrdocs::doc::InlineContainer::InlineContainer] | Move constructor | link:#mrdocs-doc-InlineContainer-2constructor-0af[mrdocs::doc::InlineContainer::InlineContainer] | Copy constructor |=== == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/PreconditionBlock.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- struct PreconditionBlock final : link:#mrdocs-doc-BlockCommonBase-0ed[BlockCommonBase<BlockKind::Precondition>] , link:#mrdocs-doc-InlineContainer[InlineContainer] ---- == Base Classes [cols=2] |=== | Name | Description | `link:#mrdocs-doc-BlockCommonBase-0ed[BlockCommonBase<BlockKind::Precondition>]` | Base class for providing variant discriminator functions. | `link:#mrdocs-doc-InlineContainer[InlineContainer]` | An internal node in the inline element tree |=== == Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-doc-InlineContainer-operator_assign-02[`operator=`] | Assign an InlineContainer with a single TextInline child. | link:#mrdocs-doc-InlineContainer-append-0c[`append`] | `append` overloads | link:#mrdocs-doc-InlineContainer-asInlineContainer-0b[`asInlineContainer`] | Helper function so that derived classes can get a reference to the base class. | link:#mrdocs-doc-InlineContainer-back-03[`back`] | Get the last inline child. | link:#mrdocs-doc-InlineContainer-begin[`begin`] | Begin iterator forwarding to children | link:#mrdocs-doc-InlineContainer-clear[`clear`] | Clear all inline children. | link:#mrdocs-doc-InlineContainer-emplace_back[`emplace_back`] | Append a child of the specified type. | link:#mrdocs-doc-InlineContainer-empty[`empty`] | Determine if there are no inline children. | link:#mrdocs-doc-InlineContainer-end[`end`] | End iterator forwarding to children | link:#mrdocs-doc-InlineContainer-erase[`erase`] | Erase from children | link:#mrdocs-doc-InlineContainer-front-03[`front`] | Get the first inline child. | link:#mrdocs-doc-InlineContainer-insert[`insert`] | Erase from children | link:#mrdocs-doc-InlineContainer-operator_plus_eq-06[`operator+=`] | Addition assignment operators | link:#mrdocs-doc-InlineContainer-size[`size`] | Get the number of inline children. | link:#mrdocs-doc-PreconditionBlock-operator_eq-00[`operator==`] | Compare two InlineContainers. | link:#mrdocs-doc-PreconditionBlock-operator_3way-0f[`operator<=>`] | Compare two InlineContainers. |=== == Static Member Functions [cols=1] |=== | Name | link:#mrdocs-doc-PreconditionBlock-isAdmonition[`isAdmonition`] | link:#mrdocs-doc-PreconditionBlock-isBrief[`isBrief`] | link:#mrdocs-doc-PreconditionBlock-isCode[`isCode`] | link:#mrdocs-doc-PreconditionBlock-isDefinitionList[`isDefinitionList`] | link:#mrdocs-doc-PreconditionBlock-isFootnoteDefinition[`isFootnoteDefinition`] | link:#mrdocs-doc-PreconditionBlock-isHeading[`isHeading`] | link:#mrdocs-doc-PreconditionBlock-isList[`isList`] | link:#mrdocs-doc-PreconditionBlock-isMath[`isMath`] | link:#mrdocs-doc-PreconditionBlock-isParagraph[`isParagraph`] | link:#mrdocs-doc-PreconditionBlock-isParam[`isParam`] | link:#mrdocs-doc-PreconditionBlock-isPostcondition[`isPostcondition`] | link:#mrdocs-doc-PreconditionBlock-isPrecondition[`isPrecondition`] | link:#mrdocs-doc-PreconditionBlock-isQuote[`isQuote`] | link:#mrdocs-doc-PreconditionBlock-isReturns[`isReturns`] | link:#mrdocs-doc-PreconditionBlock-isSee[`isSee`] | link:#mrdocs-doc-PreconditionBlock-isTParam[`isTParam`] | link:#mrdocs-doc-PreconditionBlock-isTable[`isTable`] | link:#mrdocs-doc-PreconditionBlock-isThematicBreak[`isThematicBreak`] | link:#mrdocs-doc-PreconditionBlock-isThrows[`isThrows`] |=== == Data Members [cols=1] |=== | Name | link:#mrdocs-doc-InlineContainer-children[`children`] |=== == Static Data Members [cols=1] |=== | Name | link:#mrdocs-doc-PreconditionBlock-kind_id[`kind_id`] |=== == Using Declarations [cols=1] |=== | Name | link:#mrdocs-doc-PreconditionBlock-2constructor[`PreconditionBlock`] |=== == Non-Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-doc-getAsPlainText-097[`getAsPlainText`] | Flatten an InlineContainer to plain text. | link:#mrdocs-doc-getAsPlainText-09f[`getAsPlainText`] | Flatten an InlineContainer to plain text. | link:#mrdocs-doc-isEmpty-06[`isEmpty`] | Determine if the inline is empty | link:#mrdocs-doc-ltrim-0b[`ltrim`] | Removes leading whitespace from the first text element in the given InlineContainer. | link:#mrdocs-doc-ltrim-0d[`ltrim`] | Removes leading whitespace from the block. | link:#mrdocs-doc-rtrim-0b[`rtrim`] | Removes trailing whitespace from the last text element in the given InlineContainer. | link:#mrdocs-doc-rtrim-0c[`rtrim`] | Removes trailing whitespace from the block. | link:#mrdocs-doc-trim-071[`trim`] | Removes leading and trailing whitespace from the block. | link:#mrdocs-doc-trim-08[`trim`] | Removes leading and trailing whitespace from the text elements in the given InlineContainer. |=== Compare two InlineContainers. == Synopses Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` Equality operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr bool link:#mrdocs-doc-PreconditionBlock-operator_eq-02[operator==](link:#mrdocs-doc-PreconditionBlock[PreconditionBlock] const& rhs) const noexcept = default; ---- [.small]#link:#mrdocs-doc-PreconditionBlock-operator_eq-02[_» more..._]# Compare two InlineContainers. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr bool link:#mrdocs-doc-InlineContainer-operator_eq[operator==](link:#mrdocs-doc-InlineContainer[InlineContainer] const& rhs) const = default; ---- [.small]#link:#mrdocs-doc-InlineContainer-operator_eq[_» more..._]# Equality operator == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/PreconditionBlock.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr bool operator==(link:#mrdocs-doc-PreconditionBlock[PreconditionBlock] const& rhs) const noexcept = default; ---- == Return Value `true` if the objects are equal, `false` otherwise == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== Compare two InlineContainers. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr bool operator==(link:#mrdocs-doc-InlineContainer[InlineContainer] const& rhs) const = default; ---- == Return Value `true` if the objects are equal, `false` otherwise == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== Compare two InlineContainers. == Synopses Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` Three‐way comparison operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- auto link:#mrdocs-doc-PreconditionBlock-operator_3way-09[operator<=>](link:#mrdocs-doc-PreconditionBlock[PreconditionBlock] const& rhs) const = default; ---- [.small]#link:#mrdocs-doc-PreconditionBlock-operator_3way-09[_» more..._]# Three‐way comparison operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr auto link:#mrdocs-doc-PreconditionBlock-operator_3way-06[operator<=>](link:#mrdocs-doc-BlockCommonBase-0ed[BlockCommonBase<mrdocs::doc::BlockKind::Precondition>] const& rhs) const = default; ---- [.small]#link:#mrdocs-doc-PreconditionBlock-operator_3way-06[_» more..._]# Compare two InlineContainers. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::strong_ordering link:#mrdocs-doc-InlineContainer-operator_3way[operator<=>](link:#mrdocs-doc-InlineContainer[InlineContainer] const& rhs) const; ---- [.small]#link:#mrdocs-doc-InlineContainer-operator_3way[_» more..._]# Three‐way comparison operator == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/PreconditionBlock.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- auto operator<=>(link:#mrdocs-doc-PreconditionBlock[PreconditionBlock] const& rhs) const = default; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== Three‐way comparison operator == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr auto operator<=>(link:#mrdocs-doc-BlockCommonBase-0ed[BlockCommonBase<mrdocs::doc::BlockKind::Precondition>] const& rhs) const = default; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== Compare two InlineContainers. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::strong_ordering operator<=>(link:#mrdocs-doc-InlineContainer[InlineContainer] const& rhs) const; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isAdmonition() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isBrief() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isCode() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isDefinitionList() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isFootnoteDefinition() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isHeading() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isList() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isMath() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isParagraph() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isParam() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isPostcondition() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isPrecondition() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isQuote() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isReturns() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isSee() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isTParam() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isTable() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isThematicBreak() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isThrows() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static link:#mrdocs-doc-BlockKind[BlockKind] kind_id; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/PreconditionBlock.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- using InlineContainer::PreconditionBlock; ---- == Introduced Symbols [cols=2] |=== | Name | Description | link:#mrdocs-doc-InlineContainer-2constructor-06[mrdocs::doc::InlineContainer::InlineContainer] | Construct an InlineContainer with a single TextInline child. | link:#mrdocs-doc-InlineContainer-2constructor-0b[mrdocs::doc::InlineContainer::InlineContainer] | Construct an InlineContainer with a single TextInline child. | link:#mrdocs-doc-InlineContainer-2constructor-0a8[mrdocs::doc::InlineContainer::InlineContainer] | Construct an InlineContainer with a single TextInline child. | link:#mrdocs-doc-InlineContainer-2constructor-09[mrdocs::doc::InlineContainer::InlineContainer] | Construct an InlineContainer with a single TextInline child. | link:#mrdocs-doc-InlineContainer-2constructor-07[mrdocs::doc::InlineContainer::InlineContainer] | Move constructor | link:#mrdocs-doc-InlineContainer-2constructor-0af[mrdocs::doc::InlineContainer::InlineContainer] | Copy constructor |=== A list of list items == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/QuoteBlock.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- struct QuoteBlock final : link:#mrdocs-doc-BlockCommonBase-0ed[BlockCommonBase<BlockKind::Quote>] , link:#mrdocs-doc-BlockContainer[BlockContainer] ---- == Base Classes [cols=2] |=== | Name | Description | `link:#mrdocs-doc-BlockCommonBase-0ed[BlockCommonBase<BlockKind::Quote>]` | Base class for providing variant discriminator functions. | `link:#mrdocs-doc-BlockContainer[BlockContainer]` | |=== == Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-doc-BlockContainer-asBlockContainer-0c[`asBlockContainer`] | | link:#mrdocs-doc-QuoteBlock-operator_eq-0b[`operator==`] | Equality operators | link:#mrdocs-doc-QuoteBlock-operator_3way-0e[`operator<=>`] | Three‐way comparison operators |=== == Static Member Functions [cols=1] |=== | Name | link:#mrdocs-doc-QuoteBlock-isAdmonition[`isAdmonition`] | link:#mrdocs-doc-QuoteBlock-isBrief[`isBrief`] | link:#mrdocs-doc-QuoteBlock-isCode[`isCode`] | link:#mrdocs-doc-QuoteBlock-isDefinitionList[`isDefinitionList`] | link:#mrdocs-doc-QuoteBlock-isFootnoteDefinition[`isFootnoteDefinition`] | link:#mrdocs-doc-QuoteBlock-isHeading[`isHeading`] | link:#mrdocs-doc-QuoteBlock-isList[`isList`] | link:#mrdocs-doc-QuoteBlock-isMath[`isMath`] | link:#mrdocs-doc-QuoteBlock-isParagraph[`isParagraph`] | link:#mrdocs-doc-QuoteBlock-isParam[`isParam`] | link:#mrdocs-doc-QuoteBlock-isPostcondition[`isPostcondition`] | link:#mrdocs-doc-QuoteBlock-isPrecondition[`isPrecondition`] | link:#mrdocs-doc-QuoteBlock-isQuote[`isQuote`] | link:#mrdocs-doc-QuoteBlock-isReturns[`isReturns`] | link:#mrdocs-doc-QuoteBlock-isSee[`isSee`] | link:#mrdocs-doc-QuoteBlock-isTParam[`isTParam`] | link:#mrdocs-doc-QuoteBlock-isTable[`isTable`] | link:#mrdocs-doc-QuoteBlock-isThematicBreak[`isThematicBreak`] | link:#mrdocs-doc-QuoteBlock-isThrows[`isThrows`] |=== == Data Members [cols=1] |=== | Name | link:#mrdocs-doc-BlockContainer-blocks[`blocks`] |=== == Static Data Members [cols=1] |=== | Name | link:#mrdocs-doc-QuoteBlock-kind_id[`kind_id`] |=== == Non-Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-doc-isEmpty-06[`isEmpty`] | Determine if the inline is empty | link:#mrdocs-doc-ltrim-01[`ltrim`] | Removes leading whitespace from the first text elements | link:#mrdocs-doc-ltrim-0d[`ltrim`] | Removes leading whitespace from the block. | link:#mrdocs-doc-rtrim-06[`rtrim`] | Removes trailing whitespace from the last text elements | link:#mrdocs-doc-rtrim-0c[`rtrim`] | Removes trailing whitespace from the block. | link:#mrdocs-doc-trim-071[`trim`] | Removes leading and trailing whitespace from the block. | link:#mrdocs-doc-trim-0b[`trim`] | Removes leading and trailing whitespace from the text elements |=== Equality operators == Synopses Declared in `<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>` Equality operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr bool link:#mrdocs-doc-QuoteBlock-operator_eq-00[operator==](link:#mrdocs-doc-QuoteBlock[QuoteBlock] const& rhs) const noexcept = default; ---- [.small]#link:#mrdocs-doc-QuoteBlock-operator_eq-00[_» more..._]# Equality operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr bool link:#mrdocs-doc-BlockContainer-operator_eq[operator==](link:#mrdocs-doc-BlockContainer[BlockContainer] const& rhs) const = default; ---- [.small]#link:#mrdocs-doc-BlockContainer-operator_eq[_» more..._]# Equality operator == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/QuoteBlock.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr bool operator==(link:#mrdocs-doc-QuoteBlock[QuoteBlock] const& rhs) const noexcept = default; ---- == Return Value `true` if the objects are equal, `false` otherwise == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== Equality operator == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr bool operator==(link:#mrdocs-doc-BlockContainer[BlockContainer] const& rhs) const = default; ---- == Return Value `true` if the objects are equal, `false` otherwise == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== Three‐way comparison operators == Synopses Declared in `<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>` Three‐way comparison operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- auto link:#mrdocs-doc-QuoteBlock-operator_3way-08[operator<=>](link:#mrdocs-doc-QuoteBlock[QuoteBlock] const& rhs) const = default; ---- [.small]#link:#mrdocs-doc-QuoteBlock-operator_3way-08[_» more..._]# Three‐way comparison operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr auto link:#mrdocs-doc-QuoteBlock-operator_3way-03[operator<=>](link:#mrdocs-doc-BlockCommonBase-0ed[BlockCommonBase<mrdocs::doc::BlockKind::Quote>] const& rhs) const = default; ---- [.small]#link:#mrdocs-doc-QuoteBlock-operator_3way-03[_» more..._]# Three‐way comparison operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::strong_ordering link:#mrdocs-doc-BlockContainer-operator_3way[operator<=>](link:#mrdocs-doc-BlockContainer[BlockContainer] const& rhs) const; ---- [.small]#link:#mrdocs-doc-BlockContainer-operator_3way[_» more..._]# Three‐way comparison operator == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/QuoteBlock.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- auto operator<=>(link:#mrdocs-doc-QuoteBlock[QuoteBlock] const& rhs) const = default; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== Three‐way comparison operator == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr auto operator<=>(link:#mrdocs-doc-BlockCommonBase-0ed[BlockCommonBase<mrdocs::doc::BlockKind::Quote>] const& rhs) const = default; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== Three‐way comparison operator == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::strong_ordering operator<=>(link:#mrdocs-doc-BlockContainer[BlockContainer] const& rhs) const; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isAdmonition() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isBrief() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isCode() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isDefinitionList() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isFootnoteDefinition() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isHeading() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isList() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isMath() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isParagraph() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isParam() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isPostcondition() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isPrecondition() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isQuote() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isReturns() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isSee() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isTParam() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isTable() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isThematicBreak() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isThrows() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static link:#mrdocs-doc-BlockKind[BlockKind] kind_id; ---- A reference to a symbol. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/ReferenceInline.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- struct ReferenceInline : link:#mrdocs-doc-InlineCommonBase-0dc[InlineCommonBase<InlineKind::Reference>] ---- == Base Classes [cols=2] |=== | Name | Description | `link:#mrdocs-doc-InlineCommonBase-0dc[InlineCommonBase<InlineKind::Reference>]` | Base class for providing variant discriminator functions. |=== == Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-doc-ReferenceInline-2constructor[`ReferenceInline`] [.small]#[constructor]# | Construct from `string` | link:#mrdocs-doc-ReferenceInline-operator_eq[`operator==`] | Equality operator | link:#mrdocs-doc-ReferenceInline-operator_3way-0e[`operator<=>`] | Three‐way comparison operators |=== == Static Member Functions [cols=1] |=== | Name | link:#mrdocs-doc-ReferenceInline-isCode[`isCode`] | link:#mrdocs-doc-ReferenceInline-isCopyDetails[`isCopyDetails`] | link:#mrdocs-doc-ReferenceInline-isEmph[`isEmph`] | link:#mrdocs-doc-ReferenceInline-isFootnoteReference[`isFootnoteReference`] | link:#mrdocs-doc-ReferenceInline-isHighlight[`isHighlight`] | link:#mrdocs-doc-ReferenceInline-isImage[`isImage`] | link:#mrdocs-doc-ReferenceInline-isLineBreak[`isLineBreak`] | link:#mrdocs-doc-ReferenceInline-isLink[`isLink`] | link:#mrdocs-doc-ReferenceInline-isMath[`isMath`] | link:#mrdocs-doc-ReferenceInline-isReference[`isReference`] | link:#mrdocs-doc-ReferenceInline-isSoftBreak[`isSoftBreak`] | link:#mrdocs-doc-ReferenceInline-isStrikethrough[`isStrikethrough`] | link:#mrdocs-doc-ReferenceInline-isStrong[`isStrong`] | link:#mrdocs-doc-ReferenceInline-isSubscript[`isSubscript`] | link:#mrdocs-doc-ReferenceInline-isSuperscript[`isSuperscript`] | link:#mrdocs-doc-ReferenceInline-isText[`isText`] |=== == Data Members [cols=1] |=== | Name | link:#mrdocs-doc-ReferenceInline-id[`id`] | link:#mrdocs-doc-ReferenceInline-literal[`literal`] |=== == Static Data Members [cols=1] |=== | Name | link:#mrdocs-doc-ReferenceInline-kind_id[`kind_id`] |=== == Non-Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-doc-getAsPlainText-0ad[`getAsPlainText`] | Get the plain text representation of an inline element tree. | link:#mrdocs-doc-getAsPlainText-0ae[`getAsPlainText`] | Get the plain text representation of an inline element tree. |=== Construct from `string` == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/ReferenceInline.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- explicit ReferenceInline(std::string str = {}) noexcept; ---- == Parameters [cols=2] |=== | Name | Description | *str* | The object to construct from |=== Equality operator == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/ReferenceInline.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr bool operator==(link:#mrdocs-doc-ReferenceInline[ReferenceInline] const& rhs) const noexcept = default; ---- == Return Value `true` if the objects are equal, `false` otherwise == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== Three‐way comparison operators == Synopses Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` Three‐way comparison operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- auto link:#mrdocs-doc-ReferenceInline-operator_3way-07[operator<=>](link:#mrdocs-doc-ReferenceInline[ReferenceInline] const& rhs) const = default; ---- [.small]#link:#mrdocs-doc-ReferenceInline-operator_3way-07[_» more..._]# Three‐way comparison operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr auto link:#mrdocs-doc-ReferenceInline-operator_3way-01[operator<=>](link:#mrdocs-doc-InlineCommonBase-0dc[InlineCommonBase<mrdocs::doc::InlineKind::Reference>] const& rhs) const = default; ---- [.small]#link:#mrdocs-doc-ReferenceInline-operator_3way-01[_» more..._]# Three‐way comparison operator == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/ReferenceInline.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- auto operator<=>(link:#mrdocs-doc-ReferenceInline[ReferenceInline] const& rhs) const = default; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== Three‐way comparison operator == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr auto operator<=>(link:#mrdocs-doc-InlineCommonBase-0dc[InlineCommonBase<mrdocs::doc::InlineKind::Reference>] const& rhs) const = default; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isCode() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isCopyDetails() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isEmph() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isFootnoteReference() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isHighlight() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isImage() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isLineBreak() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isLink() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isMath() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isReference() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isSoftBreak() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isStrikethrough() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isStrong() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isSubscript() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isSuperscript() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isText() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/ReferenceInline.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-SymbolID[SymbolID] id = = SymbolID::invalid; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/ReferenceInline.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::string literal; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static link:#mrdocs-doc-InlineKind[InlineKind] kind_id; ---- Documentation for a function return type == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/ReturnsBlock.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- struct ReturnsBlock final : link:#mrdocs-doc-BlockCommonBase-0ed[BlockCommonBase<BlockKind::Returns>] , link:#mrdocs-doc-InlineContainer[InlineContainer] ---- == Base Classes [cols=2] |=== | Name | Description | `link:#mrdocs-doc-BlockCommonBase-0ed[BlockCommonBase<BlockKind::Returns>]` | Base class for providing variant discriminator functions. | `link:#mrdocs-doc-InlineContainer[InlineContainer]` | An internal node in the inline element tree |=== == Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-doc-ReturnsBlock-2constructor-04c[`ReturnsBlock`] [.small]#[constructor]# | Constructors | link:#mrdocs-doc-ReturnsBlock-2destructor[`~ReturnsBlock`] [.small]#[destructor]# [.small]#[virtual]# | Destructor | link:#mrdocs-doc-ReturnsBlock-operator_assign-0f[`operator=`] | Assign an InlineContainer with a single TextInline child. | link:#mrdocs-doc-InlineContainer-append-0c[`append`] | `append` overloads | link:#mrdocs-doc-InlineContainer-asInlineContainer-0b[`asInlineContainer`] | Helper function so that derived classes can get a reference to the base class. | link:#mrdocs-doc-InlineContainer-back-03[`back`] | Get the last inline child. | link:#mrdocs-doc-InlineContainer-begin[`begin`] | Begin iterator forwarding to children | link:#mrdocs-doc-InlineContainer-clear[`clear`] | Clear all inline children. | link:#mrdocs-doc-InlineContainer-emplace_back[`emplace_back`] | Append a child of the specified type. | link:#mrdocs-doc-InlineContainer-empty[`empty`] | Determine if there are no inline children. | link:#mrdocs-doc-InlineContainer-end[`end`] | End iterator forwarding to children | link:#mrdocs-doc-InlineContainer-erase[`erase`] | Erase from children | link:#mrdocs-doc-InlineContainer-front-03[`front`] | Get the first inline child. | link:#mrdocs-doc-InlineContainer-insert[`insert`] | Erase from children | link:#mrdocs-doc-InlineContainer-operator_plus_eq-06[`operator+=`] | Addition assignment operators | link:#mrdocs-doc-InlineContainer-size[`size`] | Get the number of inline children. | link:#mrdocs-doc-ReturnsBlock-operator_eq-0e[`operator==`] | Compare two InlineContainers. | link:#mrdocs-doc-ReturnsBlock-operator_3way-02[`operator<=>`] | Compare two InlineContainers. |=== == Static Member Functions [cols=1] |=== | Name | link:#mrdocs-doc-ReturnsBlock-isAdmonition[`isAdmonition`] | link:#mrdocs-doc-ReturnsBlock-isBrief[`isBrief`] | link:#mrdocs-doc-ReturnsBlock-isCode[`isCode`] | link:#mrdocs-doc-ReturnsBlock-isDefinitionList[`isDefinitionList`] | link:#mrdocs-doc-ReturnsBlock-isFootnoteDefinition[`isFootnoteDefinition`] | link:#mrdocs-doc-ReturnsBlock-isHeading[`isHeading`] | link:#mrdocs-doc-ReturnsBlock-isList[`isList`] | link:#mrdocs-doc-ReturnsBlock-isMath[`isMath`] | link:#mrdocs-doc-ReturnsBlock-isParagraph[`isParagraph`] | link:#mrdocs-doc-ReturnsBlock-isParam[`isParam`] | link:#mrdocs-doc-ReturnsBlock-isPostcondition[`isPostcondition`] | link:#mrdocs-doc-ReturnsBlock-isPrecondition[`isPrecondition`] | link:#mrdocs-doc-ReturnsBlock-isQuote[`isQuote`] | link:#mrdocs-doc-ReturnsBlock-isReturns[`isReturns`] | link:#mrdocs-doc-ReturnsBlock-isSee[`isSee`] | link:#mrdocs-doc-ReturnsBlock-isTParam[`isTParam`] | link:#mrdocs-doc-ReturnsBlock-isTable[`isTable`] | link:#mrdocs-doc-ReturnsBlock-isThematicBreak[`isThematicBreak`] | link:#mrdocs-doc-ReturnsBlock-isThrows[`isThrows`] |=== == Data Members [cols=1] |=== | Name | link:#mrdocs-doc-InlineContainer-children[`children`] |=== == Static Data Members [cols=1] |=== | Name | link:#mrdocs-doc-ReturnsBlock-kind_id[`kind_id`] |=== == Using Declarations [cols=1] |=== | Name | link:#mrdocs-doc-ReturnsBlock-2constructor-0a[`ReturnsBlock`] |=== == Non-Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-doc-getAsPlainText-097[`getAsPlainText`] | Flatten an InlineContainer to plain text. | link:#mrdocs-doc-getAsPlainText-09f[`getAsPlainText`] | Flatten an InlineContainer to plain text. | link:#mrdocs-doc-isEmpty-06[`isEmpty`] | Determine if the inline is empty | link:#mrdocs-doc-ltrim-0b[`ltrim`] | Removes leading whitespace from the first text element in the given InlineContainer. | link:#mrdocs-doc-ltrim-0d[`ltrim`] | Removes leading whitespace from the block. | link:#mrdocs-doc-rtrim-0b[`rtrim`] | Removes trailing whitespace from the last text element in the given InlineContainer. | link:#mrdocs-doc-rtrim-0c[`rtrim`] | Removes trailing whitespace from the block. | link:#mrdocs-doc-trim-071[`trim`] | Removes leading and trailing whitespace from the block. | link:#mrdocs-doc-trim-08[`trim`] | Removes leading and trailing whitespace from the text elements in the given InlineContainer. |=== Constructors == Synopses Declared in `<mrdocs/Metadata/DocComment/Block/ReturnsBlock.hpp>` Copy constructor [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-doc-ReturnsBlock-2constructor-04b[ReturnsBlock](link:#mrdocs-doc-ReturnsBlock[ReturnsBlock] const& other) = default; ---- [.small]#link:#mrdocs-doc-ReturnsBlock-2constructor-04b[_» more..._]# Move constructor [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-doc-ReturnsBlock-2constructor-05[ReturnsBlock](link:#mrdocs-doc-ReturnsBlock[ReturnsBlock]&& other) noexcept = default; ---- [.small]#link:#mrdocs-doc-ReturnsBlock-2constructor-05[_» more..._]# Construct from `InlineContainer` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-doc-ReturnsBlock-2constructor-00[ReturnsBlock](link:#mrdocs-doc-InlineContainer[InlineContainer] const& other); ---- [.small]#link:#mrdocs-doc-ReturnsBlock-2constructor-00[_» more..._]# Construct from `InlineContainer` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-doc-ReturnsBlock-2constructor-0b[ReturnsBlock](link:#mrdocs-doc-InlineContainer[InlineContainer]&& other) noexcept; ---- [.small]#link:#mrdocs-doc-ReturnsBlock-2constructor-0b[_» more..._]# Copy constructor == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/ReturnsBlock.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr ReturnsBlock(link:#mrdocs-doc-ReturnsBlock[ReturnsBlock] const& other) = default; ---- == Parameters [cols=2] |=== | Name | Description | *other* | The object to copy construct from |=== Move constructor == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/ReturnsBlock.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr ReturnsBlock(link:#mrdocs-doc-ReturnsBlock[ReturnsBlock]&& other) noexcept = default; ---- == Parameters [cols=2] |=== | Name | Description | *other* | The object to move construct from |=== Construct from `InlineContainer` == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/ReturnsBlock.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- ReturnsBlock(link:#mrdocs-doc-InlineContainer[InlineContainer] const& other); ---- == Parameters [cols=2] |=== | Name | Description | *other* | The object to copy construct from |=== Construct from `InlineContainer` == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/ReturnsBlock.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- ReturnsBlock(link:#mrdocs-doc-InlineContainer[InlineContainer]&& other) noexcept; ---- == Parameters [cols=2] |=== | Name | Description | *other* | The object to move construct from |=== Destructor == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/ReturnsBlock.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr virtual ~ReturnsBlock() override = default; ---- Assign an InlineContainer with a single TextInline child. == Synopses Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` Copy assignment operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-doc-InlineContainer[InlineContainer]& link:#mrdocs-doc-InlineContainer-operator_assign-05[operator=](link:#mrdocs-doc-InlineContainer[InlineContainer] const& other) = default; ---- [.small]#link:#mrdocs-doc-InlineContainer-operator_assign-05[_» more..._]# Copy assignment operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-doc-ReturnsBlock[ReturnsBlock]& link:#mrdocs-doc-ReturnsBlock-operator_assign-03[operator=](link:#mrdocs-doc-ReturnsBlock[ReturnsBlock] const& other) = default; ---- [.small]#link:#mrdocs-doc-ReturnsBlock-operator_assign-03[_» more..._]# Move assignment operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-doc-InlineContainer[InlineContainer]& link:#mrdocs-doc-InlineContainer-operator_assign-0b[operator=](link:#mrdocs-doc-InlineContainer[InlineContainer]&& other) noexcept = default; ---- [.small]#link:#mrdocs-doc-InlineContainer-operator_assign-0b[_» more..._]# Move assignment operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-doc-ReturnsBlock[ReturnsBlock]& link:#mrdocs-doc-ReturnsBlock-operator_assign-09[operator=](link:#mrdocs-doc-ReturnsBlock[ReturnsBlock]&& other) noexcept = default; ---- [.small]#link:#mrdocs-doc-ReturnsBlock-operator_assign-09[_» more..._]# Assign an InlineContainer with a single TextInline child. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-doc-InlineContainer[InlineContainer]& link:#mrdocs-doc-InlineContainer-operator_assign-09[operator=](std::string_view text); ---- [.small]#link:#mrdocs-doc-InlineContainer-operator_assign-09[_» more..._]# Copy assignment operator == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-doc-InlineContainer[InlineContainer]& operator=(link:#mrdocs-doc-InlineContainer[InlineContainer] const& other) = default; ---- == Return Value Reference to the current object == Parameters [cols=2] |=== | Name | Description | *other* | The object to copy assign from |=== Copy assignment operator == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/ReturnsBlock.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-doc-ReturnsBlock[ReturnsBlock]& operator=(link:#mrdocs-doc-ReturnsBlock[ReturnsBlock] const& other) = default; ---- == Return Value Reference to the current object == Parameters [cols=2] |=== | Name | Description | *other* | The object to copy assign from |=== Move assignment operator == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-doc-InlineContainer[InlineContainer]& operator=(link:#mrdocs-doc-InlineContainer[InlineContainer]&& other) noexcept = default; ---- == Return Value Reference to the current object == Parameters [cols=2] |=== | Name | Description | *other* | The object to move assign from |=== Move assignment operator == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/ReturnsBlock.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-doc-ReturnsBlock[ReturnsBlock]& operator=(link:#mrdocs-doc-ReturnsBlock[ReturnsBlock]&& other) noexcept = default; ---- == Return Value Reference to the current object == Parameters [cols=2] |=== | Name | Description | *other* | The object to move assign from |=== Assign an InlineContainer with a single TextInline child. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-doc-InlineContainer[InlineContainer]& operator=(std::string_view text); ---- == Return Value Reference to the current object == Parameters [cols=2] |=== | Name | Description | *text* | The object to assign from |=== Compare two InlineContainers. == Synopses Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` Equality operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr bool link:#mrdocs-doc-ReturnsBlock-operator_eq-0f[operator==](link:#mrdocs-doc-ReturnsBlock[ReturnsBlock] const& rhs) const noexcept = default; ---- [.small]#link:#mrdocs-doc-ReturnsBlock-operator_eq-0f[_» more..._]# Compare two InlineContainers. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr bool link:#mrdocs-doc-InlineContainer-operator_eq[operator==](link:#mrdocs-doc-InlineContainer[InlineContainer] const& rhs) const = default; ---- [.small]#link:#mrdocs-doc-InlineContainer-operator_eq[_» more..._]# Equality operator == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/ReturnsBlock.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr bool operator==(link:#mrdocs-doc-ReturnsBlock[ReturnsBlock] const& rhs) const noexcept = default; ---- == Return Value `true` if the objects are equal, `false` otherwise == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== Compare two InlineContainers. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr bool operator==(link:#mrdocs-doc-InlineContainer[InlineContainer] const& rhs) const = default; ---- == Return Value `true` if the objects are equal, `false` otherwise == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== Compare two InlineContainers. == Synopses Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` Three‐way comparison operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- auto link:#mrdocs-doc-ReturnsBlock-operator_3way-00[operator<=>](link:#mrdocs-doc-ReturnsBlock[ReturnsBlock] const& rhs) const = default; ---- [.small]#link:#mrdocs-doc-ReturnsBlock-operator_3way-00[_» more..._]# Three‐way comparison operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr auto link:#mrdocs-doc-ReturnsBlock-operator_3way-0c[operator<=>](link:#mrdocs-doc-BlockCommonBase-0ed[BlockCommonBase<mrdocs::doc::BlockKind::Returns>] const& rhs) const = default; ---- [.small]#link:#mrdocs-doc-ReturnsBlock-operator_3way-0c[_» more..._]# Compare two InlineContainers. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::strong_ordering link:#mrdocs-doc-InlineContainer-operator_3way[operator<=>](link:#mrdocs-doc-InlineContainer[InlineContainer] const& rhs) const; ---- [.small]#link:#mrdocs-doc-InlineContainer-operator_3way[_» more..._]# Three‐way comparison operator == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/ReturnsBlock.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- auto operator<=>(link:#mrdocs-doc-ReturnsBlock[ReturnsBlock] const& rhs) const = default; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== Three‐way comparison operator == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr auto operator<=>(link:#mrdocs-doc-BlockCommonBase-0ed[BlockCommonBase<mrdocs::doc::BlockKind::Returns>] const& rhs) const = default; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== Compare two InlineContainers. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::strong_ordering operator<=>(link:#mrdocs-doc-InlineContainer[InlineContainer] const& rhs) const; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isAdmonition() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isBrief() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isCode() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isDefinitionList() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isFootnoteDefinition() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isHeading() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isList() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isMath() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isParagraph() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isParam() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isPostcondition() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isPrecondition() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isQuote() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isReturns() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isSee() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isTParam() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isTable() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isThematicBreak() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isThrows() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static link:#mrdocs-doc-BlockKind[BlockKind] kind_id; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/ReturnsBlock.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- using InlineContainer::ReturnsBlock; ---- == Introduced Symbols [cols=2] |=== | Name | Description | link:#mrdocs-doc-InlineContainer-2constructor-06[mrdocs::doc::InlineContainer::InlineContainer] | Construct an InlineContainer with a single TextInline child. | link:#mrdocs-doc-InlineContainer-2constructor-0b[mrdocs::doc::InlineContainer::InlineContainer] | Construct an InlineContainer with a single TextInline child. | link:#mrdocs-doc-InlineContainer-2constructor-0a8[mrdocs::doc::InlineContainer::InlineContainer] | Construct an InlineContainer with a single TextInline child. | link:#mrdocs-doc-InlineContainer-2constructor-09[mrdocs::doc::InlineContainer::InlineContainer] | Construct an InlineContainer with a single TextInline child. |=== A == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/SeeBlock.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- struct SeeBlock final : link:#mrdocs-doc-BlockCommonBase-0ed[BlockCommonBase<BlockKind::See>] , link:#mrdocs-doc-InlineContainer[InlineContainer] ---- == Base Classes [cols=2] |=== | Name | Description | `link:#mrdocs-doc-BlockCommonBase-0ed[BlockCommonBase<BlockKind::See>]` | Base class for providing variant discriminator functions. | `link:#mrdocs-doc-InlineContainer[InlineContainer]` | An internal node in the inline element tree |=== == Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-doc-InlineContainer-operator_assign-02[`operator=`] | Assign an InlineContainer with a single TextInline child. | link:#mrdocs-doc-InlineContainer-append-0c[`append`] | `append` overloads | link:#mrdocs-doc-InlineContainer-asInlineContainer-0b[`asInlineContainer`] | Helper function so that derived classes can get a reference to the base class. | link:#mrdocs-doc-InlineContainer-back-03[`back`] | Get the last inline child. | link:#mrdocs-doc-InlineContainer-begin[`begin`] | Begin iterator forwarding to children | link:#mrdocs-doc-InlineContainer-clear[`clear`] | Clear all inline children. | link:#mrdocs-doc-InlineContainer-emplace_back[`emplace_back`] | Append a child of the specified type. | link:#mrdocs-doc-InlineContainer-empty[`empty`] | Determine if there are no inline children. | link:#mrdocs-doc-InlineContainer-end[`end`] | End iterator forwarding to children | link:#mrdocs-doc-InlineContainer-erase[`erase`] | Erase from children | link:#mrdocs-doc-InlineContainer-front-03[`front`] | Get the first inline child. | link:#mrdocs-doc-InlineContainer-insert[`insert`] | Erase from children | link:#mrdocs-doc-InlineContainer-operator_plus_eq-06[`operator+=`] | Addition assignment operators | link:#mrdocs-doc-InlineContainer-size[`size`] | Get the number of inline children. | link:#mrdocs-doc-SeeBlock-operator_eq-01[`operator==`] | Compare two InlineContainers. | link:#mrdocs-doc-SeeBlock-operator_3way-06[`operator<=>`] | Compare two InlineContainers. |=== == Static Member Functions [cols=1] |=== | Name | link:#mrdocs-doc-SeeBlock-isAdmonition[`isAdmonition`] | link:#mrdocs-doc-SeeBlock-isBrief[`isBrief`] | link:#mrdocs-doc-SeeBlock-isCode[`isCode`] | link:#mrdocs-doc-SeeBlock-isDefinitionList[`isDefinitionList`] | link:#mrdocs-doc-SeeBlock-isFootnoteDefinition[`isFootnoteDefinition`] | link:#mrdocs-doc-SeeBlock-isHeading[`isHeading`] | link:#mrdocs-doc-SeeBlock-isList[`isList`] | link:#mrdocs-doc-SeeBlock-isMath[`isMath`] | link:#mrdocs-doc-SeeBlock-isParagraph[`isParagraph`] | link:#mrdocs-doc-SeeBlock-isParam[`isParam`] | link:#mrdocs-doc-SeeBlock-isPostcondition[`isPostcondition`] | link:#mrdocs-doc-SeeBlock-isPrecondition[`isPrecondition`] | link:#mrdocs-doc-SeeBlock-isQuote[`isQuote`] | link:#mrdocs-doc-SeeBlock-isReturns[`isReturns`] | link:#mrdocs-doc-SeeBlock-isSee[`isSee`] | link:#mrdocs-doc-SeeBlock-isTParam[`isTParam`] | link:#mrdocs-doc-SeeBlock-isTable[`isTable`] | link:#mrdocs-doc-SeeBlock-isThematicBreak[`isThematicBreak`] | link:#mrdocs-doc-SeeBlock-isThrows[`isThrows`] |=== == Data Members [cols=1] |=== | Name | link:#mrdocs-doc-InlineContainer-children[`children`] |=== == Static Data Members [cols=1] |=== | Name | link:#mrdocs-doc-SeeBlock-kind_id[`kind_id`] |=== == Using Declarations [cols=1] |=== | Name | link:#mrdocs-doc-SeeBlock-2constructor[`SeeBlock`] |=== == Non-Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-doc-getAsPlainText-097[`getAsPlainText`] | Flatten an InlineContainer to plain text. | link:#mrdocs-doc-getAsPlainText-09f[`getAsPlainText`] | Flatten an InlineContainer to plain text. | link:#mrdocs-doc-isEmpty-06[`isEmpty`] | Determine if the inline is empty | link:#mrdocs-doc-ltrim-0b[`ltrim`] | Removes leading whitespace from the first text element in the given InlineContainer. | link:#mrdocs-doc-ltrim-0d[`ltrim`] | Removes leading whitespace from the block. | link:#mrdocs-doc-rtrim-0b[`rtrim`] | Removes trailing whitespace from the last text element in the given InlineContainer. | link:#mrdocs-doc-rtrim-0c[`rtrim`] | Removes trailing whitespace from the block. | link:#mrdocs-doc-trim-071[`trim`] | Removes leading and trailing whitespace from the block. | link:#mrdocs-doc-trim-08[`trim`] | Removes leading and trailing whitespace from the text elements in the given InlineContainer. |=== == See Also paragraph Compare two InlineContainers. == Synopses Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` Equality operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr bool link:#mrdocs-doc-SeeBlock-operator_eq-0c[operator==](link:#mrdocs-doc-SeeBlock[SeeBlock] const& rhs) const noexcept = default; ---- [.small]#link:#mrdocs-doc-SeeBlock-operator_eq-0c[_» more..._]# Compare two InlineContainers. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr bool link:#mrdocs-doc-InlineContainer-operator_eq[operator==](link:#mrdocs-doc-InlineContainer[InlineContainer] const& rhs) const = default; ---- [.small]#link:#mrdocs-doc-InlineContainer-operator_eq[_» more..._]# Equality operator == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/SeeBlock.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr bool operator==(link:#mrdocs-doc-SeeBlock[SeeBlock] const& rhs) const noexcept = default; ---- == Return Value `true` if the objects are equal, `false` otherwise == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== Compare two InlineContainers. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr bool operator==(link:#mrdocs-doc-InlineContainer[InlineContainer] const& rhs) const = default; ---- == Return Value `true` if the objects are equal, `false` otherwise == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== Compare two InlineContainers. == Synopses Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` Three‐way comparison operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- auto link:#mrdocs-doc-SeeBlock-operator_3way-0b[operator<=>](link:#mrdocs-doc-SeeBlock[SeeBlock] const& rhs) const = default; ---- [.small]#link:#mrdocs-doc-SeeBlock-operator_3way-0b[_» more..._]# Three‐way comparison operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr auto link:#mrdocs-doc-SeeBlock-operator_3way-0f[operator<=>](link:#mrdocs-doc-BlockCommonBase-0ed[BlockCommonBase<mrdocs::doc::BlockKind::See>] const& rhs) const = default; ---- [.small]#link:#mrdocs-doc-SeeBlock-operator_3way-0f[_» more..._]# Compare two InlineContainers. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::strong_ordering link:#mrdocs-doc-InlineContainer-operator_3way[operator<=>](link:#mrdocs-doc-InlineContainer[InlineContainer] const& rhs) const; ---- [.small]#link:#mrdocs-doc-InlineContainer-operator_3way[_» more..._]# Three‐way comparison operator == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/SeeBlock.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- auto operator<=>(link:#mrdocs-doc-SeeBlock[SeeBlock] const& rhs) const = default; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== Three‐way comparison operator == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr auto operator<=>(link:#mrdocs-doc-BlockCommonBase-0ed[BlockCommonBase<mrdocs::doc::BlockKind::See>] const& rhs) const = default; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== Compare two InlineContainers. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::strong_ordering operator<=>(link:#mrdocs-doc-InlineContainer[InlineContainer] const& rhs) const; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isAdmonition() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isBrief() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isCode() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isDefinitionList() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isFootnoteDefinition() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isHeading() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isList() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isMath() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isParagraph() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isParam() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isPostcondition() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isPrecondition() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isQuote() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isReturns() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isSee() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isTParam() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isTable() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isThematicBreak() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isThrows() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static link:#mrdocs-doc-BlockKind[BlockKind] kind_id; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/SeeBlock.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- using InlineContainer::SeeBlock; ---- == Introduced Symbols [cols=2] |=== | Name | Description | link:#mrdocs-doc-InlineContainer-2constructor-06[mrdocs::doc::InlineContainer::InlineContainer] | Construct an InlineContainer with a single TextInline child. | link:#mrdocs-doc-InlineContainer-2constructor-0b[mrdocs::doc::InlineContainer::InlineContainer] | Construct an InlineContainer with a single TextInline child. | link:#mrdocs-doc-InlineContainer-2constructor-0a8[mrdocs::doc::InlineContainer::InlineContainer] | Construct an InlineContainer with a single TextInline child. | link:#mrdocs-doc-InlineContainer-2constructor-09[mrdocs::doc::InlineContainer::InlineContainer] | Construct an InlineContainer with a single TextInline child. | link:#mrdocs-doc-InlineContainer-2constructor-07[mrdocs::doc::InlineContainer::InlineContainer] | Move constructor | link:#mrdocs-doc-InlineContainer-2constructor-0af[mrdocs::doc::InlineContainer::InlineContainer] | Copy constructor |=== A line break that may render as space == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/SoftBreakInline.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- struct SoftBreakInline : link:#mrdocs-doc-InlineCommonBase-0dc[InlineCommonBase<InlineKind::SoftBreak>] ---- == Base Classes [cols=2] |=== | Name | Description | `link:#mrdocs-doc-InlineCommonBase-0dc[InlineCommonBase<InlineKind::SoftBreak>]` | Base class for providing variant discriminator functions. |=== == Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-doc-SoftBreakInline-2constructor[`SoftBreakInline`] [.small]#[constructor]# | Default constructor | link:#mrdocs-doc-SoftBreakInline-2destructor[`~SoftBreakInline`] [.small]#[destructor]# [.small]#[virtual]# | Destructor | link:#mrdocs-doc-SoftBreakInline-operator_eq[`operator==`] | Equality operator | link:#mrdocs-doc-SoftBreakInline-operator_3way-03[`operator<=>`] | Three‐way comparison operators |=== == Static Member Functions [cols=1] |=== | Name | link:#mrdocs-doc-SoftBreakInline-isCode[`isCode`] | link:#mrdocs-doc-SoftBreakInline-isCopyDetails[`isCopyDetails`] | link:#mrdocs-doc-SoftBreakInline-isEmph[`isEmph`] | link:#mrdocs-doc-SoftBreakInline-isFootnoteReference[`isFootnoteReference`] | link:#mrdocs-doc-SoftBreakInline-isHighlight[`isHighlight`] | link:#mrdocs-doc-SoftBreakInline-isImage[`isImage`] | link:#mrdocs-doc-SoftBreakInline-isLineBreak[`isLineBreak`] | link:#mrdocs-doc-SoftBreakInline-isLink[`isLink`] | link:#mrdocs-doc-SoftBreakInline-isMath[`isMath`] | link:#mrdocs-doc-SoftBreakInline-isReference[`isReference`] | link:#mrdocs-doc-SoftBreakInline-isSoftBreak[`isSoftBreak`] | link:#mrdocs-doc-SoftBreakInline-isStrikethrough[`isStrikethrough`] | link:#mrdocs-doc-SoftBreakInline-isStrong[`isStrong`] | link:#mrdocs-doc-SoftBreakInline-isSubscript[`isSubscript`] | link:#mrdocs-doc-SoftBreakInline-isSuperscript[`isSuperscript`] | link:#mrdocs-doc-SoftBreakInline-isText[`isText`] |=== == Static Data Members [cols=1] |=== | Name | link:#mrdocs-doc-SoftBreakInline-kind_id[`kind_id`] |=== == Non-Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-doc-getAsPlainText-0ad[`getAsPlainText`] | Get the plain text representation of an inline element tree. | link:#mrdocs-doc-getAsPlainText-0ae[`getAsPlainText`] | Get the plain text representation of an inline element tree. |=== Default constructor == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/SoftBreakInline.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr SoftBreakInline() noexcept = default; ---- Destructor == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/SoftBreakInline.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr virtual ~SoftBreakInline() override = default; ---- Equality operator == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/SoftBreakInline.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr bool operator==(link:#mrdocs-doc-SoftBreakInline[SoftBreakInline] const& rhs) const noexcept = default; ---- == Return Value `true` if the objects are equal, `false` otherwise == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== Three‐way comparison operators == Synopses Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` Three‐way comparison operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr auto link:#mrdocs-doc-SoftBreakInline-operator_3way-08[operator<=>](link:#mrdocs-doc-SoftBreakInline[SoftBreakInline] const& rhs) const = default; ---- [.small]#link:#mrdocs-doc-SoftBreakInline-operator_3way-08[_» more..._]# Three‐way comparison operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr auto link:#mrdocs-doc-SoftBreakInline-operator_3way-0b[operator<=>](link:#mrdocs-doc-InlineCommonBase-0dc[InlineCommonBase<mrdocs::doc::InlineKind::SoftBreak>] const& rhs) const = default; ---- [.small]#link:#mrdocs-doc-SoftBreakInline-operator_3way-0b[_» more..._]# Three‐way comparison operator == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/SoftBreakInline.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr auto operator<=>(link:#mrdocs-doc-SoftBreakInline[SoftBreakInline] const& rhs) const = default; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== Three‐way comparison operator == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr auto operator<=>(link:#mrdocs-doc-InlineCommonBase-0dc[InlineCommonBase<mrdocs::doc::InlineKind::SoftBreak>] const& rhs) const = default; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isCode() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isCopyDetails() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isEmph() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isFootnoteReference() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isHighlight() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isImage() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isLineBreak() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isLink() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isMath() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isReference() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isSoftBreak() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isStrikethrough() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isStrong() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isSubscript() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isSuperscript() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isText() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static link:#mrdocs-doc-InlineKind[InlineKind] kind_id; ---- A piece of styled text. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/StrikethroughInline.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- struct StrikethroughInline final : link:#mrdocs-doc-InlineCommonBase-0dc[InlineCommonBase<InlineKind::Strikethrough>] , link:#mrdocs-doc-InlineContainer[InlineContainer] ---- == Base Classes [cols=2] |=== | Name | Description | `link:#mrdocs-doc-InlineCommonBase-0dc[InlineCommonBase<InlineKind::Strikethrough>]` | Base class for providing variant discriminator functions. | `link:#mrdocs-doc-InlineContainer[InlineContainer]` | An internal node in the inline element tree |=== == Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-doc-InlineContainer-operator_assign-02[`operator=`] | Assign an InlineContainer with a single TextInline child. | link:#mrdocs-doc-InlineContainer-append-0c[`append`] | `append` overloads | link:#mrdocs-doc-InlineContainer-asInlineContainer-0b[`asInlineContainer`] | Helper function so that derived classes can get a reference to the base class. | link:#mrdocs-doc-InlineContainer-back-03[`back`] | Get the last inline child. | link:#mrdocs-doc-InlineContainer-begin[`begin`] | Begin iterator forwarding to children | link:#mrdocs-doc-InlineContainer-clear[`clear`] | Clear all inline children. | link:#mrdocs-doc-InlineContainer-emplace_back[`emplace_back`] | Append a child of the specified type. | link:#mrdocs-doc-InlineContainer-empty[`empty`] | Determine if there are no inline children. | link:#mrdocs-doc-InlineContainer-end[`end`] | End iterator forwarding to children | link:#mrdocs-doc-InlineContainer-erase[`erase`] | Erase from children | link:#mrdocs-doc-InlineContainer-front-03[`front`] | Get the first inline child. | link:#mrdocs-doc-InlineContainer-insert[`insert`] | Erase from children | link:#mrdocs-doc-InlineContainer-operator_plus_eq-06[`operator+=`] | Addition assignment operators | link:#mrdocs-doc-InlineContainer-size[`size`] | Get the number of inline children. | link:#mrdocs-doc-StrikethroughInline-operator_eq-08[`operator==`] | Compare two InlineContainers. | link:#mrdocs-doc-StrikethroughInline-operator_3way-09[`operator<=>`] | Compare two InlineContainers. |=== == Static Member Functions [cols=1] |=== | Name | link:#mrdocs-doc-StrikethroughInline-isCode[`isCode`] | link:#mrdocs-doc-StrikethroughInline-isCopyDetails[`isCopyDetails`] | link:#mrdocs-doc-StrikethroughInline-isEmph[`isEmph`] | link:#mrdocs-doc-StrikethroughInline-isFootnoteReference[`isFootnoteReference`] | link:#mrdocs-doc-StrikethroughInline-isHighlight[`isHighlight`] | link:#mrdocs-doc-StrikethroughInline-isImage[`isImage`] | link:#mrdocs-doc-StrikethroughInline-isLineBreak[`isLineBreak`] | link:#mrdocs-doc-StrikethroughInline-isLink[`isLink`] | link:#mrdocs-doc-StrikethroughInline-isMath[`isMath`] | link:#mrdocs-doc-StrikethroughInline-isReference[`isReference`] | link:#mrdocs-doc-StrikethroughInline-isSoftBreak[`isSoftBreak`] | link:#mrdocs-doc-StrikethroughInline-isStrikethrough[`isStrikethrough`] | link:#mrdocs-doc-StrikethroughInline-isStrong[`isStrong`] | link:#mrdocs-doc-StrikethroughInline-isSubscript[`isSubscript`] | link:#mrdocs-doc-StrikethroughInline-isSuperscript[`isSuperscript`] | link:#mrdocs-doc-StrikethroughInline-isText[`isText`] |=== == Data Members [cols=1] |=== | Name | link:#mrdocs-doc-InlineContainer-children[`children`] |=== == Static Data Members [cols=1] |=== | Name | link:#mrdocs-doc-StrikethroughInline-kind_id[`kind_id`] |=== == Non-Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-doc-getAsPlainText-097[`getAsPlainText`] | Flatten an InlineContainer to plain text. | link:#mrdocs-doc-getAsPlainText-09f[`getAsPlainText`] | Flatten an InlineContainer to plain text. | link:#mrdocs-doc-getAsPlainText-0ad[`getAsPlainText`] | Get the plain text representation of an inline element tree. | link:#mrdocs-doc-getAsPlainText-0ae[`getAsPlainText`] | Get the plain text representation of an inline element tree. | link:#mrdocs-doc-ltrim-0b[`ltrim`] | Removes leading whitespace from the first text element in the given InlineContainer. | link:#mrdocs-doc-rtrim-0b[`rtrim`] | Removes trailing whitespace from the last text element in the given InlineContainer. | link:#mrdocs-doc-trim-08[`trim`] | Removes leading and trailing whitespace from the text elements in the given InlineContainer. |=== Compare two InlineContainers. == Synopses Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` Equality operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr bool link:#mrdocs-doc-StrikethroughInline-operator_eq-0e[operator==](link:#mrdocs-doc-StrikethroughInline[StrikethroughInline] const& rhs) const noexcept = default; ---- [.small]#link:#mrdocs-doc-StrikethroughInline-operator_eq-0e[_» more..._]# Compare two InlineContainers. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr bool link:#mrdocs-doc-InlineContainer-operator_eq[operator==](link:#mrdocs-doc-InlineContainer[InlineContainer] const& rhs) const = default; ---- [.small]#link:#mrdocs-doc-InlineContainer-operator_eq[_» more..._]# Equality operator == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/StrikethroughInline.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr bool operator==(link:#mrdocs-doc-StrikethroughInline[StrikethroughInline] const& rhs) const noexcept = default; ---- == Return Value `true` if the objects are equal, `false` otherwise == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== Compare two InlineContainers. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr bool operator==(link:#mrdocs-doc-InlineContainer[InlineContainer] const& rhs) const = default; ---- == Return Value `true` if the objects are equal, `false` otherwise == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== Compare two InlineContainers. == Synopses Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` Three‐way comparison operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- auto link:#mrdocs-doc-StrikethroughInline-operator_3way-04[operator<=>](link:#mrdocs-doc-StrikethroughInline[StrikethroughInline] const& rhs) const = default; ---- [.small]#link:#mrdocs-doc-StrikethroughInline-operator_3way-04[_» more..._]# Three‐way comparison operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr auto link:#mrdocs-doc-StrikethroughInline-operator_3way-06[operator<=>](link:#mrdocs-doc-InlineCommonBase-0dc[InlineCommonBase<mrdocs::doc::InlineKind::Strikethrough>] const& rhs) const = default; ---- [.small]#link:#mrdocs-doc-StrikethroughInline-operator_3way-06[_» more..._]# Compare two InlineContainers. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::strong_ordering link:#mrdocs-doc-InlineContainer-operator_3way[operator<=>](link:#mrdocs-doc-InlineContainer[InlineContainer] const& rhs) const; ---- [.small]#link:#mrdocs-doc-InlineContainer-operator_3way[_» more..._]# Three‐way comparison operator == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/StrikethroughInline.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- auto operator<=>(link:#mrdocs-doc-StrikethroughInline[StrikethroughInline] const& rhs) const = default; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== Three‐way comparison operator == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr auto operator<=>(link:#mrdocs-doc-InlineCommonBase-0dc[InlineCommonBase<mrdocs::doc::InlineKind::Strikethrough>] const& rhs) const = default; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== Compare two InlineContainers. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::strong_ordering operator<=>(link:#mrdocs-doc-InlineContainer[InlineContainer] const& rhs) const; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isCode() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isCopyDetails() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isEmph() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isFootnoteReference() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isHighlight() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isImage() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isLineBreak() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isLink() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isMath() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isReference() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isSoftBreak() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isStrikethrough() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isStrong() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isSubscript() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isSuperscript() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isText() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static link:#mrdocs-doc-InlineKind[InlineKind] kind_id; ---- A piece of styled text. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/StrongInline.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- struct StrongInline final : link:#mrdocs-doc-InlineCommonBase-0dc[InlineCommonBase<InlineKind::Strong>] , link:#mrdocs-doc-InlineContainer[InlineContainer] ---- == Base Classes [cols=2] |=== | Name | Description | `link:#mrdocs-doc-InlineCommonBase-0dc[InlineCommonBase<InlineKind::Strong>]` | Base class for providing variant discriminator functions. | `link:#mrdocs-doc-InlineContainer[InlineContainer]` | An internal node in the inline element tree |=== == Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-doc-InlineContainer-operator_assign-02[`operator=`] | Assign an InlineContainer with a single TextInline child. | link:#mrdocs-doc-InlineContainer-append-0c[`append`] | `append` overloads | link:#mrdocs-doc-InlineContainer-asInlineContainer-0b[`asInlineContainer`] | Helper function so that derived classes can get a reference to the base class. | link:#mrdocs-doc-InlineContainer-back-03[`back`] | Get the last inline child. | link:#mrdocs-doc-InlineContainer-begin[`begin`] | Begin iterator forwarding to children | link:#mrdocs-doc-InlineContainer-clear[`clear`] | Clear all inline children. | link:#mrdocs-doc-InlineContainer-emplace_back[`emplace_back`] | Append a child of the specified type. | link:#mrdocs-doc-InlineContainer-empty[`empty`] | Determine if there are no inline children. | link:#mrdocs-doc-InlineContainer-end[`end`] | End iterator forwarding to children | link:#mrdocs-doc-InlineContainer-erase[`erase`] | Erase from children | link:#mrdocs-doc-InlineContainer-front-03[`front`] | Get the first inline child. | link:#mrdocs-doc-InlineContainer-insert[`insert`] | Erase from children | link:#mrdocs-doc-InlineContainer-operator_plus_eq-06[`operator+=`] | Addition assignment operators | link:#mrdocs-doc-InlineContainer-size[`size`] | Get the number of inline children. | link:#mrdocs-doc-StrongInline-operator_eq-08[`operator==`] | Compare two InlineContainers. | link:#mrdocs-doc-StrongInline-operator_3way-02[`operator<=>`] | Compare two InlineContainers. |=== == Static Member Functions [cols=1] |=== | Name | link:#mrdocs-doc-StrongInline-isCode[`isCode`] | link:#mrdocs-doc-StrongInline-isCopyDetails[`isCopyDetails`] | link:#mrdocs-doc-StrongInline-isEmph[`isEmph`] | link:#mrdocs-doc-StrongInline-isFootnoteReference[`isFootnoteReference`] | link:#mrdocs-doc-StrongInline-isHighlight[`isHighlight`] | link:#mrdocs-doc-StrongInline-isImage[`isImage`] | link:#mrdocs-doc-StrongInline-isLineBreak[`isLineBreak`] | link:#mrdocs-doc-StrongInline-isLink[`isLink`] | link:#mrdocs-doc-StrongInline-isMath[`isMath`] | link:#mrdocs-doc-StrongInline-isReference[`isReference`] | link:#mrdocs-doc-StrongInline-isSoftBreak[`isSoftBreak`] | link:#mrdocs-doc-StrongInline-isStrikethrough[`isStrikethrough`] | link:#mrdocs-doc-StrongInline-isStrong[`isStrong`] | link:#mrdocs-doc-StrongInline-isSubscript[`isSubscript`] | link:#mrdocs-doc-StrongInline-isSuperscript[`isSuperscript`] | link:#mrdocs-doc-StrongInline-isText[`isText`] |=== == Data Members [cols=1] |=== | Name | link:#mrdocs-doc-InlineContainer-children[`children`] |=== == Static Data Members [cols=1] |=== | Name | link:#mrdocs-doc-StrongInline-kind_id[`kind_id`] |=== == Using Declarations [cols=1] |=== | Name | link:#mrdocs-doc-StrongInline-2constructor[`StrongInline`] |=== == Non-Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-doc-getAsPlainText-097[`getAsPlainText`] | Flatten an InlineContainer to plain text. | link:#mrdocs-doc-getAsPlainText-09f[`getAsPlainText`] | Flatten an InlineContainer to plain text. | link:#mrdocs-doc-getAsPlainText-0ad[`getAsPlainText`] | Get the plain text representation of an inline element tree. | link:#mrdocs-doc-getAsPlainText-0ae[`getAsPlainText`] | Get the plain text representation of an inline element tree. | link:#mrdocs-doc-ltrim-0b[`ltrim`] | Removes leading whitespace from the first text element in the given InlineContainer. | link:#mrdocs-doc-rtrim-0b[`rtrim`] | Removes trailing whitespace from the last text element in the given InlineContainer. | link:#mrdocs-doc-trim-08[`trim`] | Removes leading and trailing whitespace from the text elements in the given InlineContainer. |=== Compare two InlineContainers. == Synopses Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` Equality operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr bool link:#mrdocs-doc-StrongInline-operator_eq-07[operator==](link:#mrdocs-doc-StrongInline[StrongInline] const& rhs) const noexcept = default; ---- [.small]#link:#mrdocs-doc-StrongInline-operator_eq-07[_» more..._]# Compare two InlineContainers. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr bool link:#mrdocs-doc-InlineContainer-operator_eq[operator==](link:#mrdocs-doc-InlineContainer[InlineContainer] const& rhs) const = default; ---- [.small]#link:#mrdocs-doc-InlineContainer-operator_eq[_» more..._]# Equality operator == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/StrongInline.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr bool operator==(link:#mrdocs-doc-StrongInline[StrongInline] const& rhs) const noexcept = default; ---- == Return Value `true` if the objects are equal, `false` otherwise == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== Compare two InlineContainers. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr bool operator==(link:#mrdocs-doc-InlineContainer[InlineContainer] const& rhs) const = default; ---- == Return Value `true` if the objects are equal, `false` otherwise == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== Compare two InlineContainers. == Synopses Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` Three‐way comparison operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- auto link:#mrdocs-doc-StrongInline-operator_3way-06[operator<=>](link:#mrdocs-doc-StrongInline[StrongInline] const& rhs) const = default; ---- [.small]#link:#mrdocs-doc-StrongInline-operator_3way-06[_» more..._]# Three‐way comparison operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr auto link:#mrdocs-doc-StrongInline-operator_3way-0a[operator<=>](link:#mrdocs-doc-InlineCommonBase-0dc[InlineCommonBase<mrdocs::doc::InlineKind::Strong>] const& rhs) const = default; ---- [.small]#link:#mrdocs-doc-StrongInline-operator_3way-0a[_» more..._]# Compare two InlineContainers. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::strong_ordering link:#mrdocs-doc-InlineContainer-operator_3way[operator<=>](link:#mrdocs-doc-InlineContainer[InlineContainer] const& rhs) const; ---- [.small]#link:#mrdocs-doc-InlineContainer-operator_3way[_» more..._]# Three‐way comparison operator == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/StrongInline.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- auto operator<=>(link:#mrdocs-doc-StrongInline[StrongInline] const& rhs) const = default; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== Three‐way comparison operator == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr auto operator<=>(link:#mrdocs-doc-InlineCommonBase-0dc[InlineCommonBase<mrdocs::doc::InlineKind::Strong>] const& rhs) const = default; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== Compare two InlineContainers. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::strong_ordering operator<=>(link:#mrdocs-doc-InlineContainer[InlineContainer] const& rhs) const; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isCode() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isCopyDetails() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isEmph() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isFootnoteReference() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isHighlight() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isImage() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isLineBreak() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isLink() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isMath() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isReference() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isSoftBreak() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isStrikethrough() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isStrong() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isSubscript() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isSuperscript() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isText() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static link:#mrdocs-doc-InlineKind[InlineKind] kind_id; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/StrongInline.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- using InlineContainer::StrongInline; ---- == Introduced Symbols [cols=2] |=== | Name | Description | link:#mrdocs-doc-InlineContainer-2constructor-06[mrdocs::doc::InlineContainer::InlineContainer] | Construct an InlineContainer with a single TextInline child. | link:#mrdocs-doc-InlineContainer-2constructor-0b[mrdocs::doc::InlineContainer::InlineContainer] | Construct an InlineContainer with a single TextInline child. | link:#mrdocs-doc-InlineContainer-2constructor-0a8[mrdocs::doc::InlineContainer::InlineContainer] | Construct an InlineContainer with a single TextInline child. | link:#mrdocs-doc-InlineContainer-2constructor-09[mrdocs::doc::InlineContainer::InlineContainer] | Construct an InlineContainer with a single TextInline child. | link:#mrdocs-doc-InlineContainer-2constructor-07[mrdocs::doc::InlineContainer::InlineContainer] | Move constructor | link:#mrdocs-doc-InlineContainer-2constructor-0af[mrdocs::doc::InlineContainer::InlineContainer] | Copy constructor |=== A piece of styled text. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/SubscriptInline.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- struct SubscriptInline final : link:#mrdocs-doc-InlineCommonBase-0dc[InlineCommonBase<InlineKind::Subscript>] , link:#mrdocs-doc-InlineContainer[InlineContainer] ---- == Base Classes [cols=2] |=== | Name | Description | `link:#mrdocs-doc-InlineCommonBase-0dc[InlineCommonBase<InlineKind::Subscript>]` | Base class for providing variant discriminator functions. | `link:#mrdocs-doc-InlineContainer[InlineContainer]` | An internal node in the inline element tree |=== == Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-doc-InlineContainer-operator_assign-02[`operator=`] | Assign an InlineContainer with a single TextInline child. | link:#mrdocs-doc-InlineContainer-append-0c[`append`] | `append` overloads | link:#mrdocs-doc-InlineContainer-asInlineContainer-0b[`asInlineContainer`] | Helper function so that derived classes can get a reference to the base class. | link:#mrdocs-doc-InlineContainer-back-03[`back`] | Get the last inline child. | link:#mrdocs-doc-InlineContainer-begin[`begin`] | Begin iterator forwarding to children | link:#mrdocs-doc-InlineContainer-clear[`clear`] | Clear all inline children. | link:#mrdocs-doc-InlineContainer-emplace_back[`emplace_back`] | Append a child of the specified type. | link:#mrdocs-doc-InlineContainer-empty[`empty`] | Determine if there are no inline children. | link:#mrdocs-doc-InlineContainer-end[`end`] | End iterator forwarding to children | link:#mrdocs-doc-InlineContainer-erase[`erase`] | Erase from children | link:#mrdocs-doc-InlineContainer-front-03[`front`] | Get the first inline child. | link:#mrdocs-doc-InlineContainer-insert[`insert`] | Erase from children | link:#mrdocs-doc-InlineContainer-operator_plus_eq-06[`operator+=`] | Addition assignment operators | link:#mrdocs-doc-InlineContainer-size[`size`] | Get the number of inline children. | link:#mrdocs-doc-SubscriptInline-operator_eq-06[`operator==`] | Compare two InlineContainers. | link:#mrdocs-doc-SubscriptInline-operator_3way-06[`operator<=>`] | Compare two InlineContainers. |=== == Static Member Functions [cols=1] |=== | Name | link:#mrdocs-doc-SubscriptInline-isCode[`isCode`] | link:#mrdocs-doc-SubscriptInline-isCopyDetails[`isCopyDetails`] | link:#mrdocs-doc-SubscriptInline-isEmph[`isEmph`] | link:#mrdocs-doc-SubscriptInline-isFootnoteReference[`isFootnoteReference`] | link:#mrdocs-doc-SubscriptInline-isHighlight[`isHighlight`] | link:#mrdocs-doc-SubscriptInline-isImage[`isImage`] | link:#mrdocs-doc-SubscriptInline-isLineBreak[`isLineBreak`] | link:#mrdocs-doc-SubscriptInline-isLink[`isLink`] | link:#mrdocs-doc-SubscriptInline-isMath[`isMath`] | link:#mrdocs-doc-SubscriptInline-isReference[`isReference`] | link:#mrdocs-doc-SubscriptInline-isSoftBreak[`isSoftBreak`] | link:#mrdocs-doc-SubscriptInline-isStrikethrough[`isStrikethrough`] | link:#mrdocs-doc-SubscriptInline-isStrong[`isStrong`] | link:#mrdocs-doc-SubscriptInline-isSubscript[`isSubscript`] | link:#mrdocs-doc-SubscriptInline-isSuperscript[`isSuperscript`] | link:#mrdocs-doc-SubscriptInline-isText[`isText`] |=== == Data Members [cols=1] |=== | Name | link:#mrdocs-doc-InlineContainer-children[`children`] |=== == Static Data Members [cols=1] |=== | Name | link:#mrdocs-doc-SubscriptInline-kind_id[`kind_id`] |=== == Non-Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-doc-getAsPlainText-097[`getAsPlainText`] | Flatten an InlineContainer to plain text. | link:#mrdocs-doc-getAsPlainText-09f[`getAsPlainText`] | Flatten an InlineContainer to plain text. | link:#mrdocs-doc-getAsPlainText-0ad[`getAsPlainText`] | Get the plain text representation of an inline element tree. | link:#mrdocs-doc-getAsPlainText-0ae[`getAsPlainText`] | Get the plain text representation of an inline element tree. | link:#mrdocs-doc-ltrim-0b[`ltrim`] | Removes leading whitespace from the first text element in the given InlineContainer. | link:#mrdocs-doc-rtrim-0b[`rtrim`] | Removes trailing whitespace from the last text element in the given InlineContainer. | link:#mrdocs-doc-trim-08[`trim`] | Removes leading and trailing whitespace from the text elements in the given InlineContainer. |=== Compare two InlineContainers. == Synopses Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` Equality operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr bool link:#mrdocs-doc-SubscriptInline-operator_eq-00[operator==](link:#mrdocs-doc-SubscriptInline[SubscriptInline] const& rhs) const noexcept = default; ---- [.small]#link:#mrdocs-doc-SubscriptInline-operator_eq-00[_» more..._]# Compare two InlineContainers. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr bool link:#mrdocs-doc-InlineContainer-operator_eq[operator==](link:#mrdocs-doc-InlineContainer[InlineContainer] const& rhs) const = default; ---- [.small]#link:#mrdocs-doc-InlineContainer-operator_eq[_» more..._]# Equality operator == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/SubscriptInline.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr bool operator==(link:#mrdocs-doc-SubscriptInline[SubscriptInline] const& rhs) const noexcept = default; ---- == Return Value `true` if the objects are equal, `false` otherwise == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== Compare two InlineContainers. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr bool operator==(link:#mrdocs-doc-InlineContainer[InlineContainer] const& rhs) const = default; ---- == Return Value `true` if the objects are equal, `false` otherwise == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== Compare two InlineContainers. == Synopses Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` Three‐way comparison operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- auto link:#mrdocs-doc-SubscriptInline-operator_3way-03[operator<=>](link:#mrdocs-doc-SubscriptInline[SubscriptInline] const& rhs) const = default; ---- [.small]#link:#mrdocs-doc-SubscriptInline-operator_3way-03[_» more..._]# Three‐way comparison operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr auto link:#mrdocs-doc-SubscriptInline-operator_3way-0c[operator<=>](link:#mrdocs-doc-InlineCommonBase-0dc[InlineCommonBase<mrdocs::doc::InlineKind::Subscript>] const& rhs) const = default; ---- [.small]#link:#mrdocs-doc-SubscriptInline-operator_3way-0c[_» more..._]# Compare two InlineContainers. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::strong_ordering link:#mrdocs-doc-InlineContainer-operator_3way[operator<=>](link:#mrdocs-doc-InlineContainer[InlineContainer] const& rhs) const; ---- [.small]#link:#mrdocs-doc-InlineContainer-operator_3way[_» more..._]# Three‐way comparison operator == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/SubscriptInline.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- auto operator<=>(link:#mrdocs-doc-SubscriptInline[SubscriptInline] const& rhs) const = default; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== Three‐way comparison operator == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr auto operator<=>(link:#mrdocs-doc-InlineCommonBase-0dc[InlineCommonBase<mrdocs::doc::InlineKind::Subscript>] const& rhs) const = default; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== Compare two InlineContainers. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::strong_ordering operator<=>(link:#mrdocs-doc-InlineContainer[InlineContainer] const& rhs) const; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isCode() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isCopyDetails() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isEmph() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isFootnoteReference() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isHighlight() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isImage() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isLineBreak() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isLink() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isMath() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isReference() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isSoftBreak() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isStrikethrough() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isStrong() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isSubscript() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isSuperscript() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isText() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static link:#mrdocs-doc-InlineKind[InlineKind] kind_id; ---- A piece of styled text. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/SuperscriptInline.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- struct SuperscriptInline final : link:#mrdocs-doc-InlineCommonBase-0dc[InlineCommonBase<InlineKind::Superscript>] , link:#mrdocs-doc-InlineContainer[InlineContainer] ---- == Base Classes [cols=2] |=== | Name | Description | `link:#mrdocs-doc-InlineCommonBase-0dc[InlineCommonBase<InlineKind::Superscript>]` | Base class for providing variant discriminator functions. | `link:#mrdocs-doc-InlineContainer[InlineContainer]` | An internal node in the inline element tree |=== == Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-doc-InlineContainer-operator_assign-02[`operator=`] | Assign an InlineContainer with a single TextInline child. | link:#mrdocs-doc-InlineContainer-append-0c[`append`] | `append` overloads | link:#mrdocs-doc-InlineContainer-asInlineContainer-0b[`asInlineContainer`] | Helper function so that derived classes can get a reference to the base class. | link:#mrdocs-doc-InlineContainer-back-03[`back`] | Get the last inline child. | link:#mrdocs-doc-InlineContainer-begin[`begin`] | Begin iterator forwarding to children | link:#mrdocs-doc-InlineContainer-clear[`clear`] | Clear all inline children. | link:#mrdocs-doc-InlineContainer-emplace_back[`emplace_back`] | Append a child of the specified type. | link:#mrdocs-doc-InlineContainer-empty[`empty`] | Determine if there are no inline children. | link:#mrdocs-doc-InlineContainer-end[`end`] | End iterator forwarding to children | link:#mrdocs-doc-InlineContainer-erase[`erase`] | Erase from children | link:#mrdocs-doc-InlineContainer-front-03[`front`] | Get the first inline child. | link:#mrdocs-doc-InlineContainer-insert[`insert`] | Erase from children | link:#mrdocs-doc-InlineContainer-operator_plus_eq-06[`operator+=`] | Addition assignment operators | link:#mrdocs-doc-InlineContainer-size[`size`] | Get the number of inline children. | link:#mrdocs-doc-SuperscriptInline-operator_eq-06[`operator==`] | Compare two InlineContainers. | link:#mrdocs-doc-SuperscriptInline-operator_3way-05[`operator<=>`] | Compare two InlineContainers. |=== == Static Member Functions [cols=1] |=== | Name | link:#mrdocs-doc-SuperscriptInline-isCode[`isCode`] | link:#mrdocs-doc-SuperscriptInline-isCopyDetails[`isCopyDetails`] | link:#mrdocs-doc-SuperscriptInline-isEmph[`isEmph`] | link:#mrdocs-doc-SuperscriptInline-isFootnoteReference[`isFootnoteReference`] | link:#mrdocs-doc-SuperscriptInline-isHighlight[`isHighlight`] | link:#mrdocs-doc-SuperscriptInline-isImage[`isImage`] | link:#mrdocs-doc-SuperscriptInline-isLineBreak[`isLineBreak`] | link:#mrdocs-doc-SuperscriptInline-isLink[`isLink`] | link:#mrdocs-doc-SuperscriptInline-isMath[`isMath`] | link:#mrdocs-doc-SuperscriptInline-isReference[`isReference`] | link:#mrdocs-doc-SuperscriptInline-isSoftBreak[`isSoftBreak`] | link:#mrdocs-doc-SuperscriptInline-isStrikethrough[`isStrikethrough`] | link:#mrdocs-doc-SuperscriptInline-isStrong[`isStrong`] | link:#mrdocs-doc-SuperscriptInline-isSubscript[`isSubscript`] | link:#mrdocs-doc-SuperscriptInline-isSuperscript[`isSuperscript`] | link:#mrdocs-doc-SuperscriptInline-isText[`isText`] |=== == Data Members [cols=1] |=== | Name | link:#mrdocs-doc-InlineContainer-children[`children`] |=== == Static Data Members [cols=1] |=== | Name | link:#mrdocs-doc-SuperscriptInline-kind_id[`kind_id`] |=== == Non-Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-doc-getAsPlainText-097[`getAsPlainText`] | Flatten an InlineContainer to plain text. | link:#mrdocs-doc-getAsPlainText-09f[`getAsPlainText`] | Flatten an InlineContainer to plain text. | link:#mrdocs-doc-getAsPlainText-0ad[`getAsPlainText`] | Get the plain text representation of an inline element tree. | link:#mrdocs-doc-getAsPlainText-0ae[`getAsPlainText`] | Get the plain text representation of an inline element tree. | link:#mrdocs-doc-ltrim-0b[`ltrim`] | Removes leading whitespace from the first text element in the given InlineContainer. | link:#mrdocs-doc-rtrim-0b[`rtrim`] | Removes trailing whitespace from the last text element in the given InlineContainer. | link:#mrdocs-doc-trim-08[`trim`] | Removes leading and trailing whitespace from the text elements in the given InlineContainer. |=== Compare two InlineContainers. == Synopses Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` Equality operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr bool link:#mrdocs-doc-SuperscriptInline-operator_eq-0b[operator==](link:#mrdocs-doc-SuperscriptInline[SuperscriptInline] const& rhs) const noexcept = default; ---- [.small]#link:#mrdocs-doc-SuperscriptInline-operator_eq-0b[_» more..._]# Compare two InlineContainers. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr bool link:#mrdocs-doc-InlineContainer-operator_eq[operator==](link:#mrdocs-doc-InlineContainer[InlineContainer] const& rhs) const = default; ---- [.small]#link:#mrdocs-doc-InlineContainer-operator_eq[_» more..._]# Equality operator == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/SuperscriptInline.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr bool operator==(link:#mrdocs-doc-SuperscriptInline[SuperscriptInline] const& rhs) const noexcept = default; ---- == Return Value `true` if the objects are equal, `false` otherwise == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== Compare two InlineContainers. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr bool operator==(link:#mrdocs-doc-InlineContainer[InlineContainer] const& rhs) const = default; ---- == Return Value `true` if the objects are equal, `false` otherwise == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== Compare two InlineContainers. == Synopses Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` Three‐way comparison operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- auto link:#mrdocs-doc-SuperscriptInline-operator_3way-0b[operator<=>](link:#mrdocs-doc-SuperscriptInline[SuperscriptInline] const& rhs) const = default; ---- [.small]#link:#mrdocs-doc-SuperscriptInline-operator_3way-0b[_» more..._]# Three‐way comparison operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr auto link:#mrdocs-doc-SuperscriptInline-operator_3way-0a[operator<=>](link:#mrdocs-doc-InlineCommonBase-0dc[InlineCommonBase<mrdocs::doc::InlineKind::Superscript>] const& rhs) const = default; ---- [.small]#link:#mrdocs-doc-SuperscriptInline-operator_3way-0a[_» more..._]# Compare two InlineContainers. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::strong_ordering link:#mrdocs-doc-InlineContainer-operator_3way[operator<=>](link:#mrdocs-doc-InlineContainer[InlineContainer] const& rhs) const; ---- [.small]#link:#mrdocs-doc-InlineContainer-operator_3way[_» more..._]# Three‐way comparison operator == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/SuperscriptInline.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- auto operator<=>(link:#mrdocs-doc-SuperscriptInline[SuperscriptInline] const& rhs) const = default; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== Three‐way comparison operator == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr auto operator<=>(link:#mrdocs-doc-InlineCommonBase-0dc[InlineCommonBase<mrdocs::doc::InlineKind::Superscript>] const& rhs) const = default; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== Compare two InlineContainers. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::strong_ordering operator<=>(link:#mrdocs-doc-InlineContainer[InlineContainer] const& rhs) const; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isCode() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isCopyDetails() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isEmph() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isFootnoteReference() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isHighlight() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isImage() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isLineBreak() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isLink() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isMath() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isReference() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isSoftBreak() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isStrikethrough() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isStrong() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isSubscript() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isSuperscript() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isText() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static link:#mrdocs-doc-InlineKind[InlineKind] kind_id; ---- Documentation for a template parameter == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/TParamBlock.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- struct TParamBlock final : link:#mrdocs-doc-BlockCommonBase-0ed[BlockCommonBase<BlockKind::TParam>] , link:#mrdocs-doc-InlineContainer[InlineContainer] ---- == Base Classes [cols=2] |=== | Name | Description | `link:#mrdocs-doc-BlockCommonBase-0ed[BlockCommonBase<BlockKind::TParam>]` | Base class for providing variant discriminator functions. | `link:#mrdocs-doc-InlineContainer[InlineContainer]` | An internal node in the inline element tree |=== == Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-doc-InlineContainer-operator_assign-02[`operator=`] | Assign an InlineContainer with a single TextInline child. | link:#mrdocs-doc-InlineContainer-append-0c[`append`] | `append` overloads | link:#mrdocs-doc-InlineContainer-asInlineContainer-0b[`asInlineContainer`] | Helper function so that derived classes can get a reference to the base class. | link:#mrdocs-doc-InlineContainer-back-03[`back`] | Get the last inline child. | link:#mrdocs-doc-InlineContainer-begin[`begin`] | Begin iterator forwarding to children | link:#mrdocs-doc-InlineContainer-clear[`clear`] | Clear all inline children. | link:#mrdocs-doc-InlineContainer-emplace_back[`emplace_back`] | Append a child of the specified type. | link:#mrdocs-doc-InlineContainer-empty[`empty`] | Determine if there are no inline children. | link:#mrdocs-doc-InlineContainer-end[`end`] | End iterator forwarding to children | link:#mrdocs-doc-InlineContainer-erase[`erase`] | Erase from children | link:#mrdocs-doc-InlineContainer-front-03[`front`] | Get the first inline child. | link:#mrdocs-doc-InlineContainer-insert[`insert`] | Erase from children | link:#mrdocs-doc-InlineContainer-operator_plus_eq-06[`operator+=`] | Addition assignment operators | link:#mrdocs-doc-InlineContainer-size[`size`] | Get the number of inline children. | link:#mrdocs-doc-TParamBlock-operator_eq-02[`operator==`] | Compare two InlineContainers. | link:#mrdocs-doc-TParamBlock-operator_3way-0c[`operator<=>`] | Compare two InlineContainers. |=== == Static Member Functions [cols=1] |=== | Name | link:#mrdocs-doc-TParamBlock-isAdmonition[`isAdmonition`] | link:#mrdocs-doc-TParamBlock-isBrief[`isBrief`] | link:#mrdocs-doc-TParamBlock-isCode[`isCode`] | link:#mrdocs-doc-TParamBlock-isDefinitionList[`isDefinitionList`] | link:#mrdocs-doc-TParamBlock-isFootnoteDefinition[`isFootnoteDefinition`] | link:#mrdocs-doc-TParamBlock-isHeading[`isHeading`] | link:#mrdocs-doc-TParamBlock-isList[`isList`] | link:#mrdocs-doc-TParamBlock-isMath[`isMath`] | link:#mrdocs-doc-TParamBlock-isParagraph[`isParagraph`] | link:#mrdocs-doc-TParamBlock-isParam[`isParam`] | link:#mrdocs-doc-TParamBlock-isPostcondition[`isPostcondition`] | link:#mrdocs-doc-TParamBlock-isPrecondition[`isPrecondition`] | link:#mrdocs-doc-TParamBlock-isQuote[`isQuote`] | link:#mrdocs-doc-TParamBlock-isReturns[`isReturns`] | link:#mrdocs-doc-TParamBlock-isSee[`isSee`] | link:#mrdocs-doc-TParamBlock-isTParam[`isTParam`] | link:#mrdocs-doc-TParamBlock-isTable[`isTable`] | link:#mrdocs-doc-TParamBlock-isThematicBreak[`isThematicBreak`] | link:#mrdocs-doc-TParamBlock-isThrows[`isThrows`] |=== == Data Members [cols=1] |=== | Name | link:#mrdocs-doc-InlineContainer-children[`children`] | link:#mrdocs-doc-TParamBlock-name[`name`] |=== == Static Data Members [cols=1] |=== | Name | link:#mrdocs-doc-TParamBlock-kind_id[`kind_id`] |=== == Using Declarations [cols=1] |=== | Name | link:#mrdocs-doc-TParamBlock-2constructor[`TParamBlock`] |=== == Non-Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-doc-getAsPlainText-097[`getAsPlainText`] | Flatten an InlineContainer to plain text. | link:#mrdocs-doc-getAsPlainText-09f[`getAsPlainText`] | Flatten an InlineContainer to plain text. | link:#mrdocs-doc-isEmpty-06[`isEmpty`] | Determine if the inline is empty | link:#mrdocs-doc-ltrim-0b[`ltrim`] | Removes leading whitespace from the first text element in the given InlineContainer. | link:#mrdocs-doc-ltrim-0d[`ltrim`] | Removes leading whitespace from the block. | link:#mrdocs-doc-rtrim-0b[`rtrim`] | Removes trailing whitespace from the last text element in the given InlineContainer. | link:#mrdocs-doc-rtrim-0c[`rtrim`] | Removes trailing whitespace from the block. | link:#mrdocs-doc-trim-071[`trim`] | Removes leading and trailing whitespace from the block. | link:#mrdocs-doc-trim-08[`trim`] | Removes leading and trailing whitespace from the text elements in the given InlineContainer. |=== Compare two InlineContainers. == Synopses Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` Equality operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr bool link:#mrdocs-doc-TParamBlock-operator_eq-05[operator==](link:#mrdocs-doc-TParamBlock[TParamBlock] const& rhs) const noexcept = default; ---- [.small]#link:#mrdocs-doc-TParamBlock-operator_eq-05[_» more..._]# Compare two InlineContainers. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr bool link:#mrdocs-doc-InlineContainer-operator_eq[operator==](link:#mrdocs-doc-InlineContainer[InlineContainer] const& rhs) const = default; ---- [.small]#link:#mrdocs-doc-InlineContainer-operator_eq[_» more..._]# Equality operator == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/TParamBlock.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr bool operator==(link:#mrdocs-doc-TParamBlock[TParamBlock] const& rhs) const noexcept = default; ---- == Return Value `true` if the objects are equal, `false` otherwise == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== Compare two InlineContainers. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr bool operator==(link:#mrdocs-doc-InlineContainer[InlineContainer] const& rhs) const = default; ---- == Return Value `true` if the objects are equal, `false` otherwise == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== Compare two InlineContainers. == Synopses Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` Three‐way comparison operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- auto link:#mrdocs-doc-TParamBlock-operator_3way-0d[operator<=>](link:#mrdocs-doc-TParamBlock[TParamBlock] const& rhs) const = default; ---- [.small]#link:#mrdocs-doc-TParamBlock-operator_3way-0d[_» more..._]# Three‐way comparison operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr auto link:#mrdocs-doc-TParamBlock-operator_3way-07[operator<=>](link:#mrdocs-doc-BlockCommonBase-0ed[BlockCommonBase<mrdocs::doc::BlockKind::TParam>] const& rhs) const = default; ---- [.small]#link:#mrdocs-doc-TParamBlock-operator_3way-07[_» more..._]# Compare two InlineContainers. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::strong_ordering link:#mrdocs-doc-InlineContainer-operator_3way[operator<=>](link:#mrdocs-doc-InlineContainer[InlineContainer] const& rhs) const; ---- [.small]#link:#mrdocs-doc-InlineContainer-operator_3way[_» more..._]# Three‐way comparison operator == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/TParamBlock.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- auto operator<=>(link:#mrdocs-doc-TParamBlock[TParamBlock] const& rhs) const = default; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== Three‐way comparison operator == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr auto operator<=>(link:#mrdocs-doc-BlockCommonBase-0ed[BlockCommonBase<mrdocs::doc::BlockKind::TParam>] const& rhs) const = default; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== Compare two InlineContainers. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::strong_ordering operator<=>(link:#mrdocs-doc-InlineContainer[InlineContainer] const& rhs) const; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isAdmonition() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isBrief() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isCode() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isDefinitionList() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isFootnoteDefinition() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isHeading() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isList() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isMath() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isParagraph() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isParam() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isPostcondition() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isPrecondition() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isQuote() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isReturns() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isSee() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isTParam() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isTable() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isThematicBreak() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isThrows() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/TParamBlock.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::string name; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static link:#mrdocs-doc-BlockKind[BlockKind] kind_id; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/TParamBlock.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- using InlineContainer::TParamBlock; ---- == Introduced Symbols [cols=2] |=== | Name | Description | link:#mrdocs-doc-InlineContainer-2constructor-06[mrdocs::doc::InlineContainer::InlineContainer] | Construct an InlineContainer with a single TextInline child. | link:#mrdocs-doc-InlineContainer-2constructor-0b[mrdocs::doc::InlineContainer::InlineContainer] | Construct an InlineContainer with a single TextInline child. | link:#mrdocs-doc-InlineContainer-2constructor-0a8[mrdocs::doc::InlineContainer::InlineContainer] | Construct an InlineContainer with a single TextInline child. | link:#mrdocs-doc-InlineContainer-2constructor-09[mrdocs::doc::InlineContainer::InlineContainer] | Construct an InlineContainer with a single TextInline child. | link:#mrdocs-doc-InlineContainer-2constructor-07[mrdocs::doc::InlineContainer::InlineContainer] | Move constructor | link:#mrdocs-doc-InlineContainer-2constructor-0af[mrdocs::doc::InlineContainer::InlineContainer] | Copy constructor |=== A table block == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/TableBlock.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- struct TableBlock final : link:#mrdocs-doc-BlockCommonBase-0ed[BlockCommonBase<BlockKind::Table>] ---- == Base Classes [cols=2] |=== | Name | Description | `link:#mrdocs-doc-BlockCommonBase-0ed[BlockCommonBase<BlockKind::Table>]` | Base class for providing variant discriminator functions. |=== == Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-doc-TableBlock-operator_eq[`operator==`] | Equality operator | link:#mrdocs-doc-TableBlock-operator_3way-07[`operator<=>`] | Three‐way comparison operators |=== == Static Member Functions [cols=1] |=== | Name | link:#mrdocs-doc-TableBlock-isAdmonition[`isAdmonition`] | link:#mrdocs-doc-TableBlock-isBrief[`isBrief`] | link:#mrdocs-doc-TableBlock-isCode[`isCode`] | link:#mrdocs-doc-TableBlock-isDefinitionList[`isDefinitionList`] | link:#mrdocs-doc-TableBlock-isFootnoteDefinition[`isFootnoteDefinition`] | link:#mrdocs-doc-TableBlock-isHeading[`isHeading`] | link:#mrdocs-doc-TableBlock-isList[`isList`] | link:#mrdocs-doc-TableBlock-isMath[`isMath`] | link:#mrdocs-doc-TableBlock-isParagraph[`isParagraph`] | link:#mrdocs-doc-TableBlock-isParam[`isParam`] | link:#mrdocs-doc-TableBlock-isPostcondition[`isPostcondition`] | link:#mrdocs-doc-TableBlock-isPrecondition[`isPrecondition`] | link:#mrdocs-doc-TableBlock-isQuote[`isQuote`] | link:#mrdocs-doc-TableBlock-isReturns[`isReturns`] | link:#mrdocs-doc-TableBlock-isSee[`isSee`] | link:#mrdocs-doc-TableBlock-isTParam[`isTParam`] | link:#mrdocs-doc-TableBlock-isTable[`isTable`] | link:#mrdocs-doc-TableBlock-isThematicBreak[`isThematicBreak`] | link:#mrdocs-doc-TableBlock-isThrows[`isThrows`] |=== == Data Members [cols=1] |=== | Name | link:#mrdocs-doc-TableBlock-Alignments[`Alignments`] | link:#mrdocs-doc-TableBlock-items[`items`] |=== == Static Data Members [cols=1] |=== | Name | link:#mrdocs-doc-TableBlock-kind_id[`kind_id`] |=== == Non-Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-doc-isEmpty-06[`isEmpty`] | Determine if the inline is empty | link:#mrdocs-doc-ltrim-0d[`ltrim`] | Removes leading whitespace from the block. | link:#mrdocs-doc-rtrim-0c[`rtrim`] | Removes trailing whitespace from the block. | link:#mrdocs-doc-trim-071[`trim`] | Removes leading and trailing whitespace from the block. |=== Equality operator == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/TableBlock.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr bool operator==(link:#mrdocs-doc-TableBlock[TableBlock] const& rhs) const noexcept = default; ---- == Return Value `true` if the objects are equal, `false` otherwise == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== Three‐way comparison operators == Synopses Declared in `<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>` Three‐way comparison operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- auto link:#mrdocs-doc-TableBlock-operator_3way-06[operator<=>](link:#mrdocs-doc-TableBlock[TableBlock] const& other) const; ---- [.small]#link:#mrdocs-doc-TableBlock-operator_3way-06[_» more..._]# Three‐way comparison operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr auto link:#mrdocs-doc-TableBlock-operator_3way-02[operator<=>](link:#mrdocs-doc-BlockCommonBase-0ed[BlockCommonBase<mrdocs::doc::BlockKind::Table>] const& rhs) const = default; ---- [.small]#link:#mrdocs-doc-TableBlock-operator_3way-02[_» more..._]# Three‐way comparison operator == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/TableBlock.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- auto operator<=>(link:#mrdocs-doc-TableBlock[TableBlock] const& other) const; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *other* | The right operand |=== Three‐way comparison operator == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr auto operator<=>(link:#mrdocs-doc-BlockCommonBase-0ed[BlockCommonBase<mrdocs::doc::BlockKind::Table>] const& rhs) const = default; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isAdmonition() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isBrief() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isCode() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isDefinitionList() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isFootnoteDefinition() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isHeading() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isList() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isMath() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isParagraph() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isParam() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isPostcondition() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isPrecondition() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isQuote() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isReturns() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isSee() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isTParam() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isTable() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isThematicBreak() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isThrows() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/TableBlock.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::vector<TableAlignmentKind> Alignments; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/TableBlock.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::vector<TableRow> items; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static link:#mrdocs-doc-BlockKind[BlockKind] kind_id; ---- A cell in a table == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/TableCell.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- struct TableCell final : link:#mrdocs-doc-InlineContainer[InlineContainer] ---- == Base Classes [cols=2] |=== | Name | Description | `link:#mrdocs-doc-InlineContainer[InlineContainer]` | An internal node in the inline element tree |=== == Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-doc-InlineContainer-operator_assign-02[`operator=`] | Assign an InlineContainer with a single TextInline child. | link:#mrdocs-doc-InlineContainer-append-0c[`append`] | `append` overloads | link:#mrdocs-doc-InlineContainer-asInlineContainer-0b[`asInlineContainer`] | Helper function so that derived classes can get a reference to the base class. | link:#mrdocs-doc-InlineContainer-back-03[`back`] | Get the last inline child. | link:#mrdocs-doc-InlineContainer-begin[`begin`] | Begin iterator forwarding to children | link:#mrdocs-doc-InlineContainer-clear[`clear`] | Clear all inline children. | link:#mrdocs-doc-InlineContainer-emplace_back[`emplace_back`] | Append a child of the specified type. | link:#mrdocs-doc-InlineContainer-empty[`empty`] | Determine if there are no inline children. | link:#mrdocs-doc-InlineContainer-end[`end`] | End iterator forwarding to children | link:#mrdocs-doc-InlineContainer-erase[`erase`] | Erase from children | link:#mrdocs-doc-InlineContainer-front-03[`front`] | Get the first inline child. | link:#mrdocs-doc-InlineContainer-insert[`insert`] | Erase from children | link:#mrdocs-doc-InlineContainer-operator_plus_eq-06[`operator+=`] | Addition assignment operators | link:#mrdocs-doc-InlineContainer-size[`size`] | Get the number of inline children. | link:#mrdocs-doc-TableCell-operator_eq-03[`operator==`] | Compare two InlineContainers. | link:#mrdocs-doc-TableCell-operator_3way-0d[`operator<=>`] | Compare two InlineContainers. |=== == Data Members [cols=1] |=== | Name | link:#mrdocs-doc-InlineContainer-children[`children`] |=== == Non-Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-doc-getAsPlainText-097[`getAsPlainText`] | Flatten an InlineContainer to plain text. | link:#mrdocs-doc-getAsPlainText-09f[`getAsPlainText`] | Flatten an InlineContainer to plain text. | link:#mrdocs-doc-ltrim-0b[`ltrim`] | Removes leading whitespace from the first text element in the given InlineContainer. | link:#mrdocs-doc-rtrim-0b[`rtrim`] | Removes trailing whitespace from the last text element in the given InlineContainer. | link:#mrdocs-doc-trim-08[`trim`] | Removes leading and trailing whitespace from the text elements in the given InlineContainer. |=== Compare two InlineContainers. == Synopses Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` Equality operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr bool link:#mrdocs-doc-TableCell-operator_eq-0d[operator==](link:#mrdocs-doc-TableCell[TableCell] const& rhs) const noexcept = default; ---- [.small]#link:#mrdocs-doc-TableCell-operator_eq-0d[_» more..._]# Compare two InlineContainers. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr bool link:#mrdocs-doc-InlineContainer-operator_eq[operator==](link:#mrdocs-doc-InlineContainer[InlineContainer] const& rhs) const = default; ---- [.small]#link:#mrdocs-doc-InlineContainer-operator_eq[_» more..._]# Equality operator == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/TableCell.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr bool operator==(link:#mrdocs-doc-TableCell[TableCell] const& rhs) const noexcept = default; ---- == Return Value `true` if the objects are equal, `false` otherwise == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== Compare two InlineContainers. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr bool operator==(link:#mrdocs-doc-InlineContainer[InlineContainer] const& rhs) const = default; ---- == Return Value `true` if the objects are equal, `false` otherwise == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== Compare two InlineContainers. == Synopses Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` Three‐way comparison operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- auto link:#mrdocs-doc-TableCell-operator_3way-0f[operator<=>](link:#mrdocs-doc-TableCell[TableCell] const& rhs) const = default; ---- [.small]#link:#mrdocs-doc-TableCell-operator_3way-0f[_» more..._]# Compare two InlineContainers. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::strong_ordering link:#mrdocs-doc-InlineContainer-operator_3way[operator<=>](link:#mrdocs-doc-InlineContainer[InlineContainer] const& rhs) const; ---- [.small]#link:#mrdocs-doc-InlineContainer-operator_3way[_» more..._]# Three‐way comparison operator == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/TableCell.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- auto operator<=>(link:#mrdocs-doc-TableCell[TableCell] const& rhs) const = default; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== Compare two InlineContainers. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::strong_ordering operator<=>(link:#mrdocs-doc-InlineContainer[InlineContainer] const& rhs) const; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== An item in a list == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/TableRow.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- struct TableRow final ---- == Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-doc-TableRow-operator_eq[`operator==`] | Equality operator | link:#mrdocs-doc-TableRow-operator_3way[`operator<=>`] | Three‐way comparison operator |=== == Data Members [cols=1] |=== | Name | link:#mrdocs-doc-TableRow-Cells[`Cells`] | link:#mrdocs-doc-TableRow-is_header[`is_header`] |=== Equality operator == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/TableRow.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr bool operator==(link:#mrdocs-doc-TableRow[TableRow] const& rhs) const noexcept = default; ---- == Return Value `true` if the objects are equal, `false` otherwise == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== Three‐way comparison operator == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/TableRow.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr auto operator<=>(link:#mrdocs-doc-TableRow[TableRow] const& rhs) const = default; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/TableRow.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::vector<TableCell> Cells; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/TableRow.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool is_header = false; ---- A Node containing a string of text. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/TextInline.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- struct TextInline : link:#mrdocs-doc-InlineCommonBase-0dc[InlineCommonBase<InlineKind::Text>] ---- == Base Classes [cols=2] |=== | Name | Description | `link:#mrdocs-doc-InlineCommonBase-0dc[InlineCommonBase<InlineKind::Text>]` | Base class for providing variant discriminator functions. |=== == Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-doc-TextInline-2constructor-04[`TextInline`] [.small]#[constructor]# | Constructors | link:#mrdocs-doc-TextInline-2destructor[`~TextInline`] [.small]#[destructor]# [.small]#[virtual]# | Destructor | link:#mrdocs-doc-TextInline-operator_eq[`operator==`] | Equality operator | link:#mrdocs-doc-TextInline-operator_3way-0c[`operator<=>`] | Three‐way comparison operators |=== == Static Member Functions [cols=1] |=== | Name | link:#mrdocs-doc-TextInline-isCode[`isCode`] | link:#mrdocs-doc-TextInline-isCopyDetails[`isCopyDetails`] | link:#mrdocs-doc-TextInline-isEmph[`isEmph`] | link:#mrdocs-doc-TextInline-isFootnoteReference[`isFootnoteReference`] | link:#mrdocs-doc-TextInline-isHighlight[`isHighlight`] | link:#mrdocs-doc-TextInline-isImage[`isImage`] | link:#mrdocs-doc-TextInline-isLineBreak[`isLineBreak`] | link:#mrdocs-doc-TextInline-isLink[`isLink`] | link:#mrdocs-doc-TextInline-isMath[`isMath`] | link:#mrdocs-doc-TextInline-isReference[`isReference`] | link:#mrdocs-doc-TextInline-isSoftBreak[`isSoftBreak`] | link:#mrdocs-doc-TextInline-isStrikethrough[`isStrikethrough`] | link:#mrdocs-doc-TextInline-isStrong[`isStrong`] | link:#mrdocs-doc-TextInline-isSubscript[`isSubscript`] | link:#mrdocs-doc-TextInline-isSuperscript[`isSuperscript`] | link:#mrdocs-doc-TextInline-isText[`isText`] |=== == Data Members [cols=1] |=== | Name | link:#mrdocs-doc-TextInline-literal[`literal`] |=== == Static Data Members [cols=1] |=== | Name | link:#mrdocs-doc-TextInline-kind_id[`kind_id`] |=== == Non-Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-doc-getAsPlainText-0ad[`getAsPlainText`] | Get the plain text representation of an inline element tree. | link:#mrdocs-doc-getAsPlainText-0ae[`getAsPlainText`] | Get the plain text representation of an inline element tree. |=== == Description There will be no newlines in the text. Otherwise, this would be represented as multiple text nodes within a Paragraph node. Constructors == Synopses Declared in `<mrdocs/Metadata/DocComment/Inline/TextInline.hpp>` Default constructor [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-doc-TextInline-2constructor-0a[TextInline]() noexcept = default; ---- [.small]#link:#mrdocs-doc-TextInline-2constructor-0a[_» more..._]# Construct from `string_view` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- explicit link:#mrdocs-doc-TextInline-2constructor-0f[TextInline](std::string_view str) noexcept; ---- [.small]#link:#mrdocs-doc-TextInline-2constructor-0f[_» more..._]# Construct from `string` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- explicit link:#mrdocs-doc-TextInline-2constructor-0e[TextInline](std::string const& str) noexcept; ---- [.small]#link:#mrdocs-doc-TextInline-2constructor-0e[_» more..._]# Construct from `string` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- explicit link:#mrdocs-doc-TextInline-2constructor-0d[TextInline](std::string&& str) noexcept; ---- [.small]#link:#mrdocs-doc-TextInline-2constructor-0d[_» more..._]# Construct from `char` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- explicit link:#mrdocs-doc-TextInline-2constructor-03[TextInline](char const* str) noexcept; ---- [.small]#link:#mrdocs-doc-TextInline-2constructor-03[_» more..._]# Default constructor == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/TextInline.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr TextInline() noexcept = default; ---- Construct from `string_view` == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/TextInline.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- explicit TextInline(std::string_view str) noexcept; ---- == Parameters [cols=2] |=== | Name | Description | *str* | The object to construct from |=== Construct from `string` == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/TextInline.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- explicit TextInline(std::string const& str) noexcept; ---- == Parameters [cols=2] |=== | Name | Description | *str* | The object to copy construct from |=== Construct from `string` == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/TextInline.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- explicit TextInline(std::string&& str) noexcept; ---- == Parameters [cols=2] |=== | Name | Description | *str* | The object to move construct from |=== Construct from `char` == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/TextInline.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- explicit TextInline(char const* str) noexcept; ---- == Parameters [cols=2] |=== | Name | Description | *str* | The value to construct from |=== Destructor == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/TextInline.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr virtual ~TextInline() override = default; ---- Equality operator == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/TextInline.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr bool operator==(link:#mrdocs-doc-TextInline[TextInline] const& rhs) const noexcept = default; ---- == Return Value `true` if the objects are equal, `false` otherwise == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== Three‐way comparison operators == Synopses Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` Three‐way comparison operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr auto link:#mrdocs-doc-TextInline-operator_3way-0b[operator<=>](link:#mrdocs-doc-TextInline[TextInline] const& rhs) const = default; ---- [.small]#link:#mrdocs-doc-TextInline-operator_3way-0b[_» more..._]# Three‐way comparison operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr auto link:#mrdocs-doc-TextInline-operator_3way-06[operator<=>](link:#mrdocs-doc-InlineCommonBase-0dc[InlineCommonBase<mrdocs::doc::InlineKind::Text>] const& rhs) const = default; ---- [.small]#link:#mrdocs-doc-TextInline-operator_3way-06[_» more..._]# Three‐way comparison operator == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/TextInline.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr auto operator<=>(link:#mrdocs-doc-TextInline[TextInline] const& rhs) const = default; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== Three‐way comparison operator == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr auto operator<=>(link:#mrdocs-doc-InlineCommonBase-0dc[InlineCommonBase<mrdocs::doc::InlineKind::Text>] const& rhs) const = default; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isCode() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isCopyDetails() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isEmph() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isFootnoteReference() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isHighlight() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isImage() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isLineBreak() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isLink() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isMath() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isReference() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isSoftBreak() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isStrikethrough() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isStrong() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isSubscript() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isSuperscript() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isText() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/TextInline.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::string literal; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static link:#mrdocs-doc-InlineKind[InlineKind] kind_id; ---- The brief description == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/ThematicBreakBlock.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- struct ThematicBreakBlock final : link:#mrdocs-doc-BlockCommonBase-0ed[BlockCommonBase<BlockKind::ThematicBreak>] ---- == Base Classes [cols=2] |=== | Name | Description | `link:#mrdocs-doc-BlockCommonBase-0ed[BlockCommonBase<BlockKind::ThematicBreak>]` | Base class for providing variant discriminator functions. |=== == Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-doc-ThematicBreakBlock-2constructor[`ThematicBreakBlock`] [.small]#[constructor]# | Copy constructor | link:#mrdocs-doc-ThematicBreakBlock-operator_assign[`operator=`] | Copy assignment operator | link:#mrdocs-doc-ThematicBreakBlock-operator_3way-01[`operator<=>`] | Three‐way comparison operators |=== == Static Member Functions [cols=1] |=== | Name | link:#mrdocs-doc-ThematicBreakBlock-isAdmonition[`isAdmonition`] | link:#mrdocs-doc-ThematicBreakBlock-isBrief[`isBrief`] | link:#mrdocs-doc-ThematicBreakBlock-isCode[`isCode`] | link:#mrdocs-doc-ThematicBreakBlock-isDefinitionList[`isDefinitionList`] | link:#mrdocs-doc-ThematicBreakBlock-isFootnoteDefinition[`isFootnoteDefinition`] | link:#mrdocs-doc-ThematicBreakBlock-isHeading[`isHeading`] | link:#mrdocs-doc-ThematicBreakBlock-isList[`isList`] | link:#mrdocs-doc-ThematicBreakBlock-isMath[`isMath`] | link:#mrdocs-doc-ThematicBreakBlock-isParagraph[`isParagraph`] | link:#mrdocs-doc-ThematicBreakBlock-isParam[`isParam`] | link:#mrdocs-doc-ThematicBreakBlock-isPostcondition[`isPostcondition`] | link:#mrdocs-doc-ThematicBreakBlock-isPrecondition[`isPrecondition`] | link:#mrdocs-doc-ThematicBreakBlock-isQuote[`isQuote`] | link:#mrdocs-doc-ThematicBreakBlock-isReturns[`isReturns`] | link:#mrdocs-doc-ThematicBreakBlock-isSee[`isSee`] | link:#mrdocs-doc-ThematicBreakBlock-isTParam[`isTParam`] | link:#mrdocs-doc-ThematicBreakBlock-isTable[`isTable`] | link:#mrdocs-doc-ThematicBreakBlock-isThematicBreak[`isThematicBreak`] | link:#mrdocs-doc-ThematicBreakBlock-isThrows[`isThrows`] |=== == Static Data Members [cols=1] |=== | Name | link:#mrdocs-doc-ThematicBreakBlock-kind_id[`kind_id`] |=== == Non-Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-doc-isEmpty-06[`isEmpty`] | Determine if the inline is empty | link:#mrdocs-doc-ltrim-0d[`ltrim`] | Removes leading whitespace from the block. | link:#mrdocs-doc-rtrim-0c[`rtrim`] | Removes trailing whitespace from the block. | link:#mrdocs-doc-trim-071[`trim`] | Removes leading and trailing whitespace from the block. |=== Copy constructor == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/ThematicBreakBlock.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr ThematicBreakBlock(link:#mrdocs-doc-ThematicBreakBlock[ThematicBreakBlock] const& other) = default; ---- == Parameters [cols=2] |=== | Name | Description | *other* | The object to copy construct from |=== Copy assignment operator == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/ThematicBreakBlock.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-doc-ThematicBreakBlock[ThematicBreakBlock]& operator=(link:#mrdocs-doc-ThematicBreakBlock[ThematicBreakBlock] const& other) = default; ---- == Return Value Reference to the current object == Parameters [cols=2] |=== | Name | Description | *other* | The object to copy assign from |=== Three‐way comparison operators == Synopses Declared in `<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>` Three‐way comparison operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr auto link:#mrdocs-doc-ThematicBreakBlock-operator_3way-04[operator<=>](link:#mrdocs-doc-ThematicBreakBlock[ThematicBreakBlock] const& rhs) const = default; ---- [.small]#link:#mrdocs-doc-ThematicBreakBlock-operator_3way-04[_» more..._]# Three‐way comparison operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr auto link:#mrdocs-doc-ThematicBreakBlock-operator_3way-0c[operator<=>](link:#mrdocs-doc-BlockCommonBase-0ed[BlockCommonBase<mrdocs::doc::BlockKind::ThematicBreak>] const& rhs) const = default; ---- [.small]#link:#mrdocs-doc-ThematicBreakBlock-operator_3way-0c[_» more..._]# Three‐way comparison operator == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/ThematicBreakBlock.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr auto operator<=>(link:#mrdocs-doc-ThematicBreakBlock[ThematicBreakBlock] const& rhs) const = default; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== Three‐way comparison operator == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr auto operator<=>(link:#mrdocs-doc-BlockCommonBase-0ed[BlockCommonBase<mrdocs::doc::BlockKind::ThematicBreak>] const& rhs) const = default; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isAdmonition() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isBrief() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isCode() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isDefinitionList() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isFootnoteDefinition() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isHeading() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isList() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isMath() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isParagraph() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isParam() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isPostcondition() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isPrecondition() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isQuote() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isReturns() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isSee() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isTParam() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isTable() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isThematicBreak() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isThrows() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static link:#mrdocs-doc-BlockKind[BlockKind] kind_id; ---- Documentation for a function parameter == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/ThrowsBlock.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- struct ThrowsBlock final : link:#mrdocs-doc-BlockCommonBase-0ed[BlockCommonBase<BlockKind::Throws>] , link:#mrdocs-doc-InlineContainer[InlineContainer] ---- == Base Classes [cols=2] |=== | Name | Description | `link:#mrdocs-doc-BlockCommonBase-0ed[BlockCommonBase<BlockKind::Throws>]` | Base class for providing variant discriminator functions. | `link:#mrdocs-doc-InlineContainer[InlineContainer]` | An internal node in the inline element tree |=== == Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-doc-InlineContainer-operator_assign-02[`operator=`] | Assign an InlineContainer with a single TextInline child. | link:#mrdocs-doc-InlineContainer-append-0c[`append`] | `append` overloads | link:#mrdocs-doc-InlineContainer-asInlineContainer-0b[`asInlineContainer`] | Helper function so that derived classes can get a reference to the base class. | link:#mrdocs-doc-InlineContainer-back-03[`back`] | Get the last inline child. | link:#mrdocs-doc-InlineContainer-begin[`begin`] | Begin iterator forwarding to children | link:#mrdocs-doc-InlineContainer-clear[`clear`] | Clear all inline children. | link:#mrdocs-doc-InlineContainer-emplace_back[`emplace_back`] | Append a child of the specified type. | link:#mrdocs-doc-InlineContainer-empty[`empty`] | Determine if there are no inline children. | link:#mrdocs-doc-InlineContainer-end[`end`] | End iterator forwarding to children | link:#mrdocs-doc-InlineContainer-erase[`erase`] | Erase from children | link:#mrdocs-doc-InlineContainer-front-03[`front`] | Get the first inline child. | link:#mrdocs-doc-InlineContainer-insert[`insert`] | Erase from children | link:#mrdocs-doc-InlineContainer-operator_plus_eq-06[`operator+=`] | Addition assignment operators | link:#mrdocs-doc-InlineContainer-size[`size`] | Get the number of inline children. | link:#mrdocs-doc-ThrowsBlock-operator_eq-00[`operator==`] | Compare two InlineContainers. | link:#mrdocs-doc-ThrowsBlock-operator_3way-0a[`operator<=>`] | Compare two InlineContainers. |=== == Static Member Functions [cols=1] |=== | Name | link:#mrdocs-doc-ThrowsBlock-isAdmonition[`isAdmonition`] | link:#mrdocs-doc-ThrowsBlock-isBrief[`isBrief`] | link:#mrdocs-doc-ThrowsBlock-isCode[`isCode`] | link:#mrdocs-doc-ThrowsBlock-isDefinitionList[`isDefinitionList`] | link:#mrdocs-doc-ThrowsBlock-isFootnoteDefinition[`isFootnoteDefinition`] | link:#mrdocs-doc-ThrowsBlock-isHeading[`isHeading`] | link:#mrdocs-doc-ThrowsBlock-isList[`isList`] | link:#mrdocs-doc-ThrowsBlock-isMath[`isMath`] | link:#mrdocs-doc-ThrowsBlock-isParagraph[`isParagraph`] | link:#mrdocs-doc-ThrowsBlock-isParam[`isParam`] | link:#mrdocs-doc-ThrowsBlock-isPostcondition[`isPostcondition`] | link:#mrdocs-doc-ThrowsBlock-isPrecondition[`isPrecondition`] | link:#mrdocs-doc-ThrowsBlock-isQuote[`isQuote`] | link:#mrdocs-doc-ThrowsBlock-isReturns[`isReturns`] | link:#mrdocs-doc-ThrowsBlock-isSee[`isSee`] | link:#mrdocs-doc-ThrowsBlock-isTParam[`isTParam`] | link:#mrdocs-doc-ThrowsBlock-isTable[`isTable`] | link:#mrdocs-doc-ThrowsBlock-isThematicBreak[`isThematicBreak`] | link:#mrdocs-doc-ThrowsBlock-isThrows[`isThrows`] |=== == Data Members [cols=1] |=== | Name | link:#mrdocs-doc-InlineContainer-children[`children`] | link:#mrdocs-doc-ThrowsBlock-exception[`exception`] |=== == Static Data Members [cols=1] |=== | Name | link:#mrdocs-doc-ThrowsBlock-kind_id[`kind_id`] |=== == Using Declarations [cols=1] |=== | Name | link:#mrdocs-doc-ThrowsBlock-2constructor[`ThrowsBlock`] |=== == Non-Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-doc-getAsPlainText-097[`getAsPlainText`] | Flatten an InlineContainer to plain text. | link:#mrdocs-doc-getAsPlainText-09f[`getAsPlainText`] | Flatten an InlineContainer to plain text. | link:#mrdocs-doc-isEmpty-06[`isEmpty`] | Determine if the inline is empty | link:#mrdocs-doc-ltrim-0b[`ltrim`] | Removes leading whitespace from the first text element in the given InlineContainer. | link:#mrdocs-doc-ltrim-0d[`ltrim`] | Removes leading whitespace from the block. | link:#mrdocs-doc-rtrim-0b[`rtrim`] | Removes trailing whitespace from the last text element in the given InlineContainer. | link:#mrdocs-doc-rtrim-0c[`rtrim`] | Removes trailing whitespace from the block. | link:#mrdocs-doc-trim-071[`trim`] | Removes leading and trailing whitespace from the block. | link:#mrdocs-doc-trim-08[`trim`] | Removes leading and trailing whitespace from the text elements in the given InlineContainer. |=== Compare two InlineContainers. == Synopses Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` Equality operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr bool link:#mrdocs-doc-ThrowsBlock-operator_eq-06[operator==](link:#mrdocs-doc-ThrowsBlock[ThrowsBlock] const& rhs) const noexcept = default; ---- [.small]#link:#mrdocs-doc-ThrowsBlock-operator_eq-06[_» more..._]# Compare two InlineContainers. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr bool link:#mrdocs-doc-InlineContainer-operator_eq[operator==](link:#mrdocs-doc-InlineContainer[InlineContainer] const& rhs) const = default; ---- [.small]#link:#mrdocs-doc-InlineContainer-operator_eq[_» more..._]# Equality operator == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/ThrowsBlock.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr bool operator==(link:#mrdocs-doc-ThrowsBlock[ThrowsBlock] const& rhs) const noexcept = default; ---- == Return Value `true` if the objects are equal, `false` otherwise == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== Compare two InlineContainers. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr bool operator==(link:#mrdocs-doc-InlineContainer[InlineContainer] const& rhs) const = default; ---- == Return Value `true` if the objects are equal, `false` otherwise == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== Compare two InlineContainers. == Synopses Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` Three‐way comparison operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- auto link:#mrdocs-doc-ThrowsBlock-operator_3way-0e[operator<=>](link:#mrdocs-doc-ThrowsBlock[ThrowsBlock] const& rhs) const = default; ---- [.small]#link:#mrdocs-doc-ThrowsBlock-operator_3way-0e[_» more..._]# Three‐way comparison operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr auto link:#mrdocs-doc-ThrowsBlock-operator_3way-09[operator<=>](link:#mrdocs-doc-BlockCommonBase-0ed[BlockCommonBase<mrdocs::doc::BlockKind::Throws>] const& rhs) const = default; ---- [.small]#link:#mrdocs-doc-ThrowsBlock-operator_3way-09[_» more..._]# Compare two InlineContainers. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::strong_ordering link:#mrdocs-doc-InlineContainer-operator_3way[operator<=>](link:#mrdocs-doc-InlineContainer[InlineContainer] const& rhs) const; ---- [.small]#link:#mrdocs-doc-InlineContainer-operator_3way[_» more..._]# Three‐way comparison operator == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/ThrowsBlock.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- auto operator<=>(link:#mrdocs-doc-ThrowsBlock[ThrowsBlock] const& rhs) const = default; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== Three‐way comparison operator == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr auto operator<=>(link:#mrdocs-doc-BlockCommonBase-0ed[BlockCommonBase<mrdocs::doc::BlockKind::Throws>] const& rhs) const = default; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== Compare two InlineContainers. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::strong_ordering operator<=>(link:#mrdocs-doc-InlineContainer[InlineContainer] const& rhs) const; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isAdmonition() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isBrief() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isCode() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isDefinitionList() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isFootnoteDefinition() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isHeading() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isList() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isMath() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isParagraph() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isParam() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isPostcondition() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isPrecondition() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isQuote() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isReturns() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isSee() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isTParam() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isTable() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isThematicBreak() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isThrows() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/ThrowsBlock.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-doc-ReferenceInline[ReferenceInline] exception; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static link:#mrdocs-doc-BlockKind[BlockKind] kind_id; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/ThrowsBlock.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- using InlineContainer::ThrowsBlock; ---- == Introduced Symbols [cols=2] |=== | Name | Description | link:#mrdocs-doc-InlineContainer-2constructor-06[mrdocs::doc::InlineContainer::InlineContainer] | Construct an InlineContainer with a single TextInline child. | link:#mrdocs-doc-InlineContainer-2constructor-0b[mrdocs::doc::InlineContainer::InlineContainer] | Construct an InlineContainer with a single TextInline child. | link:#mrdocs-doc-InlineContainer-2constructor-0a8[mrdocs::doc::InlineContainer::InlineContainer] | Construct an InlineContainer with a single TextInline child. | link:#mrdocs-doc-InlineContainer-2constructor-09[mrdocs::doc::InlineContainer::InlineContainer] | Construct an InlineContainer with a single TextInline child. | link:#mrdocs-doc-InlineContainer-2constructor-07[mrdocs::doc::InlineContainer::InlineContainer] | Move constructor | link:#mrdocs-doc-InlineContainer-2constructor-0af[mrdocs::doc::InlineContainer::InlineContainer] | Copy constructor |=== An admonishment style. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/AdmonitionKind.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- enum class AdmonitionKind : int; ---- == Members [cols=2] |=== | Name | Description | `none` | No admonishment | `note` | A general note | `tip` | A tip to the reader | `important` | Something important | `caution` | A caution admonishment | `warning` | A warning admonishment |=== == Non-Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-doc-toString-06[`toString`] | Return the name of the Admonish as a string. |=== == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockKind.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- enum class BlockKind : int; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineKind.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- enum class InlineKind : int; ---- Parameter pass direction. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/ParamDirection.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- enum class ParamDirection : int; ---- == Members [cols=2] |=== | Name | Description | `none` | No direction specified | `in` | Parameter is passed | `out` | Parameter is passed back to the caller | `inout` | Parameter is passed and passed back to the caller |=== == Non-Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-doc-toString-0ed[`toString`] | Return the name of the ParamDirection as a string. |=== Which parts of the documentation to copy. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/Parts.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- enum class Parts : int; ---- == Members [cols=2] |=== | Name | Description | `all` | Copy the brief and the description | `brief` | Copy the brief | `description` | Copy the description |=== == Non-Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-doc-toString-07[`toString`] | Return the name of the Parts as a string. |=== == Description * `all`: copy the brief and the description. * `brief`: only copy the brief. * `description`: only copy the description. `getAsPlainText` overloads == Synopses Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` Get the plain text representation of an inline element tree. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::string link:#mrdocs-doc-getAsPlainText-0ad[getAsPlainText](link:#mrdocs-doc-Inline[doc::Inline] const& in); ---- [.small]#link:#mrdocs-doc-getAsPlainText-0ad[_» more..._]# Flatten an InlineContainer to plain text. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::string link:#mrdocs-doc-getAsPlainText-09f[getAsPlainText](link:#mrdocs-doc-InlineContainer[doc::InlineContainer] const& in); ---- [.small]#link:#mrdocs-doc-getAsPlainText-09f[_» more..._]# Get the plain text representation of an inline element tree. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void link:#mrdocs-doc-getAsPlainText-0ae[getAsPlainText]( link:#mrdocs-doc-Inline[doc::Inline] const& in, std::string& dst); ---- [.small]#link:#mrdocs-doc-getAsPlainText-0ae[_» more..._]# Flatten an InlineContainer to plain text. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void link:#mrdocs-doc-getAsPlainText-097[getAsPlainText]( link:#mrdocs-doc-InlineContainer[doc::InlineContainer] const& in, std::string& dst); ---- [.small]#link:#mrdocs-doc-getAsPlainText-097[_» more..._]# == Return Value The flattened plain text. == Parameters [cols=2] |=== | Name | Description | *in* | The input inline element. | *dst* | The output string to append to. |=== Get the plain text representation of an inline element tree. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::string getAsPlainText(link:#mrdocs-doc-Inline[doc::Inline] const& in); ---- == Description This strips all formatting and returns just the text content. == Return Value The flattened plain text. == Parameters [cols=2] |=== | Name | Description | *in* | The input inline element. |=== Flatten an InlineContainer to plain text. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::string getAsPlainText(link:#mrdocs-doc-InlineContainer[doc::InlineContainer] const& in); ---- == Description This concatenates all text nodes, ignoring formatting. == Return Value The flattened plain text. == Parameters [cols=2] |=== | Name | Description | *in* | The InlineContainer to flatten. |=== Get the plain text representation of an inline element tree. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void getAsPlainText( link:#mrdocs-doc-Inline[doc::Inline] const& in, std::string& dst); ---- == Description This strips all formatting and returns just the text content. == Return Value the plain text representation of an inline element tree. == Parameters [cols=2] |=== | Name | Description | *in* | The input inline element. | *dst* | The output string to append to. |=== Flatten an InlineContainer to plain text. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void getAsPlainText( link:#mrdocs-doc-InlineContainer[doc::InlineContainer] const& in, std::string& dst); ---- == Description This concatenates all text nodes, ignoring formatting. == Parameters [cols=2] |=== | Name | Description | *in* | The InlineContainer to flatten. | *dst* | The output string to append to. |=== == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockKind.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr bool isBlockCommand(link:#mrdocs-doc-BlockKind[BlockKind] k) noexcept; ---- Determine if the inline is empty == Synopses Declared in `<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>` Determine if the inline is empty [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool link:#mrdocs-doc-isEmpty-06[isEmpty](link:#mrdocs-doc-Block[Block] const& el); ---- [.small]#link:#mrdocs-doc-isEmpty-06[_» more..._]# Determine if the inline is empty [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool link:#mrdocs-doc-isEmpty-03[isEmpty](link:#mrdocs-Polymorphic[Polymorphic<Block>] const& el); ---- [.small]#link:#mrdocs-doc-isEmpty-03[_» more..._]# Determine if the inline is empty [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool link:#mrdocs-doc-isEmpty-00[isEmpty](link:#mrdocs-Polymorphic[Polymorphic<Inline>] const& el); ---- [.small]#link:#mrdocs-doc-isEmpty-00[_» more..._]# Determine if the inline is empty == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool isEmpty(link:#mrdocs-doc-Block[Block] const& el); ---- == Return Value if the inline is empty == Parameters [cols=2] |=== | Name | Description | *el* | A piece of block content |=== Determine if the inline is empty == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool isEmpty(link:#mrdocs-Polymorphic[Polymorphic<Block>] const& el); ---- == Return Value if the inline is empty == Parameters [cols=2] |=== | Name | Description | *el* | A polymorphic value‐type. |=== Determine if the inline is empty == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool isEmpty(link:#mrdocs-Polymorphic[Polymorphic<Inline>] const& el); ---- == Description This determines if the inline is considered to have no content for the purposes of trimming. == Return Value if the inline is empty == Parameters [cols=2] |=== | Name | Description | *el* | A polymorphic value‐type. |=== `ltrim` overloads == Synopses Declared in `<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>` Removes leading whitespace from the block. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void link:#mrdocs-doc-ltrim-0d[ltrim](link:#mrdocs-doc-Block[Block]& el); ---- [.small]#link:#mrdocs-doc-ltrim-0d[_» more..._]# Removes leading whitespace from the first text elements [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void link:#mrdocs-doc-ltrim-01[ltrim](link:#mrdocs-doc-BlockContainer[BlockContainer]& blocks); ---- [.small]#link:#mrdocs-doc-ltrim-01[_» more..._]# Removes leading whitespace from the first text element in the given InlineContainer. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void link:#mrdocs-doc-ltrim-0b[ltrim](link:#mrdocs-doc-InlineContainer[InlineContainer]& inlines); ---- [.small]#link:#mrdocs-doc-ltrim-0b[_» more..._]# Removes leading whitespace from the block. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void link:#mrdocs-doc-ltrim-05[ltrim](link:#mrdocs-Polymorphic[Polymorphic<Block>]& el); ---- [.small]#link:#mrdocs-doc-ltrim-05[_» more..._]# Removes leading whitespace from the inline element. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void link:#mrdocs-doc-ltrim-02[ltrim](link:#mrdocs-Polymorphic[Polymorphic<Inline>]& el); ---- [.small]#link:#mrdocs-doc-ltrim-02[_» more..._]# == Return Value void == Parameters [cols=2] |=== | Name | Description | *el* | The Block to trim. | *blocks* | The BlockContainer to trim. | *inlines* | The InlineContainer to trim. |=== Removes leading whitespace from the block. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void ltrim(link:#mrdocs-doc-Block[Block]& el); ---- == Return Value void == Parameters [cols=2] |=== | Name | Description | *el* | The Block to trim. |=== Removes leading whitespace from the first text elements == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void ltrim(link:#mrdocs-doc-BlockContainer[BlockContainer]& blocks); ---- == Return Value void == Parameters [cols=2] |=== | Name | Description | *blocks* | The BlockContainer to trim. |=== Removes leading whitespace from the first text element in the given InlineContainer. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void ltrim(link:#mrdocs-doc-InlineContainer[InlineContainer]& inlines); ---- == Return Value void == Parameters [cols=2] |=== | Name | Description | *inlines* | The InlineContainer to trim. |=== Removes leading whitespace from the block. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void ltrim(link:#mrdocs-Polymorphic[Polymorphic<Block>]& el); ---- == Return Value void == Parameters [cols=2] |=== | Name | Description | *el* | The Polymorphic<Block> to trim. |=== Removes leading whitespace from the inline element. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void ltrim(link:#mrdocs-Polymorphic[Polymorphic<Inline>]& el); ---- == Return Value void == Parameters [cols=2] |=== | Name | Description | *el* | The Polymorphic<Inline> to trim. |=== `rtrim` overloads == Synopses Declared in `<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>` Removes trailing whitespace from the block. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void link:#mrdocs-doc-rtrim-0c[rtrim](link:#mrdocs-doc-Block[Block]& el); ---- [.small]#link:#mrdocs-doc-rtrim-0c[_» more..._]# Removes trailing whitespace from the last text elements [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void link:#mrdocs-doc-rtrim-06[rtrim](link:#mrdocs-doc-BlockContainer[BlockContainer]& blocks); ---- [.small]#link:#mrdocs-doc-rtrim-06[_» more..._]# Removes trailing whitespace from the last text element in the given InlineContainer. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void link:#mrdocs-doc-rtrim-0b[rtrim](link:#mrdocs-doc-InlineContainer[InlineContainer]& inlines); ---- [.small]#link:#mrdocs-doc-rtrim-0b[_» more..._]# Removes trailing whitespace from the block. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void link:#mrdocs-doc-rtrim-02[rtrim](link:#mrdocs-Polymorphic[Polymorphic<Block>]& el); ---- [.small]#link:#mrdocs-doc-rtrim-02[_» more..._]# Removes trailing whitespace from the inline element. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void link:#mrdocs-doc-rtrim-0f[rtrim](link:#mrdocs-Polymorphic[Polymorphic<Inline>]& el); ---- [.small]#link:#mrdocs-doc-rtrim-0f[_» more..._]# == Return Value void == Parameters [cols=2] |=== | Name | Description | *el* | The Block to trim. | *blocks* | The BlockContainer to trim. | *inlines* | The InlineContainer to trim. |=== Removes trailing whitespace from the block. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void rtrim(link:#mrdocs-doc-Block[Block]& el); ---- == Return Value void == Parameters [cols=2] |=== | Name | Description | *el* | The Block to trim. |=== Removes trailing whitespace from the last text elements == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void rtrim(link:#mrdocs-doc-BlockContainer[BlockContainer]& blocks); ---- == Return Value void == Parameters [cols=2] |=== | Name | Description | *blocks* | The BlockContainer to trim. |=== Removes trailing whitespace from the last text element in the given InlineContainer. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void rtrim(link:#mrdocs-doc-InlineContainer[InlineContainer]& inlines); ---- == Return Value void == Parameters [cols=2] |=== | Name | Description | *inlines* | The InlineContainer to trim. |=== Removes trailing whitespace from the block. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void rtrim(link:#mrdocs-Polymorphic[Polymorphic<Block>]& el); ---- == Return Value void == Parameters [cols=2] |=== | Name | Description | *el* | The Polymorphic<Block> to trim. |=== Removes trailing whitespace from the inline element. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void rtrim(link:#mrdocs-Polymorphic[Polymorphic<Inline>]& el); ---- == Return Value void == Parameters [cols=2] |=== | Name | Description | *el* | The Polymorphic<Inline> to trim. |=== `tag_invoke` overloads == Synopses Declared in `<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>` Return the Admonish from a link:#mrdocs-dom-Value[`dom::Value`] string. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void link:#mrdocs-doc-tag_invoke-04d9[tag_invoke]( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-doc-AdmonitionKind[AdmonitionKind] const kind); ---- [.small]#link:#mrdocs-doc-tag_invoke-04d9[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void link:#mrdocs-doc-tag_invoke-014[tag_invoke]( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-doc-BlockKind[BlockKind] const kind); ---- [.small]#link:#mrdocs-doc-tag_invoke-014[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void link:#mrdocs-doc-tag_invoke-0ce[tag_invoke]( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-doc-InlineKind[InlineKind] const kind); ---- [.small]#link:#mrdocs-doc-tag_invoke-0ce[_» more..._]# Return the ParamDirection from a link:#mrdocs-dom-Value[`dom::Value`] string. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void link:#mrdocs-doc-tag_invoke-0f2[tag_invoke]( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-doc-ParamDirection[ParamDirection] const kind); ---- [.small]#link:#mrdocs-doc-tag_invoke-0f2[_» more..._]# Return the Parts from a link:#mrdocs-dom-Value[`dom::Value`] string. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void link:#mrdocs-doc-tag_invoke-0034[tag_invoke]( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-doc-Parts[Parts] const kind); ---- [.small]#link:#mrdocs-doc-tag_invoke-0034[_» more..._]# Return the `Admonition` as a link:#mrdocs-dom-Value[`dom::Value`] object. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void link:#mrdocs-doc-tag_invoke-04db[tag_invoke]( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-doc-AdmonitionBlock[AdmonitionBlock] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- [.small]#link:#mrdocs-doc-tag_invoke-04db[_» more..._]# Return the link:#mrdocs-doc-Block[`Block`] as a link:#mrdocs-dom-Value[`dom::Value`] object. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void link:#mrdocs-doc-tag_invoke-0855b[tag_invoke]( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-doc-Block[Block] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- [.small]#link:#mrdocs-doc-tag_invoke-0855b[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void link:#mrdocs-doc-tag_invoke-07e[tag_invoke]( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-doc-BlockContainer[BlockContainer] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- [.small]#link:#mrdocs-doc-tag_invoke-07e[_» more..._]# Return the `Brief` as a link:#mrdocs-dom-Value[`dom::Value`] object. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void link:#mrdocs-doc-tag_invoke-02fb[tag_invoke]( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-doc-BriefBlock[BriefBlock] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- [.small]#link:#mrdocs-doc-tag_invoke-02fb[_» more..._]# Return the `Code` as a link:#mrdocs-dom-Value[`dom::Value`] object. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void link:#mrdocs-doc-tag_invoke-015[tag_invoke]( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-doc-CodeBlock[CodeBlock] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- [.small]#link:#mrdocs-doc-tag_invoke-015[_» more..._]# Return the `Code` as a link:#mrdocs-dom-Value[`dom::Value`] object. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void link:#mrdocs-doc-tag_invoke-06d[tag_invoke]( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-doc-CodeInline[CodeInline] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- [.small]#link:#mrdocs-doc-tag_invoke-06d[_» more..._]# Return the `CopyDetails` as a link:#mrdocs-dom-Value[`dom::Value`] object. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void link:#mrdocs-doc-tag_invoke-0b5[tag_invoke]( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-doc-CopyDetailsInline[CopyDetailsInline] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- [.small]#link:#mrdocs-doc-tag_invoke-0b5[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void link:#mrdocs-doc-tag_invoke-068[tag_invoke]( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-doc-DefinitionListBlock[DefinitionListBlock] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- [.small]#link:#mrdocs-doc-tag_invoke-068[_» more..._]# Return the link:#mrdocs-doc-DefinitionListItem[`DefinitionListItem`] as a link:#mrdocs-dom-Value[`dom::Value`] object. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void link:#mrdocs-doc-tag_invoke-0c5[tag_invoke]( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-doc-DefinitionListItem[DefinitionListItem] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- [.small]#link:#mrdocs-doc-tag_invoke-0c5[_» more..._]# Return the `Emph` as a link:#mrdocs-dom-Value[`dom::Value`] object. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void link:#mrdocs-doc-tag_invoke-065[tag_invoke]( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-doc-EmphInline[EmphInline] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- [.small]#link:#mrdocs-doc-tag_invoke-065[_» more..._]# Return the `FootnoteDefinition` as a link:#mrdocs-dom-Value[`dom::Value`] object. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void link:#mrdocs-doc-tag_invoke-086[tag_invoke]( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-doc-FootnoteDefinitionBlock[FootnoteDefinitionBlock] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- [.small]#link:#mrdocs-doc-tag_invoke-086[_» more..._]# Return the `FootnoteReference` as a link:#mrdocs-dom-Value[`dom::Value`] object. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void link:#mrdocs-doc-tag_invoke-002[tag_invoke]( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-doc-FootnoteReferenceInline[FootnoteReferenceInline] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- [.small]#link:#mrdocs-doc-tag_invoke-002[_» more..._]# Return the `Heading` as a link:#mrdocs-dom-Value[`dom::Value`] object. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void link:#mrdocs-doc-tag_invoke-005[tag_invoke]( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-doc-HeadingBlock[HeadingBlock] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- [.small]#link:#mrdocs-doc-tag_invoke-005[_» more..._]# Return the `Highlight` as a link:#mrdocs-dom-Value[`dom::Value`] object. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void link:#mrdocs-doc-tag_invoke-0cfd[tag_invoke]( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-doc-HighlightInline[HighlightInline] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- [.small]#link:#mrdocs-doc-tag_invoke-0cfd[_» more..._]# Return the `Image` as a link:#mrdocs-dom-Value[`dom::Value`] object. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void link:#mrdocs-doc-tag_invoke-0e7[tag_invoke]( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-doc-ImageInline[ImageInline] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- [.small]#link:#mrdocs-doc-tag_invoke-0e7[_» more..._]# Return the link:#mrdocs-doc-Inline[`Inline`] as a link:#mrdocs-dom-Value[`dom::Value`] object. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void link:#mrdocs-doc-tag_invoke-05c2[tag_invoke]( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-doc-Inline[Inline] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- [.small]#link:#mrdocs-doc-tag_invoke-05c2[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void link:#mrdocs-doc-tag_invoke-028[tag_invoke]( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-doc-InlineContainer[InlineContainer] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- [.small]#link:#mrdocs-doc-tag_invoke-028[_» more..._]# Return the `LineBreak` as a link:#mrdocs-dom-Value[`dom::Value`] object. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void link:#mrdocs-doc-tag_invoke-05c8[tag_invoke]( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-doc-LineBreakInline[LineBreakInline] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- [.small]#link:#mrdocs-doc-tag_invoke-05c8[_» more..._]# Return the `Link` as a link:#mrdocs-dom-Value[`dom::Value`] object. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void link:#mrdocs-doc-tag_invoke-037e[tag_invoke]( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-doc-LinkInline[LinkInline] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- [.small]#link:#mrdocs-doc-tag_invoke-037e[_» more..._]# Return the `UnorderedList` as a link:#mrdocs-dom-Value[`dom::Value`] object. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void link:#mrdocs-doc-tag_invoke-0d2[tag_invoke]( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-doc-ListBlock[ListBlock] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- [.small]#link:#mrdocs-doc-tag_invoke-0d2[_» more..._]# Return the link:#mrdocs-doc-ListItem[`ListItem`] as a link:#mrdocs-dom-Value[`dom::Value`] object. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void link:#mrdocs-doc-tag_invoke-0ad0[tag_invoke]( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-doc-ListItem[ListItem] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- [.small]#link:#mrdocs-doc-tag_invoke-0ad0[_» more..._]# Return the `Brief` as a link:#mrdocs-dom-Value[`dom::Value`] object. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void link:#mrdocs-doc-tag_invoke-0af[tag_invoke]( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-doc-MathBlock[MathBlock] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- [.small]#link:#mrdocs-doc-tag_invoke-0af[_» more..._]# Return the `Math` as a link:#mrdocs-dom-Value[`dom::Value`] object. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void link:#mrdocs-doc-tag_invoke-03c7[tag_invoke]( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-doc-MathInline[MathInline] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- [.small]#link:#mrdocs-doc-tag_invoke-03c7[_» more..._]# Return the `Paragraph` as a link:#mrdocs-dom-Value[`dom::Value`] object. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void link:#mrdocs-doc-tag_invoke-08a[tag_invoke]( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-doc-ParagraphBlock[ParagraphBlock] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- [.small]#link:#mrdocs-doc-tag_invoke-08a[_» more..._]# Return the link:#mrdocs-Param[`Param`] as a link:#mrdocs-dom-Value[`dom::Value`] object. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void link:#mrdocs-doc-tag_invoke-0b14[tag_invoke]( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-doc-ParamBlock[ParamBlock] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- [.small]#link:#mrdocs-doc-tag_invoke-0b14[_» more..._]# Return the `Postcondition` as a link:#mrdocs-dom-Value[`dom::Value`] object. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void link:#mrdocs-doc-tag_invoke-032[tag_invoke]( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-doc-PostconditionBlock[PostconditionBlock] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- [.small]#link:#mrdocs-doc-tag_invoke-032[_» more..._]# Return the `Precondition` as a link:#mrdocs-dom-Value[`dom::Value`] object. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void link:#mrdocs-doc-tag_invoke-059[tag_invoke]( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-doc-PreconditionBlock[PreconditionBlock] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- [.small]#link:#mrdocs-doc-tag_invoke-059[_» more..._]# Return the link:#mrdocs-doc-QuoteBlock[`QuoteBlock`] as a link:#mrdocs-dom-Value[`dom::Value`] object. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void link:#mrdocs-doc-tag_invoke-0d1[tag_invoke]( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-doc-QuoteBlock[QuoteBlock] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- [.small]#link:#mrdocs-doc-tag_invoke-0d1[_» more..._]# Return the `Reference` as a link:#mrdocs-dom-Value[`dom::Value`] object. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void link:#mrdocs-doc-tag_invoke-0bf[tag_invoke]( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-doc-ReferenceInline[ReferenceInline] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- [.small]#link:#mrdocs-doc-tag_invoke-0bf[_» more..._]# Return the `Returns` as a link:#mrdocs-dom-Value[`dom::Value`] object. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void link:#mrdocs-doc-tag_invoke-088[tag_invoke]( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-doc-ReturnsBlock[ReturnsBlock] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- [.small]#link:#mrdocs-doc-tag_invoke-088[_» more..._]# Return the `See` as a link:#mrdocs-dom-Value[`dom::Value`] object. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void link:#mrdocs-doc-tag_invoke-046[tag_invoke]( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-doc-SeeBlock[SeeBlock] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- [.small]#link:#mrdocs-doc-tag_invoke-046[_» more..._]# Return the `SoftBreak` as a link:#mrdocs-dom-Value[`dom::Value`] object. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void link:#mrdocs-doc-tag_invoke-0c6[tag_invoke]( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-doc-SoftBreakInline[SoftBreakInline] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- [.small]#link:#mrdocs-doc-tag_invoke-0c6[_» more..._]# Return the `Strikethrough` as a link:#mrdocs-dom-Value[`dom::Value`] object. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void link:#mrdocs-doc-tag_invoke-0edc[tag_invoke]( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-doc-StrikethroughInline[StrikethroughInline] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- [.small]#link:#mrdocs-doc-tag_invoke-0edc[_» more..._]# Return the `Strong` as a link:#mrdocs-dom-Value[`dom::Value`] object. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void link:#mrdocs-doc-tag_invoke-000d[tag_invoke]( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-doc-StrongInline[StrongInline] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- [.small]#link:#mrdocs-doc-tag_invoke-000d[_» more..._]# Return the `Subscript` as a link:#mrdocs-dom-Value[`dom::Value`] object. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void link:#mrdocs-doc-tag_invoke-0d8d[tag_invoke]( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-doc-SubscriptInline[SubscriptInline] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- [.small]#link:#mrdocs-doc-tag_invoke-0d8d[_» more..._]# Return the `Superscript` as a link:#mrdocs-dom-Value[`dom::Value`] object. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void link:#mrdocs-doc-tag_invoke-054c[tag_invoke]( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-doc-SuperscriptInline[SuperscriptInline] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- [.small]#link:#mrdocs-doc-tag_invoke-054c[_» more..._]# Return the link:#mrdocs-TParam[`TParam`] as a link:#mrdocs-dom-Value[`dom::Value`] object. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void link:#mrdocs-doc-tag_invoke-09e[tag_invoke]( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-doc-TParamBlock[TParamBlock] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- [.small]#link:#mrdocs-doc-tag_invoke-09e[_» more..._]# Return the `UnorderedTable` as a link:#mrdocs-dom-Value[`dom::Value`] object. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void link:#mrdocs-doc-tag_invoke-019c[tag_invoke]( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-doc-TableBlock[TableBlock] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- [.small]#link:#mrdocs-doc-tag_invoke-019c[_» more..._]# Return the link:#mrdocs-doc-TableCell[`TableCell`] as a link:#mrdocs-dom-Value[`dom::Value`] object. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void link:#mrdocs-doc-tag_invoke-0ca[tag_invoke]( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-doc-TableCell[TableCell] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- [.small]#link:#mrdocs-doc-tag_invoke-0ca[_» more..._]# Return the link:#mrdocs-doc-TableRow[`TableRow`] as a link:#mrdocs-dom-Value[`dom::Value`] object. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void link:#mrdocs-doc-tag_invoke-09d[tag_invoke]( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-doc-TableRow[TableRow] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- [.small]#link:#mrdocs-doc-tag_invoke-09d[_» more..._]# Return the `Text` as a link:#mrdocs-dom-Value[`dom::Value`] object. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void link:#mrdocs-doc-tag_invoke-0037[tag_invoke]( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-doc-TextInline[TextInline] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- [.small]#link:#mrdocs-doc-tag_invoke-0037[_» more..._]# Return the `Brief` as a link:#mrdocs-dom-Value[`dom::Value`] object. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void link:#mrdocs-doc-tag_invoke-0edf[tag_invoke]( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-doc-ThematicBreakBlock[ThematicBreakBlock] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- [.small]#link:#mrdocs-doc-tag_invoke-0edf[_» more..._]# Return the `Throws` as a link:#mrdocs-dom-Value[`dom::Value`] object. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void link:#mrdocs-doc-tag_invoke-0fa[tag_invoke]( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-doc-ThrowsBlock[ThrowsBlock] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- [.small]#link:#mrdocs-doc-tag_invoke-0fa[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void link:#mrdocs-doc-tag_invoke-0b15[tag_invoke]( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-Optional-03[Optional<Polymorphic<Block>>] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- [.small]#link:#mrdocs-doc-tag_invoke-0b15[_» more..._]# Map the Polymorphic Block as a link:#mrdocs-dom-Value[`dom::Value`] object. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void link:#mrdocs-doc-tag_invoke-0a4[tag_invoke]( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-Polymorphic[Polymorphic<Block>] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- [.small]#link:#mrdocs-doc-tag_invoke-0a4[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void link:#mrdocs-doc-tag_invoke-0954[tag_invoke]( link:#mrdocs-dom-ValueFromTag[mrdocs::dom::ValueFromTag], link:#mrdocs-dom-Value[mrdocs::dom::Value]& v, link:#mrdocs-Optional-03[Optional<BriefBlock>] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- [.small]#link:#mrdocs-doc-tag_invoke-0954[_» more..._]# Map the Polymorphic Block to a link:#mrdocs-dom-Object[`dom::Object`]. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class IO> void link:#mrdocs-doc-tag_invoke-0d0[tag_invoke]( link:#mrdocs-dom-LazyObjectMapTag[dom::LazyObjectMapTag], IO& io, link:#mrdocs-Polymorphic[Polymorphic<Block>] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- [.small]#link:#mrdocs-doc-tag_invoke-0d0[_» more..._]# Map the `Admonition` to a link:#mrdocs-dom-Object[`dom::Object`]. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class IO> void link:#mrdocs-doc-tag_invoke-089[tag_invoke]( link:#mrdocs-dom-LazyObjectMapTag[dom::LazyObjectMapTag] t, IO& io, link:#mrdocs-doc-AdmonitionBlock[AdmonitionBlock] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- [.small]#link:#mrdocs-doc-tag_invoke-089[_» more..._]# Map the link:#mrdocs-doc-Block[`Block`] to a link:#mrdocs-dom-Object[`dom::Object`]. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class IO> void link:#mrdocs-doc-tag_invoke-0572[tag_invoke]( link:#mrdocs-dom-LazyObjectMapTag[dom::LazyObjectMapTag] t, IO& io, link:#mrdocs-doc-Block[Block] const& I, link:#mrdocs-DomCorpus[DomCorpus] const*); ---- [.small]#link:#mrdocs-doc-tag_invoke-0572[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class IO> void link:#mrdocs-doc-tag_invoke-09f[tag_invoke]( link:#mrdocs-dom-LazyObjectMapTag[dom::LazyObjectMapTag] t, IO& io, link:#mrdocs-doc-BlockContainer[BlockContainer] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- [.small]#link:#mrdocs-doc-tag_invoke-09f[_» more..._]# Map the `Brief` to a link:#mrdocs-dom-Object[`dom::Object`]. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class IO> void link:#mrdocs-doc-tag_invoke-01a[tag_invoke]( link:#mrdocs-dom-LazyObjectMapTag[dom::LazyObjectMapTag] t, IO& io, link:#mrdocs-doc-BriefBlock[BriefBlock] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- [.small]#link:#mrdocs-doc-tag_invoke-01a[_» more..._]# Map the `Code` to a link:#mrdocs-dom-Object[`dom::Object`]. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class IO> void link:#mrdocs-doc-tag_invoke-0e5[tag_invoke]( link:#mrdocs-dom-LazyObjectMapTag[dom::LazyObjectMapTag] t, IO& io, link:#mrdocs-doc-CodeBlock[CodeBlock] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- [.small]#link:#mrdocs-doc-tag_invoke-0e5[_» more..._]# Map the `Code` to a link:#mrdocs-dom-Object[`dom::Object`]. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class IO> void link:#mrdocs-doc-tag_invoke-00a[tag_invoke]( link:#mrdocs-dom-LazyObjectMapTag[dom::LazyObjectMapTag] t, IO& io, link:#mrdocs-doc-CodeInline[CodeInline] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- [.small]#link:#mrdocs-doc-tag_invoke-00a[_» more..._]# Map the `CopyDetails` to a link:#mrdocs-dom-Object[`dom::Object`]. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class IO> void link:#mrdocs-doc-tag_invoke-0ada[tag_invoke]( link:#mrdocs-dom-LazyObjectMapTag[dom::LazyObjectMapTag] t, IO& io, link:#mrdocs-doc-CopyDetailsInline[CopyDetailsInline] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- [.small]#link:#mrdocs-doc-tag_invoke-0ada[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class IO> void link:#mrdocs-doc-tag_invoke-0197[tag_invoke]( link:#mrdocs-dom-LazyObjectMapTag[dom::LazyObjectMapTag] t, IO& io, link:#mrdocs-doc-DefinitionListBlock[DefinitionListBlock] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- [.small]#link:#mrdocs-doc-tag_invoke-0197[_» more..._]# Map the link:#mrdocs-doc-DefinitionListItem[`DefinitionListItem`] to a link:#mrdocs-dom-Object[`dom::Object`]. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class IO> void link:#mrdocs-doc-tag_invoke-0855d[tag_invoke]( link:#mrdocs-dom-LazyObjectMapTag[dom::LazyObjectMapTag] t, IO& io, link:#mrdocs-doc-DefinitionListItem[DefinitionListItem] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- [.small]#link:#mrdocs-doc-tag_invoke-0855d[_» more..._]# Map the `Emph` to a link:#mrdocs-dom-Object[`dom::Object`]. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class IO> void link:#mrdocs-doc-tag_invoke-02b[tag_invoke]( link:#mrdocs-dom-LazyObjectMapTag[dom::LazyObjectMapTag] t, IO& io, link:#mrdocs-doc-EmphInline[EmphInline] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- [.small]#link:#mrdocs-doc-tag_invoke-02b[_» more..._]# Map the `FootnoteDefinition` to a link:#mrdocs-dom-Object[`dom::Object`]. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class IO> void link:#mrdocs-doc-tag_invoke-0546[tag_invoke]( link:#mrdocs-dom-LazyObjectMapTag[dom::LazyObjectMapTag] t, IO& io, link:#mrdocs-doc-FootnoteDefinitionBlock[FootnoteDefinitionBlock] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- [.small]#link:#mrdocs-doc-tag_invoke-0546[_» more..._]# Map the `FootnoteReference` to a link:#mrdocs-dom-Object[`dom::Object`]. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class IO> void link:#mrdocs-doc-tag_invoke-040[tag_invoke]( link:#mrdocs-dom-LazyObjectMapTag[dom::LazyObjectMapTag] t, IO& io, link:#mrdocs-doc-FootnoteReferenceInline[FootnoteReferenceInline] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- [.small]#link:#mrdocs-doc-tag_invoke-040[_» more..._]# Map the `Heading` to a link:#mrdocs-dom-Object[`dom::Object`]. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class IO> void link:#mrdocs-doc-tag_invoke-0b7[tag_invoke]( link:#mrdocs-dom-LazyObjectMapTag[dom::LazyObjectMapTag] t, IO& io, link:#mrdocs-doc-HeadingBlock[HeadingBlock] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- [.small]#link:#mrdocs-doc-tag_invoke-0b7[_» more..._]# Map the `Highlight` to a link:#mrdocs-dom-Object[`dom::Object`]. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class IO> void link:#mrdocs-doc-tag_invoke-0006[tag_invoke]( link:#mrdocs-dom-LazyObjectMapTag[dom::LazyObjectMapTag] t, IO& io, link:#mrdocs-doc-HighlightInline[HighlightInline] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- [.small]#link:#mrdocs-doc-tag_invoke-0006[_» more..._]# Map the `Image` to a link:#mrdocs-dom-Object[`dom::Object`]. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class IO> void link:#mrdocs-doc-tag_invoke-057f[tag_invoke]( link:#mrdocs-dom-LazyObjectMapTag[dom::LazyObjectMapTag] t, IO& io, link:#mrdocs-doc-ImageInline[ImageInline] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- [.small]#link:#mrdocs-doc-tag_invoke-057f[_» more..._]# Map the link:#mrdocs-doc-Inline[`Inline`] to a link:#mrdocs-dom-Object[`dom::Object`]. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class IO> void link:#mrdocs-doc-tag_invoke-029[tag_invoke]( link:#mrdocs-dom-LazyObjectMapTag[dom::LazyObjectMapTag] t, IO& io, link:#mrdocs-doc-Inline[Inline] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- [.small]#link:#mrdocs-doc-tag_invoke-029[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class IO> void link:#mrdocs-doc-tag_invoke-0f8[tag_invoke]( link:#mrdocs-dom-LazyObjectMapTag[dom::LazyObjectMapTag] t, IO& io, link:#mrdocs-doc-InlineContainer[InlineContainer] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- [.small]#link:#mrdocs-doc-tag_invoke-0f8[_» more..._]# Map the `LineBreak` to a link:#mrdocs-dom-Object[`dom::Object`]. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class IO> void link:#mrdocs-doc-tag_invoke-02f8[tag_invoke]( link:#mrdocs-dom-LazyObjectMapTag[dom::LazyObjectMapTag] t, IO& io, link:#mrdocs-doc-LineBreakInline[LineBreakInline] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- [.small]#link:#mrdocs-doc-tag_invoke-02f8[_» more..._]# Map the `Link` to a link:#mrdocs-dom-Object[`dom::Object`]. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class IO> void link:#mrdocs-doc-tag_invoke-0ba[tag_invoke]( link:#mrdocs-dom-LazyObjectMapTag[dom::LazyObjectMapTag] t, IO& io, link:#mrdocs-doc-LinkInline[LinkInline] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- [.small]#link:#mrdocs-doc-tag_invoke-0ba[_» more..._]# Map the `UnorderedList` to a link:#mrdocs-dom-Object[`dom::Object`]. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class IO> void link:#mrdocs-doc-tag_invoke-0957[tag_invoke]( link:#mrdocs-dom-LazyObjectMapTag[dom::LazyObjectMapTag] t, IO& io, link:#mrdocs-doc-ListBlock[ListBlock] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- [.small]#link:#mrdocs-doc-tag_invoke-0957[_» more..._]# Map the link:#mrdocs-doc-ListItem[`ListItem`] to a link:#mrdocs-dom-Object[`dom::Object`]. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class IO> void link:#mrdocs-doc-tag_invoke-03c5[tag_invoke]( link:#mrdocs-dom-LazyObjectMapTag[dom::LazyObjectMapTag] t, IO& io, link:#mrdocs-doc-ListItem[ListItem] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- [.small]#link:#mrdocs-doc-tag_invoke-03c5[_» more..._]# Map the `Brief` to a link:#mrdocs-dom-Object[`dom::Object`]. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class IO> void link:#mrdocs-doc-tag_invoke-090[tag_invoke]( link:#mrdocs-dom-LazyObjectMapTag[dom::LazyObjectMapTag] t, IO& io, link:#mrdocs-doc-MathBlock[MathBlock] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- [.small]#link:#mrdocs-doc-tag_invoke-090[_» more..._]# Map the `Math` to a link:#mrdocs-dom-Object[`dom::Object`]. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class IO> void link:#mrdocs-doc-tag_invoke-08e[tag_invoke]( link:#mrdocs-dom-LazyObjectMapTag[dom::LazyObjectMapTag] t, IO& io, link:#mrdocs-doc-MathInline[MathInline] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- [.small]#link:#mrdocs-doc-tag_invoke-08e[_» more..._]# Map the `Paragraph` to a link:#mrdocs-dom-Object[`dom::Object`]. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class IO> void link:#mrdocs-doc-tag_invoke-055[tag_invoke]( link:#mrdocs-dom-LazyObjectMapTag[dom::LazyObjectMapTag] t, IO& io, link:#mrdocs-doc-ParagraphBlock[ParagraphBlock] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- [.small]#link:#mrdocs-doc-tag_invoke-055[_» more..._]# Map the link:#mrdocs-Param[`Param`] to a link:#mrdocs-dom-Object[`dom::Object`]. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class IO> void link:#mrdocs-doc-tag_invoke-076[tag_invoke]( link:#mrdocs-dom-LazyObjectMapTag[dom::LazyObjectMapTag] t, IO& io, link:#mrdocs-doc-ParamBlock[ParamBlock] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- [.small]#link:#mrdocs-doc-tag_invoke-076[_» more..._]# Map the `Postcondition` to a link:#mrdocs-dom-Object[`dom::Object`]. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class IO> void link:#mrdocs-doc-tag_invoke-05e[tag_invoke]( link:#mrdocs-dom-LazyObjectMapTag[dom::LazyObjectMapTag] t, IO& io, link:#mrdocs-doc-PostconditionBlock[PostconditionBlock] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- [.small]#link:#mrdocs-doc-tag_invoke-05e[_» more..._]# Map the `Precondition` to a link:#mrdocs-dom-Object[`dom::Object`]. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class IO> void link:#mrdocs-doc-tag_invoke-018[tag_invoke]( link:#mrdocs-dom-LazyObjectMapTag[dom::LazyObjectMapTag] t, IO& io, link:#mrdocs-doc-PreconditionBlock[PreconditionBlock] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- [.small]#link:#mrdocs-doc-tag_invoke-018[_» more..._]# Map the link:#mrdocs-doc-QuoteBlock[`QuoteBlock`] to a link:#mrdocs-dom-Object[`dom::Object`]. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class IO> void link:#mrdocs-doc-tag_invoke-034[tag_invoke]( link:#mrdocs-dom-LazyObjectMapTag[dom::LazyObjectMapTag] t, IO& io, link:#mrdocs-doc-QuoteBlock[QuoteBlock] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- [.small]#link:#mrdocs-doc-tag_invoke-034[_» more..._]# Map the `Reference` to a link:#mrdocs-dom-Object[`dom::Object`]. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class IO> void link:#mrdocs-doc-tag_invoke-0370[tag_invoke]( link:#mrdocs-dom-LazyObjectMapTag[dom::LazyObjectMapTag] t, IO& io, link:#mrdocs-doc-ReferenceInline[ReferenceInline] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- [.small]#link:#mrdocs-doc-tag_invoke-0370[_» more..._]# Map the `Returns` to a link:#mrdocs-dom-Object[`dom::Object`]. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class IO> void link:#mrdocs-doc-tag_invoke-0cc[tag_invoke]( link:#mrdocs-dom-LazyObjectMapTag[dom::LazyObjectMapTag] t, IO& io, link:#mrdocs-doc-ReturnsBlock[ReturnsBlock] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- [.small]#link:#mrdocs-doc-tag_invoke-0cc[_» more..._]# Map the `See` to a link:#mrdocs-dom-Object[`dom::Object`]. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class IO> void link:#mrdocs-doc-tag_invoke-0334[tag_invoke]( link:#mrdocs-dom-LazyObjectMapTag[dom::LazyObjectMapTag] t, IO& io, link:#mrdocs-doc-SeeBlock[SeeBlock] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- [.small]#link:#mrdocs-doc-tag_invoke-0334[_» more..._]# Map the `SoftBreak` to a link:#mrdocs-dom-Object[`dom::Object`]. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class IO> void link:#mrdocs-doc-tag_invoke-036[tag_invoke]( link:#mrdocs-dom-LazyObjectMapTag[dom::LazyObjectMapTag] t, IO& io, link:#mrdocs-doc-SoftBreakInline[SoftBreakInline] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- [.small]#link:#mrdocs-doc-tag_invoke-036[_» more..._]# Map the `Strikethrough` to a link:#mrdocs-dom-Object[`dom::Object`]. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class IO> void link:#mrdocs-doc-tag_invoke-061[tag_invoke]( link:#mrdocs-dom-LazyObjectMapTag[dom::LazyObjectMapTag] t, IO& io, link:#mrdocs-doc-StrikethroughInline[StrikethroughInline] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- [.small]#link:#mrdocs-doc-tag_invoke-061[_» more..._]# Map the `Strong` to a link:#mrdocs-dom-Object[`dom::Object`]. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class IO> void link:#mrdocs-doc-tag_invoke-00b[tag_invoke]( link:#mrdocs-dom-LazyObjectMapTag[dom::LazyObjectMapTag] t, IO& io, link:#mrdocs-doc-StrongInline[StrongInline] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- [.small]#link:#mrdocs-doc-tag_invoke-00b[_» more..._]# Map the `Subscript` to a link:#mrdocs-dom-Object[`dom::Object`]. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class IO> void link:#mrdocs-doc-tag_invoke-0e4[tag_invoke]( link:#mrdocs-dom-LazyObjectMapTag[dom::LazyObjectMapTag] t, IO& io, link:#mrdocs-doc-SubscriptInline[SubscriptInline] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- [.small]#link:#mrdocs-doc-tag_invoke-0e4[_» more..._]# Map the `Superscript` to a link:#mrdocs-dom-Object[`dom::Object`]. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class IO> void link:#mrdocs-doc-tag_invoke-0cf6[tag_invoke]( link:#mrdocs-dom-LazyObjectMapTag[dom::LazyObjectMapTag] t, IO& io, link:#mrdocs-doc-SuperscriptInline[SuperscriptInline] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- [.small]#link:#mrdocs-doc-tag_invoke-0cf6[_» more..._]# Map the link:#mrdocs-TParam[`TParam`] to a link:#mrdocs-dom-Object[`dom::Object`]. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class IO> void link:#mrdocs-doc-tag_invoke-08b[tag_invoke]( link:#mrdocs-dom-LazyObjectMapTag[dom::LazyObjectMapTag] t, IO& io, link:#mrdocs-doc-TParamBlock[TParamBlock] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- [.small]#link:#mrdocs-doc-tag_invoke-08b[_» more..._]# Map the `UnorderedTable` to a link:#mrdocs-dom-Object[`dom::Object`]. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class IO> void link:#mrdocs-doc-tag_invoke-0d84[tag_invoke]( link:#mrdocs-dom-LazyObjectMapTag[dom::LazyObjectMapTag] t, IO& io, link:#mrdocs-doc-TableBlock[TableBlock] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- [.small]#link:#mrdocs-doc-tag_invoke-0d84[_» more..._]# Map the link:#mrdocs-doc-TableCell[`TableCell`] to a link:#mrdocs-dom-Object[`dom::Object`]. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class IO> void link:#mrdocs-doc-tag_invoke-00c[tag_invoke]( link:#mrdocs-dom-LazyObjectMapTag[dom::LazyObjectMapTag] t, IO& io, link:#mrdocs-doc-TableCell[TableCell] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- [.small]#link:#mrdocs-doc-tag_invoke-00c[_» more..._]# Map the link:#mrdocs-doc-TableRow[`TableRow`] to a link:#mrdocs-dom-Object[`dom::Object`]. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class IO> void link:#mrdocs-doc-tag_invoke-0b9[tag_invoke]( link:#mrdocs-dom-LazyObjectMapTag[dom::LazyObjectMapTag] t, IO& io, link:#mrdocs-doc-TableRow[TableRow] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- [.small]#link:#mrdocs-doc-tag_invoke-0b9[_» more..._]# Map the `Text` to a link:#mrdocs-dom-Object[`dom::Object`]. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class IO> void link:#mrdocs-doc-tag_invoke-033f[tag_invoke]( link:#mrdocs-dom-LazyObjectMapTag[dom::LazyObjectMapTag] t, IO& io, link:#mrdocs-doc-TextInline[TextInline] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- [.small]#link:#mrdocs-doc-tag_invoke-033f[_» more..._]# Map the `Brief` to a link:#mrdocs-dom-Object[`dom::Object`]. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class IO> void link:#mrdocs-doc-tag_invoke-081[tag_invoke]( link:#mrdocs-dom-LazyObjectMapTag[dom::LazyObjectMapTag] t, IO& io, link:#mrdocs-doc-ThematicBreakBlock[ThematicBreakBlock] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- [.small]#link:#mrdocs-doc-tag_invoke-081[_» more..._]# Map the `Throws` to a link:#mrdocs-dom-Object[`dom::Object`]. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class IO> void link:#mrdocs-doc-tag_invoke-05a[tag_invoke]( link:#mrdocs-dom-LazyObjectMapTag[dom::LazyObjectMapTag] t, IO& io, link:#mrdocs-doc-ThrowsBlock[ThrowsBlock] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- [.small]#link:#mrdocs-doc-tag_invoke-05a[_» more..._]# Map the Polymorphic Inline as a link:#mrdocs-dom-Value[`dom::Value`] object. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< class IO, link:#mrdocs-polymorphic_storage_for[polymorphic_storage_for<Block>] InlineTy> void link:#mrdocs-doc-tag_invoke-0c3[tag_invoke]( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], IO& io, InlineTy const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- [.small]#link:#mrdocs-doc-tag_invoke-0c3[_» more..._]# == Parameters [cols=2] |=== | Name | Description | *v* | The output value. | *I* | The input object. | *domCorpus* | The DOM corpus, or nullptr if not part of a corpus. | *io* | The output parameter to receive the dom::Value. | *t* | The tag. |=== Return the Admonish from a link:#mrdocs-dom-Value[`dom::Value`] string. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/AdmonitionKind.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void tag_invoke( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-doc-AdmonitionKind[AdmonitionKind] const kind); ---- == Parameters [cols=2] |=== | Name | Description | *v* | A variant container for any kind of Dom value. | *kind* | An admonishment style. |=== == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockKind.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void tag_invoke( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-doc-BlockKind[BlockKind] const kind); ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineKind.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void tag_invoke( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-doc-InlineKind[InlineKind] const kind); ---- Return the ParamDirection from a link:#mrdocs-dom-Value[`dom::Value`] string. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/ParamDirection.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void tag_invoke( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-doc-ParamDirection[ParamDirection] const kind); ---- == Parameters [cols=2] |=== | Name | Description | *v* | A variant container for any kind of Dom value. | *kind* | Parameter pass direction. |=== Return the Parts from a link:#mrdocs-dom-Value[`dom::Value`] string. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/Parts.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void tag_invoke( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-doc-Parts[Parts] const kind); ---- == Parameters [cols=2] |=== | Name | Description | *v* | A variant container for any kind of Dom value. | *kind* | Which parts of the documentation to copy. |=== Return the `Admonition` as a link:#mrdocs-dom-Value[`dom::Value`] object. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/AdmonitionBlock.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void tag_invoke( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-doc-AdmonitionBlock[AdmonitionBlock] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- == Parameters [cols=2] |=== | Name | Description | *v* | A variant container for any kind of Dom value. | *I* | A block for side‐notes like tips, warnings, notes | *domCorpus* | Front‐end factory for producing Dom nodes. |=== Return the link:#mrdocs-doc-Block[`Block`] as a link:#mrdocs-dom-Value[`dom::Value`] object. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void tag_invoke( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-doc-Block[Block] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- == Parameters [cols=2] |=== | Name | Description | *v* | A variant container for any kind of Dom value. | *I* | A piece of block content | *domCorpus* | Front‐end factory for producing Dom nodes. |=== == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void tag_invoke( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-doc-BlockContainer[BlockContainer] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- Return the `Brief` as a link:#mrdocs-dom-Value[`dom::Value`] object. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BriefBlock.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void tag_invoke( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-doc-BriefBlock[BriefBlock] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- == Parameters [cols=2] |=== | Name | Description | *v* | A variant container for any kind of Dom value. | *I* | The brief description | *domCorpus* | Front‐end factory for producing Dom nodes. |=== Return the `Code` as a link:#mrdocs-dom-Value[`dom::Value`] object. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/CodeBlock.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void tag_invoke( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-doc-CodeBlock[CodeBlock] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- == Parameters [cols=2] |=== | Name | Description | *v* | A variant container for any kind of Dom value. | *I* | Preformatted source code. | *domCorpus* | Front‐end factory for producing Dom nodes. |=== Return the `Code` as a link:#mrdocs-dom-Value[`dom::Value`] object. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/CodeInline.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void tag_invoke( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-doc-CodeInline[CodeInline] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- == Parameters [cols=2] |=== | Name | Description | *v* | A variant container for any kind of Dom value. | *I* | A piece of styled text. | *domCorpus* | Front‐end factory for producing Dom nodes. |=== Return the `CopyDetails` as a link:#mrdocs-dom-Value[`dom::Value`] object. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/CopyDetailsInline.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void tag_invoke( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-doc-CopyDetailsInline[CopyDetailsInline] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- == Parameters [cols=2] |=== | Name | Description | *v* | The output value. | *I* | The input object. | *domCorpus* | The DOM corpus, or nullptr if not part of a corpus. |=== == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/DefinitionListBlock.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void tag_invoke( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-doc-DefinitionListBlock[DefinitionListBlock] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- Return the link:#mrdocs-doc-DefinitionListItem[`DefinitionListItem`] as a link:#mrdocs-dom-Value[`dom::Value`] object. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/DefinitionListItem.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void tag_invoke( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-doc-DefinitionListItem[DefinitionListItem] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- == Parameters [cols=2] |=== | Name | Description | *v* | A variant container for any kind of Dom value. | *I* | An item in a definition list | *domCorpus* | Front‐end factory for producing Dom nodes. |=== Return the `Emph` as a link:#mrdocs-dom-Value[`dom::Value`] object. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/EmphInline.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void tag_invoke( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-doc-EmphInline[EmphInline] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- == Parameters [cols=2] |=== | Name | Description | *v* | A variant container for any kind of Dom value. | *I* | A piece of styled text. | *domCorpus* | Front‐end factory for producing Dom nodes. |=== Return the `FootnoteDefinition` as a link:#mrdocs-dom-Value[`dom::Value`] object. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/FootnoteDefinitionBlock.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void tag_invoke( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-doc-FootnoteDefinitionBlock[FootnoteDefinitionBlock] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- == Parameters [cols=2] |=== | Name | Description | *v* | A variant container for any kind of Dom value. | *I* | Preformatted source code. | *domCorpus* | Front‐end factory for producing Dom nodes. |=== Return the `FootnoteReference` as a link:#mrdocs-dom-Value[`dom::Value`] object. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/FootnoteReferenceInline.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void tag_invoke( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-doc-FootnoteReferenceInline[FootnoteReferenceInline] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- == Parameters [cols=2] |=== | Name | Description | *v* | A variant container for any kind of Dom value. | *I* | A reference to a symbol. | *domCorpus* | Front‐end factory for producing Dom nodes. |=== Return the `Heading` as a link:#mrdocs-dom-Value[`dom::Value`] object. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/HeadingBlock.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void tag_invoke( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-doc-HeadingBlock[HeadingBlock] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- == Parameters [cols=2] |=== | Name | Description | *v* | A variant container for any kind of Dom value. | *I* | A manually specified section heading. | *domCorpus* | Front‐end factory for producing Dom nodes. |=== Return the `Highlight` as a link:#mrdocs-dom-Value[`dom::Value`] object. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/HighlightInline.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void tag_invoke( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-doc-HighlightInline[HighlightInline] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- == Parameters [cols=2] |=== | Name | Description | *v* | A variant container for any kind of Dom value. | *I* | A piece of highlighted text. | *domCorpus* | Front‐end factory for producing Dom nodes. |=== Return the `Image` as a link:#mrdocs-dom-Value[`dom::Value`] object. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/ImageInline.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void tag_invoke( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-doc-ImageInline[ImageInline] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- == Parameters [cols=2] |=== | Name | Description | *v* | A variant container for any kind of Dom value. | *I* | An image. | *domCorpus* | Front‐end factory for producing Dom nodes. |=== Return the link:#mrdocs-doc-Inline[`Inline`] as a link:#mrdocs-dom-Value[`dom::Value`] object. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void tag_invoke( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-doc-Inline[Inline] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- == Parameters [cols=2] |=== | Name | Description | *v* | A variant container for any kind of Dom value. | *I* | A Node containing a string of text. | *domCorpus* | Front‐end factory for producing Dom nodes. |=== == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void tag_invoke( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-doc-InlineContainer[InlineContainer] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- Return the `LineBreak` as a link:#mrdocs-dom-Value[`dom::Value`] object. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/LineBreakInline.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void tag_invoke( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-doc-LineBreakInline[LineBreakInline] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- == Parameters [cols=2] |=== | Name | Description | *v* | A variant container for any kind of Dom value. | *I* | A hard line break that renders as "" | *domCorpus* | Front‐end factory for producing Dom nodes. |=== Return the `Link` as a link:#mrdocs-dom-Value[`dom::Value`] object. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/LinkInline.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void tag_invoke( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-doc-LinkInline[LinkInline] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- == Parameters [cols=2] |=== | Name | Description | *v* | A variant container for any kind of Dom value. | *I* | A hyperlink. | *domCorpus* | Front‐end factory for producing Dom nodes. |=== Return the `UnorderedList` as a link:#mrdocs-dom-Value[`dom::Value`] object. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/ListBlock.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void tag_invoke( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-doc-ListBlock[ListBlock] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- == Parameters [cols=2] |=== | Name | Description | *v* | A variant container for any kind of Dom value. | *I* | A list of list items | *domCorpus* | Front‐end factory for producing Dom nodes. |=== Return the link:#mrdocs-doc-ListItem[`ListItem`] as a link:#mrdocs-dom-Value[`dom::Value`] object. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/ListItem.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void tag_invoke( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-doc-ListItem[ListItem] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- == Parameters [cols=2] |=== | Name | Description | *v* | A variant container for any kind of Dom value. | *I* | An item in a list | *domCorpus* | Front‐end factory for producing Dom nodes. |=== Return the `Brief` as a link:#mrdocs-dom-Value[`dom::Value`] object. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/MathBlock.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void tag_invoke( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-doc-MathBlock[MathBlock] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- == Parameters [cols=2] |=== | Name | Description | *v* | A variant container for any kind of Dom value. | *I* | A block of LaTeX math | *domCorpus* | Front‐end factory for producing Dom nodes. |=== Return the `Math` as a link:#mrdocs-dom-Value[`dom::Value`] object. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/MathInline.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void tag_invoke( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-doc-MathInline[MathInline] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- == Parameters [cols=2] |=== | Name | Description | *v* | A variant container for any kind of Dom value. | *I* | An inline LaTeX math expression | *domCorpus* | Front‐end factory for producing Dom nodes. |=== Return the `Paragraph` as a link:#mrdocs-dom-Value[`dom::Value`] object. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/ParagraphBlock.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void tag_invoke( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-doc-ParagraphBlock[ParagraphBlock] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- == Parameters [cols=2] |=== | Name | Description | *v* | A variant container for any kind of Dom value. | *I* | A sequence of text nodes. | *domCorpus* | Front‐end factory for producing Dom nodes. |=== Return the link:#mrdocs-Param[`Param`] as a link:#mrdocs-dom-Value[`dom::Value`] object. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/ParamBlock.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void tag_invoke( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-doc-ParamBlock[ParamBlock] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- == Parameters [cols=2] |=== | Name | Description | *v* | A variant container for any kind of Dom value. | *I* | Documentation for a function parameter | *domCorpus* | Front‐end factory for producing Dom nodes. |=== Return the `Postcondition` as a link:#mrdocs-dom-Value[`dom::Value`] object. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/PostconditionBlock.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void tag_invoke( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-doc-PostconditionBlock[PostconditionBlock] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- == Parameters [cols=2] |=== | Name | Description | *v* | The value to assign to. | *I* | The input object. | *domCorpus* | The DOM corpus, or nullptr if not part of a corpus. |=== Return the `Precondition` as a link:#mrdocs-dom-Value[`dom::Value`] object. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/PreconditionBlock.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void tag_invoke( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-doc-PreconditionBlock[PreconditionBlock] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- == Parameters [cols=2] |=== | Name | Description | *v* | The value to assign to. | *I* | The input object. | *domCorpus* | The DOM corpus, or nullptr if not part of a corpus. |=== Return the link:#mrdocs-doc-QuoteBlock[`QuoteBlock`] as a link:#mrdocs-dom-Value[`dom::Value`] object. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/QuoteBlock.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void tag_invoke( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-doc-QuoteBlock[QuoteBlock] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- == Parameters [cols=2] |=== | Name | Description | *v* | A variant container for any kind of Dom value. | *I* | A list of list items | *domCorpus* | Front‐end factory for producing Dom nodes. |=== Return the `Reference` as a link:#mrdocs-dom-Value[`dom::Value`] object. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/ReferenceInline.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void tag_invoke( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-doc-ReferenceInline[ReferenceInline] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- == Parameters [cols=2] |=== | Name | Description | *v* | A variant container for any kind of Dom value. | *I* | A reference to a symbol. | *domCorpus* | Front‐end factory for producing Dom nodes. |=== Return the `Returns` as a link:#mrdocs-dom-Value[`dom::Value`] object. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/ReturnsBlock.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void tag_invoke( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-doc-ReturnsBlock[ReturnsBlock] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- == Parameters [cols=2] |=== | Name | Description | *v* | A variant container for any kind of Dom value. | *I* | Documentation for a function return type | *domCorpus* | Front‐end factory for producing Dom nodes. |=== Return the `See` as a link:#mrdocs-dom-Value[`dom::Value`] object. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/SeeBlock.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void tag_invoke( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-doc-SeeBlock[SeeBlock] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- == Parameters [cols=2] |=== | Name | Description | *v* | A variant container for any kind of Dom value. | *I* | A | *domCorpus* | Front‐end factory for producing Dom nodes. |=== Return the `SoftBreak` as a link:#mrdocs-dom-Value[`dom::Value`] object. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/SoftBreakInline.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void tag_invoke( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-doc-SoftBreakInline[SoftBreakInline] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- == Parameters [cols=2] |=== | Name | Description | *v* | A variant container for any kind of Dom value. | *I* | A line break that may render as space | *domCorpus* | Front‐end factory for producing Dom nodes. |=== Return the `Strikethrough` as a link:#mrdocs-dom-Value[`dom::Value`] object. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/StrikethroughInline.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void tag_invoke( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-doc-StrikethroughInline[StrikethroughInline] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- == Parameters [cols=2] |=== | Name | Description | *v* | A variant container for any kind of Dom value. | *I* | A piece of styled text. | *domCorpus* | Front‐end factory for producing Dom nodes. |=== Return the `Strong` as a link:#mrdocs-dom-Value[`dom::Value`] object. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/StrongInline.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void tag_invoke( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-doc-StrongInline[StrongInline] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- == Parameters [cols=2] |=== | Name | Description | *v* | A variant container for any kind of Dom value. | *I* | A piece of styled text. | *domCorpus* | Front‐end factory for producing Dom nodes. |=== Return the `Subscript` as a link:#mrdocs-dom-Value[`dom::Value`] object. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/SubscriptInline.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void tag_invoke( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-doc-SubscriptInline[SubscriptInline] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- == Parameters [cols=2] |=== | Name | Description | *v* | A variant container for any kind of Dom value. | *I* | A piece of styled text. | *domCorpus* | Front‐end factory for producing Dom nodes. |=== Return the `Superscript` as a link:#mrdocs-dom-Value[`dom::Value`] object. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/SuperscriptInline.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void tag_invoke( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-doc-SuperscriptInline[SuperscriptInline] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- == Parameters [cols=2] |=== | Name | Description | *v* | A variant container for any kind of Dom value. | *I* | A piece of styled text. | *domCorpus* | Front‐end factory for producing Dom nodes. |=== Return the link:#mrdocs-TParam[`TParam`] as a link:#mrdocs-dom-Value[`dom::Value`] object. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/TParamBlock.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void tag_invoke( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-doc-TParamBlock[TParamBlock] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- == Parameters [cols=2] |=== | Name | Description | *v* | A variant container for any kind of Dom value. | *I* | Documentation for a template parameter | *domCorpus* | Front‐end factory for producing Dom nodes. |=== Return the `UnorderedTable` as a link:#mrdocs-dom-Value[`dom::Value`] object. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/TableBlock.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void tag_invoke( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-doc-TableBlock[TableBlock] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- == Parameters [cols=2] |=== | Name | Description | *v* | A variant container for any kind of Dom value. | *I* | A table block | *domCorpus* | Front‐end factory for producing Dom nodes. |=== Return the link:#mrdocs-doc-TableCell[`TableCell`] as a link:#mrdocs-dom-Value[`dom::Value`] object. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/TableCell.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void tag_invoke( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-doc-TableCell[TableCell] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- == Parameters [cols=2] |=== | Name | Description | *v* | A variant container for any kind of Dom value. | *I* | A cell in a table | *domCorpus* | Front‐end factory for producing Dom nodes. |=== Return the link:#mrdocs-doc-TableRow[`TableRow`] as a link:#mrdocs-dom-Value[`dom::Value`] object. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/TableRow.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void tag_invoke( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-doc-TableRow[TableRow] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- == Parameters [cols=2] |=== | Name | Description | *v* | A variant container for any kind of Dom value. | *I* | An item in a list | *domCorpus* | Front‐end factory for producing Dom nodes. |=== Return the `Text` as a link:#mrdocs-dom-Value[`dom::Value`] object. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/TextInline.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void tag_invoke( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-doc-TextInline[TextInline] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- == Parameters [cols=2] |=== | Name | Description | *v* | A variant container for any kind of Dom value. | *I* | A Node containing a string of text. | *domCorpus* | Front‐end factory for producing Dom nodes. |=== Return the `Brief` as a link:#mrdocs-dom-Value[`dom::Value`] object. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/ThematicBreakBlock.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void tag_invoke( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-doc-ThematicBreakBlock[ThematicBreakBlock] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- == Parameters [cols=2] |=== | Name | Description | *v* | A variant container for any kind of Dom value. | *I* | The brief description | *domCorpus* | Front‐end factory for producing Dom nodes. |=== Return the `Throws` as a link:#mrdocs-dom-Value[`dom::Value`] object. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/ThrowsBlock.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void tag_invoke( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-doc-ThrowsBlock[ThrowsBlock] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- == Parameters [cols=2] |=== | Name | Description | *v* | A variant container for any kind of Dom value. | *I* | Documentation for a function parameter | *domCorpus* | Front‐end factory for producing Dom nodes. |=== == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void tag_invoke( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-Optional-03[Optional<Polymorphic<Block>>] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- Map the Polymorphic Block as a link:#mrdocs-dom-Value[`dom::Value`] object. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void tag_invoke( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-Polymorphic[Polymorphic<Block>] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- == Parameters [cols=2] |=== | Name | Description | *io* | The output parameter to receive the dom::Value. | *I* | The polymorphic Block to convert. | *domCorpus* | The DomCorpus used to resolve references. | *v* | A variant container for any kind of Dom value. |=== == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BriefBlock.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void tag_invoke( link:#mrdocs-dom-ValueFromTag[mrdocs::dom::ValueFromTag], link:#mrdocs-dom-Value[mrdocs::dom::Value]& v, link:#mrdocs-Optional-03[Optional<BriefBlock>] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- Map the Polymorphic Block to a link:#mrdocs-dom-Object[`dom::Object`]. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class IO> void tag_invoke( link:#mrdocs-dom-LazyObjectMapTag[dom::LazyObjectMapTag], IO& io, link:#mrdocs-Polymorphic[Polymorphic<Block>] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- == Parameters [cols=2] |=== | Name | Description | *io* | The output parameter to receive the dom::Object. | *I* | The polymorphic Block to convert. | *domCorpus* | The DomCorpus used to resolve references. |=== Map the `Admonition` to a link:#mrdocs-dom-Object[`dom::Object`]. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/AdmonitionBlock.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class IO> void tag_invoke( link:#mrdocs-dom-LazyObjectMapTag[dom::LazyObjectMapTag] t, IO& io, link:#mrdocs-doc-AdmonitionBlock[AdmonitionBlock] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- == Parameters [cols=2] |=== | Name | Description | *t* | The tag. | *io* | The output object. | *I* | The input object. | *domCorpus* | The DOM corpus, or nullptr if not part of a corpus. |=== Map the link:#mrdocs-doc-Block[`Block`] to a link:#mrdocs-dom-Object[`dom::Object`]. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class IO> void tag_invoke( link:#mrdocs-dom-LazyObjectMapTag[dom::LazyObjectMapTag] t, IO& io, link:#mrdocs-doc-Block[Block] const& I, link:#mrdocs-DomCorpus[DomCorpus] const*); ---- == Parameters [cols=2] |=== | Name | Description | *t* | The tag. | *io* | The output object. | *I* | The input object. | *domCorpus* | The DOM corpus, or nullptr if not part of a corpus. |=== == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class IO> void tag_invoke( link:#mrdocs-dom-LazyObjectMapTag[dom::LazyObjectMapTag] t, IO& io, link:#mrdocs-doc-BlockContainer[BlockContainer] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- Map the `Brief` to a link:#mrdocs-dom-Object[`dom::Object`]. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BriefBlock.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class IO> void tag_invoke( link:#mrdocs-dom-LazyObjectMapTag[dom::LazyObjectMapTag] t, IO& io, link:#mrdocs-doc-BriefBlock[BriefBlock] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- == Parameters [cols=2] |=== | Name | Description | *t* | The tag. | *io* | The output object. | *I* | The input object. | *domCorpus* | The DOM corpus, or nullptr if not part of a corpus. |=== Map the `Code` to a link:#mrdocs-dom-Object[`dom::Object`]. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/CodeBlock.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class IO> void tag_invoke( link:#mrdocs-dom-LazyObjectMapTag[dom::LazyObjectMapTag] t, IO& io, link:#mrdocs-doc-CodeBlock[CodeBlock] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- == Parameters [cols=2] |=== | Name | Description | *t* | The tag. | *io* | The output object. | *I* | The input object. | *domCorpus* | The DOM corpus, or nullptr if not part of a corpus. |=== Map the `Code` to a link:#mrdocs-dom-Object[`dom::Object`]. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/CodeInline.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class IO> void tag_invoke( link:#mrdocs-dom-LazyObjectMapTag[dom::LazyObjectMapTag] t, IO& io, link:#mrdocs-doc-CodeInline[CodeInline] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- == Parameters [cols=2] |=== | Name | Description | *t* | The tag. | *io* | The output object. | *I* | The input object. | *domCorpus* | The DOM corpus, or nullptr if not part of a corpus. |=== Map the `CopyDetails` to a link:#mrdocs-dom-Object[`dom::Object`]. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/CopyDetailsInline.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class IO> void tag_invoke( link:#mrdocs-dom-LazyObjectMapTag[dom::LazyObjectMapTag] t, IO& io, link:#mrdocs-doc-CopyDetailsInline[CopyDetailsInline] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- == Parameters [cols=2] |=== | Name | Description | *t* | The tag. | *io* | The output object. | *I* | The input object. | *domCorpus* | The DOM corpus, or nullptr if not part of a corpus. |=== == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/DefinitionListBlock.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class IO> void tag_invoke( link:#mrdocs-dom-LazyObjectMapTag[dom::LazyObjectMapTag] t, IO& io, link:#mrdocs-doc-DefinitionListBlock[DefinitionListBlock] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- Map the link:#mrdocs-doc-DefinitionListItem[`DefinitionListItem`] to a link:#mrdocs-dom-Object[`dom::Object`]. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/DefinitionListItem.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class IO> void tag_invoke( link:#mrdocs-dom-LazyObjectMapTag[dom::LazyObjectMapTag] t, IO& io, link:#mrdocs-doc-DefinitionListItem[DefinitionListItem] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- == Parameters [cols=2] |=== | Name | Description | *t* | The tag. | *io* | The output object. | *I* | The input object. | *domCorpus* | The DOM corpus, or nullptr if not part of a corpus. |=== Map the `Emph` to a link:#mrdocs-dom-Object[`dom::Object`]. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/EmphInline.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class IO> void tag_invoke( link:#mrdocs-dom-LazyObjectMapTag[dom::LazyObjectMapTag] t, IO& io, link:#mrdocs-doc-EmphInline[EmphInline] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- == Parameters [cols=2] |=== | Name | Description | *t* | The tag. | *io* | The output object. | *I* | The input object. | *domCorpus* | The DOM corpus, or nullptr if not part of a corpus. |=== Map the `FootnoteDefinition` to a link:#mrdocs-dom-Object[`dom::Object`]. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/FootnoteDefinitionBlock.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class IO> void tag_invoke( link:#mrdocs-dom-LazyObjectMapTag[dom::LazyObjectMapTag] t, IO& io, link:#mrdocs-doc-FootnoteDefinitionBlock[FootnoteDefinitionBlock] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- == Parameters [cols=2] |=== | Name | Description | *t* | The tag. | *io* | The output object. | *I* | The input object. | *domCorpus* | The DOM corpus, or nullptr if not part of a corpus. |=== Map the `FootnoteReference` to a link:#mrdocs-dom-Object[`dom::Object`]. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/FootnoteReferenceInline.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class IO> void tag_invoke( link:#mrdocs-dom-LazyObjectMapTag[dom::LazyObjectMapTag] t, IO& io, link:#mrdocs-doc-FootnoteReferenceInline[FootnoteReferenceInline] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- == Parameters [cols=2] |=== | Name | Description | *t* | The tag. | *io* | The output object. | *I* | The input object. | *domCorpus* | The DOM corpus, or nullptr if not part of a corpus. |=== Map the `Heading` to a link:#mrdocs-dom-Object[`dom::Object`]. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/HeadingBlock.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class IO> void tag_invoke( link:#mrdocs-dom-LazyObjectMapTag[dom::LazyObjectMapTag] t, IO& io, link:#mrdocs-doc-HeadingBlock[HeadingBlock] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- == Parameters [cols=2] |=== | Name | Description | *t* | The tag. | *io* | The output object. | *I* | The input object. | *domCorpus* | The DOM corpus, or nullptr if not part of a corpus. |=== Map the `Highlight` to a link:#mrdocs-dom-Object[`dom::Object`]. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/HighlightInline.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class IO> void tag_invoke( link:#mrdocs-dom-LazyObjectMapTag[dom::LazyObjectMapTag] t, IO& io, link:#mrdocs-doc-HighlightInline[HighlightInline] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- == Parameters [cols=2] |=== | Name | Description | *t* | The tag. | *io* | The output object. | *I* | The input object. | *domCorpus* | The DOM corpus, or nullptr if not part of a corpus. |=== Map the `Image` to a link:#mrdocs-dom-Object[`dom::Object`]. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/ImageInline.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class IO> void tag_invoke( link:#mrdocs-dom-LazyObjectMapTag[dom::LazyObjectMapTag] t, IO& io, link:#mrdocs-doc-ImageInline[ImageInline] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- == Parameters [cols=2] |=== | Name | Description | *t* | The tag. | *io* | The output object. | *I* | The input object. | *domCorpus* | The DOM corpus, or nullptr if not part of a corpus. |=== Map the link:#mrdocs-doc-Inline[`Inline`] to a link:#mrdocs-dom-Object[`dom::Object`]. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class IO> void tag_invoke( link:#mrdocs-dom-LazyObjectMapTag[dom::LazyObjectMapTag] t, IO& io, link:#mrdocs-doc-Inline[Inline] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- == Parameters [cols=2] |=== | Name | Description | *t* | The tag. | *io* | The output object. | *I* | The input object. | *domCorpus* | The DOM corpus, or nullptr if not part of a corpus. |=== == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class IO> void tag_invoke( link:#mrdocs-dom-LazyObjectMapTag[dom::LazyObjectMapTag] t, IO& io, link:#mrdocs-doc-InlineContainer[InlineContainer] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- Map the `LineBreak` to a link:#mrdocs-dom-Object[`dom::Object`]. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/LineBreakInline.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class IO> void tag_invoke( link:#mrdocs-dom-LazyObjectMapTag[dom::LazyObjectMapTag] t, IO& io, link:#mrdocs-doc-LineBreakInline[LineBreakInline] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- == Parameters [cols=2] |=== | Name | Description | *t* | The tag. | *io* | The output object. | *I* | The input object. | *domCorpus* | The DOM corpus, or nullptr if not part of a corpus. |=== Map the `Link` to a link:#mrdocs-dom-Object[`dom::Object`]. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/LinkInline.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class IO> void tag_invoke( link:#mrdocs-dom-LazyObjectMapTag[dom::LazyObjectMapTag] t, IO& io, link:#mrdocs-doc-LinkInline[LinkInline] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- == Parameters [cols=2] |=== | Name | Description | *t* | The tag. | *io* | The output object. | *I* | The input object. | *domCorpus* | The DOM corpus, or nullptr if not part of a corpus. |=== Map the `UnorderedList` to a link:#mrdocs-dom-Object[`dom::Object`]. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/ListBlock.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class IO> void tag_invoke( link:#mrdocs-dom-LazyObjectMapTag[dom::LazyObjectMapTag] t, IO& io, link:#mrdocs-doc-ListBlock[ListBlock] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- == Parameters [cols=2] |=== | Name | Description | *t* | The tag. | *io* | The output object. | *I* | The input object. | *domCorpus* | The DOM corpus, or nullptr if not part of a corpus. |=== Map the link:#mrdocs-doc-ListItem[`ListItem`] to a link:#mrdocs-dom-Object[`dom::Object`]. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/ListItem.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class IO> void tag_invoke( link:#mrdocs-dom-LazyObjectMapTag[dom::LazyObjectMapTag] t, IO& io, link:#mrdocs-doc-ListItem[ListItem] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- == Parameters [cols=2] |=== | Name | Description | *t* | The tag. | *io* | The output object. | *I* | The input object. | *domCorpus* | The DOM corpus, or nullptr if not part of a corpus. |=== Map the `Brief` to a link:#mrdocs-dom-Object[`dom::Object`]. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/MathBlock.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class IO> void tag_invoke( link:#mrdocs-dom-LazyObjectMapTag[dom::LazyObjectMapTag] t, IO& io, link:#mrdocs-doc-MathBlock[MathBlock] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- == Parameters [cols=2] |=== | Name | Description | *t* | The tag. | *io* | The output object. | *I* | The input object. | *domCorpus* | The DOM corpus, or nullptr if not part of a corpus. |=== Map the `Math` to a link:#mrdocs-dom-Object[`dom::Object`]. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/MathInline.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class IO> void tag_invoke( link:#mrdocs-dom-LazyObjectMapTag[dom::LazyObjectMapTag] t, IO& io, link:#mrdocs-doc-MathInline[MathInline] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- == Parameters [cols=2] |=== | Name | Description | *t* | The tag. | *io* | The output object. | *I* | The input object. | *domCorpus* | The DOM corpus, or nullptr if not part of a corpus. |=== Map the `Paragraph` to a link:#mrdocs-dom-Object[`dom::Object`]. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/ParagraphBlock.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class IO> void tag_invoke( link:#mrdocs-dom-LazyObjectMapTag[dom::LazyObjectMapTag] t, IO& io, link:#mrdocs-doc-ParagraphBlock[ParagraphBlock] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- == Parameters [cols=2] |=== | Name | Description | *t* | The tag. | *io* | The output object. | *I* | The input object. | *domCorpus* | The DOM corpus, or nullptr if not part of a corpus. |=== Map the link:#mrdocs-Param[`Param`] to a link:#mrdocs-dom-Object[`dom::Object`]. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/ParamBlock.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class IO> void tag_invoke( link:#mrdocs-dom-LazyObjectMapTag[dom::LazyObjectMapTag] t, IO& io, link:#mrdocs-doc-ParamBlock[ParamBlock] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- == Parameters [cols=2] |=== | Name | Description | *t* | The tag. | *io* | The output object. | *I* | The input object. | *domCorpus* | The DOM corpus, or nullptr if not part of a corpus. |=== Map the `Postcondition` to a link:#mrdocs-dom-Object[`dom::Object`]. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/PostconditionBlock.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class IO> void tag_invoke( link:#mrdocs-dom-LazyObjectMapTag[dom::LazyObjectMapTag] t, IO& io, link:#mrdocs-doc-PostconditionBlock[PostconditionBlock] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- == Parameters [cols=2] |=== | Name | Description | *t* | The tag. | *io* | The output object. | *I* | The input object. | *domCorpus* | The DOM corpus, or nullptr if not part of a corpus. |=== Map the `Precondition` to a link:#mrdocs-dom-Object[`dom::Object`]. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/PreconditionBlock.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class IO> void tag_invoke( link:#mrdocs-dom-LazyObjectMapTag[dom::LazyObjectMapTag] t, IO& io, link:#mrdocs-doc-PreconditionBlock[PreconditionBlock] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- == Parameters [cols=2] |=== | Name | Description | *t* | The tag. | *io* | The output object. | *I* | The input object. | *domCorpus* | The DOM corpus, or nullptr if not part of a corpus. |=== Map the link:#mrdocs-doc-QuoteBlock[`QuoteBlock`] to a link:#mrdocs-dom-Object[`dom::Object`]. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/QuoteBlock.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class IO> void tag_invoke( link:#mrdocs-dom-LazyObjectMapTag[dom::LazyObjectMapTag] t, IO& io, link:#mrdocs-doc-QuoteBlock[QuoteBlock] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- == Parameters [cols=2] |=== | Name | Description | *t* | The tag. | *io* | The output object. | *I* | The input object. | *domCorpus* | The DOM corpus, or nullptr if not part of a corpus. |=== Map the `Reference` to a link:#mrdocs-dom-Object[`dom::Object`]. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/ReferenceInline.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class IO> void tag_invoke( link:#mrdocs-dom-LazyObjectMapTag[dom::LazyObjectMapTag] t, IO& io, link:#mrdocs-doc-ReferenceInline[ReferenceInline] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- == Parameters [cols=2] |=== | Name | Description | *t* | The tag. | *io* | The output object. | *I* | The input object. | *domCorpus* | The DOM corpus, or nullptr if not part of a corpus. |=== Map the `Returns` to a link:#mrdocs-dom-Object[`dom::Object`]. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/ReturnsBlock.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class IO> void tag_invoke( link:#mrdocs-dom-LazyObjectMapTag[dom::LazyObjectMapTag] t, IO& io, link:#mrdocs-doc-ReturnsBlock[ReturnsBlock] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- == Parameters [cols=2] |=== | Name | Description | *t* | The tag. | *io* | The output object. | *I* | The input object. | *domCorpus* | The DOM corpus, or nullptr if not part of a corpus. |=== Map the `See` to a link:#mrdocs-dom-Object[`dom::Object`]. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/SeeBlock.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class IO> void tag_invoke( link:#mrdocs-dom-LazyObjectMapTag[dom::LazyObjectMapTag] t, IO& io, link:#mrdocs-doc-SeeBlock[SeeBlock] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- == Parameters [cols=2] |=== | Name | Description | *t* | The tag. | *io* | The output object. | *I* | The input object. | *domCorpus* | The DOM corpus, or nullptr if not part of a corpus. |=== Map the `SoftBreak` to a link:#mrdocs-dom-Object[`dom::Object`]. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/SoftBreakInline.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class IO> void tag_invoke( link:#mrdocs-dom-LazyObjectMapTag[dom::LazyObjectMapTag] t, IO& io, link:#mrdocs-doc-SoftBreakInline[SoftBreakInline] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- == Parameters [cols=2] |=== | Name | Description | *t* | The tag. | *io* | The output object. | *I* | The input object. | *domCorpus* | The DOM corpus, or nullptr if not part of a corpus. |=== Map the `Strikethrough` to a link:#mrdocs-dom-Object[`dom::Object`]. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/StrikethroughInline.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class IO> void tag_invoke( link:#mrdocs-dom-LazyObjectMapTag[dom::LazyObjectMapTag] t, IO& io, link:#mrdocs-doc-StrikethroughInline[StrikethroughInline] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- == Parameters [cols=2] |=== | Name | Description | *t* | The tag. | *io* | The output object. | *I* | The input object. | *domCorpus* | The DOM corpus, or nullptr if not part of a corpus. |=== Map the `Strong` to a link:#mrdocs-dom-Object[`dom::Object`]. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/StrongInline.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class IO> void tag_invoke( link:#mrdocs-dom-LazyObjectMapTag[dom::LazyObjectMapTag] t, IO& io, link:#mrdocs-doc-StrongInline[StrongInline] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- == Parameters [cols=2] |=== | Name | Description | *t* | The tag. | *io* | The output object. | *I* | The input object. | *domCorpus* | The DOM corpus, or nullptr if not part of a corpus. |=== Map the `Subscript` to a link:#mrdocs-dom-Object[`dom::Object`]. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/SubscriptInline.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class IO> void tag_invoke( link:#mrdocs-dom-LazyObjectMapTag[dom::LazyObjectMapTag] t, IO& io, link:#mrdocs-doc-SubscriptInline[SubscriptInline] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- == Parameters [cols=2] |=== | Name | Description | *t* | The tag. | *io* | The output object. | *I* | The input object. | *domCorpus* | The DOM corpus, or nullptr if not part of a corpus. |=== Map the `Superscript` to a link:#mrdocs-dom-Object[`dom::Object`]. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/SuperscriptInline.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class IO> void tag_invoke( link:#mrdocs-dom-LazyObjectMapTag[dom::LazyObjectMapTag] t, IO& io, link:#mrdocs-doc-SuperscriptInline[SuperscriptInline] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- == Parameters [cols=2] |=== | Name | Description | *t* | The tag. | *io* | The output object. | *I* | The input object. | *domCorpus* | The DOM corpus, or nullptr if not part of a corpus. |=== Map the link:#mrdocs-TParam[`TParam`] to a link:#mrdocs-dom-Object[`dom::Object`]. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/TParamBlock.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class IO> void tag_invoke( link:#mrdocs-dom-LazyObjectMapTag[dom::LazyObjectMapTag] t, IO& io, link:#mrdocs-doc-TParamBlock[TParamBlock] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- == Parameters [cols=2] |=== | Name | Description | *t* | The tag. | *io* | The output object. | *I* | The input object. | *domCorpus* | The DOM corpus, or nullptr if not part of a corpus. |=== Map the `UnorderedTable` to a link:#mrdocs-dom-Object[`dom::Object`]. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/TableBlock.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class IO> void tag_invoke( link:#mrdocs-dom-LazyObjectMapTag[dom::LazyObjectMapTag] t, IO& io, link:#mrdocs-doc-TableBlock[TableBlock] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- == Parameters [cols=2] |=== | Name | Description | *t* | The tag. | *io* | The output object. | *I* | The input object. | *domCorpus* | The DOM corpus, or nullptr if not part of a corpus. |=== Map the link:#mrdocs-doc-TableCell[`TableCell`] to a link:#mrdocs-dom-Object[`dom::Object`]. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/TableCell.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class IO> void tag_invoke( link:#mrdocs-dom-LazyObjectMapTag[dom::LazyObjectMapTag] t, IO& io, link:#mrdocs-doc-TableCell[TableCell] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- == Parameters [cols=2] |=== | Name | Description | *t* | The tag. | *io* | The output object. | *I* | The input object. | *domCorpus* | The DOM corpus, or nullptr if not part of a corpus. |=== Map the link:#mrdocs-doc-TableRow[`TableRow`] to a link:#mrdocs-dom-Object[`dom::Object`]. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/TableRow.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class IO> void tag_invoke( link:#mrdocs-dom-LazyObjectMapTag[dom::LazyObjectMapTag] t, IO& io, link:#mrdocs-doc-TableRow[TableRow] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- == Parameters [cols=2] |=== | Name | Description | *t* | The tag. | *io* | The output object. | *I* | The input object. | *domCorpus* | The DOM corpus, or nullptr if not part of a corpus. |=== Map the `Text` to a link:#mrdocs-dom-Object[`dom::Object`]. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/TextInline.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class IO> void tag_invoke( link:#mrdocs-dom-LazyObjectMapTag[dom::LazyObjectMapTag] t, IO& io, link:#mrdocs-doc-TextInline[TextInline] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- == Parameters [cols=2] |=== | Name | Description | *t* | The tag. | *io* | The output object. | *I* | The input object. | *domCorpus* | The DOM corpus, or nullptr if not part of a corpus. |=== Map the `Brief` to a link:#mrdocs-dom-Object[`dom::Object`]. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/ThematicBreakBlock.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class IO> void tag_invoke( link:#mrdocs-dom-LazyObjectMapTag[dom::LazyObjectMapTag] t, IO& io, link:#mrdocs-doc-ThematicBreakBlock[ThematicBreakBlock] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- == Parameters [cols=2] |=== | Name | Description | *t* | The tag. | *io* | The output object. | *I* | The input object. | *domCorpus* | The DOM corpus, or nullptr if not part of a corpus. |=== Map the `Throws` to a link:#mrdocs-dom-Object[`dom::Object`]. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/ThrowsBlock.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class IO> void tag_invoke( link:#mrdocs-dom-LazyObjectMapTag[dom::LazyObjectMapTag] t, IO& io, link:#mrdocs-doc-ThrowsBlock[ThrowsBlock] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- == Parameters [cols=2] |=== | Name | Description | *t* | The tag. | *io* | The output object. | *I* | The input object. | *domCorpus* | The DOM corpus, or nullptr if not part of a corpus. |=== Map the Polymorphic Inline as a link:#mrdocs-dom-Value[`dom::Value`] object. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< class IO, link:#mrdocs-polymorphic_storage_for[polymorphic_storage_for<Block>] InlineTy> void tag_invoke( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], IO& io, InlineTy const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- == Parameters [cols=2] |=== | Name | Description | *io* | The output parameter to receive the dom::Object. | *I* | The input object. | *domCorpus* | The DOM corpus, or nullptr if not part of a corpus. |=== `toString` overloads == Synopses Declared in `<mrdocs/Metadata/DocComment/Block/AdmonitionKind.hpp>` Return the name of the Admonish as a string. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-dom-String[dom::String] link:#mrdocs-doc-toString-06[toString](link:#mrdocs-doc-AdmonitionKind[AdmonitionKind] kind) noexcept; ---- [.small]#link:#mrdocs-doc-toString-06[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-dom-String[dom::String] link:#mrdocs-doc-toString-0eb[toString](link:#mrdocs-doc-BlockKind[BlockKind] kind) noexcept; ---- [.small]#link:#mrdocs-doc-toString-0eb[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-dom-String[dom::String] link:#mrdocs-doc-toString-03[toString](link:#mrdocs-doc-InlineKind[InlineKind] kind) noexcept; ---- [.small]#link:#mrdocs-doc-toString-03[_» more..._]# Return the name of the ParamDirection as a string. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-dom-String[dom::String] link:#mrdocs-doc-toString-0ed[toString](link:#mrdocs-doc-ParamDirection[ParamDirection] kind) noexcept; ---- [.small]#link:#mrdocs-doc-toString-0ed[_» more..._]# Return the name of the Parts as a string. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-dom-String[dom::String] link:#mrdocs-doc-toString-07[toString](link:#mrdocs-doc-Parts[Parts] kind) noexcept; ---- [.small]#link:#mrdocs-doc-toString-07[_» more..._]# Return the name of the Admonish as a string. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/AdmonitionKind.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-dom-String[dom::String] toString(link:#mrdocs-doc-AdmonitionKind[AdmonitionKind] kind) noexcept; ---- == Return Value the name of the Admonish as a string. == Parameters [cols=2] |=== | Name | Description | *kind* | An admonishment style. |=== == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockKind.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-dom-String[dom::String] toString(link:#mrdocs-doc-BlockKind[BlockKind] kind) noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineKind.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-dom-String[dom::String] toString(link:#mrdocs-doc-InlineKind[InlineKind] kind) noexcept; ---- Return the name of the ParamDirection as a string. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/ParamDirection.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-dom-String[dom::String] toString(link:#mrdocs-doc-ParamDirection[ParamDirection] kind) noexcept; ---- == Return Value the name of the ParamDirection as a string. == Parameters [cols=2] |=== | Name | Description | *kind* | Parameter pass direction. |=== Return the name of the Parts as a string. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/Parts.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-dom-String[dom::String] toString(link:#mrdocs-doc-Parts[Parts] kind) noexcept; ---- == Return Value the name of the Parts as a string. == Parameters [cols=2] |=== | Name | Description | *kind* | Which parts of the documentation to copy. |=== Traverse a list of inlines. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< class F, class T, class... Args> requires std::derived_from<T, Inline> void traverse( std::vector<std::unique_ptr<T>> const& list, F&& f, Args...&&... args); ---- == Parameters [cols=2] |=== | Name | Description | *list* | The list of texts to traverse. | *f* | The function to call for each text. | *args* | Additional arguments to pass to the function. |=== `trim` overloads == Synopses Declared in `<mrdocs/Metadata/DocComment/Block.hpp>` Removes leading and trailing whitespace from the block. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void link:#mrdocs-doc-trim-071[trim](link:#mrdocs-doc-Block[Block]& el); ---- [.small]#link:#mrdocs-doc-trim-071[_» more..._]# Removes leading and trailing whitespace from the text elements [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void link:#mrdocs-doc-trim-0b[trim](link:#mrdocs-doc-BlockContainer[BlockContainer]& blocks); ---- [.small]#link:#mrdocs-doc-trim-0b[_» more..._]# Removes leading and trailing whitespace from the text elements in the given InlineContainer. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void link:#mrdocs-doc-trim-08[trim](link:#mrdocs-doc-InlineContainer[InlineContainer]& inlines); ---- [.small]#link:#mrdocs-doc-trim-08[_» more..._]# Removes leading and trailing whitespace from the block. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void link:#mrdocs-doc-trim-01[trim](link:#mrdocs-Polymorphic[Polymorphic<Block>]& el); ---- [.small]#link:#mrdocs-doc-trim-01[_» more..._]# Removes leading and trailing whitespace from the inline element. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void link:#mrdocs-doc-trim-07f[trim](link:#mrdocs-Polymorphic[Polymorphic<Inline>]& el); ---- [.small]#link:#mrdocs-doc-trim-07f[_» more..._]# == Return Value void == Parameters [cols=2] |=== | Name | Description | *el* | The Block to trim. | *blocks* | The BlockContainer to trim. | *inlines* | The InlineContainer to trim. |=== Removes leading and trailing whitespace from the block. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void trim(link:#mrdocs-doc-Block[Block]& el); ---- == Return Value void == Parameters [cols=2] |=== | Name | Description | *el* | The Block to trim. |=== Removes leading and trailing whitespace from the text elements == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void trim(link:#mrdocs-doc-BlockContainer[BlockContainer]& blocks); ---- == Return Value void == Parameters [cols=2] |=== | Name | Description | *blocks* | The BlockContainer to trim. |=== Removes leading and trailing whitespace from the text elements in the given InlineContainer. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void trim(link:#mrdocs-doc-InlineContainer[InlineContainer]& inlines); ---- == Return Value void == Parameters [cols=2] |=== | Name | Description | *inlines* | The InlineContainer to trim. |=== Removes leading and trailing whitespace from the block. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void trim(link:#mrdocs-Polymorphic[Polymorphic<Block>]& el); ---- == Return Value void == Parameters [cols=2] |=== | Name | Description | *el* | The Polymorphic<Block> to trim. |=== Removes leading and trailing whitespace from the inline element. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void trim(link:#mrdocs-Polymorphic[Polymorphic<Inline>]& el); ---- == Return Value void == Parameters [cols=2] |=== | Name | Description | *el* | The Polymorphic<Inline> to trim. |=== `visit` overloads == Synopses Declared in `<mrdocs/Metadata/DocComment/Block.hpp>` Visit a block. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< std::derived_from<Block> BlockTy, class Fn, class... Args> decltype(auto) link:#mrdocs-doc-visit-0d[visit]( BlockTy& info, Fn&& fn, Args...&&... args); ---- [.small]#link:#mrdocs-doc-visit-0d[_» more..._]# Visit an inline. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< class InlineTy, class Fn, class... Args> requires std::derived_from<InlineTy, Inline> decltype(auto) link:#mrdocs-doc-visit-01[visit]( InlineTy& el, Fn&& fn, Args...&&... args); ---- [.small]#link:#mrdocs-doc-visit-01[_» more..._]# == Return Value The result of calling the function. == Parameters [cols=2] |=== | Name | Description | *block* | The block to visit. | *fn* | The function to call for each block. | *args* | Additional arguments to pass to the function. | *el* | The inline element to visit. |=== Visit a block. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< std::derived_from<Block> BlockTy, class Fn, class... Args> decltype(auto) visit( BlockTy& info, Fn&& fn, Args...&&... args); ---- == Return Value The result of calling the function. == Parameters [cols=2] |=== | Name | Description | *block* | The block to visit. | *fn* | The function to call for each block. | *args* | Additional arguments to pass to the function. |=== Visit an inline. == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< class InlineTy, class Fn, class... Args> requires std::derived_from<InlineTy, Inline> decltype(auto) visit( InlineTy& el, Fn&& fn, Args...&&... args); ---- == Return Value The result of calling the function. == Parameters [cols=2] |=== | Name | Description | *el* | The inline element to visit. | *fn* | The function to call for each inline. | *args* | Additional arguments to pass to the function. |=== Equality operators == Synopses Declared in `<mrdocs/Metadata/DocComment/Block.hpp>` Equality operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool link:#mrdocs-doc-operator_eq-00[operator==]( link:#mrdocs-Polymorphic[Polymorphic<Inline>] const& lhs, link:#mrdocs-Polymorphic[Polymorphic<Inline>] const& rhs); ---- [.small]#link:#mrdocs-doc-operator_eq-00[_» more..._]# Equality operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool link:#mrdocs-doc-operator_eq-01[operator==]( link:#mrdocs-Polymorphic[Polymorphic<Block>] const& lhs, link:#mrdocs-Polymorphic[Polymorphic<Block>] const& rhs); ---- [.small]#link:#mrdocs-doc-operator_eq-01[_» more..._]# Equality operator == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool operator==( link:#mrdocs-Polymorphic[Polymorphic<Inline>] const& lhs, link:#mrdocs-Polymorphic[Polymorphic<Inline>] const& rhs); ---- == Return Value `true` if the objects are equal, `false` otherwise == Parameters [cols=2] |=== | Name | Description | *lhs* | The left operand | *rhs* | The right operand |=== Equality operator == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool operator==( link:#mrdocs-Polymorphic[Polymorphic<Block>] const& lhs, link:#mrdocs-Polymorphic[Polymorphic<Block>] const& rhs); ---- == Return Value `true` if the objects are equal, `false` otherwise == Parameters [cols=2] |=== | Name | Description | *lhs* | The left operand | *rhs* | The right operand |=== Three‐way comparison operators == Synopses Declared in `<mrdocs/Metadata/DocComment/Block.hpp>` Three‐way comparison operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::strong_ordering link:#mrdocs-doc-operator_3way-0a[operator<=>]( link:#mrdocs-Polymorphic[Polymorphic<Inline>] const& lhs, link:#mrdocs-Polymorphic[Polymorphic<Inline>] const& rhs); ---- [.small]#link:#mrdocs-doc-operator_3way-0a[_» more..._]# Three‐way comparison operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::strong_ordering link:#mrdocs-doc-operator_3way-016[operator<=>]( link:#mrdocs-Polymorphic[Polymorphic<Block>] const& lhs, link:#mrdocs-Polymorphic[Polymorphic<Block>] const& rhs); ---- [.small]#link:#mrdocs-doc-operator_3way-016[_» more..._]# Three‐way comparison operator == Synopsis Declared in `<mrdocs/Metadata/DocComment/Inline.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::strong_ordering operator<=>( link:#mrdocs-Polymorphic[Polymorphic<Inline>] const& lhs, link:#mrdocs-Polymorphic[Polymorphic<Inline>] const& rhs); ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *lhs* | The left operand | *rhs* | The right operand |=== Three‐way comparison operator == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::strong_ordering operator<=>( link:#mrdocs-Polymorphic[Polymorphic<Block>] const& lhs, link:#mrdocs-Polymorphic[Polymorphic<Block>] const& rhs); ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *lhs* | The left operand | *rhs* | The right operand |=== Objects representing JSON‐like values. == Namespaces [cols=1] |=== | Name | link:#mrdocs-dom-JSON[`JSON`] |=== == Types [cols=2] |=== | Name | Description | link:#mrdocs-dom-Array[`Array`] | An array of values | link:#mrdocs-dom-ArrayImpl[`ArrayImpl`] | Abstract array interface. | link:#mrdocs-dom-DefaultArrayImpl[`DefaultArrayImpl`] | The default array implementation. | link:#mrdocs-dom-DefaultFunctionImpl[`DefaultFunctionImpl`] | | link:#mrdocs-dom-DefaultObjectImpl[`DefaultObjectImpl`] | The default Object implementation. | link:#mrdocs-dom-Function[`Function`] | | link:#mrdocs-dom-FunctionImpl[`FunctionImpl`] | | link:#mrdocs-dom-LazyArrayImpl-03[`LazyArrayImpl`] | Lazy array implementation | link:#mrdocs-dom-LazyArrayImpl-0a[`LazyArrayImpl`] | Lazy array implementation | link:#mrdocs-dom-LazyObjectImpl-04[`LazyObjectImpl`] | Lazy object implementation. | link:#mrdocs-dom-LazyObjectImpl-09[`LazyObjectImpl`] | Lazy object implementation. | link:#mrdocs-dom-LazyObjectMapTag[`LazyObjectMapTag`] | Customization point tag. | link:#mrdocs-dom-Object[`Object`] | A container of key and value pairs. | link:#mrdocs-dom-ObjectImpl[`ObjectImpl`] | Abstract object interface. | link:#mrdocs-dom-String[`String`] | | link:#mrdocs-dom-Value[`Value`] | A variant container for any kind of Dom value. | link:#mrdocs-dom-ValueFromTag[`ValueFromTag`] | Customization point tag. | link:#mrdocs-dom-VariadicFunctionImpl[`VariadicFunctionImpl`] | | link:#mrdocs-dom-function_traits-056[`function_traits`] | | link:#mrdocs-dom-function_traits-06[`function_traits<F>`] | | link:#mrdocs-dom-function_traits-0f[`function_traits<R(*)(Args...)>`] | | link:#mrdocs-dom-function_traits-04[`function_traits<R(Args...)>`] | | link:#mrdocs-dom-function_traits-05f[`function_traits<R const volatile(C::*)(Args...)>`] | |=== == Enums [cols=2] |=== | Name | Description | link:#mrdocs-dom-Kind[`Kind`] | The type of data in a Value. |=== == Functions [cols=2] |=== | Name | Description | link:#mrdocs-dom-LazyArray-04[`LazyArray`] | `LazyArray` overloads | link:#mrdocs-dom-LazyObject-07[`LazyObject`] | `LazyObject` overloads | link:#mrdocs-dom-TransformArray[`TransformArray`] | Return a new dom::Array based on a transformed lazy array implementation. | link:#mrdocs-dom-ValueFrom-0a[`ValueFrom`] | `ValueFrom` overloads | link:#mrdocs-dom-makeInvocable[`makeInvocable`] | | link:#mrdocs-dom-makeVariadicInvocable[`makeVariadicInvocable`] | | link:#mrdocs-dom-newArray[`newArray`] | Return a new array using a custom implementation. | link:#mrdocs-dom-newFunction[`newFunction`] | Return a diagnostic string. | link:#mrdocs-dom-newObject[`newObject`] | Return a new object using a custom implementation. | link:#mrdocs-dom-operator_and-0df7[`operator&&`] | Return the first dom::Value that is not truthy, or the last one. | link:#mrdocs-dom-operator_plus-002[`operator+`] | Addition operators | link:#mrdocs-dom-operator_or-0e[`operator||`] | Return the first dom::Value that is truthy, or the last one. | link:#mrdocs-dom-stringOrNull-04[`stringOrNull`] | Return a non‐empty string, or a null. | link:#mrdocs-dom-swap-0c[`swap`] | `swap` overloads | link:#mrdocs-dom-toString-07[`toString`] | `toString` overloads | link:#mrdocs-dom-operator_eq-00[`operator==`] | Equality operators | link:#mrdocs-dom-operator_not_eq-04[`operator!=`] | Return the result of comparing two strings. | link:#mrdocs-dom-operator_3way-07b[`operator<=>`] | Three‐way comparison operators |=== == Concepts [cols=2] |=== | Name | Description | link:#mrdocs-dom-HasLazyObjectMap[`HasLazyObjectMap`] | Determine if `T` can be converted to link:#mrdocs-dom-Value[`dom::Value`]. | link:#mrdocs-dom-HasLazyObjectMapWithContext[`HasLazyObjectMapWithContext`] | Concept to determine if a type can be mapped to a link:#mrdocs-dom-LazyObjectImpl-04[`dom::LazyObjectImpl`] with a user‐provided conversion. | link:#mrdocs-dom-HasLazyObjectMapWithoutContext[`HasLazyObjectMapWithoutContext`] | Concept to determine if a type can be mapped to a link:#mrdocs-dom-LazyObjectImpl-04[`dom::LazyObjectImpl`] with a user‐provided conversion. | link:#mrdocs-dom-HasStandaloneValueFrom[`HasStandaloneValueFrom`] | Determine if ` T` can be converted to link:#mrdocs-dom-Value[`dom::Value`] without a context. | link:#mrdocs-dom-HasValueFrom[`HasValueFrom`] | Determine if `T` can be converted to link:#mrdocs-dom-Value[`dom::Value`]. | link:#mrdocs-dom-HasValueFromWithContext[`HasValueFromWithContext`] | Concept to determine if a type can be converted to a link:#mrdocs-dom-Value[`dom::Value`] with a user‐provided conversion. | link:#mrdocs-dom-HasValueFromWithoutContext[`HasValueFromWithoutContext`] | Concept to determine if a type can be converted to a link:#mrdocs-dom-Value[`dom::Value`] with a user‐provided conversion. | link:#mrdocs-dom-StringLikeTy[`StringLikeTy`] | Satisfied if StringTy is convertible to String but not a String. | link:#mrdocs-dom-function_traits_convertible_to_value[`function_traits_convertible_to_value`] | | link:#mrdocs-dom-has_function_args_for_default_function_impl[`has_function_args_for_default_function_impl`] | | link:#mrdocs-dom-has_function_traits[`has_function_traits`] | | link:#mrdocs-dom-has_function_traits_for_default_function_impl[`has_function_traits_for_default_function_impl`] | | link:#mrdocs-dom-has_invoke_expected_result_convertible_to_dom_value[`has_invoke_expected_result_convertible_to_dom_value`] | | link:#mrdocs-dom-has_invoke_result_convertible_to_dom_value[`has_invoke_result_convertible_to_dom_value`] | | link:#mrdocs-dom-has_invoke_result_for_default_function_impl[`has_invoke_result_for_default_function_impl`] | |=== == Description This class is a variant‐like container for holding any kind of value that can be represented in JSON, with extensions for functions and "safe strings". The class supports the following types: ‐ Undefined ‐ Null ‐ Boolean ‐ Integer ‐ String ‐ SafeString ‐ Array ‐ Object ‐ Function The class provides type‐safe accessors for each type, as well as methods to check the type of the contained value. Example: [,cpp] ---- {.cpp} dom::Value v1 = 42; // Integer dom::Value v2 = "Hello, World!"; // String dom::Value v3 = dom::Array{v1, v2}; // Array if (v1.isInteger()) { std::cout << "v1 is an integer: " << v1.getInteger() << "\n"; } if (v2.isString()) { std::cout << "v2 is a string: " << v2.getString() << "\n"; } if (v3.isArray()) { std::cout << "v3 is an array with " << v3.getArray().size() << " elements.\n"; } ---- == Functions [cols=2] |=== | Name | Description | link:#mrdocs-dom-JSON-stringify[`stringify`] | Stringify a value as JSON |=== Stringify a value as JSON == Synopsis Declared in `<mrdocs/Dom/Value.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::string stringify(link:#mrdocs-dom-Value[dom::Value] const& value); ---- == Description This function serialized a link:#mrdocs-dom-Value[`Value`] to a string as if `JSON.stringify()` had been called on it. Recursive objects are identified. == Return Value A string containing valid JSON. == Parameters [cols=2] |=== | Name | Description | *value* | The value to stringify. |=== An array of values == Synopsis Declared in `<mrdocs/Dom/Array.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- class Array final ---- == Types [cols=2] |=== | Name | Description | link:#mrdocs-dom-Array-iterator[`iterator`] | A constant iterator referencing an element in an Array. | link:#mrdocs-dom-Array-const_iterator[`const_iterator`] | A constant iterator referencing an element in an Array. | link:#mrdocs-dom-Array-const_pointer[`const_pointer`] | A pointer to an element. | link:#mrdocs-dom-Array-const_reference[`const_reference`] | A reference to an element. | link:#mrdocs-dom-Array-difference_type[`difference_type`] | A signed integral type. | link:#mrdocs-dom-Array-impl_type[`impl_type`] | The implementation type. | link:#mrdocs-dom-Array-pointer[`pointer`] | A pointer to an element. | link:#mrdocs-dom-Array-reference[`reference`] | A reference to an element. | link:#mrdocs-dom-Array-size_type[`size_type`] | An unsigned integral type used for indexes and sizes. | link:#mrdocs-dom-Array-storage_type[`storage_type`] | The type of storage used by the default implementation. | link:#mrdocs-dom-Array-value_type[`value_type`] | The type of an element. |=== == Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-dom-Array-2constructor-066[`Array`] [.small]#[constructor]# | Constructor. | link:#mrdocs-dom-Array-2destructor[`~Array`] [.small]#[destructor]# | Destructor. | link:#mrdocs-dom-Array-operator_assign-0d[`operator=`] | Assignment. | link:#mrdocs-dom-Array-at[`at`] | Return the i‐th element. | link:#mrdocs-dom-Array-back[`back`] | Return the last element. | link:#mrdocs-dom-Array-begin[`begin`] | Return an iterator to the beginning of the range of elements. | link:#mrdocs-dom-Array-emplace_back[`emplace_back`] | Append an element to the end of the array. | link:#mrdocs-dom-Array-empty[`empty`] | Return true if the array is empty. | link:#mrdocs-dom-Array-end[`end`] | Return an iterator to the end of the range of elements. | link:#mrdocs-dom-Array-front[`front`] | Return the first element. | link:#mrdocs-dom-Array-get[`get`] | Return the i‐th element, without bounds checking. | link:#mrdocs-dom-Array-impl[`impl`] | Return the implementation used by this object. | link:#mrdocs-dom-Array-push_back[`push_back`] | Append an element to the end of the array. | link:#mrdocs-dom-Array-set[`set`] | Set the i‐th element, without bounds checking. | link:#mrdocs-dom-Array-size[`size`] | Return the number of elements in the array. | link:#mrdocs-dom-Array-swap[`swap`] | Swap two arrays. | link:#mrdocs-dom-Array-type_key[`type_key`] | Return the type key of the implementation. |=== == Friends [cols=2] |=== | Name | Description | `link:#mrdocs-dom-newArray[mrdocs::dom::newArray]` | Return a new array using a custom implementation. | `link:#mrdocs-dom-toString-01b[mrdocs::dom::toString]` | Return a diagnostic string. | `link:#mrdocs-dom-operator_3way-0a[mrdocs::dom::operator<=>]` | Compare two arrays for precedence. | `link:#mrdocs-dom-operator_eq-0b[mrdocs::dom::operator==]` | Compare two arrays for equality. | `link:#mrdocs-dom-swap-0f3[mrdocs::dom::swap]` | Swap two arrays. | `link:#mrdocs-dom-operator_plus-0a8[mrdocs::dom::operator+]` | | `link:#mrdocs-dom-operator_plus-0b[mrdocs::dom::operator+]` | | `link:#mrdocs-dom-operator_plus-0a2[mrdocs::dom::operator+]` | Concatenate two arrays. |=== == Non-Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-dom-LazyArray-07[`LazyArray`] | Return a new dom::Array based on a FromValue context | link:#mrdocs-dom-LazyArray-0c[`LazyArray`] | Return a new `dom::Array` based on a lazy array implementation. | link:#mrdocs-dom-TransformArray[`TransformArray`] | Return a new dom::Array based on a transformed lazy array implementation. | link:#mrdocs-getParents-06[`::mrdocs::getParents`] | Return a list of the parent symbols of the specified Info. | link:#mrdocs-helpers-and_fn[`::mrdocs::helpers::and_fn`] | "and" helper function | link:#mrdocs-helpers-eq_fn[`::mrdocs::helpers::eq_fn`] | "eq" helper function | link:#mrdocs-helpers-ne_fn[`::mrdocs::helpers::ne_fn`] | "ne" helper function | link:#mrdocs-helpers-not_fn[`::mrdocs::helpers::not_fn`] | "not" helper function | link:#mrdocs-helpers-or_fn[`::mrdocs::helpers::or_fn`] | "or" helper function |=== == Description Arrays are a collection of indexed values. They are an extension of objects with a particular relationship between integer‐keyed properties and some abstract length‐property. Besides, they include convenient methods to manipulate these ordered sequences of values. A constant iterator referencing an element in an Array. == Synopsis Declared in `<mrdocs/Dom/Array.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- using const_iterator = link:#mrdocs-dom-Array-iterator[iterator]; ---- A pointer to an element. == Synopsis Declared in `<mrdocs/Dom/Array.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- using const_pointer = link:#mrdocs-dom-Array-value_type[value_type] const*; ---- A reference to an element. == Synopsis Declared in `<mrdocs/Dom/Array.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- using const_reference = link:#mrdocs-dom-Array-value_type[value_type]; ---- == Description This is a read‐only reference to an element. A signed integral type. == Synopsis Declared in `<mrdocs/Dom/Array.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- using difference_type = std::ptrdiff_t; ---- The implementation type. == Synopsis Declared in `<mrdocs/Dom/Array.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- using impl_type = std::shared_ptr<ArrayImpl>; ---- A pointer to an element. == Synopsis Declared in `<mrdocs/Dom/Array.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- using pointer = link:#mrdocs-dom-Array-value_type[value_type] const*; ---- A reference to an element. == Synopsis Declared in `<mrdocs/Dom/Array.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- using reference = link:#mrdocs-dom-Array-value_type[value_type]; ---- == Description This is a read‐only reference to an element. An unsigned integral type used for indexes and sizes. == Synopsis Declared in `<mrdocs/Dom/Array.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- using size_type = std::size_t; ---- The type of storage used by the default implementation. == Synopsis Declared in `<mrdocs/Dom/Array.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- using storage_type = std::vector<value_type>; ---- The type of an element. == Synopsis Declared in `<mrdocs/Dom/Array.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- using value_type = link:#mrdocs-dom-Value[Value]; ---- A constant iterator referencing an element in an Array. == Synopsis Declared in `<mrdocs/Dom/Array.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- class iterator; ---- == Friends [cols=2] |=== | Name | Description | `mrdocs::dom::operator+` | | `link:#mrdocs-dom-Array[mrdocs::dom::Array]` | An array of values |=== Constructor. == Synopses Declared in `<mrdocs/Dom/Array.hpp>` Constructor. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-dom-Array-2constructor-03[Array](); ---- [.small]#link:#mrdocs-dom-Array-2constructor-03[_» more..._]# Constructor. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-dom-Array-2constructor-0b[Array](link:#mrdocs-dom-Array[Array] const& other); ---- [.small]#link:#mrdocs-dom-Array-2constructor-0b[_» more..._]# Constructor. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-dom-Array-2constructor-0cc[Array](link:#mrdocs-dom-Array[Array]&& other); ---- [.small]#link:#mrdocs-dom-Array-2constructor-0cc[_» more..._]# Constructor. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-dom-Array-2constructor-0cd[Array](link:#mrdocs-dom-Array-impl_type[impl_type] impl) noexcept; ---- [.small]#link:#mrdocs-dom-Array-2constructor-0cd[_» more..._]# Constructor. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-dom-Array-2constructor-06d[Array](link:#mrdocs-dom-Array-storage_type[storage_type] elements); ---- [.small]#link:#mrdocs-dom-Array-2constructor-06d[_» more..._]# == Parameters [cols=2] |=== | Name | Description | *elements* | The elements to acquire. |=== Constructor. == Synopsis Declared in `<mrdocs/Dom/Array.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- Array(); ---- == Description Default‐constructed arrays refer to a new, empty array which is distinct from every other empty array. Constructor. == Synopsis Declared in `<mrdocs/Dom/Array.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- Array(link:#mrdocs-dom-Array[Array] const& other); ---- == Description The newly constructed array will contain copies of the scalars in other, and references to its structured data. == Parameters [cols=2] |=== | Name | Description | *other* | The object to copy construct from |=== Constructor. == Synopsis Declared in `<mrdocs/Dom/Array.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- Array(link:#mrdocs-dom-Array[Array]&& other); ---- == Description Ownership of the contents is transferred to the new object. The moved‐from array will behave as if default‐constructed. == Parameters [cols=2] |=== | Name | Description | *other* | The object to move construct from |=== Constructor. == Synopsis Declared in `<mrdocs/Dom/Array.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- Array(link:#mrdocs-dom-Array-impl_type[impl_type] impl) noexcept; ---- == Description This constructs an array from an existing implementation, with shared ownership. The pointer cannot not be null. == Parameters [cols=2] |=== | Name | Description | *impl* | The object to construct from |=== Constructor. == Synopsis Declared in `<mrdocs/Dom/Array.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- Array(link:#mrdocs-dom-Array-storage_type[storage_type] elements); ---- == Description Upon construction, the array will retain ownership of a shallow copy of the specified elements. In particular, dynamic objects will be acquired with shared ownership. == Parameters [cols=2] |=== | Name | Description | *elements* | The elements to acquire. |=== Destructor. == Synopsis Declared in `<mrdocs/Dom/Array.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- ~Array(); ---- Assignment. == Synopses Declared in `<mrdocs/Dom/Array.hpp>` Assignment. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-dom-Array[Array]& link:#mrdocs-dom-Array-operator_assign-0a[operator=](link:#mrdocs-dom-Array[Array] const& other) = default; ---- [.small]#link:#mrdocs-dom-Array-operator_assign-0a[_» more..._]# Assignment. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-dom-Array[Array]& link:#mrdocs-dom-Array-operator_assign-0b[operator=](link:#mrdocs-dom-Array[Array]&& other); ---- [.small]#link:#mrdocs-dom-Array-operator_assign-0b[_» more..._]# Assignment. == Synopsis Declared in `<mrdocs/Dom/Array.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-dom-Array[Array]& operator=(link:#mrdocs-dom-Array[Array] const& other) = default; ---- == Description This acquires shared ownership of the copied array, and ownership of the previous contents is released. == Return Value Reference to the current object == Parameters [cols=2] |=== | Name | Description | *other* | The object to copy assign from |=== Assignment. == Synopsis Declared in `<mrdocs/Dom/Array.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-dom-Array[Array]& operator=(link:#mrdocs-dom-Array[Array]&& other); ---- == Description Ownership of the array is transferred to this, and ownership of the previous contents is released. The moved‐from array behaves as if default constructed. == Return Value Reference to the current object == Parameters [cols=2] |=== | Name | Description | *other* | The object to move assign from |=== Return the i‐th element. == Synopsis Declared in `<mrdocs/Dom/Array.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-dom-Array-value_type[value_type] at(link:#mrdocs-dom-Array-size_type[size_type] i) const; ---- == Exceptions [cols=2] |=== | Name | Thrown on | link:#mrdocs-Exception[`Exception`] | `i >= size()` |=== == Return Value the i‐th element. == Parameters [cols=2] |=== | Name | Description | *i* | An unsigned integral type used for indexes and sizes. |=== Return the last element. == Synopsis Declared in `<mrdocs/Dom/Array.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-dom-Array-value_type[value_type] back() const; ---- == Exceptions [cols=2] |=== | Name | Thrown on | link:#mrdocs-Exception[`Exception`] | `empty()` |=== == Return Value the last element. Return an iterator to the beginning of the range of elements. == Synopsis Declared in `<mrdocs/Dom/Array.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-dom-Array-iterator[iterator] begin() const; ---- == Return Value an iterator to the beginning of the range of elements. Append an element to the end of the array. == Synopsis Declared in `<mrdocs/Dom/Array.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class... Args> void emplace_back(Args...&&... args); ---- == Description If the array is read‐only, an exception is thrown. == Parameters [cols=2] |=== | Name | Description | *args* | Arguments forwarded to the constructor of Value. |=== Return true if the array is empty. == Synopsis Declared in `<mrdocs/Dom/Array.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool empty() const noexcept; ---- == Return Value true if the array is empty. Return an iterator to the end of the range of elements. == Synopsis Declared in `<mrdocs/Dom/Array.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-dom-Array-iterator[iterator] end() const; ---- == Return Value an iterator to the end of the range of elements. Return the first element. == Synopsis Declared in `<mrdocs/Dom/Array.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-dom-Array-value_type[value_type] front() const; ---- == Exceptions [cols=2] |=== | Name | Thrown on | link:#mrdocs-Exception[`Exception`] | `empty()` |=== == Return Value the first element. Return the i‐th element, without bounds checking. == Synopsis Declared in `<mrdocs/Dom/Array.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-dom-Array-value_type[value_type] get(link:#mrdocs-dom-Array-size_type[size_type] i) const; ---- == Return Value the i‐th element, without bounds checking. == Parameters [cols=2] |=== | Name | Description | *i* | The zero‐based index of the element. |=== Return the implementation used by this object. == Synopsis Declared in `<mrdocs/Dom/Array.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-dom-Array-impl_type[impl_type] const& impl() const noexcept; ---- == Return Value the implementation used by this object. Append an element to the end of the array. == Synopsis Declared in `<mrdocs/Dom/Array.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void push_back(link:#mrdocs-dom-Array-value_type[value_type] value); ---- == Description If the array is read‐only, an exception is thrown. == Parameters [cols=2] |=== | Name | Description | *value* | The type of an element. |=== Set the i‐th element, without bounds checking. == Synopsis Declared in `<mrdocs/Dom/Array.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void set( link:#mrdocs-dom-Array-size_type[size_type] i, link:#mrdocs-dom-Value[Value] v); ---- == Parameters [cols=2] |=== | Name | Description | *i* | The zero‐based index of the element. | *v* | The value to set. |=== Return the number of elements in the array. == Synopsis Declared in `<mrdocs/Dom/Array.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-dom-Array-size_type[size_type] size() const noexcept; ---- == Return Value the number of elements in the array. Swap two arrays. == Synopsis Declared in `<mrdocs/Dom/Array.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void swap(link:#mrdocs-dom-Array[Array]& other) noexcept; ---- == Parameters [cols=2] |=== | Name | Description | *other* | An array of values |=== Return the type key of the implementation. == Synopsis Declared in `<mrdocs/Dom/Array.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- char const* type_key() const noexcept; ---- == Return Value the type key of the implementation. Abstract array interface. == Synopsis Declared in `<mrdocs/Dom/Array.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- class ArrayImpl; ---- == Types [cols=2] |=== | Name | Description | link:#mrdocs-dom-ArrayImpl-size_type[`size_type`] | An unsigned integral type used for indexes and sizes. | link:#mrdocs-dom-ArrayImpl-value_type[`value_type`] | The type of an element. |=== == Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-dom-ArrayImpl-2destructor[`~ArrayImpl`] [.small]#[destructor]# [.small]#[virtual]# | Destructor. | link:#mrdocs-dom-ArrayImpl-emplace_back[`emplace_back`] [.small]#[virtual]# | Append an element to the end of the array. | link:#mrdocs-dom-ArrayImpl-get[`get`] [.small]#[virtual]# | Return the i‐th element, without bounds checking. | link:#mrdocs-dom-ArrayImpl-set[`set`] [.small]#[virtual]# | Set the i‐th element, without bounds checking. | link:#mrdocs-dom-ArrayImpl-size[`size`] [.small]#[virtual]# | Return the number of elements in the array. | link:#mrdocs-dom-ArrayImpl-type_key[`type_key`] [.small]#[virtual]# | Return the type key of the implementation. |=== == Derived Classes [cols=2] |=== | Name | Description | link:#mrdocs-dom-DefaultArrayImpl[`DefaultArrayImpl`] | The default array implementation. | link:#mrdocs-dom-LazyArrayImpl-03[`LazyArrayImpl`] | Lazy array implementation | link:#mrdocs-dom-LazyArrayImpl-0a[`LazyArrayImpl`] | Lazy array implementation |=== == Description This interface is used by Array types. An unsigned integral type used for indexes and sizes. == Synopsis Declared in `<mrdocs/Dom/Array.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- using size_type = link:#mrdocs-dom-Array-size_type[Array::size_type]; ---- The type of an element. == Synopsis Declared in `<mrdocs/Dom/Array.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- using value_type = link:#mrdocs-dom-Array-value_type[Array::value_type]; ---- Destructor. == Synopsis Declared in `<mrdocs/Dom/Array.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- virtual ~ArrayImpl(); ---- Append an element to the end of the array. == Synopsis Declared in `<mrdocs/Dom/Array.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- virtual void emplace_back(link:#mrdocs-dom-ArrayImpl-value_type[value_type] value); ---- == Description The default implementation throws an exception, making the array effectively read‐only. == Parameters [cols=2] |=== | Name | Description | *value* | The type of an element. |=== Return the i‐th element, without bounds checking. == Synopsis Declared in `<mrdocs/Dom/Array.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- virtual link:#mrdocs-dom-ArrayImpl-value_type[value_type] get(link:#mrdocs-dom-ArrayImpl-size_type[size_type] i) const = 0; ---- == Return Value the i‐th element, without bounds checking. == Parameters [cols=2] |=== | Name | Description | *i* | An unsigned integral type used for indexes and sizes. |=== Set the i‐th element, without bounds checking. == Synopsis Declared in `<mrdocs/Dom/Array.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- virtual void set( link:#mrdocs-dom-ArrayImpl-size_type[size_type], link:#mrdocs-dom-Value[Value]); ---- Return the number of elements in the array. == Synopsis Declared in `<mrdocs/Dom/Array.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- virtual link:#mrdocs-dom-ArrayImpl-size_type[size_type] size() const = 0; ---- == Return Value the number of elements in the array. Return the type key of the implementation. == Synopsis Declared in `<mrdocs/Dom/Array.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- virtual char const* type_key() const noexcept; ---- == Return Value the type key of the implementation. The default array implementation. == Synopsis Declared in `<mrdocs/Dom/Array.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- class DefaultArrayImpl : public link:#mrdocs-dom-ArrayImpl[ArrayImpl] ---- == Base Classes [cols=2] |=== | Name | Description | `link:#mrdocs-dom-ArrayImpl[ArrayImpl]` | Abstract array interface. |=== == Types [cols=2] |=== | Name | Description | link:#mrdocs-dom-DefaultArrayImpl-size_type[`size_type`] | An unsigned integral type used for indexes and sizes. | link:#mrdocs-dom-DefaultArrayImpl-storage_type[`storage_type`] | The type of storage used by the default implementation. | link:#mrdocs-dom-DefaultArrayImpl-value_type[`value_type`] | The type of an element. |=== == Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-dom-DefaultArrayImpl-2constructor-0b[`DefaultArrayImpl`] [.small]#[constructor]# | Constructors | link:#mrdocs-dom-DefaultArrayImpl-emplace_back[`emplace_back`] [.small]#[virtual]# | | link:#mrdocs-dom-DefaultArrayImpl-get[`get`] [.small]#[virtual]# | | link:#mrdocs-dom-DefaultArrayImpl-set-03[`set`] [.small]#[virtual]# | Set the i‐th element, without bounds checking. | link:#mrdocs-dom-DefaultArrayImpl-size[`size`] [.small]#[virtual]# | | link:#mrdocs-dom-DefaultArrayImpl-type_key[`type_key`] [.small]#[virtual]# | |=== == Description This implementation is backed by a simple vector and allows appending. An unsigned integral type used for indexes and sizes. == Synopsis Declared in `<mrdocs/Dom/Array.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- using size_type = link:#mrdocs-dom-Array-size_type[Array::size_type]; ---- The type of storage used by the default implementation. == Synopsis Declared in `<mrdocs/Dom/Array.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- using storage_type = link:#mrdocs-dom-Array-storage_type[Array::storage_type]; ---- The type of an element. == Synopsis Declared in `<mrdocs/Dom/Array.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- using value_type = link:#mrdocs-dom-Array-value_type[Array::value_type]; ---- Constructors == Synopses Declared in `<mrdocs/Dom/Array.hpp>` Default constructor [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-dom-DefaultArrayImpl-2constructor-06[DefaultArrayImpl](); ---- [.small]#link:#mrdocs-dom-DefaultArrayImpl-2constructor-06[_» more..._]# Construct from `storage_type` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- explicit link:#mrdocs-dom-DefaultArrayImpl-2constructor-0a[DefaultArrayImpl](link:#mrdocs-dom-DefaultArrayImpl-storage_type[storage_type] elements) noexcept; ---- [.small]#link:#mrdocs-dom-DefaultArrayImpl-2constructor-0a[_» more..._]# Default constructor == Synopsis Declared in `<mrdocs/Dom/Array.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- DefaultArrayImpl(); ---- Construct from `storage_type` == Synopsis Declared in `<mrdocs/Dom/Array.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- explicit DefaultArrayImpl(link:#mrdocs-dom-DefaultArrayImpl-storage_type[storage_type] elements) noexcept; ---- == Parameters [cols=2] |=== | Name | Description | *elements* | The object to construct from |=== == Synopsis Declared in `<mrdocs/Dom/Array.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- virtual void emplace_back(link:#mrdocs-dom-DefaultArrayImpl-value_type[value_type] value) override; ---- == Synopsis Declared in `<mrdocs/Dom/Array.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- virtual link:#mrdocs-dom-DefaultArrayImpl-value_type[value_type] get(link:#mrdocs-dom-DefaultArrayImpl-size_type[size_type] i) const override; ---- Set the i‐th element, without bounds checking. == Synopses Declared in `<mrdocs/Dom/Array.hpp>` Set the i‐th element, without bounds checking. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- virtual void link:#mrdocs-dom-ArrayImpl-set[set]( link:#mrdocs-dom-ArrayImpl-size_type[size_type], link:#mrdocs-dom-Value[Value]); ---- [.small]#link:#mrdocs-dom-ArrayImpl-set[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- virtual void link:#mrdocs-dom-DefaultArrayImpl-set-0c[set]( link:#mrdocs-dom-DefaultArrayImpl-size_type[size_type] i, link:#mrdocs-dom-Value[Value] v) override; ---- [.small]#link:#mrdocs-dom-DefaultArrayImpl-set-0c[_» more..._]# Set the i‐th element, without bounds checking. == Synopsis Declared in `<mrdocs/Dom/Array.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- virtual void set( link:#mrdocs-dom-ArrayImpl-size_type[size_type], link:#mrdocs-dom-Value[Value]); ---- == Synopsis Declared in `<mrdocs/Dom/Array.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- virtual void set( link:#mrdocs-dom-DefaultArrayImpl-size_type[size_type] i, link:#mrdocs-dom-Value[Value] v) override; ---- == Synopsis Declared in `<mrdocs/Dom/Array.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- virtual link:#mrdocs-dom-DefaultArrayImpl-size_type[size_type] size() const override; ---- == Synopsis Declared in `<mrdocs/Dom/Array.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- virtual char const* type_key() const noexcept override; ---- == Synopsis Declared in `<mrdocs/Dom/Function.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class F> class DefaultFunctionImpl : public link:#mrdocs-dom-FunctionImpl[FunctionImpl] ---- == Base Classes [cols=2] |=== | Name | Description | `link:#mrdocs-dom-FunctionImpl[FunctionImpl]` | |=== == Types [cols=1] |=== | Name | link:#mrdocs-dom-DefaultFunctionImpl-args_type[`args_type`] | link:#mrdocs-dom-DefaultFunctionImpl-return_type[`return_type`] |=== == Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-dom-DefaultFunctionImpl-2constructor[`DefaultFunctionImpl`] [.small]#[constructor]# | Construct from `U` | link:#mrdocs-dom-DefaultFunctionImpl-call[`call`] [.small]#[virtual]# | | link:#mrdocs-dom-DefaultFunctionImpl-type_key[`type_key`] [.small]#[virtual]# | |=== == Synopsis Declared in `<mrdocs/Dom/Function.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- using args_type = function_traits<F>::args_type; ---- == Synopsis Declared in `<mrdocs/Dom/Function.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- using return_type = function_traits<F>::return_type; ---- Construct from `U` == Synopsis Declared in `<mrdocs/Dom/Function.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class U> DefaultFunctionImpl(U&& u); ---- == Parameters [cols=2] |=== | Name | Description | *u* | The object to move construct from |=== == Synopsis Declared in `<mrdocs/Dom/Function.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- virtual link:#mrdocs-Expected-0a[Expected<Value>] call(link:#mrdocs-dom-Array[Array] const& args) const override; ---- == Synopsis Declared in `<mrdocs/Dom/Function.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- virtual char const* type_key() const noexcept override; ---- The default Object implementation. == Synopsis Declared in `<mrdocs/Dom/Object.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- class DefaultObjectImpl : public link:#mrdocs-dom-ObjectImpl[ObjectImpl] ---- == Base Classes [cols=2] |=== | Name | Description | `link:#mrdocs-dom-ObjectImpl[ObjectImpl]` | Abstract object interface. |=== == Types [cols=2] |=== | Name | Description | link:#mrdocs-dom-ObjectImpl-reference[`reference`] | A reference to an element. | link:#mrdocs-dom-ObjectImpl-storage_type[`storage_type`] | The type of storage used by the default implementation. |=== == Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-dom-DefaultObjectImpl-2constructor-00[`DefaultObjectImpl`] [.small]#[constructor]# | Constructors | link:#mrdocs-dom-DefaultObjectImpl-exists[`exists`] [.small]#[virtual]# | | link:#mrdocs-dom-DefaultObjectImpl-get-0d[`get`] [.small]#[virtual]# | Return the value for the specified key, or null. | link:#mrdocs-dom-DefaultObjectImpl-set-0a[`set`] [.small]#[virtual]# | Insert or set the given key/value pair. | link:#mrdocs-dom-DefaultObjectImpl-size[`size`] [.small]#[virtual]# | | link:#mrdocs-dom-ObjectImpl-type_key[`type_key`] [.small]#[virtual]# | Return the type key of the implementation. | link:#mrdocs-dom-DefaultObjectImpl-visit-07[`visit`] [.small]#[virtual]# | Invoke the visitor for each key/value pair. |=== Constructors == Synopses Declared in `<mrdocs/Dom/Object.hpp>` Default constructor [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-dom-DefaultObjectImpl-2constructor-0e[DefaultObjectImpl]() noexcept; ---- [.small]#link:#mrdocs-dom-DefaultObjectImpl-2constructor-0e[_» more..._]# Construct from `storage_type` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- explicit link:#mrdocs-dom-DefaultObjectImpl-2constructor-06[DefaultObjectImpl](link:#mrdocs-dom-ObjectImpl-storage_type[storage_type] entries) noexcept; ---- [.small]#link:#mrdocs-dom-DefaultObjectImpl-2constructor-06[_» more..._]# Default constructor == Synopsis Declared in `<mrdocs/Dom/Object.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- DefaultObjectImpl() noexcept; ---- Construct from `storage_type` == Synopsis Declared in `<mrdocs/Dom/Object.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- explicit DefaultObjectImpl(link:#mrdocs-dom-ObjectImpl-storage_type[storage_type] entries) noexcept; ---- == Parameters [cols=2] |=== | Name | Description | *entries* | The object to construct from |=== == Synopsis Declared in `<mrdocs/Dom/Object.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- virtual bool exists(std::string_view key) const override; ---- Return the value for the specified key, or null. == Synopses Declared in `<mrdocs/Dom/Object.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- virtual link:#mrdocs-dom-Value[Value] link:#mrdocs-dom-DefaultObjectImpl-get-0b[get](std::string_view) const override; ---- [.small]#link:#mrdocs-dom-DefaultObjectImpl-get-0b[_» more..._]# Return the value for the specified key, or null. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- virtual link:#mrdocs-dom-Value[Value] link:#mrdocs-dom-ObjectImpl-get[get](std::string_view key) const = 0; ---- [.small]#link:#mrdocs-dom-ObjectImpl-get[_» more..._]# == Return Value The value for the specified key, or null if the key does not exist. == Parameters [cols=2] |=== | Name | Description | *key* | The key. |=== == Synopsis Declared in `<mrdocs/Dom/Object.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- virtual link:#mrdocs-dom-Value[Value] get(std::string_view) const override; ---- Return the value for the specified key, or null. == Synopsis Declared in `<mrdocs/Dom/Object.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- virtual link:#mrdocs-dom-Value[Value] get(std::string_view key) const = 0; ---- == Return Value The value for the specified key, or null if the key does not exist. == Parameters [cols=2] |=== | Name | Description | *key* | The key. |=== Insert or set the given key/value pair. == Synopses Declared in `<mrdocs/Dom/Object.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- virtual void link:#mrdocs-dom-DefaultObjectImpl-set-01[set]( link:#mrdocs-dom-String[String], link:#mrdocs-dom-Value[Value]) override; ---- [.small]#link:#mrdocs-dom-DefaultObjectImpl-set-01[_» more..._]# Insert or set the given key/value pair. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- virtual void link:#mrdocs-dom-ObjectImpl-set[set]( link:#mrdocs-dom-String[String] key, link:#mrdocs-dom-Value[Value] value) = 0; ---- [.small]#link:#mrdocs-dom-ObjectImpl-set[_» more..._]# == Parameters [cols=2] |=== | Name | Description | *key* | The key. | *value* | The value to set. |=== == Synopsis Declared in `<mrdocs/Dom/Object.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- virtual void set( link:#mrdocs-dom-String[String], link:#mrdocs-dom-Value[Value]) override; ---- Insert or set the given key/value pair. == Synopsis Declared in `<mrdocs/Dom/Object.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- virtual void set( link:#mrdocs-dom-String[String] key, link:#mrdocs-dom-Value[Value] value) = 0; ---- == Parameters [cols=2] |=== | Name | Description | *key* | The key. | *value* | The value to set. |=== == Synopsis Declared in `<mrdocs/Dom/Object.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- virtual std::size_t size() const override; ---- Invoke the visitor for each key/value pair. == Synopses Declared in `<mrdocs/Dom/Object.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- virtual bool link:#mrdocs-dom-DefaultObjectImpl-visit-0a[visit](std::function<bool(link:#mrdocs-dom-String[String], link:#mrdocs-dom-Value[Value])>) const override; ---- [.small]#link:#mrdocs-dom-DefaultObjectImpl-visit-0a[_» more..._]# Invoke the visitor for each key/value pair. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- virtual bool link:#mrdocs-dom-ObjectImpl-visit[visit](std::function<bool(link:#mrdocs-dom-String[String], link:#mrdocs-dom-Value[Value])> fn) const = 0; ---- [.small]#link:#mrdocs-dom-ObjectImpl-visit[_» more..._]# == Return Value `true` if the visitor returned `true` for all elements, otherwise `false`. == Parameters [cols=2] |=== | Name | Description | *fn* | The visitor function. |=== == Synopsis Declared in `<mrdocs/Dom/Object.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- virtual bool visit(std::function<bool(link:#mrdocs-dom-String[String], link:#mrdocs-dom-Value[Value])>) const override; ---- Invoke the visitor for each key/value pair. == Synopsis Declared in `<mrdocs/Dom/Object.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- virtual bool visit(std::function<bool(link:#mrdocs-dom-String[String], link:#mrdocs-dom-Value[Value])> fn) const = 0; ---- == Description The visitor function must return `true` to continue iteration, or `false` to stop. The visit function returns `true` if the visitor returned `true` for all elements, otherwise `false`. == Return Value `true` if the visitor returned `true` for all elements, otherwise `false`. == Parameters [cols=2] |=== | Name | Description | *fn* | The visitor function. |=== == Synopsis Declared in `<mrdocs/Dom/Function.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- class Function; ---- == Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-dom-Function-2constructor-0b[`Function`] [.small]#[constructor]# | Constructor. | link:#mrdocs-dom-Function-2destructor[`~Function`] [.small]#[destructor]# | Destructor. | link:#mrdocs-dom-Function-operator_assign-0f[`operator=`] | Assignment. | link:#mrdocs-dom-Function-call[`call`] | Invoke the function. | link:#mrdocs-dom-Function-impl[`impl`] | Return the implementation used by this object. | link:#mrdocs-dom-Function-operator_call[`operator()`] | Invoke the function. | link:#mrdocs-dom-Function-swap[`swap`] | Swap two objects. | link:#mrdocs-dom-Function-try_invoke[`try_invoke`] | Invoke the function. | link:#mrdocs-dom-Function-type_key[`type_key`] | Return the type key. |=== == Friends [cols=2] |=== | Name | Description | `link:#mrdocs-dom-newFunction[mrdocs::dom::newFunction]` | Return a diagnostic string. | `link:#mrdocs-dom-swap-0ff[mrdocs::dom::swap]` | Swap two objects. |=== Constructor. == Synopses Declared in `<mrdocs/Dom/Function.hpp>` Constructor. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-dom-Function-2constructor-01[Function]() noexcept; ---- [.small]#link:#mrdocs-dom-Function-2constructor-01[_» more..._]# Constructor. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-dom-Function-2constructor-0e6[Function](link:#mrdocs-dom-Function[Function] const& other) noexcept; ---- [.small]#link:#mrdocs-dom-Function-2constructor-0e6[_» more..._]# Constructor. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-dom-Function-2constructor-0ef[Function](link:#mrdocs-dom-Function[Function]&& other) noexcept; ---- [.small]#link:#mrdocs-dom-Function-2constructor-0ef[_» more..._]# Construct from `F` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class F> requires function_traits_convertible_to_value<std::decay_t<F>> link:#mrdocs-dom-Function-2constructor-06[Function](F const& f); ---- [.small]#link:#mrdocs-dom-Function-2constructor-06[_» more..._]# Constructor. == Synopsis Declared in `<mrdocs/Dom/Function.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- Function() noexcept; ---- == Description A default‐constructed function has this equivalent implementation: [,cpp] ---- Value f() { return nullptr; } ---- Constructor. == Synopsis Declared in `<mrdocs/Dom/Function.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- Function(link:#mrdocs-dom-Function[Function] const& other) noexcept; ---- == Description The newly constructed object acquires shared ownership of the function. == Parameters [cols=2] |=== | Name | Description | *other* | The object to copy construct from |=== Constructor. == Synopsis Declared in `<mrdocs/Dom/Function.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- Function(link:#mrdocs-dom-Function[Function]&& other) noexcept; ---- == Description Ownership of the function is tranferred. The moved‐from object behaves as if default constructed. == Parameters [cols=2] |=== | Name | Description | *other* | The object to move construct from |=== Construct from `F` == Synopsis Declared in `<mrdocs/Dom/Function.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class F> requires function_traits_convertible_to_value<std::decay_t<F>> Function(F const& f); ---- == Parameters [cols=2] |=== | Name | Description | *f* | The object to copy construct from |=== Destructor. == Synopsis Declared in `<mrdocs/Dom/Function.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- ~Function(); ---- Assignment. == Synopses Declared in `<mrdocs/Dom/Function.hpp>` Assignment. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-dom-Function[Function]& link:#mrdocs-dom-Function-operator_assign-04[operator=](link:#mrdocs-dom-Function[Function] const& other) noexcept; ---- [.small]#link:#mrdocs-dom-Function-operator_assign-04[_» more..._]# Assignment. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-dom-Function[Function]& link:#mrdocs-dom-Function-operator_assign-0a[operator=](link:#mrdocs-dom-Function[Function]&& other) noexcept; ---- [.small]#link:#mrdocs-dom-Function-operator_assign-0a[_» more..._]# Assignment. == Synopsis Declared in `<mrdocs/Dom/Function.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-dom-Function[Function]& operator=(link:#mrdocs-dom-Function[Function] const& other) noexcept; ---- == Description This acquires shared ownership of the function. Ownership of the previous function is removed. == Return Value Reference to the current object == Parameters [cols=2] |=== | Name | Description | *other* | The object to copy assign from |=== Assignment. == Synopsis Declared in `<mrdocs/Dom/Function.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-dom-Function[Function]& operator=(link:#mrdocs-dom-Function[Function]&& other) noexcept; ---- == Description Ownership of the function is tranferred, and ownership of the previous function is released. The moved‐from object behaves as if default constructed. == Return Value Reference to the current object == Parameters [cols=2] |=== | Name | Description | *other* | The object to move assign from |=== Invoke the function. == Synopsis Declared in `<mrdocs/Dom/Function.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-Expected-0a[Expected<Value>] call(link:#mrdocs-dom-Array[Array] const& args) const; ---- == Return Value A container holding an error or a value. == Parameters [cols=2] |=== | Name | Description | *args* | An array of values |=== Return the implementation used by this object. == Synopsis Declared in `<mrdocs/Dom/Function.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-dom-Function[impl_type] const& impl() const noexcept; ---- == Return Value the implementation used by this object. Invoke the function. == Synopsis Declared in `<mrdocs/Dom/Function.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class... Args> link:#mrdocs-dom-Value[Value] operator()(Args...&&... args) const; ---- == Return Value The return value of the function. == Parameters [cols=2] |=== | Name | Description | *args* | The arguments to the function. |=== Swap two objects. == Synopsis Declared in `<mrdocs/Dom/Function.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void swap(link:#mrdocs-dom-Function[Function]& other) noexcept; ---- == Parameters [cols=2] |=== | Name | Description | *other* | The other object. |=== Invoke the function. == Synopsis Declared in `<mrdocs/Dom/Function.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class... Args> link:#mrdocs-Expected-0a[Expected<Value>] try_invoke(Args...&&... args) const; ---- == Return Value A container holding an error or a value. == Parameters [cols=2] |=== | Name | Description | *args* | The arguments to the function. |=== Return the type key. == Synopsis Declared in `<mrdocs/Dom/Function.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- char const* type_key() const noexcept; ---- == Return Value the type key. == Synopsis Declared in `<mrdocs/Dom/Function.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- class FunctionImpl; ---- == Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-dom-FunctionImpl-2destructor[`~FunctionImpl`] [.small]#[destructor]# [.small]#[virtual]# | Destructor. | link:#mrdocs-dom-FunctionImpl-call[`call`] [.small]#[virtual]# | Invoke the function. | link:#mrdocs-dom-FunctionImpl-type_key[`type_key`] [.small]#[virtual]# | Return the type key of the implementation. |=== == Derived Classes [cols=2] |=== | Name | Description | link:#mrdocs-dom-DefaultFunctionImpl[`DefaultFunctionImpl`] | | link:#mrdocs-dom-VariadicFunctionImpl[`VariadicFunctionImpl`] | |=== Destructor. == Synopsis Declared in `<mrdocs/Dom/Function.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr virtual ~FunctionImpl() = default; ---- Invoke the function. == Synopsis Declared in `<mrdocs/Dom/Function.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- virtual link:#mrdocs-Expected-0a[Expected<Value>] call(link:#mrdocs-dom-Array[Array] const& args) const = 0; ---- == Return Value A container holding an error or a value. == Parameters [cols=2] |=== | Name | Description | *args* | An array of values |=== Return the type key of the implementation. == Synopsis Declared in `<mrdocs/Dom/Function.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- virtual char const* type_key() const noexcept; ---- == Return Value the type key of the implementation. Lazy array implementation == Synopsis Declared in `<mrdocs/Dom/LazyArray.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- class LazyArrayImpl : public link:#mrdocs-dom-ArrayImpl[ArrayImpl] ---- == Base Classes [cols=2] |=== | Name | Description | `link:#mrdocs-dom-ArrayImpl[ArrayImpl]` | Abstract array interface. |=== == Types [cols=2] |=== | Name | Description | link:#mrdocs-dom-ArrayImpl-size_type[`size_type`] | An unsigned integral type used for indexes and sizes. | link:#mrdocs-dom-ArrayImpl-value_type[`value_type`] | The type of an element. |=== == Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-dom-LazyArrayImpl-03-2constructor-07[`LazyArrayImpl`] [.small]#[constructor]# | Constructors | link:#mrdocs-dom-LazyArrayImpl-03-2destructor[`~LazyArrayImpl`] [.small]#[destructor]# [.small]#[virtual]# | Destructor | link:#mrdocs-dom-ArrayImpl-emplace_back[`emplace_back`] [.small]#[virtual]# | Append an element to the end of the array. | link:#mrdocs-dom-LazyArrayImpl-03-get-0d[`get`] [.small]#[virtual]# | Return the i‐th element, without bounds checking. | link:#mrdocs-dom-ArrayImpl-set[`set`] [.small]#[virtual]# | Set the i‐th element, without bounds checking. | link:#mrdocs-dom-LazyArrayImpl-03-size[`size`] [.small]#[virtual]# | | link:#mrdocs-dom-LazyArrayImpl-03-type_key[`type_key`] [.small]#[virtual]# | Return the type key of the implementation. |=== == Description This array type is used to define a dom::Array whose members are evaluated on demand as they are accessed. Each member can goes through a transform function before being returned as a Value so that all types can be converted to dom::Value. The underlying representation of the array is a range from where the elements are extracted. Elements in this range should be convertible to dom::Value. This class is typically useful for implementing arrays that are expensive and have recursive dependencies, as these recursive dependencies can also be deferred. Unlike a LazyObjectImpl, which contains an overlay object, this implementation is read‐only. The `set` and `emplace_back` methods are not implemented. Constructors == Synopses Declared in `<mrdocs/Dom/LazyArray.hpp>` Construct from `R` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- explicit link:#mrdocs-dom-LazyArrayImpl-03-2constructor-0d[LazyArrayImpl](R const& arr); ---- [.small]#link:#mrdocs-dom-LazyArrayImpl-03-2constructor-0d[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- explicit link:#mrdocs-dom-LazyArrayImpl-03-2constructor-0e[LazyArrayImpl]( R const& arr, Context const& ctx); ---- [.small]#link:#mrdocs-dom-LazyArrayImpl-03-2constructor-0e[_» more..._]# Construct from `R` == Synopsis Declared in `<mrdocs/Dom/LazyArray.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- explicit LazyArrayImpl(R const& arr); ---- == Parameters [cols=2] |=== | Name | Description | *arr* | The object to copy construct from |=== == Synopsis Declared in `<mrdocs/Dom/LazyArray.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- explicit LazyArrayImpl( R const& arr, Context const& ctx); ---- Destructor == Synopsis Declared in `<mrdocs/Dom/LazyArray.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- virtual ~LazyArrayImpl() override = default; ---- Return the i‐th element, without bounds checking. == Synopses Declared in `<mrdocs/Dom/Array.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- virtual link:#mrdocs-dom-Value[dom::Value] link:#mrdocs-dom-LazyArrayImpl-03-get-0e[get](std::size_t i) const override; ---- [.small]#link:#mrdocs-dom-LazyArrayImpl-03-get-0e[_» more..._]# Return the i‐th element, without bounds checking. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- virtual link:#mrdocs-dom-ArrayImpl-value_type[value_type] link:#mrdocs-dom-ArrayImpl-get[get](link:#mrdocs-dom-ArrayImpl-size_type[size_type] i) const = 0; ---- [.small]#link:#mrdocs-dom-ArrayImpl-get[_» more..._]# == Synopsis Declared in `<mrdocs/Dom/LazyArray.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- virtual link:#mrdocs-dom-Value[dom::Value] get(std::size_t i) const override; ---- Return the i‐th element, without bounds checking. == Synopsis Declared in `<mrdocs/Dom/Array.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- virtual link:#mrdocs-dom-ArrayImpl-value_type[value_type] get(link:#mrdocs-dom-ArrayImpl-size_type[size_type] i) const = 0; ---- == Return Value the i‐th element, without bounds checking. == Parameters [cols=2] |=== | Name | Description | *i* | An unsigned integral type used for indexes and sizes. |=== == Synopsis Declared in `<mrdocs/Dom/LazyArray.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- virtual std::size_t size() const noexcept override; ---- Return the type key of the implementation. == Synopsis Declared in `<mrdocs/Dom/LazyArray.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- virtual char const* type_key() const noexcept override; ---- == Return Value the type key of the implementation. Lazy array implementation == Synopsis Declared in `<mrdocs/Dom/LazyArray.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< std::ranges::random_access_range R, class Context = /* implementation-defined */> requires HasValueFrom<std::ranges::range_value_t<R>, Context> || (std::invocable<Context, std::ranges::range_value_t<R>> && HasStandaloneValueFrom<std::invoke_result_t<Context, std::ranges::range_value_t<R>>>) class LazyArrayImpl : public link:#mrdocs-dom-ArrayImpl[ArrayImpl] ---- == Base Classes [cols=2] |=== | Name | Description | `link:#mrdocs-dom-ArrayImpl[ArrayImpl]` | Abstract array interface. |=== == Types [cols=2] |=== | Name | Description | link:#mrdocs-dom-ArrayImpl-size_type[`size_type`] | An unsigned integral type used for indexes and sizes. | link:#mrdocs-dom-ArrayImpl-value_type[`value_type`] | The type of an element. |=== == Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-dom-ArrayImpl-emplace_back[`emplace_back`] [.small]#[virtual]# | Append an element to the end of the array. | link:#mrdocs-dom-ArrayImpl-get[`get`] [.small]#[virtual]# | Return the i‐th element, without bounds checking. | link:#mrdocs-dom-ArrayImpl-set[`set`] [.small]#[virtual]# | Set the i‐th element, without bounds checking. | link:#mrdocs-dom-ArrayImpl-size[`size`] [.small]#[virtual]# | Return the number of elements in the array. | link:#mrdocs-dom-ArrayImpl-type_key[`type_key`] [.small]#[virtual]# | Return the type key of the implementation. |=== == Description This array type is used to define a dom::Array whose members are evaluated on demand as they are accessed. Each member can goes through a transform function before being returned as a Value so that all types can be converted to dom::Value. The underlying representation of the array is a range from where the elements are extracted. Elements in this range should be convertible to dom::Value. This class is typically useful for implementing arrays that are expensive and have recursive dependencies, as these recursive dependencies can also be deferred. Unlike a LazyObjectImpl, which contains an overlay object, this implementation is read‐only. The `set` and `emplace_back` methods are not implemented. Lazy object implementation. == Synopsis Declared in `<mrdocs/Dom/LazyObject.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- class LazyObjectImpl : public link:#mrdocs-dom-ObjectImpl[ObjectImpl] ---- == Base Classes [cols=2] |=== | Name | Description | `link:#mrdocs-dom-ObjectImpl[ObjectImpl]` | Abstract object interface. |=== == Types [cols=2] |=== | Name | Description | link:#mrdocs-dom-ObjectImpl-reference[`reference`] | A reference to an element. | link:#mrdocs-dom-ObjectImpl-storage_type[`storage_type`] | The type of storage used by the default implementation. |=== == Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-dom-LazyObjectImpl-04-2constructor-0d[`LazyObjectImpl`] [.small]#[constructor]# | Constructors | link:#mrdocs-dom-LazyObjectImpl-04-2destructor[`~LazyObjectImpl`] [.small]#[destructor]# [.small]#[virtual]# | Destructor | link:#mrdocs-dom-LazyObjectImpl-04-exists[`exists`] [.small]#[virtual]# | Determine if a key exists. | link:#mrdocs-dom-LazyObjectImpl-04-get[`get`] [.small]#[virtual]# | Return the value for the specified key, or null. | link:#mrdocs-dom-LazyObjectImpl-04-set[`set`] [.small]#[virtual]# | Insert or set the given key/value pair. | link:#mrdocs-dom-LazyObjectImpl-04-size[`size`] [.small]#[virtual]# | Return the number of properties in the object. | link:#mrdocs-dom-LazyObjectImpl-04-type_key[`type_key`] [.small]#[virtual]# | Return the type key of the implementation. | link:#mrdocs-dom-LazyObjectImpl-04-visit[`visit`] [.small]#[virtual]# | Invoke the visitor for each key/value pair. |=== == Description This interface is used to define objects whose members are evaluated on demand as they are accessed. When any of the object properties are accessed, the object link:#mrdocs-dom-Value[`dom::Value`] is constructed. In practice, the object never takes any memory besides the pointer to the underlying object. The keys and values in the underlying object should be mapped using `tag_invoke`. This class is typically useful for implementing objects that are expensive and have recursive dependencies, as these recursive dependencies can also be deferred. A context can also be stored in the object as a form to customize how the object is mapped. This context should be copyable and is propagated to other objects that support an overload with the same context. The context can be simply a tag identifying how to map the object, or a more complex object carrying data to customize the mapping process. In the latter case, because the context should be a copyable, the user might want to use a type with reference semantics. Constructors == Synopses Declared in `<mrdocs/Dom/LazyObject.hpp>` Construct from `T` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- explicit link:#mrdocs-dom-LazyObjectImpl-04-2constructor-0f[LazyObjectImpl](T const& obj) requires HasLazyObjectMapWithoutContext<T>; ---- [.small]#link:#mrdocs-dom-LazyObjectImpl-04-2constructor-0f[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- explicit link:#mrdocs-dom-LazyObjectImpl-04-2constructor-09[LazyObjectImpl]( T const& obj, Context const& context) requires HasLazyObjectMapWithContext<T, Context>; ---- [.small]#link:#mrdocs-dom-LazyObjectImpl-04-2constructor-09[_» more..._]# Construct from `T` == Synopsis Declared in `<mrdocs/Dom/LazyObject.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- explicit LazyObjectImpl(T const& obj) requires HasLazyObjectMapWithoutContext<T>; ---- == Parameters [cols=2] |=== | Name | Description | *obj* | The object to copy construct from |=== == Synopsis Declared in `<mrdocs/Dom/LazyObject.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- explicit LazyObjectImpl( T const& obj, Context const& context) requires HasLazyObjectMapWithContext<T, Context>; ---- Destructor == Synopsis Declared in `<mrdocs/Dom/LazyObject.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- virtual ~LazyObjectImpl() override = default; ---- Determine if a key exists. == Synopsis Declared in `<mrdocs/Dom/LazyObject.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- virtual bool exists(std::string_view key) const override; ---- == Return Value `true` if the key exists, otherwise `false`. == Parameters [cols=2] |=== | Name | Description | *key* | The key to check for existence. |=== Return the value for the specified key, or null. == Synopsis Declared in `<mrdocs/Dom/LazyObject.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- virtual link:#mrdocs-dom-Value[Value] get(std::string_view key) const override; ---- == Return Value The value for the specified key, or null if the key does not exist. == Parameters [cols=2] |=== | Name | Description | *key* | The key. |=== Insert or set the given key/value pair. == Synopsis Declared in `<mrdocs/Dom/LazyObject.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- virtual void set( link:#mrdocs-dom-String[String] key, link:#mrdocs-dom-Value[Value] value) override; ---- == Parameters [cols=2] |=== | Name | Description | *key* | The key. | *value* | The value to set. |=== Return the number of properties in the object. == Synopsis Declared in `<mrdocs/Dom/LazyObject.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- virtual std::size_t size() const override; ---- == Return Value the number of properties in the object. Return the type key of the implementation. == Synopsis Declared in `<mrdocs/Dom/LazyObject.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- virtual char const* type_key() const noexcept override; ---- == Return Value the type key of the implementation. Invoke the visitor for each key/value pair. == Synopsis Declared in `<mrdocs/Dom/LazyObject.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- virtual bool visit(std::function<bool(link:#mrdocs-dom-String[String], link:#mrdocs-dom-Value[Value])> fn) const override; ---- == Description The visitor function must return `true` to continue iteration, or `false` to stop. The visit function returns `true` if the visitor returned `true` for all elements, otherwise `false`. == Return Value `true` if the visitor returned `true` for all elements, otherwise `false`. == Parameters [cols=2] |=== | Name | Description | *fn* | The visitor function. |=== Lazy object implementation. == Synopsis Declared in `<mrdocs/Dom/LazyObject.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< class T, class Context = /* implementation-defined */> requires HasLazyObjectMap<T, Context> class LazyObjectImpl : public link:#mrdocs-dom-ObjectImpl[ObjectImpl] ---- == Base Classes [cols=2] |=== | Name | Description | `link:#mrdocs-dom-ObjectImpl[ObjectImpl]` | Abstract object interface. |=== == Types [cols=2] |=== | Name | Description | link:#mrdocs-dom-ObjectImpl-reference[`reference`] | A reference to an element. | link:#mrdocs-dom-ObjectImpl-storage_type[`storage_type`] | The type of storage used by the default implementation. |=== == Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-dom-ObjectImpl-exists[`exists`] [.small]#[virtual]# | Determine if a key exists. | link:#mrdocs-dom-ObjectImpl-get[`get`] [.small]#[virtual]# | Return the value for the specified key, or null. | link:#mrdocs-dom-ObjectImpl-set[`set`] [.small]#[virtual]# | Insert or set the given key/value pair. | link:#mrdocs-dom-ObjectImpl-size[`size`] [.small]#[virtual]# | Return the number of properties in the object. | link:#mrdocs-dom-ObjectImpl-type_key[`type_key`] [.small]#[virtual]# | Return the type key of the implementation. | link:#mrdocs-dom-ObjectImpl-visit[`visit`] [.small]#[virtual]# | Invoke the visitor for each key/value pair. |=== == Description This interface is used to define objects whose members are evaluated on demand as they are accessed. When any of the object properties are accessed, the object link:#mrdocs-dom-Value[`dom::Value`] is constructed. In practice, the object never takes any memory besides the pointer to the underlying object. The keys and values in the underlying object should be mapped using `tag_invoke`. This class is typically useful for implementing objects that are expensive and have recursive dependencies, as these recursive dependencies can also be deferred. A context can also be stored in the object as a form to customize how the object is mapped. This context should be copyable and is propagated to other objects that support an overload with the same context. The context can be simply a tag identifying how to map the object, or a more complex object carrying data to customize the mapping process. In the latter case, because the context should be a copyable, the user might want to use a type with reference semantics. Customization point tag. == Synopsis Declared in `<mrdocs/Dom/LazyObject.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- struct LazyObjectMapTag; ---- == Non-Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-tag_invoke-012[`::mrdocs::tag_invoke`] | Map a EnumConstantSymbol to a dom::Object. | link:#mrdocs-tag_invoke-013a[`::mrdocs::tag_invoke`] | Map a FriendInfo to a dom::Object. | link:#mrdocs-tag_invoke-013b[`::mrdocs::tag_invoke`] | Map a NamespaceAliasSymbol to a dom::Object. | link:#mrdocs-tag_invoke-024[`::mrdocs::tag_invoke`] | Map the link:#mrdocs-DocComment[`DocComment`] to a link:#mrdocs-dom-Object[`dom::Object`]. | link:#mrdocs-tag_invoke-033[`::mrdocs::tag_invoke`] | Map the Polymorphic Symbol to a link:#mrdocs-dom-Object[`dom::Object`]. | link:#mrdocs-tag_invoke-048[`::mrdocs::tag_invoke`] | Map a RecordTranche to a dom::Object. | link:#mrdocs-tag_invoke-056[`::mrdocs::tag_invoke`] | Map a OverloadsSymbol to a dom::Object. | link:#mrdocs-tag_invoke-068[`::mrdocs::tag_invoke`] | Map a TypedefSymbol to a dom::Object. | link:#mrdocs-tag_invoke-088[`::mrdocs::tag_invoke`] | Map the Symbol to a link:#mrdocs-dom-Object[`dom::Object`]. | link:#mrdocs-tag_invoke-091f[`::mrdocs::tag_invoke`] | Map a NamespaceTranche to a dom::Object. | link:#mrdocs-tag_invoke-0a2[`::mrdocs::tag_invoke`] | Map a ConceptSymbol to a dom::Object. | link:#mrdocs-tag_invoke-0b4[`::mrdocs::tag_invoke`] | Map a EnumSymbol to a dom::Object. | link:#mrdocs-tag_invoke-0bd[`::mrdocs::tag_invoke`] | Map a VariableSymbol to a dom::Object. | link:#mrdocs-tag_invoke-0d7[`::mrdocs::tag_invoke`] | Map a UsingSymbol to a dom::Object. | link:#mrdocs-tag_invoke-0db[`::mrdocs::tag_invoke`] | Map a RecordSymbol to a dom::Object. | link:#mrdocs-tag_invoke-0e0[`::mrdocs::tag_invoke`] | Map a FunctionSymbol to a dom::Object. | link:#mrdocs-tag_invoke-0e1[`::mrdocs::tag_invoke`] | Map a GuideSymbol to a dom::Object. | link:#mrdocs-tag_invoke-0e5[`::mrdocs::tag_invoke`] | Map a NamespaceSymbol to a dom::Object. | link:#mrdocs-tag_invoke-0ec[`::mrdocs::tag_invoke`] | Map a RecordInterface to a dom::Object. | link:#mrdocs-doc-tag_invoke-0006[`::mrdocs::doc::tag_invoke`] | Map the `Highlight` to a link:#mrdocs-dom-Object[`dom::Object`]. | link:#mrdocs-doc-tag_invoke-00a[`::mrdocs::doc::tag_invoke`] | Map the `Code` to a link:#mrdocs-dom-Object[`dom::Object`]. | link:#mrdocs-doc-tag_invoke-00b[`::mrdocs::doc::tag_invoke`] | Map the `Strong` to a link:#mrdocs-dom-Object[`dom::Object`]. | link:#mrdocs-doc-tag_invoke-00c[`::mrdocs::doc::tag_invoke`] | Map the link:#mrdocs-doc-TableCell[`TableCell`] to a link:#mrdocs-dom-Object[`dom::Object`]. | link:#mrdocs-doc-tag_invoke-018[`::mrdocs::doc::tag_invoke`] | Map the `Precondition` to a link:#mrdocs-dom-Object[`dom::Object`]. | link:#mrdocs-doc-tag_invoke-01a[`::mrdocs::doc::tag_invoke`] | Map the `Brief` to a link:#mrdocs-dom-Object[`dom::Object`]. | link:#mrdocs-doc-tag_invoke-029[`::mrdocs::doc::tag_invoke`] | Map the link:#mrdocs-doc-Inline[`Inline`] to a link:#mrdocs-dom-Object[`dom::Object`]. | link:#mrdocs-doc-tag_invoke-02b[`::mrdocs::doc::tag_invoke`] | Map the `Emph` to a link:#mrdocs-dom-Object[`dom::Object`]. | link:#mrdocs-doc-tag_invoke-02f8[`::mrdocs::doc::tag_invoke`] | Map the `LineBreak` to a link:#mrdocs-dom-Object[`dom::Object`]. | link:#mrdocs-doc-tag_invoke-0334[`::mrdocs::doc::tag_invoke`] | Map the `See` to a link:#mrdocs-dom-Object[`dom::Object`]. | link:#mrdocs-doc-tag_invoke-033f[`::mrdocs::doc::tag_invoke`] | Map the `Text` to a link:#mrdocs-dom-Object[`dom::Object`]. | link:#mrdocs-doc-tag_invoke-034[`::mrdocs::doc::tag_invoke`] | Map the link:#mrdocs-doc-QuoteBlock[`QuoteBlock`] to a link:#mrdocs-dom-Object[`dom::Object`]. | link:#mrdocs-doc-tag_invoke-036[`::mrdocs::doc::tag_invoke`] | Map the `SoftBreak` to a link:#mrdocs-dom-Object[`dom::Object`]. | link:#mrdocs-doc-tag_invoke-0370[`::mrdocs::doc::tag_invoke`] | Map the `Reference` to a link:#mrdocs-dom-Object[`dom::Object`]. | link:#mrdocs-doc-tag_invoke-03c5[`::mrdocs::doc::tag_invoke`] | Map the link:#mrdocs-doc-ListItem[`ListItem`] to a link:#mrdocs-dom-Object[`dom::Object`]. | link:#mrdocs-doc-tag_invoke-040[`::mrdocs::doc::tag_invoke`] | Map the `FootnoteReference` to a link:#mrdocs-dom-Object[`dom::Object`]. | link:#mrdocs-doc-tag_invoke-0546[`::mrdocs::doc::tag_invoke`] | Map the `FootnoteDefinition` to a link:#mrdocs-dom-Object[`dom::Object`]. | link:#mrdocs-doc-tag_invoke-055[`::mrdocs::doc::tag_invoke`] | Map the `Paragraph` to a link:#mrdocs-dom-Object[`dom::Object`]. | link:#mrdocs-doc-tag_invoke-0572[`::mrdocs::doc::tag_invoke`] | Map the link:#mrdocs-doc-Block[`Block`] to a link:#mrdocs-dom-Object[`dom::Object`]. | link:#mrdocs-doc-tag_invoke-057f[`::mrdocs::doc::tag_invoke`] | Map the `Image` to a link:#mrdocs-dom-Object[`dom::Object`]. | link:#mrdocs-doc-tag_invoke-05a[`::mrdocs::doc::tag_invoke`] | Map the `Throws` to a link:#mrdocs-dom-Object[`dom::Object`]. | link:#mrdocs-doc-tag_invoke-05e[`::mrdocs::doc::tag_invoke`] | Map the `Postcondition` to a link:#mrdocs-dom-Object[`dom::Object`]. | link:#mrdocs-doc-tag_invoke-061[`::mrdocs::doc::tag_invoke`] | Map the `Strikethrough` to a link:#mrdocs-dom-Object[`dom::Object`]. | link:#mrdocs-doc-tag_invoke-076[`::mrdocs::doc::tag_invoke`] | Map the link:#mrdocs-Param[`Param`] to a link:#mrdocs-dom-Object[`dom::Object`]. | link:#mrdocs-doc-tag_invoke-081[`::mrdocs::doc::tag_invoke`] | Map the `Brief` to a link:#mrdocs-dom-Object[`dom::Object`]. | link:#mrdocs-doc-tag_invoke-0855d[`::mrdocs::doc::tag_invoke`] | Map the link:#mrdocs-doc-DefinitionListItem[`DefinitionListItem`] to a link:#mrdocs-dom-Object[`dom::Object`]. | link:#mrdocs-doc-tag_invoke-089[`::mrdocs::doc::tag_invoke`] | Map the `Admonition` to a link:#mrdocs-dom-Object[`dom::Object`]. | link:#mrdocs-doc-tag_invoke-08b[`::mrdocs::doc::tag_invoke`] | Map the link:#mrdocs-TParam[`TParam`] to a link:#mrdocs-dom-Object[`dom::Object`]. | link:#mrdocs-doc-tag_invoke-08e[`::mrdocs::doc::tag_invoke`] | Map the `Math` to a link:#mrdocs-dom-Object[`dom::Object`]. | link:#mrdocs-doc-tag_invoke-090[`::mrdocs::doc::tag_invoke`] | Map the `Brief` to a link:#mrdocs-dom-Object[`dom::Object`]. | link:#mrdocs-doc-tag_invoke-0957[`::mrdocs::doc::tag_invoke`] | Map the `UnorderedList` to a link:#mrdocs-dom-Object[`dom::Object`]. | link:#mrdocs-doc-tag_invoke-0ada[`::mrdocs::doc::tag_invoke`] | Map the `CopyDetails` to a link:#mrdocs-dom-Object[`dom::Object`]. | link:#mrdocs-doc-tag_invoke-0b7[`::mrdocs::doc::tag_invoke`] | Map the `Heading` to a link:#mrdocs-dom-Object[`dom::Object`]. | link:#mrdocs-doc-tag_invoke-0b9[`::mrdocs::doc::tag_invoke`] | Map the link:#mrdocs-doc-TableRow[`TableRow`] to a link:#mrdocs-dom-Object[`dom::Object`]. | link:#mrdocs-doc-tag_invoke-0ba[`::mrdocs::doc::tag_invoke`] | Map the `Link` to a link:#mrdocs-dom-Object[`dom::Object`]. | link:#mrdocs-doc-tag_invoke-0cc[`::mrdocs::doc::tag_invoke`] | Map the `Returns` to a link:#mrdocs-dom-Object[`dom::Object`]. | link:#mrdocs-doc-tag_invoke-0cf6[`::mrdocs::doc::tag_invoke`] | Map the `Superscript` to a link:#mrdocs-dom-Object[`dom::Object`]. | link:#mrdocs-doc-tag_invoke-0d0[`::mrdocs::doc::tag_invoke`] | Map the Polymorphic Block to a link:#mrdocs-dom-Object[`dom::Object`]. | link:#mrdocs-doc-tag_invoke-0d84[`::mrdocs::doc::tag_invoke`] | Map the `UnorderedTable` to a link:#mrdocs-dom-Object[`dom::Object`]. | link:#mrdocs-doc-tag_invoke-0e4[`::mrdocs::doc::tag_invoke`] | Map the `Subscript` to a link:#mrdocs-dom-Object[`dom::Object`]. | link:#mrdocs-doc-tag_invoke-0e5[`::mrdocs::doc::tag_invoke`] | Map the `Code` to a link:#mrdocs-dom-Object[`dom::Object`]. |=== == Description This tag type is used by the class link:#mrdocs-dom-LazyObjectImpl-04[`dom::LazyObjectImpl`] to select overloads of `tag_invoke`. [NOTE] ==== This type is empty; it has no members. ==== == See Also link:#mrdocs-dom-LazyObjectImpl-04[`dom::LazyObjectImpl`] http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1895r0.pdf[ tag_invoke: A general pattern for supporting customisable functions] A container of key and value pairs. == Synopsis Declared in `<mrdocs/Dom/Object.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- class Object final ---- == Types [cols=2] |=== | Name | Description | link:#mrdocs-dom-Object-value_type[`value_type`] | The type of an element. | link:#mrdocs-dom-Object-const_pointer[`const_pointer`] | A pointer to an element. | link:#mrdocs-dom-Object-const_reference[`const_reference`] | A reference to an element. | link:#mrdocs-dom-Object-difference_type[`difference_type`] | A signed integral type. | link:#mrdocs-dom-Object-impl_type[`impl_type`] | The implementation type. | link:#mrdocs-dom-Object-pointer[`pointer`] | A pointer to an element. | link:#mrdocs-dom-Object-reference[`reference`] | A reference to an element. | link:#mrdocs-dom-Object-size_type[`size_type`] | An unsigned integral type used for indexes and sizes. | link:#mrdocs-dom-Object-storage_type[`storage_type`] | The type of storage used by the default implementation. |=== == Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-dom-Object-2constructor-03b[`Object`] [.small]#[constructor]# | Constructor. | link:#mrdocs-dom-Object-2destructor[`~Object`] [.small]#[destructor]# | Destructor. | link:#mrdocs-dom-Object-operator_assign-0a[`operator=`] | Assignment. | link:#mrdocs-dom-Object-at[`at`] | Return the element at a given index. | link:#mrdocs-dom-Object-empty[`empty`] | Return true if the container is empty. | link:#mrdocs-dom-Object-exists[`exists`] | Return true if a key exists. | link:#mrdocs-dom-Object-get[`get`] | Return the element with the specified key | link:#mrdocs-dom-Object-impl[`impl`] | Return the implementation used by this object. | link:#mrdocs-dom-Object-set[`set`] | Set or replace the value for a given key. | link:#mrdocs-dom-Object-size[`size`] | Return the number of elements. | link:#mrdocs-dom-Object-swap[`swap`] | Swap two objects. | link:#mrdocs-dom-Object-type_key[`type_key`] | Return the type key. | link:#mrdocs-dom-Object-visit-0f[`visit`] | Invoke the visitor for each key/value pair |=== == Friends [cols=2] |=== | Name | Description | `link:#mrdocs-dom-toString-018[mrdocs::dom::toString]` | Return a diagnostic string. | `link:#mrdocs-dom-operator_3way-075[mrdocs::dom::operator<=>]` | Compare two objects for precedence. | `link:#mrdocs-dom-operator_eq-01[mrdocs::dom::operator==]` | Compare two objects for equality. | `link:#mrdocs-dom-swap-08[mrdocs::dom::swap]` | Swap two objects. |=== == Non-Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-dom-LazyObject-0d5[`LazyObject`] | Return a new dom::Object based on a transformed lazy array implementation. | link:#mrdocs-dom-LazyObject-0dd[`LazyObject`] | Return a new dom::Object based on a lazy object implementation. | link:#mrdocs-dom-newObject[`newObject`] | Return a new object using a custom implementation. | link:#mrdocs-createFrame-04[`::mrdocs::createFrame`] | Create child data objects. |=== == Description Objects are a collection of properties, which are equivalent to key‐value pairs. Property values can be any type, including other Objects, allowing for the creation of arbitrarily complex data structures. An Object is a non‐primitive (or reference) type, meaning that they are not copied when assigned or passed as a parameter. Instead, the reference is copied, and the original value is shared. These reference types are modeled after JavaScript "Objects". All non‐primitive types (Object types) are derived from Object in JavaScript. This means types such as Array and Function represent a relevant selection of built‐in types that would derive from Object in JavaScript. == Properties [,cpp] ---- Objects are a collection of properties, which are equivalent to key-value pairs. There are two kinds of properties: @li Data properties: Associates a key with a value. @li Accessor properties: Associates a key with one of two accessor functions (`get` and `set`), which are used to retrieve or set the value. The internal representation of objects can determine how properties are stored and the type of properties being represented. Properties can also be enumerable or non-enumerable. An enumerable property is one that is iterated by the `visit` function. Non-enumerable properties can only be accessed by name with the `get` and `set` functions. ---- A pointer to an element. == Synopsis Declared in `<mrdocs/Dom/Object.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- using const_pointer = link:#mrdocs-dom-Object-pointer[pointer]; ---- A reference to an element. == Synopsis Declared in `<mrdocs/Dom/Object.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- using const_reference = link:#mrdocs-dom-Object-reference[reference]; ---- == Description This is a read‐only reference to an element. A signed integral type. == Synopsis Declared in `<mrdocs/Dom/Object.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- using difference_type = std::ptrdiff_t; ---- The implementation type. == Synopsis Declared in `<mrdocs/Dom/Object.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- using impl_type = std::shared_ptr<ObjectImpl>; ---- A pointer to an element. == Synopsis Declared in `<mrdocs/Dom/Object.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- using pointer = link:#mrdocs-dom-Object-value_type[value_type] const*; ---- A reference to an element. == Synopsis Declared in `<mrdocs/Dom/Object.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- using reference = link:#mrdocs-dom-Object-value_type[value_type]; ---- == Description This is a read‐only reference to an element. An unsigned integral type used for indexes and sizes. == Synopsis Declared in `<mrdocs/Dom/Object.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- using size_type = std::size_t; ---- The type of storage used by the default implementation. == Synopsis Declared in `<mrdocs/Dom/Object.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- using storage_type = std::vector<value_type>; ---- The type of an element. == Synopsis Declared in `<mrdocs/Dom/Object.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- struct value_type; ---- == Description Elements of this container are key and value pairs where the key is a string. This type is a copyable, movable value type. Constructor. == Synopses Declared in `<mrdocs/Dom/Object.hpp>` Constructor. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-dom-Object-2constructor-02[Object](); ---- [.small]#link:#mrdocs-dom-Object-2constructor-02[_» more..._]# Constructor. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-dom-Object-2constructor-03a[Object](link:#mrdocs-dom-Object[Object] const& other) noexcept; ---- [.small]#link:#mrdocs-dom-Object-2constructor-03a[_» more..._]# Constructor. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-dom-Object-2constructor-0e[Object](link:#mrdocs-dom-Object[Object]&& other); ---- [.small]#link:#mrdocs-dom-Object-2constructor-0e[_» more..._]# Constructor. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- explicit link:#mrdocs-dom-Object-2constructor-00[Object](link:#mrdocs-dom-Object-impl_type[impl_type] impl) noexcept; ---- [.small]#link:#mrdocs-dom-Object-2constructor-00[_» more..._]# Constructor. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- explicit link:#mrdocs-dom-Object-2constructor-0f[Object](link:#mrdocs-dom-Object-storage_type[storage_type] list); ---- [.small]#link:#mrdocs-dom-Object-2constructor-0f[_» more..._]# == Parameters [cols=2] |=== | Name | Description | *list* | The initial list of values. |=== Constructor. == Synopsis Declared in `<mrdocs/Dom/Object.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- Object(); ---- == Description Default‐constructed objects refer to a new, empty container which is distinct from every other empty container. Constructor. == Synopsis Declared in `<mrdocs/Dom/Object.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- Object(link:#mrdocs-dom-Object[Object] const& other) noexcept; ---- == Description The newly constructed object will contain copies of the scalars in other, and references to its structured data. == Parameters [cols=2] |=== | Name | Description | *other* | The object to copy construct from |=== Constructor. == Synopsis Declared in `<mrdocs/Dom/Object.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- Object(link:#mrdocs-dom-Object[Object]&& other); ---- == Description Ownership of the contents is transferred to the new object. The moved‐from object will behave as if default‐constructed. == Parameters [cols=2] |=== | Name | Description | *other* | The object to move construct from |=== Constructor. == Synopsis Declared in `<mrdocs/Dom/Object.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- explicit Object(link:#mrdocs-dom-Object-impl_type[impl_type] impl) noexcept; ---- == Description This constructs an object from an existing implementation, with shared ownership. The pointer cannot not be null. == Parameters [cols=2] |=== | Name | Description | *impl* | The object to construct from |=== Constructor. == Synopsis Declared in `<mrdocs/Dom/Object.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- explicit Object(link:#mrdocs-dom-Object-storage_type[storage_type] list); ---- == Description Upon construction, the object will retain ownership of a shallow copy of the specified list. In particular, dynamic objects will be acquired with shared ownership. == Parameters [cols=2] |=== | Name | Description | *list* | The initial list of values. |=== Destructor. == Synopsis Declared in `<mrdocs/Dom/Object.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr ~Object() = default; ---- Assignment. == Synopses Declared in `<mrdocs/Dom/Object.hpp>` Assignment. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-dom-Object[Object]& link:#mrdocs-dom-Object-operator_assign-07[operator=](link:#mrdocs-dom-Object[Object] const& other) noexcept; ---- [.small]#link:#mrdocs-dom-Object-operator_assign-07[_» more..._]# Assignment. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-dom-Object[Object]& link:#mrdocs-dom-Object-operator_assign-09[operator=](link:#mrdocs-dom-Object[Object]&& other); ---- [.small]#link:#mrdocs-dom-Object-operator_assign-09[_» more..._]# Assignment. == Synopsis Declared in `<mrdocs/Dom/Object.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-dom-Object[Object]& operator=(link:#mrdocs-dom-Object[Object] const& other) noexcept; ---- == Description Shared ownership and copies of elements in others are acquired by this. Ownership of the previous contents is released. == Return Value Reference to the current object == Parameters [cols=2] |=== | Name | Description | *other* | The object to copy assign from |=== Assignment. == Synopsis Declared in `<mrdocs/Dom/Object.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-dom-Object[Object]& operator=(link:#mrdocs-dom-Object[Object]&& other); ---- == Description Ownership of the object is transferred to this, and ownership of the previous contents is released. The moved‐from object behaves as if default constructed. == Return Value Reference to the current object == Parameters [cols=2] |=== | Name | Description | *other* | The object to move assign from |=== Return the element at a given index. == Synopsis Declared in `<mrdocs/Dom/Object.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-dom-Value[Value] at(std::string_view i) const; ---- == Return Value The value at the specified index, or null if the index is out of range. == Parameters [cols=2] |=== | Name | Description | *i* | The index. |=== Return true if the container is empty. == Synopsis Declared in `<mrdocs/Dom/Object.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool empty() const; ---- == Return Value true if the container is empty. Return true if a key exists. == Synopsis Declared in `<mrdocs/Dom/Object.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool exists(std::string_view key) const; ---- == Return Value `true` if the key exists, otherwise `false`. == Parameters [cols=2] |=== | Name | Description | *key* | The key to check for existence. |=== Return the element with the specified key == Synopsis Declared in `<mrdocs/Dom/Object.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-dom-Value[Value] get(std::string_view key) const; ---- == Return Value The value for the specified key, or null if the key does not exist. == Parameters [cols=2] |=== | Name | Description | *key* | The key. |=== Return the implementation used by this object. == Synopsis Declared in `<mrdocs/Dom/Object.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-dom-Object-impl_type[impl_type] const& impl() const noexcept; ---- == Return Value the implementation used by this object. Set or replace the value for a given key. == Synopsis Declared in `<mrdocs/Dom/Object.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void set( link:#mrdocs-dom-String[String] key, link:#mrdocs-dom-Value[Value] value) const; ---- == Description This function inserts a new key or changes the value for the existing key if it is already present. == Parameters [cols=2] |=== | Name | Description | *key* | The key. | *value* | The value to set. |=== Return the number of elements. == Synopsis Declared in `<mrdocs/Dom/Object.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::size_t size() const; ---- == Return Value the number of elements. Swap two objects. == Synopsis Declared in `<mrdocs/Dom/Object.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void swap(link:#mrdocs-dom-Object[Object]& other) noexcept; ---- == Parameters [cols=2] |=== | Name | Description | *other* | A container of key and value pairs. |=== Return the type key. == Synopsis Declared in `<mrdocs/Dom/Object.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- char const* type_key() const noexcept; ---- == Return Value the type key. Invoke the visitor for each key/value pair == Synopses Declared in `<mrdocs/Dom/Object.hpp>` Invoke the visitor for each key/value pair [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class F> requires std::invocable<F, String, Value> && std::same_as<std::invoke_result_t<F, String, Value>, bool> bool link:#mrdocs-dom-Object-visit-08[visit](F&& fn) const; ---- [.small]#link:#mrdocs-dom-Object-visit-08[_» more..._]# Invoke the visitor for each key/value pair [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class F> requires std::invocable<F, String, Value> && mrdocs::detail::isExpected<std::invoke_result_t<F, String, Value>> link:#mrdocs-Expected-0a[Expected<void, std::invoke_result_t<F, String, Value>::error_type>] link:#mrdocs-dom-Object-visit-09[visit](F&& fn) const; ---- [.small]#link:#mrdocs-dom-Object-visit-09[_» more..._]# Invoke the visitor for each key/value pair [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class F> requires std::invocable<F, String, Value> && std::same_as<std::invoke_result_t<F, String, Value>, void> void link:#mrdocs-dom-Object-visit-06[visit](F&& fn) const; ---- [.small]#link:#mrdocs-dom-Object-visit-06[_» more..._]# == Return Value * `true` if the visitor returned `true` for all elements, otherwise `false`. * `void` if the visitor returned did not return an error for any element, otherwise `E`. == Parameters [cols=2] |=== | Name | Description | *fn* | The visitor function. |=== Invoke the visitor for each key/value pair == Synopsis Declared in `<mrdocs/Dom/Object.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class F> requires std::invocable<F, String, Value> && std::same_as<std::invoke_result_t<F, String, Value>, bool> bool visit(F&& fn) const; ---- == Description The visitor function must return `true` to continue iteration, or `false` to stop iteration early. == Return Value `true` if the visitor returned `true` for all elements, otherwise `false`. == Parameters [cols=2] |=== | Name | Description | *fn* | The visitor function. |=== Invoke the visitor for each key/value pair == Synopsis Declared in `<mrdocs/Dom/Object.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class F> requires std::invocable<F, String, Value> && mrdocs::detail::isExpected<std::invoke_result_t<F, String, Value>> link:#mrdocs-Expected-0a[Expected<void, std::invoke_result_t<F, String, Value>::error_type>] visit(F&& fn) const; ---- == Description The visitor function must return `void` to continue iteration, or an `Unexpected<E>` to stop iteration early. If an error is returned, the iteration stops and the error is returned from this function. == Return Value * `void` if the visitor returned did not return an error for any element, otherwise `E`. * `void` if the visitor returned did not return an error for any element, otherwise `E`. == Parameters [cols=2] |=== | Name | Description | *fn* | The visitor function. |=== Invoke the visitor for each key/value pair == Synopsis Declared in `<mrdocs/Dom/Object.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class F> requires std::invocable<F, String, Value> && std::same_as<std::invoke_result_t<F, String, Value>, void> void visit(F&& fn) const; ---- == Parameters [cols=2] |=== | Name | Description | *fn* | The visitor function. |=== Abstract object interface. == Synopsis Declared in `<mrdocs/Dom/Object.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- class ObjectImpl; ---- == Types [cols=2] |=== | Name | Description | link:#mrdocs-dom-ObjectImpl-reference[`reference`] | A reference to an element. | link:#mrdocs-dom-ObjectImpl-storage_type[`storage_type`] | The type of storage used by the default implementation. |=== == Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-dom-ObjectImpl-2destructor[`~ObjectImpl`] [.small]#[destructor]# [.small]#[virtual]# | Destructor. | link:#mrdocs-dom-ObjectImpl-exists[`exists`] [.small]#[virtual]# | Determine if a key exists. | link:#mrdocs-dom-ObjectImpl-get[`get`] [.small]#[virtual]# | Return the value for the specified key, or null. | link:#mrdocs-dom-ObjectImpl-set[`set`] [.small]#[virtual]# | Insert or set the given key/value pair. | link:#mrdocs-dom-ObjectImpl-size[`size`] [.small]#[virtual]# | Return the number of properties in the object. | link:#mrdocs-dom-ObjectImpl-type_key[`type_key`] [.small]#[virtual]# | Return the type key of the implementation. | link:#mrdocs-dom-ObjectImpl-visit[`visit`] [.small]#[virtual]# | Invoke the visitor for each key/value pair. |=== == Derived Classes [cols=2] |=== | Name | Description | link:#mrdocs-dom-DefaultObjectImpl[`DefaultObjectImpl`] | The default Object implementation. | link:#mrdocs-dom-LazyObjectImpl-04[`LazyObjectImpl`] | Lazy object implementation. | link:#mrdocs-dom-LazyObjectImpl-09[`LazyObjectImpl`] | Lazy object implementation. |=== == Description This interface is used by Object types. A reference to an element. == Synopsis Declared in `<mrdocs/Dom/Object.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- using reference = link:#mrdocs-dom-Object-reference[Object::reference]; ---- == Description This is a read‐only reference to an element. The type of storage used by the default implementation. == Synopsis Declared in `<mrdocs/Dom/Object.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- using storage_type = link:#mrdocs-dom-Object-storage_type[Object::storage_type]; ---- Destructor. == Synopsis Declared in `<mrdocs/Dom/Object.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- virtual ~ObjectImpl(); ---- Determine if a key exists. == Synopsis Declared in `<mrdocs/Dom/Object.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- virtual bool exists(std::string_view key) const; ---- == Return Value `true` if the key exists, otherwise `false`. == Parameters [cols=2] |=== | Name | Description | *key* | The key to check for existence. |=== Return the value for the specified key, or null. == Synopsis Declared in `<mrdocs/Dom/Object.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- virtual link:#mrdocs-dom-Value[Value] get(std::string_view key) const = 0; ---- == Return Value The value for the specified key, or null if the key does not exist. == Parameters [cols=2] |=== | Name | Description | *key* | The key. |=== Insert or set the given key/value pair. == Synopsis Declared in `<mrdocs/Dom/Object.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- virtual void set( link:#mrdocs-dom-String[String] key, link:#mrdocs-dom-Value[Value] value) = 0; ---- == Parameters [cols=2] |=== | Name | Description | *key* | The key. | *value* | The value to set. |=== Return the number of properties in the object. == Synopsis Declared in `<mrdocs/Dom/Object.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- virtual std::size_t size() const = 0; ---- == Return Value the number of properties in the object. Return the type key of the implementation. == Synopsis Declared in `<mrdocs/Dom/Object.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- virtual char const* type_key() const noexcept; ---- == Return Value the type key of the implementation. Invoke the visitor for each key/value pair. == Synopsis Declared in `<mrdocs/Dom/Object.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- virtual bool visit(std::function<bool(link:#mrdocs-dom-String[String], link:#mrdocs-dom-Value[Value])> fn) const = 0; ---- == Description The visitor function must return `true` to continue iteration, or `false` to stop. The visit function returns `true` if the visitor returned `true` for all elements, otherwise `false`. == Return Value `true` if the visitor returned `true` for all elements, otherwise `false`. == Parameters [cols=2] |=== | Name | Description | *fn* | The visitor function. |=== == Synopsis Declared in `<mrdocs/Dom/String.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- class String final ---- == Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-dom-String-2constructor-0b0[`String`] [.small]#[constructor]# | Constructor. | link:#mrdocs-dom-String-2destructor[`~String`] [.small]#[destructor]# | Destructor. | link:#mrdocs-dom-String-operator_assign-0f[`operator=`] | Assignment. | link:#mrdocs-dom-String-c_str[`c_str`] | Return the string. | link:#mrdocs-dom-String-data[`data`] | Return the string. | link:#mrdocs-dom-String-empty[`empty`] | Return true if the string is empty. | link:#mrdocs-dom-String-get[`get`] | Return the string. | link:#mrdocs-dom-String-size[`size`] | Return the size. | link:#mrdocs-dom-String-str[`str`] | Return the string. | link:#mrdocs-dom-String-swap[`swap`] | Swap two strings. | link:#mrdocs-dom-String-2conversion[`operator std::string_view`] | Return the string. |=== == Friends [cols=2] |=== | Name | Description | `link:#mrdocs-dom-operator_plus-06b[mrdocs::dom::operator+]` | | `link:#mrdocs-dom-operator_plus-00c[mrdocs::dom::operator+]` | | `link:#mrdocs-dom-operator_plus-0c8[mrdocs::dom::operator+]` | Concatenate two strings. | `link:#mrdocs-dom-operator_3way-00[mrdocs::dom::operator<=>]` | Return the result of comparing two strings. | `link:#mrdocs-dom-operator_not_eq-0e[mrdocs::dom::operator!=]` | Return the result of comparing two strings. | `link:#mrdocs-dom-operator_eq-04[mrdocs::dom::operator==]` | Return the result of comparing two strings. | `link:#mrdocs-dom-operator_3way-01[mrdocs::dom::operator<=>]` | Return the result of comparing two strings. | `link:#mrdocs-dom-operator_not_eq-03[mrdocs::dom::operator!=]` | Return the result of comparing two strings. | `link:#mrdocs-dom-operator_eq-0e[mrdocs::dom::operator==]` | Return the result of comparing two strings. | `link:#mrdocs-dom-swap-06[mrdocs::dom::swap]` | Swap two strings. |=== == Non-Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-toString-041[`::mrdocs::toString`] | Return the name of the SymbolKind as a string. | link:#mrdocs-toString-082[`::mrdocs::toString`] | Convert ExplicitInfo to a string. | link:#mrdocs-toString-0dc[`::mrdocs::toString`] | Convert NoexceptInfo to a string. | link:#mrdocs-doc-toString-06[`::mrdocs::doc::toString`] | Return the name of the Admonish as a string. | link:#mrdocs-doc-toString-07[`::mrdocs::doc::toString`] | Return the name of the Parts as a string. | link:#mrdocs-doc-toString-0ed[`::mrdocs::doc::toString`] | Return the name of the ParamDirection as a string. |=== Constructor. == Synopses Declared in `<mrdocs/Dom/String.hpp>` Constructor. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-dom-String-2constructor-0b9[String]() noexcept = default; ---- [.small]#link:#mrdocs-dom-String-2constructor-0b9[_» more..._]# Constructor. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-dom-String-2constructor-09[String](link:#mrdocs-dom-String[String] const& other) noexcept; ---- [.small]#link:#mrdocs-dom-String-2constructor-09[_» more..._]# Constructor. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-dom-String-2constructor-0af[String](link:#mrdocs-dom-String[String]&& other) noexcept; ---- [.small]#link:#mrdocs-dom-String-2constructor-0af[_» more..._]# Constructor. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-dom-String-2constructor-0a2[String](std::string_view sv); ---- [.small]#link:#mrdocs-dom-String-2constructor-0a2[_» more..._]# Constructor. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<link:#mrdocs-dom-StringLikeTy[StringLikeTy] StringLike> link:#mrdocs-dom-String-2constructor-00[String](StringLike const& s); ---- [.small]#link:#mrdocs-dom-String-2constructor-00[_» more..._]# Constructor. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<std::size_t N> constexpr link:#mrdocs-dom-String-2constructor-0ccd[String](char const(& str)[]); ---- [.small]#link:#mrdocs-dom-String-2constructor-0ccd[_» more..._]# Constructor. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-dom-String-2constructor-0cce[String]( char const* str, std::size_t len); ---- [.small]#link:#mrdocs-dom-String-2constructor-0cce[_» more..._]# == Parameters [cols=2] |=== | Name | Description | *sv* | The string to construct with. A copy of this string is made. | *s* | The string to construct with. A copy of this string is made. | *str* | A null‐terminated string. If the string is not null‐terminated, the result is undefined. | *len* | The length of the string. |=== Constructor. == Synopsis Declared in `<mrdocs/Dom/String.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr String() noexcept = default; ---- == Description Default constructed strings have a zero size, and include a null terminator. Constructor. == Synopsis Declared in `<mrdocs/Dom/String.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- String(link:#mrdocs-dom-String[String] const& other) noexcept; ---- == Description The newly constructed string acquries shared ownership of the string referenced by other. == Parameters [cols=2] |=== | Name | Description | *other* | The object to copy construct from |=== Constructor. == Synopsis Declared in `<mrdocs/Dom/String.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr String(link:#mrdocs-dom-String[String]&& other) noexcept; ---- == Description Ownership of the string is transferred to the newly constructed string. The moved‐from string behaves as if default constructed. == Parameters [cols=2] |=== | Name | Description | *other* | The object to move construct from |=== Constructor. == Synopsis Declared in `<mrdocs/Dom/String.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- String(std::string_view sv); ---- == Description This function constructs a new string from the buffer pointed to by `sv`. == Parameters [cols=2] |=== | Name | Description | *sv* | The string to construct with. A copy of this string is made. |=== Constructor. == Synopsis Declared in `<mrdocs/Dom/String.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<link:#mrdocs-dom-StringLikeTy[StringLikeTy] StringLike> String(StringLike const& s); ---- == Description This function constructs a new string from s, which must be convertible to `std::string_view`. == Parameters [cols=2] |=== | Name | Description | *s* | The string to construct with. A copy of this string is made. |=== Constructor. == Synopsis Declared in `<mrdocs/Dom/String.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<std::size_t N> constexpr String(char const(& str)[]); ---- == Description This function constructs a string literal which references the buffer pointed to by `str`. Ownership is not transferred; the lifetime of the buffer must extend until the string is destroyed, otherwise the behavior is undefined. == Parameters [cols=2] |=== | Name | Description | *str* | A null‐terminated string. If the string is not null‐terminated, the result is undefined. |=== Constructor. == Synopsis Declared in `<mrdocs/Dom/String.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- String( char const* str, std::size_t len); ---- == Description This function constructs a new string from the string pointed to by `str` of length `len`. == Parameters [cols=2] |=== | Name | Description | *str* | The string to construct with. A copy of this string is made. | *len* | The length of the string. |=== Destructor. == Synopsis Declared in `<mrdocs/Dom/String.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- ~String() noexcept; ---- Assignment. == Synopses Declared in `<mrdocs/Dom/String.hpp>` Assignment. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-dom-String[String]& link:#mrdocs-dom-String-operator_assign-01[operator=](link:#mrdocs-dom-String[String] const& other) noexcept; ---- [.small]#link:#mrdocs-dom-String-operator_assign-01[_» more..._]# Assignment. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-dom-String[String]& link:#mrdocs-dom-String-operator_assign-05[operator=](link:#mrdocs-dom-String[String]&& other) noexcept; ---- [.small]#link:#mrdocs-dom-String-operator_assign-05[_» more..._]# Assignment. == Synopsis Declared in `<mrdocs/Dom/String.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-dom-String[String]& operator=(link:#mrdocs-dom-String[String] const& other) noexcept; ---- == Description This acquires shared ownership of the string referenced by other. Ownership of the previously referenced string is released. == Return Value Reference to the current object == Parameters [cols=2] |=== | Name | Description | *other* | The object to copy assign from |=== Assignment. == Synopsis Declared in `<mrdocs/Dom/String.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-dom-String[String]& operator=(link:#mrdocs-dom-String[String]&& other) noexcept; ---- == Description This transfers ownership of the string referenced by other to this. Ownership of the previously referened string is released. After the assignment, the moved‐from string behaves as if default constructed. == Return Value Reference to the current object == Parameters [cols=2] |=== | Name | Description | *other* | The object to move assign from |=== Return the string. == Synopsis Declared in `<mrdocs/Dom/String.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- char const* c_str() const noexcept; ---- == Description The pointed‐to character buffer returned by this function is always null‐terminated. == Return Value the string. Return the string. == Synopsis Declared in `<mrdocs/Dom/String.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- char const* data() const noexcept; ---- == Description The pointed‐to character buffer returned by this function is always null‐terminated. == Return Value the string. Return true if the string is empty. == Synopsis Declared in `<mrdocs/Dom/String.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool empty() const noexcept; ---- == Return Value true if the string is empty. Return the string. == Synopsis Declared in `<mrdocs/Dom/String.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::string_view get() const noexcept; ---- == Return Value the string. Return the size. == Synopsis Declared in `<mrdocs/Dom/String.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::size_t size() const noexcept; ---- == Return Value the size. Return the string. == Synopsis Declared in `<mrdocs/Dom/String.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::string str() const noexcept; ---- == Return Value the string. Swap two strings. == Synopsis Declared in `<mrdocs/Dom/String.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr void swap(link:#mrdocs-dom-String[String]& other) noexcept; ---- == Parameters [cols=2] |=== | Name | Description | *other* | The other string. |=== Return the string. == Synopsis Declared in `<mrdocs/Dom/String.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- operator std::string_view() const noexcept; ---- == Return Value the string. A variant container for any kind of Dom value. == Synopsis Declared in `<mrdocs/Dom/Value.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- class Value; ---- == Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-dom-Value-2constructor-0e0[`Value`] [.small]#[constructor]# | Constructors | link:#mrdocs-dom-Value-2destructor[`~Value`] [.small]#[destructor]# | Destructor | link:#mrdocs-dom-Value-operator_assign-0a[`operator=`] | Assignment operators | link:#mrdocs-dom-Value-empty[`empty`] | Return if an Array or Object is empty. | link:#mrdocs-dom-Value-exists[`exists`] | Return true if a key exists. | link:#mrdocs-dom-Value-get-07[`get`] | `get` overloads | link:#mrdocs-dom-Value-getArray-0d[`getArray`] | Return the array. | link:#mrdocs-dom-Value-getBool[`getBool`] | Return the underlying boolean value. | link:#mrdocs-dom-Value-getFunction[`getFunction`] | Return the function. | link:#mrdocs-dom-Value-getInteger[`getInteger`] | Return the underlying integer value. | link:#mrdocs-dom-Value-getObject[`getObject`] | Return the object. | link:#mrdocs-dom-Value-getString[`getString`] | Return the underlying string value. | link:#mrdocs-dom-Value-isArray[`isArray`] | Return true if this is an array. | link:#mrdocs-dom-Value-isBoolean[`isBoolean`] | Return true if this is a boolean. | link:#mrdocs-dom-Value-isFunction[`isFunction`] | Return true if this is a function. | link:#mrdocs-dom-Value-isInteger[`isInteger`] | Return true if this is an integer. | link:#mrdocs-dom-Value-isNull[`isNull`] | Return true if this is null. | link:#mrdocs-dom-Value-isObject[`isObject`] | Return true if this is an object. | link:#mrdocs-dom-Value-isSafeString[`isSafeString`] | Return true if this is a safe string. | link:#mrdocs-dom-Value-isString[`isString`] | Return true if this is a string. | link:#mrdocs-dom-Value-isTruthy[`isTruthy`] | Determine if a value is truthy | link:#mrdocs-dom-Value-isUndefined[`isUndefined`] | Return true if this is undefined. | link:#mrdocs-dom-Value-kind[`kind`] | Return the type of value contained. | link:#mrdocs-dom-Value-lookup[`lookup`] | Lookup a sequence of keys. | link:#mrdocs-dom-Value-operator_call[`operator()`] | Invoke the function. | link:#mrdocs-dom-Value-set[`set`] | Set or replace the value for a given key. | link:#mrdocs-dom-Value-size[`size`] | Return if an Array or Object is empty. | link:#mrdocs-dom-Value-swap[`swap`] | Swap two values. | link:#mrdocs-dom-Value-type_key[`type_key`] | Return the type key of the value. | link:#mrdocs-dom-Value-2conversion-0c[`operator std::string`] | Return the string. | link:#mrdocs-dom-Value-2conversion-05[`operator bool`] | Determine if a value is truthy |=== == Data Members [cols=1] |=== | Name | link:#mrdocs-dom-Value-arr_[`arr_`] [.small]#[variant member]# | link:#mrdocs-dom-Value-b_[`b_`] [.small]#[variant member]# | link:#mrdocs-dom-Value-fn_[`fn_`] [.small]#[variant member]# | link:#mrdocs-dom-Value-i_[`i_`] [.small]#[variant member]# | link:#mrdocs-dom-Value-obj_[`obj_`] [.small]#[variant member]# | link:#mrdocs-dom-Value-str_[`str_`] [.small]#[variant member]# |=== == Friends [cols=2] |=== | Name | Description | `link:#mrdocs-dom-toString-02[mrdocs::dom::toString]` | Return value as a string. | `link:#mrdocs-dom-operator_and-0de[mrdocs::dom::operator&&]` | | `link:#mrdocs-dom-operator_and-06[mrdocs::dom::operator&&]` | | `link:#mrdocs-dom-operator_and-0df0[mrdocs::dom::operator&&]` | Return the first dom::Value that is not truthy, or the last one. | `link:#mrdocs-dom-operator_or-09[mrdocs::dom::operator||]` | | `link:#mrdocs-dom-operator_or-0d[mrdocs::dom::operator||]` | | `link:#mrdocs-dom-operator_or-05[mrdocs::dom::operator||]` | Return the first dom::Value that is truthy, or the last one. | `link:#mrdocs-dom-operator_plus-064[mrdocs::dom::operator+]` | | `link:#mrdocs-dom-operator_plus-01[mrdocs::dom::operator+]` | | `link:#mrdocs-dom-operator_plus-0cf[mrdocs::dom::operator+]` | Add or concatenate two values. | `link:#mrdocs-dom-operator_3way-0c[mrdocs::dom::operator<=>]` | Three‐way comparison operator | `link:#mrdocs-dom-operator_3way-02[mrdocs::dom::operator<=>]` | Three‐way comparison operator | `link:#mrdocs-dom-operator_3way-09[mrdocs::dom::operator<=>]` | Compare two values for inequality. | `link:#mrdocs-dom-operator_eq-07[mrdocs::dom::operator==]` | Compare two values for equality. | `link:#mrdocs-dom-swap-01[mrdocs::dom::swap]` | Swap two values. | `link:#mrdocs-safeString-0c[mrdocs::safeString]` | Create a wrapper for a safe string. | `link:#mrdocs-dom-Object[mrdocs::dom::Object]` | A container of key and value pairs. | `link:#mrdocs-dom-Array[mrdocs::dom::Array]` | An array of values |=== == Non-Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-dom-ValueFrom-05[`ValueFrom`] | Convert an object of type `T` to `dom::Value` with a context | link:#mrdocs-dom-ValueFrom-0d[`ValueFrom`] | Convert an object of type `T` to `dom::Value`. | link:#mrdocs-dom-stringOrNull-06[`stringOrNull`] | Return a non‐empty string, or a null. | link:#mrdocs-dom-stringOrNull-0d[`stringOrNull`] | Return a non‐empty string, or a null. | link:#mrdocs-dom-stringOrNull-0e[`stringOrNull`] | Return a non‐empty string, or a null. | link:#mrdocs-dom-JSON-stringify[`JSON::stringify`] | Stringify a value as JSON | link:#mrdocs-isEmpty[`::mrdocs::isEmpty`] | Determine if a value is empty | link:#mrdocs-helpers-detag_fn[`::mrdocs::helpers::detag_fn`] | "detag" helper function | link:#mrdocs-helpers-increment_fn[`::mrdocs::helpers::increment_fn`] | "increment" helper function | link:#mrdocs-helpers-or_fn[`::mrdocs::helpers::or_fn`] | "or" helper function | link:#mrdocs-helpers-relativize_fn[`::mrdocs::helpers::relativize_fn`] | "relativize" helper function | link:#mrdocs-helpers-select_fn[`::mrdocs::helpers::select_fn`] | "select" helper function |=== Constructors == Synopses Declared in `<mrdocs/Dom/Value.hpp>` Default constructor [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-dom-Value-2constructor-0d2[Value]() noexcept; ---- [.small]#link:#mrdocs-dom-Value-2constructor-0d2[_» more..._]# Copy constructor [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-dom-Value-2constructor-0345b[Value](link:#mrdocs-dom-Value[Value] const& other); ---- [.small]#link:#mrdocs-dom-Value-2constructor-0345b[_» more..._]# Move constructor [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-dom-Value-2constructor-04[Value](link:#mrdocs-dom-Value[Value]&& other) noexcept; ---- [.small]#link:#mrdocs-dom-Value-2constructor-04[_» more..._]# Construct from `Array` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-dom-Value-2constructor-0a[Value](link:#mrdocs-dom-Array[Array] arr) noexcept; ---- [.small]#link:#mrdocs-dom-Value-2constructor-0a[_» more..._]# Construct from `Function` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-dom-Value-2constructor-099[Value](link:#mrdocs-dom-Function[Function] fn) noexcept; ---- [.small]#link:#mrdocs-dom-Value-2constructor-099[_» more..._]# Construct from `Kind` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-dom-Value-2constructor-098e[Value](link:#mrdocs-dom-Kind[dom::Kind] kind) noexcept; ---- [.small]#link:#mrdocs-dom-Value-2constructor-098e[_» more..._]# Construct from `Object` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-dom-Value-2constructor-02[Value](link:#mrdocs-dom-Object[Object] obj) noexcept; ---- [.small]#link:#mrdocs-dom-Value-2constructor-02[_» more..._]# Construct from `String` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-dom-Value-2constructor-0ef[Value](link:#mrdocs-dom-String[String] str) noexcept; ---- [.small]#link:#mrdocs-dom-Value-2constructor-0ef[_» more..._]# Construct from `int64_t` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-dom-Value-2constructor-0980[Value](int64_t v) noexcept; ---- [.small]#link:#mrdocs-dom-Value-2constructor-0980[_» more..._]# Construct from `nullptr_t` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-dom-Value-2constructor-0c[Value](std::nullptr_t v) noexcept; ---- [.small]#link:#mrdocs-dom-Value-2constructor-0c[_» more..._]# Construct from `storage_type` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-dom-Value-2constructor-089[Value](link:#mrdocs-dom-Array-storage_type[Array::storage_type] elements); ---- [.small]#link:#mrdocs-dom-Value-2constructor-089[_» more..._]# Construct from `char` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-dom-Value-2constructor-05[Value](char c) noexcept; ---- [.small]#link:#mrdocs-dom-Value-2constructor-05[_» more..._]# Construct from `char` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-dom-Value-2constructor-0f9[Value](char const* s); ---- [.small]#link:#mrdocs-dom-Value-2constructor-0f9[_» more..._]# Construct from `T` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<std::floating_point T> link:#mrdocs-dom-Value-2constructor-09a[Value](T v) noexcept; ---- [.small]#link:#mrdocs-dom-Value-2constructor-09a[_» more..._]# Construct from `T` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<std::integral T> requires (!std::same_as<T, bool>) && (!std::same_as<T, char>) link:#mrdocs-dom-Value-2constructor-0d7[Value](T v) noexcept; ---- [.small]#link:#mrdocs-dom-Value-2constructor-0d7[_» more..._]# Construct from `Boolean` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<std::convertible_to<String> Boolean> link:#mrdocs-dom-Value-2constructor-0345f[Value](Boolean const& b); ---- [.small]#link:#mrdocs-dom-Value-2constructor-0345f[_» more..._]# Construct from `F` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class F> requires function_traits_convertible_to_value<F> link:#mrdocs-dom-Value-2constructor-06[Value](F const& f); ---- [.small]#link:#mrdocs-dom-Value-2constructor-06[_» more..._]# Construct from `Optional` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class T> requires std::constructible_from<Value, T> link:#mrdocs-dom-Value-2constructor-088[Value](link:#mrdocs-Optional-03[Optional<T>] const& opt); ---- [.small]#link:#mrdocs-dom-Value-2constructor-088[_» more..._]# Construct from `optional` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class T> requires std::constructible_from<Value, T> link:#mrdocs-dom-Value-2constructor-0fd[Value](std::optional<T> const& opt); ---- [.small]#link:#mrdocs-dom-Value-2constructor-0fd[_» more..._]# Construct from `char` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<std::size_t N> link:#mrdocs-dom-Value-2constructor-03b[Value](char const(& sz)[]); ---- [.small]#link:#mrdocs-dom-Value-2constructor-03b[_» more..._]# Default constructor == Synopsis Declared in `<mrdocs/Dom/Value.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- Value() noexcept; ---- Copy constructor == Synopsis Declared in `<mrdocs/Dom/Value.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- Value(link:#mrdocs-dom-Value[Value] const& other); ---- == Parameters [cols=2] |=== | Name | Description | *other* | The object to copy construct from |=== Move constructor == Synopsis Declared in `<mrdocs/Dom/Value.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- Value(link:#mrdocs-dom-Value[Value]&& other) noexcept; ---- == Parameters [cols=2] |=== | Name | Description | *other* | The object to move construct from |=== Construct from `Array` == Synopsis Declared in `<mrdocs/Dom/Value.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- Value(link:#mrdocs-dom-Array[Array] arr) noexcept; ---- == Parameters [cols=2] |=== | Name | Description | *arr* | The object to construct from |=== Construct from `Function` == Synopsis Declared in `<mrdocs/Dom/Value.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- Value(link:#mrdocs-dom-Function[Function] fn) noexcept; ---- == Parameters [cols=2] |=== | Name | Description | *fn* | The object to construct from |=== Construct from `Kind` == Synopsis Declared in `<mrdocs/Dom/Value.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- Value(link:#mrdocs-dom-Kind[dom::Kind] kind) noexcept; ---- == Parameters [cols=2] |=== | Name | Description | *kind* | The object to construct from |=== Construct from `Object` == Synopsis Declared in `<mrdocs/Dom/Value.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- Value(link:#mrdocs-dom-Object[Object] obj) noexcept; ---- == Parameters [cols=2] |=== | Name | Description | *obj* | The object to construct from |=== Construct from `String` == Synopsis Declared in `<mrdocs/Dom/Value.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- Value(link:#mrdocs-dom-String[String] str) noexcept; ---- == Parameters [cols=2] |=== | Name | Description | *str* | The object to construct from |=== Construct from `int64_t` == Synopsis Declared in `<mrdocs/Dom/Value.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- Value(int64_t v) noexcept; ---- == Parameters [cols=2] |=== | Name | Description | *v* | The object to construct from |=== Construct from `nullptr_t` == Synopsis Declared in `<mrdocs/Dom/Value.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- Value(std::nullptr_t v) noexcept; ---- == Parameters [cols=2] |=== | Name | Description | *v* | The object to construct from |=== Construct from `storage_type` == Synopsis Declared in `<mrdocs/Dom/Value.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- Value(link:#mrdocs-dom-Array-storage_type[Array::storage_type] elements); ---- == Parameters [cols=2] |=== | Name | Description | *elements* | The object to construct from |=== Construct from `char` == Synopsis Declared in `<mrdocs/Dom/Value.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- Value(char c) noexcept; ---- == Parameters [cols=2] |=== | Name | Description | *c* | The value to construct from |=== Construct from `char` == Synopsis Declared in `<mrdocs/Dom/Value.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- Value(char const* s); ---- == Parameters [cols=2] |=== | Name | Description | *s* | The value to construct from |=== Construct from `T` == Synopsis Declared in `<mrdocs/Dom/Value.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<std::floating_point T> Value(T v) noexcept; ---- == Parameters [cols=2] |=== | Name | Description | *v* | The object to construct from |=== Construct from `T` == Synopsis Declared in `<mrdocs/Dom/Value.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<std::integral T> requires (!std::same_as<T, bool>) && (!std::same_as<T, char>) Value(T v) noexcept; ---- == Parameters [cols=2] |=== | Name | Description | *v* | The object to construct from |=== Construct from `Boolean` == Synopsis Declared in `<mrdocs/Dom/Value.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<std::convertible_to<String> Boolean> Value(Boolean const& b); ---- == Parameters [cols=2] |=== | Name | Description | *b* | The object to copy construct from |=== Construct from `F` == Synopsis Declared in `<mrdocs/Dom/Value.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class F> requires function_traits_convertible_to_value<F> Value(F const& f); ---- == Parameters [cols=2] |=== | Name | Description | *f* | The object to copy construct from |=== Construct from `Optional` == Synopsis Declared in `<mrdocs/Dom/Value.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class T> requires std::constructible_from<Value, T> Value(link:#mrdocs-Optional-03[Optional<T>] const& opt); ---- == Parameters [cols=2] |=== | Name | Description | *opt* | The object to copy construct from |=== Construct from `optional` == Synopsis Declared in `<mrdocs/Dom/Value.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class T> requires std::constructible_from<Value, T> Value(std::optional<T> const& opt); ---- == Parameters [cols=2] |=== | Name | Description | *opt* | The object to copy construct from |=== Construct from `char` == Synopsis Declared in `<mrdocs/Dom/Value.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<std::size_t N> Value(char const(& sz)[]); ---- == Parameters [cols=2] |=== | Name | Description | *sz* | The value to construct from |=== Destructor == Synopsis Declared in `<mrdocs/Dom/Value.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- ~Value(); ---- Assignment operators == Synopses Declared in `<mrdocs/Dom/Value.hpp>` Copy assignment operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-dom-Value[Value]& link:#mrdocs-dom-Value-operator_assign-0e[operator=](link:#mrdocs-dom-Value[Value] const& other); ---- [.small]#link:#mrdocs-dom-Value-operator_assign-0e[_» more..._]# Move assignment operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-dom-Value[Value]& link:#mrdocs-dom-Value-operator_assign-0d[operator=](link:#mrdocs-dom-Value[Value]&& other) noexcept; ---- [.small]#link:#mrdocs-dom-Value-operator_assign-0d[_» more..._]# Copy assignment operator == Synopsis Declared in `<mrdocs/Dom/Value.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-dom-Value[Value]& operator=(link:#mrdocs-dom-Value[Value] const& other); ---- == Return Value Reference to the current object == Parameters [cols=2] |=== | Name | Description | *other* | The object to copy assign from |=== Move assignment operator == Synopsis Declared in `<mrdocs/Dom/Value.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-dom-Value[Value]& operator=(link:#mrdocs-dom-Value[Value]&& other) noexcept; ---- == Return Value Reference to the current object == Parameters [cols=2] |=== | Name | Description | *other* | The object to move assign from |=== Return if an Array or Object is empty. == Synopsis Declared in `<mrdocs/Dom/Value.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool empty() const; ---- == Return Value if an Array or Object is empty. Return true if a key exists. == Synopsis Declared in `<mrdocs/Dom/Value.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool exists(std::string_view key) const; ---- == Return Value `true` if the key exists, otherwise `false`. == Parameters [cols=2] |=== | Name | Description | *key* | The key to check for existence. |=== `get` overloads == Synopses Declared in `<mrdocs/Dom/Value.hpp>` Return the element at a given index. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-dom-Value[dom::Value] link:#mrdocs-dom-Value-get-0ab[get](std::size_t i) const; ---- [.small]#link:#mrdocs-dom-Value-get-0ab[_» more..._]# Return the element for a given key. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-dom-Value[dom::Value] link:#mrdocs-dom-Value-get-0ac[get](std::string_view key) const; ---- [.small]#link:#mrdocs-dom-Value-get-0ac[_» more..._]# Return the element at a given index or key. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-dom-Value[dom::Value] link:#mrdocs-dom-Value-get-0dd[get](link:#mrdocs-dom-Value[dom::Value] const& i) const; ---- [.small]#link:#mrdocs-dom-Value-get-0dd[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<std::convertible_to<std::string_view> S> link:#mrdocs-dom-Value[dom::Value] link:#mrdocs-dom-Value-get-0dc[get](S const& key) const; ---- [.small]#link:#mrdocs-dom-Value-get-0dc[_» more..._]# == Return Value * The value at the specified index, or a Value of type * The value for the specified key, or a Value of type link:#mrdocs-dom-Kind[`Kind::Undefined`] if the key does not exist. == Parameters [cols=2] |=== | Name | Description | *i* | The index. | *key* | The key. |=== Return the element at a given index. == Synopsis Declared in `<mrdocs/Dom/Value.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-dom-Value[dom::Value] get(std::size_t i) const; ---- == Return Value The value at the specified index, or a Value of type == Parameters [cols=2] |=== | Name | Description | *i* | The index. |=== Return the element for a given key. == Synopsis Declared in `<mrdocs/Dom/Value.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-dom-Value[dom::Value] get(std::string_view key) const; ---- == Description If the Value is not an object, or the key is not found, a Value of type link:#mrdocs-dom-Kind[`Kind::Undefined`] is returned. == Return Value The value for the specified key, or a Value of type link:#mrdocs-dom-Kind[`Kind::Undefined`] if the key does not exist. == Parameters [cols=2] |=== | Name | Description | *key* | The key. |=== Return the element at a given index or key. == Synopsis Declared in `<mrdocs/Dom/Value.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-dom-Value[dom::Value] get(link:#mrdocs-dom-Value[dom::Value] const& i) const; ---- == Return Value the element at a given index or key. == Parameters [cols=2] |=== | Name | Description | *i* | A variant container for any kind of Dom value. |=== == Synopsis Declared in `<mrdocs/Dom/Value.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<std::convertible_to<std::string_view> S> link:#mrdocs-dom-Value[dom::Value] get(S const& key) const; ---- Return the array. == Synopses Declared in `<mrdocs/Dom/Value.hpp>` Return the array. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-dom-Array[Array] const& link:#mrdocs-dom-Value-getArray-02[getArray]() const; ---- [.small]#link:#mrdocs-dom-Value-getArray-02[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-dom-Array[Array]& link:#mrdocs-dom-Value-getArray-06[getArray](); ---- [.small]#link:#mrdocs-dom-Value-getArray-06[_» more..._]# == Exceptions [cols=2] |=== | Name | Thrown on | link:#mrdocs-Exception[`Exception`] | `! isArray()` |=== Return the array. == Synopsis Declared in `<mrdocs/Dom/Value.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-dom-Array[Array] const& getArray() const; ---- == Exceptions [cols=2] |=== | Name | Thrown on | link:#mrdocs-Exception[`Exception`] | `! isArray()` |=== == Return Value the array. == Synopsis Declared in `<mrdocs/Dom/Value.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-dom-Array[Array]& getArray(); ---- == Return Value An array of values Return the underlying boolean value. == Synopsis Declared in `<mrdocs/Dom/Value.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool getBool() const noexcept; ---- == Description [NOTE] ==== Behaviour is undefined if `!isBoolean()` ==== == Return Value the underlying boolean value. Return the function. == Synopsis Declared in `<mrdocs/Dom/Value.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-dom-Function[Function] const& getFunction() const; ---- == Exceptions [cols=2] |=== | Name | Thrown on | link:#mrdocs-Exception[`Exception`] | `! isFunction()` |=== == Return Value the function. Return the underlying integer value. == Synopsis Declared in `<mrdocs/Dom/Value.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- int64_t getInteger() const noexcept; ---- == Description [NOTE] ==== Behaviour is undefined if `!isInteger()` ==== == Return Value the underlying integer value. Return the object. == Synopsis Declared in `<mrdocs/Dom/Value.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-dom-Object[Object] const& getObject() const; ---- == Exceptions [cols=2] |=== | Name | Thrown on | link:#mrdocs-Exception[`Exception`] | `! isObject()` |=== == Return Value the object. Return the underlying string value. == Synopsis Declared in `<mrdocs/Dom/Value.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-dom-String[String] const& getString() const noexcept; ---- == Description [NOTE] ==== Behaviour is undefined if `!isString()` ==== == Return Value the underlying string value. Return true if this is an array. == Synopsis Declared in `<mrdocs/Dom/Value.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool isArray() const noexcept; ---- == Return Value true if this is an array. Return true if this is a boolean. == Synopsis Declared in `<mrdocs/Dom/Value.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool isBoolean() const noexcept; ---- == Return Value true if this is a boolean. Return true if this is a function. == Synopsis Declared in `<mrdocs/Dom/Value.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool isFunction() const noexcept; ---- == Return Value true if this is a function. Return true if this is an integer. == Synopsis Declared in `<mrdocs/Dom/Value.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool isInteger() const noexcept; ---- == Return Value true if this is an integer. Return true if this is null. == Synopsis Declared in `<mrdocs/Dom/Value.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool isNull() const noexcept; ---- == Return Value true if this is null. Return true if this is an object. == Synopsis Declared in `<mrdocs/Dom/Value.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool isObject() const noexcept; ---- == Return Value true if this is an object. Return true if this is a safe string. == Synopsis Declared in `<mrdocs/Dom/Value.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool isSafeString() const noexcept; ---- == Return Value true if this is a safe string. Return true if this is a string. == Synopsis Declared in `<mrdocs/Dom/Value.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool isString() const noexcept; ---- == Return Value true if this is a string. Determine if a value is truthy == Synopsis Declared in `<mrdocs/Dom/Value.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool isTruthy() const noexcept; ---- == Description A value is truthy if it is a boolean and is true, a number and not zero, or an non‐empty string, array or object. == Return Value `true` if the value is truthy, `false` otherwise Return true if this is undefined. == Synopsis Declared in `<mrdocs/Dom/Value.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool isUndefined() const noexcept; ---- == Return Value true if this is undefined. Return the type of value contained. == Synopsis Declared in `<mrdocs/Dom/Value.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-dom-Kind[dom::Kind] kind() const noexcept; ---- == Return Value the type of value contained. Lookup a sequence of keys. == Synopsis Declared in `<mrdocs/Dom/Value.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-dom-Value[dom::Value] lookup(std::string_view keys) const; ---- == Description This function is equivalent to calling `get` multiple times, once for each key in the sequence of dot‐separated keys. == Return Value The value at the end of the sequence, or a Value of type link:#mrdocs-dom-Kind[`Kind::Undefined`] if any key is not found. == Parameters [cols=2] |=== | Name | Description | *keys* | The dot‐separated sequence of keys. |=== Invoke the function. == Synopsis Declared in `<mrdocs/Dom/Value.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class... Args> link:#mrdocs-dom-Value[Value] operator()(Args...&&... args) const; ---- == Description If the Value is not an object, or the key is not found, a Value of type link:#mrdocs-dom-Kind[`Kind::Undefined`] is returned. == Return Value Another instance of the object == Parameters [cols=2] |=== | Name | Description | *args* | The arguments to the function. |=== Set or replace the value for a given key. == Synopsis Declared in `<mrdocs/Dom/Value.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void set( link:#mrdocs-dom-String[String] const& key, link:#mrdocs-dom-Value[Value] const& value); ---- == Parameters [cols=2] |=== | Name | Description | *key* | The key. | *value* | The value to set. |=== Return if an Array or Object is empty. == Synopsis Declared in `<mrdocs/Dom/Value.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::size_t size() const; ---- == Return Value if an Array or Object is empty. Swap two values. == Synopsis Declared in `<mrdocs/Dom/Value.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void swap(link:#mrdocs-dom-Value[Value]& other) noexcept; ---- == Parameters [cols=2] |=== | Name | Description | *other* | A variant container for any kind of Dom value. |=== Return the type key of the value. == Synopsis Declared in `<mrdocs/Dom/Value.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- char const* type_key() const noexcept; ---- == Return Value the type key of the value. Return the string. == Synopsis Declared in `<mrdocs/Dom/Value.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- explicit operator std::string() const noexcept; ---- == Return Value the string. Determine if a value is truthy == Synopsis Declared in `<mrdocs/Dom/Value.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- explicit operator bool() const noexcept; ---- == Description A value is truthy if it is a boolean and is true, a number and not zero, or an non‐empty string, array or object. == Return Value `true` if the value is truthy, `false` otherwise == Synopsis Declared in `<mrdocs/Dom/Value.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-dom-Array[Array] arr_; ---- == Synopsis Declared in `<mrdocs/Dom/Value.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool b_ = {false}; ---- == Synopsis Declared in `<mrdocs/Dom/Value.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-dom-Function[Function] fn_; ---- == Synopsis Declared in `<mrdocs/Dom/Value.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- int64_t i_; ---- == Synopsis Declared in `<mrdocs/Dom/Value.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-dom-Object[Object] obj_; ---- == Synopsis Declared in `<mrdocs/Dom/Value.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-dom-String[String] str_; ---- Customization point tag. == Synopsis Declared in `<mrdocs/Dom/Value.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- struct ValueFromTag; ---- == Non-Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-tag_invoke-010[`::mrdocs::tag_invoke`] | Map the EnumConstantSymbol to a link:#mrdocs-dom-Value[`dom::Value`] object. | link:#mrdocs-tag_invoke-01a[`::mrdocs::tag_invoke`] | Map the FriendInfo to a link:#mrdocs-dom-Value[`dom::Value`] object. | link:#mrdocs-tag_invoke-022[`::mrdocs::tag_invoke`] | Map the UsingSymbol to a link:#mrdocs-dom-Value[`dom::Value`] object. | link:#mrdocs-tag_invoke-026[`::mrdocs::tag_invoke`] | Return the UsingClass as a link:#mrdocs-dom-Value[`dom::Value`] string. | link:#mrdocs-tag_invoke-02c3[`::mrdocs::tag_invoke`] | Return the SymbolKind from a link:#mrdocs-dom-Value[`dom::Value`] string. | link:#mrdocs-tag_invoke-037[`::mrdocs::tag_invoke`] | Return the AccessKind as a link:#mrdocs-dom-Value[`dom::Value`] string. | link:#mrdocs-tag_invoke-03af[`::mrdocs::tag_invoke`] | Map the ConceptSymbol to a link:#mrdocs-dom-Value[`dom::Value`] object. | link:#mrdocs-tag_invoke-03e[`::mrdocs::tag_invoke`] | Map the NamespaceAliasSymbol to a link:#mrdocs-dom-Value[`dom::Value`] object. | link:#mrdocs-tag_invoke-03f[`::mrdocs::tag_invoke`] | Map the NamespaceTranche to a link:#mrdocs-dom-Value[`dom::Value`] object. | link:#mrdocs-tag_invoke-045[`::mrdocs::tag_invoke`] | Return the Symbol as a link:#mrdocs-dom-Value[`dom::Value`] object. | link:#mrdocs-tag_invoke-051[`::mrdocs::tag_invoke`] | Map the VariableSymbol to a link:#mrdocs-dom-Value[`dom::Value`] object. | link:#mrdocs-tag_invoke-052[`::mrdocs::tag_invoke`] | Map the TypedefSymbol to a link:#mrdocs-dom-Value[`dom::Value`] object. | link:#mrdocs-tag_invoke-055[`::mrdocs::tag_invoke`] | Convert SymbolID to dom::Value object in the DOM using Corpus | link:#mrdocs-tag_invoke-0671[`::mrdocs::tag_invoke`] | Convert SymbolID pointers to dom::Value or null. | link:#mrdocs-tag_invoke-0674[`::mrdocs::tag_invoke`] | Map the GuideSymbol to a link:#mrdocs-dom-Value[`dom::Value`] object. | link:#mrdocs-tag_invoke-06e[`::mrdocs::tag_invoke`] | Return the ConstexprKind as a link:#mrdocs-dom-Value[`dom::Value`] string. | link:#mrdocs-tag_invoke-07c[`::mrdocs::tag_invoke`] | Map the OverloadsSymbol to a link:#mrdocs-dom-Value[`dom::Value`] object. | link:#mrdocs-tag_invoke-08c[`::mrdocs::tag_invoke`] | Return the FunctionClass from a link:#mrdocs-dom-Value[`dom::Value`] string. | link:#mrdocs-tag_invoke-094[`::mrdocs::tag_invoke`] | Return the Param as a link:#mrdocs-dom-Value[`dom::Value`] object. | link:#mrdocs-tag_invoke-0b6[`::mrdocs::tag_invoke`] | Return the link:#mrdocs-DocComment[`DocComment`] as a link:#mrdocs-dom-Value[`dom::Value`] object. | link:#mrdocs-tag_invoke-0bc[`::mrdocs::tag_invoke`] | Return the ReferenceKind as a link:#mrdocs-dom-Value[`dom::Value`] string. | link:#mrdocs-tag_invoke-0c8[`::mrdocs::tag_invoke`] | Map the RecordSymbol to a link:#mrdocs-dom-Value[`dom::Value`] object. | link:#mrdocs-tag_invoke-0cb[`::mrdocs::tag_invoke`] | Return the ExplicitInfo as a link:#mrdocs-dom-Value[`dom::Value`] string. | link:#mrdocs-tag_invoke-0cd[`::mrdocs::tag_invoke`] | Return the SymbolKind from a link:#mrdocs-dom-Value[`dom::Value`] string. | link:#mrdocs-tag_invoke-0d2[`::mrdocs::tag_invoke`] | Return the StorageClassKind as a link:#mrdocs-dom-Value[`dom::Value`] string. | link:#mrdocs-tag_invoke-0de[`::mrdocs::tag_invoke`] | Map the RecordInterface to a link:#mrdocs-dom-Value[`dom::Value`] object. | link:#mrdocs-tag_invoke-0e9[`::mrdocs::tag_invoke`] | Map the NamespaceSymbol to a link:#mrdocs-dom-Value[`dom::Value`] object. | link:#mrdocs-tag_invoke-0ea[`::mrdocs::tag_invoke`] | Map the FunctionSymbol to a link:#mrdocs-dom-Value[`dom::Value`] object. | link:#mrdocs-tag_invoke-0f1d[`::mrdocs::tag_invoke`] | Convert SymbolID to dom::Value string in the DOM using toBase16 | link:#mrdocs-tag_invoke-0f6[`::mrdocs::tag_invoke`] | Map the EnumSymbol to a link:#mrdocs-dom-Value[`dom::Value`] object. | link:#mrdocs-tag_invoke-0fa[`::mrdocs::tag_invoke`] | Map the RecordTranche to a link:#mrdocs-dom-Value[`dom::Value`] object. | link:#mrdocs-doc-tag_invoke-000d[`::mrdocs::doc::tag_invoke`] | Return the `Strong` as a link:#mrdocs-dom-Value[`dom::Value`] object. | link:#mrdocs-doc-tag_invoke-002[`::mrdocs::doc::tag_invoke`] | Return the `FootnoteReference` as a link:#mrdocs-dom-Value[`dom::Value`] object. | link:#mrdocs-doc-tag_invoke-0034[`::mrdocs::doc::tag_invoke`] | Return the Parts from a link:#mrdocs-dom-Value[`dom::Value`] string. | link:#mrdocs-doc-tag_invoke-0037[`::mrdocs::doc::tag_invoke`] | Return the `Text` as a link:#mrdocs-dom-Value[`dom::Value`] object. | link:#mrdocs-doc-tag_invoke-005[`::mrdocs::doc::tag_invoke`] | Return the `Heading` as a link:#mrdocs-dom-Value[`dom::Value`] object. | link:#mrdocs-doc-tag_invoke-015[`::mrdocs::doc::tag_invoke`] | Return the `Code` as a link:#mrdocs-dom-Value[`dom::Value`] object. | link:#mrdocs-doc-tag_invoke-019c[`::mrdocs::doc::tag_invoke`] | Return the `UnorderedTable` as a link:#mrdocs-dom-Value[`dom::Value`] object. | link:#mrdocs-doc-tag_invoke-02fb[`::mrdocs::doc::tag_invoke`] | Return the `Brief` as a link:#mrdocs-dom-Value[`dom::Value`] object. | link:#mrdocs-doc-tag_invoke-032[`::mrdocs::doc::tag_invoke`] | Return the `Postcondition` as a link:#mrdocs-dom-Value[`dom::Value`] object. | link:#mrdocs-doc-tag_invoke-037e[`::mrdocs::doc::tag_invoke`] | Return the `Link` as a link:#mrdocs-dom-Value[`dom::Value`] object. | link:#mrdocs-doc-tag_invoke-03c7[`::mrdocs::doc::tag_invoke`] | Return the `Math` as a link:#mrdocs-dom-Value[`dom::Value`] object. | link:#mrdocs-doc-tag_invoke-046[`::mrdocs::doc::tag_invoke`] | Return the `See` as a link:#mrdocs-dom-Value[`dom::Value`] object. | link:#mrdocs-doc-tag_invoke-04d9[`::mrdocs::doc::tag_invoke`] | Return the Admonish from a link:#mrdocs-dom-Value[`dom::Value`] string. | link:#mrdocs-doc-tag_invoke-04db[`::mrdocs::doc::tag_invoke`] | Return the `Admonition` as a link:#mrdocs-dom-Value[`dom::Value`] object. | link:#mrdocs-doc-tag_invoke-054c[`::mrdocs::doc::tag_invoke`] | Return the `Superscript` as a link:#mrdocs-dom-Value[`dom::Value`] object. | link:#mrdocs-doc-tag_invoke-059[`::mrdocs::doc::tag_invoke`] | Return the `Precondition` as a link:#mrdocs-dom-Value[`dom::Value`] object. | link:#mrdocs-doc-tag_invoke-05c2[`::mrdocs::doc::tag_invoke`] | Return the link:#mrdocs-doc-Inline[`Inline`] as a link:#mrdocs-dom-Value[`dom::Value`] object. | link:#mrdocs-doc-tag_invoke-05c8[`::mrdocs::doc::tag_invoke`] | Return the `LineBreak` as a link:#mrdocs-dom-Value[`dom::Value`] object. | link:#mrdocs-doc-tag_invoke-065[`::mrdocs::doc::tag_invoke`] | Return the `Emph` as a link:#mrdocs-dom-Value[`dom::Value`] object. | link:#mrdocs-doc-tag_invoke-06d[`::mrdocs::doc::tag_invoke`] | Return the `Code` as a link:#mrdocs-dom-Value[`dom::Value`] object. | link:#mrdocs-doc-tag_invoke-0855b[`::mrdocs::doc::tag_invoke`] | Return the link:#mrdocs-doc-Block[`Block`] as a link:#mrdocs-dom-Value[`dom::Value`] object. | link:#mrdocs-doc-tag_invoke-086[`::mrdocs::doc::tag_invoke`] | Return the `FootnoteDefinition` as a link:#mrdocs-dom-Value[`dom::Value`] object. | link:#mrdocs-doc-tag_invoke-088[`::mrdocs::doc::tag_invoke`] | Return the `Returns` as a link:#mrdocs-dom-Value[`dom::Value`] object. | link:#mrdocs-doc-tag_invoke-08a[`::mrdocs::doc::tag_invoke`] | Return the `Paragraph` as a link:#mrdocs-dom-Value[`dom::Value`] object. | link:#mrdocs-doc-tag_invoke-09d[`::mrdocs::doc::tag_invoke`] | Return the link:#mrdocs-doc-TableRow[`TableRow`] as a link:#mrdocs-dom-Value[`dom::Value`] object. | link:#mrdocs-doc-tag_invoke-09e[`::mrdocs::doc::tag_invoke`] | Return the link:#mrdocs-TParam[`TParam`] as a link:#mrdocs-dom-Value[`dom::Value`] object. | link:#mrdocs-doc-tag_invoke-0a4[`::mrdocs::doc::tag_invoke`] | Map the Polymorphic Block as a link:#mrdocs-dom-Value[`dom::Value`] object. | link:#mrdocs-doc-tag_invoke-0ad0[`::mrdocs::doc::tag_invoke`] | Return the link:#mrdocs-doc-ListItem[`ListItem`] as a link:#mrdocs-dom-Value[`dom::Value`] object. | link:#mrdocs-doc-tag_invoke-0af[`::mrdocs::doc::tag_invoke`] | Return the `Brief` as a link:#mrdocs-dom-Value[`dom::Value`] object. | link:#mrdocs-doc-tag_invoke-0b14[`::mrdocs::doc::tag_invoke`] | Return the link:#mrdocs-Param[`Param`] as a link:#mrdocs-dom-Value[`dom::Value`] object. | link:#mrdocs-doc-tag_invoke-0b5[`::mrdocs::doc::tag_invoke`] | Return the `CopyDetails` as a link:#mrdocs-dom-Value[`dom::Value`] object. | link:#mrdocs-doc-tag_invoke-0bf[`::mrdocs::doc::tag_invoke`] | Return the `Reference` as a link:#mrdocs-dom-Value[`dom::Value`] object. | link:#mrdocs-doc-tag_invoke-0c3[`::mrdocs::doc::tag_invoke`] | Map the Polymorphic Inline as a link:#mrdocs-dom-Value[`dom::Value`] object. | link:#mrdocs-doc-tag_invoke-0c5[`::mrdocs::doc::tag_invoke`] | Return the link:#mrdocs-doc-DefinitionListItem[`DefinitionListItem`] as a link:#mrdocs-dom-Value[`dom::Value`] object. | link:#mrdocs-doc-tag_invoke-0c6[`::mrdocs::doc::tag_invoke`] | Return the `SoftBreak` as a link:#mrdocs-dom-Value[`dom::Value`] object. | link:#mrdocs-doc-tag_invoke-0ca[`::mrdocs::doc::tag_invoke`] | Return the link:#mrdocs-doc-TableCell[`TableCell`] as a link:#mrdocs-dom-Value[`dom::Value`] object. | link:#mrdocs-doc-tag_invoke-0cfd[`::mrdocs::doc::tag_invoke`] | Return the `Highlight` as a link:#mrdocs-dom-Value[`dom::Value`] object. | link:#mrdocs-doc-tag_invoke-0d1[`::mrdocs::doc::tag_invoke`] | Return the link:#mrdocs-doc-QuoteBlock[`QuoteBlock`] as a link:#mrdocs-dom-Value[`dom::Value`] object. | link:#mrdocs-doc-tag_invoke-0d2[`::mrdocs::doc::tag_invoke`] | Return the `UnorderedList` as a link:#mrdocs-dom-Value[`dom::Value`] object. | link:#mrdocs-doc-tag_invoke-0d8d[`::mrdocs::doc::tag_invoke`] | Return the `Subscript` as a link:#mrdocs-dom-Value[`dom::Value`] object. | link:#mrdocs-doc-tag_invoke-0e7[`::mrdocs::doc::tag_invoke`] | Return the `Image` as a link:#mrdocs-dom-Value[`dom::Value`] object. | link:#mrdocs-doc-tag_invoke-0edc[`::mrdocs::doc::tag_invoke`] | Return the `Strikethrough` as a link:#mrdocs-dom-Value[`dom::Value`] object. | link:#mrdocs-doc-tag_invoke-0edf[`::mrdocs::doc::tag_invoke`] | Return the `Brief` as a link:#mrdocs-dom-Value[`dom::Value`] object. | link:#mrdocs-doc-tag_invoke-0f2[`::mrdocs::doc::tag_invoke`] | Return the ParamDirection from a link:#mrdocs-dom-Value[`dom::Value`] string. | link:#mrdocs-doc-tag_invoke-0fa[`::mrdocs::doc::tag_invoke`] | Return the `Throws` as a link:#mrdocs-dom-Value[`dom::Value`] object. |=== == Description This tag type is used by the function link:#mrdocs-dom-ValueFrom-0a[`dom::ValueFrom`] to select overloads of `tag_invoke`. [NOTE] ==== This type is empty; it has no members. ==== == See Also link:#mrdocs-dom-ValueFrom-0a[`dom::ValueFrom`] http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1895r0.pdf[ tag_invoke: A general pattern for supporting customisable functions] == Synopsis Declared in `<mrdocs/Dom/Function.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class F> class VariadicFunctionImpl : public link:#mrdocs-dom-FunctionImpl[FunctionImpl] ---- == Base Classes [cols=2] |=== | Name | Description | `link:#mrdocs-dom-FunctionImpl[FunctionImpl]` | |=== == Types [cols=1] |=== | Name | link:#mrdocs-dom-VariadicFunctionImpl-args_type[`args_type`] | link:#mrdocs-dom-VariadicFunctionImpl-return_type[`return_type`] |=== == Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-dom-VariadicFunctionImpl-2constructor[`VariadicFunctionImpl`] [.small]#[constructor]# | Construct from `U` | link:#mrdocs-dom-VariadicFunctionImpl-call[`call`] [.small]#[virtual]# | | link:#mrdocs-dom-VariadicFunctionImpl-type_key[`type_key`] [.small]#[virtual]# | |=== == Synopsis Declared in `<mrdocs/Dom/Function.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- using args_type = function_traits<F>::args_type; ---- == Synopsis Declared in `<mrdocs/Dom/Function.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- using return_type = function_traits<F>::return_type; ---- Construct from `U` == Synopsis Declared in `<mrdocs/Dom/Function.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class U> VariadicFunctionImpl(U&& u); ---- == Parameters [cols=2] |=== | Name | Description | *u* | The object to move construct from |=== == Synopsis Declared in `<mrdocs/Dom/Function.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- virtual link:#mrdocs-Expected-0a[Expected<Value>] call(link:#mrdocs-dom-Array[Array] const& args) const override; ---- == Synopsis Declared in `<mrdocs/Dom/Function.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- virtual char const* type_key() const noexcept override; ---- == Synopsis Declared in `<mrdocs/Dom/Function.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<typename F> struct function_traits; ---- == Derived Classes [cols=2] |=== | Name | Description | link:#mrdocs-dom-function_traits-06[`function_traits`] | |=== == Synopsis Declared in `<mrdocs/Dom/Function.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<typename F> requires requires { &F::operator(); } struct link:#mrdocs-dom-function_traits-056[function_traits]<F> : link:#mrdocs-dom-function_traits-056[function_traits<decltype(&F::operator)>] ---- == Base Classes [cols=2] |=== | Name | Description | `link:#mrdocs-dom-function_traits-056[function_traits<decltype(&F::operator)>]` | |=== == Synopsis Declared in `<mrdocs/Dom/Function.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< typename R, typename... Args> struct link:#mrdocs-dom-function_traits-056[function_traits]<R(*)(Args...)>; ---- == Types [cols=1] |=== | Name | link:#mrdocs-dom-function_traits-0f-args_type[`args_type`] | link:#mrdocs-dom-function_traits-0f-return_type[`return_type`] |=== == Synopsis Declared in `<mrdocs/Dom/Function.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- using args_type = std::tuple<Args...>; ---- == Synopsis Declared in `<mrdocs/Dom/Function.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- using return_type = R; ---- == Synopsis Declared in `<mrdocs/Dom/Function.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< typename R, typename... Args> struct link:#mrdocs-dom-function_traits-056[function_traits]<R(Args...)>; ---- == Types [cols=1] |=== | Name | link:#mrdocs-dom-function_traits-04-args_type[`args_type`] | link:#mrdocs-dom-function_traits-04-return_type[`return_type`] |=== == Synopsis Declared in `<mrdocs/Dom/Function.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- using args_type = std::tuple<Args...>; ---- == Synopsis Declared in `<mrdocs/Dom/Function.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- using return_type = R; ---- == Synopsis Declared in `<mrdocs/Dom/Function.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< typename C, typename R, typename... Args> struct link:#mrdocs-dom-function_traits-056[function_traits]<R const volatile(C::*)(Args...)>; ---- == Types [cols=1] |=== | Name | link:#mrdocs-dom-function_traits-05f-args_type[`args_type`] | link:#mrdocs-dom-function_traits-05f-return_type[`return_type`] |=== == Synopsis Declared in `<mrdocs/Dom/Function.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- using args_type = std::tuple<Args...>; ---- == Synopsis Declared in `<mrdocs/Dom/Function.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- using return_type = R; ---- The type of data in a Value. == Synopsis Declared in `<mrdocs/Dom/Kind.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- enum class Kind : int; ---- == Members [cols=2] |=== | Name | Description | `Undefined` | The value is undefined. | `Null` | The value is null. | `Boolean` | The value is a boolean. | `Integer` | The value is an integer. | `String` | The value is a string. | `SafeString` | The value is a safe string. | `Array` | The value is an array. | `Object` | The value is an object. | `Function` | The value is a function. |=== == Description This is the type of data stored in a Value. These types are loosely modeled after the JavaScript types and data structures. Primitive values are Undefined, Null, Boolean, Integer, and String. Undefined and Null are inhabited by a single value each. The difference between Undefined and Null is that Undefined is the default value for a Value, while Null represents a value that is explicitly set. Undefined is used to represent things such as: * An uninitialized Value * The Value returned from a function that failed to return a value * The result of accessing a nonexistent object property * The result of a `find` algorithm when no element is found This distinction is semantically important as algorithms frequently need to distinguish between these two cases. Booleans, Integers, and Strings are also primitive values. This means they are deeply copied when assigned or passed as a parameter. Other value types, such as Array, Object, and Function are reference types, meaning that they are not copied when assigned or passed as a parameter. Instead, the reference is copied, and the original value is shared. These reference types are modeled after JavaScript "Objects". All non‐primitive types (Object types) are derived from Object in JavaScript. This means types such as Array and Function represent a relevant selection of built‐in types that would derive from Object in JavaScript. Objects are a collection of properties, which are equivalent to key‐value pairs. Property values can be any type, including other Objects, allowing for the creation of arbitrarily complex data structures. * https://developer.mozilla.org/en‐US/docs/Web/JavaScript/Data_structures `LazyArray` overloads == Synopses Declared in `<mrdocs/Dom/LazyArray.hpp>` Return a new link:#mrdocs-dom-Array[`dom::Array`] based on a lazy array implementation. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<std::ranges::random_access_range T> requires HasStandaloneValueFrom<std::ranges::range_value_t<T>> link:#mrdocs-dom-Array[Array] link:#mrdocs-dom-LazyArray-0c[LazyArray](T const& arr); ---- [.small]#link:#mrdocs-dom-LazyArray-0c[_» more..._]# Return a new dom::Array based on a FromValue context [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< std::ranges::random_access_range T, class Context> requires HasValueFrom<std::ranges::range_value_t<T>, Context> link:#mrdocs-dom-Array[Array] link:#mrdocs-dom-LazyArray-07[LazyArray]( T const& arr, Context const& ctx); ---- [.small]#link:#mrdocs-dom-LazyArray-07[_» more..._]# == Return Value * A new dom::Array whose elements are the result of converting each element in the underlying range to a dom::Value. * A new dom::Array whose elements are the result of converting each element in the underlying range using the specified context. == Parameters [cols=2] |=== | Name | Description | *arr* | The underlying range of elements. | *ctx* | The context used to convert each element to a dom::Value. |=== Return a new link:#mrdocs-dom-Array[`dom::Array`] based on a lazy array implementation. == Synopsis Declared in `<mrdocs/Dom/LazyArray.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<std::ranges::random_access_range T> requires HasStandaloneValueFrom<std::ranges::range_value_t<T>> link:#mrdocs-dom-Array[Array] LazyArray(T const& arr); ---- == Return Value A new dom::Array whose elements are the result of converting each element in the underlying range to a dom::Value. == Parameters [cols=2] |=== | Name | Description | *arr* | The underlying range of elements. |=== Return a new dom::Array based on a FromValue context == Synopsis Declared in `<mrdocs/Dom/LazyArray.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< std::ranges::random_access_range T, class Context> requires HasValueFrom<std::ranges::range_value_t<T>, Context> link:#mrdocs-dom-Array[Array] LazyArray( T const& arr, Context const& ctx); ---- == Return Value A new dom::Array whose elements are the result of converting each element in the underlying range using the specified context. == Parameters [cols=2] |=== | Name | Description | *arr* | The underlying range of elements. | *ctx* | The context used to convert each element to a dom::Value. |=== `LazyObject` overloads == Synopses Declared in `<mrdocs/Dom/LazyObject.hpp>` Return a new dom::Object based on a lazy object implementation. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<link:#mrdocs-dom-HasLazyObjectMapWithoutContext[HasLazyObjectMapWithoutContext] T> link:#mrdocs-dom-Object[Object] link:#mrdocs-dom-LazyObject-0dd[LazyObject](T const& obj); ---- [.small]#link:#mrdocs-dom-LazyObject-0dd[_» more..._]# Return a new dom::Object based on a transformed lazy array implementation. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< class T, class Context> requires HasLazyObjectMap<T, Context> link:#mrdocs-dom-Object[Object] link:#mrdocs-dom-LazyObject-0d5[LazyObject]( T const& arr, Context const& context); ---- [.small]#link:#mrdocs-dom-LazyObject-0d5[_» more..._]# == Return Value * A new dom::Object whose properties are the result of converting each property in the underlying object to a dom::Value. * A new dom::Array whose elements are the result of converting each element in the underlying range using the specified context. == Parameters [cols=2] |=== | Name | Description | *obj* | The underlying object. | *arr* | The underlying range of elements. | *context* | The context used to convert each element to a dom::Value. |=== Return a new dom::Object based on a lazy object implementation. == Synopsis Declared in `<mrdocs/Dom/LazyObject.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<link:#mrdocs-dom-HasLazyObjectMapWithoutContext[HasLazyObjectMapWithoutContext] T> link:#mrdocs-dom-Object[Object] LazyObject(T const& obj); ---- == Return Value A new dom::Object whose properties are the result of converting each property in the underlying object to a dom::Value. == Parameters [cols=2] |=== | Name | Description | *obj* | The underlying object. |=== Return a new dom::Object based on a transformed lazy array implementation. == Synopsis Declared in `<mrdocs/Dom/LazyObject.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< class T, class Context> requires HasLazyObjectMap<T, Context> link:#mrdocs-dom-Object[Object] LazyObject( T const& arr, Context const& context); ---- == Return Value A new dom::Array whose elements are the result of converting each element in the underlying range using the specified context. == Parameters [cols=2] |=== | Name | Description | *arr* | The underlying range of elements. | *context* | The context used to convert each element to a dom::Value. |=== Return a new dom::Array based on a transformed lazy array implementation. == Synopsis Declared in `<mrdocs/Dom/LazyArray.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< std::ranges::random_access_range T, class F> requires std::invocable<F, std::ranges::range_value_t<T>> && HasStandaloneValueFrom<std::invoke_result_t<F, std::ranges::range_value_t<T>>> link:#mrdocs-dom-Array[Array] TransformArray( T const& arr, F const& f); ---- == Return Value A new dom::Array whose elements are the result of applying the transform function to each element in the underlying range. == Parameters [cols=2] |=== | Name | Description | *arr* | The underlying range of elements. | *f* | The transform function to apply to each element before converting it to a dom::Value. |=== `ValueFrom` overloads == Synopses Declared in `<mrdocs/Dom/Value.hpp>` Convert an object of type `T` to link:#mrdocs-dom-Value[`dom::Value`]. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class T> requires HasStandaloneValueFrom<T> link:#mrdocs-dom-Value[Value] link:#mrdocs-dom-ValueFrom-0d[ValueFrom](T&& t); ---- [.small]#link:#mrdocs-dom-ValueFrom-0d[_» more..._]# Convert an object of type `T` to link:#mrdocs-dom-Value[`dom::Value`]. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class T> requires HasStandaloneValueFrom<T> void link:#mrdocs-dom-ValueFrom-06[ValueFrom]( T&& t, link:#mrdocs-dom-Value[Value]& v); ---- [.small]#link:#mrdocs-dom-ValueFrom-06[_» more..._]# Convert an object of type `T` to link:#mrdocs-dom-Value[`dom::Value`] with a context [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< class T, class Context> requires HasValueFrom<T, Context> link:#mrdocs-dom-Value[Value] link:#mrdocs-dom-ValueFrom-05[ValueFrom]( T&& t, Context const& ctx); ---- [.small]#link:#mrdocs-dom-ValueFrom-05[_» more..._]# Convert an object of type `T` to link:#mrdocs-dom-Value[`dom::Value`]. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< class Context, link:#mrdocs-dom-HasValueFrom[HasValueFrom<Context>] T> void link:#mrdocs-dom-ValueFrom-09[ValueFrom]( T&& t, Context const& ctx, link:#mrdocs-dom-Value[Value]& v); ---- [.small]#link:#mrdocs-dom-ValueFrom-09[_» more..._]# == Return Value link:#mrdocs-dom-Value[`dom::Value`] out parameter. == Template Parameters [cols=2] |=== | Name | Description | *T* | The type of the object to convert. | *Context* | The type of context passed to the conversion function. |=== == Parameters [cols=2] |=== | Name | Description | *t* | The object to convert. | *v* | link:#mrdocs-dom-Value[`dom::Value`] out parameter. | *ctx* | Context passed to the conversion function. |=== == See Also link:#mrdocs-dom-ValueFromTag[`dom::ValueFromTag`], http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1895r0.pdf[ tag_invoke: A general pattern for supporting customisable functions] link:#mrdocs-dom-ValueFromTag[`dom::ValueFromTag`] http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1895r0.pdf[ tag_invoke: A general pattern for supporting customisable functions] Convert an object of type `T` to link:#mrdocs-dom-Value[`dom::Value`]. == Synopsis Declared in `<mrdocs/Dom/Value.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class T> requires HasStandaloneValueFrom<T> link:#mrdocs-dom-Value[Value] ValueFrom(T&& t); ---- == Description This function attempts to convert an object of type `T` to link:#mrdocs-dom-Value[`dom::Value`] using * a user‐provided overload of `tag_invoke`. * one of `dom::Value`'s constructors, Conversion of other types is done by calling an overload of `tag_invoke` found by argument‐dependent lookup. Its signature should be similar to: [,cpp] ---- void tag_invoke( ValueFromTag, dom::Value&, T ); ---- == Exception Safety Strong guarantee. == Return Value link:#mrdocs-dom-Value[`dom::Value`] out parameter. == Template Parameters [cols=2] |=== | Name | Description | *T* | The type of the object to convert. |=== == Parameters [cols=2] |=== | Name | Description | *t* | The object to convert. |=== == See Also link:#mrdocs-dom-ValueFromTag[`dom::ValueFromTag`], http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1895r0.pdf[ tag_invoke: A general pattern for supporting customisable functions] Convert an object of type `T` to link:#mrdocs-dom-Value[`dom::Value`]. == Synopsis Declared in `<mrdocs/Dom/Value.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class T> requires HasStandaloneValueFrom<T> void ValueFrom( T&& t, link:#mrdocs-dom-Value[Value]& v); ---- == Description This function attempts to convert an object of type `T` to link:#mrdocs-dom-Value[`dom::Value`] using * a user‐provided overload of `tag_invoke`. * one of `dom::Value`'s constructors, Conversion of other types is done by calling an overload of `tag_invoke` found by argument‐dependent lookup. Its signature should be similar to: [,cpp] ---- void tag_invoke( ValueFromTag, dom::Value&, T ); ---- == Exception Safety Strong guarantee. == Template Parameters [cols=2] |=== | Name | Description | *T* | The type of the object to convert. |=== == Parameters [cols=2] |=== | Name | Description | *t* | The object to convert. | *v* | link:#mrdocs-dom-Value[`dom::Value`] out parameter. |=== == See Also link:#mrdocs-dom-ValueFromTag[`dom::ValueFromTag`] http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1895r0.pdf[ tag_invoke: A general pattern for supporting customisable functions] Convert an object of type `T` to link:#mrdocs-dom-Value[`dom::Value`] with a context == Synopsis Declared in `<mrdocs/Dom/Value.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< class T, class Context> requires HasValueFrom<T, Context> link:#mrdocs-dom-Value[Value] ValueFrom( T&& t, Context const& ctx); ---- == Description This function attempts to convert an object of type `T` to link:#mrdocs-dom-Value[`dom::Value`] using * a user‐provided overload of `tag_invoke`. * one of `dom::Value`'s constructors, Conversion of other types is done by calling an overload of `tag_invoke` found by argument‐dependent lookup. Its signature should be similar to: [,cpp] ---- void tag_invoke( ValueFromTag, dom::Value&, T ); ---- == Exception Safety Strong guarantee. == Return Value link:#mrdocs-dom-Value[`dom::Value`] out parameter. == Template Parameters [cols=2] |=== | Name | Description | *T* | The type of the object to convert. |=== == Parameters [cols=2] |=== | Name | Description | *t* | The object to convert. | *ctx* | Context passed to the conversion function. |=== == See Also link:#mrdocs-dom-ValueFromTag[`dom::ValueFromTag`], http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1895r0.pdf[ tag_invoke: A general pattern for supporting customisable functions] Convert an object of type `T` to link:#mrdocs-dom-Value[`dom::Value`]. == Synopsis Declared in `<mrdocs/Dom/Value.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< class Context, link:#mrdocs-dom-HasValueFrom[HasValueFrom<Context>] T> void ValueFrom( T&& t, Context const& ctx, link:#mrdocs-dom-Value[Value]& v); ---- == Description This function attempts to convert an object of type `T` to link:#mrdocs-dom-Value[`dom::Value`] using * a user‐provided overload of `tag_invoke`. * one of `dom::Value`'s constructors, Conversion of user‐provided types is done by calling an overload of `tag_invoke` found by argument‐dependent lookup. Its signature should be similar to: [,cpp] ---- void tag_invoke( ValueFromTag, dom::Value&, T, Context const& ); ---- or [,cpp] ---- void tag_invoke( ValueFromTag, dom::Value&, T ); ---- The overloads are checked for existence in that order and the first that matches will be selected. The `ctx` argument can be used either as a tag type to provide conversions for third‐party types, or to pass extra data to the conversion function. == Exception Safety Strong guarantee. == Template Parameters [cols=2] |=== | Name | Description | *T* | The type of the object to convert. | *Context* | The type of context passed to the conversion function. |=== == Parameters [cols=2] |=== | Name | Description | *t* | The object to convert. | *ctx* | Context passed to the conversion function. | *v* | link:#mrdocs-dom-Value[`dom::Value`] out parameter. |=== == See Also link:#mrdocs-dom-ValueFromTag[`dom::ValueFromTag`] http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1895r0.pdf[ tag_invoke: A general pattern for supporting customisable functions] == Synopsis Declared in `<mrdocs/Dom/Function.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class F> link:#mrdocs-dom-Function[Function] makeInvocable(F&& f); ---- == Synopsis Declared in `<mrdocs/Dom/Function.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class F> requires std::invocable<F, Array const&> link:#mrdocs-dom-Function[Function] makeVariadicInvocable(F&& f); ---- Return a new array using a custom implementation. == Synopsis Declared in `<mrdocs/Dom/Array.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< class T, class... Args> requires std::derived_from<T, ArrayImpl> link:#mrdocs-dom-Array[Array] newArray(Args...&&... args); ---- == Description Return a new array using a custom implementation. Return a new array using a custom implementation. == Return Value A new array using the specified implementation. == Template Parameters [cols=2] |=== | Name | Description | *T* | The type of the custom implementation. This must be derived from ArrayImpl. | *Args* | The types of the arguments. |=== == Parameters [cols=2] |=== | Name | Description | *args* | Arguments forwarded to the constructor of T. |=== Return a diagnostic string. == Synopsis Declared in `<mrdocs/Dom/Function.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< class T, class... Args> requires std::derived_from<T, FunctionImpl> link:#mrdocs-dom-Function[Function] newFunction(Args...&&... args); ---- == Description Return a new function using a custom implementation. == Return Value a diagnostic string. == Parameters [cols=2] |=== | Name | Description | *args* | The arguments to the function. |=== Return a new object using a custom implementation. == Synopsis Declared in `<mrdocs/Dom/Object.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< class T, class... Args> requires std::derived_from<T, ObjectImpl> link:#mrdocs-dom-Object[Object] newObject(Args...&&... args); ---- == Return Value A new object using the specified implementation. == Template Parameters [cols=2] |=== | Name | Description | *T* | The type of the custom implementation. This must be derived from ObjectImpl. | *Args* | The types of the arguments. |=== == Parameters [cols=2] |=== | Name | Description | *args* | Arguments forwarded to the constructor of T. |=== Return the first dom::Value that is not truthy, or the last one. == Synopses Declared in `<mrdocs/Dom/Value.hpp>` Return the first dom::Value that is not truthy, or the last one. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-dom-Value[dom::Value] link:#mrdocs-dom-operator_and-0df0[operator&&]( link:#mrdocs-dom-Value[Value] const& lhs, link:#mrdocs-dom-Value[Value] const& rhs); ---- [.small]#link:#mrdocs-dom-operator_and-0df0[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<std::convertible_to<Value> S> auto link:#mrdocs-dom-operator_and-06[operator&&]( S const& lhs, link:#mrdocs-dom-Value[Value] const& rhs) noexcept; ---- [.small]#link:#mrdocs-dom-operator_and-06[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<std::convertible_to<Value> S> auto link:#mrdocs-dom-operator_and-0de[operator&&]( link:#mrdocs-dom-Value[Value] const& lhs, S const& rhs) noexcept; ---- [.small]#link:#mrdocs-dom-operator_and-0de[_» more..._]# Return the first dom::Value that is not truthy, or the last one. == Synopsis Declared in `<mrdocs/Dom/Value.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-dom-Value[dom::Value] operator&&( link:#mrdocs-dom-Value[Value] const& lhs, link:#mrdocs-dom-Value[Value] const& rhs); ---- == Description This function is equivalent to the JavaScript `&&` operator. == Return Value the first dom::Value that is not truthy, or the last one. == Parameters [cols=2] |=== | Name | Description | *lhs* | The left operand | *rhs* | The right operand |=== == Synopsis Declared in `<mrdocs/Dom/Value.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<std::convertible_to<Value> S> auto operator&&( S const& lhs, link:#mrdocs-dom-Value[Value] const& rhs) noexcept; ---- == Synopsis Declared in `<mrdocs/Dom/Value.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<std::convertible_to<Value> S> auto operator&&( link:#mrdocs-dom-Value[Value] const& lhs, S const& rhs) noexcept; ---- Addition operators == Synopses Declared in `<mrdocs/Dom/Array.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-dom-Array-iterator[iterator] operator+( link:#mrdocs-dom-Array-iterator[difference_type] n, link:#mrdocs-dom-Array-iterator[iterator] it) noexcept; ---- [.small]#[_» more..._]# Concatenate two arrays. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-dom-Array[Array] link:#mrdocs-dom-operator_plus-0a2[operator+]( link:#mrdocs-dom-Array[Array] const& lhs, link:#mrdocs-dom-Array[Array] const& rhs); ---- [.small]#link:#mrdocs-dom-operator_plus-0a2[_» more..._]# Concatenate two strings. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- auto link:#mrdocs-dom-operator_plus-0c8[operator+]( link:#mrdocs-dom-String[String] const& lhs, link:#mrdocs-dom-String[String] const& rhs) noexcept; ---- [.small]#link:#mrdocs-dom-operator_plus-0c8[_» more..._]# Add or concatenate two values. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-dom-Value[dom::Value] link:#mrdocs-dom-operator_plus-0cf[operator+]( link:#mrdocs-dom-Value[Value] const& lhs, link:#mrdocs-dom-Value[Value] const& rhs); ---- [.small]#link:#mrdocs-dom-operator_plus-0cf[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<std::convertible_to<Array> S> auto link:#mrdocs-dom-operator_plus-0a8[operator+]( link:#mrdocs-dom-Array[Array] const& lhs, S const& rhs) noexcept; ---- [.small]#link:#mrdocs-dom-operator_plus-0a8[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<std::convertible_to<Array> S> auto link:#mrdocs-dom-operator_plus-0b[operator+]( S const& lhs, link:#mrdocs-dom-Array[Array] const& rhs) noexcept; ---- [.small]#link:#mrdocs-dom-operator_plus-0b[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<link:#mrdocs-dom-StringLikeTy[StringLikeTy] S> auto link:#mrdocs-dom-operator_plus-00c[operator+]( S const& lhs, link:#mrdocs-dom-String[String] const& rhs) noexcept; ---- [.small]#link:#mrdocs-dom-operator_plus-00c[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<std::convertible_to<Value> S> auto link:#mrdocs-dom-operator_plus-01[operator+]( S const& lhs, link:#mrdocs-dom-Value[Value] const& rhs) noexcept; ---- [.small]#link:#mrdocs-dom-operator_plus-01[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<link:#mrdocs-dom-StringLikeTy[StringLikeTy] S> auto link:#mrdocs-dom-operator_plus-06b[operator+]( link:#mrdocs-dom-String[String] const& lhs, S const& rhs) noexcept; ---- [.small]#link:#mrdocs-dom-operator_plus-06b[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<std::convertible_to<Value> S> auto link:#mrdocs-dom-operator_plus-064[operator+]( link:#mrdocs-dom-Value[Value] const& lhs, S const& rhs) noexcept; ---- [.small]#link:#mrdocs-dom-operator_plus-064[_» more..._]# == Return Value The concatenated string. == Parameters [cols=2] |=== | Name | Description | *lhs* | The left‐hand side string. | *rhs* | The right‐hand side string. |=== Concatenate two arrays. == Synopsis Declared in `<mrdocs/Dom/Array.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-dom-Array[Array] operator+( link:#mrdocs-dom-Array[Array] const& lhs, link:#mrdocs-dom-Array[Array] const& rhs); ---- == Return Value An array of values == Parameters [cols=2] |=== | Name | Description | *lhs* | The left operand | *rhs* | The right operand |=== Concatenate two strings. == Synopsis Declared in `<mrdocs/Dom/String.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- auto operator+( link:#mrdocs-dom-String[String] const& lhs, link:#mrdocs-dom-String[String] const& rhs) noexcept; ---- == Return Value The concatenated string. == Parameters [cols=2] |=== | Name | Description | *lhs* | The left‐hand side string. | *rhs* | The right‐hand side string. |=== Add or concatenate two values. == Synopsis Declared in `<mrdocs/Dom/Value.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-dom-Value[dom::Value] operator+( link:#mrdocs-dom-Value[Value] const& lhs, link:#mrdocs-dom-Value[Value] const& rhs); ---- == Return Value A variant container for any kind of Dom value. == Parameters [cols=2] |=== | Name | Description | *lhs* | The left operand | *rhs* | The right operand |=== == Synopsis Declared in `<mrdocs/Dom/Array.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<std::convertible_to<Array> S> auto operator+( link:#mrdocs-dom-Array[Array] const& lhs, S const& rhs) noexcept; ---- == Synopsis Declared in `<mrdocs/Dom/Array.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<std::convertible_to<Array> S> auto operator+( S const& lhs, link:#mrdocs-dom-Array[Array] const& rhs) noexcept; ---- == Synopsis Declared in `<mrdocs/Dom/String.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<link:#mrdocs-dom-StringLikeTy[StringLikeTy] S> auto operator+( S const& lhs, link:#mrdocs-dom-String[String] const& rhs) noexcept; ---- == Synopsis Declared in `<mrdocs/Dom/Value.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<std::convertible_to<Value> S> auto operator+( S const& lhs, link:#mrdocs-dom-Value[Value] const& rhs) noexcept; ---- == Synopsis Declared in `<mrdocs/Dom/String.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<link:#mrdocs-dom-StringLikeTy[StringLikeTy] S> auto operator+( link:#mrdocs-dom-String[String] const& lhs, S const& rhs) noexcept; ---- == Synopsis Declared in `<mrdocs/Dom/Value.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<std::convertible_to<Value> S> auto operator+( link:#mrdocs-dom-Value[Value] const& lhs, S const& rhs) noexcept; ---- Return the first dom::Value that is truthy, or the last one. == Synopses Declared in `<mrdocs/Dom/Value.hpp>` Return the first dom::Value that is truthy, or the last one. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-dom-Value[dom::Value] link:#mrdocs-dom-operator_or-05[operator||]( link:#mrdocs-dom-Value[Value] const& lhs, link:#mrdocs-dom-Value[Value] const& rhs); ---- [.small]#link:#mrdocs-dom-operator_or-05[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<std::convertible_to<Value> S> auto link:#mrdocs-dom-operator_or-0d[operator||]( S const& lhs, link:#mrdocs-dom-Value[Value] const& rhs) noexcept; ---- [.small]#link:#mrdocs-dom-operator_or-0d[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<std::convertible_to<Value> S> auto link:#mrdocs-dom-operator_or-09[operator||]( link:#mrdocs-dom-Value[Value] const& lhs, S const& rhs) noexcept; ---- [.small]#link:#mrdocs-dom-operator_or-09[_» more..._]# Return the first dom::Value that is truthy, or the last one. == Synopsis Declared in `<mrdocs/Dom/Value.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-dom-Value[dom::Value] operator||( link:#mrdocs-dom-Value[Value] const& lhs, link:#mrdocs-dom-Value[Value] const& rhs); ---- == Description This function is equivalent to the JavaScript `||` operator. == Return Value the first dom::Value that is truthy, or the last one. == Parameters [cols=2] |=== | Name | Description | *lhs* | The left operand | *rhs* | The right operand |=== == Synopsis Declared in `<mrdocs/Dom/Value.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<std::convertible_to<Value> S> auto operator||( S const& lhs, link:#mrdocs-dom-Value[Value] const& rhs) noexcept; ---- == Synopsis Declared in `<mrdocs/Dom/Value.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<std::convertible_to<Value> S> auto operator||( link:#mrdocs-dom-Value[Value] const& lhs, S const& rhs) noexcept; ---- Return a non‐empty string, or a null. == Synopses Declared in `<mrdocs/Dom/Value.hpp>` Return a non‐empty string, or a null. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-dom-Value[Value] link:#mrdocs-dom-stringOrNull-06[stringOrNull](std::string_view s); ---- [.small]#link:#mrdocs-dom-stringOrNull-06[_» more..._]# Return a non‐empty string, or a null. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-dom-Value[Value] link:#mrdocs-dom-stringOrNull-0e[stringOrNull](link:#mrdocs-Optional-03[Optional<std::string>] s); ---- [.small]#link:#mrdocs-dom-stringOrNull-0e[_» more..._]# Return a non‐empty string, or a null. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-dom-Value[Value] link:#mrdocs-dom-stringOrNull-0d[stringOrNull](std::string const& s); ---- [.small]#link:#mrdocs-dom-stringOrNull-0d[_» more..._]# == Parameters [cols=2] |=== | Name | Description | *s* | The string to check. |=== Return a non‐empty string, or a null. == Synopsis Declared in `<mrdocs/Dom/Value.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-dom-Value[Value] stringOrNull(std::string_view s); ---- == Return Value a non‐empty string, or a null. == Parameters [cols=2] |=== | Name | Description | *s* | The string to check. |=== Return a non‐empty string, or a null. == Synopsis Declared in `<mrdocs/Dom/Value.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-dom-Value[Value] stringOrNull(link:#mrdocs-Optional-03[Optional<std::string>] s); ---- == Return Value a non‐empty string, or a null. == Parameters [cols=2] |=== | Name | Description | *s* | The string to check. |=== Return a non‐empty string, or a null. == Synopsis Declared in `<mrdocs/Dom/Value.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-dom-Value[Value] stringOrNull(std::string const& s); ---- == Return Value a non‐empty string, or a null. == Parameters [cols=2] |=== | Name | Description | *s* | The string to check. |=== `swap` overloads == Synopses Declared in `<mrdocs/Dom/Array.hpp>` Swap two arrays. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void link:#mrdocs-dom-swap-0f3[swap]( link:#mrdocs-dom-Array[Array]& lhs, link:#mrdocs-dom-Array[Array]& rhs) noexcept; ---- [.small]#link:#mrdocs-dom-swap-0f3[_» more..._]# Swap two objects. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void link:#mrdocs-dom-swap-0ff[swap]( link:#mrdocs-dom-Function[Function]& lhs, link:#mrdocs-dom-Function[Function]& rhs) noexcept; ---- [.small]#link:#mrdocs-dom-swap-0ff[_» more..._]# Swap two objects. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void link:#mrdocs-dom-swap-08[swap]( link:#mrdocs-dom-Object[Object]& lhs, link:#mrdocs-dom-Object[Object]& rhs) noexcept; ---- [.small]#link:#mrdocs-dom-swap-08[_» more..._]# Swap two strings. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr void link:#mrdocs-dom-swap-06[swap]( link:#mrdocs-dom-String[String]& lhs, link:#mrdocs-dom-String[String]& rhs) noexcept; ---- [.small]#link:#mrdocs-dom-swap-06[_» more..._]# Swap two values. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void link:#mrdocs-dom-swap-01[swap]( link:#mrdocs-dom-Value[Value]& v0, link:#mrdocs-dom-Value[Value]& v1) noexcept; ---- [.small]#link:#mrdocs-dom-swap-01[_» more..._]# == Parameters [cols=2] |=== | Name | Description | *lhs* | The first object. | *rhs* | The second object. |=== Swap two arrays. == Synopsis Declared in `<mrdocs/Dom/Array.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void swap( link:#mrdocs-dom-Array[Array]& lhs, link:#mrdocs-dom-Array[Array]& rhs) noexcept; ---- == Parameters [cols=2] |=== | Name | Description | *lhs* | An array of values | *rhs* | An array of values |=== Swap two objects. == Synopsis Declared in `<mrdocs/Dom/Function.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void swap( link:#mrdocs-dom-Function[Function]& lhs, link:#mrdocs-dom-Function[Function]& rhs) noexcept; ---- == Parameters [cols=2] |=== | Name | Description | *lhs* | The first object. | *rhs* | The second object. |=== Swap two objects. == Synopsis Declared in `<mrdocs/Dom/Object.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void swap( link:#mrdocs-dom-Object[Object]& lhs, link:#mrdocs-dom-Object[Object]& rhs) noexcept; ---- == Parameters [cols=2] |=== | Name | Description | *lhs* | A container of key and value pairs. | *rhs* | A container of key and value pairs. |=== Swap two strings. == Synopsis Declared in `<mrdocs/Dom/String.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr void swap( link:#mrdocs-dom-String[String]& lhs, link:#mrdocs-dom-String[String]& rhs) noexcept; ---- == Parameters [cols=2] |=== | Name | Description | *lhs* | The first string. | *rhs* | The second string. |=== Swap two values. == Synopsis Declared in `<mrdocs/Dom/Value.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void swap( link:#mrdocs-dom-Value[Value]& v0, link:#mrdocs-dom-Value[Value]& v1) noexcept; ---- == Parameters [cols=2] |=== | Name | Description | *v0* | A variant container for any kind of Dom value. | *v1* | A variant container for any kind of Dom value. |=== `toString` overloads == Synopses Declared in `<mrdocs/Dom/Array.hpp>` Return a diagnostic string. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::string link:#mrdocs-dom-toString-01b[toString](link:#mrdocs-dom-Array[Array] const&); ---- [.small]#link:#mrdocs-dom-toString-01b[_» more..._]# Return a diagnostic string. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::string link:#mrdocs-dom-toString-018[toString](link:#mrdocs-dom-Object[Object] const&); ---- [.small]#link:#mrdocs-dom-toString-018[_» more..._]# Return value as a string. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::string link:#mrdocs-dom-toString-02[toString](link:#mrdocs-dom-Value[Value] const& value); ---- [.small]#link:#mrdocs-dom-toString-02[_» more..._]# Return a diagnostic string. == Synopsis Declared in `<mrdocs/Dom/Array.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::string toString(link:#mrdocs-dom-Array[Array] const&); ---- == Return Value a diagnostic string. Return a diagnostic string. == Synopsis Declared in `<mrdocs/Dom/Object.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::string toString(link:#mrdocs-dom-Object[Object] const&); ---- == Return Value a diagnostic string. Return value as a string. == Synopsis Declared in `<mrdocs/Dom/Value.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::string toString(link:#mrdocs-dom-Value[Value] const& value); ---- == Return Value value as a string. == Parameters [cols=2] |=== | Name | Description | *value* | A variant container for any kind of Dom value. |=== Equality operators == Synopses Declared in `<mrdocs/Dom/Array.hpp>` Return the result of comparing two strings. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool link:#mrdocs-dom-operator_eq-04[operator==]( link:#mrdocs-dom-String[String] const& lhs, link:#mrdocs-dom-String[String] const& rhs) noexcept; ---- [.small]#link:#mrdocs-dom-operator_eq-04[_» more..._]# Return the result of comparing two strings. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<link:#mrdocs-dom-StringLikeTy[StringLikeTy] StringLike> bool link:#mrdocs-dom-operator_eq-0e[operator==]( link:#mrdocs-dom-String[String] const& lhs, StringLike const& rhs) noexcept; ---- [.small]#link:#mrdocs-dom-operator_eq-0e[_» more..._]# Compare two values for equality. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool link:#mrdocs-dom-operator_eq-07[operator==]( link:#mrdocs-dom-Value[Value] const& lhs, link:#mrdocs-dom-Value[Value] const& rhs) noexcept; ---- [.small]#link:#mrdocs-dom-operator_eq-07[_» more..._]# Compare two objects for equality. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool link:#mrdocs-dom-operator_eq-01[operator==]( link:#mrdocs-dom-Object[Object] const& a, link:#mrdocs-dom-Object[Object] const& b) noexcept; ---- [.small]#link:#mrdocs-dom-operator_eq-01[_» more..._]# Compare two arrays for equality. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool link:#mrdocs-dom-operator_eq-0b[operator==]( link:#mrdocs-dom-Array[Array] const& lhs, link:#mrdocs-dom-Array[Array] const& rhs) noexcept; ---- [.small]#link:#mrdocs-dom-operator_eq-0b[_» more..._]# Return the result of comparing two strings. == Synopsis Declared in `<mrdocs/Dom/String.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool operator==( link:#mrdocs-dom-String[String] const& lhs, link:#mrdocs-dom-String[String] const& rhs) noexcept; ---- == Return Value the result of comparing two strings. == Parameters [cols=2] |=== | Name | Description | *lhs* | The left operand | *rhs* | The right operand |=== Return the result of comparing two strings. == Synopsis Declared in `<mrdocs/Dom/String.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<link:#mrdocs-dom-StringLikeTy[StringLikeTy] StringLike> bool operator==( link:#mrdocs-dom-String[String] const& lhs, StringLike const& rhs) noexcept; ---- == Return Value the result of comparing two strings. == Parameters [cols=2] |=== | Name | Description | *lhs* | The left operand | *rhs* | The right operand |=== Compare two values for equality. == Synopsis Declared in `<mrdocs/Dom/Value.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool operator==( link:#mrdocs-dom-Value[Value] const& lhs, link:#mrdocs-dom-Value[Value] const& rhs) noexcept; ---- == Description This operator uses strict equality, meaning that the types must match exactly, and for objects and arrays the children must match exactly. The `==` operator behaves differently for objects compared to primitive data types like numbers and strings. When comparing objects using `==`, it checks for reference equality, not structural equality. This means that two objects are considered equal with `===` only if they reference the exact same object in memory. [NOTE] ==== In JavaScript, this is equivalent to the `===` operator, which does not perform type conversions. ==== == Return Value `true` if the objects are equal, `false` otherwise == Parameters [cols=2] |=== | Name | Description | *lhs* | The left operand | *rhs* | The right operand |=== Compare two objects for equality. == Synopsis Declared in `<mrdocs/Dom/Object.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool operator==( link:#mrdocs-dom-Object[Object] const& a, link:#mrdocs-dom-Object[Object] const& b) noexcept; ---- == Return Value `true` if the objects are equal, `false` otherwise == Parameters [cols=2] |=== | Name | Description | *a* | The left operand | *b* | The right operand |=== Compare two arrays for equality. == Synopsis Declared in `<mrdocs/Dom/Array.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool operator==( link:#mrdocs-dom-Array[Array] const& lhs, link:#mrdocs-dom-Array[Array] const& rhs) noexcept; ---- == Return Value `true` if the objects are equal, `false` otherwise == Parameters [cols=2] |=== | Name | Description | *lhs* | The left operand | *rhs* | The right operand |=== Return the result of comparing two strings. == Synopses Declared in `<mrdocs/Dom/String.hpp>` Return the result of comparing two strings. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool link:#mrdocs-dom-operator_not_eq-0e[operator!=]( link:#mrdocs-dom-String[String] const& lhs, link:#mrdocs-dom-String[String] const& rhs) noexcept; ---- [.small]#link:#mrdocs-dom-operator_not_eq-0e[_» more..._]# Return the result of comparing two strings. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<link:#mrdocs-dom-StringLikeTy[StringLikeTy] StringLike> bool link:#mrdocs-dom-operator_not_eq-03[operator!=]( link:#mrdocs-dom-String[String] const& lhs, StringLike const& rhs) noexcept; ---- [.small]#link:#mrdocs-dom-operator_not_eq-03[_» more..._]# Return the result of comparing two strings. == Synopsis Declared in `<mrdocs/Dom/String.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool operator!=( link:#mrdocs-dom-String[String] const& lhs, link:#mrdocs-dom-String[String] const& rhs) noexcept; ---- == Return Value the result of comparing two strings. == Parameters [cols=2] |=== | Name | Description | *lhs* | The left operand | *rhs* | The right operand |=== Return the result of comparing two strings. == Synopsis Declared in `<mrdocs/Dom/String.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<link:#mrdocs-dom-StringLikeTy[StringLikeTy] StringLike> bool operator!=( link:#mrdocs-dom-String[String] const& lhs, StringLike const& rhs) noexcept; ---- == Return Value the result of comparing two strings. == Parameters [cols=2] |=== | Name | Description | *lhs* | The left operand | *rhs* | The right operand |=== Three‐way comparison operators == Synopses Declared in `<mrdocs/Dom/Array.hpp>` Return the result of comparing two strings. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- auto link:#mrdocs-dom-operator_3way-00[operator<=>]( link:#mrdocs-dom-String[String] const& lhs, link:#mrdocs-dom-String[String] const& rhs) noexcept; ---- [.small]#link:#mrdocs-dom-operator_3way-00[_» more..._]# Return the result of comparing two strings. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<link:#mrdocs-dom-StringLikeTy[StringLikeTy] StringLike> auto link:#mrdocs-dom-operator_3way-01[operator<=>]( link:#mrdocs-dom-String[String] const& lhs, StringLike const& rhs) noexcept; ---- [.small]#link:#mrdocs-dom-operator_3way-01[_» more..._]# Three‐way comparison operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<std::convertible_to<Value> S> auto link:#mrdocs-dom-operator_3way-0c[operator<=>]( link:#mrdocs-dom-Value[Value] const& lhs, S const& rhs) noexcept; ---- [.small]#link:#mrdocs-dom-operator_3way-0c[_» more..._]# Three‐way comparison operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<std::convertible_to<Value> S> auto link:#mrdocs-dom-operator_3way-02[operator<=>]( S const& lhs, link:#mrdocs-dom-Value[Value] const& rhs) noexcept; ---- [.small]#link:#mrdocs-dom-operator_3way-02[_» more..._]# Compare two values for inequality. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::strong_ordering link:#mrdocs-dom-operator_3way-09[operator<=>]( link:#mrdocs-dom-Value[Value] const& lhs, link:#mrdocs-dom-Value[Value] const& rhs) noexcept; ---- [.small]#link:#mrdocs-dom-operator_3way-09[_» more..._]# Compare two objects for precedence. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::strong_ordering link:#mrdocs-dom-operator_3way-075[operator<=>]( link:#mrdocs-dom-Object[Object] const& a, link:#mrdocs-dom-Object[Object] const& b) noexcept; ---- [.small]#link:#mrdocs-dom-operator_3way-075[_» more..._]# Compare two arrays for precedence. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::strong_ordering link:#mrdocs-dom-operator_3way-0a[operator<=>]( link:#mrdocs-dom-Array[Array] const& lhs, link:#mrdocs-dom-Array[Array] const& rhs) noexcept; ---- [.small]#link:#mrdocs-dom-operator_3way-0a[_» more..._]# Return the result of comparing two strings. == Synopsis Declared in `<mrdocs/Dom/String.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- auto operator<=>( link:#mrdocs-dom-String[String] const& lhs, link:#mrdocs-dom-String[String] const& rhs) noexcept; ---- == Return Value the result of comparing two strings. == Parameters [cols=2] |=== | Name | Description | *lhs* | The left operand | *rhs* | The right operand |=== Return the result of comparing two strings. == Synopsis Declared in `<mrdocs/Dom/String.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<link:#mrdocs-dom-StringLikeTy[StringLikeTy] StringLike> auto operator<=>( link:#mrdocs-dom-String[String] const& lhs, StringLike const& rhs) noexcept; ---- == Return Value the result of comparing two strings. == Parameters [cols=2] |=== | Name | Description | *lhs* | The left operand | *rhs* | The right operand |=== Three‐way comparison operator == Synopsis Declared in `<mrdocs/Dom/Value.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<std::convertible_to<Value> S> auto operator<=>( link:#mrdocs-dom-Value[Value] const& lhs, S const& rhs) noexcept; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *lhs* | The left operand | *rhs* | The right operand |=== Three‐way comparison operator == Synopsis Declared in `<mrdocs/Dom/Value.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<std::convertible_to<Value> S> auto operator<=>( S const& lhs, link:#mrdocs-dom-Value[Value] const& rhs) noexcept; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *lhs* | The left operand | *rhs* | The right operand |=== Compare two values for inequality. == Synopsis Declared in `<mrdocs/Dom/Value.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::strong_ordering operator<=>( link:#mrdocs-dom-Value[Value] const& lhs, link:#mrdocs-dom-Value[Value] const& rhs) noexcept; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *lhs* | The left operand | *rhs* | The right operand |=== Compare two objects for precedence. == Synopsis Declared in `<mrdocs/Dom/Object.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::strong_ordering operator<=>( link:#mrdocs-dom-Object[Object] const& a, link:#mrdocs-dom-Object[Object] const& b) noexcept; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *a* | The left operand | *b* | The right operand |=== Compare two arrays for precedence. == Synopsis Declared in `<mrdocs/Dom/Array.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::strong_ordering operator<=>( link:#mrdocs-dom-Array[Array] const& lhs, link:#mrdocs-dom-Array[Array] const& rhs) noexcept; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *lhs* | The left operand | *rhs* | The right operand |=== Determine if `T` can be converted to link:#mrdocs-dom-Value[`dom::Value`]. == Synopsis Declared in `<mrdocs/Dom/LazyObject.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< class T, class Context> concept HasLazyObjectMap = HasLazyObjectMapWithContext<T, Context> || HasLazyObjectMapWithoutContext<T>; ---- == Description If `T` can be converted to link:#mrdocs-dom-Value[`dom::Value`] via a call to link:#mrdocs-dom-ValueFrom-0a[`dom::ValueFrom`], the static data member `value` is defined as `true`. Otherwise, `value` is defined as `false`. Concept to determine if a type can be mapped to a link:#mrdocs-dom-LazyObjectImpl-04[`dom::LazyObjectImpl`] with a user‐provided conversion. == Synopsis Declared in `<mrdocs/Dom/LazyObject.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< class T, class Context> concept HasLazyObjectMapWithContext = requires( detail::ArchetypalIO& io, T const& t, Context const& ctx) { { tag_invoke(LazyObjectMapTag{}, io, t, ctx) } ‐> std::same_as<void>; }; ---- == Description This concept determines if the user‐provided conversion is defined as: [,cpp] ---- template void tag_invoke( LazyObjectMapTag, IO&, T, Context const& ); ---- Concept to determine if a type can be mapped to a link:#mrdocs-dom-LazyObjectImpl-04[`dom::LazyObjectImpl`] with a user‐provided conversion. == Synopsis Declared in `<mrdocs/Dom/LazyObject.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class T> concept HasLazyObjectMapWithoutContext = requires( detail::ArchetypalIO& io, T const& t) { { tag_invoke(LazyObjectMapTag{}, io, t) } ‐> std::same_as<void>; }; ---- == Description This concept determines if the user‐provided conversion is defined as: [,cpp] ---- template void tag_invoke( LazyObjectMapTag, IO&, T& ); ---- This customization can be defined by any type that needs to be converted to/from a lazy link:#mrdocs-dom-Object[`dom::Object`]. For example: [,cpp] ---- template void tag_invoke( LazyObjectMapTag, IO& io, MyStruct const& s) { io.map("name", s.name); io.map("size", s.size); io.map("age", s.age); } ---- Determine if ` T` can be converted to link:#mrdocs-dom-Value[`dom::Value`] without a context. == Synopsis Declared in `<mrdocs/Dom/Value.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class T> concept HasStandaloneValueFrom = HasValueFromWithoutContext<T> || std::constructible_from<Value, T>; ---- == Description This concept determines if there is a user‐provided conversion to link:#mrdocs-dom-Value[`dom::Value`] that does not require a context or if link:#mrdocs-dom-Value[`dom::Value`] has a constructor that can be used to convert `T` to a link:#mrdocs-dom-Value[`dom::Value`]. Determine if `T` can be converted to link:#mrdocs-dom-Value[`dom::Value`]. == Synopsis Declared in `<mrdocs/Dom/Value.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< class T, class Context> concept HasValueFrom = HasValueFromWithContext<T, Context> || HasValueFromWithoutContext<T> || std::constructible_from<Value, T>; ---- == Description If `T` can be converted to link:#mrdocs-dom-Value[`dom::Value`] via a call to link:#mrdocs-dom-ValueFrom-0a[`dom::ValueFrom`], the static data member `value` is defined as `true`. Otherwise, `value` is defined as `false`. == See Also link:#mrdocs-dom-ValueFrom-0a[`dom::ValueFrom`] Concept to determine if a type can be converted to a link:#mrdocs-dom-Value[`dom::Value`] with a user‐provided conversion. == Synopsis Declared in `<mrdocs/Dom/Value.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< class T, class Context> concept HasValueFromWithContext = requires( Value& v, T const& t, Context const& ctx) { tag_invoke(ValueFromTag{}, v, t, ctx); }; ---- == Description This concept determines if the user‐provided conversion is defined as: [,cpp] ---- void tag_invoke( ValueFromTag, dom::Value&, T, Context const& ); ---- Concept to determine if a type can be converted to a link:#mrdocs-dom-Value[`dom::Value`] with a user‐provided conversion. == Synopsis Declared in `<mrdocs/Dom/Value.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class T> concept HasValueFromWithoutContext = requires( Value& v, T const& t) { tag_invoke(ValueFromTag{}, v, t); }; ---- == Description This concept determines if the user‐provided conversion is defined as: [,cpp] ---- void tag_invoke( ValueFromTag, dom::Value&, T ); ---- Satisfied if StringTy is convertible to String but not a String. == Synopsis Declared in `<mrdocs/Dom/String.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class StringTy> concept StringLikeTy = ! std::is_same_v<StringTy, String> && std::convertible_to<StringTy, std::string_view>; ---- == Synopsis Declared in `<mrdocs/Dom/Function.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class F> concept function_traits_convertible_to_value = has_function_traits<F> && has_function_traits_for_default_function_impl<F>; ---- == Synopsis Declared in `<mrdocs/Dom/Function.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<typename F> concept has_function_args_for_default_function_impl = (std::tuple_size_v<typename function_traits<F>::args_type> == 0 || []<std::size_t... I>(std::index_sequence<I...>) { return (std::convertible_to< std::tuple_element_t< I, typename function_traits<F>::args_type>, Value> && ...); }(std::make_index_sequence<std::tuple_size_v<typename function_traits<F>::args_type>>())); ---- == Synopsis Declared in `<mrdocs/Dom/Function.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<typename F> concept has_function_traits = requires { typename function_traits<F>::return_type; typename function_traits<F>::args_type; }; ---- == Synopsis Declared in `<mrdocs/Dom/Function.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<typename F> concept has_function_traits_for_default_function_impl = has_invoke_result_for_default_function_impl<F> && has_function_args_for_default_function_impl<F>; ---- == Synopsis Declared in `<mrdocs/Dom/Function.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<typename F> concept has_invoke_expected_result_convertible_to_dom_value = detail::isExpected<typename function_traits<F>::return_type> && (std::convertible_to<typename function_traits<F>::return_type::value_type, Value> || std::same_as<typename function_traits<F>::return_type::value_type, void>); ---- == Synopsis Declared in `<mrdocs/Dom/Function.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<typename F> concept has_invoke_result_convertible_to_dom_value = std::convertible_to<typename function_traits<F>::return_type, Value> || std::same_as<typename function_traits<F>::return_type, void>; ---- == Synopsis Declared in `<mrdocs/Dom/Function.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<typename F> concept has_invoke_result_for_default_function_impl = has_invoke_result_convertible_to_dom_value<F> || has_invoke_expected_result_convertible_to_dom_value<F>; ---- == Enums [cols=2] |=== | Name | Description | link:#mrdocs-files-FileType[`FileType`] | The type of a file. |=== == Functions [cols=2] |=== | Name | Description | link:#mrdocs-files-appendPath-04[`appendPath`] | | link:#mrdocs-files-createDirectory[`createDirectory`] | Create a directory. | link:#mrdocs-files-exists[`exists`] | Determine if a path exists | link:#mrdocs-files-getFileName[`getFileName`] | Return the filename part of the path. | link:#mrdocs-files-getFileText[`getFileText`] | Return the contents of a file as a string. | link:#mrdocs-files-getFileType[`getFileType`] | Return the file type or an error | link:#mrdocs-files-getParentDir-00[`getParentDir`] | Return the parent directory. | link:#mrdocs-files-getSourceFilename[`getSourceFilename`] | Return the relevant suffix of a source file path. | link:#mrdocs-files-isAbsolute[`isAbsolute`] | Return true if pathName is absolute. | link:#mrdocs-files-isDirectory[`isDirectory`] | Determine if a path is a directory. | link:#mrdocs-files-isDirsy[`isDirsy`] | Return true if pathName ends in a separator. | link:#mrdocs-files-isLexicalDirectory[`isLexicalDirectory`] | Determine lexically if a path is a directory. | link:#mrdocs-files-isPosixStyle[`isPosixStyle`] | Check if the path is posix style. | link:#mrdocs-files-makeAbsolute-0d[`makeAbsolute`] | Return an absolute path from a possibly relative path. | link:#mrdocs-files-makeDirsy[`makeDirsy`] | Append a trailing native separator if not already present. | link:#mrdocs-files-makePosixStyle[`makePosixStyle`] | Convert all backward slashes to forward slashes. | link:#mrdocs-files-normalizeDir[`normalizeDir`] | Return a normalized directory. | link:#mrdocs-files-normalizePath[`normalizePath`] | Return a normalized path. | link:#mrdocs-files-requireAbsolute[`requireAbsolute`] | Return an error if pathName is not absolute. | link:#mrdocs-files-requireDirectory[`requireDirectory`] | Return an error if the path is not a directory. | link:#mrdocs-files-startsWith[`startsWith`] | Checks if the given path starts with the specified prefix. | link:#mrdocs-files-withExtension[`withExtension`] | Return the filename with a new or different extension. |=== The type of a file. == Synopsis Declared in `<mrdocs/Support/Path.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- enum class FileType : int; ---- == Members [cols=2] |=== | Name | Description | `not_found` | The file does not exist | `regular` | The path represents a regular file | `directory` | The file is a directory | `other` | The file is something else |=== == Non-Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-files-getFileType[`getFileType`] | Return the file type or an error |=== == Synopses Declared in `<mrdocs/Support/Path.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::string link:#mrdocs-files-appendPath-00[appendPath]( std::string_view basePath, std::string_view name); ---- [.small]#link:#mrdocs-files-appendPath-00[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::string link:#mrdocs-files-appendPath-03[appendPath]( std::string_view basePath, std::string_view name1, std::string_view name2); ---- [.small]#link:#mrdocs-files-appendPath-03[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::string link:#mrdocs-files-appendPath-07[appendPath]( std::string_view basePath, std::string_view name1, std::string_view name2, std::string_view name3); ---- [.small]#link:#mrdocs-files-appendPath-07[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::string link:#mrdocs-files-appendPath-08[appendPath]( std::string_view basePath, std::string_view name1, std::string_view name2, std::string_view name3, std::string_view name4); ---- [.small]#link:#mrdocs-files-appendPath-08[_» more..._]# == Synopsis Declared in `<mrdocs/Support/Path.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::string appendPath( std::string_view basePath, std::string_view name); ---- == Synopsis Declared in `<mrdocs/Support/Path.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::string appendPath( std::string_view basePath, std::string_view name1, std::string_view name2); ---- == Synopsis Declared in `<mrdocs/Support/Path.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::string appendPath( std::string_view basePath, std::string_view name1, std::string_view name2, std::string_view name3); ---- == Synopsis Declared in `<mrdocs/Support/Path.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::string appendPath( std::string_view basePath, std::string_view name1, std::string_view name2, std::string_view name3, std::string_view name4); ---- Create a directory. == Synopsis Declared in `<mrdocs/Support/Path.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-Expected-0a[Expected<void>] createDirectory(std::string_view pathName); ---- == Description Any missing parent directories will also be created. == Return Value A container holding an error or a value. == Parameters [cols=2] |=== | Name | Description | *pathName* | The absolute or relative path to create. |=== Determine if a path exists == Synopsis Declared in `<mrdocs/Support/Path.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool exists(std::string_view pathName); ---- == Return Value true if the path exists, false otherwise. == Parameters [cols=2] |=== | Name | Description | *pathName* | The absolute or relative path |=== Return the filename part of the path. == Synopsis Declared in `<mrdocs/Support/Path.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::string_view getFileName(std::string_view pathName); ---- == Return Value The filename part of the path, or the empty string if there is none. == Parameters [cols=2] |=== | Name | Description | *pathName* | The absolute or relative path to the directory or file. |=== Return the contents of a file as a string. == Synopsis Declared in `<mrdocs/Support/Path.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-Expected-0a[Expected<std::string>] getFileText(std::string_view pathName); ---- == Return Value The contents of the file, or an error if any occurred. == Parameters [cols=2] |=== | Name | Description | *pathName* | The absolute or relative path to the file. |=== Return the file type or an error == Synopsis Declared in `<mrdocs/Support/Path.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-Expected-0a[Expected<FileType>] getFileType(std::string_view pathName); ---- == Return Value the file type or an error == Parameters [cols=2] |=== | Name | Description | *pathName* | The absolute or relative path to the file. |=== Return the parent directory. == Synopses Declared in `<mrdocs/Support/Path.hpp>` Return the parent directory. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::string link:#mrdocs-files-getParentDir-07[getParentDir](std::string_view pathName); ---- [.small]#link:#mrdocs-files-getParentDir-07[_» more..._]# Return the parent directory. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::string link:#mrdocs-files-getParentDir-08[getParentDir]( std::string_view pathName, unsigned int levels); ---- [.small]#link:#mrdocs-files-getParentDir-08[_» more..._]# == Return Value The parent directory, or the empty string if there is none. == Parameters [cols=2] |=== | Name | Description | *pathName* | The absolute or relative path to the directory or file. | *levels* | The number of levels to go up. If this is zero, the original path is returned. If this is greater than the number of levels in the path, the empty string is returned. |=== Return the parent directory. == Synopsis Declared in `<mrdocs/Support/Path.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::string getParentDir(std::string_view pathName); ---- == Description If the parent directory is defined, the returned path will always have a trailing separator. == Return Value The parent directory, or the empty string if there is none. == Parameters [cols=2] |=== | Name | Description | *pathName* | The absolute or relative path to the directory or file. |=== Return the parent directory. == Synopsis Declared in `<mrdocs/Support/Path.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::string getParentDir( std::string_view pathName, unsigned int levels); ---- == Description If the parent directory is defined, the returned path will always have a trailing separator. == Return Value The parent directory, or the empty string if there is none. == Parameters [cols=2] |=== | Name | Description | *pathName* | The absolute or relative path to the directory or file. | *levels* | The number of levels to go up. If this is zero, the original path is returned. If this is greater than the number of levels in the path, the empty string is returned. |=== Return the relevant suffix of a source file path. == Synopsis Declared in `<mrdocs/Support/Path.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::string_view getSourceFilename(std::string_view pathName); ---- == Return Value The suffix, including the leading dot, or the empty string if there is no suffix. == Parameters [cols=2] |=== | Name | Description | *pathName* | The absolute or relative path to the file. |=== Return true if pathName is absolute. == Synopsis Declared in `<mrdocs/Support/Path.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool isAbsolute(std::string_view pathName) noexcept; ---- == Return Value true if the path is absolute, false otherwise. == Parameters [cols=2] |=== | Name | Description | *pathName* | The absolute or relative path to the directory or file. |=== Determine if a path is a directory. == Synopsis Declared in `<mrdocs/Support/Path.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool isDirectory(std::string_view pathName); ---- == Return Value true if the path exists and is a directory, false otherwise. == Parameters [cols=2] |=== | Name | Description | *pathName* | The absolute or relative path |=== Return true if pathName ends in a separator. == Synopsis Declared in `<mrdocs/Support/Path.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool isDirsy(std::string_view pathName) noexcept; ---- == Return Value true if the path ends in a separator, false otherwise. == Parameters [cols=2] |=== | Name | Description | *pathName* | The absolute or relative path to the directory or file. |=== Determine lexically if a path is a directory. == Synopsis Declared in `<mrdocs/Support/Path.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool isLexicalDirectory(std::string_view pathName); ---- == Description This function determines if a path is a directory. If the path does not exist, the function determines lexically if the path represents a directory. In this case, the function returns true if the last path segment contains a period, otherwise false. == Return Value true if the path exists and is a directory, or if the path does not exist and the last path segment does not contain a period. false otherwise. == Parameters [cols=2] |=== | Name | Description | *pathName* | The absolute or relative path |=== Check if the path is posix style. == Synopsis Declared in `<mrdocs/Support/Path.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool isPosixStyle(std::string_view pathName); ---- == Return Value true if the path uses only forward slashes as path separators, false otherwise. == Parameters [cols=2] |=== | Name | Description | *pathName* | The absolute or relative path to the directory or file. |=== Return an absolute path from a possibly relative path. == Synopses Declared in `<mrdocs/Support/Path.hpp>` Return an absolute path from a possibly relative path. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-Expected-0a[Expected<std::string>] link:#mrdocs-files-makeAbsolute-0c6[makeAbsolute](std::string_view pathName); ---- [.small]#link:#mrdocs-files-makeAbsolute-0c6[_» more..._]# Return an absolute path from a possibly relative path. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::string link:#mrdocs-files-makeAbsolute-0c2[makeAbsolute]( std::string_view pathName, std::string_view workingDir); ---- [.small]#link:#mrdocs-files-makeAbsolute-0c2[_» more..._]# == Return Value * The absolute path, or an error if any occurred. * The absolute path, or an error if any occurred. == Parameters [cols=2] |=== | Name | Description | *pathName* | The absolute or relative path to the directory or file. | *workingDir* | The working directory to resolve relative paths against. |=== Return an absolute path from a possibly relative path. == Synopsis Declared in `<mrdocs/Support/Path.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-Expected-0a[Expected<std::string>] makeAbsolute(std::string_view pathName); ---- == Description Relative paths are resolved against the current working directory of the process. == Return Value The absolute path, or an error if any occurred. == Parameters [cols=2] |=== | Name | Description | *pathName* | The absolute or relative path to the directory or file. |=== Return an absolute path from a possibly relative path. == Synopsis Declared in `<mrdocs/Support/Path.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::string makeAbsolute( std::string_view pathName, std::string_view workingDir); ---- == Return Value The absolute path, or an error if any occurred. == Parameters [cols=2] |=== | Name | Description | *pathName* | The absolute or relative path to the directory or file. | *workingDir* | The working directory to resolve relative paths against. |=== Append a trailing native separator if not already present. == Synopsis Declared in `<mrdocs/Support/Path.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::string makeDirsy(std::string_view pathName); ---- == Return Value A copy of the path with a trailing separator if not already present. == Parameters [cols=2] |=== | Name | Description | *pathName* | The absolute or relative path to the directory or file. |=== Convert all backward slashes to forward slashes. == Synopsis Declared in `<mrdocs/Support/Path.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::string makePosixStyle(std::string_view pathName); ---- == Return Value A copy of the path with all backslashes replaced with forward slashes. == Parameters [cols=2] |=== | Name | Description | *pathName* | The absolute or relative path to the directory or file. |=== Return a normalized directory. == Synopsis Declared in `<mrdocs/Support/Path.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::string normalizeDir(std::string_view pathName); ---- == Description This function returns a new directory path based on applying the changes defined by link:#mrdocs-files-normalizePath[`normalizePath`] and link:#mrdocs-files-makeDirsy[`makeDirsy`]. == Return Value The normalized path. == Parameters [cols=2] |=== | Name | Description | *pathName* | The relative or absolute path. |=== Return a normalized path. == Synopsis Declared in `<mrdocs/Support/Path.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::string normalizePath(std::string_view pathName); ---- == Description This function returns a new path based on applying the following changes to the passed path: * "." and ".." are resolved * Separators made uniform * Separators are replaced with the native separator == Return Value The normalized path. == Parameters [cols=2] |=== | Name | Description | *pathName* | The relative or absolute path. |=== Return an error if pathName is not absolute. == Synopsis Declared in `<mrdocs/Support/Path.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-Expected-0a[Expected<void>] requireAbsolute(std::string_view pathName); ---- == Return Value An error if the path is not absolute. == Parameters [cols=2] |=== | Name | Description | *pathName* | The absolute or relative path to the directory or file. |=== Return an error if the path is not a directory. == Synopsis Declared in `<mrdocs/Support/Path.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-Expected-0a[Expected<void>] requireDirectory(std::string_view pathName); ---- == Return Value An error if the path does not exist or is not a directory. == Parameters [cols=2] |=== | Name | Description | *pathName* | The absolute or relative path |=== Checks if the given path starts with the specified prefix. == Synopsis Declared in `<mrdocs/Support/Path.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool startsWith( std::string_view pathName, std::string_view prefix); ---- == Description This function compares the beginning of the `pathName` with the `prefix`. It returns true if `pathName` starts with `prefix`. The comparison is case‐sensitive. Unlike a direct string comparison, this function also accepts differences in the slashes used to separate paths. Therefore, it returns true even when the slashes used in `pathName` and `prefix` are not the same. The function accepts both forward slashes ("/") and backslashes (""). == Return Value A boolean value. Returns true if `pathName` starts with `prefix`, false otherwise. == Parameters [cols=2] |=== | Name | Description | *pathName* | A string view representing the path to be checked. | *prefix* | A string view representing the prefix to be checked against the path. |=== Return the filename with a new or different extension. == Synopsis Declared in `<mrdocs/Support/Path.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::string withExtension( std::string_view fileName, std::string_view ext); ---- == Return Value the filename with a new or different extension. == Parameters [cols=2] |=== | Name | Description | *fileName* | The absolute or relative path to the directory or file. | *ext* | The extension to use, without a leading dot. If this is empty and the path contains an extension, then the extension is removed. |=== == Functions [cols=2] |=== | Name | Description | link:#mrdocs-helpers-and_fn[`and_fn`] | "and" helper function | link:#mrdocs-helpers-detag_fn[`detag_fn`] | "detag" helper function | link:#mrdocs-helpers-eq_fn[`eq_fn`] | "eq" helper function | link:#mrdocs-helpers-increment_fn[`increment_fn`] | "increment" helper function | link:#mrdocs-helpers-ne_fn[`ne_fn`] | "ne" helper function | link:#mrdocs-helpers-not_fn[`not_fn`] | "not" helper function | link:#mrdocs-helpers-or_fn[`or_fn`] | "or" helper function | link:#mrdocs-helpers-registerAntoraHelpers[`registerAntoraHelpers`] | Register all the Antora helpers into a Handlebars instance | link:#mrdocs-helpers-registerBuiltinHelpers[`registerBuiltinHelpers`] | Register all the built‐in helpers into a Handlebars instance | link:#mrdocs-helpers-registerConstructorHelpers[`registerConstructorHelpers`] | Register contructor helpers into a Handlebars instance | link:#mrdocs-helpers-registerContainerHelpers[`registerContainerHelpers`] | Register helpers to manipulate composite data types | link:#mrdocs-helpers-registerLogicalHelpers[`registerLogicalHelpers`] | Register logical helpers into a Handlebars instance | link:#mrdocs-helpers-registerMathHelpers[`registerMathHelpers`] | Register math helpers into a Handlebars instance | link:#mrdocs-helpers-registerStringHelpers[`registerStringHelpers`] | Register string helpers into a Handlebars instance | link:#mrdocs-helpers-registerTypeHelpers[`registerTypeHelpers`] | Register type helpers into a Handlebars instance | link:#mrdocs-helpers-relativize_fn[`relativize_fn`] | "relativize" helper function | link:#mrdocs-helpers-select_fn[`select_fn`] | "select" helper function | link:#mrdocs-helpers-year_fn[`year_fn`] | "year" helper function |=== "and" helper function == Synopsis Declared in `<mrdocs/Support/Handlebars.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool and_fn(link:#mrdocs-dom-Array[dom::Array] const& args); ---- == Description The "and" helper returns true if all of the values are truthy. == Return Value True if all of the values are truthy, false otherwise. == Parameters [cols=2] |=== | Name | Description | *args* | The values to test |=== "detag" helper function == Synopsis Declared in `<mrdocs/Support/Handlebars.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-dom-Value[dom::Value] detag_fn(link:#mrdocs-dom-Value[dom::Value] html); ---- == Description The "detag" helper applies the regex expression "<[]+>" to the input to remove all HTML tags. == Return Value A variant container for any kind of Dom value. == Parameters [cols=2] |=== | Name | Description | *html* | A variant container for any kind of Dom value. |=== "eq" helper function == Synopsis Declared in `<mrdocs/Support/Handlebars.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool eq_fn(link:#mrdocs-dom-Array[dom::Array] const& args); ---- == Description The "eq" helper returns true if all of the values are equal. == Return Value True if all of the values are equal, false otherwise. == Parameters [cols=2] |=== | Name | Description | *args* | The values to compare |=== "increment" helper function == Synopsis Declared in `<mrdocs/Support/Handlebars.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-dom-Value[dom::Value] increment_fn(link:#mrdocs-dom-Value[dom::Value] const& value); ---- == Description The "increment" helper adds 1 to the value if it's an integer and converts booleans to `true`. Other values are returned as‐is. == Return Value A variant container for any kind of Dom value. == Parameters [cols=2] |=== | Name | Description | *value* | A variant container for any kind of Dom value. |=== "ne" helper function == Synopsis Declared in `<mrdocs/Support/Handlebars.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool ne_fn(link:#mrdocs-dom-Array[dom::Array] const& args); ---- == Description The "ne" helper returns true if any of the values are not equal. == Return Value True if any of the values are not equal, false otherwise. == Parameters [cols=2] |=== | Name | Description | *args* | The values to compare |=== "not" helper function == Synopsis Declared in `<mrdocs/Support/Handlebars.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool not_fn(link:#mrdocs-dom-Array[dom::Array] const& arg); ---- == Description The "not" helper returns true if not all of the values are truthy. == Return Value True if not all of the values are truthy, false otherwise. == Parameters [cols=2] |=== | Name | Description | *arg* | An array of values |=== "or" helper function == Synopsis Declared in `<mrdocs/Support/Handlebars.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-dom-Value[dom::Value] or_fn(link:#mrdocs-dom-Array[dom::Array] const& args); ---- == Description The "or" helper returns true if any of the values are truthy. == Return Value A variant container for any kind of Dom value. == Parameters [cols=2] |=== | Name | Description | *args* | An array of values |=== Register all the Antora helpers into a Handlebars instance == Synopsis Declared in `<mrdocs/Support/Handlebars.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void registerAntoraHelpers(link:#mrdocs-Handlebars[Handlebars]& hbs); ---- == Description This function registers all the helpers that are part of the default Antora UI. Individual Antora helpers can also be registered with the public `*_fn` functions in this namespace. Since the Antora helpers are not mandatory and include many functions not applicable to all applications, this allows the user to register only some of the Antora helpers. == Parameters [cols=2] |=== | Name | Description | *hbs* | The Handlebars instance to register the helpers into |=== == See Also https://gitlab.com/antora/antora‐ui‐default/‐/tree/master/src/helpers Register all the built‐in helpers into a Handlebars instance == Synopsis Declared in `<mrdocs/Support/Handlebars.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void registerBuiltinHelpers(link:#mrdocs-Handlebars[Handlebars]& hbs); ---- == Description Individual built‐in helpers can also be registered with the public `*_fn` functions in this namespace. This allows the user to override only some of the built‐in helpers. In particular, this is important for mandatory helpers, such as `blockHelperMissing` and `helperMissing`. == Parameters [cols=2] |=== | Name | Description | *hbs* | The Handlebars instance to register the helpers into |=== == See Also https://github.com/handlebars‐lang/handlebars.js/tree/master/lib/handlebars/helpers https://handlebarsjs.com/guide/builtin‐helpers.html Register contructor helpers into a Handlebars instance == Synopsis Declared in `<mrdocs/Support/Handlebars.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void registerConstructorHelpers(link:#mrdocs-Handlebars[Handlebars]& hbs); ---- == Description This function registers a number of common helpers that allows the user to create objects of specific types directly from literals in the template. == Parameters [cols=2] |=== | Name | Description | *hbs* | The Handlebars instance to register the helpers into |=== Register helpers to manipulate composite data types == Synopsis Declared in `<mrdocs/Support/Handlebars.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void registerContainerHelpers(link:#mrdocs-Handlebars[Handlebars]& hbs); ---- == Description This function registers a number of common helpers that operate on Objects and Arrays. Object and Array helpers are particularly useful because most applications will need to manipulate Objects and Arrays to extract information from them, such as object keys or specific Array items known ahead of time. The helper names are inspired by the default functions provided in multiple programming languages for dictionaries, objects, and arrays, such as Python and JavaScript, for their default types. The individual helpers are defined as an implementation detail and cannot be registered individually. == Parameters [cols=2] |=== | Name | Description | *hbs* | The Handlebars instance to register the helpers into |=== Register logical helpers into a Handlebars instance == Synopsis Declared in `<mrdocs/Support/Handlebars.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void registerLogicalHelpers(link:#mrdocs-Handlebars[Handlebars]& hbs); ---- == Description This function registers a number of common helpers that perform logical operations. == Parameters [cols=2] |=== | Name | Description | *hbs* | The Handlebars instance to register the helpers into |=== Register math helpers into a Handlebars instance == Synopsis Declared in `<mrdocs/Support/Handlebars.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void registerMathHelpers(link:#mrdocs-Handlebars[Handlebars]& hbs); ---- == Description This function registers a number of common helpers that perform mathemathical operations. == Parameters [cols=2] |=== | Name | Description | *hbs* | The Handlebars instance to register the helpers into |=== Register string helpers into a Handlebars instance == Synopsis Declared in `<mrdocs/Support/Handlebars.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void registerStringHelpers(link:#mrdocs-Handlebars[Handlebars]& hbs); ---- == Description This function registers a number of common helpers that operate on strings. String helpers are particularly useful because most applications will need to manipulate strings for presentation purposes. All helpers can be used as either block helpers or inline helpers. When used as a block helper, the block content is used as the first argument to the helper function. When used as an inline helper, the first argument is the value of the helper. The helper names are inspired by the default string functions provided in multiple programming languages, such as Python and JavaScript, for their default string types. The individual helpers are defined as an implementation detail and cannot be registered individually. == Parameters [cols=2] |=== | Name | Description | *hbs* | The Handlebars instance to register the helpers into |=== Register type helpers into a Handlebars instance == Synopsis Declared in `<mrdocs/Support/Handlebars.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void registerTypeHelpers(link:#mrdocs-Handlebars[Handlebars]& hbs); ---- == Description This function registers a number of common helpers that operate on types, such as identity, type checking, and type conversion. == Parameters [cols=2] |=== | Name | Description | *hbs* | The Handlebars instance to register the helpers into |=== "relativize" helper function == Synopsis Declared in `<mrdocs/Support/Handlebars.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-dom-Value[dom::Value] relativize_fn( link:#mrdocs-dom-Value[dom::Value] to, link:#mrdocs-dom-Value[dom::Value] from, link:#mrdocs-dom-Value[dom::Value] context); ---- == Description The "relativize" helper makes the first path relative to the second path. == Return Value A variant container for any kind of Dom value. == Parameters [cols=2] |=== | Name | Description | *to* | A variant container for any kind of Dom value. | *from* | A variant container for any kind of Dom value. | *context* | A variant container for any kind of Dom value. |=== "select" helper function == Synopsis Declared in `<mrdocs/Support/Handlebars.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-dom-Value[dom::Value] select_fn( link:#mrdocs-dom-Value[dom::Value] const& condition, link:#mrdocs-dom-Value[dom::Value] const& result_true, link:#mrdocs-dom-Value[dom::Value] const& result_false); ---- == Description The "select" helper returns the second argument if the first argument is truthy, and the third argument otherwise. == Return Value A variant container for any kind of Dom value. == Parameters [cols=2] |=== | Name | Description | *condition* | A variant container for any kind of Dom value. | *result_true* | A variant container for any kind of Dom value. | *result_false* | A variant container for any kind of Dom value. |=== "year" helper function == Synopsis Declared in `<mrdocs/Support/Handlebars.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- int year_fn(); ---- == Description The "year" helper returns the current year as an integer. == Return Value The current year as an integer. == Types [cols=2] |=== | Name | Description | link:#mrdocs-js-Access[`Access`] | | link:#mrdocs-js-Array[`Array`] | | link:#mrdocs-js-Boolean[`Boolean`] | | link:#mrdocs-js-Context[`Context`] | An instance of a JavaScript interpreter. | link:#mrdocs-js-Object[`Object`] | | link:#mrdocs-js-Prop[`Prop`] | | link:#mrdocs-js-Scope[`Scope`] | A JavaScript scope | link:#mrdocs-js-String[`String`] | | link:#mrdocs-js-Value[`Value`] | An ECMAScript value. |=== == Enums [cols=2] |=== | Name | Description | link:#mrdocs-js-Type[`Type`] | Types of values. |=== == Functions [cols=2] |=== | Name | Description | link:#mrdocs-js-operator_and-0c[`operator&&`] | Return the first Value that is not truthy, or the last one. | link:#mrdocs-js-operator_or-0e1[`operator||`] | Return the first Value that is truthy, or the last one. | link:#mrdocs-js-registerHelper[`registerHelper`] | Register a JavaScript helper function | link:#mrdocs-js-swap[`swap`] | Swap two values. | link:#mrdocs-js-toString[`toString`] | Return value as a string. | link:#mrdocs-js-operator_eq-0c[`operator==`] | Compare two values for equality. | link:#mrdocs-js-operator_not_eq-076[`operator!=`] | Inequality operators | link:#mrdocs-js-operator_3way[`operator<=>`] | Compare two values for inequality. |=== == Synopsis Declared in `<mrdocs/Support/JavaScript.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- struct Access; ---- == Synopsis Declared in `<mrdocs/Support/JavaScript.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- class Array; ---- == Synopsis Declared in `<mrdocs/Support/JavaScript.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- class Boolean; ---- An instance of a JavaScript interpreter. == Synopsis Declared in `<mrdocs/Support/JavaScript.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- class Context; ---- == Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-js-Context-2constructor-02[`Context`] [.small]#[constructor]# | Constructor. | link:#mrdocs-js-Context-2destructor[`~Context`] [.small]#[destructor]# | Destructor. | link:#mrdocs-js-Context-operator_assign[`operator=`] [.small]#[deleted]# | Copy assignment. |=== == Friends [cols=2] |=== | Name | Description | `link:#mrdocs-js-Access[mrdocs::js::Access]` | |=== == Description This class represents a JavaScript interpreter context under which we can create link:#mrdocs-js-Scope[`Scope`] objects to define variables and execute scripts. A context represents a JavaScript heap where variables can be allocated and will be later garbage collected. Each context is associated with a single heap allocated with default memory management. Once the context is created, a link:#mrdocs-js-Scope[`Scope`] in this context can be created to define variables and execute scripts. == See Also Scope Constructor. == Synopses Declared in `<mrdocs/Support/JavaScript.hpp>` Constructor. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-js-Context-2constructor-01[Context](); ---- [.small]#link:#mrdocs-js-Context-2constructor-01[_» more..._]# Constructor. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-js-Context-2constructor-00[Context](link:#mrdocs-js-Context[Context] const& other) noexcept; ---- [.small]#link:#mrdocs-js-Context-2constructor-00[_» more..._]# Constructor. == Synopsis Declared in `<mrdocs/Support/JavaScript.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- Context(); ---- == Description Create a javascript execution context associated with its own garbage‐collected heap. Constructor. == Synopsis Declared in `<mrdocs/Support/JavaScript.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- Context(link:#mrdocs-js-Context[Context] const& other) noexcept; ---- == Description Create a javascript execution context associated with the heap of another context. Both contexts will share the same garbage‐collected heap, which is destroyed when the last context is destroyed. While they share the heap, their scripts can include references to the same variables. There are multi‐threading restrictions, however: only one native thread can execute any code within a single heap at any time. == Parameters [cols=2] |=== | Name | Description | *other* | The object to copy construct from |=== Destructor. == Synopsis Declared in `<mrdocs/Support/JavaScript.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- ~Context(); ---- Copy assignment. == Synopsis Declared in `<mrdocs/Support/JavaScript.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-js-Context[Context]& operator=(link:#mrdocs-js-Context[Context] const& other) = delete; ---- == Description Create a javascript execution context associated with the heap of another context. Both contexts will share the same garbage‐collected heap, which is destroyed when the last context is destroyed. While they share the heap, their scripts can include references to the same variables. There are multi‐threading restrictions, however: only one native thread can execute any code within a single heap at any time. == Return Value Reference to the current object == Parameters [cols=2] |=== | Name | Description | *other* | The object to copy assign from |=== == Synopsis Declared in `<mrdocs/Support/JavaScript.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- class Object; ---- == Synopsis Declared in `<mrdocs/Support/JavaScript.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- class Prop; ---- == Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-js-Prop-2constructor-03[`Prop`] [.small]#[constructor]# | Constructors | link:#mrdocs-js-Prop-isIndex[`isIndex`] | |=== Constructors == Synopses Declared in `<mrdocs/Support/JavaScript.hpp>` Construct from `string_view` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-js-Prop-2constructor-04[Prop](std::string_view name) noexcept; ---- [.small]#link:#mrdocs-js-Prop-2constructor-04[_» more..._]# Construct from `unsigned int` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-js-Prop-2constructor-01[Prop](unsigned int index) noexcept; ---- [.small]#link:#mrdocs-js-Prop-2constructor-01[_» more..._]# Construct from `string_view` == Synopsis Declared in `<mrdocs/Support/JavaScript.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr Prop(std::string_view name) noexcept; ---- == Parameters [cols=2] |=== | Name | Description | *name* | The object to construct from |=== Construct from `unsigned int` == Synopsis Declared in `<mrdocs/Support/JavaScript.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr Prop(unsigned int index) noexcept; ---- == Parameters [cols=2] |=== | Name | Description | *index* | The value to construct from |=== == Synopsis Declared in `<mrdocs/Support/JavaScript.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr bool isIndex() const noexcept; ---- A JavaScript scope == Synopsis Declared in `<mrdocs/Support/JavaScript.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- class Scope; ---- == Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-js-Scope-2constructor[`Scope`] [.small]#[constructor]# | Constructor. | link:#mrdocs-js-Scope-2destructor[`~Scope`] [.small]#[destructor]# | Destructor. | link:#mrdocs-js-Scope-compile_function[`compile_function`] | Compile a script and push results to stack. | link:#mrdocs-js-Scope-compile_script[`compile_script`] | Compile a script and push results to stack. | link:#mrdocs-js-Scope-eval[`eval`] | Compile and run a expression. | link:#mrdocs-js-Scope-getGlobal[`getGlobal`] | Return a global object if it exists. | link:#mrdocs-js-Scope-getGlobalObject[`getGlobalObject`] | Return the global object. | link:#mrdocs-js-Scope-pushArray[`pushArray`] | Push a new array to the stack | link:#mrdocs-js-Scope-pushBoolean[`pushBoolean`] | Push a boolean to the stack | link:#mrdocs-js-Scope-pushDouble[`pushDouble`] | Push a double to the stack | link:#mrdocs-js-Scope-pushInteger[`pushInteger`] | Push an integer to the stack | link:#mrdocs-js-Scope-pushObject[`pushObject`] | Push a new object to the stack | link:#mrdocs-js-Scope-pushString[`pushString`] | Push a string to the stack | link:#mrdocs-js-Scope-script[`script`] | Compile and run a script. | link:#mrdocs-js-Scope-setGlobal[`setGlobal`] | Set a global object. |=== == Friends [cols=2] |=== | Name | Description | `link:#mrdocs-js-Access[mrdocs::js::Access]` | |=== == Description This class represents a JavaScript scope under which we can define variables and execute scripts. Each scope is a section of the context heap in the JavaScript interpreter. A javascript variable is defined by creating a link:#mrdocs-js-Value[`Value`] that is associated with this Scope, i.e., subsection of the context heap. When a scope is destroyed, the heap section is popped and all variables defined in that scope are invalidated. For this reason, two scopes of the same context heap cannot be manipulated at the same time. Constructor. == Synopsis Declared in `<mrdocs/Support/JavaScript.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- Scope(link:#mrdocs-js-Context[Context] const& ctx) noexcept; ---- == Description Construct a scope for the given context. Variables defined in this scope will be allocated on top of the specified context heap. When the Scope is destroyed, the variables defined in this scope will be popped from the heap. == Parameters [cols=2] |=== | Name | Description | *ctx* | The context to use. |=== Destructor. == Synopsis Declared in `<mrdocs/Support/JavaScript.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- ~Scope(); ---- == Description All variables defined in this scope are popped from the internal context heap. There should be no link:#mrdocs-js-Value[`Value`] objects associated with this scope when it is destroyed. Compile a script and push results to stack. == Synopsis Declared in `<mrdocs/Support/JavaScript.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-Expected-0a[Expected<Value>] compile_function(std::string_view jsCode); ---- == Description Compile ECMAScript source code that defines a function and return the compiled function object. Unlike the `script()` function, the code is not executed. A compiled function with the specified number of arguments that can be executed is returned. If the function code contains more than one function, the return value is the first function compiled. == Return Value A function object that can be called. The function object has the number of arguments defined in the code. If the code does not define a function, an error is returned. == Parameters [cols=2] |=== | Name | Description | *jsCode* | The JavaScript code to compile. |=== Compile a script and push results to stack. == Synopsis Declared in `<mrdocs/Support/JavaScript.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-Expected-0a[Expected<Value>] compile_script(std::string_view jsCode); ---- == Description Compile ECMAScript source code and return it as a compiled function object that executes it. Unlike the `script()` function, the code is not executed. A compiled function that can be executed is returned. The returned function has zero arguments and executes as if we called `script()`. The script returns an implicit return value equivalent to the last non‐empty statement value in the code. == Return Value A function object that can be called. The function object has zero arguments. == Parameters [cols=2] |=== | Name | Description | *jsCode* | The JavaScript code to compile. |=== Compile and run a expression. == Synopsis Declared in `<mrdocs/Support/JavaScript.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-Expected-0a[Expected<Value>] eval(std::string_view jsCode); ---- == Description This function compiles and executes the specified JavaScript code. The script can be used to execute commands or define global variables in the parent context. It evaluates the ECMAScript source code and converts any internal errors to link:#mrdocs-Error[`Error`]. == Return Value A container holding an error or a value. == Parameters [cols=2] |=== | Name | Description | *jsCode* | The JavaScript code to execute. |=== Return a global object if it exists. == Synopsis Declared in `<mrdocs/Support/JavaScript.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-Expected-0a[Expected<Value>] getGlobal(std::string_view name); ---- == Description This function returns a link:#mrdocs-js-Value[`Value`] that represents a global variable in the parent context. If the variable does not exist, an error is returned. == Return Value a global object if it exists. == Parameters [cols=2] |=== | Name | Description | *name* | The name of the global variable. |=== Return the global object. == Synopsis Declared in `<mrdocs/Support/JavaScript.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-js-Value[Value] getGlobalObject(); ---- == Description This function returns a link:#mrdocs-js-Value[`Value`] that represents the global object in the parent context. The global object is the root of the ECMAScript object hierarchy and is the value returned by the global `this` expression. If the global object does not exist, an error is returned. == Return Value the global object. Push a new array to the stack == Synopsis Declared in `<mrdocs/Support/JavaScript.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-js-Value[Value] pushArray(); ---- == Return Value An ECMAScript value. Push a boolean to the stack == Synopsis Declared in `<mrdocs/Support/JavaScript.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-js-Value[Value] pushBoolean(bool value); ---- == Return Value A Value representing the boolean. == Parameters [cols=2] |=== | Name | Description | *value* | The boolean value to push. |=== Push a double to the stack == Synopsis Declared in `<mrdocs/Support/JavaScript.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-js-Value[Value] pushDouble(double value); ---- == Return Value A Value representing the double. == Parameters [cols=2] |=== | Name | Description | *value* | The double value to push. |=== Push an integer to the stack == Synopsis Declared in `<mrdocs/Support/JavaScript.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-js-Value[Value] pushInteger(int64_t value); ---- == Return Value A Value representing the integer. == Parameters [cols=2] |=== | Name | Description | *value* | The integer value to push. |=== Push a new object to the stack == Synopsis Declared in `<mrdocs/Support/JavaScript.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-js-Value[Value] pushObject(); ---- == Return Value An ECMAScript value. Push a string to the stack == Synopsis Declared in `<mrdocs/Support/JavaScript.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-js-Value[Value] pushString(std::string_view value); ---- == Return Value A Value representing the string. == Parameters [cols=2] |=== | Name | Description | *value* | The string value to push. The string is copied to the internal heap. |=== Compile and run a script. == Synopsis Declared in `<mrdocs/Support/JavaScript.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-Expected-0a[Expected<void>] script(std::string_view jsCode); ---- == Description This function compiles and executes the specified JavaScript code. The script can be used to execute commands or define global variables in the parent context. It evaluates the ECMAScript source code and converts any internal errors to link:#mrdocs-Error[`Error`]. == Return Value A container holding an error or a value. == Parameters [cols=2] |=== | Name | Description | *jsCode* | The JavaScript code to execute. |=== Set a global object. == Synopsis Declared in `<mrdocs/Support/JavaScript.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void setGlobal( std::string_view name, link:#mrdocs-dom-Value[dom::Value] const& value); ---- == Parameters [cols=2] |=== | Name | Description | *name* | The name of the global variable. | *value* | The value to set. |=== == Synopsis Declared in `<mrdocs/Support/JavaScript.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- class String; ---- An ECMAScript value. == Synopsis Declared in `<mrdocs/Support/JavaScript.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- class Value; ---- == Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-js-Value-2constructor-0a[`Value`] [.small]#[constructor]# | Constructor | link:#mrdocs-js-Value-2destructor[`~Value`] [.small]#[destructor]# | Destructor | link:#mrdocs-js-Value-operator_assign-03[`operator=`] | Assignment operators | link:#mrdocs-js-Value-apply[`apply`] | Invoke a function with variadic arguments. | link:#mrdocs-js-Value-call[`call`] | Invoke a function. | link:#mrdocs-js-Value-callProp[`callProp`] | Invoke a method. | link:#mrdocs-js-Value-empty[`empty`] | Return if an Array or Object is empty. | link:#mrdocs-js-Value-exists[`exists`] | Return true if a key exists. | link:#mrdocs-js-Value-get-09[`get`] | `get` overloads | link:#mrdocs-js-Value-getArray[`getArray`] | Return the underlying array. | link:#mrdocs-js-Value-getBool[`getBool`] | Return the underlying boolean value. | link:#mrdocs-js-Value-getDom[`getDom`] | Return the value as a dom::Value | link:#mrdocs-js-Value-getDouble[`getDouble`] | Return the underlying double value. | link:#mrdocs-js-Value-getFunction[`getFunction`] | Return the underlying array. | link:#mrdocs-js-Value-getInteger[`getInteger`] | Return the underlying integer value. | link:#mrdocs-js-Value-getObject[`getObject`] | Return the underlying object. | link:#mrdocs-js-Value-getString[`getString`] | Return the underlying string | link:#mrdocs-js-Value-isArray[`isArray`] | Check if the value is an array. | link:#mrdocs-js-Value-isBoolean[`isBoolean`] | Check if the value is a boolean. | link:#mrdocs-js-Value-isDouble[`isDouble`] | Check if the value is a floating point number. | link:#mrdocs-js-Value-isFunction[`isFunction`] | Check if the value is a function. | link:#mrdocs-js-Value-isInteger[`isInteger`] | Check if the value is an integer number. | link:#mrdocs-js-Value-isNull[`isNull`] | Check if the value is null. | link:#mrdocs-js-Value-isNumber[`isNumber`] | Check if the value is a number. | link:#mrdocs-js-Value-isObject[`isObject`] | Check if the value is an object. | link:#mrdocs-js-Value-isString[`isString`] | Check if the value is a string. | link:#mrdocs-js-Value-isTruthy[`isTruthy`] | Determine if a value is truthy | link:#mrdocs-js-Value-isUndefined[`isUndefined`] | Check if the value is undefined. | link:#mrdocs-js-Value-lookup[`lookup`] | Lookup a sequence of keys. | link:#mrdocs-js-Value-operator_call[`operator()`] | Invoke a function. | link:#mrdocs-js-Value-set-08[`set`] | Set or replace the value for a given key. | link:#mrdocs-js-Value-setlog[`setlog`] | Set "log" property | link:#mrdocs-js-Value-size[`size`] | Return if an Array or Object is empty. | link:#mrdocs-js-Value-swap[`swap`] | Swap two values. | link:#mrdocs-js-Value-type[`type`] | Return the type of the value. | link:#mrdocs-js-Value-2conversion-07[`operator std::string`] | Return the string. | link:#mrdocs-js-Value-2conversion-0d[`operator bool`] | Determine if a value is truthy |=== == Protected Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-js-Value-2constructor-0f[`Value`] [.small]#[constructor]# | Constructor |=== == Protected Data Members [cols=1] |=== | Name | link:#mrdocs-js-Value-idx_[`idx_`] | link:#mrdocs-js-Value-scope_[`scope_`] |=== == Friends [cols=2] |=== | Name | Description | `link:#mrdocs-js-toString[mrdocs::js::toString]` | Return value as a string. | `link:#mrdocs-js-operator_and-05[mrdocs::js::operator&&]` | | `link:#mrdocs-js-operator_and-0f[mrdocs::js::operator&&]` | | `link:#mrdocs-js-operator_and-03[mrdocs::js::operator&&]` | Return the first Value that is not truthy, or the last one. | `link:#mrdocs-js-operator_or-0ea[mrdocs::js::operator||]` | | `link:#mrdocs-js-operator_or-05[mrdocs::js::operator||]` | | `link:#mrdocs-js-operator_or-0a[mrdocs::js::operator||]` | Return the first Value that is truthy, or the last one. | `link:#mrdocs-js-operator_3way[mrdocs::js::operator<=>]` | Compare two values for inequality. | `link:#mrdocs-js-operator_not_eq-03[mrdocs::js::operator!=]` | | `link:#mrdocs-js-operator_not_eq-079[mrdocs::js::operator!=]` | | `link:#mrdocs-js-operator_not_eq-0e[mrdocs::js::operator!=]` | Inequality operator | `link:#mrdocs-js-operator_eq-09[mrdocs::js::operator==]` | | `link:#mrdocs-js-operator_eq-06[mrdocs::js::operator==]` | | `link:#mrdocs-js-operator_eq-0e[mrdocs::js::operator==]` | Compare two values for equality. | `link:#mrdocs-js-swap[mrdocs::js::swap]` | Swap two values. | `link:#mrdocs-js-Access[mrdocs::js::Access]` | |=== == Description This class represents a value in the JavaScript interpreter. A value is a variable that is defined in a link:#mrdocs-js-Scope[`Scope`]. It can be a primitive type or an object. A link:#mrdocs-js-Value-2constructor-0a[`Value`] not associated with a link:#mrdocs-js-Scope[`Scope`] is undefined. The user is responsible for ensuring that the lifetime of a link:#mrdocs-js-Value-2constructor-0a[`Value`] does not exceed the lifetime of the link:#mrdocs-js-Scope[`Scope`] that created it. A value can be converted to a DOM value using the link:#mrdocs-js-Value-getDom[`getDom`] function. == See Also Scope Type Constructor == Synopses Declared in `<mrdocs/Support/JavaScript.hpp>` Constructor [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-js-Value-2constructor-05[Value]() noexcept; ---- [.small]#link:#mrdocs-js-Value-2constructor-05[_» more..._]# Constructor [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-js-Value-2constructor-02f2[Value](link:#mrdocs-js-Value[Value] const& other); ---- [.small]#link:#mrdocs-js-Value-2constructor-02f2[_» more..._]# Constructor [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-js-Value-2constructor-02f1[Value](link:#mrdocs-js-Value[Value]&& other) noexcept; ---- [.small]#link:#mrdocs-js-Value-2constructor-02f1[_» more..._]# Constructor == Synopsis Declared in `<mrdocs/Support/JavaScript.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- Value() noexcept; ---- == Description Construct a value that is not associated with a link:#mrdocs-js-Scope[`Scope`]. The value is undefined. Constructor == Synopsis Declared in `<mrdocs/Support/JavaScript.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- Value(link:#mrdocs-js-Value[Value] const& other); ---- == Description The function pushes a duplicate of value to the stack and associates the new value the top of the stack. == Parameters [cols=2] |=== | Name | Description | *other* | The object to copy construct from |=== Constructor == Synopsis Declared in `<mrdocs/Support/JavaScript.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- Value(link:#mrdocs-js-Value[Value]&& other) noexcept; ---- == Description The function associates the existing value with this object. == Parameters [cols=2] |=== | Name | Description | *other* | The object to move construct from |=== Destructor == Synopsis Declared in `<mrdocs/Support/JavaScript.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- ~Value(); ---- == Description If the value is associated with a link:#mrdocs-js-Scope[`Scope`] and it is on top of the stack, it is popped. Also, if there are no other Value references to the link:#mrdocs-js-Scope[`Scope`], all variables defined in that scope are popped via `Scope::reset`. Assignment operators == Synopses Declared in `<mrdocs/Support/JavaScript.hpp>` Copy assignment. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-js-Value[Value]& link:#mrdocs-js-Value-operator_assign-0f[operator=](link:#mrdocs-js-Value[Value] const& other); ---- [.small]#link:#mrdocs-js-Value-operator_assign-0f[_» more..._]# Move assignment. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-js-Value[Value]& link:#mrdocs-js-Value-operator_assign-06[operator=](link:#mrdocs-js-Value[Value]&& other) noexcept; ---- [.small]#link:#mrdocs-js-Value-operator_assign-06[_» more..._]# Copy assignment. == Synopsis Declared in `<mrdocs/Support/JavaScript.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-js-Value[Value]& operator=(link:#mrdocs-js-Value[Value] const& other); ---- == Description The function pushes a duplicate of value to the stack and associates the new value the top of the stack. == Return Value Reference to the current object == Parameters [cols=2] |=== | Name | Description | *other* | The object to copy assign from |=== Move assignment. == Synopsis Declared in `<mrdocs/Support/JavaScript.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-js-Value[Value]& operator=(link:#mrdocs-js-Value[Value]&& other) noexcept; ---- == Description The function associates the existing value with this object. == Return Value Reference to the current object == Parameters [cols=2] |=== | Name | Description | *other* | The object to move assign from |=== Invoke a function with variadic arguments. == Synopsis Declared in `<mrdocs/Support/JavaScript.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-Expected-0a[Expected<Value>] apply(std::span<dom::Value> args) const; ---- == Return Value The return value of the method. == Parameters [cols=2] |=== | Name | Description | *args* | Zero or more arguments to pass to the method. |=== Invoke a function. == Synopsis Declared in `<mrdocs/Support/JavaScript.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<std::convertible_to<dom::Value>... Args> link:#mrdocs-Expected-0a[Expected<Value>] call(Args...&&... args) const; ---- == Return Value The return value of the method. == Parameters [cols=2] |=== | Name | Description | *args* | Zero or more arguments to pass to the method. |=== Invoke a method. == Synopsis Declared in `<mrdocs/Support/JavaScript.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class... Args> link:#mrdocs-Expected-0a[Expected<Value>] callProp( std::string_view prop, Args...&&... args) const; ---- == Return Value The return value of the method. == Parameters [cols=2] |=== | Name | Description | *prop* | The property name of the method to call. | *args* | Zero or more arguments to pass to the method. |=== Return if an Array or Object is empty. == Synopsis Declared in `<mrdocs/Support/JavaScript.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool empty() const; ---- == Return Value if an Array or Object is empty. Return true if a key exists. == Synopsis Declared in `<mrdocs/Support/JavaScript.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool exists(std::string_view key) const; ---- == Return Value `true` if the key exists, `false` otherwise. == Parameters [cols=2] |=== | Name | Description | *key* | The key to check for. |=== `get` overloads == Synopses Declared in `<mrdocs/Support/JavaScript.hpp>` Return the element at a given index. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-js-Value[Value] link:#mrdocs-js-Value-get-08[get](std::size_t i) const; ---- [.small]#link:#mrdocs-js-Value-get-08[_» more..._]# Return the element for a given key. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-js-Value[Value] link:#mrdocs-js-Value-get-0b[get](std::string_view key) const; ---- [.small]#link:#mrdocs-js-Value-get-0b[_» more..._]# Return the element at a given index or key. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-js-Value[Value] link:#mrdocs-js-Value-get-02[get](link:#mrdocs-dom-Value[dom::Value] const& i) const; ---- [.small]#link:#mrdocs-js-Value-get-02[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<std::convertible_to<std::string_view> S> link:#mrdocs-js-Value[Value] link:#mrdocs-js-Value-get-0a[get](S const& key) const; ---- [.small]#link:#mrdocs-js-Value-get-0a[_» more..._]# == Return Value * The element at the given index, or a Value of type `Kind::Undefined` if the index is out of range. * The element for the given key, or a Value of type Kind::Undefined if the key is not found. == Parameters [cols=2] |=== | Name | Description | *i* | The index of the element to return. | *key* | The key to look up. |=== Return the element at a given index. == Synopsis Declared in `<mrdocs/Support/JavaScript.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-js-Value[Value] get(std::size_t i) const; ---- == Return Value The element at the given index, or a Value of type `Kind::Undefined` if the index is out of range. == Parameters [cols=2] |=== | Name | Description | *i* | The index of the element to return. |=== Return the element for a given key. == Synopsis Declared in `<mrdocs/Support/JavaScript.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-js-Value[Value] get(std::string_view key) const; ---- == Description If the Value is not an object, or the key is not found, a Value of type Kind::Undefined is returned. == Return Value The element for the given key, or a Value of type Kind::Undefined if the key is not found. == Parameters [cols=2] |=== | Name | Description | *key* | The key to look up. |=== Return the element at a given index or key. == Synopsis Declared in `<mrdocs/Support/JavaScript.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-js-Value[Value] get(link:#mrdocs-dom-Value[dom::Value] const& i) const; ---- == Return Value the element at a given index or key. == Parameters [cols=2] |=== | Name | Description | *i* | A variant container for any kind of Dom value. |=== == Synopsis Declared in `<mrdocs/Support/JavaScript.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<std::convertible_to<std::string_view> S> link:#mrdocs-js-Value[Value] get(S const& key) const; ---- Return the underlying array. == Synopsis Declared in `<mrdocs/Support/JavaScript.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-dom-Array[dom::Array] getArray() const noexcept; ---- == Description [NOTE] ==== Behaviour is undefined if `!isArray()` ==== == Return Value the underlying array. Return the underlying boolean value. == Synopsis Declared in `<mrdocs/Support/JavaScript.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool getBool() const noexcept; ---- == Description [NOTE] ==== Behaviour is undefined if `!isBoolean()` ==== == Return Value the underlying boolean value. Return the value as a dom::Value == Synopsis Declared in `<mrdocs/Support/JavaScript.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-dom-Value[dom::Value] getDom() const; ---- == Description This function returns the value as a link:#mrdocs-dom-Value[`dom::Value`]. If the value is a primitive type, it is converted to a DOM primitive. If the value is an object, a type with reference semantics to access the underlying DOM object is returned. == Return Value the value as a dom::Value Return the underlying double value. == Synopsis Declared in `<mrdocs/Support/JavaScript.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- double getDouble() const noexcept; ---- == Description [NOTE] ==== Behaviour is undefined if `!isNumber()` ==== == Return Value the underlying double value. Return the underlying array. == Synopsis Declared in `<mrdocs/Support/JavaScript.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-dom-Function[dom::Function] getFunction() const noexcept; ---- == Description [NOTE] ==== Behaviour is undefined if `!isFunction()` ==== == Return Value the underlying array. Return the underlying integer value. == Synopsis Declared in `<mrdocs/Support/JavaScript.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- int64_t getInteger() const noexcept; ---- == Description [NOTE] ==== Behaviour is undefined if `!isNumber()` ==== == Return Value the underlying integer value. Return the underlying object. == Synopsis Declared in `<mrdocs/Support/JavaScript.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-dom-Object[dom::Object] getObject() const noexcept; ---- == Description [NOTE] ==== Behaviour is undefined if `!isObject()` ==== == Return Value the underlying object. Return the underlying string == Synopsis Declared in `<mrdocs/Support/JavaScript.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::string_view getString() const; ---- == Description This function returns the value as a string. This function performs no coercions. If the value is not a string, it is not converted to a string. [NOTE] ==== Behaviour is undefined if `!isString()` ==== == Return Value the underlying string Check if the value is an array. == Synopsis Declared in `<mrdocs/Support/JavaScript.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool isArray() const noexcept; ---- == Return Value `true` if the value is an array, `false` otherwise Check if the value is a boolean. == Synopsis Declared in `<mrdocs/Support/JavaScript.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool isBoolean() const noexcept; ---- == Return Value `true` if the value is a boolean, `false` otherwise Check if the value is a floating point number. == Synopsis Declared in `<mrdocs/Support/JavaScript.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool isDouble() const noexcept; ---- == Return Value `true` if the value is a number but not an integer, `false` otherwise Check if the value is a function. == Synopsis Declared in `<mrdocs/Support/JavaScript.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool isFunction() const noexcept; ---- == Return Value `true` if the value is a function, `false` otherwise Check if the value is an integer number. == Synopsis Declared in `<mrdocs/Support/JavaScript.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool isInteger() const noexcept; ---- == Description All numbers are internally represented by IEEE doubles, which are capable of representing all integers up to 53 bits accurately. This function returns `true` if the value is a number with no precision loss when representing an integer. When `isNumber()` is `true`, the function behaves as if evaluating the condition `d == static_cast<double>(static_cast<int>(d))` where `d` is the result of `toDouble()`. == Return Value `true` if the value is a number with no fractional part, `false` otherwise Check if the value is null. == Synopsis Declared in `<mrdocs/Support/JavaScript.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool isNull() const noexcept; ---- == Return Value `true` if the value is null, `false` otherwise Check if the value is a number. == Synopsis Declared in `<mrdocs/Support/JavaScript.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool isNumber() const noexcept; ---- == Description In ECMA, the number type is an IEEE double, including +/‐ Infinity and NaN values. Zero sign is also preserved. An IEEE double can represent all integers up to 53 bits accurately. The user should not rely on NaNs preserving their exact non‐normalized form. == Return Value `true` if the value is a number, `false` otherwise Check if the value is an object. == Synopsis Declared in `<mrdocs/Support/JavaScript.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool isObject() const noexcept; ---- == Description Check if the value is an object but not an array or function. While in ECMA anything with properties is an object, this function returns `false` for arrays and functions. Properties are key‐value pairs with a string key and an arbitrary value, including undefined. == Return Value `true` if the value is an object, `false` otherwise Check if the value is a string. == Synopsis Declared in `<mrdocs/Support/JavaScript.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool isString() const noexcept; ---- == Return Value `true` if the value is a string, `false` otherwise Determine if a value is truthy == Synopsis Declared in `<mrdocs/Support/JavaScript.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool isTruthy() const noexcept; ---- == Description A value is truthy if it is a boolean and is true, a number and not zero, or an non‐empty string, array or object. == Return Value `true` if the value is truthy, `false` otherwise Check if the value is undefined. == Synopsis Declared in `<mrdocs/Support/JavaScript.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool isUndefined() const noexcept; ---- == Return Value `true` if the value is undefined, `false` otherwise Lookup a sequence of keys. == Synopsis Declared in `<mrdocs/Support/JavaScript.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-js-Value[Value] lookup(std::string_view keys) const; ---- == Description This function is equivalent to calling `get` multiple times, once for each key in the sequence of dot‐separated keys. == Return Value The value at the end of the sequence, or a Value of type Kind::Undefined if any key is not found. == Parameters [cols=2] |=== | Name | Description | *keys* | A sequence of keys separated by dots. |=== Invoke a function. == Synopsis Declared in `<mrdocs/Support/JavaScript.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class... Args> link:#mrdocs-js-Value[Value] operator()(Args...&&... args) const; ---- == Return Value The return value of the method. == Parameters [cols=2] |=== | Name | Description | *args* | Zero or more arguments to pass to the method. |=== Set or replace the value for a given key. == Synopses Declared in `<mrdocs/Support/JavaScript.hpp>` Set or replace the value for a given key. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void link:#mrdocs-js-Value-set-0b[set]( std::string_view key, link:#mrdocs-js-Value[Value] const& value) const; ---- [.small]#link:#mrdocs-js-Value-set-0b[_» more..._]# Set or replace the value for a given key. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void link:#mrdocs-js-Value-set-0c[set]( std::string_view key, link:#mrdocs-dom-Value[dom::Value] const& value) const; ---- [.small]#link:#mrdocs-js-Value-set-0c[_» more..._]# == Parameters [cols=2] |=== | Name | Description | *key* | The key to set. | *value* | The value to set. |=== Set or replace the value for a given key. == Synopsis Declared in `<mrdocs/Support/JavaScript.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void set( std::string_view key, link:#mrdocs-js-Value[Value] const& value) const; ---- == Parameters [cols=2] |=== | Name | Description | *key* | The key to set. | *value* | The value to set. |=== Set or replace the value for a given key. == Synopsis Declared in `<mrdocs/Support/JavaScript.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void set( std::string_view key, link:#mrdocs-dom-Value[dom::Value] const& value) const; ---- == Parameters [cols=2] |=== | Name | Description | *key* | The key to set. | *value* | The value to set. |=== Set "log" property == Synopsis Declared in `<mrdocs/Support/JavaScript.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void setlog(); ---- == Description This function sets the "log" property in the object. The "log" property is populated with a function that takes two javascript arguments `(level, message)` where `level` is an unsigned integer and `message` is a string. The mrdocs library function `mrdocs::report::print` is then called with these two arguments to report a message to the console. Return if an Array or Object is empty. == Synopsis Declared in `<mrdocs/Support/JavaScript.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::size_t size() const; ---- == Return Value if an Array or Object is empty. Swap two values. == Synopsis Declared in `<mrdocs/Support/JavaScript.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void swap(link:#mrdocs-js-Value[Value]& other) noexcept; ---- == Parameters [cols=2] |=== | Name | Description | *other* | An ECMAScript value. |=== Return the type of the value. == Synopsis Declared in `<mrdocs/Support/JavaScript.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-js-Type[Type] type() const noexcept; ---- == Description This function returns the JavaScript type of the value. The type can represent a primitive type (such as boolean, number, and string) or an object. When the type is an object, the return type also classifies the object as an array or function. An array is an object with the internal ECMAScript class `Array` or a Proxy wrapping an `Array`. A function is an object with the internal ECMAScript class `Function`. == Return Value the type of the value. Return the string. == Synopsis Declared in `<mrdocs/Support/JavaScript.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- explicit operator std::string() const noexcept; ---- == Return Value the string. Determine if a value is truthy == Synopsis Declared in `<mrdocs/Support/JavaScript.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- explicit operator bool() const noexcept; ---- == Description A value is truthy if it is a boolean and is true, a number and not zero, or an non‐empty string, array or object. == Return Value `true` if the value is truthy, `false` otherwise Constructor == Synopsis Declared in `<mrdocs/Support/JavaScript.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- Value( int, link:#mrdocs-js-Scope[Scope]&) noexcept; ---- == Synopsis Declared in `<mrdocs/Support/JavaScript.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- int idx_; ---- == Synopsis Declared in `<mrdocs/Support/JavaScript.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-js-Scope[Scope]* scope_; ---- Types of values. == Synopsis Declared in `<mrdocs/Support/JavaScript.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- enum class Type : int; ---- == Members [cols=2] |=== | Name | Description | `undefined` | The value is undefined | `null` | The value is null | `boolean` | The value is a boolean | `number` | The value is a number | `string` | The value is a string | `object` | The value is a function | `function` | The value is an array | `array` | The value is an array |=== Return the first Value that is not truthy, or the last one. == Synopses Declared in `<mrdocs/Support/JavaScript.hpp>` Return the first Value that is not truthy, or the last one. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-js-Value[Value] link:#mrdocs-js-operator_and-03[operator&&]( link:#mrdocs-js-Value[Value] const& lhs, link:#mrdocs-js-Value[Value] const& rhs); ---- [.small]#link:#mrdocs-js-operator_and-03[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<std::convertible_to<Value> S> auto link:#mrdocs-js-operator_and-0f[operator&&]( S const& lhs, link:#mrdocs-js-Value[Value] const& rhs) noexcept; ---- [.small]#link:#mrdocs-js-operator_and-0f[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<std::convertible_to<Value> S> auto link:#mrdocs-js-operator_and-05[operator&&]( link:#mrdocs-js-Value[Value] const& lhs, S const& rhs) noexcept; ---- [.small]#link:#mrdocs-js-operator_and-05[_» more..._]# Return the first Value that is not truthy, or the last one. == Synopsis Declared in `<mrdocs/Support/JavaScript.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-js-Value[Value] operator&&( link:#mrdocs-js-Value[Value] const& lhs, link:#mrdocs-js-Value[Value] const& rhs); ---- == Description This function is equivalent to the JavaScript `&&` operator. == Return Value the first Value that is not truthy, or the last one. == Parameters [cols=2] |=== | Name | Description | *lhs* | The left operand | *rhs* | The right operand |=== == Synopsis Declared in `<mrdocs/Support/JavaScript.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<std::convertible_to<Value> S> auto operator&&( S const& lhs, link:#mrdocs-js-Value[Value] const& rhs) noexcept; ---- == Synopsis Declared in `<mrdocs/Support/JavaScript.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<std::convertible_to<Value> S> auto operator&&( link:#mrdocs-js-Value[Value] const& lhs, S const& rhs) noexcept; ---- Return the first Value that is truthy, or the last one. == Synopses Declared in `<mrdocs/Support/JavaScript.hpp>` Return the first Value that is truthy, or the last one. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-js-Value[Value] link:#mrdocs-js-operator_or-0a[operator||]( link:#mrdocs-js-Value[Value] const& lhs, link:#mrdocs-js-Value[Value] const& rhs); ---- [.small]#link:#mrdocs-js-operator_or-0a[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<std::convertible_to<Value> S> auto link:#mrdocs-js-operator_or-05[operator||]( S const& lhs, link:#mrdocs-js-Value[Value] const& rhs) noexcept; ---- [.small]#link:#mrdocs-js-operator_or-05[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<std::convertible_to<Value> S> auto link:#mrdocs-js-operator_or-0ea[operator||]( link:#mrdocs-js-Value[Value] const& lhs, S const& rhs) noexcept; ---- [.small]#link:#mrdocs-js-operator_or-0ea[_» more..._]# Return the first Value that is truthy, or the last one. == Synopsis Declared in `<mrdocs/Support/JavaScript.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-js-Value[Value] operator||( link:#mrdocs-js-Value[Value] const& lhs, link:#mrdocs-js-Value[Value] const& rhs); ---- == Description This function is equivalent to the JavaScript `||` operator. == Return Value the first Value that is truthy, or the last one. == Parameters [cols=2] |=== | Name | Description | *lhs* | The left operand | *rhs* | The right operand |=== == Synopsis Declared in `<mrdocs/Support/JavaScript.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<std::convertible_to<Value> S> auto operator||( S const& lhs, link:#mrdocs-js-Value[Value] const& rhs) noexcept; ---- == Synopsis Declared in `<mrdocs/Support/JavaScript.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<std::convertible_to<Value> S> auto operator||( link:#mrdocs-js-Value[Value] const& lhs, S const& rhs) noexcept; ---- Register a JavaScript helper function == Synopsis Declared in `<mrdocs/Support/JavaScript.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-Expected-0a[Expected<void, Error>] registerHelper( link:#mrdocs-Handlebars[mrdocs::Handlebars]& hbs, std::string_view name, link:#mrdocs-js-Context[Context]& ctx, std::string_view script); ---- == Description This function registers a JavaScript function as a helper function that can be called from Handlebars templates. == Return Value A container holding an error or a value. == Parameters [cols=2] |=== | Name | Description | *hbs* | The Handlebars instance to register the helper into | *name* | The name of the helper function | *ctx* | The JavaScript context to use | *script* | The JavaScript code that defines the helper function |=== Swap two values. == Synopsis Declared in `<mrdocs/Support/JavaScript.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void swap( link:#mrdocs-js-Value[Value]& v0, link:#mrdocs-js-Value[Value]& v1) noexcept; ---- == Parameters [cols=2] |=== | Name | Description | *v0* | An ECMAScript value. | *v1* | An ECMAScript value. |=== Return value as a string. == Synopsis Declared in `<mrdocs/Support/JavaScript.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::string toString(link:#mrdocs-js-Value[Value] const& value); ---- == Description This function coerces any value to a string. == Return Value value as a string. == Parameters [cols=2] |=== | Name | Description | *value* | An ECMAScript value. |=== Compare two values for equality. == Synopses Declared in `<mrdocs/Support/JavaScript.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<std::convertible_to<Value> S> auto link:#mrdocs-js-operator_eq-09[operator==]( link:#mrdocs-js-Value[Value] const& lhs, S const& rhs) noexcept; ---- [.small]#link:#mrdocs-js-operator_eq-09[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<std::convertible_to<Value> S> auto link:#mrdocs-js-operator_eq-06[operator==]( S const& lhs, link:#mrdocs-js-Value[Value] const& rhs) noexcept; ---- [.small]#link:#mrdocs-js-operator_eq-06[_» more..._]# Compare two values for equality. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool link:#mrdocs-js-operator_eq-0e[operator==]( link:#mrdocs-js-Value[Value] const& lhs, link:#mrdocs-js-Value[Value] const& rhs) noexcept; ---- [.small]#link:#mrdocs-js-operator_eq-0e[_» more..._]# == Synopsis Declared in `<mrdocs/Support/JavaScript.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<std::convertible_to<Value> S> auto operator==( link:#mrdocs-js-Value[Value] const& lhs, S const& rhs) noexcept; ---- == Synopsis Declared in `<mrdocs/Support/JavaScript.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<std::convertible_to<Value> S> auto operator==( S const& lhs, link:#mrdocs-js-Value[Value] const& rhs) noexcept; ---- Compare two values for equality. == Synopsis Declared in `<mrdocs/Support/JavaScript.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool operator==( link:#mrdocs-js-Value[Value] const& lhs, link:#mrdocs-js-Value[Value] const& rhs) noexcept; ---- == Description This operator uses strict equality, meaning that the types must match exactly, and for objects and arrays the children must match exactly. The `==` operator behaves differently for objects compared to primitive data types like numbers and strings. When comparing objects using `==`, it checks for reference equality, not structural equality. This means that two objects are considered equal with `===` only if they reference the exact same object in memory. [NOTE] ==== In JavaScript, this is equivalent to the `===` operator, which does not perform type conversions. ==== == Return Value `true` if the objects are equal, `false` otherwise == Parameters [cols=2] |=== | Name | Description | *lhs* | The left operand | *rhs* | The right operand |=== Inequality operators == Synopses Declared in `<mrdocs/Support/JavaScript.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<std::convertible_to<Value> S> auto link:#mrdocs-js-operator_not_eq-03[operator!=]( link:#mrdocs-js-Value[Value] const& lhs, S const& rhs) noexcept; ---- [.small]#link:#mrdocs-js-operator_not_eq-03[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<std::convertible_to<Value> S> auto link:#mrdocs-js-operator_not_eq-079[operator!=]( S const& lhs, link:#mrdocs-js-Value[Value] const& rhs) noexcept; ---- [.small]#link:#mrdocs-js-operator_not_eq-079[_» more..._]# Inequality operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool link:#mrdocs-js-operator_not_eq-0e[operator!=]( link:#mrdocs-js-Value[Value] const& lhs, link:#mrdocs-js-Value[Value] const& rhs) noexcept; ---- [.small]#link:#mrdocs-js-operator_not_eq-0e[_» more..._]# == Synopsis Declared in `<mrdocs/Support/JavaScript.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<std::convertible_to<Value> S> auto operator!=( link:#mrdocs-js-Value[Value] const& lhs, S const& rhs) noexcept; ---- == Synopsis Declared in `<mrdocs/Support/JavaScript.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<std::convertible_to<Value> S> auto operator!=( S const& lhs, link:#mrdocs-js-Value[Value] const& rhs) noexcept; ---- Inequality operator == Synopsis Declared in `<mrdocs/Support/JavaScript.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool operator!=( link:#mrdocs-js-Value[Value] const& lhs, link:#mrdocs-js-Value[Value] const& rhs) noexcept; ---- == Return Value `true` if the objects are not equal, `false` otherwise == Parameters [cols=2] |=== | Name | Description | *lhs* | The left operand | *rhs* | The right operand |=== Compare two values for inequality. == Synopsis Declared in `<mrdocs/Support/JavaScript.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::strong_ordering operator<=>( link:#mrdocs-js-Value[Value] const& lhs, link:#mrdocs-js-Value[Value] const& rhs) noexcept; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *lhs* | The left operand | *rhs* | The right operand |=== == Types [cols=2] |=== | Name | Description | link:#mrdocs-lua-Access[`Access`] | | link:#mrdocs-lua-Context[`Context`] | A reference to an instance of a Lua interpreter. | link:#mrdocs-lua-Function[`Function`] | A Lua function. | link:#mrdocs-lua-Param[`Param`] | A lazy container to push values to the Lua stack. | link:#mrdocs-lua-Scope[`Scope`] | | link:#mrdocs-lua-String[`String`] | A Lua string. | link:#mrdocs-lua-Table[`Table`] | A Lua table. | link:#mrdocs-lua-Value[`Value`] | A Lua value. | link:#mrdocs-lua-zstring[`zstring`] | A null‐terminated string. | link:#mrdocs-lua-FunctionPtr[`FunctionPtr`] | |=== == Enums [cols=2] |=== | Name | Description | link:#mrdocs-lua-Type[`Type`] | Types of values. |=== == Synopsis Declared in `<mrdocs/Support/Lua.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- using FunctionPtr = link:#mrdocs-lua-Value[Value](*)(std::vector<Value>); ---- == Synopsis Declared in `<mrdocs/Support/Lua.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- struct Access; ---- A reference to an instance of a Lua interpreter. == Synopsis Declared in `<mrdocs/Support/Lua.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- class Context; ---- == Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-lua-Context-2constructor-02[`Context`] [.small]#[constructor]# | Constructor. | link:#mrdocs-lua-Context-2destructor[`~Context`] [.small]#[destructor]# | Destructor. | link:#mrdocs-lua-Context-operator_assign[`operator=`] [.small]#[deleted]# | Copy assignment. |=== == Friends [cols=2] |=== | Name | Description | `link:#mrdocs-lua-Scope[mrdocs::lua::Scope]` | | `link:#mrdocs-lua-Access[mrdocs::lua::Access]` | |=== Constructor. == Synopses Declared in `<mrdocs/Support/Lua.hpp>` Constructor. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-lua-Context-2constructor-0e[Context](); ---- [.small]#link:#mrdocs-lua-Context-2constructor-0e[_» more..._]# Constructor. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-lua-Context-2constructor-06[Context](link:#mrdocs-lua-Context[Context] const& other) noexcept; ---- [.small]#link:#mrdocs-lua-Context-2constructor-06[_» more..._]# Constructor. == Synopsis Declared in `<mrdocs/Support/Lua.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- Context(); ---- Constructor. == Synopsis Declared in `<mrdocs/Support/Lua.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- Context(link:#mrdocs-lua-Context[Context] const& other) noexcept; ---- == Parameters [cols=2] |=== | Name | Description | *other* | The object to copy construct from |=== Destructor. == Synopsis Declared in `<mrdocs/Support/Lua.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- ~Context(); ---- Copy assignment. == Synopsis Declared in `<mrdocs/Support/Lua.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-lua-Context[Context]& operator=(link:#mrdocs-lua-Context[Context] const& other) = delete; ---- == Return Value Reference to the current object == Parameters [cols=2] |=== | Name | Description | *other* | The object to copy assign from |=== A Lua function. == Synopsis Declared in `<mrdocs/Support/Lua.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- class Function : public link:#mrdocs-lua-Value[Value] ---- == Base Classes [cols=2] |=== | Name | Description | `link:#mrdocs-lua-Value[Value]` | A Lua value. |=== == Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-lua-Function-2constructor-05[`Function`] [.small]#[constructor]# | Construct from `Value` | link:#mrdocs-lua-Value-call[`call`] | Invoke the value as a function. | link:#mrdocs-lua-Value-displayString[`displayString`] | Return a string representation. | link:#mrdocs-lua-Value-isBoolean[`isBoolean`] | | link:#mrdocs-lua-Value-isFunction[`isFunction`] | | link:#mrdocs-lua-Value-isNil[`isNil`] | | link:#mrdocs-lua-Value-isNumber[`isNumber`] | | link:#mrdocs-lua-Value-isString[`isString`] | | link:#mrdocs-lua-Value-isTable[`isTable`] | | link:#mrdocs-lua-Value-operator_call[`operator()`] | Invoke the value as a function. | link:#mrdocs-lua-Value-type[`type`] | |=== == Protected Data Members [cols=1] |=== | Name | link:#mrdocs-lua-Value-index_[`index_`] | link:#mrdocs-lua-Value-scope_[`scope_`] |=== == Friends [cols=2] |=== | Name | Description | `link:#mrdocs-lua-Access[mrdocs::lua::Access]` | |=== Construct from `Value` == Synopsis Declared in `<mrdocs/Support/Lua.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- Function(link:#mrdocs-lua-Value[Value] value); ---- == Parameters [cols=2] |=== | Name | Description | *value* | The object to construct from |=== A lazy container to push values to the Lua stack. == Synopsis Declared in `<mrdocs/Support/Lua.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- class Param; ---- == Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-lua-Param-2constructor-08c[`Param`] [.small]#[constructor]# [.small]#[deleted]# | Constructors | link:#mrdocs-lua-Param-2destructor[`~Param`] [.small]#[destructor]# | Destructor | link:#mrdocs-lua-Param-operator_assign[`operator=`] [.small]#[deleted]# | Copy assignment operator |=== == Data Members [cols=1] |=== | Name | link:#mrdocs-lua-Param-arr_[`arr_`] [.small]#[variant member]# | link:#mrdocs-lua-Param-b_[`b_`] [.small]#[variant member]# | link:#mrdocs-lua-Param-i_[`i_`] [.small]#[variant member]# | link:#mrdocs-lua-Param-index_[`index_`] [.small]#[variant member]# | link:#mrdocs-lua-Param-obj_[`obj_`] [.small]#[variant member]# | link:#mrdocs-lua-Param-s_[`s_`] [.small]#[variant member]# |=== == Friends [cols=2] |=== | Name | Description | `link:#mrdocs-lua-Access[mrdocs::lua::Access]` | |=== Constructors == Synopses Declared in `<mrdocs/Support/Lua.hpp>` Copy constructor [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-lua-Param-2constructor-03[Param](link:#mrdocs-lua-Param[Param] const& other) = delete; ---- [.small]#link:#mrdocs-lua-Param-2constructor-03[_» more..._]# Construct from `Array` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-lua-Param-2constructor-080[Param](link:#mrdocs-dom-Array[dom::Array] arr) noexcept; ---- [.small]#link:#mrdocs-lua-Param-2constructor-080[_» more..._]# Construct from `Object` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-lua-Param-2constructor-0f1[Param](link:#mrdocs-dom-Object[dom::Object] obj) noexcept; ---- [.small]#link:#mrdocs-lua-Param-2constructor-0f1[_» more..._]# Construct from `int64_t` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-lua-Param-2constructor-00[Param](int64_t value) noexcept; ---- [.small]#link:#mrdocs-lua-Param-2constructor-00[_» more..._]# Construct from `nullptr_t` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-lua-Param-2constructor-0fb[Param](std::nullptr_t value) noexcept; ---- [.small]#link:#mrdocs-lua-Param-2constructor-0fb[_» more..._]# Construct from `string_view` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-lua-Param-2constructor-090[Param](std::string_view s) noexcept; ---- [.small]#link:#mrdocs-lua-Param-2constructor-090[_» more..._]# Construct from `Value` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-lua-Param-2constructor-093[Param](link:#mrdocs-lua-Value[Value] const& value) noexcept; ---- [.small]#link:#mrdocs-lua-Param-2constructor-093[_» more..._]# Construct from `Value` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-lua-Param-2constructor-02[Param](link:#mrdocs-dom-Value[dom::Value] const& value) noexcept; ---- [.small]#link:#mrdocs-lua-Param-2constructor-02[_» more..._]# Construct from `char` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-lua-Param-2constructor-098[Param](char const* s) noexcept; ---- [.small]#link:#mrdocs-lua-Param-2constructor-098[_» more..._]# Construct from `Enum` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class Enum> requires std::is_enum_v<Enum> link:#mrdocs-lua-Param-2constructor-04[Param](Enum v) noexcept; ---- [.small]#link:#mrdocs-lua-Param-2constructor-04[_» more..._]# Construct from `Boolean` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class Boolean> requires std::is_same_v<Boolean, bool> link:#mrdocs-lua-Param-2constructor-01[Param](Boolean const& b) noexcept; ---- [.small]#link:#mrdocs-lua-Param-2constructor-01[_» more..._]# Construct from `String` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class String> requires std::is_convertible_v< String, std::string_view> link:#mrdocs-lua-Param-2constructor-0ff[Param](String const& s); ---- [.small]#link:#mrdocs-lua-Param-2constructor-0ff[_» more..._]# Copy constructor == Synopsis Declared in `<mrdocs/Support/Lua.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- Param(link:#mrdocs-lua-Param[Param] const& other) = delete; ---- == Parameters [cols=2] |=== | Name | Description | *other* | The object to copy construct from |=== Construct from `Array` == Synopsis Declared in `<mrdocs/Support/Lua.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- Param(link:#mrdocs-dom-Array[dom::Array] arr) noexcept; ---- == Parameters [cols=2] |=== | Name | Description | *arr* | The object to construct from |=== Construct from `Object` == Synopsis Declared in `<mrdocs/Support/Lua.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- Param(link:#mrdocs-dom-Object[dom::Object] obj) noexcept; ---- == Parameters [cols=2] |=== | Name | Description | *obj* | The object to construct from |=== Construct from `int64_t` == Synopsis Declared in `<mrdocs/Support/Lua.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- Param(int64_t value) noexcept; ---- == Parameters [cols=2] |=== | Name | Description | *value* | The object to construct from |=== Construct from `nullptr_t` == Synopsis Declared in `<mrdocs/Support/Lua.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- Param(std::nullptr_t value) noexcept; ---- == Parameters [cols=2] |=== | Name | Description | *value* | The object to construct from |=== Construct from `string_view` == Synopsis Declared in `<mrdocs/Support/Lua.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- Param(std::string_view s) noexcept; ---- == Parameters [cols=2] |=== | Name | Description | *s* | The object to construct from |=== Construct from `Value` == Synopsis Declared in `<mrdocs/Support/Lua.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- Param(link:#mrdocs-lua-Value[Value] const& value) noexcept; ---- == Parameters [cols=2] |=== | Name | Description | *value* | The object to copy construct from |=== Construct from `Value` == Synopsis Declared in `<mrdocs/Support/Lua.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- Param(link:#mrdocs-dom-Value[dom::Value] const& value) noexcept; ---- == Parameters [cols=2] |=== | Name | Description | *value* | The object to copy construct from |=== Construct from `char` == Synopsis Declared in `<mrdocs/Support/Lua.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- Param(char const* s) noexcept; ---- == Parameters [cols=2] |=== | Name | Description | *s* | The value to construct from |=== Construct from `Enum` == Synopsis Declared in `<mrdocs/Support/Lua.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class Enum> requires std::is_enum_v<Enum> Param(Enum v) noexcept; ---- == Parameters [cols=2] |=== | Name | Description | *v* | The object to construct from |=== Construct from `Boolean` == Synopsis Declared in `<mrdocs/Support/Lua.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class Boolean> requires std::is_same_v<Boolean, bool> Param(Boolean const& b) noexcept; ---- == Parameters [cols=2] |=== | Name | Description | *b* | The object to copy construct from |=== Construct from `String` == Synopsis Declared in `<mrdocs/Support/Lua.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class String> requires std::is_convertible_v< String, std::string_view> Param(String const& s); ---- == Parameters [cols=2] |=== | Name | Description | *s* | The object to copy construct from |=== Destructor == Synopsis Declared in `<mrdocs/Support/Lua.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- ~Param(); ---- Copy assignment operator == Synopsis Declared in `<mrdocs/Support/Lua.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-lua-Param[Param]& operator=(link:#mrdocs-lua-Param[Param] const& other) = delete; ---- == Return Value Reference to the current object == Parameters [cols=2] |=== | Name | Description | *other* | The object to copy assign from |=== == Synopsis Declared in `<mrdocs/Support/Lua.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-dom-Array[dom::Array] arr_; ---- == Synopsis Declared in `<mrdocs/Support/Lua.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool b_; ---- == Synopsis Declared in `<mrdocs/Support/Lua.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- int i_; ---- == Synopsis Declared in `<mrdocs/Support/Lua.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- int index_; ---- == Synopsis Declared in `<mrdocs/Support/Lua.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-dom-Object[dom::Object] obj_; ---- == Synopsis Declared in `<mrdocs/Support/Lua.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::string_view s_; ---- == Synopsis Declared in `<mrdocs/Support/Lua.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- class Scope; ---- == Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-lua-Scope-2constructor[`Scope`] [.small]#[constructor]# | Construct from `Context` | link:#mrdocs-lua-Scope-2destructor[`~Scope`] [.small]#[destructor]# | Destructor | link:#mrdocs-lua-Scope-getGlobal[`getGlobal`] | Return a value from the global table if it exists. | link:#mrdocs-lua-Scope-getGlobalTable[`getGlobalTable`] | Return the global table. | link:#mrdocs-lua-Scope-loadChunk-0c[`loadChunk`] | Load a Lua chunk | link:#mrdocs-lua-Scope-loadChunkFromFile[`loadChunkFromFile`] | Run a Lua chunk. |=== == Friends [cols=2] |=== | Name | Description | `link:#mrdocs-lua-Access[mrdocs::lua::Access]` | |=== Construct from `Context` == Synopsis Declared in `<mrdocs/Support/Lua.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- Scope(link:#mrdocs-lua-Context[Context] const& ctx) noexcept; ---- == Parameters [cols=2] |=== | Name | Description | *ctx* | The object to copy construct from |=== Destructor == Synopsis Declared in `<mrdocs/Support/Lua.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- ~Scope(); ---- Return a value from the global table if it exists. == Synopsis Declared in `<mrdocs/Support/Lua.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-Expected-0a[Expected<Value>] getGlobal( std::string_view key, std::source_location loc = source_location::current()); ---- == Return Value The value if it exists, or an error. == Parameters [cols=2] |=== | Name | Description | *key* | The key to get. | *loc* | The source location of the call site. |=== Return the global table. == Synopsis Declared in `<mrdocs/Support/Lua.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-lua-Table[Table] getGlobalTable(); ---- == Return Value the global table. Load a Lua chunk == Synopses Declared in `<mrdocs/Support/Lua.hpp>` Load a Lua chunk [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-Expected-0a[Expected<Function>] link:#mrdocs-lua-Scope-loadChunk-0a[loadChunk]( std::string_view luaChunk, std::source_location loc = source_location::current()); ---- [.small]#link:#mrdocs-lua-Scope-loadChunk-0a[_» more..._]# Load a Lua chunk [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-Expected-0a[Expected<Function>] link:#mrdocs-lua-Scope-loadChunk-0d[loadChunk]( std::string_view luaChunk, link:#mrdocs-lua-zstring[zstring] chunkName, std::source_location loc = source_location::current()); ---- [.small]#link:#mrdocs-lua-Scope-loadChunk-0d[_» more..._]# == Return Value The function if successful, or an error. == Parameters [cols=2] |=== | Name | Description | *luaChunk* | The Lua chunk to load. | *loc* | The source location of the call site. | *chunkName* | The name of the chunk (used in error messages). |=== Load a Lua chunk == Synopsis Declared in `<mrdocs/Support/Lua.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-Expected-0a[Expected<Function>] loadChunk( std::string_view luaChunk, std::source_location loc = source_location::current()); ---- == Return Value The function if successful, or an error. == Parameters [cols=2] |=== | Name | Description | *luaChunk* | The Lua chunk to load. | *loc* | The source location of the call site. |=== Load a Lua chunk == Synopsis Declared in `<mrdocs/Support/Lua.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-Expected-0a[Expected<Function>] loadChunk( std::string_view luaChunk, link:#mrdocs-lua-zstring[zstring] chunkName, std::source_location loc = source_location::current()); ---- == Return Value The function if successful, or an error. == Parameters [cols=2] |=== | Name | Description | *luaChunk* | The Lua chunk to load. | *chunkName* | The name of the chunk (used in error messages). | *loc* | The source location of the call site. |=== Run a Lua chunk. == Synopsis Declared in `<mrdocs/Support/Lua.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-Expected-0a[Expected<Function>] loadChunkFromFile( std::string_view fileName, std::source_location loc = source_location::current()); ---- == Return Value The function if successful, or an error. == Parameters [cols=2] |=== | Name | Description | *fileName* | The name of the file to load. | *loc* | The source location of the call site. |=== A Lua string. == Synopsis Declared in `<mrdocs/Support/Lua.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- class String : public link:#mrdocs-lua-Value[Value] ---- == Base Classes [cols=2] |=== | Name | Description | `link:#mrdocs-lua-Value[Value]` | A Lua value. |=== == Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-lua-String-2constructor-04[`String`] [.small]#[constructor]# | Constructors | link:#mrdocs-lua-Value-call[`call`] | Invoke the value as a function. | link:#mrdocs-lua-Value-displayString[`displayString`] | Return a string representation. | link:#mrdocs-lua-String-get[`get`] | | link:#mrdocs-lua-Value-isBoolean[`isBoolean`] | | link:#mrdocs-lua-Value-isFunction[`isFunction`] | | link:#mrdocs-lua-Value-isNil[`isNil`] | | link:#mrdocs-lua-Value-isNumber[`isNumber`] | | link:#mrdocs-lua-Value-isString[`isString`] | | link:#mrdocs-lua-Value-isTable[`isTable`] | | link:#mrdocs-lua-Value-operator_call[`operator()`] | Invoke the value as a function. | link:#mrdocs-lua-String-operator_star[`operator*`] | | link:#mrdocs-lua-Value-type[`type`] | | link:#mrdocs-lua-String-2conversion[`operator std::string_view`] | Conversion to `string_view` |=== == Protected Data Members [cols=1] |=== | Name | link:#mrdocs-lua-Value-index_[`index_`] | link:#mrdocs-lua-Value-scope_[`scope_`] |=== == Friends [cols=2] |=== | Name | Description | `link:#mrdocs-lua-Access[mrdocs::lua::Access]` | |=== Constructors == Synopses Declared in `<mrdocs/Support/Lua.hpp>` Construct from `Value` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-lua-String-2constructor-0b[String](link:#mrdocs-lua-Value[Value] value); ---- [.small]#link:#mrdocs-lua-String-2constructor-0b[_» more..._]# Construct from `string_view` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- explicit link:#mrdocs-lua-String-2constructor-02[String](std::string_view s); ---- [.small]#link:#mrdocs-lua-String-2constructor-02[_» more..._]# Construct from `Value` == Synopsis Declared in `<mrdocs/Support/Lua.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- String(link:#mrdocs-lua-Value[Value] value); ---- == Parameters [cols=2] |=== | Name | Description | *value* | The object to construct from |=== Construct from `string_view` == Synopsis Declared in `<mrdocs/Support/Lua.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- explicit String(std::string_view s); ---- == Parameters [cols=2] |=== | Name | Description | *s* | The object to construct from |=== == Synopsis Declared in `<mrdocs/Support/Lua.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::string_view get() const noexcept; ---- == Synopsis Declared in `<mrdocs/Support/Lua.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::string_view operator*() const noexcept; ---- Conversion to `string_view` == Synopsis Declared in `<mrdocs/Support/Lua.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- operator std::string_view() const noexcept; ---- == Return Value The object converted to `string_view` A Lua table. == Synopsis Declared in `<mrdocs/Support/Lua.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- class Table : public link:#mrdocs-lua-Value[Value] ---- == Base Classes [cols=2] |=== | Name | Description | `link:#mrdocs-lua-Value[Value]` | A Lua value. |=== == Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-lua-Table-2constructor-0b7[`Table`] [.small]#[constructor]# | Constructors | link:#mrdocs-lua-Value-call[`call`] | Invoke the value as a function. | link:#mrdocs-lua-Value-displayString[`displayString`] | Return a string representation. | link:#mrdocs-lua-Table-get[`get`] | | link:#mrdocs-lua-Value-isBoolean[`isBoolean`] | | link:#mrdocs-lua-Value-isFunction[`isFunction`] | | link:#mrdocs-lua-Value-isNil[`isNil`] | | link:#mrdocs-lua-Value-isNumber[`isNumber`] | | link:#mrdocs-lua-Value-isString[`isString`] | | link:#mrdocs-lua-Value-isTable[`isTable`] | | link:#mrdocs-lua-Value-operator_call[`operator()`] | Invoke the value as a function. | link:#mrdocs-lua-Table-set[`set`] | Create or replace the value with a key. | link:#mrdocs-lua-Value-type[`type`] | |=== == Protected Data Members [cols=1] |=== | Name | link:#mrdocs-lua-Value-index_[`index_`] | link:#mrdocs-lua-Value-scope_[`scope_`] |=== == Friends [cols=2] |=== | Name | Description | `link:#mrdocs-lua-Access[mrdocs::lua::Access]` | |=== Constructors == Synopses Declared in `<mrdocs/Support/Lua.hpp>` Construct from `Value` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-lua-Table-2constructor-0bd[Table](link:#mrdocs-lua-Value[Value] value); ---- [.small]#link:#mrdocs-lua-Table-2constructor-0bd[_» more..._]# Construct from `Scope` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- explicit link:#mrdocs-lua-Table-2constructor-07[Table](link:#mrdocs-lua-Scope[Scope]& scope); ---- [.small]#link:#mrdocs-lua-Table-2constructor-07[_» more..._]# Constructor [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-lua-Table-2constructor-03[Table]( link:#mrdocs-lua-Scope[Scope]&, link:#mrdocs-dom-Object[dom::Object] const& obj); ---- [.small]#link:#mrdocs-lua-Table-2constructor-03[_» more..._]# Construct from `Value` == Synopsis Declared in `<mrdocs/Support/Lua.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- Table(link:#mrdocs-lua-Value[Value] value); ---- == Parameters [cols=2] |=== | Name | Description | *value* | The object to construct from |=== Construct from `Scope` == Synopsis Declared in `<mrdocs/Support/Lua.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- explicit Table(link:#mrdocs-lua-Scope[Scope]& scope); ---- == Parameters [cols=2] |=== | Name | Description | *scope* | The object to copy construct from |=== Constructor == Synopsis Declared in `<mrdocs/Support/Lua.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- Table( link:#mrdocs-lua-Scope[Scope]&, link:#mrdocs-dom-Object[dom::Object] const& obj); ---- == Parameters [cols=2] |=== | Name | Description | *obj* | A container of key and value pairs. |=== == Synopsis Declared in `<mrdocs/Support/Lua.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-lua-Value[Value] get(std::string_view key) const; ---- Create or replace the value with a key. == Synopsis Declared in `<mrdocs/Support/Lua.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void set( std::string_view key, link:#mrdocs-lua-Param[Param] value) const; ---- == Parameters [cols=2] |=== | Name | Description | *key* | The key to set. | *value* | The value to set. |=== A Lua value. == Synopsis Declared in `<mrdocs/Support/Lua.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- class Value; ---- == Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-lua-Value-2constructor-019[`Value`] [.small]#[constructor]# | Constructor. | link:#mrdocs-lua-Value-2destructor[`~Value`] [.small]#[destructor]# | Destructor. | link:#mrdocs-lua-Value-call[`call`] | Invoke the value as a function. | link:#mrdocs-lua-Value-displayString[`displayString`] | Return a string representation. | link:#mrdocs-lua-Value-isBoolean[`isBoolean`] | | link:#mrdocs-lua-Value-isFunction[`isFunction`] | | link:#mrdocs-lua-Value-isNil[`isNil`] | | link:#mrdocs-lua-Value-isNumber[`isNumber`] | | link:#mrdocs-lua-Value-isString[`isString`] | | link:#mrdocs-lua-Value-isTable[`isTable`] | | link:#mrdocs-lua-Value-operator_call[`operator()`] | Invoke the value as a function. | link:#mrdocs-lua-Value-type[`type`] | |=== == Protected Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-lua-Value-2constructor-016[`Value`] [.small]#[constructor]# | Constructor |=== == Protected Data Members [cols=1] |=== | Name | link:#mrdocs-lua-Value-index_[`index_`] | link:#mrdocs-lua-Value-scope_[`scope_`] |=== == Friends [cols=2] |=== | Name | Description | `link:#mrdocs-lua-Access[mrdocs::lua::Access]` | |=== == Derived Classes [cols=2] |=== | Name | Description | link:#mrdocs-lua-Function[`Function`] | A Lua function. | link:#mrdocs-lua-String[`String`] | A Lua string. | link:#mrdocs-lua-Table[`Table`] | A Lua table. |=== Constructor. == Synopses Declared in `<mrdocs/Support/Lua.hpp>` Constructor. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-lua-Value-2constructor-07[Value]() noexcept; ---- [.small]#link:#mrdocs-lua-Value-2constructor-07[_» more..._]# Constructor. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-lua-Value-2constructor-03[Value](link:#mrdocs-lua-Value[Value] const& other); ---- [.small]#link:#mrdocs-lua-Value-2constructor-03[_» more..._]# Constructor. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-lua-Value-2constructor-0e[Value](link:#mrdocs-lua-Value[Value]&& other) noexcept; ---- [.small]#link:#mrdocs-lua-Value-2constructor-0e[_» more..._]# == Parameters [cols=2] |=== | Name | Description | *other* | The value to copy. |=== Constructor. == Synopsis Declared in `<mrdocs/Support/Lua.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- Value() noexcept; ---- == Description Default constructed values have no scope or assigned stack index and are equivalent to the value Nil. Constructor. == Synopsis Declared in `<mrdocs/Support/Lua.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- Value(link:#mrdocs-lua-Value[Value] const& other); ---- == Description The new value will be assigned a new stack index which has the same underlying value as `other`. == Parameters [cols=2] |=== | Name | Description | *other* | The value to copy. |=== Constructor. == Synopsis Declared in `<mrdocs/Support/Lua.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- Value(link:#mrdocs-lua-Value[Value]&& other) noexcept; ---- == Description The newly constructed object will acquire the same stack index, while the moved‐from object will become as if default‐constructed. == Parameters [cols=2] |=== | Name | Description | *other* | The object to move construct from |=== Destructor. == Synopsis Declared in `<mrdocs/Support/Lua.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- ~Value(); ---- == Description The Lua value will eventually be removed from the stack. Invoke the value as a function. == Synopsis Declared in `<mrdocs/Support/Lua.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class... Args> link:#mrdocs-Expected-0a[Expected<Value>] call(Args...&&... args); ---- == Description If the invocation fails the return value will contain the corresponding error. == Return Value The return value of the function. == Parameters [cols=2] |=== | Name | Description | *args* | Zero or more values to pass to the function. |=== Return a string representation. == Synopsis Declared in `<mrdocs/Support/Lua.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::string displayString() const; ---- == Description This function is used for diagnostics. == Return Value a string representation. == Synopsis Declared in `<mrdocs/Support/Lua.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool isBoolean() const noexcept; ---- == Synopsis Declared in `<mrdocs/Support/Lua.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool isFunction() const noexcept; ---- == Synopsis Declared in `<mrdocs/Support/Lua.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool isNil() const noexcept; ---- == Synopsis Declared in `<mrdocs/Support/Lua.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool isNumber() const noexcept; ---- == Synopsis Declared in `<mrdocs/Support/Lua.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool isString() const noexcept; ---- == Synopsis Declared in `<mrdocs/Support/Lua.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool isTable() const noexcept; ---- Invoke the value as a function. == Synopsis Declared in `<mrdocs/Support/Lua.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class... Args> link:#mrdocs-lua-Value[Value] operator()(Args...&&... args); ---- == Return Value Another instance of the object == Parameters [cols=2] |=== | Name | Description | *args* | Zero or more values to pass to the function. |=== == Synopsis Declared in `<mrdocs/Support/Lua.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-lua-Type[Type] type() const noexcept; ---- Constructor == Synopsis Declared in `<mrdocs/Support/Lua.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- Value( int, link:#mrdocs-lua-Scope[Scope]&) noexcept; ---- == Synopsis Declared in `<mrdocs/Support/Lua.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- int index_; ---- == Synopsis Declared in `<mrdocs/Support/Lua.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-lua-Scope[Scope]* scope_; ---- A null‐terminated string. == Synopsis Declared in `<mrdocs/Support/Lua.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- class zstring; ---- == Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-lua-zstring-2constructor-0c[`zstring`] [.small]#[constructor]# | Constructors | link:#mrdocs-lua-zstring-c_str[`c_str`] | |=== Constructors == Synopses Declared in `<mrdocs/Support/Lua.hpp>` Construct from `string_view` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-lua-zstring-2constructor-0d[zstring](std::string_view s); ---- [.small]#link:#mrdocs-lua-zstring-2constructor-0d[_» more..._]# Construct from `string` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-lua-zstring-2constructor-04[zstring](std::string const& s); ---- [.small]#link:#mrdocs-lua-zstring-2constructor-04[_» more..._]# Construct from `char` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-lua-zstring-2constructor-09[zstring](char const* s) noexcept; ---- [.small]#link:#mrdocs-lua-zstring-2constructor-09[_» more..._]# Construct from `string_view` == Synopsis Declared in `<mrdocs/Support/Lua.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- zstring(std::string_view s); ---- == Parameters [cols=2] |=== | Name | Description | *s* | The object to construct from |=== Construct from `string` == Synopsis Declared in `<mrdocs/Support/Lua.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- zstring(std::string const& s); ---- == Parameters [cols=2] |=== | Name | Description | *s* | The object to copy construct from |=== Construct from `char` == Synopsis Declared in `<mrdocs/Support/Lua.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- zstring(char const* s) noexcept; ---- == Parameters [cols=2] |=== | Name | Description | *s* | The value to construct from |=== == Synopsis Declared in `<mrdocs/Support/Lua.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- char const* c_str() const noexcept; ---- Types of values. == Synopsis Declared in `<mrdocs/Support/Lua.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- enum class Type : int; ---- == Members [cols=2] |=== | Name | Description | `nil` | The value is nil | `boolean` | The value is a boolean | `number` | The value is a number | `string` | The value is a string | `table` | The value is a table | `function` | The value is a function |=== == Types [cols=2] |=== | Name | Description | link:#mrdocs-report-Located[`Located`] | Parameter type that adds a source location to a value. | link:#mrdocs-report-Results[`Results`] | Provides statistics on the number of reported messages. |=== == Enums [cols=2] |=== | Name | Description | link:#mrdocs-report-Level[`Level`] | Severity levels attached to reported messags. |=== == Functions [cols=2] |=== | Name | Description | link:#mrdocs-report-debug[`debug`] | Report a message to the console. | link:#mrdocs-report-error[`error`] | Report a message to the console. | link:#mrdocs-report-fatal[`fatal`] | Report a message to the console. | link:#mrdocs-report-getMinimumLevel[`getMinimumLevel`] | | link:#mrdocs-report-info[`info`] | Report a message to the console. | link:#mrdocs-report-log[`log`] | Format a message to the console. | link:#mrdocs-report-print-08[`print`] | Report a message to the console. | link:#mrdocs-report-setMinimumLevel[`setMinimumLevel`] | Set the minimum threshold level for reporting. | link:#mrdocs-report-setSourceLocationWarnings[`setSourceLocationWarnings`] | If true, source location information will be printed with warnings, errors, and fatal messages. | link:#mrdocs-report-trace[`trace`] | Report a message to the console. | link:#mrdocs-report-warn[`warn`] | Report a message to the console. |=== == Variables [cols=2] |=== | Name | Description | link:#mrdocs-report-results[`results`] | Holds current statistics on reported messages. |=== Parameter type that adds a source location to a value. == Synopsis Declared in `<mrdocs/Support/Report.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class T> struct Located; ---- == Member Functions [cols=1] |=== | Name | link:#mrdocs-report-Located-2constructor[`Located`] [.small]#[constructor]# |=== == Data Members [cols=1] |=== | Name | link:#mrdocs-report-Located-value[`value`] | link:#mrdocs-report-Located-where[`where`] |=== == Non-Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-report-debug[`debug`] | Report a message to the console. | link:#mrdocs-report-error[`error`] | Report a message to the console. | link:#mrdocs-report-fatal[`fatal`] | Report a message to the console. | link:#mrdocs-report-info[`info`] | Report a message to the console. | link:#mrdocs-report-trace[`trace`] | Report a message to the console. | link:#mrdocs-report-warn[`warn`] | Report a message to the console. |=== == Synopsis Declared in `<mrdocs/Support/Report.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class Arg> requires std::is_constructible_v<T, Arg> Located( Arg&& arg, std::source_location const& loc = source_location::current()); ---- == Synopsis Declared in `<mrdocs/Support/Report.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- T value; ---- == Synopsis Declared in `<mrdocs/Support/Report.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::source_location where; ---- Provides statistics on the number of reported messages. == Synopsis Declared in `<mrdocs/Support/Report.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- struct Results; ---- == Data Members [cols=1] |=== | Name | link:#mrdocs-report-Results-debugCount[`debugCount`] | link:#mrdocs-report-Results-errorCount[`errorCount`] | link:#mrdocs-report-Results-fatalCount[`fatalCount`] | link:#mrdocs-report-Results-infoCount[`infoCount`] | link:#mrdocs-report-Results-traceCount[`traceCount`] | link:#mrdocs-report-Results-warnCount[`warnCount`] |=== == Synopsis Declared in `<mrdocs/Support/Report.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::size_t debugCount; ---- == Synopsis Declared in `<mrdocs/Support/Report.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::size_t errorCount; ---- == Synopsis Declared in `<mrdocs/Support/Report.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::size_t fatalCount; ---- == Synopsis Declared in `<mrdocs/Support/Report.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::size_t infoCount; ---- == Synopsis Declared in `<mrdocs/Support/Report.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::size_t traceCount; ---- == Synopsis Declared in `<mrdocs/Support/Report.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::size_t warnCount; ---- Severity levels attached to reported messags. == Synopsis Declared in `<mrdocs/Support/Report.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- enum class Level : int; ---- == Members [cols=2] |=== | Name | Description | `trace` | Programming trace messages | `debug` | Debug messages | `info` | Informational messages | `warn` | Warning messages | `error` | Error messages | `fatal` | Fatal error messages |=== == Non-Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-report-log[`log`] | Format a message to the console. | link:#mrdocs-report-print-09[`print`] | Report a message to the console. | link:#mrdocs-report-setMinimumLevel[`setMinimumLevel`] | Set the minimum threshold level for reporting. |=== Report a message to the console. == Synopsis Declared in `<mrdocs/Support/Report.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class... Args> void debug( link:#mrdocs-report-Located[Located<std::string_view>] format, Args...&&... args); ---- == Parameters [cols=2] |=== | Name | Description | *format* | The format string. | *args* | Optional additional arguments |=== Report a message to the console. == Synopsis Declared in `<mrdocs/Support/Report.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class... Args> void error( link:#mrdocs-report-Located[Located<std::string_view>] format, Args...&&... args); ---- == Parameters [cols=2] |=== | Name | Description | *format* | The format string. | *args* | Optional additional arguments |=== Report a message to the console. == Synopsis Declared in `<mrdocs/Support/Report.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class... Args> void fatal( link:#mrdocs-report-Located[Located<std::string_view>] format, Args...&&... args); ---- == Parameters [cols=2] |=== | Name | Description | *format* | The format string. | *args* | Optional additional arguments |=== == Synopsis Declared in `<mrdocs/Support/Report.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-report-Level[Level] getMinimumLevel() noexcept; ---- Report a message to the console. == Synopsis Declared in `<mrdocs/Support/Report.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class... Args> void info( link:#mrdocs-report-Located[Located<std::string_view>] format, Args...&&... args); ---- == Parameters [cols=2] |=== | Name | Description | *format* | The format string. | *args* | Optional additional arguments |=== Format a message to the console. == Synopsis Declared in `<mrdocs/Support/Report.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class... Args> void log( link:#mrdocs-report-Level[Level] level, link:#mrdocs-report-Located[Located<std::string_view>] fs, Args...&&... args); ---- == Parameters [cols=2] |=== | Name | Description | *level* | 0 to 4 The severity of the report. 0 is debug and 4 is fatal. | *fs* | The format string. | *args* | Optional additional arguments used to format a message to print. A trailing newline will be added to the message automatically. |=== Report a message to the console. == Synopses Declared in `<mrdocs/Support/Report.hpp>` Report a message to the console. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void link:#mrdocs-report-print-01[print](std::string const& text); ---- [.small]#link:#mrdocs-report-print-01[_» more..._]# Report a message to the console. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void link:#mrdocs-report-print-09[print]( link:#mrdocs-report-Level[Level] level, std::string const& text, std::source_location const* loc = nullptr, link:#mrdocs-Error[Error] const* e = nullptr); ---- [.small]#link:#mrdocs-report-print-09[_» more..._]# == Parameters [cols=2] |=== | Name | Description | *text* | The message to print. A trailing newline will be added to the message automatically. | *level* | 0 to 4 The severity of the report. 0 is debug and 4 is fatal. | *loc* | The source location of the report. If this value is null, no location is printed. |=== Report a message to the console. == Synopsis Declared in `<mrdocs/Support/Report.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void print(std::string const& text); ---- == Parameters [cols=2] |=== | Name | Description | *text* | The message to print. A trailing newline will be added to the message automatically. |=== Report a message to the console. == Synopsis Declared in `<mrdocs/Support/Report.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void print( link:#mrdocs-report-Level[Level] level, std::string const& text, std::source_location const* loc = nullptr, link:#mrdocs-Error[Error] const* e = nullptr); ---- == Parameters [cols=2] |=== | Name | Description | *level* | 0 to 4 The severity of the report. 0 is debug and 4 is fatal. | *text* | The message to print. A trailing newline will be added to the message automatically. | *loc* | The source location of the report. If this value is null, no location is printed. | *e* | Holds the description of an error, or success. |=== Set the minimum threshold level for reporting. == Synopsis Declared in `<mrdocs/Support/Report.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void setMinimumLevel(link:#mrdocs-report-Level[Level] level) noexcept; ---- == Description Messages below this level will not be printed. A value of 5 will suppress all messages. Note that messages will still be counted towards result totals even if they are not displayed. == Parameters [cols=2] |=== | Name | Description | *level* | Severity levels attached to reported messags. |=== If true, source location information will be printed with warnings, errors, and fatal messages. == Synopsis Declared in `<mrdocs/Support/Report.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void setSourceLocationWarnings(bool b) noexcept; ---- == Parameters [cols=2] |=== | Name | Description | *b* | true to enable source location information, false to disable it. The default value is true. |=== Report a message to the console. == Synopsis Declared in `<mrdocs/Support/Report.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class... Args> void trace( link:#mrdocs-report-Located[Located<std::string_view>] format, Args...&&... args); ---- == Parameters [cols=2] |=== | Name | Description | *format* | The format string. | *args* | Optional additional arguments |=== Report a message to the console. == Synopsis Declared in `<mrdocs/Support/Report.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class... Args> void warn( link:#mrdocs-report-Located[Located<std::string_view>] format, Args...&&... args); ---- == Parameters [cols=2] |=== | Name | Description | *format* | The format string. | *args* | Optional additional arguments |=== Holds current statistics on reported messages. == Synopsis Declared in `<mrdocs/Support/Report.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- extern link:#mrdocs-report-Results[Results] results; ---- == Synopsis Declared in `<mrdocs/ADT/UnorderedStringMap.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class T> using UnorderedStringMap = std::unordered_map<std::string, T, StringHash, std::equal_to>; ---- == Synopsis Declared in `<mrdocs/ADT/UnorderedStringMap.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class T> using UnorderedStringMultiMap = std::unordered_multimap<std::string, T, StringHash, std::equal_to>; ---- == Synopsis Declared in `<mrdocs/Support/TypeTraits.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< typename From, typename To> using add_const_from_t = add_const_from<From, To>::type; ---- == Synopsis Declared in `<mrdocs/Support/TypeTraits.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< typename From, typename To> using add_cv_from_t = add_cv_from<From, To>::type; ---- == Synopsis Declared in `<mrdocs/Support/TypeTraits.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< typename From, typename To> using add_cvref_from_t = add_cvref_from<From, To>::type; ---- == Synopsis Declared in `<mrdocs/Support/TypeTraits.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< typename From, typename To> using add_lvalue_reference_from_t = add_lvalue_reference_from<From, To>::type; ---- == Synopsis Declared in `<mrdocs/Support/TypeTraits.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< typename From, typename To> using add_reference_from_t = add_reference_from<From, To>::type; ---- == Synopsis Declared in `<mrdocs/Support/TypeTraits.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< typename From, typename To> using add_rvalue_reference_from_t = add_rvalue_reference_from<From, To>::type; ---- == Synopsis Declared in `<mrdocs/Support/TypeTraits.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< typename From, typename To> using add_volatile_from_t = add_volatile_from<From, To>::type; ---- == Synopsis Declared in `<mrdocs/Support/TypeTraits.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< typename T, typename U> using make_dependent_t = T; ---- == Synopsis Declared in `<mrdocs/Support/Path.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- struct AnyFileVisitor; ---- == Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-AnyFileVisitor-2destructor[`~AnyFileVisitor`] [.small]#[destructor]# [.small]#[virtual]# | Destructor | link:#mrdocs-AnyFileVisitor-visitFile[`visitFile`] [.small]#[virtual]# | |=== Destructor == Synopsis Declared in `<mrdocs/Support/Path.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- virtual ~AnyFileVisitor() = 0; ---- == Synopsis Declared in `<mrdocs/Support/Path.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- virtual link:#mrdocs-Expected-0a[Expected<void>] visitFile(std::string_view fileName) = 0; ---- == Synopsis Declared in `<mrdocs/Metadata/Type/ArrayType.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- struct ArrayType final : link:#mrdocs-TypeCommonBase-0e[TypeCommonBase<TypeKind::Array>] ---- == Base Classes [cols=2] |=== | Name | Description | `link:#mrdocs-TypeCommonBase-0e[TypeCommonBase<TypeKind::Array>]` | |=== == Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-ArrayType-operator_3way-07[`operator<=>`] | Three‐way comparison operators |=== == Static Member Functions [cols=1] |=== | Name | link:#mrdocs-ArrayType-isArray[`isArray`] | link:#mrdocs-ArrayType-isAuto[`isAuto`] | link:#mrdocs-ArrayType-isDecltype[`isDecltype`] | link:#mrdocs-ArrayType-isFunction[`isFunction`] | link:#mrdocs-ArrayType-isLValueReference[`isLValueReference`] | link:#mrdocs-ArrayType-isMemberPointer[`isMemberPointer`] | link:#mrdocs-ArrayType-isNamed[`isNamed`] | link:#mrdocs-ArrayType-isPointer[`isPointer`] | link:#mrdocs-ArrayType-isRValueReference[`isRValueReference`] |=== == Data Members [cols=1] |=== | Name | link:#mrdocs-ArrayType-Bounds[`Bounds`] | link:#mrdocs-ArrayType-ElementType[`ElementType`] |=== == Static Data Members [cols=1] |=== | Name | link:#mrdocs-ArrayType-kind_id[`kind_id`] |=== == Non-Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-innerType-06[`innerType`] | Return the inner type. | link:#mrdocs-innerType-09[`innerType`] | Return the inner type. | link:#mrdocs-innerTypePtr-08[`innerTypePtr`] | Return the inner type. | link:#mrdocs-innerTypePtr-0a[`innerTypePtr`] | Return the inner type. |=== Three‐way comparison operators == Synopses Declared in `<mrdocs/Metadata/Type/ArrayType.hpp>` Three‐way comparison operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::strong_ordering link:#mrdocs-ArrayType-operator_3way-0d[operator<=>](link:#mrdocs-ArrayType[ArrayType] const& rhs) const; ---- [.small]#link:#mrdocs-ArrayType-operator_3way-0d[_» more..._]# Three‐way comparison operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr auto link:#mrdocs-ArrayType-operator_3way-00[operator<=>](link:#mrdocs-TypeCommonBase-0e[TypeCommonBase<mrdocs::TypeKind::Array>] const& rhs) const = default; ---- [.small]#link:#mrdocs-ArrayType-operator_3way-00[_» more..._]# Three‐way comparison operator == Synopsis Declared in `<mrdocs/Metadata/Type/ArrayType.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::strong_ordering operator<=>(link:#mrdocs-ArrayType[ArrayType] const& rhs) const; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== Three‐way comparison operator == Synopsis Declared in `<mrdocs/Metadata/Type/TypeBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr auto operator<=>(link:#mrdocs-TypeCommonBase-0e[TypeCommonBase<mrdocs::TypeKind::Array>] const& rhs) const = default; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== == Synopsis Declared in `<mrdocs/Metadata/Type/TypeBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isArray() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Type/TypeBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isAuto() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Type/TypeBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isDecltype() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Type/TypeBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isFunction() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Type/TypeBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isLValueReference() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Type/TypeBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isMemberPointer() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Type/TypeBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isNamed() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Type/TypeBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isPointer() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Type/TypeBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isRValueReference() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Type/ArrayType.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-ConstantExprInfo[ConstantExprInfo<uint64_t>] Bounds; ---- == Synopsis Declared in `<mrdocs/Metadata/Type/ArrayType.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-Polymorphic[Polymorphic<Type>] ElementType = Polymorphic<Type>(AutoType{}); ---- == Synopsis Declared in `<mrdocs/Metadata/Type/TypeBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static link:#mrdocs-TypeKind[TypeKind] kind_id; ---- A non‐owning, read‐only view over a contiguous array of T. == Synopsis Declared in `<mrdocs/ADT/ArrayView.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class T> class ArrayView; ---- == Types [cols=1] |=== | Name | link:#mrdocs-ArrayView-06-const_iterator[`const_iterator`] | link:#mrdocs-ArrayView-06-const_pointer[`const_pointer`] | link:#mrdocs-ArrayView-06-const_reference[`const_reference`] | link:#mrdocs-ArrayView-06-const_reverse_iterator[`const_reverse_iterator`] | link:#mrdocs-ArrayView-06-difference_type[`difference_type`] | link:#mrdocs-ArrayView-06-iterator[`iterator`] | link:#mrdocs-ArrayView-06-pointer[`pointer`] | link:#mrdocs-ArrayView-06-reference[`reference`] | link:#mrdocs-ArrayView-06-reverse_iterator[`reverse_iterator`] | link:#mrdocs-ArrayView-06-size_type[`size_type`] | link:#mrdocs-ArrayView-06-value_type[`value_type`] |=== == Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-ArrayView-06-2constructor-0e85[`ArrayView`] [.small]#[constructor]# | Constructors | link:#mrdocs-ArrayView-06-at[`at`] | | link:#mrdocs-ArrayView-06-back[`back`] | | link:#mrdocs-ArrayView-06-begin[`begin`] | | link:#mrdocs-ArrayView-06-cbegin[`cbegin`] | | link:#mrdocs-ArrayView-06-cend[`cend`] | | link:#mrdocs-ArrayView-06-data[`data`] | | link:#mrdocs-ArrayView-06-drop_back[`drop_back`] | | link:#mrdocs-ArrayView-06-drop_front[`drop_front`] | | link:#mrdocs-ArrayView-06-empty[`empty`] | | link:#mrdocs-ArrayView-06-end[`end`] | | link:#mrdocs-ArrayView-06-front[`front`] | | link:#mrdocs-ArrayView-06-length[`length`] | | link:#mrdocs-ArrayView-06-operator_subs[`operator[]`] | | link:#mrdocs-ArrayView-06-rbegin[`rbegin`] | | link:#mrdocs-ArrayView-06-remove_prefix[`remove_prefix`] | | link:#mrdocs-ArrayView-06-remove_suffix[`remove_suffix`] | | link:#mrdocs-ArrayView-06-rend[`rend`] | | link:#mrdocs-ArrayView-06-size[`size`] | | link:#mrdocs-ArrayView-06-slice[`slice`] | | link:#mrdocs-ArrayView-06-take_back[`take_back`] | | link:#mrdocs-ArrayView-06-take_front[`take_front`] | |=== == Static Data Members [cols=1] |=== | Name | link:#mrdocs-ArrayView-06-npos[`npos`] |=== == Friends [cols=2] |=== | Name | Description | `link:#mrdocs-operator_3way-0a[mrdocs::operator<=>]` | Three‐way comparison operator | `link:#mrdocs-operator_eq-07[mrdocs::operator==]` | Equality operator |=== == Description Similar to std::string_view but for arbitrary element type T. == Synopsis Declared in `<mrdocs/ADT/ArrayView.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- using const_iterator = T const*; ---- == Synopsis Declared in `<mrdocs/ADT/ArrayView.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- using const_pointer = T const*; ---- == Synopsis Declared in `<mrdocs/ADT/ArrayView.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- using const_reference = T const&; ---- == Synopsis Declared in `<mrdocs/ADT/ArrayView.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- using const_reverse_iterator = std::reverse_iterator<const_iterator>; ---- == Synopsis Declared in `<mrdocs/ADT/ArrayView.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- using difference_type = std::ptrdiff_t; ---- == Synopsis Declared in `<mrdocs/ADT/ArrayView.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- using iterator = T const*; ---- == Synopsis Declared in `<mrdocs/ADT/ArrayView.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- using pointer = T const*; ---- == Synopsis Declared in `<mrdocs/ADT/ArrayView.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- using reference = T const&; ---- == Synopsis Declared in `<mrdocs/ADT/ArrayView.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- using reverse_iterator = std::reverse_iterator<const_iterator>; ---- == Synopsis Declared in `<mrdocs/ADT/ArrayView.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- using size_type = std::size_t; ---- == Synopsis Declared in `<mrdocs/ADT/ArrayView.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- using value_type = T; ---- Constructors == Synopses Declared in `<mrdocs/ADT/ArrayView.hpp>` Default constructor [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-ArrayView-06-2constructor-0e8c[ArrayView]() noexcept = default; ---- [.small]#link:#mrdocs-ArrayView-06-2constructor-0e8c[_» more..._]# Construct from `T` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<link:#mrdocs-ArrayView-06-size_type[size_type] N> constexpr link:#mrdocs-ArrayView-06-2constructor-03[ArrayView](T const(& arr)[]) noexcept; ---- [.small]#link:#mrdocs-ArrayView-06-2constructor-03[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-ArrayView-06-2constructor-0d[ArrayView]( T const* data, link:#mrdocs-ArrayView-06-size_type[size_type] count) noexcept; ---- [.small]#link:#mrdocs-ArrayView-06-2constructor-0d[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class It> requires (std::contiguous_iterator<It> && std::same_as<std::remove_cv_t<std::remove_reference_t<std::iter_value_t<It>>>, T>) constexpr link:#mrdocs-ArrayView-06-2constructor-0f[ArrayView]( It first, link:#mrdocs-ArrayView-06-size_type[size_type] count) noexcept; ---- [.small]#link:#mrdocs-ArrayView-06-2constructor-0f[_» more..._]# Default constructor == Synopsis Declared in `<mrdocs/ADT/ArrayView.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr ArrayView() noexcept = default; ---- Construct from `T` == Synopsis Declared in `<mrdocs/ADT/ArrayView.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<link:#mrdocs-ArrayView-06-size_type[size_type] N> constexpr ArrayView(T const(& arr)[]) noexcept; ---- == Parameters [cols=2] |=== | Name | Description | *arr* | The object to copy construct from |=== == Synopsis Declared in `<mrdocs/ADT/ArrayView.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr ArrayView( T const* data, link:#mrdocs-ArrayView-06-size_type[size_type] count) noexcept; ---- == Synopsis Declared in `<mrdocs/ADT/ArrayView.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class It> requires (std::contiguous_iterator<It> && std::same_as<std::remove_cv_t<std::remove_reference_t<std::iter_value_t<It>>>, T>) constexpr ArrayView( It first, link:#mrdocs-ArrayView-06-size_type[size_type] count) noexcept; ---- == Synopsis Declared in `<mrdocs/ADT/ArrayView.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-ArrayView-06-const_reference[const_reference] at(link:#mrdocs-ArrayView-06-size_type[size_type] i) const; ---- == Synopsis Declared in `<mrdocs/ADT/ArrayView.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-ArrayView-06-const_reference[const_reference] back() const; ---- == Synopsis Declared in `<mrdocs/ADT/ArrayView.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-ArrayView-06-const_iterator[const_iterator] begin() const noexcept; ---- == Synopsis Declared in `<mrdocs/ADT/ArrayView.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-ArrayView-06-const_iterator[const_iterator] cbegin() const noexcept; ---- == Synopsis Declared in `<mrdocs/ADT/ArrayView.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-ArrayView-06-const_iterator[const_iterator] cend() const noexcept; ---- == Synopsis Declared in `<mrdocs/ADT/ArrayView.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-ArrayView-06-const_pointer[const_pointer] data() const noexcept; ---- == Synopsis Declared in `<mrdocs/ADT/ArrayView.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-ArrayView-06[ArrayView] drop_back(link:#mrdocs-ArrayView-06-size_type[size_type] n) const noexcept; ---- == Synopsis Declared in `<mrdocs/ADT/ArrayView.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-ArrayView-06[ArrayView] drop_front(link:#mrdocs-ArrayView-06-size_type[size_type] n) const noexcept; ---- == Synopsis Declared in `<mrdocs/ADT/ArrayView.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- [[nodiscard]] constexpr bool empty() const noexcept; ---- == Synopsis Declared in `<mrdocs/ADT/ArrayView.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-ArrayView-06-const_iterator[const_iterator] end() const noexcept; ---- == Synopsis Declared in `<mrdocs/ADT/ArrayView.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-ArrayView-06-const_reference[const_reference] front() const; ---- == Synopsis Declared in `<mrdocs/ADT/ArrayView.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-ArrayView-06-size_type[size_type] length() const noexcept; ---- == Synopsis Declared in `<mrdocs/ADT/ArrayView.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-ArrayView-06-const_reference[const_reference] operator[](link:#mrdocs-ArrayView-06-size_type[size_type] i) const noexcept; ---- == Synopsis Declared in `<mrdocs/ADT/ArrayView.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-ArrayView-06-const_reverse_iterator[const_reverse_iterator] rbegin() const noexcept; ---- == Synopsis Declared in `<mrdocs/ADT/ArrayView.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr void remove_prefix(link:#mrdocs-ArrayView-06-size_type[size_type] n) noexcept; ---- == Synopsis Declared in `<mrdocs/ADT/ArrayView.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr void remove_suffix(link:#mrdocs-ArrayView-06-size_type[size_type] n) noexcept; ---- == Synopsis Declared in `<mrdocs/ADT/ArrayView.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-ArrayView-06-const_reverse_iterator[const_reverse_iterator] rend() const noexcept; ---- == Synopsis Declared in `<mrdocs/ADT/ArrayView.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-ArrayView-06-size_type[size_type] size() const noexcept; ---- == Synopsis Declared in `<mrdocs/ADT/ArrayView.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-ArrayView-06[ArrayView] slice( link:#mrdocs-ArrayView-06-size_type[size_type] pos, link:#mrdocs-ArrayView-06-size_type[size_type] count = npos) const noexcept; ---- == Synopsis Declared in `<mrdocs/ADT/ArrayView.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-ArrayView-06[ArrayView] take_back(link:#mrdocs-ArrayView-06-size_type[size_type] n) const noexcept; ---- == Synopsis Declared in `<mrdocs/ADT/ArrayView.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-ArrayView-06[ArrayView] take_front(link:#mrdocs-ArrayView-06-size_type[size_type] n) const noexcept; ---- == Synopsis Declared in `<mrdocs/ADT/ArrayView.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- inline constexpr static link:#mrdocs-ArrayView-06-size_type[size_type] npos = static_cast<size_type>(‐1); ---- == Synopsis Declared in `<mrdocs/Metadata/Type/AutoType.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- struct AutoType final : link:#mrdocs-TypeCommonBase-0e[TypeCommonBase<TypeKind::Auto>] ---- == Base Classes [cols=2] |=== | Name | Description | `link:#mrdocs-TypeCommonBase-0e[TypeCommonBase<TypeKind::Auto>]` | |=== == Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-AutoType-operator_3way-0cf[`operator<=>`] | Three‐way comparison operators |=== == Static Member Functions [cols=1] |=== | Name | link:#mrdocs-AutoType-isArray[`isArray`] | link:#mrdocs-AutoType-isAuto[`isAuto`] | link:#mrdocs-AutoType-isDecltype[`isDecltype`] | link:#mrdocs-AutoType-isFunction[`isFunction`] | link:#mrdocs-AutoType-isLValueReference[`isLValueReference`] | link:#mrdocs-AutoType-isMemberPointer[`isMemberPointer`] | link:#mrdocs-AutoType-isNamed[`isNamed`] | link:#mrdocs-AutoType-isPointer[`isPointer`] | link:#mrdocs-AutoType-isRValueReference[`isRValueReference`] |=== == Data Members [cols=2] |=== | Name | Description | link:#mrdocs-AutoType-Constraint[`Constraint`] | Constraint on the auto type, if any. | link:#mrdocs-AutoType-Keyword[`Keyword`] | |=== == Static Data Members [cols=1] |=== | Name | link:#mrdocs-AutoType-kind_id[`kind_id`] |=== == Non-Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-innerType-06[`innerType`] | Return the inner type. | link:#mrdocs-innerType-09[`innerType`] | Return the inner type. | link:#mrdocs-innerTypePtr-08[`innerTypePtr`] | Return the inner type. | link:#mrdocs-innerTypePtr-0a[`innerTypePtr`] | Return the inner type. |=== Three‐way comparison operators == Synopses Declared in `<mrdocs/Metadata/Type/AutoType.hpp>` Three‐way comparison operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::strong_ordering link:#mrdocs-AutoType-operator_3way-0b[operator<=>](link:#mrdocs-AutoType[AutoType] const& rhs) const; ---- [.small]#link:#mrdocs-AutoType-operator_3way-0b[_» more..._]# Three‐way comparison operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr auto link:#mrdocs-AutoType-operator_3way-0c8[operator<=>](link:#mrdocs-TypeCommonBase-0e[TypeCommonBase<mrdocs::TypeKind::Auto>] const& rhs) const = default; ---- [.small]#link:#mrdocs-AutoType-operator_3way-0c8[_» more..._]# Three‐way comparison operator == Synopsis Declared in `<mrdocs/Metadata/Type/AutoType.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::strong_ordering operator<=>(link:#mrdocs-AutoType[AutoType] const& rhs) const; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== Three‐way comparison operator == Synopsis Declared in `<mrdocs/Metadata/Type/TypeBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr auto operator<=>(link:#mrdocs-TypeCommonBase-0e[TypeCommonBase<mrdocs::TypeKind::Auto>] const& rhs) const = default; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== == Synopsis Declared in `<mrdocs/Metadata/Type/TypeBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isArray() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Type/TypeBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isAuto() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Type/TypeBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isDecltype() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Type/TypeBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isFunction() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Type/TypeBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isLValueReference() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Type/TypeBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isMemberPointer() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Type/TypeBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isNamed() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Type/TypeBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isPointer() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Type/TypeBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isRValueReference() noexcept; ---- Constraint on the auto type, if any. == Synopsis Declared in `<mrdocs/Metadata/Type/AutoType.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-Optional-03[Optional<Polymorphic<Name>>] Constraint = std::nullopt; ---- == Synopsis Declared in `<mrdocs/Metadata/Type/AutoType.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-AutoKind[AutoKind] Keyword = AutoKind::Auto; ---- == Synopsis Declared in `<mrdocs/Metadata/Type/TypeBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static link:#mrdocs-TypeKind[TypeKind] kind_id; ---- == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class E> class BadExpectedAccess : public link:#mrdocs-BadExpectedAccess-0f[BadExpectedAccess<void>] ---- == Base Classes [cols=2] |=== | Name | Description | `link:#mrdocs-BadExpectedAccess-0f[BadExpectedAccess<void>]` | |=== == Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-BadExpectedAccess-05-2constructor[`BadExpectedAccess`] [.small]#[constructor]# | Construct from `E` | link:#mrdocs-BadExpectedAccess-0f-operator_assign-02[`operator=`] | | link:#mrdocs-BadExpectedAccess-05-error-03[`error`] | | link:#mrdocs-BadExpectedAccess-0f-what[`what`] [.small]#[virtual]# | |=== == Protected Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-BadExpectedAccess-0f-operator_assign-08[`operator=`] | Assignment operators |=== Construct from `E` == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- explicit BadExpectedAccess(E e); ---- == Parameters [cols=2] |=== | Name | Description | *e* | The object to construct from |=== == Synopses Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- [[nodiscard]] E& link:#mrdocs-BadExpectedAccess-05-error-05[error]() & noexcept; ---- [.small]#link:#mrdocs-BadExpectedAccess-05-error-05[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- [[nodiscard]] E const& link:#mrdocs-BadExpectedAccess-05-error-08[error]() const & noexcept; ---- [.small]#link:#mrdocs-BadExpectedAccess-05-error-08[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- [[nodiscard]] E&& link:#mrdocs-BadExpectedAccess-05-error-0f[error]() && noexcept; ---- [.small]#link:#mrdocs-BadExpectedAccess-05-error-0f[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- [[nodiscard]] E const&& link:#mrdocs-BadExpectedAccess-05-error-0b[error]() const && noexcept; ---- [.small]#link:#mrdocs-BadExpectedAccess-05-error-0b[_» more..._]# == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- [[nodiscard]] E& error() & noexcept; ---- == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- [[nodiscard]] E const& error() const & noexcept; ---- == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- [[nodiscard]] E&& error() && noexcept; ---- == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- [[nodiscard]] E const&& error() const && noexcept; ---- == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<> class link:#mrdocs-BadExpectedAccess-05[BadExpectedAccess]<void> : public std::exception ---- == Base Classes [cols=2] |=== | Name | Description | `std::exception` | |=== == Member Functions [cols=1] |=== | Name | link:#mrdocs-BadExpectedAccess-0f-operator_assign-02[`operator=`] | link:#mrdocs-BadExpectedAccess-0f-what[`what`] [.small]#[virtual]# |=== == Protected Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-BadExpectedAccess-0f-2constructor-0b[`BadExpectedAccess`] [.small]#[constructor]# | Constructors | link:#mrdocs-BadExpectedAccess-0f-2destructor[`~BadExpectedAccess`] [.small]#[destructor]# [.small]#[virtual]# | Destructor | link:#mrdocs-BadExpectedAccess-0f-operator_assign-08[`operator=`] | Assignment operators |=== == Derived Classes [cols=2] |=== | Name | Description | link:#mrdocs-BadExpectedAccess-05[`BadExpectedAccess`] | |=== == Synopsis Declared in `<__exception/exception.h>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- [[__visibility__, __exclude_from_explicit_instantiation__, __abi_tag__]] constexpr exception& operator=(exception const& value) noexcept = default; ---- == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- [[nodiscard]] virtual char const* what() const noexcept override; ---- Constructors == Synopses Declared in `<mrdocs/Support/Expected.hpp>` Default constructor [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-BadExpectedAccess-0f-2constructor-01[BadExpectedAccess]() noexcept = default; ---- [.small]#link:#mrdocs-BadExpectedAccess-0f-2constructor-01[_» more..._]# Copy constructor [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-BadExpectedAccess-0f-2constructor-056[BadExpectedAccess](link:#mrdocs-BadExpectedAccess-0f[BadExpectedAccess<void>] const& other) = default; ---- [.small]#link:#mrdocs-BadExpectedAccess-0f-2constructor-056[_» more..._]# Move constructor [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-BadExpectedAccess-0f-2constructor-059[BadExpectedAccess](link:#mrdocs-BadExpectedAccess-0f[BadExpectedAccess<void>]&& other) = default; ---- [.small]#link:#mrdocs-BadExpectedAccess-0f-2constructor-059[_» more..._]# Default constructor == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr BadExpectedAccess() noexcept = default; ---- Copy constructor == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr BadExpectedAccess(link:#mrdocs-BadExpectedAccess-0f[BadExpectedAccess<void>] const& other) = default; ---- == Parameters [cols=2] |=== | Name | Description | *other* | The object to copy construct from |=== Move constructor == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr BadExpectedAccess(link:#mrdocs-BadExpectedAccess-0f[BadExpectedAccess<void>]&& other) = default; ---- == Parameters [cols=2] |=== | Name | Description | *other* | The object to move construct from |=== Destructor == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr virtual ~BadExpectedAccess() override = default; ---- Assignment operators == Synopses Declared in `<mrdocs/Support/Expected.hpp>` Copy assignment operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-BadExpectedAccess-0f[BadExpectedAccess<void>]& link:#mrdocs-BadExpectedAccess-0f-operator_assign-01[operator=](link:#mrdocs-BadExpectedAccess-0f[BadExpectedAccess<void>] const& other) = default; ---- [.small]#link:#mrdocs-BadExpectedAccess-0f-operator_assign-01[_» more..._]# Move assignment operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-BadExpectedAccess-0f[BadExpectedAccess<void>]& link:#mrdocs-BadExpectedAccess-0f-operator_assign-07[operator=](link:#mrdocs-BadExpectedAccess-0f[BadExpectedAccess<void>]&& other) = default; ---- [.small]#link:#mrdocs-BadExpectedAccess-0f-operator_assign-07[_» more..._]# Copy assignment operator == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-BadExpectedAccess-0f[BadExpectedAccess<void>]& operator=(link:#mrdocs-BadExpectedAccess-0f[BadExpectedAccess<void>] const& other) = default; ---- == Return Value Reference to the current object == Parameters [cols=2] |=== | Name | Description | *other* | The object to copy assign from |=== Move assignment operator == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-BadExpectedAccess-0f[BadExpectedAccess<void>]& operator=(link:#mrdocs-BadExpectedAccess-0f[BadExpectedAccess<void>]&& other) = default; ---- == Return Value Reference to the current object == Parameters [cols=2] |=== | Name | Description | *other* | The object to move assign from |=== Metadata for a direct base. == Synopsis Declared in `<mrdocs/Metadata/Symbol/RecordBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- struct BaseInfo; ---- == Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-BaseInfo-2constructor-05[`BaseInfo`] [.small]#[constructor]# [.small]#[deleted]# | Constructors |=== == Data Members [cols=2] |=== | Name | Description | link:#mrdocs-BaseInfo-Access[`Access`] | The access specifier for the base. | link:#mrdocs-BaseInfo-IsVirtual[`IsVirtual`] | Whether the base is virtual. | link:#mrdocs-BaseInfo-Type[`Type`] | The base type. |=== Constructors == Synopses Declared in `<mrdocs/Metadata/Symbol/RecordBase.hpp>` Default constructor [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-BaseInfo-2constructor-08[BaseInfo]() = delete; ---- [.small]#link:#mrdocs-BaseInfo-2constructor-08[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-BaseInfo-2constructor-0e[BaseInfo]( link:#mrdocs-Polymorphic[Polymorphic<Type>]&& type, link:#mrdocs-AccessKind[AccessKind] const access, bool const is_virtual); ---- [.small]#link:#mrdocs-BaseInfo-2constructor-0e[_» more..._]# Default constructor == Synopsis Declared in `<mrdocs/Metadata/Symbol/RecordBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- BaseInfo() = delete; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/RecordBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- BaseInfo( link:#mrdocs-Polymorphic[Polymorphic<Type>]&& type, link:#mrdocs-AccessKind[AccessKind] const access, bool const is_virtual); ---- The access specifier for the base. == Synopsis Declared in `<mrdocs/Metadata/Symbol/RecordBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-AccessKind[AccessKind] Access = AccessKind::Public; ---- Whether the base is virtual. == Synopsis Declared in `<mrdocs/Metadata/Symbol/RecordBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool IsVirtual = false; ---- The base type. == Synopsis Declared in `<mrdocs/Metadata/Symbol/RecordBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-Polymorphic[Polymorphic<Type>] Type; ---- == Description This is typically a `NamedType` that refers to a `RecordSymbol`, but it could also be a more complex type such as a `decltype`. Info for concepts. == Synopsis Declared in `<mrdocs/Metadata/Symbol/Concept.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- struct ConceptSymbol final : link:#mrdocs-SymbolCommonBase-015[SymbolCommonBase<SymbolKind::Concept>] ---- == Base Classes [cols=2] |=== | Name | Description | `link:#mrdocs-SymbolCommonBase-015[SymbolCommonBase<SymbolKind::Concept>]` | Base class for providing variant discriminator functions. |=== == Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-ConceptSymbol-2constructor[`ConceptSymbol`] [.small]#[constructor]# | Construct from `SymbolID` | link:#mrdocs-ConceptSymbol-operator_3way-09b[`operator<=>`] | Three‐way comparison operators |=== == Static Member Functions [cols=1] |=== | Name | link:#mrdocs-ConceptSymbol-isConcept[`isConcept`] | link:#mrdocs-ConceptSymbol-isEnum[`isEnum`] | link:#mrdocs-ConceptSymbol-isEnumConstant[`isEnumConstant`] | link:#mrdocs-ConceptSymbol-isFunction[`isFunction`] | link:#mrdocs-ConceptSymbol-isGuide[`isGuide`] | link:#mrdocs-ConceptSymbol-isNamespace[`isNamespace`] | link:#mrdocs-ConceptSymbol-isNamespaceAlias[`isNamespaceAlias`] | link:#mrdocs-ConceptSymbol-isOverloads[`isOverloads`] | link:#mrdocs-ConceptSymbol-isRecord[`isRecord`] | link:#mrdocs-ConceptSymbol-isTypedef[`isTypedef`] | link:#mrdocs-ConceptSymbol-isUsing[`isUsing`] | link:#mrdocs-ConceptSymbol-isVariable[`isVariable`] |=== == Data Members [cols=2] |=== | Name | Description | link:#mrdocs-ConceptSymbol-Constraint[`Constraint`] | The concepts constraint‐expression | link:#mrdocs-ConceptSymbol-Template[`Template`] | The concepts template parameters |=== == Static Data Members [cols=1] |=== | Name | link:#mrdocs-ConceptSymbol-kind_id[`kind_id`] |=== == Non-Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-merge-00c[`merge`] | Merges two Symbol objects. |=== Construct from `SymbolID` == Synopsis Declared in `<mrdocs/Metadata/Symbol/Concept.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- explicit ConceptSymbol(link:#mrdocs-SymbolID[SymbolID] const& ID) noexcept; ---- == Parameters [cols=2] |=== | Name | Description | *ID* | The object to copy construct from |=== Three‐way comparison operators == Synopses Declared in `<mrdocs/Metadata/Symbol/Concept.hpp>` Three‐way comparison operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::strong_ordering link:#mrdocs-ConceptSymbol-operator_3way-091[operator<=>](link:#mrdocs-ConceptSymbol[ConceptSymbol] const& other) const; ---- [.small]#link:#mrdocs-ConceptSymbol-operator_3way-091[_» more..._]# Three‐way comparison operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- auto link:#mrdocs-ConceptSymbol-operator_3way-0a[operator<=>](link:#mrdocs-SymbolCommonBase-015[SymbolCommonBase<mrdocs::SymbolKind::Concept>] const& rhs) const = default; ---- [.small]#link:#mrdocs-ConceptSymbol-operator_3way-0a[_» more..._]# Three‐way comparison operator == Synopsis Declared in `<mrdocs/Metadata/Symbol/Concept.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::strong_ordering operator<=>(link:#mrdocs-ConceptSymbol[ConceptSymbol] const& other) const; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *other* | The right operand |=== Three‐way comparison operator == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- auto operator<=>(link:#mrdocs-SymbolCommonBase-015[SymbolCommonBase<mrdocs::SymbolKind::Concept>] const& rhs) const = default; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isConcept() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isEnum() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isEnumConstant() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isFunction() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isGuide() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isNamespace() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isNamespaceAlias() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isOverloads() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isRecord() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isTypedef() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isUsing() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isVariable() noexcept; ---- The concepts constraint‐expression == Synopsis Declared in `<mrdocs/Metadata/Symbol/Concept.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-ExprInfo[ExprInfo] Constraint; ---- The concepts template parameters == Synopsis Declared in `<mrdocs/Metadata/Symbol/Concept.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-Optional-03[Optional<TemplateInfo>] Template; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static link:#mrdocs-SymbolKind[SymbolKind] kind_id; ---- Configuration used to generate the Corpus and Docs == Synopsis Declared in `<mrdocs/Config.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- class Config; ---- == Types [cols=2] |=== | Name | Description | link:#mrdocs-Config-Settings[`Settings`] | Settings values used to generate the Corpus and Docs |=== == Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-Config-2destructor[`~Config`] [.small]#[destructor]# [.small]#[virtual]# | Destructor. | link:#mrdocs-Config-object[`object`] [.small]#[virtual]# | Return a DOM object representing the configuration keys. | link:#mrdocs-Config-operator_ptr[`operator‐>`] | Return the settings used to generate the Corpus and Docs. | link:#mrdocs-Config-settings[`settings`] [.small]#[virtual]# | Return the settings used to generate the Corpus and Docs. | link:#mrdocs-Config-threadPool[`threadPool`] [.small]#[virtual]# | Return a pool of threads for executing work. |=== == Protected Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-Config-2constructor[`Config`] [.small]#[constructor]# | Default constructor |=== == Description This contains all the public settings applied from the command line and the YML file (if any). This class stores the original and public config options as they are passed to MrDocs, in their original data types, such as strings and bools. This class is an abstract interface whose private concrete implementation typically includes these parsed configuration values in a more convenient form for use by MrDocs. Meanwhile, this class is provided publicly to plugins. The configuration is always connected to the directory of the mrdocs.yml file from which absolute paths are calculated from relative paths. Settings values used to generate the Corpus and Docs == Synopsis Declared in `<mrdocs/Config.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- struct Settings : PublicSettings ---- == Base Classes [cols=2] |=== | Name | Description | `PublicSettings` | |=== == Types [cols=2] |=== | Name | Description | link:#mrdocs-Config-Settings-OptionProperties[`OptionProperties`] | Option validation traits |=== == Enums [cols=2] |=== | Name | Description | link:#mrdocs-Config-Settings-BaseMemberInheritance[`BaseMemberInheritance`] | Enum for "base‐member‐inheritance" options | link:#mrdocs-Config-Settings-Generator[`Generator`] | Enum for "generator" options | link:#mrdocs-Config-Settings-LogLevel[`LogLevel`] | Enum for "log‐level" options | link:#mrdocs-Config-Settings-OptionType[`OptionType`] | Option Type | link:#mrdocs-Config-Settings-SortSymbolBy[`SortSymbolBy`] | Enum for "sort‐symbol‐by" options |=== == Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-Config-Settings-configDir[`configDir`] | Full path to the config file directory | link:#mrdocs-Config-Settings-normalize-08[`normalize`] | Normalize the configuration values with a visitor | link:#mrdocs-Config-Settings-operator_ptr[`operator‐>`] | Member access operator | link:#mrdocs-Config-Settings-outputDir[`outputDir`] | Full path to the output directory | link:#mrdocs-Config-Settings-visit-08[`visit`] | Visit all options |=== == Static Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-Config-Settings-fromString-04[`fromString`] | | link:#mrdocs-Config-Settings-load-05[`load`] | `load` overloads | link:#mrdocs-Config-Settings-load_file[`load_file`] | Loads the public configuration settings from the specified file. | link:#mrdocs-Config-Settings-toString-0b[`toString`] | |=== == Data Members [cols=2] |=== | Name | Description | link:#mrdocs-Config-Settings-addons[`addons`] | Path to the Addons directory | link:#mrdocs-Config-Settings-autoBrief[`autoBrief`] | command is required. | link:#mrdocs-Config-Settings-autoFunctionMetadata[`autoFunctionMetadata`] | Automatically provide missing documentation for special functions and trivial metadata | link:#mrdocs-Config-Settings-autoRelates[`autoRelates`] | Automatically find non‐member functions | link:#mrdocs-Config-Settings-baseUrl[`baseUrl`] | Base URL for links to source code | link:#mrdocs-Config-Settings-cmake[`cmake`] | CMake arguments when generating the compilation database from CMakeLists.txt | link:#mrdocs-Config-Settings-cmdLineInputs[`cmdLineInputs`] | Configuration or compilation database files | link:#mrdocs-Config-Settings-compilationDatabase[`compilationDatabase`] | Path to the compilation database | link:#mrdocs-Config-Settings-concurrency[`concurrency`] | Number of threads to use | link:#mrdocs-Config-Settings-config[`config`] | Mr.Docs configuration file | link:#mrdocs-Config-Settings-configYaml[`configYaml`] | A string holding the complete configuration YAML. | link:#mrdocs-Config-Settings-cwdDir[`cwdDir`] | Full path to the current working directory | link:#mrdocs-Config-Settings-defines[`defines`] | Additional defines passed to the compiler | link:#mrdocs-Config-Settings-embedded[`embedded`] | Output an embeddable document | link:#mrdocs-Config-Settings-exclude[`exclude`] | Input directories to exclude | link:#mrdocs-Config-Settings-excludePatterns[`excludePatterns`] | File patterns to exclude | link:#mrdocs-Config-Settings-excludeSymbols[`excludeSymbols`] | Symbol patterns to exclude | link:#mrdocs-Config-Settings-extractAll[`extractAll`] | Extract all symbols | link:#mrdocs-Config-Settings-extractAnonymousNamespaces[`extractAnonymousNamespaces`] | Extraction policy for anonymous namespaces | link:#mrdocs-Config-Settings-extractEmptyNamespaces[`extractEmptyNamespaces`] | Extraction policy for empty namespaces | link:#mrdocs-Config-Settings-extractFriends[`extractFriends`] | Extraction policy for friend functions and classes | link:#mrdocs-Config-Settings-extractImplicitSpecializations[`extractImplicitSpecializations`] | Implicit template specializations used as base classes are extracted as dependencies | link:#mrdocs-Config-Settings-extractLocalClasses[`extractLocalClasses`] | Extraction policy for records defined locally in source files | link:#mrdocs-Config-Settings-extractPrivate[`extractPrivate`] | Extraction policy for private class members | link:#mrdocs-Config-Settings-extractPrivateBases[`extractPrivateBases`] | Extraction policy for private base classes | link:#mrdocs-Config-Settings-extractPrivateVirtual[`extractPrivateVirtual`] | Extraction policy for private virtual methods of a class | link:#mrdocs-Config-Settings-extractStatic[`extractStatic`] | Extraction policy for static members of a file | link:#mrdocs-Config-Settings-filePatterns[`filePatterns`] | File patterns to include | link:#mrdocs-Config-Settings-generator[`generator`] | Generator used to create the documentation | link:#mrdocs-Config-Settings-globalNamespaceIndex[`globalNamespaceIndex`] | Use the global namespace page as an index for all symbols | link:#mrdocs-Config-Settings-ignoreFailures[`ignoreFailures`] | Whether AST visitation failures should not stop the program | link:#mrdocs-Config-Settings-ignoreMapErrors[`ignoreMapErrors`] | Continue if files are not mapped correctly | link:#mrdocs-Config-Settings-implementationDefined[`implementationDefined`] | Symbols rendered as "implementation‐defined" | link:#mrdocs-Config-Settings-includeSymbols[`includeSymbols`] | Symbol patterns to include | link:#mrdocs-Config-Settings-includes[`includes`] | Include paths | link:#mrdocs-Config-Settings-inheritBaseMembers[`inheritBaseMembers`] | Determine how derived classes inherit base members | link:#mrdocs-Config-Settings-input[`input`] | Input directories to extract symbols from | link:#mrdocs-Config-Settings-legibleNames[`legibleNames`] | Use legible names | link:#mrdocs-Config-Settings-libcIncludes[`libcIncludes`] | Standard Library include paths | link:#mrdocs-Config-Settings-logLevel[`logLevel`] | The minimum reporting level | link:#mrdocs-Config-Settings-missingIncludePrefixes[`missingIncludePrefixes`] | Include path prefixes allowed to be missing | link:#mrdocs-Config-Settings-missingIncludeShims[`missingIncludeShims`] | Shims for forgiven missing include files | link:#mrdocs-Config-Settings-mrdocsRootDir[`mrdocsRootDir`] | Full path to the mrdocs root directory | link:#mrdocs-Config-Settings-multipage[`multipage`] | Generate a multipage documentation | link:#mrdocs-Config-Settings-output[`output`] | Directory or file for generating output | link:#mrdocs-Config-Settings-overloads[`overloads`] | Detect and group function overloads | link:#mrdocs-Config-Settings-recursive[`recursive`] | Recursively include files from "input" paths | link:#mrdocs-Config-Settings-report[`report`] | The minimum reporting level | link:#mrdocs-Config-Settings-seeBelow[`seeBelow`] | Exposition only symbols rendered as "see‐below". | link:#mrdocs-Config-Settings-sfinae[`sfinae`] | Detect and reduce SFINAE expressions | link:#mrdocs-Config-Settings-showEnumConstants[`showEnumConstants`] | Show enum constant pages in the documentation | link:#mrdocs-Config-Settings-showNamespaces[`showNamespaces`] | Show namespace pages in the documentation | link:#mrdocs-Config-Settings-sortMembers[`sortMembers`] | Sort the members of a record | link:#mrdocs-Config-Settings-sortMembersAssignment1St[`sortMembersAssignment1St`] | Sort assignment operators first | link:#mrdocs-Config-Settings-sortMembersBy[`sortMembersBy`] | Determine how members of a record are sorted | link:#mrdocs-Config-Settings-sortMembersConversionLast[`sortMembersConversionLast`] | Sort conversion operators last | link:#mrdocs-Config-Settings-sortMembersCtors1St[`sortMembersCtors1St`] | Sort constructors first | link:#mrdocs-Config-Settings-sortMembersDtors1St[`sortMembersDtors1St`] | Sort destructors first | link:#mrdocs-Config-Settings-sortMembersRelationalLast[`sortMembersRelationalLast`] | Sort relational operators last | link:#mrdocs-Config-Settings-sortNamespaceMembersBy[`sortNamespaceMembersBy`] | Determine how members of a namespace are sorted | link:#mrdocs-Config-Settings-sourceRoot[`sourceRoot`] | Path to the root directory of the source code | link:#mrdocs-Config-Settings-stdlibIncludes[`stdlibIncludes`] | C++ Standard Library include paths | link:#mrdocs-Config-Settings-systemIncludes[`systemIncludes`] | System include paths | link:#mrdocs-Config-Settings-tagfile[`tagfile`] | Path for the tagfile | link:#mrdocs-Config-Settings-useSystemLibc[`useSystemLibc`] | Use the system C standard library | link:#mrdocs-Config-Settings-useSystemStdlib[`useSystemStdlib`] | Use the system C++ standard library | link:#mrdocs-Config-Settings-verbose[`verbose`] | Verbose output | link:#mrdocs-Config-Settings-warnAsError[`warnAsError`] | Treat warnings as errors | link:#mrdocs-Config-Settings-warnBrokenRef[`warnBrokenRef`] | Warn if a documentation reference is broken | link:#mrdocs-Config-Settings-warnIfDocError[`warnIfDocError`] | Warn if documentation has errors | link:#mrdocs-Config-Settings-warnIfUndocEnumVal[`warnIfUndocEnumVal`] | Warn if enum values are not documented | link:#mrdocs-Config-Settings-warnIfUndocumented[`warnIfUndocumented`] | Warn if symbols are not documented | link:#mrdocs-Config-Settings-warnNoParamdoc[`warnNoParamdoc`] | Warn if parameters are not documented | link:#mrdocs-Config-Settings-warnUnnamedParam[`warnUnnamedParam`] | Warn if documented functions have unnamed parameters | link:#mrdocs-Config-Settings-warnings[`warnings`] | Enable warning messages |=== == Friends [cols=2] |=== | Name | Description | `llvm::yaml::MappingTraits` | |=== Option validation traits == Synopsis Declared in `<mrdocs/PublicSettings.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- struct OptionProperties; ---- Enum for "base‐member‐inheritance" options == Synopsis Declared in `<mrdocs/PublicSettings.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- enum class BaseMemberInheritance : int; ---- == Description This enumeration value is valid for the `inherit‐base‐members` option Enum for "generator" options == Synopsis Declared in `<mrdocs/PublicSettings.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- enum class Generator : int; ---- == Description This enumeration value is valid for the `generator` option Enum for "log‐level" options == Synopsis Declared in `<mrdocs/PublicSettings.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- enum class LogLevel : int; ---- == Description This enumeration value is valid for the `log‐level` option Option Type == Synopsis Declared in `<mrdocs/PublicSettings.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- enum class OptionType : int; ---- Enum for "sort‐symbol‐by" options == Synopsis Declared in `<mrdocs/PublicSettings.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- enum class SortSymbolBy : int; ---- == Description These enumeration values are valid for the following options: ‐ sort‐members‐by ‐ sort‐namespace‐members‐by Full path to the config file directory == Synopsis Declared in `<mrdocs/Config.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::string configDir() const; ---- == Description The reference directory for most MrDocs options is the directory of the mrdocs.yml file. It is used to calculate full paths from relative paths. This string will always be native style and have a trailing directory separator. == Return Value The full path to the config file directory. Normalize the configuration values with a visitor == Synopses Declared in `<mrdocs/Config.hpp>` Normalize the configuration values with a visitor [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-Expected-0a[Expected<void>] link:#mrdocs-Config-Settings-normalize-09[normalize](link:#mrdocs-ReferenceDirectories[ReferenceDirectories] const& dirs); ---- [.small]#link:#mrdocs-Config-Settings-normalize-09[_» more..._]# Normalize the configuration values with a visitor [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class F> link:#mrdocs-Expected-0a[Expected<void>] link:#mrdocs-Config-Settings-normalize-0d[normalize]( link:#mrdocs-ReferenceDirectories[ReferenceDirectories] const& dirs, F&& f); ---- [.small]#link:#mrdocs-Config-Settings-normalize-0d[_» more..._]# == Return Value Expected<void> with the error if any == Parameters [cols=2] |=== | Name | Description | *dirs* | The reference directories to resolve paths | *f* | The visitor |=== Normalize the configuration values with a visitor == Synopsis Declared in `<mrdocs/Config.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-Expected-0a[Expected<void>] normalize(link:#mrdocs-ReferenceDirectories[ReferenceDirectories] const& dirs); ---- == Description This function normalizes and validates the configuration values. == Return Value Expected<void> with the error if any == Parameters [cols=2] |=== | Name | Description | *dirs* | The reference directories to resolve paths |=== Normalize the configuration values with a visitor == Synopsis Declared in `<mrdocs/PublicSettings.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class F> link:#mrdocs-Expected-0a[Expected<void>] normalize( link:#mrdocs-ReferenceDirectories[ReferenceDirectories] const& dirs, F&& f); ---- == Description This function normalizes and validates the configuration values. == Return Value Expected<void> with the error if any == Parameters [cols=2] |=== | Name | Description | *dirs* | The reference directories to resolve paths | *f* | The visitor |=== Member access operator == Synopsis Declared in `<mrdocs/Config.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-Config-Settings[Settings] const* operator‐>() const noexcept; ---- == Return Value Pointer to the current object Full path to the output directory == Synopsis Declared in `<mrdocs/Config.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::string outputDir() const; ---- == Description The reference directory for MrDocs output and temporary files is the output directory. This is either the output option (if already a directory) or the parent directory of the output option (if it is a file). When the output option is a path that does not exist, we determine if it's a file or directory by checking if the filename contains a period. This string will always be native style and have a trailing directory separator. == Return Value The full path to the output directory. Visit all options == Synopses Declared in `<mrdocs/PublicSettings.hpp>` Visit all options [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class F> void link:#mrdocs-Config-Settings-visit-0f[visit](F&& f); ---- [.small]#link:#mrdocs-Config-Settings-visit-0f[_» more..._]# Visit all options [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class F> void link:#mrdocs-Config-Settings-visit-01[visit](F&& f) const; ---- [.small]#link:#mrdocs-Config-Settings-visit-01[_» more..._]# == Parameters [cols=2] |=== | Name | Description | *f* | The visitor |=== Visit all options == Synopsis Declared in `<mrdocs/PublicSettings.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class F> void visit(F&& f); ---- == Parameters [cols=2] |=== | Name | Description | *f* | The visitor |=== Visit all options == Synopsis Declared in `<mrdocs/PublicSettings.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class F> void visit(F&& f) const; ---- == Parameters [cols=2] |=== | Name | Description | *f* | The visitor |=== == Synopses Declared in `<mrdocs/PublicSettings.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool link:#mrdocs-Config-Settings-fromString-0e[fromString]( std::string_view const str, BaseMemberInheritance& e); ---- [.small]#link:#mrdocs-Config-Settings-fromString-0e[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool link:#mrdocs-Config-Settings-fromString-03[fromString]( std::string_view const str, Generator& e); ---- [.small]#link:#mrdocs-Config-Settings-fromString-03[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool link:#mrdocs-Config-Settings-fromString-09[fromString]( std::string_view const str, LogLevel& e); ---- [.small]#link:#mrdocs-Config-Settings-fromString-09[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool link:#mrdocs-Config-Settings-fromString-00[fromString]( std::string_view const str, SortSymbolBy& e); ---- [.small]#link:#mrdocs-Config-Settings-fromString-00[_» more..._]# == Synopsis Declared in `<mrdocs/PublicSettings.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool fromString( std::string_view const str, BaseMemberInheritance& e); ---- == Synopsis Declared in `<mrdocs/PublicSettings.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool fromString( std::string_view const str, Generator& e); ---- == Synopsis Declared in `<mrdocs/PublicSettings.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool fromString( std::string_view const str, LogLevel& e); ---- == Synopsis Declared in `<mrdocs/PublicSettings.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool fromString( std::string_view const str, SortSymbolBy& e); ---- `load` overloads == Synopses Declared in `<mrdocs/PublicSettings.hpp>` Load the configuration from a YAML string [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- static link:#mrdocs-Expected-0a[Expected<void>] link:#mrdocs-Config-Settings-load-0b[load]( PublicSettings& s, std::string_view configYaml); ---- [.small]#link:#mrdocs-Config-Settings-load-0b[_» more..._]# Loads the public configuration settings from the specified YAML file. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- static link:#mrdocs-Expected-0a[Expected<void>] link:#mrdocs-Config-Settings-load-01[load]( link:#mrdocs-Config-Settings[Config::Settings]& s, std::string_view configYaml, link:#mrdocs-ReferenceDirectories[ReferenceDirectories] const& dirs); ---- [.small]#link:#mrdocs-Config-Settings-load-01[_» more..._]# == Return Value * Expected<void> with the error if any * An Expected object containing a Config::Settings object if the YAML file was successfully parsed and the configuration settings were loaded, or an error otherwise. == Parameters [cols=2] |=== | Name | Description | *s* | The PublicSettings object to load the configuration into | *configYaml* | The YAML string with the configuration | *dirs* | A constant reference to a PublicSettings::ReferenceDirectories object containing the reference directories. |=== Load the configuration from a YAML string == Synopsis Declared in `<mrdocs/PublicSettings.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- static link:#mrdocs-Expected-0a[Expected<void>] load( PublicSettings& s, std::string_view configYaml); ---- == Description This function loads the values from the YAML string without normalizing or validating them. After calling this function, call `normalize` to normalize and validate the options. == Return Value Expected<void> with the error if any == Parameters [cols=2] |=== | Name | Description | *s* | The PublicSettings object to load the configuration into | *configYaml* | The YAML string with the configuration |=== Loads the public configuration settings from the specified YAML file. == Synopsis Declared in `<mrdocs/Config.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- static link:#mrdocs-Expected-0a[Expected<void>] load( link:#mrdocs-Config-Settings[Config::Settings]& s, std::string_view configYaml, link:#mrdocs-ReferenceDirectories[ReferenceDirectories] const& dirs); ---- == Description This function takes a YAML file and a set of reference directories as input. It parses the YAML file and loads the configuration settings into a Config::Settings object. The reference directories are used to resolve any relative paths in the configuration settings. == Return Value An Expected object containing a Config::Settings object if the YAML file was successfully parsed and the configuration settings were loaded, or an error otherwise. == Parameters [cols=2] |=== | Name | Description | *s* | A reference to a Config::Settings object where the configuration settings will be loaded. | *configYaml* | A string view representing the YAML file containing the configuration settings. | *dirs* | A constant reference to a PublicSettings::ReferenceDirectories object containing the reference directories. |=== Loads the public configuration settings from the specified file. == Synopsis Declared in `<mrdocs/Config.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- static link:#mrdocs-Expected-0a[Expected<void>] load_file( link:#mrdocs-Config-Settings[Config::Settings]& s, std::string_view configPath, link:#mrdocs-ReferenceDirectories[ReferenceDirectories] const& dirs); ---- == Description This function takes a file path and a set of reference directories as input. It reads the file and loads the configuration settings into a Config::Settings object. The reference directories are used to resolve any relative paths in the configuration settings. == Return Value An Expected object containing void if the file was successfully read and the configuration settings were loaded, or an error otherwise. == Parameters [cols=2] |=== | Name | Description | *s* | A reference to a Config::Settings object where the configuration settings will be loaded. | *configPath* | A string view representing the file path of the configuration settings. | *dirs* | A constant reference to a PublicSettings::ReferenceDirectories object containing the reference directories. |=== == Synopses Declared in `<mrdocs/PublicSettings.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static std::string_view link:#mrdocs-Config-Settings-toString-04[toString](BaseMemberInheritance const e); ---- [.small]#link:#mrdocs-Config-Settings-toString-04[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static std::string_view link:#mrdocs-Config-Settings-toString-01[toString](Generator const e); ---- [.small]#link:#mrdocs-Config-Settings-toString-01[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static std::string_view link:#mrdocs-Config-Settings-toString-06[toString](LogLevel const e); ---- [.small]#link:#mrdocs-Config-Settings-toString-06[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static std::string_view link:#mrdocs-Config-Settings-toString-03[toString](SortSymbolBy const e); ---- [.small]#link:#mrdocs-Config-Settings-toString-03[_» more..._]# == Synopsis Declared in `<mrdocs/PublicSettings.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static std::string_view toString(BaseMemberInheritance const e); ---- == Synopsis Declared in `<mrdocs/PublicSettings.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static std::string_view toString(Generator const e); ---- == Synopsis Declared in `<mrdocs/PublicSettings.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static std::string_view toString(LogLevel const e); ---- == Synopsis Declared in `<mrdocs/PublicSettings.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static std::string_view toString(SortSymbolBy const e); ---- Path to the Addons directory == Synopsis Declared in `<mrdocs/PublicSettings.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::string addons; ---- == Description Path to the Addons directory. The Addons directory contains the template files used by generators to create the documentation. When a custom Addons directory is not specified, the default templates are used. The default templates are located at the `share/mrdocs/addons` directory of the MrDocs installation. Users can create custom templates by copying the default templates to a custom directory and specifying the custom directory using this option. command is required. == Synopsis Declared in `<mrdocs/PublicSettings.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool autoBrief = true; ---- == Description Use the first line of the comment as the brief When set to `true`, Mr.Docs 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 Automatically provide missing documentation for special functions and trivial metadata == Synopsis Declared in `<mrdocs/PublicSettings.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool autoFunctionMetadata = true; ---- == Description When set to `true`, Mr.Docs automatically provides documentation for special functions, such as constructors, destructors, and operators. It also provides documentation for missing documentation metadata, such as known types. Automatically find non‐member functions == Synopsis Declared in `<mrdocs/PublicSettings.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool autoRelates = true; ---- == Description When set to `true`, Mr.Docs automatically finds non‐member functions that are related to the current class. Base URL for links to source code == Synopsis Declared in `<mrdocs/PublicSettings.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::string baseUrl; ---- == 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. CMake arguments when generating the compilation database from CMakeLists.txt == Synopsis Declared in `<mrdocs/PublicSettings.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::string cmake; ---- == Description When the compilation‐database option is a CMakeLists.txt file, these arguments are passed to the cmake command to generate the compilation_database.json. Configuration or compilation database files == Synopsis Declared in `<mrdocs/PublicSettings.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::vector<std::string> cmdLineInputs; ---- == Description The inputs are configuration files or compilation database files that used to generate the documentation. When the input ends with `mrdocs.yml`, it is interpreted as a configuration file, the file is read and the options are used to generate the documentation as if it was provided to the `config` option. When the input ends with `compilation_database.json` or `CMakeLists.txt`, it is interpreted as a compilation database file, the file is read and the compiler flags are used to generate the documentation as if it was provided to the `compilation‐database` option. Path to the compilation database == Synopsis Declared in `<mrdocs/PublicSettings.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::string compilationDatabase; ---- == Description Path to the compilation database or a build script to generate it. The compilation database is a JSON file that contains the compiler commands used to build the source code. The compilation database is used to extract the compiler flags and the source files used to build the source code and extract symbols. This option also accepts the path to a build script such as CMakeLists.txt to be used to generate the compilation database. In this case, Mr.Docs will look for CMake in `PATH` or in `CMAKE_ROOT` and run the script to generate the compilation database file. Number of threads to use == Synopsis Declared in `<mrdocs/PublicSettings.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- unsigned int concurrency = 0; ---- == Description The desired level of concurrency: 0 for hardware‐suggested. Mr.Docs configuration file == Synopsis Declared in `<mrdocs/PublicSettings.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::string config; ---- == Description The configuration file is a YAML file that contains the options used to generate the documentation. The configuration file is read and the options are used to generate the documentation. The configuration file can be used to specify the source code, the output directory, the compilation database, the generator, and the filters. A string holding the complete configuration YAML. == Synopsis Declared in `<mrdocs/Config.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::string configYaml; ---- Full path to the current working directory == Synopsis Declared in `<mrdocs/Config.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::string cwdDir = "."; ---- == Description This string will always be native style and have a trailing directory separator. Additional defines passed to the compiler == Synopsis Declared in `<mrdocs/PublicSettings.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::vector<std::string> defines; ---- == Description Additional defines passed to the compiler when building the source code. These defines are added to the compilation database regardless of the strategy to generate it. Output an embeddable document == Synopsis Declared in `<mrdocs/PublicSettings.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool embedded = false; ---- == Description Output an embeddable document, which excludes the header, the footer, and everything outside the body of the document. This option is useful for producing documents that can be inserted into an external template. Input directories to exclude == Synopsis Declared in `<mrdocs/PublicSettings.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::vector<std::string> exclude; ---- == Description Symbols defined in files in these directories are not extracted even if they are in the list of include directories. When relative, the paths are relative to the directory of the mrdocs configuration file. For instance, "include/experimental" will exclude all files in the directory `<config‐dir>/include/experimental`. File patterns to exclude == Synopsis Declared in `<mrdocs/PublicSettings.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::vector<PathGlobPattern> excludePatterns; ---- == Description File patterns to exclude. Files that match these patterns are not extracted even if they are in the list of include directories. The patterns are relative to the configuration file. A single * will match all files in the directory. Double ** will match all files in the directory and its subdirectories. Symbol patterns to exclude == Synopsis Declared in `<mrdocs/PublicSettings.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::vector<SymbolGlobPattern> excludeSymbols; ---- == Description A symbol that matches one of these patterns is not extracted even if whitelisted by "include‐symbols". See the documentation for "include‐symbols" for the pattern syntax. Extract all symbols == Synopsis Declared in `<mrdocs/PublicSettings.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool extractAll = true; ---- == Description When set to `true`, MrDocs extracts all symbols from the source code, even if no documentation is provided. MrDocs can only identify whether a symbol is ultimated documented after extracting information from all translation units. For this reason, when this option is set to `false`, it's still recommendable to provide file and symbol filters so that only the desired symbols are traversed and stored by MrDocs. Extraction policy for anonymous namespaces == Synopsis Declared in `<mrdocs/PublicSettings.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool extractAnonymousNamespaces = true; ---- == Description Determine whether symbols in anonymous namespaces should be extracted. Extraction policy for empty namespaces == Synopsis Declared in `<mrdocs/PublicSettings.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool extractEmptyNamespaces = false; ---- == Description Determine whether empty namespaces without documentation should be extracted. Extraction policy for friend functions and classes == Synopsis Declared in `<mrdocs/PublicSettings.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool extractFriends = true; ---- == Description Determine whether friend functions and classes should be extracted. When set to `true`, MrDocs extracts friend functions and classes. When set to `false`, friend functions and classes are not extracted. Implicit template specializations used as base classes are extracted as dependencies == Synopsis Declared in `<mrdocs/PublicSettings.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool extractImplicitSpecializations = true; ---- == Description When set to `true`, MrDocs extracts implicit template specializations used as base classes as dependencies. This allows MrDocs to extract metadata that can later be used to determine the members of the derived class, as specified by the `inherit‐base‐members` option. Extraction policy for records defined locally in source files == Synopsis Declared in `<mrdocs/PublicSettings.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool extractLocalClasses = true; ---- == Description Determine whether records only defined locally in source files should be extracted. Extraction policy for private class members == Synopsis Declared in `<mrdocs/PublicSettings.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool extractPrivate = false; ---- == Description Determine whether private class members should be extracted Extraction policy for private base classes == Synopsis Declared in `<mrdocs/PublicSettings.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool extractPrivateBases = false; ---- == Description Determine whether private base classes should be extracted Extraction policy for private virtual methods of a class == Synopsis Declared in `<mrdocs/PublicSettings.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool extractPrivateVirtual = false; ---- == Description Determine whether private virtual methods of a class should be extracted Extraction policy for static members of a file == Synopsis Declared in `<mrdocs/PublicSettings.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool extractStatic = false; ---- == Description Determine whether static members of a file should be extracted. This option does not refer to static members of a class. File patterns to include == Synopsis Declared in `<mrdocs/PublicSettings.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::vector<PathGlobPattern> filePatterns; ---- == Description File patterns to include. Only the files that match these patterns are extracted. The patterns are relative to the input directories. Generator used to create the documentation == Synopsis Declared in `<mrdocs/PublicSettings.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- Generator generator = Generator::Adoc; ---- == Description The generator is responsible for creating the documentation from the extracted symbols. The generator uses the extracted symbols and the templates to create the documentation. The generator can create different types of documentation such as HTML, XML, and AsciiDoc. Use the global namespace page as an index for all symbols == Synopsis Declared in `<mrdocs/PublicSettings.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool globalNamespaceIndex = true; ---- == Description When set to true, the page for the global namespace will recursively list all symbols in the documentation, not just those in the global namespace. This makes the global namespace page act as an index for the entire project. Whether AST visitation failures should not stop the program == Synopsis Declared in `<mrdocs/PublicSettings.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool ignoreFailures = false; ---- == Description When set to true, MrDocs continues to generate the documentation even if there are AST visitation failures. AST visitation failures occur when the source code contains constructs that are not supported by MrDocs. Continue if files are not mapped correctly == Synopsis Declared in `<mrdocs/PublicSettings.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool ignoreMapErrors = false; ---- == Description When set to true, MrDocs continues to generate the documentation even if some files are not mapped correctly. Files are not mapped correctly when the source file is not found or the compilation database does not contain the compiler flags for the source file. Symbols rendered as "implementation‐defined" == Synopsis Declared in `<mrdocs/PublicSettings.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::vector<SymbolGlobPattern> implementationDefined; ---- == Description Symbols that match one of these filters are tagged as "implementation‐defined" in the documentation, and so do symbols in scopes tagged as "implementation‐defined". This option is used to exclude symbols from the documentation that are considered part of the private API of the project. An "implementation‐defined" symbol has no documentation page in the output. If any other symbol refers to it, the reference is rendered as "implementation‐defined". See the documentation for "include‐symbol" for the pattern syntax. Symbol patterns to include == Synopsis Declared in `<mrdocs/PublicSettings.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::vector<SymbolGlobPattern> includeSymbols; ---- == Description If any patterns are defined here, only symbols that match one of these patterns are extracted. The patterns are applied to the fully qualified name of the symbol without any leading "::". A single "*" will match all symbols in the namespace. Double "**" will match all symbols in the namespace and its subnamespaces. The patterns also support "?" for any chars, "[<chars>]" for charsets, "[]" for inverted charsets, and "{<glob>,...}" for alternatives. Include paths == Synopsis Declared in `<mrdocs/PublicSettings.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::vector<std::string> includes; ---- == Description Include paths. These paths are used to add directories to the include search path. The include search path is used to search for headers. The headers are used to provide declarations and definitions of symbols. The headers are part of the project and are checked for warnings and errors. Determine how derived classes inherit base members == Synopsis Declared in `<mrdocs/PublicSettings.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- BaseMemberInheritance inheritBaseMembers = BaseMemberInheritance::CopyDependencies; ---- == Description Determine how derived classes inherit members of base classes. When set to `never`, derived classes do not inherit members of base classes and only the relationship is stored. When set to `reference`, derived classes list members of base classes but references are still linked to the base class. When set to `copy‐dependencies`, a reference is created by default and a copy is created when the base class is a dependency. When set to `copy‐all`, a copy is created for each base symbol as if it was declared in the derived class. If the base class is a dependency, the extraction mode is copied from the new parent. Input directories to extract symbols from == Synopsis Declared in `<mrdocs/PublicSettings.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::vector<std::string> input; ---- == Description Input directories to extract. Only symbols defined in files in these directories are extracted. The paths are relative to the mrdocs configuration file. Use legible names == Synopsis Declared in `<mrdocs/PublicSettings.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool legibleNames = true; ---- == Description Use legible names for ids in the documentation. When set to true, MrDocs uses legible names for symbols in the documentation. These are symbols that are legible but still safe for URLs. When the option is set to false, MrDocs uses a hash of the symbol ID. Standard Library include paths == Synopsis Declared in `<mrdocs/PublicSettings.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::vector<std::string> libcIncludes; ---- == Description When `use‐system‐libc` is disabled, the C standard library headers are available in these paths. The minimum reporting level == Synopsis Declared in `<mrdocs/PublicSettings.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- LogLevel logLevel = LogLevel::Info; ---- == Description The reporting level determines the amount of information displayed during the generation of the documentation. Include path prefixes allowed to be missing == Synopsis Declared in `<mrdocs/PublicSettings.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::vector<std::string> missingIncludePrefixes; ---- == Description Specifies path prefixes for include files that, if missing, will not cause documentation generation to fail. Missing files with these prefixes are served as empty files from an in‐memory file system, allowing processing to continue. For example, use "llvm/" to forgive all includes from LLVM. If any such path is specified, MrDocs will attempt to synthesize missing included types. Only simple sets of non‐conflicting inferred types can be synthesized. For more complex types or for better control, provide a shim using the "missing‐include‐shims" option. Shims for forgiven missing include files == Synopsis Declared in `<mrdocs/PublicSettings.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::map<std::string, std::string> missingIncludeShims; ---- == Description Specifies a map of include file paths to shim contents. If a missing include file matches a forgiven prefix, MrDocs will use the shim content from this map as the file contents. If no shim is provided for a forgiven file, an empty file is used by default. Full path to the mrdocs root directory == Synopsis Declared in `<mrdocs/Config.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::string mrdocsRootDir; ---- == Description This is the directory containing the mrdocs executable and the shared files. This string will always be native style and have a trailing directory separator. Generate a multipage documentation == Synopsis Declared in `<mrdocs/PublicSettings.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool multipage = true; ---- == Description Generates a multipage documentation. The output directory must be a directory. This option acts as a hint to the generator to create a multipage documentation. Whether the hint is followed or not depends on the generator. Directory or file for generating output == Synopsis Declared in `<mrdocs/PublicSettings.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::string output; ---- == Description Multipage generators expect a directory. Single page generators expect a file or a directory where the file will be created. If the directory does not exist, it will be created. Detect and group function overloads == Synopsis Declared in `<mrdocs/PublicSettings.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool overloads = true; ---- == Description When set to `true`, MrDocs detects function overloads and groups them as a single symbol type. The documentation for this new symbol comes from the union of non‐ambiguous metadata from the functions. Recursively include files from "input" paths == Synopsis Declared in `<mrdocs/PublicSettings.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool recursive = true; ---- == Description Recursively include files. When set to true, Mr.Docs includes files in subdirectories of the input directories. When set to false, Mr.Docs includes only the files in the input directories. The minimum reporting level == Synopsis Declared in `<mrdocs/PublicSettings.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- unsigned int report = ‐1; ---- == Description The reporting level determines the amount of information displayed during the generation of the documentation. The value `‐1` delegates the decision to the `log‐level` option. Exposition only symbols rendered as "see‐below". == Synopsis Declared in `<mrdocs/PublicSettings.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::vector<SymbolGlobPattern> seeBelow; ---- == Description Symbols that match one of these filters are tagged as "see‐below" in the documentation, and so do symbols in scopes tagged as "see‐below". This option is used to remove details about symbols that are considered part of the private API of the project but the user might need to interact with. In the documentation page for this symbol, the symbol is exposition only: the synopsis of the implementation is rendered as "see‐below" and members of scopes (such as a namespace or record) are not listed. The rest of the documentation is rendered as usual to explain the symbol. See the documentation for "include‐symbol" for the pattern syntax. Detect and reduce SFINAE expressions == Synopsis Declared in `<mrdocs/PublicSettings.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool sfinae = true; ---- == Description When set to true, MrDocs detects SFINAE expressions in the source code and extracts them as part of the documentation. Expressions such as `std::enable_if<...>` are detected, removed, and documented as a requirement. MrDocs uses an algorithm that extracts SFINAE infomation from types by identifying inspecting the primary template and specializations to detect the result type and the controlling expressions in a specialization. Show enum constant pages in the documentation == Synopsis Declared in `<mrdocs/PublicSettings.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool showEnumConstants = false; ---- == Description When set to true, MrDocs creates a page for each enum constant in the documentation. Show namespace pages in the documentation == Synopsis Declared in `<mrdocs/PublicSettings.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool showNamespaces = true; ---- == Description When set to true, MrDocs creates a page for each namespace in the documentation. Sort the members of a record == Synopsis Declared in `<mrdocs/PublicSettings.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool sortMembers = true; ---- == Description When set to `true`, sort the members of a record by the criterion determined in the `sort‐members‐by` option. When set to `false`, the members are included in the declaration order they are extracted. Sort assignment operators first == Synopsis Declared in `<mrdocs/PublicSettings.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool sortMembersAssignment1St = true; ---- == Description When set to `true`, assignment operators are sorted first in the list of members of a record. Determine how members of a record are sorted == Synopsis Declared in `<mrdocs/PublicSettings.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- SortSymbolBy sortMembersBy = SortSymbolBy::Name; ---- == Description If `sort‐members` is set to `true`, determine how members of a record are sorted. When set to `name`, members are sorted by name. When set to `location`, members are sorted by their primary location in the source code, considering the short name of the path and the location in the file. Sort conversion operators last == Synopsis Declared in `<mrdocs/PublicSettings.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool sortMembersConversionLast = true; ---- == Description When set to `true`, conversion operators are sorted last in the list of members of a record or namespace. Sort constructors first == Synopsis Declared in `<mrdocs/PublicSettings.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool sortMembersCtors1St = true; ---- == Description When set to `true`, constructors are sorted first in the list of members of a record. Sort destructors first == Synopsis Declared in `<mrdocs/PublicSettings.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool sortMembersDtors1St = true; ---- == Description When set to `true`, destructors are sorted first in the list of members of a record. Sort relational operators last == Synopsis Declared in `<mrdocs/PublicSettings.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool sortMembersRelationalLast = true; ---- == Description When set to `true`, relational operators are sorted last in the list of members of a record or namespace. Determine how members of a namespace are sorted == Synopsis Declared in `<mrdocs/PublicSettings.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- SortSymbolBy sortNamespaceMembersBy = SortSymbolBy::Name; ---- == Description Although members of namespaces are always sorted, determine how members of a namespace are sorted. When set to `name`, members are sorted by name. When set to `location`, members are sorted by their primary location in the source code, considering the short name of the path and the location in the file. Path to the root directory of the source code == Synopsis Declared in `<mrdocs/PublicSettings.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::string sourceRoot; ---- == Description Path to the root directory of the source code. This path is used as a default for input files and a base for relative paths formed from absolute paths. This should typically be the root directory of the git project, as relative paths formed from it can be used to create links to these source files in the repository. Templates use the `base‐url` option to create links to the source code. C++ Standard Library include paths == Synopsis Declared in `<mrdocs/PublicSettings.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::vector<std::string> stdlibIncludes; ---- == Description When `use‐system‐stdlib` is disabled, the C++ standard library headers are available in these paths. System include paths == Synopsis Declared in `<mrdocs/PublicSettings.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::vector<std::string> systemIncludes; ---- == Description System include paths. These paths are used to add directories to the system include search path. The system include search path is used to search for system headers. The system headers are headers that are provided by the system and are not part of the project. The system headers are used to provide the standard library headers and other system headers. The system headers are not part of the project and are not checked for warnings and errors. Path for the tagfile == Synopsis Declared in `<mrdocs/PublicSettings.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::string tagfile; ---- == Description Specifies the full path (filename) where the generated tagfile should be saved. If left empty, no tagfile will be generated. Use the system C standard library == Synopsis Declared in `<mrdocs/PublicSettings.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool useSystemLibc = false; ---- == Description To achieve reproducible results, MrDocs bundles the LibC headers with its definitions. To use the C standard library available in the system instead, set this option to true. Use the system C++ standard library == Synopsis Declared in `<mrdocs/PublicSettings.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool useSystemStdlib = false; ---- == Description To achieve reproducible results, MrDocs bundles the LibC++ headers. To use the C++ standard library available in the system instead, set this option to true. Verbose output == Synopsis Declared in `<mrdocs/PublicSettings.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool verbose = false; ---- == Description Verbose output. When set to true, MrDocs outputs additional information during the generation of the documentation. Treat warnings as errors == Synopsis Declared in `<mrdocs/PublicSettings.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool warnAsError = false; ---- == Description When set to `true`, MrDocs treats warnings as errors and stops the generation of the documentation. Warn if a documentation reference is broken == Synopsis Declared in `<mrdocs/PublicSettings.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool warnBrokenRef = true; ---- == Description When set to `true`, MrDocs outputs a warning message if a reference in the documentation is broken. Warn if documentation has errors == Synopsis Declared in `<mrdocs/PublicSettings.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool warnIfDocError = true; ---- == Description When set to `true`, MrDocs outputs a warning message if the documentation of a symbol has errors such as duplicate parameters and parameters that don't exist. Warn if enum values are not documented == Synopsis Declared in `<mrdocs/PublicSettings.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool warnIfUndocEnumVal = true; ---- == Description When set to `true`, MrDocs outputs a warning message if an enum value is not documented. Warn if symbols are not documented == Synopsis Declared in `<mrdocs/PublicSettings.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool warnIfUndocumented = true; ---- == Description When set to `true`, MrDocs outputs a warning message if a symbol that passes all filters is not documented. Warn if parameters are not documented == Synopsis Declared in `<mrdocs/PublicSettings.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool warnNoParamdoc = true; ---- == Description When set to `true`, MrDocs outputs a warning message if a named function parameter is not documented. Warn if documented functions have unnamed parameters == Synopsis Declared in `<mrdocs/PublicSettings.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool warnUnnamedParam = false; ---- == Description When set to `true`, MrDocs outputs a warning message if a documented function has a parameter that is not named. Enable warning messages == Synopsis Declared in `<mrdocs/PublicSettings.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool warnings = true; ---- == Description When set to `true`, MrDocs outputs warning messages during the generation of the documentation. It is usually recommended to enable warnings while writing the documentation. Destructor. == Synopsis Declared in `<mrdocs/Config.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- virtual ~Config() noexcept = 0; ---- Return a DOM object representing the configuration keys. == Synopsis Declared in `<mrdocs/Config.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- virtual link:#mrdocs-dom-Object[dom::Object] const& object() const = 0; ---- == Description The object is invalidated when the configuration is moved or destroyed. == Return Value a DOM object representing the configuration keys. Return the settings used to generate the Corpus and Docs. == Synopsis Declared in `<mrdocs/Config.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-Config-Settings[Settings] const* operator‐>() const noexcept; ---- == Return Value the settings used to generate the Corpus and Docs. Return the settings used to generate the Corpus and Docs. == Synopsis Declared in `<mrdocs/Config.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- virtual link:#mrdocs-Config-Settings[Settings] const& settings() const noexcept = 0; ---- == Return Value the settings used to generate the Corpus and Docs. Return a pool of threads for executing work. == Synopsis Declared in `<mrdocs/Config.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- virtual link:#mrdocs-ThreadPool[ThreadPool]& threadPool() const noexcept = 0; ---- == Return Value a pool of threads for executing work. Default constructor == Synopsis Declared in `<mrdocs/Config.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- Config() noexcept; ---- Represents an expression with a (possibly known) value == Synopsis Declared in `<mrdocs/Metadata/Expression.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<typename T> struct ConstantExprInfo : link:#mrdocs-ExprInfo[ExprInfo] ---- == Base Classes [cols=2] |=== | Name | Description | `link:#mrdocs-ExprInfo[ExprInfo]` | Represents an expression |=== == Types [cols=2] |=== | Name | Description | link:#mrdocs-ConstantExprInfo-type[`type`] | The underlying type of the expression |=== == Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-ExprInfo-asExpr-00[`asExpr`] | | link:#mrdocs-ConstantExprInfo-operator_3way-00[`operator<=>`] | Three‐way comparison operators |=== == Data Members [cols=2] |=== | Name | Description | link:#mrdocs-ConstantExprInfo-Value[`Value`] | The expressions value, if it is known | link:#mrdocs-ExprInfo-Written[`Written`] | The expression, as written |=== The underlying type of the expression == Synopsis Declared in `<mrdocs/Metadata/Expression.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- using type = T; ---- Three‐way comparison operators == Synopses Declared in `<mrdocs/Metadata/Expression.hpp>` Three‐way comparison operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- auto link:#mrdocs-ConstantExprInfo-operator_3way-08[operator<=>](link:#mrdocs-ConstantExprInfo[ConstantExprInfo] const& rhs) const = default; ---- [.small]#link:#mrdocs-ConstantExprInfo-operator_3way-08[_» more..._]# Three‐way comparison operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr auto link:#mrdocs-ExprInfo-operator_3way[operator<=>](link:#mrdocs-ExprInfo[ExprInfo] const& rhs) const = default; ---- [.small]#link:#mrdocs-ExprInfo-operator_3way[_» more..._]# Three‐way comparison operator == Synopsis Declared in `<mrdocs/Metadata/Expression.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- auto operator<=>(link:#mrdocs-ConstantExprInfo[ConstantExprInfo] const& rhs) const = default; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== Three‐way comparison operator == Synopsis Declared in `<mrdocs/Metadata/Expression.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr auto operator<=>(link:#mrdocs-ExprInfo[ExprInfo] const& rhs) const = default; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== The expressions value, if it is known == Synopsis Declared in `<mrdocs/Metadata/Expression.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-Optional-03[Optional<type>] Value; ---- == Description The value of an expression will be unknown if it is e.g. dependent on a template parameter == Synopsis Declared in `<mrdocs/Metadata/TArg/ConstantTArg.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- struct ConstantTArg final : link:#mrdocs-TArgCommonBase-06[TArgCommonBase<TArgKind::Constant>] ---- == Base Classes [cols=2] |=== | Name | Description | `link:#mrdocs-TArgCommonBase-06[TArgCommonBase<TArgKind::Constant>]` | |=== == Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-ConstantTArg-operator_3way[`operator<=>`] | Three‐way comparison operator |=== == Static Member Functions [cols=1] |=== | Name | link:#mrdocs-ConstantTArg-isConstant[`isConstant`] | link:#mrdocs-ConstantTArg-isTemplate[`isTemplate`] | link:#mrdocs-ConstantTArg-isType[`isType`] |=== == Data Members [cols=2] |=== | Name | Description | link:#mrdocs-ConstantTArg-Value[`Value`] | Template argument expression. |=== == Static Data Members [cols=1] |=== | Name | link:#mrdocs-ConstantTArg-kind_id[`kind_id`] |=== Three‐way comparison operator == Synopsis Declared in `<mrdocs/Metadata/TArg/ConstantTArg.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr auto operator<=>(link:#mrdocs-ConstantTArg[ConstantTArg] const& rhs) const = default; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== == Synopsis Declared in `<mrdocs/Metadata/TArg/TArgBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isConstant() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/TArg/TArgBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isTemplate() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/TArg/TArgBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isType() noexcept; ---- Template argument expression. == Synopsis Declared in `<mrdocs/Metadata/TArg/ConstantTArg.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-ExprInfo[ExprInfo] Value; ---- == Synopsis Declared in `<mrdocs/Metadata/TArg/TArgBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static link:#mrdocs-TArgKind[TArgKind] kind_id; ---- A constant template parameter == Synopsis Declared in `<mrdocs/Metadata/TParam/ConstantTParam.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- struct ConstantTParam final : link:#mrdocs-TParamCommonBase-0c[TParamCommonBase<TParamKind::Constant>] ---- == Base Classes [cols=2] |=== | Name | Description | `link:#mrdocs-TParamCommonBase-0c[TParamCommonBase<TParamKind::Constant>]` | |=== == Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-ConstantTParam-operator_3way-04[`operator<=>`] | Three‐way comparison operators |=== == Static Member Functions [cols=1] |=== | Name | link:#mrdocs-ConstantTParam-isConstant[`isConstant`] | link:#mrdocs-ConstantTParam-isTemplate[`isTemplate`] | link:#mrdocs-ConstantTParam-isType[`isType`] |=== == Data Members [cols=2] |=== | Name | Description | link:#mrdocs-ConstantTParam-Type[`Type`] | Type of the non‐type template parameter |=== == Static Data Members [cols=1] |=== | Name | link:#mrdocs-ConstantTParam-kind_id[`kind_id`] |=== == Description Before C++26, constant template parameters were called non‐type template parameter in the standard wording. The terminology was changed by P2841R6 / PR#7587. Three‐way comparison operators == Synopses Declared in `<mrdocs/Metadata/TParam/ConstantTParam.hpp>` Three‐way comparison operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::strong_ordering link:#mrdocs-ConstantTParam-operator_3way-03[operator<=>](link:#mrdocs-ConstantTParam[ConstantTParam] const& rhs) const; ---- [.small]#link:#mrdocs-ConstantTParam-operator_3way-03[_» more..._]# Three‐way comparison operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- auto link:#mrdocs-ConstantTParam-operator_3way-01[operator<=>](link:#mrdocs-TParamCommonBase-0c[TParamCommonBase<mrdocs::TParamKind::Constant>] const& rhs) const = default; ---- [.small]#link:#mrdocs-ConstantTParam-operator_3way-01[_» more..._]# Three‐way comparison operator == Synopsis Declared in `<mrdocs/Metadata/TParam/ConstantTParam.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::strong_ordering operator<=>(link:#mrdocs-ConstantTParam[ConstantTParam] const& rhs) const; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== Three‐way comparison operator == Synopsis Declared in `<mrdocs/Metadata/TParam/TParamBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- auto operator<=>(link:#mrdocs-TParamCommonBase-0c[TParamCommonBase<mrdocs::TParamKind::Constant>] const& rhs) const = default; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== == Synopsis Declared in `<mrdocs/Metadata/TParam/TParamBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isConstant() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/TParam/TParamBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isTemplate() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/TParam/TParamBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isType() noexcept; ---- Type of the non‐type template parameter == Synopsis Declared in `<mrdocs/Metadata/TParam/ConstantTParam.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-Polymorphic[Polymorphic<Type>] Type = Polymorphic<struct Type>(AutoType{}); ---- == Synopsis Declared in `<mrdocs/Metadata/TParam/TParamBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static link:#mrdocs-TParamKind[TParamKind] kind_id; ---- The collection of declarations in extracted form. == Synopsis Declared in `<mrdocs/Corpus.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- class Corpus; ---- == Types [cols=2] |=== | Name | Description | link:#mrdocs-Corpus-TraverseOptions[`TraverseOptions`] | Options to traverse the members of an Symbol. | link:#mrdocs-Corpus-iterator[`iterator`] | The iterator type for the index of all symbols. |=== == Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-Corpus-2destructor[`~Corpus`] [.small]#[destructor]# [.small]#[virtual]# | Destructor. | link:#mrdocs-Corpus-begin[`begin`] [.small]#[virtual]# | Return the begin iterator for the index of all symbols. | link:#mrdocs-Corpus-empty[`empty`] | Whether the corpus contains any symbols. | link:#mrdocs-Corpus-end[`end`] [.small]#[virtual]# | Return the end iterator for the index. | link:#mrdocs-Corpus-exists[`exists`] | Return true if an Symbol with the specified symbol ID exists. | link:#mrdocs-Corpus-find[`find`] [.small]#[virtual]# | Return the Symbol with the matching ID, or nullptr. | link:#mrdocs-Corpus-get[`get`] | Return the Symbol with the specified symbol ID. | link:#mrdocs-Corpus-globalNamespace[`globalNamespace`] | Return the metadata for the global namespace. | link:#mrdocs-Corpus-lookup-05[`lookup`] | `lookup` overloads | link:#mrdocs-Corpus-qualifiedName-0b7[`qualifiedName`] | `qualifiedName` overloads | link:#mrdocs-Corpus-traverse-02[`traverse`] | Visit the members of specified Symbol. | link:#mrdocs-Corpus-visitIDs[`visitIDs`] | Visit the specified Symbol IDs |=== == Data Members [cols=2] |=== | Name | Description | link:#mrdocs-Corpus-config[`config`] | The configuration used to generate this corpus. |=== == Protected Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-Corpus-2constructor[`Corpus`] [.small]#[constructor]# | Construct from `Config` |=== == Non-Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-getParents-04[`getParents`] | Return a list of the parent symbols of the specified Symbol. |=== Options to traverse the members of an Symbol. == Synopsis Declared in `<mrdocs/Corpus.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- struct TraverseOptions; ---- == Data Members [cols=2] |=== | Name | Description | link:#mrdocs-Corpus-TraverseOptions-ordered[`ordered`] | Whether to traverse in a stable order | link:#mrdocs-Corpus-TraverseOptions-recursive[`recursive`] | Whether to skip inherited members whose parent is not the Symbol | link:#mrdocs-Corpus-TraverseOptions-skipInherited[`skipInherited`] | Whether to skip inherited members whose parent is not the Symbol |=== Whether to traverse in a stable order == Synopsis Declared in `<mrdocs/Corpus.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool ordered = false; ---- Whether to skip inherited members whose parent is not the Symbol == Synopsis Declared in `<mrdocs/Corpus.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool recursive = false; ---- Whether to skip inherited members whose parent is not the Symbol == Synopsis Declared in `<mrdocs/Corpus.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool skipInherited = false; ---- The iterator type for the index of all symbols. == Synopsis Declared in `<mrdocs/Corpus.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- class iterator; ---- == Types [cols=1] |=== | Name | link:#mrdocs-Corpus-iterator-const_pointer[`const_pointer`] | link:#mrdocs-Corpus-iterator-const_reference[`const_reference`] | link:#mrdocs-Corpus-iterator-difference_type[`difference_type`] | link:#mrdocs-Corpus-iterator-pointer[`pointer`] | link:#mrdocs-Corpus-iterator-reference[`reference`] | link:#mrdocs-Corpus-iterator-size_type[`size_type`] | link:#mrdocs-Corpus-iterator-value_type[`value_type`] |=== == Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-Corpus-iterator-2constructor-02[`iterator`] [.small]#[constructor]# | Constructors | link:#mrdocs-Corpus-iterator-operator_assign[`operator=`] | Copy assignment operator | link:#mrdocs-Corpus-iterator-operator_star[`operator*`] | | link:#mrdocs-Corpus-iterator-operator_inc-077[`operator++`] | Increment operators | link:#mrdocs-Corpus-iterator-operator_ptr[`operator‐>`] | | link:#mrdocs-Corpus-iterator-operator_eq[`operator==`] | Equality operator | link:#mrdocs-Corpus-iterator-operator_not_eq[`operator!=`] | Inequality operator |=== == Description The iterator is a forward iterator that iterates over all symbols in the index. It dereferences to a reference to a const link:#mrdocs-Symbol[`Symbol`]. The logic for incrementing the iterator is provided by the Corpus implementation via a function that retuns the next Symbol in the index, or nullptr if there are no more. == Synopsis Declared in `<mrdocs/Corpus.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- using const_pointer = link:#mrdocs-Corpus-iterator-value_type[value_type] const*; ---- == Synopsis Declared in `<mrdocs/Corpus.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- using const_reference = link:#mrdocs-Corpus-iterator-value_type[value_type] const&; ---- == Synopsis Declared in `<mrdocs/Corpus.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- using difference_type = std::ptrdiff_t; ---- == Synopsis Declared in `<mrdocs/Corpus.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- using pointer = link:#mrdocs-Corpus-iterator-value_type[value_type]*; ---- == Synopsis Declared in `<mrdocs/Corpus.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- using reference = link:#mrdocs-Corpus-iterator-value_type[value_type]&; ---- == Synopsis Declared in `<mrdocs/Corpus.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- using size_type = std::size_t; ---- == Synopsis Declared in `<mrdocs/Corpus.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- using value_type = link:#mrdocs-Symbol[Symbol] const; ---- Constructors == Synopses Declared in `<mrdocs/Corpus.hpp>` Default constructor [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-Corpus-iterator-2constructor-052[iterator]() = default; ---- [.small]#link:#mrdocs-Corpus-iterator-2constructor-052[_» more..._]# Copy constructor [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-Corpus-iterator-2constructor-05f[iterator](link:#mrdocs-Corpus-iterator[iterator] const& other) = default; ---- [.small]#link:#mrdocs-Corpus-iterator-2constructor-05f[_» more..._]# Constructor [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-Corpus-iterator-2constructor-01[iterator]( link:#mrdocs-Corpus[Corpus] const* corpus, link:#mrdocs-Symbol[Symbol] const* val, link:#mrdocs-Symbol[Symbol] const*(* next)(link:#mrdocs-Corpus[Corpus] const*, link:#mrdocs-Symbol[Symbol] const*)); ---- [.small]#link:#mrdocs-Corpus-iterator-2constructor-01[_» more..._]# Default constructor == Synopsis Declared in `<mrdocs/Corpus.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr iterator() = default; ---- Copy constructor == Synopsis Declared in `<mrdocs/Corpus.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr iterator(link:#mrdocs-Corpus-iterator[iterator] const& other) = default; ---- == Parameters [cols=2] |=== | Name | Description | *other* | The object to copy construct from |=== Constructor == Synopsis Declared in `<mrdocs/Corpus.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- iterator( link:#mrdocs-Corpus[Corpus] const* corpus, link:#mrdocs-Symbol[Symbol] const* val, link:#mrdocs-Symbol[Symbol] const*(* next)(link:#mrdocs-Corpus[Corpus] const*, link:#mrdocs-Symbol[Symbol] const*)); ---- == Parameters [cols=2] |=== | Name | Description | *corpus* | The object to construct from | *val* | Base class with common properties of all symbols | *next* | Base class with common properties of all symbols |=== Copy assignment operator == Synopsis Declared in `<mrdocs/Corpus.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-Corpus-iterator[iterator]& operator=(link:#mrdocs-Corpus-iterator[iterator] const& other) = default; ---- == Return Value Reference to the current object == Parameters [cols=2] |=== | Name | Description | *other* | The object to copy assign from |=== == Synopsis Declared in `<mrdocs/Corpus.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-Corpus-iterator-const_reference[const_reference] operator*() const noexcept; ---- Increment operators == Synopses Declared in `<mrdocs/Corpus.hpp>` Increment operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-Corpus-iterator[iterator]& link:#mrdocs-Corpus-iterator-operator_inc-0c[operator++]() noexcept; ---- [.small]#link:#mrdocs-Corpus-iterator-operator_inc-0c[_» more..._]# Increment operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-Corpus-iterator[iterator] link:#mrdocs-Corpus-iterator-operator_inc-07a[operator++](int) noexcept; ---- [.small]#link:#mrdocs-Corpus-iterator-operator_inc-07a[_» more..._]# Increment operator == Synopsis Declared in `<mrdocs/Corpus.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-Corpus-iterator[iterator]& operator++() noexcept; ---- == Return Value Reference to the current object Increment operator == Synopsis Declared in `<mrdocs/Corpus.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-Corpus-iterator[iterator] operator++(int) noexcept; ---- == Return Value Another instance of the object == Synopsis Declared in `<mrdocs/Corpus.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-Corpus-iterator-const_pointer[const_pointer] operator‐>() const noexcept; ---- Equality operator == Synopsis Declared in `<mrdocs/Corpus.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool operator==(link:#mrdocs-Corpus-iterator[iterator] const& other) const noexcept; ---- == Return Value `true` if the objects are equal, `false` otherwise == Parameters [cols=2] |=== | Name | Description | *other* | The right operand |=== Inequality operator == Synopsis Declared in `<mrdocs/Corpus.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool operator!=(link:#mrdocs-Corpus-iterator[iterator] const& other) const noexcept; ---- == Return Value `true` if the objects are not equal, `false` otherwise == Parameters [cols=2] |=== | Name | Description | *other* | The right operand |=== Destructor. == Synopsis Declared in `<mrdocs/Corpus.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- virtual ~Corpus() noexcept; ---- Return the begin iterator for the index of all symbols. == Synopsis Declared in `<mrdocs/Corpus.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- virtual link:#mrdocs-Corpus-iterator[iterator] begin() const noexcept = 0; ---- == Return Value the begin iterator for the index of all symbols. Whether the corpus contains any symbols. == Synopsis Declared in `<mrdocs/Corpus.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool empty() const noexcept; ---- == Return Value true if the corpus is empty, otherwise false. Return the end iterator for the index. == Synopsis Declared in `<mrdocs/Corpus.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- virtual link:#mrdocs-Corpus-iterator[iterator] end() const noexcept = 0; ---- == Return Value the end iterator for the index. Return true if an Symbol with the specified symbol ID exists. == Synopsis Declared in `<mrdocs/Corpus.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool exists(link:#mrdocs-SymbolID[SymbolID] const& id) const noexcept; ---- == Description This function uses the link:#mrdocs-Corpus-find[`find`] function to locate the Symbol with the specified symbol ID and returns true if it exists, otherwise false. == Return Value true if an Symbol with the specified symbol ID exists. == Parameters [cols=2] |=== | Name | Description | *id* | A unique identifier for a symbol. |=== Return the Symbol with the matching ID, or nullptr. == Synopsis Declared in `<mrdocs/Corpus.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- virtual link:#mrdocs-Symbol[Symbol] const* find(link:#mrdocs-SymbolID[SymbolID] const& id) const noexcept = 0; ---- == Return Value the Symbol with the matching ID, or nullptr. == Parameters [cols=2] |=== | Name | Description | *id* | A unique identifier for a symbol. |=== Return the Symbol with the specified symbol ID. == Synopsis Declared in `<mrdocs/Corpus.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class T = link:#mrdocs-Symbol[Symbol]> requires std::derived_from<T, Symbol> T const& get(link:#mrdocs-SymbolID[SymbolID] const& id) const noexcept; ---- == Description This function uses the link:#mrdocs-Corpus-find[`find`] function to locate the Symbol with the specified symbol ID. The result is converted to the specified type T and returned. The function link:#mrdocs-Corpus-exists[`exists`] can be used to determine if an Symbol with the specified symbol ID exists. If the id does not exist, the behavior is undefined. If the Symbol is not of type T, the behavior is undefined. == Return Value the Symbol with the specified symbol ID. == Parameters [cols=2] |=== | Name | Description | *id* | A unique identifier for a symbol. |=== Return the metadata for the global namespace. == Synopsis Declared in `<mrdocs/Corpus.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-NamespaceSymbol[NamespaceSymbol] const& globalNamespace() const noexcept; ---- == Description This function is equivalent to calling link:#mrdocs-Corpus-get[`get`] with the symbol ID for the global namespace. == Return Value the metadata for the global namespace. `lookup` overloads == Synopses Declared in `<mrdocs/Corpus.hpp>` Return the Symbol for the matching string in the global context. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-Expected-0a[Expected<Symbol const&>] link:#mrdocs-Corpus-lookup-04[lookup](std::string_view name) const; ---- [.small]#link:#mrdocs-Corpus-lookup-04[_» more..._]# Return the Symbol for the matching string in a given context. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- virtual link:#mrdocs-Expected-0a[Expected<Symbol const&>] link:#mrdocs-Corpus-lookup-06[lookup]( link:#mrdocs-SymbolID[SymbolID] const& context, std::string_view name) const = 0; ---- [.small]#link:#mrdocs-Corpus-lookup-06[_» more..._]# == Return Value * The Symbol for the symbol with the specified name in the global context, or an error if not found. * The Symbol for the symbol with the specified name in the specified context, or an error if not found. If multiple symbols match, one is returned arbitrarily. Use link:#mrdocs-Corpus-traverse-02[`traverse`] to find all matching symbols. == Parameters [cols=2] |=== | Name | Description | *name* | The name of the symbol to look up. | *context* | The context to look up the symbol in. |=== Return the Symbol for the matching string in the global context. == Synopsis Declared in `<mrdocs/Corpus.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-Expected-0a[Expected<Symbol const&>] lookup(std::string_view name) const; ---- == Return Value The Symbol for the symbol with the specified name in the global context, or an error if not found. == Parameters [cols=2] |=== | Name | Description | *name* | The name of the symbol to look up. |=== Return the Symbol for the matching string in a given context. == Synopsis Declared in `<mrdocs/Corpus.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- virtual link:#mrdocs-Expected-0a[Expected<Symbol const&>] lookup( link:#mrdocs-SymbolID[SymbolID] const& context, std::string_view name) const = 0; ---- == Return Value The Symbol for the symbol with the specified name in the specified context, or an error if not found. If multiple symbols match, one is returned arbitrarily. Use link:#mrdocs-Corpus-traverse-02[`traverse`] to find all matching symbols. == Parameters [cols=2] |=== | Name | Description | *context* | The context to look up the symbol in. | *name* | The name of the symbol to look up. |=== `qualifiedName` overloads == Synopses Declared in `<mrdocs/Corpus.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::string link:#mrdocs-Corpus-qualifiedName-0b2[qualifiedName](link:#mrdocs-Symbol[Symbol] const& I) const; ---- [.small]#link:#mrdocs-Corpus-qualifiedName-0b2[_» more..._]# Return the fully qualified name of the specified Symbol. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- virtual void link:#mrdocs-Corpus-qualifiedName-00[qualifiedName]( link:#mrdocs-Symbol[Symbol] const& I, std::string& temp) const = 0; ---- [.small]#link:#mrdocs-Corpus-qualifiedName-00[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::string link:#mrdocs-Corpus-qualifiedName-09[qualifiedName]( link:#mrdocs-Symbol[Symbol] const& I, link:#mrdocs-SymbolID[SymbolID] const& context) const; ---- [.small]#link:#mrdocs-Corpus-qualifiedName-09[_» more..._]# Return a qualified name from the specified context. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- virtual void link:#mrdocs-Corpus-qualifiedName-01[qualifiedName]( link:#mrdocs-Symbol[Symbol] const& I, link:#mrdocs-SymbolID[SymbolID] const& context, std::string& result) const = 0; ---- [.small]#link:#mrdocs-Corpus-qualifiedName-01[_» more..._]# == Return Value A reference to the string `temp`. == Parameters [cols=2] |=== | Name | Description | *I* | The Symbol to get the qualified name for. | *temp* | The string to store the result in. | *context* | The context to get the qualified name from. | *result* | The string to store the result in. |=== == Synopsis Declared in `<mrdocs/Corpus.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::string qualifiedName(link:#mrdocs-Symbol[Symbol] const& I) const; ---- Return the fully qualified name of the specified Symbol. == Synopsis Declared in `<mrdocs/Corpus.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- virtual void qualifiedName( link:#mrdocs-Symbol[Symbol] const& I, std::string& temp) const = 0; ---- == Description This function returns the fully qualified name of the specified Symbol `I` as a string. The `Symbol` parents are traversed to construct the fully qualified name which is stored in the string `temp`. == Return Value A reference to the string `temp`. == Parameters [cols=2] |=== | Name | Description | *I* | The Symbol to get the qualified name for. | *temp* | The string to store the result in. |=== == Synopsis Declared in `<mrdocs/Corpus.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::string qualifiedName( link:#mrdocs-Symbol[Symbol] const& I, link:#mrdocs-SymbolID[SymbolID] const& context) const; ---- Return a qualified name from the specified context. == Synopsis Declared in `<mrdocs/Corpus.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- virtual void qualifiedName( link:#mrdocs-Symbol[Symbol] const& I, link:#mrdocs-SymbolID[SymbolID] const& context, std::string& result) const = 0; ---- == Description This function returns the qualified name of the specified Symbol `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 `::`. == Return Value a qualified name from the specified context. == Parameters [cols=2] |=== | Name | Description | *I* | The Symbol to get the qualified name for. | *context* | The context to get the qualified name from. | *result* | The string to store the result in. |=== Visit the members of specified Symbol. == Synopses Declared in `<mrdocs/Corpus.hpp>` Visit the members of specified Symbol. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< std::derived_from<Symbol> T, class F, class... Args> void link:#mrdocs-Corpus-traverse-05[traverse]( T const& I, F&& f, Args...&&... args) const; ---- [.small]#link:#mrdocs-Corpus-traverse-05[_» more..._]# Visit the members of specified Symbol. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< std::derived_from<Symbol> T, class F, class... Args> void link:#mrdocs-Corpus-traverse-07[traverse]( link:#mrdocs-Corpus-TraverseOptions[TraverseOptions] const& opts, T const& I, F&& f, Args...&&... args) const; ---- [.small]#link:#mrdocs-Corpus-traverse-07[_» more..._]# == Parameters [cols=2] |=== | Name | Description | *I* | The Symbol to visit. | *f* | The function to invoke. | *args* | The arguments to pass to the function. | *opts* | The options to traverse. |=== Visit the members of specified Symbol. == Synopsis Declared in `<mrdocs/Corpus.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< std::derived_from<Symbol> T, class F, class... Args> void traverse( T const& I, F&& f, Args...&&... args) const; ---- == Description This function invokes the specified function `f` for each member of the specified Symbol `I`. For each member of `I`, the function will invoke the function object `fn` with a type derived from `Symbol` as the first argument, followed by `args...`. The type of the first argument is determined by the `SymbolKind` of the `Symbol` object. == Parameters [cols=2] |=== | Name | Description | *I* | The Symbol to visit. | *f* | The function to invoke. | *args* | The arguments to pass to the function. |=== Visit the members of specified Symbol. == Synopsis Declared in `<mrdocs/Corpus.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< std::derived_from<Symbol> T, class F, class... Args> void traverse( link:#mrdocs-Corpus-TraverseOptions[TraverseOptions] const& opts, T const& I, F&& f, Args...&&... args) const; ---- == Description This function invokes the specified function `f` for each member of the specified Symbol `I`. For each member of `I`, the function will invoke the function object `fn` with a type derived from `Symbol` as the first argument, followed by `args...`. The type of the first argument is determined by the `SymbolKind` of the `Symbol` object. == Parameters [cols=2] |=== | Name | Description | *opts* | The options to traverse. | *I* | The Symbol to visit. | *f* | The function to invoke. | *args* | The arguments to pass to the function. |=== Visit the specified Symbol IDs == Synopsis Declared in `<mrdocs/Corpus.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< link:#mrdocs-range_of[range_of<SymbolID>] R, class F, class... Args> void visitIDs( R&& range, F&& f, Args...&&... args) const; ---- == Description This function invokes the specified function `f` for each member of the specified range of Symbol IDs. For each member of `I` associated with the ID in `range`, the function will invoke the function object `fn` with a type derived from `Symbol` as the first argument, followed by `args...`. The type of the first argument is determined by the `SymbolKind` of the `Symbol` object. == Parameters [cols=2] |=== | Name | Description | *range* | A range of SymbolID objects. | *f* | The function to invoke. | *args* | The arguments to pass to the function. |=== The configuration used to generate this corpus. == Synopsis Declared in `<mrdocs/Corpus.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-Config[Config] const& config; ---- Construct from `Config` == Synopsis Declared in `<mrdocs/Corpus.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- explicit Corpus(link:#mrdocs-Config[Config] const& config_) noexcept; ---- == Parameters [cols=2] |=== | Name | Description | *config_* | The object to copy construct from |=== == Synopsis Declared in `<mrdocs/Metadata/Type/DecltypeType.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- struct DecltypeType final : link:#mrdocs-TypeCommonBase-0e[TypeCommonBase<TypeKind::Decltype>] ---- == Base Classes [cols=2] |=== | Name | Description | `link:#mrdocs-TypeCommonBase-0e[TypeCommonBase<TypeKind::Decltype>]` | |=== == Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-DecltypeType-operator_3way-03[`operator<=>`] | Three‐way comparison operators |=== == Static Member Functions [cols=1] |=== | Name | link:#mrdocs-DecltypeType-isArray[`isArray`] | link:#mrdocs-DecltypeType-isAuto[`isAuto`] | link:#mrdocs-DecltypeType-isDecltype[`isDecltype`] | link:#mrdocs-DecltypeType-isFunction[`isFunction`] | link:#mrdocs-DecltypeType-isLValueReference[`isLValueReference`] | link:#mrdocs-DecltypeType-isMemberPointer[`isMemberPointer`] | link:#mrdocs-DecltypeType-isNamed[`isNamed`] | link:#mrdocs-DecltypeType-isPointer[`isPointer`] | link:#mrdocs-DecltypeType-isRValueReference[`isRValueReference`] |=== == Data Members [cols=1] |=== | Name | link:#mrdocs-DecltypeType-Operand[`Operand`] |=== == Static Data Members [cols=1] |=== | Name | link:#mrdocs-DecltypeType-kind_id[`kind_id`] |=== == Non-Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-innerType-06[`innerType`] | Return the inner type. | link:#mrdocs-innerType-09[`innerType`] | Return the inner type. | link:#mrdocs-innerTypePtr-08[`innerTypePtr`] | Return the inner type. | link:#mrdocs-innerTypePtr-0a[`innerTypePtr`] | Return the inner type. |=== Three‐way comparison operators == Synopses Declared in `<mrdocs/Metadata/Type/DecltypeType.hpp>` Three‐way comparison operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr auto link:#mrdocs-DecltypeType-operator_3way-07[operator<=>](link:#mrdocs-DecltypeType[DecltypeType] const& rhs) const = default; ---- [.small]#link:#mrdocs-DecltypeType-operator_3way-07[_» more..._]# Three‐way comparison operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr auto link:#mrdocs-DecltypeType-operator_3way-05[operator<=>](link:#mrdocs-TypeCommonBase-0e[TypeCommonBase<mrdocs::TypeKind::Decltype>] const& rhs) const = default; ---- [.small]#link:#mrdocs-DecltypeType-operator_3way-05[_» more..._]# Three‐way comparison operator == Synopsis Declared in `<mrdocs/Metadata/Type/DecltypeType.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr auto operator<=>(link:#mrdocs-DecltypeType[DecltypeType] const& rhs) const = default; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== Three‐way comparison operator == Synopsis Declared in `<mrdocs/Metadata/Type/TypeBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr auto operator<=>(link:#mrdocs-TypeCommonBase-0e[TypeCommonBase<mrdocs::TypeKind::Decltype>] const& rhs) const = default; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== == Synopsis Declared in `<mrdocs/Metadata/Type/TypeBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isArray() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Type/TypeBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isAuto() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Type/TypeBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isDecltype() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Type/TypeBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isFunction() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Type/TypeBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isLValueReference() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Type/TypeBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isMemberPointer() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Type/TypeBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isNamed() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Type/TypeBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isPointer() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Type/TypeBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isRValueReference() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Type/DecltypeType.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-ExprInfo[ExprInfo] Operand; ---- == Synopsis Declared in `<mrdocs/Metadata/Type/TypeBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static link:#mrdocs-TypeKind[TypeKind] kind_id; ---- A processed documentation comment attached to a declaration. == Synopsis Declared in `<mrdocs/Metadata/DocComment.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- struct DocComment; ---- == Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-DocComment-2constructor-07[`DocComment`] [.small]#[constructor]# | Constructors | link:#mrdocs-DocComment-append[`append`] | Append blocks from another DocComment to this. | link:#mrdocs-DocComment-empty[`empty`] | Return true if this is empty | link:#mrdocs-DocComment-operator_eq[`operator==`] | Equality operator | link:#mrdocs-DocComment-operator_not_eq[`operator!=`] | Inequality operator | link:#mrdocs-DocComment-operator_3way[`operator<=>`] | Three‐way comparison operator |=== == Data Members [cols=2] |=== | Name | Description | link:#mrdocs-DocComment-Document[`Document`] | The list of text blocks. | link:#mrdocs-DocComment-brief[`brief`] | A brief description of the symbol. | link:#mrdocs-DocComment-exceptions[`exceptions`] | The list of exceptions. | link:#mrdocs-DocComment-params[`params`] | The list of parameters. | link:#mrdocs-DocComment-postconditions[`postconditions`] | The list of postconditions. | link:#mrdocs-DocComment-preconditions[`preconditions`] | The list of preconditions. | link:#mrdocs-DocComment-related[`related`] | The list of "related" references. | link:#mrdocs-DocComment-relates[`relates`] | The list of "relates" references. | link:#mrdocs-DocComment-returns[`returns`] | The list of return type descriptions. | link:#mrdocs-DocComment-sees[`sees`] | The list of "see also" references. | link:#mrdocs-DocComment-tparams[`tparams`] | The list of template parameters. |=== == Description A complete documentation comment document consists of a sequence of text blocks. Blocks are the top‐level structural units that might contain other blocks or inline elements. These are analogous to markdown blocks. Inline elements (text, emphasis, links, code spans, etc.) live inside certain block types, like paragraphs or headings. Inlines can contain other inlines (e.g., emphasis contains text, link contains text), but they cannot directly contain blocks. Some blocks contain metadata about the symbol being documented, such as parameters and return values. These blocks are parsed as usual, but are stored separately in the DocComment structure. Each block in the document might contain: ‐ No other blocks (leaf blocks) ‐ Other blocks (container blocks: e.g. lists) When they contain no other blocks, they might be: ‐ Inlines only (e.g. paragraphs) ‐ No inlines (e.g. horizontal rule) Inline content elements contain other inlines but cannot contain blocks. Constructors == Synopses Declared in `<mrdocs/Metadata/DocComment.hpp>` Constructor. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-DocComment-2constructor-0a[DocComment]() noexcept; ---- [.small]#link:#mrdocs-DocComment-2constructor-0a[_» more..._]# Constructor [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- explicit link:#mrdocs-DocComment-2constructor-0d[DocComment](std::vector<Polymorphic<doc::Block>> blocks); ---- [.small]#link:#mrdocs-DocComment-2constructor-0d[_» more..._]# Constructor. == Synopsis Declared in `<mrdocs/Metadata/DocComment.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- DocComment() noexcept; ---- Constructor == Synopsis Declared in `<mrdocs/Metadata/DocComment.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- explicit DocComment(std::vector<Polymorphic<doc::Block>> blocks); ---- == Parameters [cols=2] |=== | Name | Description | *blocks* | The object to construct from |=== Append blocks from another DocComment to this. == Synopsis Declared in `<mrdocs/Metadata/DocComment.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void append(link:#mrdocs-DocComment[DocComment]&& other); ---- == Parameters [cols=2] |=== | Name | Description | *other* | A processed documentation comment attached to a declaration. |=== Return true if this is empty == Synopsis Declared in `<mrdocs/Metadata/DocComment.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool empty() const noexcept; ---- == Return Value true if this is empty Equality operator == Synopsis Declared in `<mrdocs/Metadata/DocComment.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr bool operator==(link:#mrdocs-DocComment[DocComment] const& rhs) const noexcept = default; ---- == Return Value `true` if the objects are equal, `false` otherwise == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== Inequality operator == Synopsis Declared in `<mrdocs/Metadata/DocComment.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool operator!=(link:#mrdocs-DocComment[DocComment] const& rhs) const noexcept; ---- == Return Value `true` if the objects are not equal, `false` otherwise == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== Three‐way comparison operator == Synopsis Declared in `<mrdocs/Metadata/DocComment.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- auto operator<=>(link:#mrdocs-DocComment[DocComment] const& other) const noexcept; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *other* | The right operand |=== The list of text blocks. == Synopsis Declared in `<mrdocs/Metadata/DocComment.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::vector<Polymorphic<doc::Block>> Document; ---- A brief description of the symbol. == Synopsis Declared in `<mrdocs/Metadata/DocComment.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-Optional-03[Optional<doc::BriefBlock>] brief; ---- The list of exceptions. == Synopsis Declared in `<mrdocs/Metadata/DocComment.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::vector<doc::ThrowsBlock> exceptions; ---- The list of parameters. == Synopsis Declared in `<mrdocs/Metadata/DocComment.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::vector<doc::ParamBlock> params; ---- The list of postconditions. == Synopsis Declared in `<mrdocs/Metadata/DocComment.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::vector<doc::PostconditionBlock> postconditions; ---- The list of preconditions. == Synopsis Declared in `<mrdocs/Metadata/DocComment.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::vector<doc::PreconditionBlock> preconditions; ---- The list of "related" references. == Synopsis Declared in `<mrdocs/Metadata/DocComment.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::vector<doc::ReferenceInline> related; ---- == Description These references are the inverse of the relates command. They are calculated automatically by MrDocs and are rendered as Non‐Member Functions. The list of "relates" references. == Synopsis Declared in `<mrdocs/Metadata/DocComment.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::vector<doc::ReferenceInline> relates; ---- == Description These references are created with the relates command. The list of return type descriptions. == Synopsis Declared in `<mrdocs/Metadata/DocComment.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::vector<doc::ReturnsBlock> returns; ---- == Description Multiple return descriptions are allowed. The results are concatenated in the order they appear in the source code. The list of "see also" references. == Synopsis Declared in `<mrdocs/Metadata/DocComment.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::vector<doc::SeeBlock> sees; ---- The list of template parameters. == Synopsis Declared in `<mrdocs/Metadata/DocComment.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::vector<doc::TParamBlock> tparams; ---- Front‐end factory for producing Dom nodes. == Synopsis Declared in `<mrdocs/Metadata/DomCorpus.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- class DomCorpus; ---- == Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-DomCorpus-2constructor[`DomCorpus`] [.small]#[constructor]# | Constructor. | link:#mrdocs-DomCorpus-2destructor[`~DomCorpus`] [.small]#[destructor]# [.small]#[virtual]# | Destructor. | link:#mrdocs-DomCorpus-construct[`construct`] [.small]#[virtual]# | Construct a lazy Dom object representing the specified symbol. | link:#mrdocs-DomCorpus-get[`get`] | Return a Dom object representing the given symbol. | link:#mrdocs-DomCorpus-getCorpus[`getCorpus`] | Returns the Corpus associated with the Dom. | link:#mrdocs-DomCorpus-getDocComment[`getDocComment`] [.small]#[virtual]# | Return a Dom value representing the DocComment. | link:#mrdocs-DomCorpus-operator_star[`operator*`] | Returns the Corpus associated with the Dom. | link:#mrdocs-DomCorpus-operator_ptr[`operator‐>`] | Returns the Corpus associated with the Dom. |=== == Non-Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-getParents-06[`getParents`] | Return a list of the parent symbols of the specified Info. |=== == Description This class keeps a reference to the link:#mrdocs-Corpus[`Corpus`] of extracted metadata, and provides a mechanism for constructing DOM nodes representing the metadata. A link:#mrdocs-Generator[`Generator`] can subclass this object then uses it to create the Dom nodes used as input for rendering template engines. Constructor. == Synopsis Declared in `<mrdocs/Metadata/DomCorpus.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- DomCorpus(link:#mrdocs-Corpus[Corpus] const& corpus); ---- == Description Ownership of the specified Corpus is not transferred; the caller is responsible for ensuring the lifetime extension of the object. == Parameters [cols=2] |=== | Name | Description | *corpus* | The Corpus whose metadata to use. |=== Destructor. == Synopsis Declared in `<mrdocs/Metadata/DomCorpus.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- virtual ~DomCorpus(); ---- Construct a lazy Dom object representing the specified symbol. == Synopsis Declared in `<mrdocs/Metadata/DomCorpus.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- virtual link:#mrdocs-dom-Object[dom::Object] construct(link:#mrdocs-Symbol[Symbol] const& I) const; ---- == Description This function is called internally when a `dom::Object` representing a symbol needs to be constructed because it was not found in the cache. == Return Value A container of key and value pairs. == Parameters [cols=2] |=== | Name | Description | *I* | Base class with common properties of all symbols |=== Return a Dom object representing the given symbol. == Synopsis Declared in `<mrdocs/Metadata/DomCorpus.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-dom-Value[dom::Value] get(link:#mrdocs-SymbolID[SymbolID] const& id) const; ---- == Return Value A value containing the symbol contents, or null if `id` is invalid. == Parameters [cols=2] |=== | Name | Description | *id* | The id of the symbol to return. |=== Returns the Corpus associated with the Dom. == Synopsis Declared in `<mrdocs/Metadata/DomCorpus.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-Corpus[Corpus] const& getCorpus() const; ---- == Return Value the Corpus associated with the Dom. Return a Dom value representing the DocComment. == Synopsis Declared in `<mrdocs/Metadata/DomCorpus.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- virtual link:#mrdocs-dom-Value[dom::Value] getDocComment(link:#mrdocs-DocComment[DocComment] const& jd) const; ---- == Description The default implementation returns null. A link:#mrdocs-Generator[`Generator`] should override this member and return a value that has suitable strings in the generator's output format. == Return Value a Dom value representing the DocComment. == Parameters [cols=2] |=== | Name | Description | *jd* | A processed documentation comment attached to a declaration. |=== Returns the Corpus associated with the Dom. == Synopsis Declared in `<mrdocs/Metadata/DomCorpus.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-Corpus[Corpus] const& operator*() const; ---- == Return Value the Corpus associated with the Dom. Returns the Corpus associated with the Dom. == Synopsis Declared in `<mrdocs/Metadata/DomCorpus.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-Corpus[Corpus] const* operator‐>() const; ---- == Return Value the Corpus associated with the Dom. Info for enum constants. == Synopsis Declared in `<mrdocs/Metadata/Symbol/EnumConstant.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- struct EnumConstantSymbol final : link:#mrdocs-SymbolCommonBase-015[SymbolCommonBase<SymbolKind::EnumConstant>] ---- == Base Classes [cols=2] |=== | Name | Description | `link:#mrdocs-SymbolCommonBase-015[SymbolCommonBase<SymbolKind::EnumConstant>]` | Base class for providing variant discriminator functions. |=== == Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-EnumConstantSymbol-2constructor[`EnumConstantSymbol`] [.small]#[constructor]# | Construct from `SymbolID` | link:#mrdocs-EnumConstantSymbol-operator_3way[`operator<=>`] | Three‐way comparison operator |=== == Static Member Functions [cols=1] |=== | Name | link:#mrdocs-EnumConstantSymbol-isConcept[`isConcept`] | link:#mrdocs-EnumConstantSymbol-isEnum[`isEnum`] | link:#mrdocs-EnumConstantSymbol-isEnumConstant[`isEnumConstant`] | link:#mrdocs-EnumConstantSymbol-isFunction[`isFunction`] | link:#mrdocs-EnumConstantSymbol-isGuide[`isGuide`] | link:#mrdocs-EnumConstantSymbol-isNamespace[`isNamespace`] | link:#mrdocs-EnumConstantSymbol-isNamespaceAlias[`isNamespaceAlias`] | link:#mrdocs-EnumConstantSymbol-isOverloads[`isOverloads`] | link:#mrdocs-EnumConstantSymbol-isRecord[`isRecord`] | link:#mrdocs-EnumConstantSymbol-isTypedef[`isTypedef`] | link:#mrdocs-EnumConstantSymbol-isUsing[`isUsing`] | link:#mrdocs-EnumConstantSymbol-isVariable[`isVariable`] |=== == Data Members [cols=2] |=== | Name | Description | link:#mrdocs-EnumConstantSymbol-Initializer[`Initializer`] | The initializer expression, if any |=== == Static Data Members [cols=1] |=== | Name | link:#mrdocs-EnumConstantSymbol-kind_id[`kind_id`] |=== == Non-Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-merge-00c[`merge`] | Merges two Symbol objects. |=== Construct from `SymbolID` == Synopsis Declared in `<mrdocs/Metadata/Symbol/EnumConstant.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- explicit EnumConstantSymbol(link:#mrdocs-SymbolID[SymbolID] ID) noexcept; ---- == Parameters [cols=2] |=== | Name | Description | *ID* | The object to construct from |=== Three‐way comparison operator == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- auto operator<=>(link:#mrdocs-SymbolCommonBase-015[SymbolCommonBase<mrdocs::SymbolKind::EnumConstant>] const& rhs) const = default; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isConcept() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isEnum() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isEnumConstant() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isFunction() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isGuide() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isNamespace() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isNamespaceAlias() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isOverloads() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isRecord() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isTypedef() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isUsing() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isVariable() noexcept; ---- The initializer expression, if any == Synopsis Declared in `<mrdocs/Metadata/Symbol/EnumConstant.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-ConstantExprInfo[ConstantExprInfo<uint64_t>] Initializer; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static link:#mrdocs-SymbolKind[SymbolKind] kind_id; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/Enum.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- struct EnumSymbol final : link:#mrdocs-SymbolCommonBase-015[SymbolCommonBase<SymbolKind::Enum>] ---- == Base Classes [cols=2] |=== | Name | Description | `link:#mrdocs-SymbolCommonBase-015[SymbolCommonBase<SymbolKind::Enum>]` | Base class for providing variant discriminator functions. |=== == Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-EnumSymbol-2constructor[`EnumSymbol`] [.small]#[constructor]# | Construct from `SymbolID` | link:#mrdocs-EnumSymbol-operator_3way[`operator<=>`] | Three‐way comparison operator |=== == Static Member Functions [cols=1] |=== | Name | link:#mrdocs-EnumSymbol-isConcept[`isConcept`] | link:#mrdocs-EnumSymbol-isEnum[`isEnum`] | link:#mrdocs-EnumSymbol-isEnumConstant[`isEnumConstant`] | link:#mrdocs-EnumSymbol-isFunction[`isFunction`] | link:#mrdocs-EnumSymbol-isGuide[`isGuide`] | link:#mrdocs-EnumSymbol-isNamespace[`isNamespace`] | link:#mrdocs-EnumSymbol-isNamespaceAlias[`isNamespaceAlias`] | link:#mrdocs-EnumSymbol-isOverloads[`isOverloads`] | link:#mrdocs-EnumSymbol-isRecord[`isRecord`] | link:#mrdocs-EnumSymbol-isTypedef[`isTypedef`] | link:#mrdocs-EnumSymbol-isUsing[`isUsing`] | link:#mrdocs-EnumSymbol-isVariable[`isVariable`] |=== == Data Members [cols=2] |=== | Name | Description | link:#mrdocs-EnumSymbol-Constants[`Constants`] | The members of this scope. | link:#mrdocs-EnumSymbol-Scoped[`Scoped`] | Indicates whether this enum is scoped (e.g. enum class). | link:#mrdocs-EnumSymbol-UnderlyingType[`UnderlyingType`] | The underlying type of this enum, if explicitly specified. |=== == Static Data Members [cols=1] |=== | Name | link:#mrdocs-EnumSymbol-kind_id[`kind_id`] |=== == Non-Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-merge-00c[`merge`] | Merges two Symbol objects. |=== Construct from `SymbolID` == Synopsis Declared in `<mrdocs/Metadata/Symbol/Enum.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- explicit EnumSymbol(link:#mrdocs-SymbolID[SymbolID] ID) noexcept; ---- == Parameters [cols=2] |=== | Name | Description | *ID* | The object to construct from |=== Three‐way comparison operator == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- auto operator<=>(link:#mrdocs-SymbolCommonBase-015[SymbolCommonBase<mrdocs::SymbolKind::Enum>] const& rhs) const = default; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isConcept() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isEnum() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isEnumConstant() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isFunction() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isGuide() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isNamespace() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isNamespaceAlias() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isOverloads() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isRecord() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isTypedef() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isUsing() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isVariable() noexcept; ---- The members of this scope. == Synopsis Declared in `<mrdocs/Metadata/Symbol/Enum.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::vector<SymbolID> Constants; ---- == Description All members are enum constants. Enum constants are independent symbol types that can be documented separately. Indicates whether this enum is scoped (e.g. enum class). == Synopsis Declared in `<mrdocs/Metadata/Symbol/Enum.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool Scoped = false; ---- == Description If true, the enumerators are accessed with the scope resolution operator (e.g. EnumName::Enumerator). If false, the enumerators are accessed directly (e.g. Enumerator) in the parent context. The underlying type of this enum, if explicitly specified. == Synopsis Declared in `<mrdocs/Metadata/Symbol/Enum.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-Optional-03[Optional<Polymorphic<Type>>] UnderlyingType = std::nullopt; ---- == Description If not specified, the underlying type is an implementation‐defined integral type that can represent all the enumerator values defined in the enumeration. For `enum Foo : short { ... };` this will be represent `short`. == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static link:#mrdocs-SymbolKind[SymbolKind] kind_id; ---- Holds the description of an error, or success. == Synopsis Declared in `<mrdocs/Support/Error.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- class Error final ---- == Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-Error-2constructor-00[`Error`] [.small]#[constructor]# | Constructor. | link:#mrdocs-Error-operator_assign-0e[`operator=`] | Assignment operators | link:#mrdocs-Error-Throw-0a[`Throw`] | `Throw` overloads | link:#mrdocs-Error-failed[`failed`] | Return true if this holds an error. | link:#mrdocs-Error-location[`location`] | Return the source location. | link:#mrdocs-Error-message[`message`] | Return the error string. | link:#mrdocs-Error-reason[`reason`] | Return the reason string. | link:#mrdocs-Error-swap[`swap`] | | link:#mrdocs-Error-where[`where`] | Return the location string. | link:#mrdocs-Error-2conversion[`operator bool`] | Return true if this holds an error. | link:#mrdocs-Error-operator_eq[`operator==`] | Return true if this equals rhs. |=== == Friends [cols=2] |=== | Name | Description | `link:#mrdocs-swap-0e[mrdocs::swap]` | |=== == Non-Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-formatError[`formatError`] | Return a formatted error. |=== Constructor. == Synopses Declared in `<mrdocs/Support/Error.hpp>` Constructor. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-Error-2constructor-07[Error]() noexcept = default; ---- [.small]#link:#mrdocs-Error-2constructor-07[_» more..._]# Constructor. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-Error-2constructor-01[Error](link:#mrdocs-Error[Error] const& other) = default; ---- [.small]#link:#mrdocs-Error-2constructor-01[_» more..._]# Constructor. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-Error-2constructor-08[Error](link:#mrdocs-Error[Error]&& other) noexcept = default; ---- [.small]#link:#mrdocs-Error-2constructor-08[_» more..._]# Constructor. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- explicit link:#mrdocs-Error-2constructor-0e[Error](std::exception const& ex); ---- [.small]#link:#mrdocs-Error-2constructor-0e[_» more..._]# Constructor. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- explicit link:#mrdocs-Error-2constructor-028[Error]( std::string reason, std::source_location loc = source_location::current()); ---- [.small]#link:#mrdocs-Error-2constructor-028[_» more..._]# Constructor. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- explicit link:#mrdocs-Error-2constructor-02c9[Error]( std::error_code const& ec, std::source_location loc = source_location::current()); ---- [.small]#link:#mrdocs-Error-2constructor-02c9[_» more..._]# Constructor. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-Error-2constructor-02c5[Error]( std::vector<Error> const& errors, std::source_location loc = source_location::current()); ---- [.small]#link:#mrdocs-Error-2constructor-02c5[_» more..._]# == Parameters [cols=2] |=== | Name | Description | *reason* | A string indicating the cause of the failure. This must not be empty. | *loc* | The source location where the error occurred. | *ec* | The error code. | *errors* | The list of errors to combine. |=== Constructor. == Synopsis Declared in `<mrdocs/Support/Error.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr Error() noexcept = default; ---- == Description A default‐constructed error is equivalent to success. Constructor. == Synopsis Declared in `<mrdocs/Support/Error.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr Error(link:#mrdocs-Error[Error] const& other) = default; ---- == Parameters [cols=2] |=== | Name | Description | *other* | The object to copy construct from |=== Constructor. == Synopsis Declared in `<mrdocs/Support/Error.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr Error(link:#mrdocs-Error[Error]&& other) noexcept = default; ---- == Parameters [cols=2] |=== | Name | Description | *other* | The object to move construct from |=== Constructor. == Synopsis Declared in `<mrdocs/Support/Error.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- explicit Error(std::exception const& ex); ---- == Description The constructed object will always indicate a failure, even if the message in the exception is empty. == Parameters [cols=2] |=== | Name | Description | *ex* | The object to copy construct from |=== Constructor. == Synopsis Declared in `<mrdocs/Support/Error.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- explicit Error( std::string reason, std::source_location loc = source_location::current()); ---- == Parameters [cols=2] |=== | Name | Description | *reason* | A string indicating the cause of the failure. This must not be empty. | *loc* | The source location where the error occurred. |=== Constructor. == Synopsis Declared in `<mrdocs/Support/Error.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- explicit Error( std::error_code const& ec, std::source_location loc = source_location::current()); ---- == Parameters [cols=2] |=== | Name | Description | *ec* | The error code. | *loc* | The source location where the error occurred. |=== Constructor. == Synopsis Declared in `<mrdocs/Support/Error.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- Error( std::vector<Error> const& errors, std::source_location loc = source_location::current()); ---- == Description This constructs a new error from a list of zero or more errors. If the list is empty, or if all the errors in the list indicate success, then newly constructed object will indicate success. == Parameters [cols=2] |=== | Name | Description | *errors* | The list of errors to combine. | *loc* | The source location where the error occurred. |=== Assignment operators == Synopses Declared in `<mrdocs/Support/Error.hpp>` Assignment. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-Error[Error]& link:#mrdocs-Error-operator_assign-05[operator=](link:#mrdocs-Error[Error] const& other) = default; ---- [.small]#link:#mrdocs-Error-operator_assign-05[_» more..._]# Constructor. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-Error[Error]& link:#mrdocs-Error-operator_assign-0b[operator=](link:#mrdocs-Error[Error]&& other) noexcept = default; ---- [.small]#link:#mrdocs-Error-operator_assign-0b[_» more..._]# Assignment. == Synopsis Declared in `<mrdocs/Support/Error.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-Error[Error]& operator=(link:#mrdocs-Error[Error] const& other) = default; ---- == Return Value Reference to the current object == Parameters [cols=2] |=== | Name | Description | *other* | The object to copy assign from |=== Constructor. == Synopsis Declared in `<mrdocs/Support/Error.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-Error[Error]& operator=(link:#mrdocs-Error[Error]&& other) noexcept = default; ---- == Return Value Reference to the current object == Parameters [cols=2] |=== | Name | Description | *other* | The object to move assign from |=== `Throw` overloads == Synopses Declared in `<mrdocs/Support/Error.hpp>` Throw Exception(*this) [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- [[noreturn]] void link:#mrdocs-Error-Throw-04[Throw]() const &; ---- [.small]#link:#mrdocs-Error-Throw-04[_» more..._]# Throw Exception(std::move(*this)) [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- [[noreturn]] void link:#mrdocs-Error-Throw-03[Throw]() &&; ---- [.small]#link:#mrdocs-Error-Throw-03[_» more..._]# == Preconditions * this‐>failed() Throw Exception(*this) == Synopsis Declared in `<mrdocs/Support/Error.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- [[noreturn]] void Throw() const &; ---- == Preconditions * this‐>failed() Throw Exception(std::move(*this)) == Synopsis Declared in `<mrdocs/Support/Error.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- [[noreturn]] void Throw() &&; ---- == Preconditions * this‐>failed() Return true if this holds an error. == Synopsis Declared in `<mrdocs/Support/Error.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr bool failed() const noexcept; ---- == Return Value true if this holds an error. Return the source location. == Synopsis Declared in `<mrdocs/Support/Error.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr std::source_location const& location() const noexcept; ---- == Return Value the source location. Return the error string. == Synopsis Declared in `<mrdocs/Support/Error.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr std::string const& message() const noexcept; ---- == Return Value the error string. Return the reason string. == Synopsis Declared in `<mrdocs/Support/Error.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr std::string const& reason() const noexcept; ---- == Return Value the reason string. == Synopsis Declared in `<mrdocs/Support/Error.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr void swap(link:#mrdocs-Error[Error]& rhs) noexcept; ---- Return the location string. == Synopsis Declared in `<mrdocs/Support/Error.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr std::string const& where() const noexcept; ---- == Return Value the location string. Return true if this holds an error. == Synopsis Declared in `<mrdocs/Support/Error.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr explicit operator bool() const noexcept; ---- == Return Value true if this holds an error. Return true if this equals rhs. == Synopsis Declared in `<mrdocs/Support/Error.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr bool operator==(link:#mrdocs-Error[Error] const& rhs) const noexcept; ---- == Return Value true if this equals rhs. == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== Type of all exceptions thrown by the API. == Synopsis Declared in `<mrdocs/Support/Error.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- class Exception final : public std::exception ---- == Base Classes [cols=2] |=== | Name | Description | `std::exception` | |=== == Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-Exception-2constructor[`Exception`] [.small]#[constructor]# | Constructor. | link:#mrdocs-Exception-operator_assign[`operator=`] | | link:#mrdocs-Exception-error[`error`] | Return the Error stored in the exception. | link:#mrdocs-Exception-what[`what`] [.small]#[virtual]# | Return a null‐terminated error string. |=== Constructor. == Synopsis Declared in `<mrdocs/Support/Error.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- explicit Exception(link:#mrdocs-Error[Error] err) noexcept; ---- == Parameters [cols=2] |=== | Name | Description | *err* | The object to construct from |=== == Synopsis Declared in `<__exception/exception.h>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- [[__visibility__, __exclude_from_explicit_instantiation__, __abi_tag__]] constexpr exception& operator=(exception const& value) noexcept = default; ---- Return the Error stored in the exception. == Synopsis Declared in `<mrdocs/Support/Error.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-Error[Error] const& error() const noexcept; ---- == Return Value the Error stored in the exception. Return a null‐terminated error string. == Synopsis Declared in `<mrdocs/Support/Error.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- virtual char const* what() const noexcept override; ---- == Return Value a null‐terminated error string. A set of execution agents for performing concurrent work. == Synopsis Declared in `<mrdocs/Support/ExecutorGroup.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class Agent> class ExecutorGroup : public link:#mrdocs-ExecutorGroupBase[ExecutorGroupBase] ---- == Base Classes [cols=2] |=== | Name | Description | `link:#mrdocs-ExecutorGroupBase[ExecutorGroupBase]` | |=== == Types [cols=1] |=== | Name | link:#mrdocs-ExecutorGroupBase-arg_t[`arg_t`] |=== == Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-ExecutorGroup-2constructor[`ExecutorGroup`] [.small]#[constructor]# | Construct from `ThreadPool` | link:#mrdocs-ExecutorGroup-async[`async`] | Submit work to be executed. | link:#mrdocs-ExecutorGroup-emplace[`emplace`] | Construct a new agent in the group. | link:#mrdocs-ExecutorGroupBase-wait[`wait`] | Block until all work has completed. |=== == Protected Types [cols=1] |=== | Name | link:#mrdocs-ExecutorGroupBase-AnyAgent[`AnyAgent`] | link:#mrdocs-ExecutorGroupBase-Impl[`Impl`] |=== == Protected Member Functions [cols=1] |=== | Name | link:#mrdocs-ExecutorGroupBase-post[`post`] | link:#mrdocs-ExecutorGroupBase-run[`run`] |=== == Protected Data Members [cols=1] |=== | Name | link:#mrdocs-ExecutorGroupBase-agents_[`agents_`] | link:#mrdocs-ExecutorGroupBase-impl_[`impl_`] | link:#mrdocs-ExecutorGroupBase-work_[`work_`] |=== Construct from `ThreadPool` == Synopsis Declared in `<mrdocs/Support/ExecutorGroup.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- explicit ExecutorGroup(link:#mrdocs-ThreadPool[ThreadPool]& threadPool); ---- == Parameters [cols=2] |=== | Name | Description | *threadPool* | The object to copy construct from |=== Submit work to be executed. == Synopsis Declared in `<mrdocs/Support/ExecutorGroup.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< class F, class... Args> void async( F&& f, Args...&&... args); ---- == Description The function object must have this equivalent signature: [,cpp] ---- void( Agent&, Args... ); ---- == Parameters [cols=2] |=== | Name | Description | *f* | The function to invoke. | *args* | Zero or more arguments to forward to the function. |=== Construct a new agent in the group. == Synopsis Declared in `<mrdocs/Support/ExecutorGroup.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class... Args> void emplace(Args...&&... args); ---- == Description The behavior is undefined if there is any outstanding work or busy threads. == Parameters [cols=2] |=== | Name | Description | *args* | Zero or more arguments to forward to the agent constructor. |=== == Synopsis Declared in `<mrdocs/Support/ExecutorGroup.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- class ExecutorGroupBase; ---- == Types [cols=1] |=== | Name | link:#mrdocs-ExecutorGroupBase-arg_t[`arg_t`] |=== == Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-ExecutorGroupBase-2constructor-0d[`ExecutorGroupBase`] [.small]#[constructor]# | Move constructor | link:#mrdocs-ExecutorGroupBase-2destructor[`~ExecutorGroupBase`] [.small]#[destructor]# | Destructor | link:#mrdocs-ExecutorGroupBase-wait[`wait`] | Block until all work has completed. |=== == Protected Types [cols=1] |=== | Name | link:#mrdocs-ExecutorGroupBase-AnyAgent[`AnyAgent`] | link:#mrdocs-ExecutorGroupBase-Impl[`Impl`] |=== == Protected Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-ExecutorGroupBase-2constructor-05[`ExecutorGroupBase`] [.small]#[constructor]# | Construct from `ThreadPool` | link:#mrdocs-ExecutorGroupBase-post[`post`] | | link:#mrdocs-ExecutorGroupBase-run[`run`] | |=== == Protected Data Members [cols=1] |=== | Name | link:#mrdocs-ExecutorGroupBase-agents_[`agents_`] | link:#mrdocs-ExecutorGroupBase-impl_[`impl_`] | link:#mrdocs-ExecutorGroupBase-work_[`work_`] |=== == Derived Classes [cols=2] |=== | Name | Description | link:#mrdocs-ExecutorGroup[`ExecutorGroup`] | A set of execution agents for performing concurrent work. |=== == Synopsis Declared in `<mrdocs/Support/ExecutorGroup.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class T> using arg_t = link:#mrdocs-ThreadPool-arg_t[ThreadPool::arg_t<T>]; ---- Move constructor == Synopsis Declared in `<mrdocs/Support/ExecutorGroup.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- ExecutorGroupBase(link:#mrdocs-ExecutorGroupBase[ExecutorGroupBase]&& other) noexcept; ---- == Parameters [cols=2] |=== | Name | Description | *other* | The object to move construct from |=== Destructor == Synopsis Declared in `<mrdocs/Support/ExecutorGroup.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- ~ExecutorGroupBase(); ---- Block until all work has completed. == Synopsis Declared in `<mrdocs/Support/ExecutorGroup.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- [[nodiscard]] std::vector<Error> wait() noexcept; ---- == Return Value Zero or more errors which were thrown from submitted work. == Synopsis Declared in `<mrdocs/Support/ExecutorGroup.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- struct AnyAgent; ---- == Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-ExecutorGroupBase-AnyAgent-2destructor[`~AnyAgent`] [.small]#[destructor]# [.small]#[virtual]# | Destructor | link:#mrdocs-ExecutorGroupBase-AnyAgent-get[`get`] [.small]#[virtual]# | |=== Destructor == Synopsis Declared in `<mrdocs/Support/ExecutorGroup.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- virtual ~AnyAgent() = 0; ---- == Synopsis Declared in `<mrdocs/Support/ExecutorGroup.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- virtual void* get() noexcept = 0; ---- == Synopsis Declared in `<mrdocs/Support/ExecutorGroup.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- struct Impl; ---- Construct from `ThreadPool` == Synopsis Declared in `<mrdocs/Support/ExecutorGroup.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- explicit ExecutorGroupBase(link:#mrdocs-ThreadPool[ThreadPool]& value); ---- == Parameters [cols=2] |=== | Name | Description | *value* | The object to copy construct from |=== == Synopsis Declared in `<mrdocs/Support/ExecutorGroup.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void post(link:#mrdocs-any_callable-01[any_callable<void(void*)>]); ---- == Synopsis Declared in `<mrdocs/Support/ExecutorGroup.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void run(std::unique_lock<std::mutex>); ---- == Synopsis Declared in `<mrdocs/Support/ExecutorGroup.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::vector<std::unique_ptr<AnyAgent>> agents_; ---- == Synopsis Declared in `<mrdocs/Support/ExecutorGroup.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::unique_ptr<Impl> impl_; ---- == Synopsis Declared in `<mrdocs/Support/ExecutorGroup.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::deque<any_callable<void(void*)>> work_; ---- A container holding an error or a value. == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< class T, class E = link:#mrdocs-Error[Error]> class Expected; ---- == Types [cols=1] |=== | Name | link:#mrdocs-Expected-0a-error_type[`error_type`] | link:#mrdocs-Expected-0a-rebind[`rebind`] | link:#mrdocs-Expected-0a-unexpected_type[`unexpected_type`] | link:#mrdocs-Expected-0a-value_type[`value_type`] |=== == Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-Expected-0a-2constructor-035[`Expected`] [.small]#[constructor]# | Constructors | link:#mrdocs-Expected-0a-2destructor-0c[`~Expected`] [.small]#[destructor]# | Destructors | link:#mrdocs-Expected-0a-operator_assign-0d[`operator=`] [.small]#[deleted]# | Assignment operators | link:#mrdocs-Expected-0a-and_then-05[`and_then`] | | link:#mrdocs-Expected-0a-emplace-07[`emplace`] | | link:#mrdocs-Expected-0a-error-022[`error`] | | link:#mrdocs-Expected-0a-error_or-04[`error_or`] | | link:#mrdocs-Expected-0a-has_value[`has_value`] | | link:#mrdocs-Expected-0a-operator_star-06b2[`operator*`] | Dereference operators | link:#mrdocs-Expected-0a-operator_ptr-0c[`operator‐>`] | Member access operators | link:#mrdocs-Expected-0a-or_else-0d[`or_else`] | | link:#mrdocs-Expected-0a-swap[`swap`] | | link:#mrdocs-Expected-0a-transform-01[`transform`] | | link:#mrdocs-Expected-0a-transform_error-0e[`transform_error`] | | link:#mrdocs-Expected-0a-value-04[`value`] | | link:#mrdocs-Expected-0a-value_or-0c[`value_or`] | | link:#mrdocs-Expected-0a-2conversion[`operator bool`] | Conversion to `bool` |=== == Data Members [cols=1] |=== | Name | link:#mrdocs-Expected-0a-unex_[`unex_`] [.small]#[variant member]# | link:#mrdocs-Expected-0a-val_[`val_`] [.small]#[variant member]# |=== == Friends [cols=2] |=== | Name | Description | `link:#mrdocs-swap-03[mrdocs::swap]` | | `link:#mrdocs-operator_eq-066[mrdocs::operator==]` | Equality operator | `link:#mrdocs-operator_eq-03[mrdocs::operator==]` | Equality operator | `link:#mrdocs-operator_eq-09e[mrdocs::operator==]` | Equality operator | `mrdocs::Expected` | A container holding an error or a value. |=== == Non-Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-forEachFile-0c[`forEachFile`] | Call a function for each file in a directory. | link:#mrdocs-forEachFile-0d[`forEachFile`] | Visit each file in a directory. | link:#mrdocs-getSinglePageFullPath[`getSinglePageFullPath`] | Return the full path for single page output. | link:#mrdocs-parse-09[`parse`] | Parse a string view | link:#mrdocs-files-createDirectory[`files::createDirectory`] | Create a directory. | link:#mrdocs-files-getFileText[`files::getFileText`] | Return the contents of a file as a string. | link:#mrdocs-files-getFileType[`files::getFileType`] | Return the file type or an error | link:#mrdocs-files-makeAbsolute-0c6[`files::makeAbsolute`] | Return an absolute path from a possibly relative path. | link:#mrdocs-files-requireAbsolute[`files::requireAbsolute`] | Return an error if pathName is not absolute. | link:#mrdocs-files-requireDirectory[`files::requireDirectory`] | Return an error if the path is not a directory. | link:#mrdocs-js-registerHelper[`js::registerHelper`] | Register a JavaScript helper function |=== == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- using error_type = E; ---- == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class U> using rebind = link:#mrdocs-Expected-0a[Expected<U, error_type>]; ---- == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- using unexpected_type = link:#mrdocs-Unexpected-0c[Unexpected<E>]; ---- == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- using value_type = T; ---- Constructors == Synopses Declared in `<mrdocs/Support/Expected.hpp>` Default constructor [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-Expected-0a-2constructor-0e[Expected]() noexcept(std::is_nothrow_default_constructible_v<T>) requires std::is_default_constructible_v<T>; ---- [.small]#link:#mrdocs-Expected-0a-2constructor-0e[_» more..._]# Copy constructor [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-Expected-0a-2constructor-0a5[Expected](link:#mrdocs-Expected-0a[Expected] const& other) = default; ---- [.small]#link:#mrdocs-Expected-0a-2constructor-0a5[_» more..._]# Copy constructor [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-Expected-0a-2constructor-05c[Expected](link:#mrdocs-Expected-0a[Expected] const& x) noexcept(std::is_nothrow_copy_constructible_v<T> && std::is_nothrow_copy_constructible_v<E>) requires std::is_copy_constructible_v<T> && std::is_copy_constructible_v<E> && (!std::is_trivially_copy_constructible_v<T> || !std::is_trivially_copy_constructible_v<E>); ---- [.small]#link:#mrdocs-Expected-0a-2constructor-05c[_» more..._]# Copy constructor [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< class U, class G> requires std::is_constructible_v<T, U const&> && std::is_constructible_v<E, G const&> && (!constructible_from_expected<U, G>) constexpr explicit(explicit_conv<const U &, const G &>) link:#mrdocs-Expected-0a-2constructor-053[Expected](link:#mrdocs-Expected-0a[Expected<U, G>] const& x) noexcept(std::is_nothrow_constructible_v<T, const U &> && std::is_nothrow_constructible_v<E, const G &>); ---- [.small]#link:#mrdocs-Expected-0a-2constructor-053[_» more..._]# Move constructor [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-Expected-0a-2constructor-038[Expected](link:#mrdocs-Expected-0a[Expected]&& other) = default; ---- [.small]#link:#mrdocs-Expected-0a-2constructor-038[_» more..._]# Move constructor [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-Expected-0a-2constructor-06[Expected](link:#mrdocs-Expected-0a[Expected]&& x) noexcept(std::is_nothrow_move_constructible_v<T> && std::is_nothrow_move_constructible_v<E>) requires std::is_move_constructible_v<T> && std::is_move_constructible_v<E> && (!std::is_trivially_move_constructible_v<T> || !std::is_trivially_move_constructible_v<E>); ---- [.small]#link:#mrdocs-Expected-0a-2constructor-06[_» more..._]# Move constructor [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< class U, class G> requires std::is_constructible_v<T, U> && std::is_constructible_v<E, G> && (!constructible_from_expected<U, G>) constexpr explicit(explicit_conv<U, G>) link:#mrdocs-Expected-0a-2constructor-09[Expected](link:#mrdocs-Expected-0a[Expected<U, G>]&& x) noexcept(std::is_nothrow_constructible_v<T, U> && std::is_nothrow_constructible_v<E, G>); ---- [.small]#link:#mrdocs-Expected-0a-2constructor-09[_» more..._]# Construct from `Unexpected` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class G = E> requires std::is_constructible_v<E, G const&> constexpr explicit(!std::is_convertible_v<const G &, E>) link:#mrdocs-Expected-0a-2constructor-052[Expected](link:#mrdocs-Unexpected-0c[Unexpected<G>] const& u) noexcept(std::is_nothrow_constructible_v<E, const G &>); ---- [.small]#link:#mrdocs-Expected-0a-2constructor-052[_» more..._]# Construct from `U` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class U = T> requires (!std::is_same_v<std::remove_cvref_t<U>, Expected>) && (!std::is_same_v<std::remove_cvref_t<U>, std::in_place_t>) && (!detail::isUnexpected<std::remove_cvref_t<U>>) && std::is_constructible_v<T, U> constexpr explicit(!std::is_convertible_v<U, T>) link:#mrdocs-Expected-0a-2constructor-0b[Expected](U&& v) noexcept(std::is_nothrow_constructible_v<T, U>); ---- [.small]#link:#mrdocs-Expected-0a-2constructor-0b[_» more..._]# Construct from `Unexpected` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class G = E> requires std::is_constructible_v<E, G> constexpr explicit(!std::is_convertible_v<G, E>) link:#mrdocs-Expected-0a-2constructor-00[Expected](link:#mrdocs-Unexpected-0c[Unexpected<G>]&& u) noexcept(std::is_nothrow_constructible_v<E, G>); ---- [.small]#link:#mrdocs-Expected-0a-2constructor-00[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class... Args> requires std::is_constructible_v<T, Args...> constexpr explicit link:#mrdocs-Expected-0a-2constructor-01b[Expected]( std::in_place_t, Args...&&... args) noexcept(std::is_nothrow_constructible_v<T, Args...>); ---- [.small]#link:#mrdocs-Expected-0a-2constructor-01b[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class... Args> requires std::is_constructible_v<E, Args...> constexpr explicit link:#mrdocs-Expected-0a-2constructor-07[Expected]( link:#mrdocs-unexpect_t[unexpect_t], Args...&&... args) noexcept(std::is_nothrow_constructible_v<E, Args...>); ---- [.small]#link:#mrdocs-Expected-0a-2constructor-07[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< class U, class... Args> requires std::is_constructible_v<T, std::initializer_list<U>&, Args...> constexpr explicit link:#mrdocs-Expected-0a-2constructor-0a9[Expected]( std::in_place_t, std::initializer_list<U> il, Args...&&... args) noexcept(std::is_nothrow_constructible_v<T, std::initializer_list<U> &, Args...>); ---- [.small]#link:#mrdocs-Expected-0a-2constructor-0a9[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< class U, class... Args> requires std::is_constructible_v<E, std::initializer_list<U>&, Args...> constexpr explicit link:#mrdocs-Expected-0a-2constructor-01d[Expected]( link:#mrdocs-unexpect_t[unexpect_t], std::initializer_list<U> il, Args...&&... args) noexcept(std::is_nothrow_constructible_v<E, std::initializer_list<U> &, Args...>); ---- [.small]#link:#mrdocs-Expected-0a-2constructor-01d[_» more..._]# Default constructor == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr Expected() noexcept(std::is_nothrow_default_constructible_v<T>) requires std::is_default_constructible_v<T>; ---- Copy constructor == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- Expected(link:#mrdocs-Expected-0a[Expected] const& other) = default; ---- == Parameters [cols=2] |=== | Name | Description | *other* | The object to copy construct from |=== Copy constructor == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr Expected(link:#mrdocs-Expected-0a[Expected] const& x) noexcept(std::is_nothrow_copy_constructible_v<T> && std::is_nothrow_copy_constructible_v<E>) requires std::is_copy_constructible_v<T> && std::is_copy_constructible_v<E> && (!std::is_trivially_copy_constructible_v<T> || !std::is_trivially_copy_constructible_v<E>); ---- == Parameters [cols=2] |=== | Name | Description | *x* | The object to copy construct from |=== Copy constructor == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< class U, class G> requires std::is_constructible_v<T, U const&> && std::is_constructible_v<E, G const&> && (!constructible_from_expected<U, G>) constexpr explicit(explicit_conv<const U &, const G &>) Expected(link:#mrdocs-Expected-0a[Expected<U, G>] const& x) noexcept(std::is_nothrow_constructible_v<T, const U &> && std::is_nothrow_constructible_v<E, const G &>); ---- == Parameters [cols=2] |=== | Name | Description | *x* | The object to copy construct from |=== Move constructor == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- Expected(link:#mrdocs-Expected-0a[Expected]&& other) = default; ---- == Parameters [cols=2] |=== | Name | Description | *other* | The object to move construct from |=== Move constructor == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr Expected(link:#mrdocs-Expected-0a[Expected]&& x) noexcept(std::is_nothrow_move_constructible_v<T> && std::is_nothrow_move_constructible_v<E>) requires std::is_move_constructible_v<T> && std::is_move_constructible_v<E> && (!std::is_trivially_move_constructible_v<T> || !std::is_trivially_move_constructible_v<E>); ---- == Parameters [cols=2] |=== | Name | Description | *x* | The object to move construct from |=== Move constructor == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< class U, class G> requires std::is_constructible_v<T, U> && std::is_constructible_v<E, G> && (!constructible_from_expected<U, G>) constexpr explicit(explicit_conv<U, G>) Expected(link:#mrdocs-Expected-0a[Expected<U, G>]&& x) noexcept(std::is_nothrow_constructible_v<T, U> && std::is_nothrow_constructible_v<E, G>); ---- == Parameters [cols=2] |=== | Name | Description | *x* | The object to move construct from |=== Construct from `Unexpected` == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class G = E> requires std::is_constructible_v<E, G const&> constexpr explicit(!std::is_convertible_v<const G &, E>) Expected(link:#mrdocs-Unexpected-0c[Unexpected<G>] const& u) noexcept(std::is_nothrow_constructible_v<E, const G &>); ---- == Parameters [cols=2] |=== | Name | Description | *u* | The object to copy construct from |=== Construct from `U` == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class U = T> requires (!std::is_same_v<std::remove_cvref_t<U>, Expected>) && (!std::is_same_v<std::remove_cvref_t<U>, std::in_place_t>) && (!detail::isUnexpected<std::remove_cvref_t<U>>) && std::is_constructible_v<T, U> constexpr explicit(!std::is_convertible_v<U, T>) Expected(U&& v) noexcept(std::is_nothrow_constructible_v<T, U>); ---- == Parameters [cols=2] |=== | Name | Description | *v* | The object to move construct from |=== Construct from `Unexpected` == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class G = E> requires std::is_constructible_v<E, G> constexpr explicit(!std::is_convertible_v<G, E>) Expected(link:#mrdocs-Unexpected-0c[Unexpected<G>]&& u) noexcept(std::is_nothrow_constructible_v<E, G>); ---- == Parameters [cols=2] |=== | Name | Description | *u* | The object to move construct from |=== == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class... Args> requires std::is_constructible_v<T, Args...> constexpr explicit Expected( std::in_place_t, Args...&&... args) noexcept(std::is_nothrow_constructible_v<T, Args...>); ---- == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class... Args> requires std::is_constructible_v<E, Args...> constexpr explicit Expected( link:#mrdocs-unexpect_t[unexpect_t], Args...&&... args) noexcept(std::is_nothrow_constructible_v<E, Args...>); ---- == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< class U, class... Args> requires std::is_constructible_v<T, std::initializer_list<U>&, Args...> constexpr explicit Expected( std::in_place_t, std::initializer_list<U> il, Args...&&... args) noexcept(std::is_nothrow_constructible_v<T, std::initializer_list<U> &, Args...>); ---- == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< class U, class... Args> requires std::is_constructible_v<E, std::initializer_list<U>&, Args...> constexpr explicit Expected( link:#mrdocs-unexpect_t[unexpect_t], std::initializer_list<U> il, Args...&&... args) noexcept(std::is_nothrow_constructible_v<E, std::initializer_list<U> &, Args...>); ---- Destructors == Synopses Declared in `<mrdocs/Support/Expected.hpp>` Destructor [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-Expected-0a-2destructor-04[~Expected]() = default; ---- [.small]#link:#mrdocs-Expected-0a-2destructor-04[_» more..._]# Destructor [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-Expected-0a-2destructor-0e[~Expected]() requires (!std::is_trivially_destructible_v<T>) || (!std::is_trivially_destructible_v<E>); ---- [.small]#link:#mrdocs-Expected-0a-2destructor-0e[_» more..._]# Destructor == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr ~Expected() = default; ---- Destructor == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr ~Expected() requires (!std::is_trivially_destructible_v<T>) || (!std::is_trivially_destructible_v<E>); ---- Assignment operators == Synopses Declared in `<mrdocs/Support/Expected.hpp>` Copy assignment operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-Expected-0a[Expected]& link:#mrdocs-Expected-0a-operator_assign-0f[operator=](link:#mrdocs-Expected-0a[Expected] const& other) = delete; ---- [.small]#link:#mrdocs-Expected-0a-operator_assign-0f[_» more..._]# Copy assignment operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-Expected-0a[Expected]& link:#mrdocs-Expected-0a-operator_assign-09[operator=](link:#mrdocs-Expected-0a[Expected] const& x) noexcept(std::is_nothrow_copy_constructible_v<T> && std::is_nothrow_copy_constructible_v<E> && std::is_nothrow_copy_assignable_v<T> && std::is_nothrow_copy_assignable_v<E>) requires std::is_copy_assignable_v<T> && std::is_copy_constructible_v<T> && std::is_copy_assignable_v<E> && std::is_copy_constructible_v<E> && (std::is_nothrow_move_constructible_v<T> || std::is_nothrow_move_constructible_v<E>); ---- [.small]#link:#mrdocs-Expected-0a-operator_assign-09[_» more..._]# Move assignment operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-Expected-0a[Expected]& link:#mrdocs-Expected-0a-operator_assign-0e[operator=](link:#mrdocs-Expected-0a[Expected]&& x) noexcept(std::is_nothrow_move_constructible_v<T> && std::is_nothrow_move_constructible_v<E> && std::is_nothrow_move_assignable_v<T> && std::is_nothrow_move_assignable_v<E>) requires std::is_move_assignable_v<T> && std::is_move_constructible_v<T> && std::is_move_assignable_v<E> && std::is_move_constructible_v<E> && (std::is_nothrow_move_constructible_v<T> || std::is_nothrow_move_constructible_v<E>); ---- [.small]#link:#mrdocs-Expected-0a-operator_assign-0e[_» more..._]# Assignment operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class G> requires std::is_constructible_v<E, G const&> && std::is_assignable_v<E&, G const&> && (std::is_nothrow_constructible_v<E, G const&> || std::is_nothrow_move_constructible_v<T> || std::is_nothrow_move_constructible_v<E>) constexpr link:#mrdocs-Expected-0a[Expected]& link:#mrdocs-Expected-0a-operator_assign-00[operator=](link:#mrdocs-Unexpected-0c[Unexpected<G>] const& e); ---- [.small]#link:#mrdocs-Expected-0a-operator_assign-00[_» more..._]# Assignment operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class U = T> requires (!std::is_same_v<Expected, std::remove_cvref_t<U>>) && (!detail::isUnexpected<std::remove_cvref_t<U>>) && std::is_constructible_v<T, U> && std::is_assignable_v<T&, U> && (std::is_nothrow_constructible_v<T, U> || std::is_nothrow_move_constructible_v<T> || std::is_nothrow_move_constructible_v<E>) constexpr link:#mrdocs-Expected-0a[Expected]& link:#mrdocs-Expected-0a-operator_assign-04[operator=](U&& v); ---- [.small]#link:#mrdocs-Expected-0a-operator_assign-04[_» more..._]# Assignment operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class G> requires std::is_constructible_v<E, G> && std::is_assignable_v<E&, G> && (std::is_nothrow_constructible_v<E, G> || std::is_nothrow_move_constructible_v<T> || std::is_nothrow_move_constructible_v<E>) constexpr link:#mrdocs-Expected-0a[Expected]& link:#mrdocs-Expected-0a-operator_assign-03[operator=](link:#mrdocs-Unexpected-0c[Unexpected<G>]&& e); ---- [.small]#link:#mrdocs-Expected-0a-operator_assign-03[_» more..._]# Copy assignment operator == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-Expected-0a[Expected]& operator=(link:#mrdocs-Expected-0a[Expected] const& other) = delete; ---- == Return Value Reference to the current object == Parameters [cols=2] |=== | Name | Description | *other* | The object to copy assign from |=== Copy assignment operator == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-Expected-0a[Expected]& operator=(link:#mrdocs-Expected-0a[Expected] const& x) noexcept(std::is_nothrow_copy_constructible_v<T> && std::is_nothrow_copy_constructible_v<E> && std::is_nothrow_copy_assignable_v<T> && std::is_nothrow_copy_assignable_v<E>) requires std::is_copy_assignable_v<T> && std::is_copy_constructible_v<T> && std::is_copy_assignable_v<E> && std::is_copy_constructible_v<E> && (std::is_nothrow_move_constructible_v<T> || std::is_nothrow_move_constructible_v<E>); ---- == Return Value Reference to the current object == Parameters [cols=2] |=== | Name | Description | *x* | The object to copy assign from |=== Move assignment operator == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-Expected-0a[Expected]& operator=(link:#mrdocs-Expected-0a[Expected]&& x) noexcept(std::is_nothrow_move_constructible_v<T> && std::is_nothrow_move_constructible_v<E> && std::is_nothrow_move_assignable_v<T> && std::is_nothrow_move_assignable_v<E>) requires std::is_move_assignable_v<T> && std::is_move_constructible_v<T> && std::is_move_assignable_v<E> && std::is_move_constructible_v<E> && (std::is_nothrow_move_constructible_v<T> || std::is_nothrow_move_constructible_v<E>); ---- == Return Value Reference to the current object == Parameters [cols=2] |=== | Name | Description | *x* | The object to move assign from |=== Assignment operator == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class G> requires std::is_constructible_v<E, G const&> && std::is_assignable_v<E&, G const&> && (std::is_nothrow_constructible_v<E, G const&> || std::is_nothrow_move_constructible_v<T> || std::is_nothrow_move_constructible_v<E>) constexpr link:#mrdocs-Expected-0a[Expected]& operator=(link:#mrdocs-Unexpected-0c[Unexpected<G>] const& e); ---- == Return Value Reference to the current object == Parameters [cols=2] |=== | Name | Description | *e* | The object to copy assign from |=== Assignment operator == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class U = T> requires (!std::is_same_v<Expected, std::remove_cvref_t<U>>) && (!detail::isUnexpected<std::remove_cvref_t<U>>) && std::is_constructible_v<T, U> && std::is_assignable_v<T&, U> && (std::is_nothrow_constructible_v<T, U> || std::is_nothrow_move_constructible_v<T> || std::is_nothrow_move_constructible_v<E>) constexpr link:#mrdocs-Expected-0a[Expected]& operator=(U&& v); ---- == Return Value Reference to the current object == Parameters [cols=2] |=== | Name | Description | *v* | The object to move assign from |=== Assignment operator == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class G> requires std::is_constructible_v<E, G> && std::is_assignable_v<E&, G> && (std::is_nothrow_constructible_v<E, G> || std::is_nothrow_move_constructible_v<T> || std::is_nothrow_move_constructible_v<E>) constexpr link:#mrdocs-Expected-0a[Expected]& operator=(link:#mrdocs-Unexpected-0c[Unexpected<G>]&& e); ---- == Return Value Reference to the current object == Parameters [cols=2] |=== | Name | Description | *e* | The object to move assign from |=== == Synopses Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class Fn> requires std::is_constructible_v<E, E&> constexpr auto link:#mrdocs-Expected-0a-and_then-08[and_then](Fn&& f) &; ---- [.small]#link:#mrdocs-Expected-0a-and_then-08[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class Fn> requires std::is_constructible_v<E, E const&> constexpr auto link:#mrdocs-Expected-0a-and_then-0d[and_then](Fn&& f) const &; ---- [.small]#link:#mrdocs-Expected-0a-and_then-0d[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class Fn> requires std::is_constructible_v<E, E> constexpr auto link:#mrdocs-Expected-0a-and_then-07[and_then](Fn&& f) &&; ---- [.small]#link:#mrdocs-Expected-0a-and_then-07[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class Fn> requires std::is_constructible_v<E, const E> constexpr auto link:#mrdocs-Expected-0a-and_then-06[and_then](Fn&& f) const &&; ---- [.small]#link:#mrdocs-Expected-0a-and_then-06[_» more..._]# == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class Fn> requires std::is_constructible_v<E, E&> constexpr auto and_then(Fn&& f) &; ---- == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class Fn> requires std::is_constructible_v<E, E const&> constexpr auto and_then(Fn&& f) const &; ---- == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class Fn> requires std::is_constructible_v<E, E> constexpr auto and_then(Fn&& f) &&; ---- == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class Fn> requires std::is_constructible_v<E, const E> constexpr auto and_then(Fn&& f) const &&; ---- == Synopses Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class... Args> requires std::is_nothrow_constructible_v<T, Args...> constexpr T& link:#mrdocs-Expected-0a-emplace-0d[emplace](Args...&&... args) noexcept; ---- [.small]#link:#mrdocs-Expected-0a-emplace-0d[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< class U, class... Args> requires std::is_nothrow_constructible_v< T, std::initializer_list<U>&, Args...> constexpr T& link:#mrdocs-Expected-0a-emplace-0f[emplace]( std::initializer_list<U> il, Args...&&... args) noexcept; ---- [.small]#link:#mrdocs-Expected-0a-emplace-0f[_» more..._]# == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class... Args> requires std::is_nothrow_constructible_v<T, Args...> constexpr T& emplace(Args...&&... args) noexcept; ---- == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< class U, class... Args> requires std::is_nothrow_constructible_v< T, std::initializer_list<U>&, Args...> constexpr T& emplace( std::initializer_list<U> il, Args...&&... args) noexcept; ---- == Synopses Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr E const& link:#mrdocs-Expected-0a-error-03[error]() const & noexcept; ---- [.small]#link:#mrdocs-Expected-0a-error-03[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr E& link:#mrdocs-Expected-0a-error-0c[error]() & noexcept; ---- [.small]#link:#mrdocs-Expected-0a-error-0c[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr E const&& link:#mrdocs-Expected-0a-error-07[error]() const && noexcept; ---- [.small]#link:#mrdocs-Expected-0a-error-07[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr E&& link:#mrdocs-Expected-0a-error-02a[error]() && noexcept; ---- [.small]#link:#mrdocs-Expected-0a-error-02a[_» more..._]# == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr E const& error() const & noexcept; ---- == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr E& error() & noexcept; ---- == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr E const&& error() const && noexcept; ---- == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr E&& error() && noexcept; ---- == Synopses Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class G = E> constexpr E link:#mrdocs-Expected-0a-error_or-0e[error_or](G&& e) const &; ---- [.small]#link:#mrdocs-Expected-0a-error_or-0e[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class G = E> constexpr E link:#mrdocs-Expected-0a-error_or-0f[error_or](G&& e) &&; ---- [.small]#link:#mrdocs-Expected-0a-error_or-0f[_» more..._]# == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class G = E> constexpr E error_or(G&& e) const &; ---- == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class G = E> constexpr E error_or(G&& e) &&; ---- == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- [[nodiscard]] constexpr bool has_value() const noexcept; ---- Dereference operators == Synopses Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- [[nodiscard]] constexpr T const& link:#mrdocs-Expected-0a-operator_star-0b[operator*]() const & noexcept; ---- [.small]#link:#mrdocs-Expected-0a-operator_star-0b[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- [[nodiscard]] constexpr T& link:#mrdocs-Expected-0a-operator_star-07[operator*]() & noexcept; ---- [.small]#link:#mrdocs-Expected-0a-operator_star-07[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- [[nodiscard]] constexpr T const&& link:#mrdocs-Expected-0a-operator_star-0d[operator*]() const && noexcept; ---- [.small]#link:#mrdocs-Expected-0a-operator_star-0d[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- [[nodiscard]] constexpr T&& link:#mrdocs-Expected-0a-operator_star-06b1[operator*]() && noexcept; ---- [.small]#link:#mrdocs-Expected-0a-operator_star-06b1[_» more..._]# == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- [[nodiscard]] constexpr T const& operator*() const & noexcept; ---- == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- [[nodiscard]] constexpr T& operator*() & noexcept; ---- == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- [[nodiscard]] constexpr T const&& operator*() const && noexcept; ---- == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- [[nodiscard]] constexpr T&& operator*() && noexcept; ---- Member access operators == Synopses Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- [[nodiscard]] constexpr T const* link:#mrdocs-Expected-0a-operator_ptr-04[operator‐>]() const noexcept; ---- [.small]#link:#mrdocs-Expected-0a-operator_ptr-04[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- [[nodiscard]] constexpr T* link:#mrdocs-Expected-0a-operator_ptr-00[operator‐>]() noexcept; ---- [.small]#link:#mrdocs-Expected-0a-operator_ptr-00[_» more..._]# == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- [[nodiscard]] constexpr T const* operator‐>() const noexcept; ---- == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- [[nodiscard]] constexpr T* operator‐>() noexcept; ---- == Synopses Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class Fn> requires std::is_constructible_v<T, T&> constexpr auto link:#mrdocs-Expected-0a-or_else-09[or_else](Fn&& f) &; ---- [.small]#link:#mrdocs-Expected-0a-or_else-09[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class Fn> requires std::is_constructible_v<T, T const&> constexpr auto link:#mrdocs-Expected-0a-or_else-08[or_else](Fn&& f) const &; ---- [.small]#link:#mrdocs-Expected-0a-or_else-08[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class Fn> requires std::is_constructible_v<T, T> constexpr auto link:#mrdocs-Expected-0a-or_else-0a[or_else](Fn&& f) &&; ---- [.small]#link:#mrdocs-Expected-0a-or_else-0a[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class Fn> requires std::is_constructible_v<T, const T> constexpr auto link:#mrdocs-Expected-0a-or_else-01[or_else](Fn&& f) const &&; ---- [.small]#link:#mrdocs-Expected-0a-or_else-01[_» more..._]# == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class Fn> requires std::is_constructible_v<T, T&> constexpr auto or_else(Fn&& f) &; ---- == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class Fn> requires std::is_constructible_v<T, T const&> constexpr auto or_else(Fn&& f) const &; ---- == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class Fn> requires std::is_constructible_v<T, T> constexpr auto or_else(Fn&& f) &&; ---- == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class Fn> requires std::is_constructible_v<T, const T> constexpr auto or_else(Fn&& f) const &&; ---- == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr void swap(link:#mrdocs-Expected-0a[Expected]& x) noexcept(std::is_nothrow_move_constructible_v<T> && std::is_nothrow_move_constructible_v<E> && std::is_nothrow_swappable_v<T &> && std::is_nothrow_swappable_v<E &>) requires std::is_swappable_v<T> && std::is_swappable_v<E> && std::is_move_constructible_v<T> && std::is_move_constructible_v<E> && (std::is_nothrow_move_constructible_v<T> || std::is_nothrow_move_constructible_v<E>); ---- == Synopses Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class Fn> requires std::is_constructible_v<E, E&> constexpr auto link:#mrdocs-Expected-0a-transform-0f[transform](Fn&& f) &; ---- [.small]#link:#mrdocs-Expected-0a-transform-0f[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class Fn> requires std::is_constructible_v<E, E const&> constexpr auto link:#mrdocs-Expected-0a-transform-00[transform](Fn&& f) const &; ---- [.small]#link:#mrdocs-Expected-0a-transform-00[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class Fn> requires std::is_constructible_v<E, E> constexpr auto link:#mrdocs-Expected-0a-transform-0c[transform](Fn&& f) &&; ---- [.small]#link:#mrdocs-Expected-0a-transform-0c[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class Fn> requires std::is_constructible_v<E, const E> constexpr auto link:#mrdocs-Expected-0a-transform-08[transform](Fn&& f) const &&; ---- [.small]#link:#mrdocs-Expected-0a-transform-08[_» more..._]# == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class Fn> requires std::is_constructible_v<E, E&> constexpr auto transform(Fn&& f) &; ---- == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class Fn> requires std::is_constructible_v<E, E const&> constexpr auto transform(Fn&& f) const &; ---- == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class Fn> requires std::is_constructible_v<E, E> constexpr auto transform(Fn&& f) &&; ---- == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class Fn> requires std::is_constructible_v<E, const E> constexpr auto transform(Fn&& f) const &&; ---- == Synopses Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class Fn> requires std::is_constructible_v<T, T&> constexpr auto link:#mrdocs-Expected-0a-transform_error-09[transform_error](Fn&& f) &; ---- [.small]#link:#mrdocs-Expected-0a-transform_error-09[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class Fn> requires std::is_constructible_v<T, T const&> constexpr auto link:#mrdocs-Expected-0a-transform_error-05[transform_error](Fn&& f) const &; ---- [.small]#link:#mrdocs-Expected-0a-transform_error-05[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class Fn> requires std::is_constructible_v<T, T> constexpr auto link:#mrdocs-Expected-0a-transform_error-03[transform_error](Fn&& f) &&; ---- [.small]#link:#mrdocs-Expected-0a-transform_error-03[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class Fn> requires std::is_constructible_v<T, const T> constexpr auto link:#mrdocs-Expected-0a-transform_error-01[transform_error](Fn&& f) const &&; ---- [.small]#link:#mrdocs-Expected-0a-transform_error-01[_» more..._]# == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class Fn> requires std::is_constructible_v<T, T&> constexpr auto transform_error(Fn&& f) &; ---- == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class Fn> requires std::is_constructible_v<T, T const&> constexpr auto transform_error(Fn&& f) const &; ---- == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class Fn> requires std::is_constructible_v<T, T> constexpr auto transform_error(Fn&& f) &&; ---- == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class Fn> requires std::is_constructible_v<T, const T> constexpr auto transform_error(Fn&& f) const &&; ---- == Synopses Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr T const& link:#mrdocs-Expected-0a-value-0c[value]() const &; ---- [.small]#link:#mrdocs-Expected-0a-value-0c[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr T& link:#mrdocs-Expected-0a-value-0d[value]() &; ---- [.small]#link:#mrdocs-Expected-0a-value-0d[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr T const&& link:#mrdocs-Expected-0a-value-0a[value]() const &&; ---- [.small]#link:#mrdocs-Expected-0a-value-0a[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr T&& link:#mrdocs-Expected-0a-value-0e[value]() &&; ---- [.small]#link:#mrdocs-Expected-0a-value-0e[_» more..._]# == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr T const& value() const &; ---- == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr T& value() &; ---- == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr T const&& value() const &&; ---- == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr T&& value() &&; ---- == Synopses Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class U> constexpr T link:#mrdocs-Expected-0a-value_or-07[value_or](U&& v) const & noexcept(std::is_nothrow_copy_constructible_v<T> && std::is_nothrow_convertible_v<U, T>); ---- [.small]#link:#mrdocs-Expected-0a-value_or-07[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class U> constexpr T link:#mrdocs-Expected-0a-value_or-00[value_or](U&& v) && noexcept(std::is_nothrow_move_constructible_v<T> && std::is_nothrow_convertible_v<U, T>); ---- [.small]#link:#mrdocs-Expected-0a-value_or-00[_» more..._]# == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class U> constexpr T value_or(U&& v) const & noexcept(std::is_nothrow_copy_constructible_v<T> && std::is_nothrow_convertible_v<U, T>); ---- == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class U> constexpr T value_or(U&& v) && noexcept(std::is_nothrow_move_constructible_v<T> && std::is_nothrow_convertible_v<U, T>); ---- Conversion to `bool` == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- [[nodiscard]] constexpr explicit operator bool() const noexcept; ---- == Return Value The object converted to `bool` == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- E unex_; ---- == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- T val_; ---- == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< class T, class E> requires std::is_void_v<T> class link:#mrdocs-Expected-0a[Expected]<T, E>; ---- == Types [cols=1] |=== | Name | link:#mrdocs-Expected-0f-_01record[`Unnamed struct`] | link:#mrdocs-Expected-0f-error_type[`error_type`] | link:#mrdocs-Expected-0f-rebind[`rebind`] | link:#mrdocs-Expected-0f-unexpected_type[`unexpected_type`] | link:#mrdocs-Expected-0f-value_type[`value_type`] |=== == Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-Expected-0f-2constructor-04ad[`Expected`] [.small]#[constructor]# | Constructors | link:#mrdocs-Expected-0f-2destructor-08[`~Expected`] [.small]#[destructor]# | Destructors | link:#mrdocs-Expected-0f-operator_assign-0e[`operator=`] [.small]#[deleted]# | Assignment operators | link:#mrdocs-Expected-0f-and_then-06[`and_then`] | | link:#mrdocs-Expected-0f-emplace[`emplace`] | | link:#mrdocs-Expected-0f-error-0d[`error`] | | link:#mrdocs-Expected-0f-error_or-08[`error_or`] | | link:#mrdocs-Expected-0f-has_value[`has_value`] | | link:#mrdocs-Expected-0f-operator_star[`operator*`] | | link:#mrdocs-Expected-0f-or_else-0a[`or_else`] | | link:#mrdocs-Expected-0f-swap[`swap`] | | link:#mrdocs-Expected-0f-transform-08[`transform`] | | link:#mrdocs-Expected-0f-transform_error-09[`transform_error`] | | link:#mrdocs-Expected-0f-value-02[`value`] | | link:#mrdocs-Expected-0f-2conversion[`operator bool`] | Conversion to `bool` |=== == Data Members [cols=1] |=== | Name | link:#mrdocs-Expected-0f-unex_[`unex_`] [.small]#[variant member]# | link:#mrdocs-Expected-0f-void_[`void_`] [.small]#[variant member]# |=== == Friends [cols=2] |=== | Name | Description | `link:#mrdocs-swap-03[mrdocs::swap]` | | `link:#mrdocs-operator_eq-066[mrdocs::operator==]` | Equality operator | `link:#mrdocs-operator_eq-002[mrdocs::operator==]` | Equality operator | `link:#mrdocs-Expected-0a[mrdocs::Expected]` | A container holding an error or a value. |=== == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- using error_type = E; ---- == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class U> using rebind = link:#mrdocs-Expected-0a[Expected<U, error_type>]; ---- == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- using unexpected_type = link:#mrdocs-Unexpected-0c[Unexpected<E>]; ---- == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- using value_type = T; ---- == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- struct Unnamed struct; ---- Constructors == Synopses Declared in `<mrdocs/Support/Expected.hpp>` Default constructor [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-Expected-0f-2constructor-0e1[Expected]() noexcept; ---- [.small]#link:#mrdocs-Expected-0f-2constructor-0e1[_» more..._]# Copy constructor [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-Expected-0f-2constructor-08[Expected](link:#mrdocs-Expected-0f[Expected] const& other) = default; ---- [.small]#link:#mrdocs-Expected-0f-2constructor-08[_» more..._]# Copy constructor [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-Expected-0f-2constructor-042[Expected](link:#mrdocs-Expected-0f[Expected] const& x) noexcept(std::is_nothrow_copy_constructible_v<E>) requires std::is_copy_constructible_v<E> && (!std::is_trivially_copy_constructible_v<E>); ---- [.small]#link:#mrdocs-Expected-0f-2constructor-042[_» more..._]# Move constructor [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-Expected-0f-2constructor-0bc[Expected](link:#mrdocs-Expected-0f[Expected]&& other) = default; ---- [.small]#link:#mrdocs-Expected-0f-2constructor-0bc[_» more..._]# Move constructor [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-Expected-0f-2constructor-0c[Expected](link:#mrdocs-Expected-0f[Expected]&& x) noexcept(std::is_nothrow_move_constructible_v<E>) requires std::is_move_constructible_v<E> && (!std::is_trivially_move_constructible_v<E>); ---- [.small]#link:#mrdocs-Expected-0f-2constructor-0c[_» more..._]# Construct from `in_place_t` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr explicit link:#mrdocs-Expected-0f-2constructor-05[Expected](std::in_place_t value) noexcept; ---- [.small]#link:#mrdocs-Expected-0f-2constructor-05[_» more..._]# Construct from `Unexpected` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class G = E> requires std::is_constructible_v<E, G const&> constexpr explicit(!std::is_convertible_v<const G &, E>) link:#mrdocs-Expected-0f-2constructor-09[Expected](link:#mrdocs-Unexpected-0c[Unexpected<G>] const& u) noexcept(std::is_nothrow_constructible_v<E, const G &>); ---- [.small]#link:#mrdocs-Expected-0f-2constructor-09[_» more..._]# Construct from `Unexpected` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class G = E> requires std::is_constructible_v<E, G> constexpr explicit(!std::is_convertible_v<G, E>) link:#mrdocs-Expected-0f-2constructor-0b8[Expected](link:#mrdocs-Unexpected-0c[Unexpected<G>]&& u) noexcept(std::is_nothrow_constructible_v<E, G>); ---- [.small]#link:#mrdocs-Expected-0f-2constructor-0b8[_» more..._]# Construct from `Expected` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< class U, class G> requires std::is_void_v<U> && std::is_constructible_v<E, G const&> && (!constructible_from_expected<U, G>) constexpr explicit(!std::is_convertible_v<const G &, E>) link:#mrdocs-Expected-0f-2constructor-04a8[Expected](link:#mrdocs-Expected-0a[Expected<U, G>] const& x) noexcept(std::is_nothrow_constructible_v<E, const G &>); ---- [.small]#link:#mrdocs-Expected-0f-2constructor-04a8[_» more..._]# Construct from `Expected` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< class U, class G> requires std::is_void_v<U> && std::is_constructible_v<E, G> && (!constructible_from_expected<U, G>) constexpr explicit(!std::is_convertible_v<G, E>) link:#mrdocs-Expected-0f-2constructor-0ed[Expected](link:#mrdocs-Expected-0a[Expected<U, G>]&& x) noexcept(std::is_nothrow_constructible_v<E, G>); ---- [.small]#link:#mrdocs-Expected-0f-2constructor-0ed[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class... Args> requires std::is_constructible_v<E, Args...> constexpr explicit link:#mrdocs-Expected-0f-2constructor-06[Expected]( link:#mrdocs-unexpect_t[unexpect_t], Args...&&... args) noexcept(std::is_nothrow_constructible_v<E, Args...>); ---- [.small]#link:#mrdocs-Expected-0f-2constructor-06[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< class U, class... Args> requires std::is_constructible_v<E, std::initializer_list<U>&, Args...> constexpr explicit link:#mrdocs-Expected-0f-2constructor-0d[Expected]( link:#mrdocs-unexpect_t[unexpect_t], std::initializer_list<U> il, Args...&&... args) noexcept(std::is_nothrow_constructible_v<E, std::initializer_list<U> &, Args...>); ---- [.small]#link:#mrdocs-Expected-0f-2constructor-0d[_» more..._]# Default constructor == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr Expected() noexcept; ---- Copy constructor == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- Expected(link:#mrdocs-Expected-0f[Expected] const& other) = default; ---- == Parameters [cols=2] |=== | Name | Description | *other* | The object to copy construct from |=== Copy constructor == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr Expected(link:#mrdocs-Expected-0f[Expected] const& x) noexcept(std::is_nothrow_copy_constructible_v<E>) requires std::is_copy_constructible_v<E> && (!std::is_trivially_copy_constructible_v<E>); ---- == Parameters [cols=2] |=== | Name | Description | *x* | The object to copy construct from |=== Move constructor == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- Expected(link:#mrdocs-Expected-0f[Expected]&& other) = default; ---- == Parameters [cols=2] |=== | Name | Description | *other* | The object to move construct from |=== Move constructor == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr Expected(link:#mrdocs-Expected-0f[Expected]&& x) noexcept(std::is_nothrow_move_constructible_v<E>) requires std::is_move_constructible_v<E> && (!std::is_trivially_move_constructible_v<E>); ---- == Parameters [cols=2] |=== | Name | Description | *x* | The object to move construct from |=== Construct from `in_place_t` == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr explicit Expected(std::in_place_t value) noexcept; ---- == Parameters [cols=2] |=== | Name | Description | *value* | The object to construct from |=== Construct from `Unexpected` == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class G = E> requires std::is_constructible_v<E, G const&> constexpr explicit(!std::is_convertible_v<const G &, E>) Expected(link:#mrdocs-Unexpected-0c[Unexpected<G>] const& u) noexcept(std::is_nothrow_constructible_v<E, const G &>); ---- == Parameters [cols=2] |=== | Name | Description | *u* | The object to copy construct from |=== Construct from `Unexpected` == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class G = E> requires std::is_constructible_v<E, G> constexpr explicit(!std::is_convertible_v<G, E>) Expected(link:#mrdocs-Unexpected-0c[Unexpected<G>]&& u) noexcept(std::is_nothrow_constructible_v<E, G>); ---- == Parameters [cols=2] |=== | Name | Description | *u* | The object to move construct from |=== Construct from `Expected` == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< class U, class G> requires std::is_void_v<U> && std::is_constructible_v<E, G const&> && (!constructible_from_expected<U, G>) constexpr explicit(!std::is_convertible_v<const G &, E>) Expected(link:#mrdocs-Expected-0a[Expected<U, G>] const& x) noexcept(std::is_nothrow_constructible_v<E, const G &>); ---- == Parameters [cols=2] |=== | Name | Description | *x* | The object to copy construct from |=== Construct from `Expected` == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< class U, class G> requires std::is_void_v<U> && std::is_constructible_v<E, G> && (!constructible_from_expected<U, G>) constexpr explicit(!std::is_convertible_v<G, E>) Expected(link:#mrdocs-Expected-0a[Expected<U, G>]&& x) noexcept(std::is_nothrow_constructible_v<E, G>); ---- == Parameters [cols=2] |=== | Name | Description | *x* | The object to move construct from |=== == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class... Args> requires std::is_constructible_v<E, Args...> constexpr explicit Expected( link:#mrdocs-unexpect_t[unexpect_t], Args...&&... args) noexcept(std::is_nothrow_constructible_v<E, Args...>); ---- == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< class U, class... Args> requires std::is_constructible_v<E, std::initializer_list<U>&, Args...> constexpr explicit Expected( link:#mrdocs-unexpect_t[unexpect_t], std::initializer_list<U> il, Args...&&... args) noexcept(std::is_nothrow_constructible_v<E, std::initializer_list<U> &, Args...>); ---- Destructors == Synopses Declared in `<mrdocs/Support/Expected.hpp>` Destructor [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-Expected-0f-2destructor-07[~Expected]() = default; ---- [.small]#link:#mrdocs-Expected-0f-2destructor-07[_» more..._]# Destructor [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-Expected-0f-2destructor-0e[~Expected]() requires (!std::is_trivially_destructible_v<E>); ---- [.small]#link:#mrdocs-Expected-0f-2destructor-0e[_» more..._]# Destructor == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr ~Expected() = default; ---- Destructor == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr ~Expected() requires (!std::is_trivially_destructible_v<E>); ---- Assignment operators == Synopses Declared in `<mrdocs/Support/Expected.hpp>` Copy assignment operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-Expected-0f[Expected]& link:#mrdocs-Expected-0f-operator_assign-01[operator=](link:#mrdocs-Expected-0f[Expected] const& other) = delete; ---- [.small]#link:#mrdocs-Expected-0f-operator_assign-01[_» more..._]# Copy assignment operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-Expected-0f[Expected]& link:#mrdocs-Expected-0f-operator_assign-02[operator=](link:#mrdocs-Expected-0f[Expected] const& x) noexcept(std::is_nothrow_copy_constructible_v<E> && std::is_nothrow_copy_assignable_v<E>) requires std::is_copy_constructible_v<E> && std::is_copy_assignable_v<E>; ---- [.small]#link:#mrdocs-Expected-0f-operator_assign-02[_» more..._]# Move assignment operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-Expected-0f[Expected]& link:#mrdocs-Expected-0f-operator_assign-0f[operator=](link:#mrdocs-Expected-0f[Expected]&& x) noexcept(std::is_nothrow_move_constructible_v<E> && std::is_nothrow_move_assignable_v<E>) requires std::is_move_constructible_v<E> && std::is_move_assignable_v<E>; ---- [.small]#link:#mrdocs-Expected-0f-operator_assign-0f[_» more..._]# Assignment operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class G> requires std::is_constructible_v<E, G const&> && std::is_assignable_v<E&, G const&> constexpr link:#mrdocs-Expected-0f[Expected]& link:#mrdocs-Expected-0f-operator_assign-0a7[operator=](link:#mrdocs-Unexpected-0c[Unexpected<G>] const& e); ---- [.small]#link:#mrdocs-Expected-0f-operator_assign-0a7[_» more..._]# Assignment operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class G> requires std::is_constructible_v<E, G> && std::is_assignable_v<E&, G> constexpr link:#mrdocs-Expected-0f[Expected]& link:#mrdocs-Expected-0f-operator_assign-0ae[operator=](link:#mrdocs-Unexpected-0c[Unexpected<G>]&& e); ---- [.small]#link:#mrdocs-Expected-0f-operator_assign-0ae[_» more..._]# Copy assignment operator == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-Expected-0f[Expected]& operator=(link:#mrdocs-Expected-0f[Expected] const& other) = delete; ---- == Return Value Reference to the current object == Parameters [cols=2] |=== | Name | Description | *other* | The object to copy assign from |=== Copy assignment operator == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-Expected-0f[Expected]& operator=(link:#mrdocs-Expected-0f[Expected] const& x) noexcept(std::is_nothrow_copy_constructible_v<E> && std::is_nothrow_copy_assignable_v<E>) requires std::is_copy_constructible_v<E> && std::is_copy_assignable_v<E>; ---- == Return Value Reference to the current object == Parameters [cols=2] |=== | Name | Description | *x* | The object to copy assign from |=== Move assignment operator == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-Expected-0f[Expected]& operator=(link:#mrdocs-Expected-0f[Expected]&& x) noexcept(std::is_nothrow_move_constructible_v<E> && std::is_nothrow_move_assignable_v<E>) requires std::is_move_constructible_v<E> && std::is_move_assignable_v<E>; ---- == Return Value Reference to the current object == Parameters [cols=2] |=== | Name | Description | *x* | The object to move assign from |=== Assignment operator == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class G> requires std::is_constructible_v<E, G const&> && std::is_assignable_v<E&, G const&> constexpr link:#mrdocs-Expected-0f[Expected]& operator=(link:#mrdocs-Unexpected-0c[Unexpected<G>] const& e); ---- == Return Value Reference to the current object == Parameters [cols=2] |=== | Name | Description | *e* | The object to copy assign from |=== Assignment operator == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class G> requires std::is_constructible_v<E, G> && std::is_assignable_v<E&, G> constexpr link:#mrdocs-Expected-0f[Expected]& operator=(link:#mrdocs-Unexpected-0c[Unexpected<G>]&& e); ---- == Return Value Reference to the current object == Parameters [cols=2] |=== | Name | Description | *e* | The object to move assign from |=== == Synopses Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class Fn> requires std::is_constructible_v<E, E&> constexpr auto link:#mrdocs-Expected-0f-and_then-07[and_then](Fn&& f) &; ---- [.small]#link:#mrdocs-Expected-0f-and_then-07[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class Fn> requires std::is_constructible_v<E, E const&> constexpr auto link:#mrdocs-Expected-0f-and_then-03[and_then](Fn&& f) const &; ---- [.small]#link:#mrdocs-Expected-0f-and_then-03[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class Fn> requires std::is_constructible_v<E, E> constexpr auto link:#mrdocs-Expected-0f-and_then-09[and_then](Fn&& f) &&; ---- [.small]#link:#mrdocs-Expected-0f-and_then-09[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class Fn> requires std::is_constructible_v<E, const E> constexpr auto link:#mrdocs-Expected-0f-and_then-0c[and_then](Fn&& f) const &&; ---- [.small]#link:#mrdocs-Expected-0f-and_then-0c[_» more..._]# == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class Fn> requires std::is_constructible_v<E, E&> constexpr auto and_then(Fn&& f) &; ---- == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class Fn> requires std::is_constructible_v<E, E const&> constexpr auto and_then(Fn&& f) const &; ---- == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class Fn> requires std::is_constructible_v<E, E> constexpr auto and_then(Fn&& f) &&; ---- == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class Fn> requires std::is_constructible_v<E, const E> constexpr auto and_then(Fn&& f) const &&; ---- == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr void emplace() noexcept; ---- == Synopses Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr E const& link:#mrdocs-Expected-0f-error-0a[error]() const & noexcept; ---- [.small]#link:#mrdocs-Expected-0f-error-0a[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr E& link:#mrdocs-Expected-0f-error-05[error]() & noexcept; ---- [.small]#link:#mrdocs-Expected-0f-error-05[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr E const&& link:#mrdocs-Expected-0f-error-0e[error]() const && noexcept; ---- [.small]#link:#mrdocs-Expected-0f-error-0e[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr E&& link:#mrdocs-Expected-0f-error-0b[error]() && noexcept; ---- [.small]#link:#mrdocs-Expected-0f-error-0b[_» more..._]# == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr E const& error() const & noexcept; ---- == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr E& error() & noexcept; ---- == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr E const&& error() const && noexcept; ---- == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr E&& error() && noexcept; ---- == Synopses Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class G = E> constexpr E link:#mrdocs-Expected-0f-error_or-01[error_or](G&& e) const &; ---- [.small]#link:#mrdocs-Expected-0f-error_or-01[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class G = E> constexpr E link:#mrdocs-Expected-0f-error_or-0f[error_or](G&& e) &&; ---- [.small]#link:#mrdocs-Expected-0f-error_or-0f[_» more..._]# == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class G = E> constexpr E error_or(G&& e) const &; ---- == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class G = E> constexpr E error_or(G&& e) &&; ---- == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- [[nodiscard]] constexpr bool has_value() const noexcept; ---- == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr void operator*() const noexcept; ---- == Synopses Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class Fn> constexpr auto link:#mrdocs-Expected-0f-or_else-0c[or_else](Fn&& f) &; ---- [.small]#link:#mrdocs-Expected-0f-or_else-0c[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class Fn> constexpr auto link:#mrdocs-Expected-0f-or_else-0b[or_else](Fn&& f) const &; ---- [.small]#link:#mrdocs-Expected-0f-or_else-0b[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class Fn> constexpr auto link:#mrdocs-Expected-0f-or_else-03[or_else](Fn&& f) &&; ---- [.small]#link:#mrdocs-Expected-0f-or_else-03[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class Fn> constexpr auto link:#mrdocs-Expected-0f-or_else-09[or_else](Fn&& f) const &&; ---- [.small]#link:#mrdocs-Expected-0f-or_else-09[_» more..._]# == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class Fn> constexpr auto or_else(Fn&& f) &; ---- == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class Fn> constexpr auto or_else(Fn&& f) const &; ---- == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class Fn> constexpr auto or_else(Fn&& f) &&; ---- == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class Fn> constexpr auto or_else(Fn&& f) const &&; ---- == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr void swap(link:#mrdocs-Expected-0f[Expected]& x) noexcept(std::is_nothrow_swappable_v<E &> && std::is_nothrow_move_constructible_v<E>) requires std::is_swappable_v<E> && std::is_move_constructible_v<E>; ---- == Synopses Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class Fn> requires std::is_constructible_v<E, E&> constexpr auto link:#mrdocs-Expected-0f-transform-0b[transform](Fn&& f) &; ---- [.small]#link:#mrdocs-Expected-0f-transform-0b[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class Fn> requires std::is_constructible_v<E, E const&> constexpr auto link:#mrdocs-Expected-0f-transform-0a[transform](Fn&& f) const &; ---- [.small]#link:#mrdocs-Expected-0f-transform-0a[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class Fn> requires std::is_constructible_v<E, E> constexpr auto link:#mrdocs-Expected-0f-transform-04[transform](Fn&& f) &&; ---- [.small]#link:#mrdocs-Expected-0f-transform-04[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class Fn> requires std::is_constructible_v<E, const E> constexpr auto link:#mrdocs-Expected-0f-transform-0c[transform](Fn&& f) const &&; ---- [.small]#link:#mrdocs-Expected-0f-transform-0c[_» more..._]# == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class Fn> requires std::is_constructible_v<E, E&> constexpr auto transform(Fn&& f) &; ---- == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class Fn> requires std::is_constructible_v<E, E const&> constexpr auto transform(Fn&& f) const &; ---- == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class Fn> requires std::is_constructible_v<E, E> constexpr auto transform(Fn&& f) &&; ---- == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class Fn> requires std::is_constructible_v<E, const E> constexpr auto transform(Fn&& f) const &&; ---- == Synopses Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class Fn> constexpr auto link:#mrdocs-Expected-0f-transform_error-02[transform_error](Fn&& f) &; ---- [.small]#link:#mrdocs-Expected-0f-transform_error-02[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class Fn> constexpr auto link:#mrdocs-Expected-0f-transform_error-0e[transform_error](Fn&& f) const &; ---- [.small]#link:#mrdocs-Expected-0f-transform_error-0e[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class Fn> constexpr auto link:#mrdocs-Expected-0f-transform_error-06[transform_error](Fn&& f) &&; ---- [.small]#link:#mrdocs-Expected-0f-transform_error-06[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class Fn> constexpr auto link:#mrdocs-Expected-0f-transform_error-07[transform_error](Fn&& f) const &&; ---- [.small]#link:#mrdocs-Expected-0f-transform_error-07[_» more..._]# == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class Fn> constexpr auto transform_error(Fn&& f) &; ---- == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class Fn> constexpr auto transform_error(Fn&& f) const &; ---- == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class Fn> constexpr auto transform_error(Fn&& f) &&; ---- == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class Fn> constexpr auto transform_error(Fn&& f) const &&; ---- == Synopses Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr void link:#mrdocs-Expected-0f-value-07b[value]() const &; ---- [.small]#link:#mrdocs-Expected-0f-value-07b[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr void link:#mrdocs-Expected-0f-value-077[value]() &&; ---- [.small]#link:#mrdocs-Expected-0f-value-077[_» more..._]# == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr void value() const &; ---- == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr void value() &&; ---- Conversion to `bool` == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- [[nodiscard]] constexpr explicit operator bool() const noexcept; ---- == Return Value The object converted to `bool` == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- E unex_; ---- == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-Expected-0f-_01record[] void_; ---- == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< class T, class E> class link:#mrdocs-Expected-0a[Expected]<T&, E>; ---- == Types [cols=1] |=== | Name | link:#mrdocs-Expected-01-error_type[`error_type`] | link:#mrdocs-Expected-01-rebind[`rebind`] | link:#mrdocs-Expected-01-unexpected_type[`unexpected_type`] | link:#mrdocs-Expected-01-value_type[`value_type`] |=== == Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-Expected-01-2constructor-04a[`Expected`] [.small]#[constructor]# | Constructors | link:#mrdocs-Expected-01-2destructor[`~Expected`] [.small]#[destructor]# | Destructor | link:#mrdocs-Expected-01-operator_assign-0b[`operator=`] | Assignment operators | link:#mrdocs-Expected-01-and_then-00[`and_then`] | | link:#mrdocs-Expected-01-emplace-058[`emplace`] | | link:#mrdocs-Expected-01-error-01[`error`] | | link:#mrdocs-Expected-01-error_or-08[`error_or`] | | link:#mrdocs-Expected-01-has_value[`has_value`] | | link:#mrdocs-Expected-01-operator_star-068[`operator*`] | Dereference operators | link:#mrdocs-Expected-01-operator_ptr-05[`operator‐>`] | Member access operators | link:#mrdocs-Expected-01-or_else-07[`or_else`] | | link:#mrdocs-Expected-01-swap[`swap`] | | link:#mrdocs-Expected-01-transform-09[`transform`] | | link:#mrdocs-Expected-01-transform_error-08[`transform_error`] | | link:#mrdocs-Expected-01-value-03[`value`] | | link:#mrdocs-Expected-01-value_or-0c9[`value_or`] | | link:#mrdocs-Expected-01-2conversion[`operator bool`] | Conversion to `bool` |=== == Data Members [cols=1] |=== | Name | link:#mrdocs-Expected-01-p_[`p_`] [.small]#[variant member]# | link:#mrdocs-Expected-01-unex_[`unex_`] [.small]#[variant member]# |=== == Friends [cols=2] |=== | Name | Description | `link:#mrdocs-operator_eq-087[mrdocs::operator==]` | Equality operator | `link:#mrdocs-operator_eq-0cfa[mrdocs::operator==]` | Equality operator | `link:#mrdocs-operator_eq-0b3[mrdocs::operator==]` | Equality operator | `link:#mrdocs-swap-07c9[mrdocs::swap]` | |=== == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- using error_type = E; ---- == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class U> using rebind = link:#mrdocs-Expected-0a[Expected<U, error_type>]; ---- == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- using unexpected_type = link:#mrdocs-Unexpected-0c[Unexpected<E>]; ---- == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- using value_type = T&; ---- Constructors == Synopses Declared in `<mrdocs/Support/Expected.hpp>` Default constructor [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-Expected-01-2constructor-0f[Expected]() noexcept; ---- [.small]#link:#mrdocs-Expected-01-2constructor-0f[_» more..._]# Copy constructor [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-Expected-01-2constructor-03[Expected](link:#mrdocs-Expected-01[Expected] const& other) = default; ---- [.small]#link:#mrdocs-Expected-01-2constructor-03[_» more..._]# Move constructor [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-Expected-01-2constructor-08[Expected](link:#mrdocs-Expected-01[Expected]&& other) = default; ---- [.small]#link:#mrdocs-Expected-01-2constructor-08[_» more..._]# Construct from `U` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class U> requires (!std::is_same_v<std::remove_cvref_t<U>, Expected> && !std::is_same_v<std::remove_cvref_t<U>, std::in_place_t> && !detail::isUnexpected<std::remove_cvref_t<U>> && ok_bind_v<U&>) constexpr explicit(!std::is_convertible_v<U &, R>) link:#mrdocs-Expected-01-2constructor-0ed[Expected](U& u) noexcept(std::is_nothrow_constructible_v<R, U &>); ---- [.small]#link:#mrdocs-Expected-01-2constructor-0ed[_» more..._]# Construct from `Expected` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class U> requires detail::ok_bind_ref_v<R, U&> constexpr explicit(!std::is_convertible_v<U &, R>) link:#mrdocs-Expected-01-2constructor-00[Expected](link:#mrdocs-Expected-0a[Expected<U, E>]& other) noexcept(std::is_nothrow_constructible_v<R, U &> && std::is_nothrow_copy_constructible_v<E>); ---- [.small]#link:#mrdocs-Expected-01-2constructor-00[_» more..._]# Construct from `Expected` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class U> requires detail::ok_bind_ref_v<R, U&> constexpr explicit(!std::is_convertible_v<U &, R>) link:#mrdocs-Expected-01-2constructor-0bc[Expected](link:#mrdocs-Expected-0a[Expected<U&, E>] const& other) noexcept(std::is_nothrow_constructible_v<R, U &> && std::is_nothrow_copy_constructible_v<E>); ---- [.small]#link:#mrdocs-Expected-01-2constructor-0bc[_» more..._]# Construct from `Unexpected` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class G = E> requires std::is_constructible_v<E, G const&> constexpr explicit(!std::is_convertible_v<const G &, E>) link:#mrdocs-Expected-01-2constructor-02b[Expected](link:#mrdocs-Unexpected-0c[Unexpected<G>] const& u) noexcept(std::is_nothrow_constructible_v<E, const G &>); ---- [.small]#link:#mrdocs-Expected-01-2constructor-02b[_» more..._]# Construct from `U` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class U> requires (!std::is_same_v<std::remove_cvref_t<U>, Expected> && !std::is_same_v<std::remove_cvref_t<U>, std::in_place_t> && !detail::isUnexpected<std::remove_cvref_t<U>> && !ok_bind_v<U &&>) constexpr link:#mrdocs-Expected-01-2constructor-0ea[Expected](U&& value) = delete; ---- [.small]#link:#mrdocs-Expected-01-2constructor-0ea[_» more..._]# Construct from `Expected` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class U> constexpr link:#mrdocs-Expected-01-2constructor-0c[Expected](link:#mrdocs-Expected-0a[Expected<U, E>]&& value) = delete; ---- [.small]#link:#mrdocs-Expected-01-2constructor-0c[_» more..._]# Construct from `Expected` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class U> requires detail::ok_bind_ref_v<R, U&> constexpr explicit(!std::is_convertible_v<U &, R>) link:#mrdocs-Expected-01-2constructor-02c[Expected](link:#mrdocs-Expected-0a[Expected<U&, E>]&& other) noexcept(std::is_nothrow_constructible_v<R, U &> && std::is_nothrow_move_constructible_v<E>); ---- [.small]#link:#mrdocs-Expected-01-2constructor-02c[_» more..._]# Construct from `Unexpected` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class G = E> requires std::is_constructible_v<E, G> constexpr explicit(!std::is_convertible_v<G, E>) link:#mrdocs-Expected-01-2constructor-0d[Expected](link:#mrdocs-Unexpected-0c[Unexpected<G>]&& u) noexcept(std::is_nothrow_constructible_v<E, G>); ---- [.small]#link:#mrdocs-Expected-01-2constructor-0d[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class Fn> constexpr explicit link:#mrdocs-Expected-01-2constructor-025[Expected]( /* implementation-defined */, Fn&& fn); ---- [.small]#link:#mrdocs-Expected-01-2constructor-025[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class U> requires ok_bind_v<U&> constexpr explicit link:#mrdocs-Expected-01-2constructor-01[Expected]( std::in_place_t, U& u) noexcept; ---- [.small]#link:#mrdocs-Expected-01-2constructor-01[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class Fn> constexpr explicit link:#mrdocs-Expected-01-2constructor-0b8[Expected]( /* implementation-defined */, Fn&& fn); ---- [.small]#link:#mrdocs-Expected-01-2constructor-0b8[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class... Args> requires std::is_constructible_v<E, Args...> constexpr explicit link:#mrdocs-Expected-01-2constructor-046[Expected]( link:#mrdocs-unexpect_t[unexpect_t], Args...&&... args) noexcept(std::is_nothrow_constructible_v<E, Args...>); ---- [.small]#link:#mrdocs-Expected-01-2constructor-046[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< class U, class... Args> requires std::is_constructible_v<E, std::initializer_list<U>&, Args...> constexpr explicit link:#mrdocs-Expected-01-2constructor-05[Expected]( link:#mrdocs-unexpect_t[unexpect_t], std::initializer_list<U> il, Args...&&... args) noexcept(std::is_nothrow_constructible_v<E, std::initializer_list<U> &, Args...>); ---- [.small]#link:#mrdocs-Expected-01-2constructor-05[_» more..._]# Default constructor == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr Expected() noexcept; ---- Copy constructor == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr Expected(link:#mrdocs-Expected-01[Expected] const& other) = default; ---- == Parameters [cols=2] |=== | Name | Description | *other* | The object to copy construct from |=== Move constructor == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr Expected(link:#mrdocs-Expected-01[Expected]&& other) = default; ---- == Parameters [cols=2] |=== | Name | Description | *other* | The object to move construct from |=== Construct from `U` == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class U> requires (!std::is_same_v<std::remove_cvref_t<U>, Expected> && !std::is_same_v<std::remove_cvref_t<U>, std::in_place_t> && !detail::isUnexpected<std::remove_cvref_t<U>> && ok_bind_v<U&>) constexpr explicit(!std::is_convertible_v<U &, R>) Expected(U& u) noexcept(std::is_nothrow_constructible_v<R, U &>); ---- == Parameters [cols=2] |=== | Name | Description | *u* | The object to copy construct from |=== Construct from `Expected` == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class U> requires detail::ok_bind_ref_v<R, U&> constexpr explicit(!std::is_convertible_v<U &, R>) Expected(link:#mrdocs-Expected-0a[Expected<U, E>]& other) noexcept(std::is_nothrow_constructible_v<R, U &> && std::is_nothrow_copy_constructible_v<E>); ---- == Parameters [cols=2] |=== | Name | Description | *other* | The object to copy construct from |=== Construct from `Expected` == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class U> requires detail::ok_bind_ref_v<R, U&> constexpr explicit(!std::is_convertible_v<U &, R>) Expected(link:#mrdocs-Expected-0a[Expected<U&, E>] const& other) noexcept(std::is_nothrow_constructible_v<R, U &> && std::is_nothrow_copy_constructible_v<E>); ---- == Parameters [cols=2] |=== | Name | Description | *other* | The object to copy construct from |=== Construct from `Unexpected` == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class G = E> requires std::is_constructible_v<E, G const&> constexpr explicit(!std::is_convertible_v<const G &, E>) Expected(link:#mrdocs-Unexpected-0c[Unexpected<G>] const& u) noexcept(std::is_nothrow_constructible_v<E, const G &>); ---- == Parameters [cols=2] |=== | Name | Description | *u* | The object to copy construct from |=== Construct from `U` == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class U> requires (!std::is_same_v<std::remove_cvref_t<U>, Expected> && !std::is_same_v<std::remove_cvref_t<U>, std::in_place_t> && !detail::isUnexpected<std::remove_cvref_t<U>> && !ok_bind_v<U &&>) constexpr Expected(U&& value) = delete; ---- == Parameters [cols=2] |=== | Name | Description | *value* | The object to move construct from |=== Construct from `Expected` == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class U> constexpr Expected(link:#mrdocs-Expected-0a[Expected<U, E>]&& value) = delete; ---- == Parameters [cols=2] |=== | Name | Description | *value* | The object to move construct from |=== Construct from `Expected` == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class U> requires detail::ok_bind_ref_v<R, U&> constexpr explicit(!std::is_convertible_v<U &, R>) Expected(link:#mrdocs-Expected-0a[Expected<U&, E>]&& other) noexcept(std::is_nothrow_constructible_v<R, U &> && std::is_nothrow_move_constructible_v<E>); ---- == Parameters [cols=2] |=== | Name | Description | *other* | The object to move construct from |=== Construct from `Unexpected` == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class G = E> requires std::is_constructible_v<E, G> constexpr explicit(!std::is_convertible_v<G, E>) Expected(link:#mrdocs-Unexpected-0c[Unexpected<G>]&& u) noexcept(std::is_nothrow_constructible_v<E, G>); ---- == Parameters [cols=2] |=== | Name | Description | *u* | The object to move construct from |=== == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class Fn> constexpr explicit Expected( /* implementation-defined */, Fn&& fn); ---- == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class U> requires ok_bind_v<U&> constexpr explicit Expected( std::in_place_t, U& u) noexcept; ---- == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class Fn> constexpr explicit Expected( /* implementation-defined */, Fn&& fn); ---- == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class... Args> requires std::is_constructible_v<E, Args...> constexpr explicit Expected( link:#mrdocs-unexpect_t[unexpect_t], Args...&&... args) noexcept(std::is_nothrow_constructible_v<E, Args...>); ---- == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< class U, class... Args> requires std::is_constructible_v<E, std::initializer_list<U>&, Args...> constexpr explicit Expected( link:#mrdocs-unexpect_t[unexpect_t], std::initializer_list<U> il, Args...&&... args) noexcept(std::is_nothrow_constructible_v<E, std::initializer_list<U> &, Args...>); ---- Destructor == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr ~Expected(); ---- Assignment operators == Synopses Declared in `<mrdocs/Support/Expected.hpp>` Copy assignment operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-Expected-01[Expected]& link:#mrdocs-Expected-01-operator_assign-05[operator=](link:#mrdocs-Expected-01[Expected] const& other) = default; ---- [.small]#link:#mrdocs-Expected-01-operator_assign-05[_» more..._]# Move assignment operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-Expected-01[Expected]& link:#mrdocs-Expected-01-operator_assign-07b[operator=](link:#mrdocs-Expected-01[Expected]&& other) = default; ---- [.small]#link:#mrdocs-Expected-01-operator_assign-07b[_» more..._]# Assignment operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class U> requires ok_bind_v<U&> constexpr link:#mrdocs-Expected-01[Expected]& link:#mrdocs-Expected-01-operator_assign-081[operator=](U& u) noexcept(std::is_nothrow_constructible_v<R, U &>); ---- [.small]#link:#mrdocs-Expected-01-operator_assign-081[_» more..._]# Assignment operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class U> requires detail::ok_bind_ref_v<R, U&> constexpr link:#mrdocs-Expected-01[Expected]& link:#mrdocs-Expected-01-operator_assign-0f[operator=](link:#mrdocs-Expected-0a[Expected<U, E>]& other); ---- [.small]#link:#mrdocs-Expected-01-operator_assign-0f[_» more..._]# Assignment operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class U> requires detail::ok_bind_ref_v<R, U&> constexpr link:#mrdocs-Expected-01[Expected]& link:#mrdocs-Expected-01-operator_assign-00[operator=](link:#mrdocs-Expected-0a[Expected<U&, E>] const& other); ---- [.small]#link:#mrdocs-Expected-01-operator_assign-00[_» more..._]# Assignment operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class G> requires std::is_constructible_v<E, G const&> && std::is_assignable_v<E&, G const&> constexpr link:#mrdocs-Expected-01[Expected]& link:#mrdocs-Expected-01-operator_assign-07c[operator=](link:#mrdocs-Unexpected-0c[Unexpected<G>] const& e); ---- [.small]#link:#mrdocs-Expected-01-operator_assign-07c[_» more..._]# Assignment operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class U> requires (!ok_bind_v<U &&>) constexpr link:#mrdocs-Expected-01[Expected]& link:#mrdocs-Expected-01-operator_assign-08c[operator=](U&& value) = delete; ---- [.small]#link:#mrdocs-Expected-01-operator_assign-08c[_» more..._]# Assignment operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class U> constexpr link:#mrdocs-Expected-01[Expected]& link:#mrdocs-Expected-01-operator_assign-0e[operator=](link:#mrdocs-Expected-0a[Expected<U, E>]&& value) = delete; ---- [.small]#link:#mrdocs-Expected-01-operator_assign-0e[_» more..._]# Assignment operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class U> requires detail::ok_bind_ref_v<R, U&> constexpr link:#mrdocs-Expected-01[Expected]& link:#mrdocs-Expected-01-operator_assign-082[operator=](link:#mrdocs-Expected-0a[Expected<U&, E>]&& other); ---- [.small]#link:#mrdocs-Expected-01-operator_assign-082[_» more..._]# Assignment operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class G> requires std::is_constructible_v<E, G> && std::is_assignable_v<E&, G> constexpr link:#mrdocs-Expected-01[Expected]& link:#mrdocs-Expected-01-operator_assign-09[operator=](link:#mrdocs-Unexpected-0c[Unexpected<G>]&& e); ---- [.small]#link:#mrdocs-Expected-01-operator_assign-09[_» more..._]# Copy assignment operator == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-Expected-01[Expected]& operator=(link:#mrdocs-Expected-01[Expected] const& other) = default; ---- == Return Value Reference to the current object == Parameters [cols=2] |=== | Name | Description | *other* | The object to copy assign from |=== Move assignment operator == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-Expected-01[Expected]& operator=(link:#mrdocs-Expected-01[Expected]&& other) = default; ---- == Return Value Reference to the current object == Parameters [cols=2] |=== | Name | Description | *other* | The object to move assign from |=== Assignment operator == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class U> requires ok_bind_v<U&> constexpr link:#mrdocs-Expected-01[Expected]& operator=(U& u) noexcept(std::is_nothrow_constructible_v<R, U &>); ---- == Return Value Reference to the current object == Parameters [cols=2] |=== | Name | Description | *u* | The object to copy assign from |=== Assignment operator == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class U> requires detail::ok_bind_ref_v<R, U&> constexpr link:#mrdocs-Expected-01[Expected]& operator=(link:#mrdocs-Expected-0a[Expected<U, E>]& other); ---- == Return Value Reference to the current object == Parameters [cols=2] |=== | Name | Description | *other* | The object to copy assign from |=== Assignment operator == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class U> requires detail::ok_bind_ref_v<R, U&> constexpr link:#mrdocs-Expected-01[Expected]& operator=(link:#mrdocs-Expected-0a[Expected<U&, E>] const& other); ---- == Return Value Reference to the current object == Parameters [cols=2] |=== | Name | Description | *other* | The object to copy assign from |=== Assignment operator == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class G> requires std::is_constructible_v<E, G const&> && std::is_assignable_v<E&, G const&> constexpr link:#mrdocs-Expected-01[Expected]& operator=(link:#mrdocs-Unexpected-0c[Unexpected<G>] const& e); ---- == Return Value Reference to the current object == Parameters [cols=2] |=== | Name | Description | *e* | The object to copy assign from |=== Assignment operator == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class U> requires (!ok_bind_v<U &&>) constexpr link:#mrdocs-Expected-01[Expected]& operator=(U&& value) = delete; ---- == Return Value Reference to the current object == Parameters [cols=2] |=== | Name | Description | *value* | The object to move assign from |=== Assignment operator == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class U> constexpr link:#mrdocs-Expected-01[Expected]& operator=(link:#mrdocs-Expected-0a[Expected<U, E>]&& value) = delete; ---- == Return Value Reference to the current object == Parameters [cols=2] |=== | Name | Description | *value* | The object to move assign from |=== Assignment operator == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class U> requires detail::ok_bind_ref_v<R, U&> constexpr link:#mrdocs-Expected-01[Expected]& operator=(link:#mrdocs-Expected-0a[Expected<U&, E>]&& other); ---- == Return Value Reference to the current object == Parameters [cols=2] |=== | Name | Description | *other* | The object to move assign from |=== Assignment operator == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class G> requires std::is_constructible_v<E, G> && std::is_assignable_v<E&, G> constexpr link:#mrdocs-Expected-01[Expected]& operator=(link:#mrdocs-Unexpected-0c[Unexpected<G>]&& e); ---- == Return Value Reference to the current object == Parameters [cols=2] |=== | Name | Description | *e* | The object to move assign from |=== == Synopses Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class Fn> constexpr auto link:#mrdocs-Expected-01-and_then-03[and_then](Fn&& f) &; ---- [.small]#link:#mrdocs-Expected-01-and_then-03[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class Fn> constexpr auto link:#mrdocs-Expected-01-and_then-0d[and_then](Fn&& f) const &; ---- [.small]#link:#mrdocs-Expected-01-and_then-0d[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class Fn> constexpr auto link:#mrdocs-Expected-01-and_then-09[and_then](Fn&& f) &&; ---- [.small]#link:#mrdocs-Expected-01-and_then-09[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class Fn> constexpr auto link:#mrdocs-Expected-01-and_then-0c[and_then](Fn&& f) const &&; ---- [.small]#link:#mrdocs-Expected-01-and_then-0c[_» more..._]# == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class Fn> constexpr auto and_then(Fn&& f) &; ---- == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class Fn> constexpr auto and_then(Fn&& f) const &; ---- == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class Fn> constexpr auto and_then(Fn&& f) &&; ---- == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class Fn> constexpr auto and_then(Fn&& f) const &&; ---- == Synopses Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class U> requires ok_bind_v<U&> constexpr T& link:#mrdocs-Expected-01-emplace-0d[emplace](U& u) noexcept; ---- [.small]#link:#mrdocs-Expected-01-emplace-0d[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class U> requires (!ok_bind_v<U &&>) constexpr T& link:#mrdocs-Expected-01-emplace-05e[emplace](U&&) = delete; ---- [.small]#link:#mrdocs-Expected-01-emplace-05e[_» more..._]# == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class U> requires ok_bind_v<U&> constexpr T& emplace(U& u) noexcept; ---- == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class U> requires (!ok_bind_v<U &&>) constexpr T& emplace(U&&) = delete; ---- == Synopses Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- [[nodiscard]] constexpr E& link:#mrdocs-Expected-01-error-0b[error]() & noexcept; ---- [.small]#link:#mrdocs-Expected-01-error-0b[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- [[nodiscard]] constexpr E const& link:#mrdocs-Expected-01-error-06[error]() const & noexcept; ---- [.small]#link:#mrdocs-Expected-01-error-06[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- [[nodiscard]] constexpr E&& link:#mrdocs-Expected-01-error-03[error]() && noexcept; ---- [.small]#link:#mrdocs-Expected-01-error-03[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- [[nodiscard]] constexpr E const&& link:#mrdocs-Expected-01-error-0c[error]() const && noexcept; ---- [.small]#link:#mrdocs-Expected-01-error-0c[_» more..._]# == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- [[nodiscard]] constexpr E& error() & noexcept; ---- == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- [[nodiscard]] constexpr E const& error() const & noexcept; ---- == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- [[nodiscard]] constexpr E&& error() && noexcept; ---- == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- [[nodiscard]] constexpr E const&& error() const && noexcept; ---- == Synopses Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class G = E> constexpr E link:#mrdocs-Expected-01-error_or-0c[error_or](G&& g) const &; ---- [.small]#link:#mrdocs-Expected-01-error_or-0c[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class G = E> constexpr E link:#mrdocs-Expected-01-error_or-0f[error_or](G&& g) &&; ---- [.small]#link:#mrdocs-Expected-01-error_or-0f[_» more..._]# == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class G = E> constexpr E error_or(G&& g) const &; ---- == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class G = E> constexpr E error_or(G&& g) &&; ---- == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- [[nodiscard]] constexpr bool has_value() const noexcept; ---- Dereference operators == Synopses Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- [[nodiscard]] constexpr T& link:#mrdocs-Expected-01-operator_star-00[operator*]() & noexcept; ---- [.small]#link:#mrdocs-Expected-01-operator_star-00[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- [[nodiscard]] constexpr T const& link:#mrdocs-Expected-01-operator_star-0c[operator*]() const & noexcept; ---- [.small]#link:#mrdocs-Expected-01-operator_star-0c[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- [[nodiscard]] constexpr T&& link:#mrdocs-Expected-01-operator_star-01[operator*]() && noexcept; ---- [.small]#link:#mrdocs-Expected-01-operator_star-01[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- [[nodiscard]] constexpr T const&& link:#mrdocs-Expected-01-operator_star-065[operator*]() const && noexcept; ---- [.small]#link:#mrdocs-Expected-01-operator_star-065[_» more..._]# == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- [[nodiscard]] constexpr T& operator*() & noexcept; ---- == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- [[nodiscard]] constexpr T const& operator*() const & noexcept; ---- == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- [[nodiscard]] constexpr T&& operator*() && noexcept; ---- == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- [[nodiscard]] constexpr T const&& operator*() const && noexcept; ---- Member access operators == Synopses Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- [[nodiscard]] constexpr T* link:#mrdocs-Expected-01-operator_ptr-0c[operator‐>]() noexcept; ---- [.small]#link:#mrdocs-Expected-01-operator_ptr-0c[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- [[nodiscard]] constexpr T const* link:#mrdocs-Expected-01-operator_ptr-0b[operator‐>]() const noexcept; ---- [.small]#link:#mrdocs-Expected-01-operator_ptr-0b[_» more..._]# == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- [[nodiscard]] constexpr T* operator‐>() noexcept; ---- == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- [[nodiscard]] constexpr T const* operator‐>() const noexcept; ---- == Synopses Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class Fn> constexpr link:#mrdocs-Expected-01[Expected] link:#mrdocs-Expected-01-or_else-05[or_else](Fn&& f) &; ---- [.small]#link:#mrdocs-Expected-01-or_else-05[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class Fn> constexpr link:#mrdocs-Expected-01[Expected] link:#mrdocs-Expected-01-or_else-00[or_else](Fn&& f) const &; ---- [.small]#link:#mrdocs-Expected-01-or_else-00[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class Fn> constexpr link:#mrdocs-Expected-01[Expected] link:#mrdocs-Expected-01-or_else-06[or_else](Fn&& f) &&; ---- [.small]#link:#mrdocs-Expected-01-or_else-06[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class Fn> constexpr link:#mrdocs-Expected-01[Expected] link:#mrdocs-Expected-01-or_else-09[or_else](Fn&& f) const &&; ---- [.small]#link:#mrdocs-Expected-01-or_else-09[_» more..._]# == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class Fn> constexpr link:#mrdocs-Expected-01[Expected] or_else(Fn&& f) &; ---- == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class Fn> constexpr link:#mrdocs-Expected-01[Expected] or_else(Fn&& f) const &; ---- == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class Fn> constexpr link:#mrdocs-Expected-01[Expected] or_else(Fn&& f) &&; ---- == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class Fn> constexpr link:#mrdocs-Expected-01[Expected] or_else(Fn&& f) const &&; ---- == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr void swap(link:#mrdocs-Expected-01[Expected]& x) noexcept(std::is_nothrow_move_constructible_v<E> && std::is_nothrow_swappable_v<E &>) requires std::is_swappable_v<E>; ---- == Synopses Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class Fn> constexpr auto link:#mrdocs-Expected-01-transform-081[transform](Fn&& f) &; ---- [.small]#link:#mrdocs-Expected-01-transform-081[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class Fn> constexpr auto link:#mrdocs-Expected-01-transform-00[transform](Fn&& f) const &; ---- [.small]#link:#mrdocs-Expected-01-transform-00[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class Fn> constexpr auto link:#mrdocs-Expected-01-transform-03[transform](Fn&& f) &&; ---- [.small]#link:#mrdocs-Expected-01-transform-03[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class Fn> constexpr auto link:#mrdocs-Expected-01-transform-085[transform](Fn&& f) const &&; ---- [.small]#link:#mrdocs-Expected-01-transform-085[_» more..._]# == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class Fn> constexpr auto transform(Fn&& f) &; ---- == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class Fn> constexpr auto transform(Fn&& f) const &; ---- == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class Fn> constexpr auto transform(Fn&& f) &&; ---- == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class Fn> constexpr auto transform(Fn&& f) const &&; ---- == Synopses Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class Fn> constexpr auto link:#mrdocs-Expected-01-transform_error-067[transform_error](Fn&& f) &; ---- [.small]#link:#mrdocs-Expected-01-transform_error-067[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class Fn> constexpr auto link:#mrdocs-Expected-01-transform_error-0e[transform_error](Fn&& f) const &; ---- [.small]#link:#mrdocs-Expected-01-transform_error-0e[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class Fn> constexpr auto link:#mrdocs-Expected-01-transform_error-02[transform_error](Fn&& f) &&; ---- [.small]#link:#mrdocs-Expected-01-transform_error-02[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class Fn> constexpr auto link:#mrdocs-Expected-01-transform_error-064[transform_error](Fn&& f) const &&; ---- [.small]#link:#mrdocs-Expected-01-transform_error-064[_» more..._]# == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class Fn> constexpr auto transform_error(Fn&& f) &; ---- == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class Fn> constexpr auto transform_error(Fn&& f) const &; ---- == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class Fn> constexpr auto transform_error(Fn&& f) &&; ---- == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class Fn> constexpr auto transform_error(Fn&& f) const &&; ---- == Synopses Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr T& link:#mrdocs-Expected-01-value-0a0[value]() &; ---- [.small]#link:#mrdocs-Expected-01-value-0a0[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr T const& link:#mrdocs-Expected-01-value-0c[value]() const &; ---- [.small]#link:#mrdocs-Expected-01-value-0c[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr T&& link:#mrdocs-Expected-01-value-05[value]() &&; ---- [.small]#link:#mrdocs-Expected-01-value-05[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr T const&& link:#mrdocs-Expected-01-value-0a2[value]() const &&; ---- [.small]#link:#mrdocs-Expected-01-value-0a2[_» more..._]# == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr T& value() &; ---- == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr T const& value() const &; ---- == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr T&& value() &&; ---- == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr T const&& value() const &&; ---- == Synopses Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class U> constexpr std::remove_reference_t<T> link:#mrdocs-Expected-01-value_or-02[value_or](U&& u) const &; ---- [.small]#link:#mrdocs-Expected-01-value_or-02[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class U> constexpr std::remove_reference_t<T> link:#mrdocs-Expected-01-value_or-0c5[value_or](U&& u) &&; ---- [.small]#link:#mrdocs-Expected-01-value_or-0c5[_» more..._]# == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class U> constexpr std::remove_reference_t<T> value_or(U&& u) const &; ---- == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class U> constexpr std::remove_reference_t<T> value_or(U&& u) &&; ---- Conversion to `bool` == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- [[nodiscard]] constexpr explicit operator bool() const noexcept; ---- == Return Value The object converted to `bool` == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- T* p_; ---- == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- E unex_; ---- Stores only the operand of the explicit‐specifier or noexcept‐specifier as a string. The complete expression is not preserved at this time. This is a temporary design and may be improved in the future. == Synopsis Declared in `<mrdocs/Metadata/Specifiers/ExplicitInfo.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- struct ExplicitInfo; ---- == Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-ExplicitInfo-operator_3way[`operator<=>`] | Three‐way comparison operator |=== == Data Members [cols=2] |=== | Name | Description | link:#mrdocs-ExplicitInfo-Implicit[`Implicit`] | Whether an explicit‐specifier was user‐written. | link:#mrdocs-ExplicitInfo-Kind[`Kind`] | The evaluated exception specification. | link:#mrdocs-ExplicitInfo-Operand[`Operand`] | The operand of the explicit‐specifier, if any. |=== == Non-Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-toString-082[`toString`] | Convert ExplicitInfo to a string. |=== Three‐way comparison operator == Synopsis Declared in `<mrdocs/Metadata/Specifiers/ExplicitInfo.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr auto operator<=>(link:#mrdocs-ExplicitInfo[ExplicitInfo] const& rhs) const = default; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== Whether an explicit‐specifier was user‐written. == Synopsis Declared in `<mrdocs/Metadata/Specifiers/ExplicitInfo.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool Implicit = true; ---- The evaluated exception specification. == Synopsis Declared in `<mrdocs/Metadata/Specifiers/ExplicitInfo.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-ExplicitKind[ExplicitKind] Kind = ExplicitKind::False; ---- The operand of the explicit‐specifier, if any. == Synopsis Declared in `<mrdocs/Metadata/Specifiers/ExplicitInfo.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::string Operand; ---- Represents an expression == Synopsis Declared in `<mrdocs/Metadata/Expression.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- struct ExprInfo; ---- == Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-ExprInfo-asExpr-00[`asExpr`] | | link:#mrdocs-ExprInfo-operator_3way[`operator<=>`] | Three‐way comparison operator |=== == Data Members [cols=2] |=== | Name | Description | link:#mrdocs-ExprInfo-Written[`Written`] | The expression, as written |=== == Derived Classes [cols=2] |=== | Name | Description | link:#mrdocs-ConstantExprInfo[`ConstantExprInfo`] | Represents an expression with a (possibly known) value |=== == Synopses Declared in `<mrdocs/Metadata/Expression.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-ExprInfo[ExprInfo]& link:#mrdocs-ExprInfo-asExpr-08[asExpr]() noexcept; ---- [.small]#link:#mrdocs-ExprInfo-asExpr-08[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-ExprInfo[ExprInfo] const& link:#mrdocs-ExprInfo-asExpr-0d[asExpr]() const noexcept; ---- [.small]#link:#mrdocs-ExprInfo-asExpr-0d[_» more..._]# == Synopsis Declared in `<mrdocs/Metadata/Expression.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-ExprInfo[ExprInfo]& asExpr() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Expression.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-ExprInfo[ExprInfo] const& asExpr() const noexcept; ---- Three‐way comparison operator == Synopsis Declared in `<mrdocs/Metadata/Expression.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr auto operator<=>(link:#mrdocs-ExprInfo[ExprInfo] const& rhs) const = default; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== The expression, as written == Synopsis Declared in `<mrdocs/Metadata/Expression.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::string Written; ---- A format string with source location. == Synopsis Declared in `<mrdocs/Support/Error.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class... Args> struct FormatString; ---- == Member Functions [cols=1] |=== | Name | link:#mrdocs-FormatString-2constructor[`FormatString`] [.small]#[constructor]# |=== == Data Members [cols=1] |=== | Name | link:#mrdocs-FormatString-fs[`fs`] | link:#mrdocs-FormatString-loc[`loc`] |=== == Non-Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-formatError[`formatError`] | Return a formatted error. |=== == Synopsis Declared in `<mrdocs/Support/Error.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class T> FormatString( T const& fs_, std::source_location loc_ = source_location::current()); ---- == Synopsis Declared in `<mrdocs/Support/Error.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::string_view fs; ---- == Synopsis Declared in `<mrdocs/Support/Error.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::source_location loc; ---- Info for friend declarations. == Synopsis Declared in `<mrdocs/Metadata/Symbol/Friend.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- struct FriendInfo final ---- == Data Members [cols=2] |=== | Name | Description | link:#mrdocs-FriendInfo-Type[`Type`] | Befriended type. | link:#mrdocs-FriendInfo-id[`id`] | Befriended symbol. |=== == Description ‐ Friendship is not transitive ‐ Friendship is not inherited ‐ Access specifiers do not affect the meaning of friend declarations The friends of a record are stored directly in the record's metadata. If the friend declaration is documented, the documentation is stored in the befriended symbol's metadata rather than in the relationship. Befriended type. == Synopsis Declared in `<mrdocs/Metadata/Symbol/Friend.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-Optional-03[Optional<Polymorphic<Type>>] Type = std::nullopt; ---- == Description This member is nullable and only used when befriending a type. Befriended symbol. == Synopsis Declared in `<mrdocs/Metadata/Symbol/Friend.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-SymbolID[SymbolID] id = = SymbolID::invalid; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/Function.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- struct FunctionSymbol final : link:#mrdocs-SymbolCommonBase-015[SymbolCommonBase<SymbolKind::Function>] ---- == Base Classes [cols=2] |=== | Name | Description | `link:#mrdocs-SymbolCommonBase-015[SymbolCommonBase<SymbolKind::Function>]` | Base class for providing variant discriminator functions. |=== == Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-FunctionSymbol-2constructor[`FunctionSymbol`] [.small]#[constructor]# | Construct from `SymbolID` | link:#mrdocs-FunctionSymbol-operator_3way-0b[`operator<=>`] | Three‐way comparison operators |=== == Static Member Functions [cols=1] |=== | Name | link:#mrdocs-FunctionSymbol-isConcept[`isConcept`] | link:#mrdocs-FunctionSymbol-isEnum[`isEnum`] | link:#mrdocs-FunctionSymbol-isEnumConstant[`isEnumConstant`] | link:#mrdocs-FunctionSymbol-isFunction[`isFunction`] | link:#mrdocs-FunctionSymbol-isGuide[`isGuide`] | link:#mrdocs-FunctionSymbol-isNamespace[`isNamespace`] | link:#mrdocs-FunctionSymbol-isNamespaceAlias[`isNamespaceAlias`] | link:#mrdocs-FunctionSymbol-isOverloads[`isOverloads`] | link:#mrdocs-FunctionSymbol-isRecord[`isRecord`] | link:#mrdocs-FunctionSymbol-isTypedef[`isTypedef`] | link:#mrdocs-FunctionSymbol-isUsing[`isUsing`] | link:#mrdocs-FunctionSymbol-isVariable[`isVariable`] |=== == Data Members [cols=2] |=== | Name | Description | link:#mrdocs-FunctionSymbol-Attributes[`Attributes`] | | link:#mrdocs-FunctionSymbol-Class[`Class`] | The class of function this is | link:#mrdocs-FunctionSymbol-Constexpr[`Constexpr`] | | link:#mrdocs-FunctionSymbol-Explicit[`Explicit`] | | link:#mrdocs-FunctionSymbol-HasOverrideAttr[`HasOverrideAttr`] | | link:#mrdocs-FunctionSymbol-HasTrailingReturn[`HasTrailingReturn`] | | link:#mrdocs-FunctionSymbol-IsConst[`IsConst`] | | link:#mrdocs-FunctionSymbol-IsDefaulted[`IsDefaulted`] | | link:#mrdocs-FunctionSymbol-IsDeleted[`IsDeleted`] | | link:#mrdocs-FunctionSymbol-IsDeletedAsWritten[`IsDeletedAsWritten`] | | link:#mrdocs-FunctionSymbol-IsExplicitObjectMemberFunction[`IsExplicitObjectMemberFunction`] | | link:#mrdocs-FunctionSymbol-IsExplicitlyDefaulted[`IsExplicitlyDefaulted`] | | link:#mrdocs-FunctionSymbol-IsFinal[`IsFinal`] | | link:#mrdocs-FunctionSymbol-IsNoReturn[`IsNoReturn`] | | link:#mrdocs-FunctionSymbol-IsNodiscard[`IsNodiscard`] | | link:#mrdocs-FunctionSymbol-IsPure[`IsPure`] | | link:#mrdocs-FunctionSymbol-IsRecordMethod[`IsRecordMethod`] | | link:#mrdocs-FunctionSymbol-IsVariadic[`IsVariadic`] | | link:#mrdocs-FunctionSymbol-IsVirtual[`IsVirtual`] | | link:#mrdocs-FunctionSymbol-IsVirtualAsWritten[`IsVirtualAsWritten`] | | link:#mrdocs-FunctionSymbol-IsVolatile[`IsVolatile`] | | link:#mrdocs-FunctionSymbol-Noexcept[`Noexcept`] | | link:#mrdocs-FunctionSymbol-OverloadedOperator[`OverloadedOperator`] | | link:#mrdocs-FunctionSymbol-Params[`Params`] | List of parameters. | link:#mrdocs-FunctionSymbol-RefQualifier[`RefQualifier`] | | link:#mrdocs-FunctionSymbol-Requires[`Requires`] | | link:#mrdocs-FunctionSymbol-ReturnType[`ReturnType`] | Info about the return type of this function. | link:#mrdocs-FunctionSymbol-StorageClass[`StorageClass`] | | link:#mrdocs-FunctionSymbol-Template[`Template`] | When present, this function is a template or specialization. |=== == Static Data Members [cols=1] |=== | Name | link:#mrdocs-FunctionSymbol-kind_id[`kind_id`] |=== == Non-Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-merge-00c[`merge`] | Merges two Symbol objects. | link:#mrdocs-overrides[`overrides`] | Determine if one function would override the other |=== Construct from `SymbolID` == Synopsis Declared in `<mrdocs/Metadata/Symbol/Function.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- explicit FunctionSymbol(link:#mrdocs-SymbolID[SymbolID] const& ID) noexcept; ---- == Parameters [cols=2] |=== | Name | Description | *ID* | The object to copy construct from |=== Three‐way comparison operators == Synopses Declared in `<mrdocs/Metadata/Symbol/Function.hpp>` Three‐way comparison operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::strong_ordering link:#mrdocs-FunctionSymbol-operator_3way-08[operator<=>](link:#mrdocs-FunctionSymbol[FunctionSymbol] const& other) const; ---- [.small]#link:#mrdocs-FunctionSymbol-operator_3way-08[_» more..._]# Three‐way comparison operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- auto link:#mrdocs-FunctionSymbol-operator_3way-0a[operator<=>](link:#mrdocs-SymbolCommonBase-015[SymbolCommonBase<mrdocs::SymbolKind::Function>] const& rhs) const = default; ---- [.small]#link:#mrdocs-FunctionSymbol-operator_3way-0a[_» more..._]# Three‐way comparison operator == Synopsis Declared in `<mrdocs/Metadata/Symbol/Function.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::strong_ordering operator<=>(link:#mrdocs-FunctionSymbol[FunctionSymbol] const& other) const; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *other* | The right operand |=== Three‐way comparison operator == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- auto operator<=>(link:#mrdocs-SymbolCommonBase-015[SymbolCommonBase<mrdocs::SymbolKind::Function>] const& rhs) const = default; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isConcept() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isEnum() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isEnumConstant() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isFunction() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isGuide() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isNamespace() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isNamespaceAlias() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isOverloads() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isRecord() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isTypedef() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isUsing() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isVariable() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/Function.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::vector<std::string> Attributes; ---- The class of function this is == Synopsis Declared in `<mrdocs/Metadata/Symbol/Function.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-FunctionClass[FunctionClass] Class = FunctionClass::Normal; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/Function.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-ConstexprKind[ConstexprKind] Constexpr = ConstexprKind::None; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/Function.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-ExplicitInfo[ExplicitInfo] Explicit; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/Function.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool HasOverrideAttr = false; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/Function.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool HasTrailingReturn = false; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/Function.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool IsConst = false; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/Function.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool IsDefaulted = false; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/Function.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool IsDeleted = false; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/Function.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool IsDeletedAsWritten = false; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/Function.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool IsExplicitObjectMemberFunction = false; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/Function.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool IsExplicitlyDefaulted = false; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/Function.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool IsFinal = false; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/Function.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool IsNoReturn = false; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/Function.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool IsNodiscard = false; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/Function.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool IsPure = false; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/Function.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool IsRecordMethod = false; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/Function.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool IsVariadic = false; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/Function.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool IsVirtual = false; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/Function.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool IsVirtualAsWritten = false; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/Function.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool IsVolatile = false; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/Function.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-NoexceptInfo[NoexceptInfo] Noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/Function.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-OperatorKind[OperatorKind] OverloadedOperator = OperatorKind::None; ---- List of parameters. == Synopsis Declared in `<mrdocs/Metadata/Symbol/Function.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::vector<Param> Params; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/Function.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-ReferenceKind[ReferenceKind] RefQualifier = ReferenceKind::None; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/Function.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-ExprInfo[ExprInfo] Requires; ---- Info about the return type of this function. == Synopsis Declared in `<mrdocs/Metadata/Symbol/Function.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-Polymorphic[Polymorphic<Type>] ReturnType = Polymorphic<Type>(AutoType{}); ---- == Description If the function has a deduced return type, this contains `auto` to indicate that. By default, we also use `auto` in the member to indicate an unknown return type. == Synopsis Declared in `<mrdocs/Metadata/Symbol/Function.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-StorageClassKind[StorageClassKind] StorageClass = StorageClassKind::None; ---- When present, this function is a template or specialization. == Synopsis Declared in `<mrdocs/Metadata/Symbol/Function.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-Optional-03[Optional<TemplateInfo>] Template; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static link:#mrdocs-SymbolKind[SymbolKind] kind_id; ---- == Synopsis Declared in `<mrdocs/Metadata/Type/FunctionType.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- struct FunctionType final : link:#mrdocs-TypeCommonBase-0e[TypeCommonBase<TypeKind::Function>] ---- == Base Classes [cols=2] |=== | Name | Description | `link:#mrdocs-TypeCommonBase-0e[TypeCommonBase<TypeKind::Function>]` | |=== == Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-FunctionType-operator_3way-05[`operator<=>`] | Three‐way comparison operators |=== == Static Member Functions [cols=1] |=== | Name | link:#mrdocs-FunctionType-isArray[`isArray`] | link:#mrdocs-FunctionType-isAuto[`isAuto`] | link:#mrdocs-FunctionType-isDecltype[`isDecltype`] | link:#mrdocs-FunctionType-isFunction[`isFunction`] | link:#mrdocs-FunctionType-isLValueReference[`isLValueReference`] | link:#mrdocs-FunctionType-isMemberPointer[`isMemberPointer`] | link:#mrdocs-FunctionType-isNamed[`isNamed`] | link:#mrdocs-FunctionType-isPointer[`isPointer`] | link:#mrdocs-FunctionType-isRValueReference[`isRValueReference`] |=== == Data Members [cols=1] |=== | Name | link:#mrdocs-FunctionType-ExceptionSpec[`ExceptionSpec`] | link:#mrdocs-FunctionType-IsVariadic[`IsVariadic`] | link:#mrdocs-FunctionType-ParamTypes[`ParamTypes`] | link:#mrdocs-FunctionType-RefQualifier[`RefQualifier`] | link:#mrdocs-FunctionType-ReturnType[`ReturnType`] |=== == Static Data Members [cols=1] |=== | Name | link:#mrdocs-FunctionType-kind_id[`kind_id`] |=== == Non-Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-innerType-06[`innerType`] | Return the inner type. | link:#mrdocs-innerType-09[`innerType`] | Return the inner type. | link:#mrdocs-innerTypePtr-08[`innerTypePtr`] | Return the inner type. | link:#mrdocs-innerTypePtr-0a[`innerTypePtr`] | Return the inner type. |=== Three‐way comparison operators == Synopses Declared in `<mrdocs/Metadata/Type/FunctionType.hpp>` Three‐way comparison operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::strong_ordering link:#mrdocs-FunctionType-operator_3way-01[operator<=>](link:#mrdocs-FunctionType[FunctionType] const& rhs) const; ---- [.small]#link:#mrdocs-FunctionType-operator_3way-01[_» more..._]# Three‐way comparison operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr auto link:#mrdocs-FunctionType-operator_3way-09[operator<=>](link:#mrdocs-TypeCommonBase-0e[TypeCommonBase<mrdocs::TypeKind::Function>] const& rhs) const = default; ---- [.small]#link:#mrdocs-FunctionType-operator_3way-09[_» more..._]# Three‐way comparison operator == Synopsis Declared in `<mrdocs/Metadata/Type/FunctionType.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::strong_ordering operator<=>(link:#mrdocs-FunctionType[FunctionType] const& rhs) const; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== Three‐way comparison operator == Synopsis Declared in `<mrdocs/Metadata/Type/TypeBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr auto operator<=>(link:#mrdocs-TypeCommonBase-0e[TypeCommonBase<mrdocs::TypeKind::Function>] const& rhs) const = default; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== == Synopsis Declared in `<mrdocs/Metadata/Type/TypeBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isArray() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Type/TypeBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isAuto() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Type/TypeBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isDecltype() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Type/TypeBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isFunction() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Type/TypeBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isLValueReference() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Type/TypeBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isMemberPointer() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Type/TypeBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isNamed() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Type/TypeBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isPointer() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Type/TypeBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isRValueReference() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Type/FunctionType.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-NoexceptInfo[NoexceptInfo] ExceptionSpec; ---- == Synopsis Declared in `<mrdocs/Metadata/Type/FunctionType.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool IsVariadic = false; ---- == Synopsis Declared in `<mrdocs/Metadata/Type/FunctionType.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::vector<Polymorphic<Type>> ParamTypes; ---- == Synopsis Declared in `<mrdocs/Metadata/Type/FunctionType.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-ReferenceKind[ReferenceKind] RefQualifier = ReferenceKind::None; ---- == Synopsis Declared in `<mrdocs/Metadata/Type/FunctionType.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-Polymorphic[Polymorphic<Type>] ReturnType = Polymorphic<Type>(AutoType{}); ---- == Synopsis Declared in `<mrdocs/Metadata/Type/TypeBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static link:#mrdocs-TypeKind[TypeKind] kind_id; ---- Base class for documentation generators. == Synopsis Declared in `<mrdocs/Generator.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- class Generator; ---- == Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-Generator-2destructor[`~Generator`] [.small]#[destructor]# [.small]#[virtual]# | Destructor. | link:#mrdocs-Generator-build-0b[`build`] | Build reference documentation for the corpus. | link:#mrdocs-Generator-buildOne-0f[`buildOne`] | `buildOne` overloads | link:#mrdocs-Generator-buildOneString[`buildOneString`] | Build the reference as a single page to a string. | link:#mrdocs-Generator-displayName[`displayName`] [.small]#[virtual]# | Return the display name of the generator. | link:#mrdocs-Generator-fileExtension[`fileExtension`] [.small]#[virtual]# | Return the extension or tag of the generator. | link:#mrdocs-Generator-id[`id`] [.small]#[virtual]# | Return the symbolic name of the generator. |=== Destructor. == Synopsis Declared in `<mrdocs/Generator.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- virtual ~Generator() noexcept; ---- Build reference documentation for the corpus. == Synopses Declared in `<mrdocs/Generator.hpp>` Build reference documentation for the corpus. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-Expected-0a[Expected<void>] link:#mrdocs-Generator-build-00[build](link:#mrdocs-Corpus[Corpus] const& corpus) const; ---- [.small]#link:#mrdocs-Generator-build-00[_» more..._]# Build reference documentation for the corpus. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- virtual link:#mrdocs-Expected-0a[Expected<void>] link:#mrdocs-Generator-build-0d[build]( std::string_view outputPath, link:#mrdocs-Corpus[Corpus] const& corpus) const; ---- [.small]#link:#mrdocs-Generator-build-0d[_» more..._]# == Return Value The error, if any occurred. == Parameters [cols=2] |=== | Name | Description | *corpus* | The symbols to emit. The generator may modify the contents of the object before returning. | *outputPath* | A directory or filename. |=== Build reference documentation for the corpus. == Synopsis Declared in `<mrdocs/Generator.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-Expected-0a[Expected<void>] build(link:#mrdocs-Corpus[Corpus] const& corpus) const; ---- == Description This function invokes the generator to emit the documentation using the corpus configuration options to determine the output location. == Return Value The error, if any occurred. == Parameters [cols=2] |=== | Name | Description | *corpus* | The symbols to emit. The generator may modify the contents of the object before returning. |=== Build reference documentation for the corpus. == Synopsis Declared in `<mrdocs/Generator.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- virtual link:#mrdocs-Expected-0a[Expected<void>] build( std::string_view outputPath, link:#mrdocs-Corpus[Corpus] const& corpus) const; ---- == Description This function invokes the generator to emit the documentation using `outputPath` as a parameter indicating where the output should go. This can be a directory or a filename depending on the generator and how it is configured. The default implentation assumes the output is single‐page and emits the file `reference.ext` using link:#mrdocs-Generator-buildOne-0f[`buildOne`] to generate the content. The typical implementation will have behavior similar to the default implementation if the output is single‐page, or will iterate over the symbols in the corpus to generate multiple files if the output is multi‐page. == Return Value The error, if any occurred. == Parameters [cols=2] |=== | Name | Description | *outputPath* | A directory or filename. | *corpus* | The symbols to emit. The generator may modify the contents of the object before returning. |=== `buildOne` overloads == Synopses Declared in `<mrdocs/Generator.hpp>` Build the reference as a single page to a file. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-Expected-0a[Expected<void>] link:#mrdocs-Generator-buildOne-0a[buildOne]( std::string_view fileName, link:#mrdocs-Corpus[Corpus] const& corpus) const; ---- [.small]#link:#mrdocs-Generator-buildOne-0a[_» more..._]# Build reference documentation for the corpus. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- virtual link:#mrdocs-Expected-0a[Expected<void>] link:#mrdocs-Generator-buildOne-01[buildOne]( std::ostream& os, link:#mrdocs-Corpus[Corpus] const& corpus) const = 0; ---- [.small]#link:#mrdocs-Generator-buildOne-01[_» more..._]# == Return Value The error, if any occurred. == Parameters [cols=2] |=== | Name | Description | *fileName* | The file to write. If the file already exists, it will be overwritten. | *corpus* | The metadata to emit. | *os* | The stream to write to. |=== Build the reference as a single page to a file. == Synopsis Declared in `<mrdocs/Generator.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-Expected-0a[Expected<void>] buildOne( std::string_view fileName, link:#mrdocs-Corpus[Corpus] const& corpus) const; ---- == Thread Safety * Different `corpus` object: may be called concurrently. * Same `corpus` object: may not be called concurrently. == Return Value The error, if any occurred. == Parameters [cols=2] |=== | Name | Description | *fileName* | The file to write. If the file already exists, it will be overwritten. | *corpus* | The metadata to emit. |=== Build reference documentation for the corpus. == Synopsis Declared in `<mrdocs/Generator.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- virtual link:#mrdocs-Expected-0a[Expected<void>] buildOne( std::ostream& os, link:#mrdocs-Corpus[Corpus] const& corpus) const = 0; ---- == Description This function invokes the generator to emit the full documentation to an output stream, as a single entity. == Thread Safety * Different `corpus` object: may be called concurrently. * Same `corpus` object: may not be called concurrently. == Return Value The error, if any occurred. == Parameters [cols=2] |=== | Name | Description | *os* | The stream to write to. | *corpus* | The metadata to emit. |=== Build the reference as a single page to a string. == Synopsis Declared in `<mrdocs/Generator.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-Expected-0a[Expected<void>] buildOneString( std::string& dest, link:#mrdocs-Corpus[Corpus] const& corpus) const; ---- == Return Value The error, if any occurred. == Parameters [cols=2] |=== | Name | Description | *dest* | The string to hold the result. For the duration of the call, this must not be accessed by any other threads. | *corpus* | The metadata to emit. |=== Return the display name of the generator. == Synopsis Declared in `<mrdocs/Generator.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- virtual std::string_view displayName() const noexcept = 0; ---- == Return Value the display name of the generator. Return the extension or tag of the generator. == Synopsis Declared in `<mrdocs/Generator.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- virtual std::string_view fileExtension() const noexcept = 0; ---- == Description This should be in all lower case. Examples of tags are: * "adoc" Asciidoctor * "xml" XML * "html" HTML The returned string should not include a leading period. == Return Value the extension or tag of the generator. Return the symbolic name of the generator. == Synopsis Declared in `<mrdocs/Generator.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- virtual std::string_view id() const noexcept = 0; ---- == Description This is a short, unique string which identifies the generator in command line options and in configuration files. == Return Value the symbolic name of the generator. A dynamic list of link:#mrdocs-Generator[`Generator`] elements. == Synopsis Declared in `<mrdocs/Generators.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- class Generators; ---- == Types [cols=1] |=== | Name | link:#mrdocs-Generators-const_iterator[`const_iterator`] | link:#mrdocs-Generators-const_reference[`const_reference`] | link:#mrdocs-Generators-difference_type[`difference_type`] | link:#mrdocs-Generators-iterator[`iterator`] | link:#mrdocs-Generators-reference[`reference`] | link:#mrdocs-Generators-size_type[`size_type`] | link:#mrdocs-Generators-value_type[`value_type`] |=== == Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-Generators-2destructor[`~Generators`] [.small]#[destructor]# [.small]#[virtual]# | Destructor. | link:#mrdocs-Generators-begin[`begin`] [.small]#[virtual]# | Return an iterator to the beginning. | link:#mrdocs-Generators-end[`end`] [.small]#[virtual]# | Return an iterator to the end. | link:#mrdocs-Generators-find[`find`] [.small]#[virtual]# | Return a pointer to the matching generator. |=== == Protected Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-Generators-2constructor[`Generators`] [.small]#[constructor]# | Default constructor |=== == Non-Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-getGenerators[`getGenerators`] | Return a reference to the global Generators instance. |=== == Synopsis Declared in `<mrdocs/Generators.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- using const_iterator = link:#mrdocs-Generators-iterator[iterator]; ---- == Synopsis Declared in `<mrdocs/Generators.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- using const_reference = link:#mrdocs-Generators-value_type[value_type] const&; ---- == Synopsis Declared in `<mrdocs/Generators.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- using difference_type = std::ptrdiff_t; ---- == Synopsis Declared in `<mrdocs/Generators.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- using iterator = link:#mrdocs-Generators-value_type[value_type] const*; ---- == Synopsis Declared in `<mrdocs/Generators.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- using reference = link:#mrdocs-Generators-value_type[value_type] const&; ---- == Synopsis Declared in `<mrdocs/Generators.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- using size_type = std::size_t; ---- == Synopsis Declared in `<mrdocs/Generators.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- using value_type = link:#mrdocs-Generator[Generator] const*; ---- Destructor. == Synopsis Declared in `<mrdocs/Generators.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- virtual ~Generators() noexcept; ---- Return an iterator to the beginning. == Synopsis Declared in `<mrdocs/Generators.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- virtual link:#mrdocs-Generators-iterator[iterator] begin() const noexcept = 0; ---- == Return Value an iterator to the beginning. Return an iterator to the end. == Synopsis Declared in `<mrdocs/Generators.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- virtual link:#mrdocs-Generators-iterator[iterator] end() const noexcept = 0; ---- == Return Value an iterator to the end. Return a pointer to the matching generator. == Synopsis Declared in `<mrdocs/Generators.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- virtual link:#mrdocs-Generator[Generator] const* find(std::string_view name) const noexcept = 0; ---- == Return Value A pointer to the generator, or `nullptr`. == Parameters [cols=2] |=== | Name | Description | *name* | The name of the generator. The name must be an exact match, including case. |=== Default constructor == Synopsis Declared in `<mrdocs/Generators.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr Generators() noexcept = default; ---- A glob pattern matcher == Synopsis Declared in `<mrdocs/Support/Glob.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- class GlobPattern; ---- == Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-GlobPattern-2constructor-02[`GlobPattern`] [.small]#[constructor]# | Constructors | link:#mrdocs-GlobPattern-2destructor[`~GlobPattern`] [.small]#[destructor]# | Destructor | link:#mrdocs-GlobPattern-operator_assign-0fa1[`operator=`] | Assignment operators | link:#mrdocs-GlobPattern-isLiteral[`isLiteral`] | Checks if the glob pattern is a literal string. | link:#mrdocs-GlobPattern-match[`match`] | Matches the given string against the glob pattern. | link:#mrdocs-GlobPattern-matchPatternPrefix[`matchPatternPrefix`] | Matches the start of a given string against the glob pattern. | link:#mrdocs-GlobPattern-pattern[`pattern`] | Returns the glob pattern. |=== == Static Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-GlobPattern-create-08[`create`] | Constructs a GlobPattern with the given pattern. |=== == Description * "*" matches all characters except delimiters. * "**" matches all characters * "?" matches any single character. * "[<chars>]" matches one character in the bracket. * "[<char>‐<char>]" matches one character in the bracket range. * "[ˆ<chars>]" or "[!<chars>]" matches one character not in the bracket. * "{<glob>,...}" matches one of the globs in the list. * "\" escapes the next character so it is treated as a literal. Nested brace expansions "{<glob>,"{<glob>,...}",...}" are not supported. Constructors == Synopses Declared in `<mrdocs/Support/Glob.hpp>` Construct an empty GlobPattern. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-GlobPattern-2constructor-07[GlobPattern](); ---- [.small]#link:#mrdocs-GlobPattern-2constructor-07[_» more..._]# Copy constructor [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-GlobPattern-2constructor-00[GlobPattern](link:#mrdocs-GlobPattern[GlobPattern] const& other); ---- [.small]#link:#mrdocs-GlobPattern-2constructor-00[_» more..._]# Move constructor [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-GlobPattern-2constructor-0d[GlobPattern](link:#mrdocs-GlobPattern[GlobPattern]&& other) noexcept; ---- [.small]#link:#mrdocs-GlobPattern-2constructor-0d[_» more..._]# Construct an empty GlobPattern. == Synopsis Declared in `<mrdocs/Support/Glob.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- GlobPattern(); ---- == Description An empty GlobPattern will never match any string. Copy constructor == Synopsis Declared in `<mrdocs/Support/Glob.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- GlobPattern(link:#mrdocs-GlobPattern[GlobPattern] const& other); ---- == Parameters [cols=2] |=== | Name | Description | *other* | The object to copy construct from |=== Move constructor == Synopsis Declared in `<mrdocs/Support/Glob.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- GlobPattern(link:#mrdocs-GlobPattern[GlobPattern]&& other) noexcept; ---- == Parameters [cols=2] |=== | Name | Description | *other* | The object to move construct from |=== Destructor == Synopsis Declared in `<mrdocs/Support/Glob.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- ~GlobPattern(); ---- Assignment operators == Synopses Declared in `<mrdocs/Support/Glob.hpp>` Copy assignment [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-GlobPattern[GlobPattern]& link:#mrdocs-GlobPattern-operator_assign-0ff[operator=](link:#mrdocs-GlobPattern[GlobPattern] const& other); ---- [.small]#link:#mrdocs-GlobPattern-operator_assign-0ff[_» more..._]# Move assignment [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-GlobPattern[GlobPattern]& link:#mrdocs-GlobPattern-operator_assign-0fa5[operator=](link:#mrdocs-GlobPattern[GlobPattern]&& other) noexcept; ---- [.small]#link:#mrdocs-GlobPattern-operator_assign-0fa5[_» more..._]# Copy assignment == Synopsis Declared in `<mrdocs/Support/Glob.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-GlobPattern[GlobPattern]& operator=(link:#mrdocs-GlobPattern[GlobPattern] const& other); ---- == Return Value Reference to the current object == Parameters [cols=2] |=== | Name | Description | *other* | The object to copy assign from |=== Move assignment == Synopsis Declared in `<mrdocs/Support/Glob.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-GlobPattern[GlobPattern]& operator=(link:#mrdocs-GlobPattern[GlobPattern]&& other) noexcept; ---- == Return Value Reference to the current object == Parameters [cols=2] |=== | Name | Description | *other* | The object to move assign from |=== Checks if the glob pattern is a literal string. == Synopsis Declared in `<mrdocs/Support/Glob.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool isLiteral() const; ---- == Description This function determines if the glob pattern does not contain any special characters. In other words, it matches a single string. == Return Value true if the glob pattern is a literal string, false otherwise. Matches the given string against the glob pattern. == Synopsis Declared in `<mrdocs/Support/Glob.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool match( std::string_view str, char delimiter) const; ---- == Return Value true if the string matches the pattern, false otherwise. == Parameters [cols=2] |=== | Name | Description | *str* | The string to match against the pattern. | *delimiter* | The character that `*` does not match. |=== Matches the start of a given string against the glob pattern. == Synopsis Declared in `<mrdocs/Support/Glob.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool matchPatternPrefix( std::string_view prefix, char delimiter) const; ---- == Description This function determines if the given string with the specified `prefix` can potentially match the glob pattern. If the string matches the start of the pattern without failure, even if there are characters left in the string or the pattern, the function returns true. == Return Value true if the string prefix matches the pattern, false otherwise. == Parameters [cols=2] |=== | Name | Description | *prefix* | The string to match against the pattern. | *delimiter* | The character that `*` does not match. |=== Returns the glob pattern. == Synopsis Declared in `<mrdocs/Support/Glob.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::string_view pattern() const; ---- == Return Value The glob pattern as a string view. Constructs a GlobPattern with the given pattern. == Synopses Declared in `<mrdocs/Support/Glob.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- static link:#mrdocs-Expected-0a[Expected<GlobPattern>] link:#mrdocs-GlobPattern-create-03[create](std::string_view pattern); ---- [.small]#link:#mrdocs-GlobPattern-create-03[_» more..._]# Constructs a GlobPattern with the given pattern. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- static link:#mrdocs-Expected-0a[Expected<GlobPattern>] link:#mrdocs-GlobPattern-create-01[create]( std::string_view pattern, link:#mrdocs-Optional-03[Optional<std::size_t>] maxSubGlobs); ---- [.small]#link:#mrdocs-GlobPattern-create-01[_» more..._]# == Return Value The constructed GlobPattern, or an error if the pattern is invalid. == Parameters [cols=2] |=== | Name | Description | *pattern* | The glob pattern to use for matching. | *maxSubGlobs* | The maximum number of subpatterns allowed. If the pattern contains more subpatterns than this value, an error is returned. If not specified, there is no limit. |=== == Synopsis Declared in `<mrdocs/Support/Glob.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- static link:#mrdocs-Expected-0a[Expected<GlobPattern>] create(std::string_view pattern); ---- Constructs a GlobPattern with the given pattern. == Synopsis Declared in `<mrdocs/Support/Glob.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- static link:#mrdocs-Expected-0a[Expected<GlobPattern>] create( std::string_view pattern, link:#mrdocs-Optional-03[Optional<std::size_t>] maxSubGlobs); ---- == Return Value The constructed GlobPattern, or an error if the pattern is invalid. == Parameters [cols=2] |=== | Name | Description | *pattern* | The glob pattern to use for matching. | *maxSubGlobs* | The maximum number of subpatterns allowed. If the pattern contains more subpatterns than this value, an error is returned. If not specified, there is no limit. |=== Info for deduction guides. == Synopsis Declared in `<mrdocs/Metadata/Symbol/Guide.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- struct GuideSymbol final : link:#mrdocs-SymbolCommonBase-015[SymbolCommonBase<SymbolKind::Guide>] ---- == Base Classes [cols=2] |=== | Name | Description | `link:#mrdocs-SymbolCommonBase-015[SymbolCommonBase<SymbolKind::Guide>]` | Base class for providing variant discriminator functions. |=== == Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-GuideSymbol-2constructor[`GuideSymbol`] [.small]#[constructor]# | Construct from `SymbolID` | link:#mrdocs-GuideSymbol-operator_3way-00[`operator<=>`] | Three‐way comparison operators |=== == Static Member Functions [cols=1] |=== | Name | link:#mrdocs-GuideSymbol-isConcept[`isConcept`] | link:#mrdocs-GuideSymbol-isEnum[`isEnum`] | link:#mrdocs-GuideSymbol-isEnumConstant[`isEnumConstant`] | link:#mrdocs-GuideSymbol-isFunction[`isFunction`] | link:#mrdocs-GuideSymbol-isGuide[`isGuide`] | link:#mrdocs-GuideSymbol-isNamespace[`isNamespace`] | link:#mrdocs-GuideSymbol-isNamespaceAlias[`isNamespaceAlias`] | link:#mrdocs-GuideSymbol-isOverloads[`isOverloads`] | link:#mrdocs-GuideSymbol-isRecord[`isRecord`] | link:#mrdocs-GuideSymbol-isTypedef[`isTypedef`] | link:#mrdocs-GuideSymbol-isUsing[`isUsing`] | link:#mrdocs-GuideSymbol-isVariable[`isVariable`] |=== == Data Members [cols=2] |=== | Name | Description | link:#mrdocs-GuideSymbol-Deduced[`Deduced`] | The pattern for the deduced specialization. | link:#mrdocs-GuideSymbol-Explicit[`Explicit`] | The explicit‐specifier, if any. | link:#mrdocs-GuideSymbol-Params[`Params`] | The parameters of the deduction guide. | link:#mrdocs-GuideSymbol-Template[`Template`] | Template head, if any. |=== == Static Data Members [cols=1] |=== | Name | link:#mrdocs-GuideSymbol-kind_id[`kind_id`] |=== == Non-Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-merge-00c[`merge`] | Merges two Symbol objects. |=== Construct from `SymbolID` == Synopsis Declared in `<mrdocs/Metadata/Symbol/Guide.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- explicit GuideSymbol(link:#mrdocs-SymbolID[SymbolID] ID) noexcept; ---- == Parameters [cols=2] |=== | Name | Description | *ID* | The object to construct from |=== Three‐way comparison operators == Synopses Declared in `<mrdocs/Metadata/Symbol/Guide.hpp>` Three‐way comparison operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::strong_ordering link:#mrdocs-GuideSymbol-operator_3way-0f[operator<=>](link:#mrdocs-GuideSymbol[GuideSymbol] const& other) const; ---- [.small]#link:#mrdocs-GuideSymbol-operator_3way-0f[_» more..._]# Three‐way comparison operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- auto link:#mrdocs-GuideSymbol-operator_3way-0c[operator<=>](link:#mrdocs-SymbolCommonBase-015[SymbolCommonBase<mrdocs::SymbolKind::Guide>] const& rhs) const = default; ---- [.small]#link:#mrdocs-GuideSymbol-operator_3way-0c[_» more..._]# Three‐way comparison operator == Synopsis Declared in `<mrdocs/Metadata/Symbol/Guide.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::strong_ordering operator<=>(link:#mrdocs-GuideSymbol[GuideSymbol] const& other) const; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *other* | The right operand |=== Three‐way comparison operator == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- auto operator<=>(link:#mrdocs-SymbolCommonBase-015[SymbolCommonBase<mrdocs::SymbolKind::Guide>] const& rhs) const = default; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isConcept() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isEnum() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isEnumConstant() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isFunction() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isGuide() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isNamespace() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isNamespaceAlias() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isOverloads() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isRecord() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isTypedef() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isUsing() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isVariable() noexcept; ---- The pattern for the deduced specialization. == Synopsis Declared in `<mrdocs/Metadata/Symbol/Guide.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-Polymorphic[Polymorphic<Type>] Deduced = Polymorphic<Type>(AutoType{}); ---- == Description This is always a SpecializationType. The explicit‐specifier, if any. == Synopsis Declared in `<mrdocs/Metadata/Symbol/Guide.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-ExplicitInfo[ExplicitInfo] Explicit; ---- The parameters of the deduction guide. == Synopsis Declared in `<mrdocs/Metadata/Symbol/Guide.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::vector<Param> Params; ---- Template head, if any. == Synopsis Declared in `<mrdocs/Metadata/Symbol/Guide.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-Optional-03[Optional<TemplateInfo>] Template; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static link:#mrdocs-SymbolKind[SymbolKind] kind_id; ---- A handlebars environment == Synopsis Declared in `<mrdocs/Support/Handlebars.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- class Handlebars; ---- == Types [cols=1] |=== | Name | link:#mrdocs-Handlebars-Tag[`Tag`] |=== == Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-Handlebars-2constructor[`Handlebars`] [.small]#[constructor]# | Construct a handlebars environment | link:#mrdocs-Handlebars-registerHelper[`registerHelper`] | Register a helper accessible by any template in the environment. | link:#mrdocs-Handlebars-registerLogger[`registerLogger`] | Register a logger | link:#mrdocs-Handlebars-registerPartial[`registerPartial`] | Register a partial | link:#mrdocs-Handlebars-render-0f[`render`] | Render a handlebars template | link:#mrdocs-Handlebars-render_to-04[`render_to`] | Render a handlebars template | link:#mrdocs-Handlebars-try_render-02[`try_render`] | Render a handlebars template | link:#mrdocs-Handlebars-try_render_to-046[`try_render_to`] | Render a handlebars template | link:#mrdocs-Handlebars-unregisterHelper[`unregisterHelper`] | Unregister a helper | link:#mrdocs-Handlebars-unregisterPartial[`unregisterPartial`] | Unregister a partial |=== == Non-Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-helpers-registerAntoraHelpers[`helpers::registerAntoraHelpers`] | Register all the Antora helpers into a Handlebars instance | link:#mrdocs-helpers-registerBuiltinHelpers[`helpers::registerBuiltinHelpers`] | Register all the built‐in helpers into a Handlebars instance | link:#mrdocs-helpers-registerConstructorHelpers[`helpers::registerConstructorHelpers`] | Register contructor helpers into a Handlebars instance | link:#mrdocs-helpers-registerContainerHelpers[`helpers::registerContainerHelpers`] | Register helpers to manipulate composite data types | link:#mrdocs-helpers-registerLogicalHelpers[`helpers::registerLogicalHelpers`] | Register logical helpers into a Handlebars instance | link:#mrdocs-helpers-registerMathHelpers[`helpers::registerMathHelpers`] | Register math helpers into a Handlebars instance | link:#mrdocs-helpers-registerStringHelpers[`helpers::registerStringHelpers`] | Register string helpers into a Handlebars instance | link:#mrdocs-helpers-registerTypeHelpers[`helpers::registerTypeHelpers`] | Register type helpers into a Handlebars instance | link:#mrdocs-js-registerHelper[`js::registerHelper`] | Register a JavaScript helper function |=== == Description This class implements a handlebars template environment. It is analogous to the complete state held by the handlebars.js module, including registered helpers and partials. In the general case, handlebars.js provides a global `Handlebars` environment where helpers and partials are registered: [,cpp] ---- {.js} let template = Handlebars.compile("{{foo}}"); let result = template({foo: "bar"}); ---- but also provides a way to create a new isolated environment with its own helpers and partials: [,cpp] ---- {.js} let OtherHandlebars = Handlebars.create(); let template = OtherHandlebars.compile("{{foo}}"); let result = template({foo: "bar"}); ---- In this implementation, however, there's no global environment. A new environment needs to be created explicitly be instantiating this class: [,cpp] ---- {.cpp} Handlebars env; dom::Object context; context["foo"] = "bar"; std::string result = env.render("{{ foo }}", context); assert(result == "bar"); ---- A handlebars template can be rendered using the context data provided as a `dom::Value`, which is usually a `dom::Object` at the first level when calling `render`. In the most general case, the result can returned as a string or rendered directly to a buffer or stream. The render function provides an overload that allows the caller to provide an output stream where the template will be rendered directly without allocating a string: [,cpp] ---- {.cpp} Handlebars env; dom::Object context; context["foo"] = "bar"; env.render_to(std::cout, "{{ foo }}", context); // prints "bar" to stdout ---- [,cpp] ---- {.cpp} Handlebars env; dom::Object context; context["foo"] = "bar"; std::string result; env.render_to(result, "{{ foo }}", context); assert(result == "bar"); ---- Design considerations: The following notes include some design considerations for the current implementation of this class. These are intended to describe the current state of the class rather than to provide the final specification of the class behavior. Compiled templates: Unlike handlebars.js, this implementation renders the template directly to the output stream, without requiring an intermediary object to store a representation of the compiled template (`Handlebars.precompile`) or an intermediary callable object required to ultimately render the template (`Handlebars.precompile`). The rationale is that there is not much benefit in pre‐compiling templates in C++, since both iterating the input string and a pre‐compiled template would have very similar costs even in optimal implementations of the compiled template. The most significant benefit of pre‐compiling templates in C++ would be the faster identification of the ends of blocks, which would allow the engine iterate the block only once. For this reason, compiled templates will still be considered in a future version of this sub‐library. Also note that compiled templates cannot avoid exceptions, because a compiled template can still invoke a helper that throws exceptions and evaluate dynamic expressions that cannot be identified during the first pass. Incremental rendering and compilation: Although this is not supported by handlebars.js, it's common for C++ template engines to support incremental rendering, where the template is compiled or rendered in chunks as it is parsed. This implementation does not yet support this feature. This is useful for streaming templates, where the template is rendered to a stream as it is parsed, without requiring the entire template to be parsed and compiled before rendering starts. There are two types of incremental rendering and compilation supported by this implementation: ‐ Incremental rendering of a partial template input to a stream ‐ Incremental rendering into an output buffer of fixed size In each of these cases, the template is rendered in chunks until the end of the partial template is reached or the output buffer is full. In a scenario with compiled templates, the complexity of incremental rendering needs to be implemented for both compilation and rendering. The main difficulty to implement incremental rendering for handlebars.js is that helpers can be invoked from anywhere in the template, and most content is actually rendered by helpers. This means that helpers would need to be able to interoperate with whatever mechanism is designed to support suspension in this recursive‐coroutine‐like interface. Error propagation: The main logic to render a template is implemented in the `render` function, does not throws by itself. How identifying the next tag in a template string, the algorithms uses a loose implementation where unclosed tags are rendered as‐is instead of throwing errors. However, helpers are allowed to throw exceptions to propagate errors, so the `render` function is not `noexcept`. For this reason, exceptions thrown by helpers are in fact exceptional conditions that should be handled by the caller. In general, exceptions can be avoided completely by not throwing exceptions from helpers. == See Also https://handlebarsjs.com/ == Synopsis Declared in `<mrdocs/Support/Handlebars.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- struct Tag; ---- Construct a handlebars environment == Synopsis Declared in `<mrdocs/Support/Handlebars.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- Handlebars(); ---- == Description This constructor creates a new handlebars environment with the built‐in helpers and default logger. Each environment has its own helpers and partials. Multiple environments are only necessary for use cases that demand distinct helpers or partials. == See Also helpers::registerBuiltinHelpers Register a helper accessible by any template in the environment. == Synopsis Declared in `<mrdocs/Support/Handlebars.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void registerHelper( std::string_view name, link:#mrdocs-dom-Function[dom::Function] const& helper); ---- == Description The helper type is a type erased function of type link:#mrdocs-dom-Function[`dom::Function`], which receives the resolved template arguments as parameters as a link:#mrdocs-dom-Value[`dom::Value`] for each parameter. The helper function also receives an object populated with variables that are accessible in the current context as its N+1‐th parameter. This object contains information about the current context and is useful for helpers that want to change the current context or render internal blocks. As all instances of link:#mrdocs-dom-Function[`dom::Function`], the helper should also return a link:#mrdocs-dom-Value[`dom::Value`]. If the function semantics does not require a return value, the function should return a link:#mrdocs-dom-Value[`dom::Value`] of type link:#mrdocs-dom-Kind[`dom::Kind::Undefined`]. When the helper is used in an subexpression, the link:#mrdocs-dom-Value[`dom::Value`] return value is used as the intermediary result. When the helper is used in a block or a final expression, the link:#mrdocs-dom-Value[`dom::Value`] return value will be formatted to the output. == Parameters [cols=2] |=== | Name | Description | *name* | The name of the helper in the handlebars template | *helper* | The helper function |=== == See Also https://handlebarsjs.com/guide/expressions.html https://handlebarsjs.com/guide/block‐helpers.html https://handlebarsjs.com/guide/builtin‐helpers.html Register a logger == Synopsis Declared in `<mrdocs/Support/Handlebars.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void registerLogger(link:#mrdocs-dom-Function[dom::Function] fn); ---- == Description This function registers a logger with the handlebars environment. A logger is a function that is called from the built‐in "log" helper function. The logger can also be called from any helper through the `HandlebarsCallback` parameter. The logger function is called with a `dom::Value` indicating the current level and a `dom::Array` containing values to be logged. == Parameters [cols=2] |=== | Name | Description | *fn* | The logger function |=== Register a partial == Synopsis Declared in `<mrdocs/Support/Handlebars.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void registerPartial( std::string_view name, std::string_view text); ---- == Description This function registers a partial with the handlebars environment. A partial is a template that can be referenced from another template. The partial is rendered in the context of the template that references it. For instance, a partial can be used to render a header or footer that is common to several pages. It can also be used to render a list of items that is used in several places. The following example template uses the partial `item` to render a list of items: [,cpp] ---- {.handlebars}
    {{#each items}} {{> item}} {{/each}}
---- == Parameters [cols=2] |=== | Name | Description | *name* | The name of the partial | *text* | The content of the partial |=== == See Also https://handlebarsjs.com/guide/partials.html Render a handlebars template == Synopses Declared in `<mrdocs/Support/Handlebars.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::string link:#mrdocs-Handlebars-render-002[render](std::string_view templateText) const; ---- [.small]#link:#mrdocs-Handlebars-render-002[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::string link:#mrdocs-Handlebars-render-0b[render]( std::string_view templateText, link:#mrdocs-dom-Value[dom::Value] const& context) const; ---- [.small]#link:#mrdocs-Handlebars-render-0b[_» more..._]# Render a handlebars template [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::string link:#mrdocs-Handlebars-render-007[render]( std::string_view templateText, link:#mrdocs-dom-Value[dom::Value] const& context, link:#mrdocs-HandlebarsOptions[HandlebarsOptions] const& options) const; ---- [.small]#link:#mrdocs-Handlebars-render-007[_» more..._]# == Return Value The rendered text == Parameters [cols=2] |=== | Name | Description | *templateText* | The handlebars template text | *context* | The data to render | *options* | The options to use |=== == Synopsis Declared in `<mrdocs/Support/Handlebars.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::string render(std::string_view templateText) const; ---- == Synopsis Declared in `<mrdocs/Support/Handlebars.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::string render( std::string_view templateText, link:#mrdocs-dom-Value[dom::Value] const& context) const; ---- Render a handlebars template == Synopsis Declared in `<mrdocs/Support/Handlebars.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::string render( std::string_view templateText, link:#mrdocs-dom-Value[dom::Value] const& context, link:#mrdocs-HandlebarsOptions[HandlebarsOptions] const& options) const; ---- == Description This function renders the specified handlebars template and returns the result as a string. The context data to render is passed as a dom::Value, which is usually a dom::Object at the first level. When the context is not an object, it is accessed from the handlebars template with the `this` keyword. == Return Value The rendered text == Parameters [cols=2] |=== | Name | Description | *templateText* | The handlebars template text | *context* | The data to render | *options* | The options to use |=== Render a handlebars template == Synopses Declared in `<mrdocs/Support/Handlebars.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void link:#mrdocs-Handlebars-render_to-01d[render_to]( link:#mrdocs-OutputRef[OutputRef]& out, std::string_view templateText) const; ---- [.small]#link:#mrdocs-Handlebars-render_to-01d[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void link:#mrdocs-Handlebars-render_to-012[render_to]( link:#mrdocs-OutputRef[OutputRef]& out, std::string_view templateText, link:#mrdocs-dom-Value[dom::Value] const& context) const; ---- [.small]#link:#mrdocs-Handlebars-render_to-012[_» more..._]# Render a handlebars template [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void link:#mrdocs-Handlebars-render_to-0d[render_to]( link:#mrdocs-OutputRef[OutputRef]& out, std::string_view templateText, link:#mrdocs-dom-Value[dom::Value] const& context, link:#mrdocs-HandlebarsOptions[HandlebarsOptions] const& options) const; ---- [.small]#link:#mrdocs-Handlebars-render_to-0d[_» more..._]# == Return Value The rendered text == Parameters [cols=2] |=== | Name | Description | *templateText* | The handlebars template text | *context* | The data to render | *options* | The options to use |=== == Synopsis Declared in `<mrdocs/Support/Handlebars.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void render_to( link:#mrdocs-OutputRef[OutputRef]& out, std::string_view templateText) const; ---- == Synopsis Declared in `<mrdocs/Support/Handlebars.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void render_to( link:#mrdocs-OutputRef[OutputRef]& out, std::string_view templateText, link:#mrdocs-dom-Value[dom::Value] const& context) const; ---- Render a handlebars template == Synopsis Declared in `<mrdocs/Support/Handlebars.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void render_to( link:#mrdocs-OutputRef[OutputRef]& out, std::string_view templateText, link:#mrdocs-dom-Value[dom::Value] const& context, link:#mrdocs-HandlebarsOptions[HandlebarsOptions] const& options) const; ---- == Description This function renders the specified handlebars template and writes the result to the specified output stream. The output stream can be any type convertible to OutputRef, which is a reference to a stream that can be written to with the << operator. == Return Value The rendered text == Parameters [cols=2] |=== | Name | Description | *templateText* | The handlebars template text | *context* | The data to render | *options* | The options to use | *out* | Reference to output stream used by handlebars |=== Render a handlebars template == Synopses Declared in `<mrdocs/Support/Handlebars.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-Expected-0a[Expected<std::string, HandlebarsError>] link:#mrdocs-Handlebars-try_render-00[try_render](std::string_view templateText) const; ---- [.small]#link:#mrdocs-Handlebars-try_render-00[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-Expected-0a[Expected<std::string, HandlebarsError>] link:#mrdocs-Handlebars-try_render-0f[try_render]( std::string_view templateText, link:#mrdocs-dom-Value[dom::Value] const& context) const; ---- [.small]#link:#mrdocs-Handlebars-try_render-0f[_» more..._]# Render a handlebars template [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-Expected-0a[Expected<std::string, HandlebarsError>] link:#mrdocs-Handlebars-try_render-03[try_render]( std::string_view templateText, link:#mrdocs-dom-Value[dom::Value] const& context, link:#mrdocs-HandlebarsOptions[HandlebarsOptions] const& options) const; ---- [.small]#link:#mrdocs-Handlebars-try_render-03[_» more..._]# == Return Value The rendered text == Parameters [cols=2] |=== | Name | Description | *templateText* | The handlebars template text | *context* | The data to render | *options* | The options to use |=== == Synopsis Declared in `<mrdocs/Support/Handlebars.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-Expected-0a[Expected<std::string, HandlebarsError>] try_render(std::string_view templateText) const; ---- == Synopsis Declared in `<mrdocs/Support/Handlebars.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-Expected-0a[Expected<std::string, HandlebarsError>] try_render( std::string_view templateText, link:#mrdocs-dom-Value[dom::Value] const& context) const; ---- Render a handlebars template == Synopsis Declared in `<mrdocs/Support/Handlebars.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-Expected-0a[Expected<std::string, HandlebarsError>] try_render( std::string_view templateText, link:#mrdocs-dom-Value[dom::Value] const& context, link:#mrdocs-HandlebarsOptions[HandlebarsOptions] const& options) const; ---- == Description This function renders the specified handlebars template and writes the result to the specified output stream. The output stream can be any type convertible to OutputRef, which is a reference to a stream that can be written to with the << operator. == Return Value The rendered text == Parameters [cols=2] |=== | Name | Description | *templateText* | The handlebars template text | *context* | The data to render | *options* | The options to use |=== Render a handlebars template == Synopses Declared in `<mrdocs/Support/Handlebars.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-Expected-0a[Expected<void, HandlebarsError>] link:#mrdocs-Handlebars-try_render_to-0c[try_render_to]( link:#mrdocs-OutputRef[OutputRef]& out, std::string_view templateText) const; ---- [.small]#link:#mrdocs-Handlebars-try_render_to-0c[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-Expected-0a[Expected<void, HandlebarsError>] link:#mrdocs-Handlebars-try_render_to-04b[try_render_to]( link:#mrdocs-OutputRef[OutputRef]& out, std::string_view templateText, link:#mrdocs-dom-Value[dom::Value] const& context) const; ---- [.small]#link:#mrdocs-Handlebars-try_render_to-04b[_» more..._]# Render a handlebars template [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-Expected-0a[Expected<void, HandlebarsError>] link:#mrdocs-Handlebars-try_render_to-02[try_render_to]( link:#mrdocs-OutputRef[OutputRef]& out, std::string_view templateText, link:#mrdocs-dom-Value[dom::Value] const& context, link:#mrdocs-HandlebarsOptions[HandlebarsOptions] const& options) const; ---- [.small]#link:#mrdocs-Handlebars-try_render_to-02[_» more..._]# == Return Value The rendered text == Parameters [cols=2] |=== | Name | Description | *templateText* | The handlebars template text | *context* | The data to render | *options* | The options to use |=== == Synopsis Declared in `<mrdocs/Support/Handlebars.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-Expected-0a[Expected<void, HandlebarsError>] try_render_to( link:#mrdocs-OutputRef[OutputRef]& out, std::string_view templateText) const; ---- == Synopsis Declared in `<mrdocs/Support/Handlebars.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-Expected-0a[Expected<void, HandlebarsError>] try_render_to( link:#mrdocs-OutputRef[OutputRef]& out, std::string_view templateText, link:#mrdocs-dom-Value[dom::Value] const& context) const; ---- Render a handlebars template == Synopsis Declared in `<mrdocs/Support/Handlebars.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-Expected-0a[Expected<void, HandlebarsError>] try_render_to( link:#mrdocs-OutputRef[OutputRef]& out, std::string_view templateText, link:#mrdocs-dom-Value[dom::Value] const& context, link:#mrdocs-HandlebarsOptions[HandlebarsOptions] const& options) const; ---- == Description This function renders the specified handlebars template and writes the result to the specified output stream. The output stream can be any type convertible to OutputRef, which is a reference to a stream that can be written to with the << operator. == Return Value The rendered text == Parameters [cols=2] |=== | Name | Description | *templateText* | The handlebars template text | *context* | The data to render | *options* | The options to use | *out* | Reference to output stream used by handlebars |=== Unregister a helper == Synopsis Declared in `<mrdocs/Support/Handlebars.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void unregisterHelper(std::string_view name); ---- == Description This function unregisters a helper with the handlebars environment. == Parameters [cols=2] |=== | Name | Description | *name* | The name of the helper |=== Unregister a partial == Synopsis Declared in `<mrdocs/Support/Handlebars.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void unregisterPartial(std::string_view name); ---- == Description This function unregisters a partial with the handlebars environment. == Parameters [cols=2] |=== | Name | Description | *name* | The name of the partial |=== An error thrown or returned by Handlebars == Synopsis Declared in `<mrdocs/Support/Handlebars.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- struct HandlebarsError : std::runtime_error ---- == Base Classes [cols=2] |=== | Name | Description | `std::runtime_error` | |=== == Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-HandlebarsError-2constructor-0e[`HandlebarsError`] [.small]#[constructor]# | Constructors | link:#mrdocs-HandlebarsError-operator_assign[`operator=`] | | link:#mrdocs-HandlebarsError-what[`what`] [.small]#[virtual]# | |=== == Data Members [cols=1] |=== | Name | link:#mrdocs-HandlebarsError-column[`column`] | link:#mrdocs-HandlebarsError-line[`line`] | link:#mrdocs-HandlebarsError-pos[`pos`] |=== == Description An error returned or thrown by Handlebars environment when an error occurs during template rendering. The error message will be the same as the error message returned by Handlebars.js. The object will also contain the line, column and position of the error in the template. These can be used to by the caller to provide more detailed error messages. Constructors == Synopses Declared in `<mrdocs/Support/Handlebars.hpp>` Construct from `string_view` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-HandlebarsError-2constructor-0d[HandlebarsError](std::string_view msg); ---- [.small]#link:#mrdocs-HandlebarsError-2constructor-0d[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-HandlebarsError-2constructor-04[HandlebarsError]( std::string_view msg, std::size_t line_, std::size_t column_, std::size_t pos_); ---- [.small]#link:#mrdocs-HandlebarsError-2constructor-04[_» more..._]# Construct from `string_view` == Synopsis Declared in `<mrdocs/Support/Handlebars.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- HandlebarsError(std::string_view msg); ---- == Parameters [cols=2] |=== | Name | Description | *msg* | The object to construct from |=== == Synopsis Declared in `<mrdocs/Support/Handlebars.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- HandlebarsError( std::string_view msg, std::size_t line_, std::size_t column_, std::size_t pos_); ---- == Synopsis Declared in `<stdexcept>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- runtime_error& operator=(runtime_error const& value) noexcept; ---- == Synopsis Declared in `<stdexcept>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- virtual char const* what() const noexcept override; ---- == Synopsis Declared in `<mrdocs/Support/Handlebars.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::size_t column = static_cast<std::size_t>(‐1); ---- == Synopsis Declared in `<mrdocs/Support/Handlebars.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::size_t line = static_cast<std::size_t>(‐1); ---- == Synopsis Declared in `<mrdocs/Support/Handlebars.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::size_t pos = static_cast<std::size_t>(‐1); ---- Options for handlebars == Synopsis Declared in `<mrdocs/Support/Handlebars.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- struct HandlebarsOptions; ---- == Data Members [cols=2] |=== | Name | Description | link:#mrdocs-HandlebarsOptions-assumeObjects[`assumeObjects`] | Removes object existence checks when traversing paths | link:#mrdocs-HandlebarsOptions-compat[`compat`] | Enable recursive field lookup | link:#mrdocs-HandlebarsOptions-data[`data`] | Custom private data object | link:#mrdocs-HandlebarsOptions-escapeFunction[`escapeFunction`] | Function to escape entities | link:#mrdocs-HandlebarsOptions-explicitPartialContext[`explicitPartialContext`] | Disables implicit context for partials | link:#mrdocs-HandlebarsOptions-ignoreStandalone[`ignoreStandalone`] | Disables standalone tag removal when set to true | link:#mrdocs-HandlebarsOptions-noEscape[`noEscape`] | Escape HTML entities or entities defined by the escape function | link:#mrdocs-HandlebarsOptions-preventIndent[`preventIndent`] | Disable the auto‐indent feature | link:#mrdocs-HandlebarsOptions-strict[`strict`] | Templates will throw rather than ignore missing fields | link:#mrdocs-HandlebarsOptions-trackIds[`trackIds`] | Enable tracking of ids |=== == Description This struct is analogous to the Handlebars.compile options. == See Also https://handlebarsjs.com/api‐reference/compilation.html Removes object existence checks when traversing paths == Synopsis Declared in `<mrdocs/Support/Handlebars.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool assumeObjects = false; ---- == Description This is a subset of strict mode that generates optimized templates when the data inputs are known to be safe. Enable recursive field lookup == Synopsis Declared in `<mrdocs/Support/Handlebars.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool compat = false; ---- == Description When enabled, fields will be looked up recursively in objects and arrays. This mode should be used to enable complete compatibility with Mustache templates. Custom private data object == Synopsis Declared in `<mrdocs/Support/Handlebars.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-dom-Value[dom::Value] data = nullptr; ---- == Description This variable can be used to pass in an object to define custom private variables. Function to escape entities == Synopsis Declared in `<mrdocs/Support/Handlebars.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::function<void(link:#mrdocs-OutputRef[OutputRef]&, std::string_view)> escapeFunction = static_cast<void(*)(OutputRef&, std::string_view)>(HTMLEscape); ---- == Description It's initialized with a reference to the HTMLEscape function overload that takes an OutputRef and a string_view. This function can be replaced with a custom function that escapes entities in a different way. Disables implicit context for partials == Synopsis Declared in `<mrdocs/Support/Handlebars.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool explicitPartialContext = false; ---- == Description When enabled, partials that are not passed a context value will execute against an empty object. Disables standalone tag removal when set to true == Synopsis Declared in `<mrdocs/Support/Handlebars.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool ignoreStandalone = false; ---- == Description By default, Handlebars removes whitespace around block and partial expressions. For instance, the partial: [,cpp] ---- {.handlebars} A ---- and the template: [,cpp] ---- {.handlebars}
{{> partial}}
---- will render as: [,cpp] ---- {.html}
A
---- because the whitespace up to the newline after the partial is removed. A double newline is required to ensure that the whitespace is not removed. For instance, the template: [,cpp] ---- {.handlebars}
{{> partial}}
---- will render as: [,cpp] ---- {.html}
A
---- This can be disabled by setting this option to true. When set, blocks and partials that are on their own line will not remove the whitespace on that line. Escape HTML entities or entities defined by the escape function == Synopsis Declared in `<mrdocs/Support/Handlebars.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool noEscape = false; ---- Disable the auto‐indent feature == Synopsis Declared in `<mrdocs/Support/Handlebars.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool preventIndent = false; ---- == Description By default, an indented partial‐call causes the output of the whole partial being indented by the same amount. For instance, the partial: [,cpp] ---- {.handlebars} A B C ---- and the template: [,cpp] ---- {.handlebars}
{{> partial}}
---- will render as: [,cpp] ---- {.html}
A B C
---- because the partial is indented by the same amount as the partial call. This can be disabled by setting this option to true. In this case, the partial above would be rendered as: [,cpp] ---- {.html}
A B C
---- Templates will throw rather than ignore missing fields == Synopsis Declared in `<mrdocs/Support/Handlebars.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool strict = false; ---- == Description Run in strict mode. In this mode, templates will throw rather than silently ignore missing fields. Enable tracking of ids == Synopsis Declared in `<mrdocs/Support/Handlebars.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool trackIds = false; ---- == Description When enabled, the ids of the expressions are tracked and passed to the helpers. Helpers often use this information to update the context path to the current expression, which can later be used to look up the value of the expression with ".." segments. Represents an identifier == Synopsis Declared in `<mrdocs/Metadata/Name/IdentifierName.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- struct IdentifierName final : link:#mrdocs-Name[Name] ---- == Base Classes [cols=2] |=== | Name | Description | `link:#mrdocs-Name[Name]` | Represents a name for a named `Type` |=== == Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-IdentifierName-2constructor[`IdentifierName`] [.small]#[constructor]# | Default constructor | link:#mrdocs-Name-asName-08[`asName`] | | link:#mrdocs-Name-operator_eq[`operator==`] | Equality operator | link:#mrdocs-IdentifierName-operator_3way-03[`operator<=>`] | Three‐way comparison operators |=== == Data Members [cols=2] |=== | Name | Description | link:#mrdocs-Name-Identifier[`Identifier`] | The unqualified name. | link:#mrdocs-Name-Kind[`Kind`] | The kind of name this is. | link:#mrdocs-Name-Prefix[`Prefix`] | The parent name info, if any. | link:#mrdocs-Name-id[`id`] | The SymbolID of the named symbol, if it exists. |=== == Description This class is used to represent an identifier that could be in the corpus or not. When the symbol is in the corpus, the `id` field will be set to the symbol ID of the symbol. When the symbol is not in the corpus, the `id` field will be set to `SymbolID::invalid`. Default constructor == Synopsis Declared in `<mrdocs/Metadata/Name/IdentifierName.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr IdentifierName() noexcept; ---- Three‐way comparison operators == Synopses Declared in `<mrdocs/Metadata/Name/NameBase.hpp>` Three‐way comparison operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- auto link:#mrdocs-IdentifierName-operator_3way-0b[operator<=>](link:#mrdocs-IdentifierName[IdentifierName] const& other) const; ---- [.small]#link:#mrdocs-IdentifierName-operator_3way-0b[_» more..._]# Three‐way comparison operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::strong_ordering link:#mrdocs-Name-operator_3way[operator<=>](link:#mrdocs-Name[Name] const& other) const; ---- [.small]#link:#mrdocs-Name-operator_3way[_» more..._]# Three‐way comparison operator == Synopsis Declared in `<mrdocs/Metadata/Name/IdentifierName.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- auto operator<=>(link:#mrdocs-IdentifierName[IdentifierName] const& other) const; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *other* | The right operand |=== Three‐way comparison operator == Synopsis Declared in `<mrdocs/Metadata/Name/NameBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::strong_ordering operator<=>(link:#mrdocs-Name[Name] const& other) const; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *other* | The right operand |=== == Synopsis Declared in `<mrdocs/Metadata/Type/LValueReferenceType.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- struct LValueReferenceType final : link:#mrdocs-TypeCommonBase-0e[TypeCommonBase<TypeKind::LValueReference>] ---- == Base Classes [cols=2] |=== | Name | Description | `link:#mrdocs-TypeCommonBase-0e[TypeCommonBase<TypeKind::LValueReference>]` | |=== == Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-LValueReferenceType-operator_3way-0f[`operator<=>`] | Three‐way comparison operators |=== == Static Member Functions [cols=1] |=== | Name | link:#mrdocs-LValueReferenceType-isArray[`isArray`] | link:#mrdocs-LValueReferenceType-isAuto[`isAuto`] | link:#mrdocs-LValueReferenceType-isDecltype[`isDecltype`] | link:#mrdocs-LValueReferenceType-isFunction[`isFunction`] | link:#mrdocs-LValueReferenceType-isLValueReference[`isLValueReference`] | link:#mrdocs-LValueReferenceType-isMemberPointer[`isMemberPointer`] | link:#mrdocs-LValueReferenceType-isNamed[`isNamed`] | link:#mrdocs-LValueReferenceType-isPointer[`isPointer`] | link:#mrdocs-LValueReferenceType-isRValueReference[`isRValueReference`] |=== == Data Members [cols=1] |=== | Name | link:#mrdocs-LValueReferenceType-PointeeType[`PointeeType`] |=== == Static Data Members [cols=1] |=== | Name | link:#mrdocs-LValueReferenceType-kind_id[`kind_id`] |=== == Non-Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-innerType-06[`innerType`] | Return the inner type. | link:#mrdocs-innerType-09[`innerType`] | Return the inner type. | link:#mrdocs-innerTypePtr-08[`innerTypePtr`] | Return the inner type. | link:#mrdocs-innerTypePtr-0a[`innerTypePtr`] | Return the inner type. |=== Three‐way comparison operators == Synopses Declared in `<mrdocs/Metadata/Type/LValueReferenceType.hpp>` Three‐way comparison operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::strong_ordering link:#mrdocs-LValueReferenceType-operator_3way-0a[operator<=>](link:#mrdocs-LValueReferenceType[LValueReferenceType] const& rhs) const; ---- [.small]#link:#mrdocs-LValueReferenceType-operator_3way-0a[_» more..._]# Three‐way comparison operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr auto link:#mrdocs-LValueReferenceType-operator_3way-01[operator<=>](link:#mrdocs-TypeCommonBase-0e[TypeCommonBase<mrdocs::TypeKind::LValueReference>] const& rhs) const = default; ---- [.small]#link:#mrdocs-LValueReferenceType-operator_3way-01[_» more..._]# Three‐way comparison operator == Synopsis Declared in `<mrdocs/Metadata/Type/LValueReferenceType.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::strong_ordering operator<=>(link:#mrdocs-LValueReferenceType[LValueReferenceType] const& rhs) const; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== Three‐way comparison operator == Synopsis Declared in `<mrdocs/Metadata/Type/TypeBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr auto operator<=>(link:#mrdocs-TypeCommonBase-0e[TypeCommonBase<mrdocs::TypeKind::LValueReference>] const& rhs) const = default; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== == Synopsis Declared in `<mrdocs/Metadata/Type/TypeBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isArray() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Type/TypeBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isAuto() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Type/TypeBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isDecltype() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Type/TypeBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isFunction() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Type/TypeBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isLValueReference() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Type/TypeBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isMemberPointer() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Type/TypeBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isNamed() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Type/TypeBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isPointer() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Type/TypeBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isRValueReference() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Type/LValueReferenceType.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-Polymorphic[Polymorphic<Type>] PointeeType = Polymorphic<Type>(AutoType{}); ---- == Synopsis Declared in `<mrdocs/Metadata/Type/TypeBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static link:#mrdocs-TypeKind[TypeKind] kind_id; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/Location.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- struct Location; ---- == Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-Location-2constructor[`Location`] [.small]#[constructor]# | | link:#mrdocs-Location-operator_3way[`operator<=>`] | Three‐way comparison operator |=== == Data Members [cols=2] |=== | Name | Description | link:#mrdocs-Location-ColumnNumber[`ColumnNumber`] | Column number within the line | link:#mrdocs-Location-Documented[`Documented`] | Whether this location has documentation. | link:#mrdocs-Location-FullPath[`FullPath`] | The full file path | link:#mrdocs-Location-LineNumber[`LineNumber`] | Line number within the file | link:#mrdocs-Location-ShortPath[`ShortPath`] | The file path relative to one of the search directories | link:#mrdocs-Location-SourcePath[`SourcePath`] | The file path relative to the source‐root directory |=== == Synopsis Declared in `<mrdocs/Metadata/Symbol/Location.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr Location( std::string_view const full_path = {}, std::string_view const short_path = {}, std::string_view const source_path = {}, unsigned int const line = 0, unsigned int const col = 0, bool const documented = false); ---- Three‐way comparison operator == Synopsis Declared in `<mrdocs/Metadata/Symbol/Location.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr auto operator<=>(link:#mrdocs-Location[Location] const& rhs) const = default; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== Column number within the line == Synopsis Declared in `<mrdocs/Metadata/Symbol/Location.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- unsigned int ColumnNumber = 0; ---- Whether this location has documentation. == Synopsis Declared in `<mrdocs/Metadata/Symbol/Location.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool Documented = false; ---- The full file path == Synopsis Declared in `<mrdocs/Metadata/Symbol/Location.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::string FullPath; ---- Line number within the file == Synopsis Declared in `<mrdocs/Metadata/Symbol/Location.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- unsigned int LineNumber = 0; ---- The file path relative to one of the search directories == Synopsis Declared in `<mrdocs/Metadata/Symbol/Location.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::string ShortPath; ---- The file path relative to the source‐root directory == Synopsis Declared in `<mrdocs/Metadata/Symbol/Location.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::string SourcePath; ---- == Synopsis Declared in `<mrdocs/Metadata/Type/MemberPointerType.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- struct MemberPointerType final : link:#mrdocs-TypeCommonBase-0e[TypeCommonBase<TypeKind::MemberPointer>] ---- == Base Classes [cols=2] |=== | Name | Description | `link:#mrdocs-TypeCommonBase-0e[TypeCommonBase<TypeKind::MemberPointer>]` | |=== == Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-MemberPointerType-operator_3way-0d[`operator<=>`] | Three‐way comparison operators |=== == Static Member Functions [cols=1] |=== | Name | link:#mrdocs-MemberPointerType-isArray[`isArray`] | link:#mrdocs-MemberPointerType-isAuto[`isAuto`] | link:#mrdocs-MemberPointerType-isDecltype[`isDecltype`] | link:#mrdocs-MemberPointerType-isFunction[`isFunction`] | link:#mrdocs-MemberPointerType-isLValueReference[`isLValueReference`] | link:#mrdocs-MemberPointerType-isMemberPointer[`isMemberPointer`] | link:#mrdocs-MemberPointerType-isNamed[`isNamed`] | link:#mrdocs-MemberPointerType-isPointer[`isPointer`] | link:#mrdocs-MemberPointerType-isRValueReference[`isRValueReference`] |=== == Data Members [cols=1] |=== | Name | link:#mrdocs-MemberPointerType-ParentType[`ParentType`] | link:#mrdocs-MemberPointerType-PointeeType[`PointeeType`] |=== == Static Data Members [cols=1] |=== | Name | link:#mrdocs-MemberPointerType-kind_id[`kind_id`] |=== == Non-Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-innerType-06[`innerType`] | Return the inner type. | link:#mrdocs-innerType-09[`innerType`] | Return the inner type. | link:#mrdocs-innerTypePtr-08[`innerTypePtr`] | Return the inner type. | link:#mrdocs-innerTypePtr-0a[`innerTypePtr`] | Return the inner type. |=== Three‐way comparison operators == Synopses Declared in `<mrdocs/Metadata/Type/MemberPointerType.hpp>` Three‐way comparison operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::strong_ordering link:#mrdocs-MemberPointerType-operator_3way-0f[operator<=>](link:#mrdocs-MemberPointerType[MemberPointerType] const& rhs) const; ---- [.small]#link:#mrdocs-MemberPointerType-operator_3way-0f[_» more..._]# Three‐way comparison operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr auto link:#mrdocs-MemberPointerType-operator_3way-02[operator<=>](link:#mrdocs-TypeCommonBase-0e[TypeCommonBase<mrdocs::TypeKind::MemberPointer>] const& rhs) const = default; ---- [.small]#link:#mrdocs-MemberPointerType-operator_3way-02[_» more..._]# Three‐way comparison operator == Synopsis Declared in `<mrdocs/Metadata/Type/MemberPointerType.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::strong_ordering operator<=>(link:#mrdocs-MemberPointerType[MemberPointerType] const& rhs) const; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== Three‐way comparison operator == Synopsis Declared in `<mrdocs/Metadata/Type/TypeBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr auto operator<=>(link:#mrdocs-TypeCommonBase-0e[TypeCommonBase<mrdocs::TypeKind::MemberPointer>] const& rhs) const = default; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== == Synopsis Declared in `<mrdocs/Metadata/Type/TypeBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isArray() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Type/TypeBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isAuto() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Type/TypeBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isDecltype() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Type/TypeBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isFunction() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Type/TypeBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isLValueReference() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Type/TypeBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isMemberPointer() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Type/TypeBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isNamed() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Type/TypeBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isPointer() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Type/TypeBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isRValueReference() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Type/MemberPointerType.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-Polymorphic[Polymorphic<Type>] ParentType = Polymorphic<Type>(AutoType{}); ---- == Synopsis Declared in `<mrdocs/Metadata/Type/MemberPointerType.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-Polymorphic[Polymorphic<Type>] PointeeType = Polymorphic<Type>(AutoType{}); ---- == Synopsis Declared in `<mrdocs/Metadata/Type/TypeBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static link:#mrdocs-TypeKind[TypeKind] kind_id; ---- Represents a name for a named `Type` == Synopsis Declared in `<mrdocs/Metadata/Name/NameBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- struct Name; ---- == Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-Name-2destructor[`~Name`] [.small]#[destructor]# [.small]#[virtual]# | Destructor | link:#mrdocs-Name-asName-08[`asName`] | | link:#mrdocs-Name-operator_eq[`operator==`] | Equality operator | link:#mrdocs-Name-operator_3way[`operator<=>`] | Three‐way comparison operator |=== == Data Members [cols=2] |=== | Name | Description | link:#mrdocs-Name-Identifier[`Identifier`] | The unqualified name. | link:#mrdocs-Name-Kind[`Kind`] | The kind of name this is. | link:#mrdocs-Name-Prefix[`Prefix`] | The parent name info, if any. | link:#mrdocs-Name-id[`id`] | The SymbolID of the named symbol, if it exists. |=== == Protected Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-Name-2constructor-0b[`Name`] [.small]#[constructor]# | Constructors |=== == Derived Classes [cols=2] |=== | Name | Description | link:#mrdocs-IdentifierName[`IdentifierName`] | Represents an identifier | link:#mrdocs-SpecializationName[`SpecializationName`] | Represents a (possibly qualified) symbol name with template arguments. |=== == Description When the `Type` is a named type, this class represents the name of the type. It also includes the symbol ID of the named type, so that it can be referenced in the documentation. This allows the `Type` to store either a `Name` or a `SpecializationName`, which contains the arguments for a template specialization without requiring the application to extract an unnecessary symbol. Destructor == Synopsis Declared in `<mrdocs/Metadata/Name/NameBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr virtual ~Name() = default; ---- == Synopses Declared in `<mrdocs/Metadata/Name/NameBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-Name[Name] const& link:#mrdocs-Name-asName-05[asName]() const noexcept; ---- [.small]#link:#mrdocs-Name-asName-05[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-Name[Name]& link:#mrdocs-Name-asName-09[asName]() noexcept; ---- [.small]#link:#mrdocs-Name-asName-09[_» more..._]# == Synopsis Declared in `<mrdocs/Metadata/Name/NameBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-Name[Name] const& asName() const noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Name/NameBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-Name[Name]& asName() noexcept; ---- Equality operator == Synopsis Declared in `<mrdocs/Metadata/Name/NameBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool operator==(link:#mrdocs-Name[Name] const& other) const; ---- == Return Value `true` if the objects are equal, `false` otherwise == Parameters [cols=2] |=== | Name | Description | *other* | The right operand |=== Three‐way comparison operator == Synopsis Declared in `<mrdocs/Metadata/Name/NameBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::strong_ordering operator<=>(link:#mrdocs-Name[Name] const& other) const; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *other* | The right operand |=== The unqualified name. == Synopsis Declared in `<mrdocs/Metadata/Name/NameBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::string Identifier; ---- The kind of name this is. == Synopsis Declared in `<mrdocs/Metadata/Name/NameBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-NameKind[NameKind] Kind; ---- The parent name info, if any. == Synopsis Declared in `<mrdocs/Metadata/Name/NameBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-Optional-03[Optional<Polymorphic<Name>>] Prefix = std::nullopt; ---- == Description This recursively includes information about the parent, such as the symbol ID and potentially template arguments, when the parent is a SpecializationName. This is particularly useful because the parent of `id` could be a primary template. In this case, the Prefix will contain this primary template information and the template arguments. The SymbolID of the named symbol, if it exists. == Synopsis Declared in `<mrdocs/Metadata/Name/NameBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-SymbolID[SymbolID] id = = SymbolID::invalid; ---- Constructors == Synopses Declared in `<mrdocs/Metadata/Name/NameBase.hpp>` Default constructor [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-Name-2constructor-06[Name]() noexcept; ---- [.small]#link:#mrdocs-Name-2constructor-06[_» more..._]# Construct from `NameKind` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr explicit link:#mrdocs-Name-2constructor-0c[Name](link:#mrdocs-NameKind[NameKind] const kind) noexcept; ---- [.small]#link:#mrdocs-Name-2constructor-0c[_» more..._]# Default constructor == Synopsis Declared in `<mrdocs/Metadata/Name/NameBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr Name() noexcept; ---- Construct from `NameKind` == Synopsis Declared in `<mrdocs/Metadata/Name/NameBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr explicit Name(link:#mrdocs-NameKind[NameKind] const kind) noexcept; ---- == Parameters [cols=2] |=== | Name | Description | *kind* | The object to construct from |=== == Synopsis Declared in `<mrdocs/Metadata/Type/NamedType.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- struct NamedType final : link:#mrdocs-TypeCommonBase-0e[TypeCommonBase<TypeKind::Named>] ---- == Base Classes [cols=2] |=== | Name | Description | `link:#mrdocs-TypeCommonBase-0e[TypeCommonBase<TypeKind::Named>]` | |=== == Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-NamedType-operator_3way-01[`operator<=>`] | Three‐way comparison operators |=== == Static Member Functions [cols=1] |=== | Name | link:#mrdocs-NamedType-isArray[`isArray`] | link:#mrdocs-NamedType-isAuto[`isAuto`] | link:#mrdocs-NamedType-isDecltype[`isDecltype`] | link:#mrdocs-NamedType-isFunction[`isFunction`] | link:#mrdocs-NamedType-isLValueReference[`isLValueReference`] | link:#mrdocs-NamedType-isMemberPointer[`isMemberPointer`] | link:#mrdocs-NamedType-isNamed[`isNamed`] | link:#mrdocs-NamedType-isPointer[`isPointer`] | link:#mrdocs-NamedType-isRValueReference[`isRValueReference`] |=== == Data Members [cols=1] |=== | Name | link:#mrdocs-NamedType-FundamentalType[`FundamentalType`] | link:#mrdocs-NamedType-Name[`Name`] |=== == Static Data Members [cols=1] |=== | Name | link:#mrdocs-NamedType-kind_id[`kind_id`] |=== == Non-Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-innerType-06[`innerType`] | Return the inner type. | link:#mrdocs-innerType-09[`innerType`] | Return the inner type. | link:#mrdocs-innerTypePtr-08[`innerTypePtr`] | Return the inner type. | link:#mrdocs-innerTypePtr-0a[`innerTypePtr`] | Return the inner type. |=== Three‐way comparison operators == Synopses Declared in `<mrdocs/Metadata/Type/NamedType.hpp>` Three‐way comparison operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::strong_ordering link:#mrdocs-NamedType-operator_3way-09[operator<=>](link:#mrdocs-NamedType[NamedType] const& other) const; ---- [.small]#link:#mrdocs-NamedType-operator_3way-09[_» more..._]# Three‐way comparison operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr auto link:#mrdocs-NamedType-operator_3way-08[operator<=>](link:#mrdocs-TypeCommonBase-0e[TypeCommonBase<mrdocs::TypeKind::Named>] const& rhs) const = default; ---- [.small]#link:#mrdocs-NamedType-operator_3way-08[_» more..._]# Three‐way comparison operator == Synopsis Declared in `<mrdocs/Metadata/Type/NamedType.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::strong_ordering operator<=>(link:#mrdocs-NamedType[NamedType] const& other) const; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *other* | The right operand |=== Three‐way comparison operator == Synopsis Declared in `<mrdocs/Metadata/Type/TypeBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr auto operator<=>(link:#mrdocs-TypeCommonBase-0e[TypeCommonBase<mrdocs::TypeKind::Named>] const& rhs) const = default; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== == Synopsis Declared in `<mrdocs/Metadata/Type/TypeBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isArray() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Type/TypeBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isAuto() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Type/TypeBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isDecltype() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Type/TypeBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isFunction() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Type/TypeBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isLValueReference() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Type/TypeBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isMemberPointer() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Type/TypeBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isNamed() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Type/TypeBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isPointer() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Type/TypeBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isRValueReference() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Type/NamedType.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-Optional-03[Optional<FundamentalTypeKind>] FundamentalType; ---- == Synopsis Declared in `<mrdocs/Metadata/Type/NamedType.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-Polymorphic[Polymorphic<Name>] Name = Polymorphic<struct Name>(std::in_place_type<IdentifierName>); ---- == Synopsis Declared in `<mrdocs/Metadata/Type/TypeBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static link:#mrdocs-TypeKind[TypeKind] kind_id; ---- Info for namespace aliases. == Synopsis Declared in `<mrdocs/Metadata/Symbol/NamespaceAlias.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- struct NamespaceAliasSymbol final : link:#mrdocs-SymbolCommonBase-015[SymbolCommonBase<SymbolKind::NamespaceAlias>] ---- == Base Classes [cols=2] |=== | Name | Description | `link:#mrdocs-SymbolCommonBase-015[SymbolCommonBase<SymbolKind::NamespaceAlias>]` | Base class for providing variant discriminator functions. |=== == Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-NamespaceAliasSymbol-2constructor[`NamespaceAliasSymbol`] [.small]#[constructor]# | Construct from `SymbolID` | link:#mrdocs-NamespaceAliasSymbol-operator_3way[`operator<=>`] | Three‐way comparison operator |=== == Static Member Functions [cols=1] |=== | Name | link:#mrdocs-NamespaceAliasSymbol-isConcept[`isConcept`] | link:#mrdocs-NamespaceAliasSymbol-isEnum[`isEnum`] | link:#mrdocs-NamespaceAliasSymbol-isEnumConstant[`isEnumConstant`] | link:#mrdocs-NamespaceAliasSymbol-isFunction[`isFunction`] | link:#mrdocs-NamespaceAliasSymbol-isGuide[`isGuide`] | link:#mrdocs-NamespaceAliasSymbol-isNamespace[`isNamespace`] | link:#mrdocs-NamespaceAliasSymbol-isNamespaceAlias[`isNamespaceAlias`] | link:#mrdocs-NamespaceAliasSymbol-isOverloads[`isOverloads`] | link:#mrdocs-NamespaceAliasSymbol-isRecord[`isRecord`] | link:#mrdocs-NamespaceAliasSymbol-isTypedef[`isTypedef`] | link:#mrdocs-NamespaceAliasSymbol-isUsing[`isUsing`] | link:#mrdocs-NamespaceAliasSymbol-isVariable[`isVariable`] |=== == Data Members [cols=2] |=== | Name | Description | link:#mrdocs-NamespaceAliasSymbol-AliasedSymbol[`AliasedSymbol`] | The aliased symbol. |=== == Static Data Members [cols=1] |=== | Name | link:#mrdocs-NamespaceAliasSymbol-kind_id[`kind_id`] |=== == Non-Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-merge-00c[`merge`] | Merges two Symbol objects. |=== Construct from `SymbolID` == Synopsis Declared in `<mrdocs/Metadata/Symbol/NamespaceAlias.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- explicit NamespaceAliasSymbol(link:#mrdocs-SymbolID[SymbolID] const& ID) noexcept; ---- == Parameters [cols=2] |=== | Name | Description | *ID* | The object to copy construct from |=== Three‐way comparison operator == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- auto operator<=>(link:#mrdocs-SymbolCommonBase-015[SymbolCommonBase<mrdocs::SymbolKind::NamespaceAlias>] const& rhs) const = default; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isConcept() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isEnum() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isEnumConstant() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isFunction() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isGuide() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isNamespace() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isNamespaceAlias() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isOverloads() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isRecord() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isTypedef() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isUsing() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isVariable() noexcept; ---- The aliased symbol. == Synopsis Declared in `<mrdocs/Metadata/Symbol/NamespaceAlias.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-IdentifierName[IdentifierName] AliasedSymbol; ---- == Description This is another namespace that might or might not be in the same project. == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static link:#mrdocs-SymbolKind[SymbolKind] kind_id; ---- Describes a namespace. == Synopsis Declared in `<mrdocs/Metadata/Symbol/Namespace.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- struct NamespaceSymbol final : link:#mrdocs-SymbolCommonBase-015[SymbolCommonBase<SymbolKind::Namespace>] ---- == Base Classes [cols=2] |=== | Name | Description | `link:#mrdocs-SymbolCommonBase-015[SymbolCommonBase<SymbolKind::Namespace>]` | Base class for providing variant discriminator functions. |=== == Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-NamespaceSymbol-2constructor[`NamespaceSymbol`] [.small]#[constructor]# | Construct from `SymbolID` | link:#mrdocs-NamespaceSymbol-operator_3way-0d[`operator<=>`] | Three‐way comparison operators |=== == Static Member Functions [cols=1] |=== | Name | link:#mrdocs-NamespaceSymbol-isConcept[`isConcept`] | link:#mrdocs-NamespaceSymbol-isEnum[`isEnum`] | link:#mrdocs-NamespaceSymbol-isEnumConstant[`isEnumConstant`] | link:#mrdocs-NamespaceSymbol-isFunction[`isFunction`] | link:#mrdocs-NamespaceSymbol-isGuide[`isGuide`] | link:#mrdocs-NamespaceSymbol-isNamespace[`isNamespace`] | link:#mrdocs-NamespaceSymbol-isNamespaceAlias[`isNamespaceAlias`] | link:#mrdocs-NamespaceSymbol-isOverloads[`isOverloads`] | link:#mrdocs-NamespaceSymbol-isRecord[`isRecord`] | link:#mrdocs-NamespaceSymbol-isTypedef[`isTypedef`] | link:#mrdocs-NamespaceSymbol-isUsing[`isUsing`] | link:#mrdocs-NamespaceSymbol-isVariable[`isVariable`] |=== == Data Members [cols=2] |=== | Name | Description | link:#mrdocs-NamespaceSymbol-IsAnonymous[`IsAnonymous`] | | link:#mrdocs-NamespaceSymbol-IsInline[`IsInline`] | | link:#mrdocs-NamespaceSymbol-Members[`Members`] | The members of this namespace. | link:#mrdocs-NamespaceSymbol-UsingDirectives[`UsingDirectives`] | Namespaces nominated by using‐directives. |=== == Static Data Members [cols=1] |=== | Name | link:#mrdocs-NamespaceSymbol-kind_id[`kind_id`] |=== == Non-Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-merge-00c[`merge`] | Merges two Symbol objects. |=== Construct from `SymbolID` == Synopsis Declared in `<mrdocs/Metadata/Symbol/Namespace.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- explicit NamespaceSymbol(link:#mrdocs-SymbolID[SymbolID] const& ID) noexcept; ---- == Parameters [cols=2] |=== | Name | Description | *ID* | The object to copy construct from |=== Three‐way comparison operators == Synopses Declared in `<mrdocs/Metadata/Symbol/Namespace.hpp>` Three‐way comparison operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::strong_ordering link:#mrdocs-NamespaceSymbol-operator_3way-0c[operator<=>](link:#mrdocs-NamespaceSymbol[NamespaceSymbol] const& rhs) const; ---- [.small]#link:#mrdocs-NamespaceSymbol-operator_3way-0c[_» more..._]# Three‐way comparison operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- auto link:#mrdocs-NamespaceSymbol-operator_3way-09[operator<=>](link:#mrdocs-SymbolCommonBase-015[SymbolCommonBase<mrdocs::SymbolKind::Namespace>] const& rhs) const = default; ---- [.small]#link:#mrdocs-NamespaceSymbol-operator_3way-09[_» more..._]# Three‐way comparison operator == Synopsis Declared in `<mrdocs/Metadata/Symbol/Namespace.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::strong_ordering operator<=>(link:#mrdocs-NamespaceSymbol[NamespaceSymbol] const& rhs) const; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== Three‐way comparison operator == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- auto operator<=>(link:#mrdocs-SymbolCommonBase-015[SymbolCommonBase<mrdocs::SymbolKind::Namespace>] const& rhs) const = default; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isConcept() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isEnum() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isEnumConstant() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isFunction() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isGuide() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isNamespace() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isNamespaceAlias() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isOverloads() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isRecord() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isTypedef() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isUsing() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isVariable() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/Namespace.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool IsAnonymous = false; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/Namespace.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool IsInline = false; ---- The members of this namespace. == Synopsis Declared in `<mrdocs/Metadata/Symbol/Namespace.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-NamespaceTranche[NamespaceTranche] Members; ---- Namespaces nominated by using‐directives. == Synopsis Declared in `<mrdocs/Metadata/Symbol/Namespace.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::vector<Name> UsingDirectives; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static link:#mrdocs-SymbolKind[SymbolKind] kind_id; ---- The members of a Namespace == Synopsis Declared in `<mrdocs/Metadata/Symbol/Namespace.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- struct NamespaceTranche; ---- == Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-NamespaceTranche-operator_3way[`operator<=>`] | Three‐way comparison operator |=== == Data Members [cols=1] |=== | Name | link:#mrdocs-NamespaceTranche-Concepts[`Concepts`] | link:#mrdocs-NamespaceTranche-Enums[`Enums`] | link:#mrdocs-NamespaceTranche-Functions[`Functions`] | link:#mrdocs-NamespaceTranche-Guides[`Guides`] | link:#mrdocs-NamespaceTranche-NamespaceAliases[`NamespaceAliases`] | link:#mrdocs-NamespaceTranche-Namespaces[`Namespaces`] | link:#mrdocs-NamespaceTranche-Records[`Records`] | link:#mrdocs-NamespaceTranche-Typedefs[`Typedefs`] | link:#mrdocs-NamespaceTranche-Usings[`Usings`] | link:#mrdocs-NamespaceTranche-Variables[`Variables`] |=== Three‐way comparison operator == Synopsis Declared in `<mrdocs/Metadata/Symbol/Namespace.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr auto operator<=>(link:#mrdocs-NamespaceTranche[NamespaceTranche] const& rhs) const = default; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== == Synopsis Declared in `<mrdocs/Metadata/Symbol/Namespace.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::vector<SymbolID> Concepts; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/Namespace.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::vector<SymbolID> Enums; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/Namespace.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::vector<SymbolID> Functions; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/Namespace.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::vector<SymbolID> Guides; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/Namespace.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::vector<SymbolID> NamespaceAliases; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/Namespace.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::vector<SymbolID> Namespaces; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/Namespace.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::vector<SymbolID> Records; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/Namespace.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::vector<SymbolID> Typedefs; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/Namespace.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::vector<SymbolID> Usings; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/Namespace.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::vector<SymbolID> Variables; ---- == Synopsis Declared in `<mrdocs/Metadata/Specifiers/NoexceptInfo.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- struct NoexceptInfo; ---- == Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-NoexceptInfo-operator_3way[`operator<=>`] | Three‐way comparison operator |=== == Data Members [cols=2] |=== | Name | Description | link:#mrdocs-NoexceptInfo-Implicit[`Implicit`] | Whether a noexcept‐specifier was user‐written. | link:#mrdocs-NoexceptInfo-Kind[`Kind`] | The evaluated exception specification. | link:#mrdocs-NoexceptInfo-Operand[`Operand`] | The operand of the noexcept‐specifier, if any. |=== == Non-Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-toString-0dc[`toString`] | Convert NoexceptInfo to a string. |=== Three‐way comparison operator == Synopsis Declared in `<mrdocs/Metadata/Specifiers/NoexceptInfo.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr auto operator<=>(link:#mrdocs-NoexceptInfo[NoexceptInfo] const& rhs) const = default; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== Whether a noexcept‐specifier was user‐written. == Synopsis Declared in `<mrdocs/Metadata/Specifiers/NoexceptInfo.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool Implicit = true; ---- The evaluated exception specification. == Synopsis Declared in `<mrdocs/Metadata/Specifiers/NoexceptInfo.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-NoexceptKind[NoexceptKind] Kind = NoexceptKind::False; ---- The operand of the noexcept‐specifier, if any. == Synopsis Declared in `<mrdocs/Metadata/Specifiers/NoexceptInfo.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::string Operand; ---- A compact optional that automatically uses nullable_traits<T> when available. == Synopsis Declared in `<mrdocs/ADT/Optional.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class T> class Optional; ---- == Types [cols=1] |=== | Name | link:#mrdocs-Optional-03-value_type[`value_type`] |=== == Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-Optional-03-2constructor-02[`Optional`] [.small]#[constructor]# | Constructors | link:#mrdocs-Optional-03-operator_assign-026[`operator=`] | Assignment operators | link:#mrdocs-Optional-03-emplace[`emplace`] | In‐place construct a new value, replacing any existing one. | link:#mrdocs-Optional-03-has_value[`has_value`] | True if engaged (contains a value). | link:#mrdocs-Optional-03-operator_star-0e[`operator*`] | Dereference‐like access. | link:#mrdocs-Optional-03-operator_ptr-08[`operator‐>`] | Pointer‐like access. | link:#mrdocs-Optional-03-reset[`reset`] | Reset to the null state. * | link:#mrdocs-Optional-03-value-0b[`value`] | Value access. Preconditions: has_value() is true. | link:#mrdocs-Optional-03-2conversion[`operator bool`] | Contextual bool. |=== == Static Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-Optional-03-is_inlined[`is_inlined`] | Determine if the value is inlined via nullable traits. |=== == Non-Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-getOperatorReadableName[`getOperatorReadableName`] | Return the human‐readable name of the operator | link:#mrdocs-innerType-06[`innerType`] | Return the inner type. | link:#mrdocs-innerType-09[`innerType`] | Return the inner type. | link:#mrdocs-operator_not_eq-04[`operator!=`] | Compares an Optional to a value for inequality. Returns true if the Optional is disengaged or its value does not equal rhs. | link:#mrdocs-operator_not_eq-06[`operator!=`] | Compares two Optional values for inequality. Returns true if their engagement states differ or their contained values are not equal. | link:#mrdocs-operator_lt-09[`operator<`] | Checks if the left Optional is less than the right Optional. Returns true if the right is engaged and either the left is disengaged or its value is less. | link:#mrdocs-operator_lt-0c[`operator<`] | Checks if the Optional is less than a value. Returns true if the Optional is disengaged or its value is less than rhs. | link:#mrdocs-operator_le-08[`operator<=`] | Checks if the left Optional is less than or equal to the right Optional. Returns true if the left is disengaged or the right is engaged and the left's value is less or equal. | link:#mrdocs-operator_le-0e[`operator<=`] | Checks if the Optional is less than or equal to a value. Returns true if the Optional is disengaged or its value is less than or equal to rhs. | link:#mrdocs-operator_3way-01[`operator<=>`] | Performs a three‐way comparison between an Optional and a value. If the Optional is engaged, compares its value to v; otherwise, returns less. | link:#mrdocs-operator_3way-02[`operator<=>`] | Performs a three‐way comparison between two Optional values. If both are engaged, compares their contained values; otherwise, compares engagement state. | link:#mrdocs-operator_3way-0c4[`operator<=>`] | Performs a three‐way comparison between an Optional and std::nullopt. Returns std::strong_ordering::greater if engaged, std::strong_ordering::equal if disengaged. | link:#mrdocs-operator_3way-0c8[`operator<=>`] | Three‐way comparison operator | link:#mrdocs-operator_3way-0d[`operator<=>`] | Three‐way comparison operator | link:#mrdocs-operator_eq-00b[`operator==`] | Compares two Optional values for equality. Returns true if both are engaged and their contained values are equal, or both are disengaged. | link:#mrdocs-operator_eq-08e[`operator==`] | Checks if the Optional is disengaged (equal to std::nullopt). Returns true if the Optional does not contain a value. | link:#mrdocs-operator_eq-098[`operator==`] | Equality operator | link:#mrdocs-operator_eq-0b0[`operator==`] | Equality operator | link:#mrdocs-operator_eq-0c9[`operator==`] | Compares an engaged Optional to a value for equality. Returns true if the Optional is engaged and its value equals rhs. | link:#mrdocs-operator_gt-0a0[`operator>`] | Checks if the left Optional is greater than the right Optional. Returns true if the left is engaged and either the right is disengaged or its value is greater. | link:#mrdocs-operator_gt-0ab[`operator>`] | Checks if the Optional is greater than a value. Returns true if the Optional is engaged and its value is greater than rhs. | link:#mrdocs-operator_ge-04[`operator>=`] | Checks if the left Optional is greater than or equal to the right Optional. Returns true if the right is disengaged or the left is engaged and its value is greater or equal. | link:#mrdocs-operator_ge-07[`operator>=`] | Checks if the Optional is greater than or equal to a value. Returns true if the Optional is engaged and its value is greater than or equal to rhs. | link:#mrdocs-dom-stringOrNull-0e[`dom::stringOrNull`] | Return a non‐empty string, or a null. |=== == Description Design ‐ If nullable_traits<T> exists, the null state is encoded inside T (via sentinel or clearable‐empty semantics). Storage is exactly one T. ‐ Otherwise, this falls back to std::optional<T> and uses its discriminator. This single implementation uses a conditional storage type plus if constexpr on has_nullable_traits_v<T> to select the appropriate behavior at compile time. == Synopsis Declared in `<mrdocs/ADT/Optional.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- using value_type = T; ---- Constructors == Synopses Declared in `<mrdocs/ADT/Optional.hpp>` Default‐constructs to the “null” state. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-Optional-03-2constructor-0f[Optional]() noexcept(default_ctor_noex_()); ---- [.small]#link:#mrdocs-Optional-03-2constructor-0f[_» more..._]# Copy constructor [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-Optional-03-2constructor-0eb[Optional](link:#mrdocs-Optional-03[Optional] const& other) = default; ---- [.small]#link:#mrdocs-Optional-03-2constructor-0eb[_» more..._]# Copy constructor [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<typename U> requires (!std::is_same_v<T, U>) && std::is_constructible_v<T, U const&> && ConstructFromContainedValue<U> constexpr explicit(!std::is_convertible_v<const U &, T>) link:#mrdocs-Optional-03-2constructor-06[Optional](link:#mrdocs-Optional-03[Optional<U>] const& t) noexcept(std::is_nothrow_constructible_v<T, const U &>); ---- [.small]#link:#mrdocs-Optional-03-2constructor-06[_» more..._]# Move constructor [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-Optional-03-2constructor-0e4[Optional](link:#mrdocs-Optional-03[Optional]&& other) = default; ---- [.small]#link:#mrdocs-Optional-03-2constructor-0e4[_» more..._]# Move constructor [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<typename U> requires (!std::is_same_v<T, U>) && std::is_constructible_v<T, U> && ConstructFromContainedValue<U> constexpr explicit(!std::is_convertible_v<U, T>) link:#mrdocs-Optional-03-2constructor-0b[Optional](link:#mrdocs-Optional-03[Optional<U>]&& t) noexcept(std::is_nothrow_constructible_v<T, U>); ---- [.small]#link:#mrdocs-Optional-03-2constructor-0b[_» more..._]# Construct from std::nullopt [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-Optional-03-2constructor-0d[Optional](std::nullopt_t value) noexcept(default_ctor_noex_()); ---- [.small]#link:#mrdocs-Optional-03-2constructor-0d[_» more..._]# Construct from `optional` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<typename U> requires std::is_constructible_v<T, U const&> && ConstructFromContainedValue<U> constexpr explicit(!std::is_convertible_v<const U &, T>) link:#mrdocs-Optional-03-2constructor-01d[Optional](std::optional<U> const& t) noexcept(std::is_nothrow_constructible_v<T, const U &>); ---- [.small]#link:#mrdocs-Optional-03-2constructor-01d[_» more..._]# Construct from a value. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<typename U = std::remove_cv_t<T>> requires (!std::is_same_v<Optional, std::remove_cvref_t<U>>) && (!std::is_same_v<std::in_place_t, std::remove_cvref_t<U>>) && std::is_constructible_v<T, U> && NotConstructingBoolFromOptional<U> constexpr explicit(!std::is_convertible_v<U, T>) link:#mrdocs-Optional-03-2constructor-017[Optional](U&& u) noexcept(std::is_nothrow_constructible_v<T, U>); ---- [.small]#link:#mrdocs-Optional-03-2constructor-017[_» more..._]# Construct from `optional` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<typename U> requires std::is_constructible_v<T, U> && ConstructFromContainedValue<U> constexpr explicit(!std::is_convertible_v<U, T>) link:#mrdocs-Optional-03-2constructor-04[Optional](std::optional<U>&& t) noexcept(std::is_nothrow_constructible_v<T, U>); ---- [.small]#link:#mrdocs-Optional-03-2constructor-04[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<typename... Args> requires std::is_constructible_v<T, Args...> constexpr explicit link:#mrdocs-Optional-03-2constructor-0ee[Optional]( std::in_place_t, Args...&&... args) noexcept(std::is_nothrow_constructible_v<T, Args...>); ---- [.small]#link:#mrdocs-Optional-03-2constructor-0ee[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< typename U, typename... Args> requires std::is_constructible_v<T, std::initializer_list<U>&, Args...> constexpr explicit link:#mrdocs-Optional-03-2constructor-05[Optional]( std::in_place_t, std::initializer_list<U> il, Args...&&... args) noexcept(std::is_nothrow_constructible_v<T, std::initializer_list<U> &, Args...>); ---- [.small]#link:#mrdocs-Optional-03-2constructor-05[_» more..._]# == Parameters [cols=2] |=== | Name | Description | *u* | The value to store. It must be convertible to T. |=== Default‐constructs to the “null” state. == Synopsis Declared in `<mrdocs/ADT/Optional.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr Optional() noexcept(default_ctor_noex_()); ---- Copy constructor == Synopsis Declared in `<mrdocs/ADT/Optional.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr Optional(link:#mrdocs-Optional-03[Optional] const& other) = default; ---- == Parameters [cols=2] |=== | Name | Description | *other* | The object to copy construct from |=== Copy constructor == Synopsis Declared in `<mrdocs/ADT/Optional.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<typename U> requires (!std::is_same_v<T, U>) && std::is_constructible_v<T, U const&> && ConstructFromContainedValue<U> constexpr explicit(!std::is_convertible_v<const U &, T>) Optional(link:#mrdocs-Optional-03[Optional<U>] const& t) noexcept(std::is_nothrow_constructible_v<T, const U &>); ---- == Parameters [cols=2] |=== | Name | Description | *t* | The object to copy construct from |=== Move constructor == Synopsis Declared in `<mrdocs/ADT/Optional.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr Optional(link:#mrdocs-Optional-03[Optional]&& other) = default; ---- == Parameters [cols=2] |=== | Name | Description | *other* | The object to move construct from |=== Move constructor == Synopsis Declared in `<mrdocs/ADT/Optional.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<typename U> requires (!std::is_same_v<T, U>) && std::is_constructible_v<T, U> && ConstructFromContainedValue<U> constexpr explicit(!std::is_convertible_v<U, T>) Optional(link:#mrdocs-Optional-03[Optional<U>]&& t) noexcept(std::is_nothrow_constructible_v<T, U>); ---- == Parameters [cols=2] |=== | Name | Description | *t* | The object to move construct from |=== Construct from std::nullopt == Synopsis Declared in `<mrdocs/ADT/Optional.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr Optional(std::nullopt_t value) noexcept(default_ctor_noex_()); ---- == Parameters [cols=2] |=== | Name | Description | *value* | The object to construct from |=== Construct from `optional` == Synopsis Declared in `<mrdocs/ADT/Optional.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<typename U> requires std::is_constructible_v<T, U const&> && ConstructFromContainedValue<U> constexpr explicit(!std::is_convertible_v<const U &, T>) Optional(std::optional<U> const& t) noexcept(std::is_nothrow_constructible_v<T, const U &>); ---- == Parameters [cols=2] |=== | Name | Description | *t* | The object to copy construct from |=== Construct from a value. == Synopsis Declared in `<mrdocs/ADT/Optional.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<typename U = std::remove_cv_t<T>> requires (!std::is_same_v<Optional, std::remove_cvref_t<U>>) && (!std::is_same_v<std::in_place_t, std::remove_cvref_t<U>>) && std::is_constructible_v<T, U> && NotConstructingBoolFromOptional<U> constexpr explicit(!std::is_convertible_v<U, T>) Optional(U&& u) noexcept(std::is_nothrow_constructible_v<T, U>); ---- == Parameters [cols=2] |=== | Name | Description | *u* | The value to store. It must be convertible to T. |=== Construct from `optional` == Synopsis Declared in `<mrdocs/ADT/Optional.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<typename U> requires std::is_constructible_v<T, U> && ConstructFromContainedValue<U> constexpr explicit(!std::is_convertible_v<U, T>) Optional(std::optional<U>&& t) noexcept(std::is_nothrow_constructible_v<T, U>); ---- == Parameters [cols=2] |=== | Name | Description | *t* | The object to move construct from |=== == Synopsis Declared in `<mrdocs/ADT/Optional.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<typename... Args> requires std::is_constructible_v<T, Args...> constexpr explicit Optional( std::in_place_t, Args...&&... args) noexcept(std::is_nothrow_constructible_v<T, Args...>); ---- == Synopsis Declared in `<mrdocs/ADT/Optional.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< typename U, typename... Args> requires std::is_constructible_v<T, std::initializer_list<U>&, Args...> constexpr explicit Optional( std::in_place_t, std::initializer_list<U> il, Args...&&... args) noexcept(std::is_nothrow_constructible_v<T, std::initializer_list<U> &, Args...>); ---- Assignment operators == Synopses Declared in `<mrdocs/ADT/Optional.hpp>` Copy assignment [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-Optional-03[Optional]& link:#mrdocs-Optional-03-operator_assign-01[operator=](link:#mrdocs-Optional-03[Optional] const& other) = default; ---- [.small]#link:#mrdocs-Optional-03-operator_assign-01[_» more..._]# Copy assignment operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<typename U> requires (!std::is_same_v<T, U>) && std::is_constructible_v<T, const U&> && std::is_assignable_v<T&, const U&> && (!detail::ConvertsFromOptional<T, U>::value) && (!detail::AssignsFromOptional<T, U>::value) constexpr link:#mrdocs-Optional-03[Optional]& link:#mrdocs-Optional-03-operator_assign-0a[operator=](link:#mrdocs-Optional-03[Optional<U>] const& u) noexcept(std::is_nothrow_constructible_v<T, const U &> && std::is_nothrow_assignable_v<T &, const U &>); ---- [.small]#link:#mrdocs-Optional-03-operator_assign-0a[_» more..._]# Move assignment [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-Optional-03[Optional]& link:#mrdocs-Optional-03-operator_assign-028[operator=](link:#mrdocs-Optional-03[Optional]&& other) = default; ---- [.small]#link:#mrdocs-Optional-03-operator_assign-028[_» more..._]# Move assignment operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<typename U> requires (!std::is_same_v<T, U>) && std::is_constructible_v<T, U> && std::is_assignable_v<T&, U> && (!detail::ConvertsFromOptional<T, U>::value) && (!detail::AssignsFromOptional<T, U>::value) constexpr link:#mrdocs-Optional-03[Optional]& link:#mrdocs-Optional-03-operator_assign-041[operator=](link:#mrdocs-Optional-03[Optional<U>]&& u) noexcept(std::is_nothrow_constructible_v<T, U> && std::is_nothrow_assignable_v<T &, U>); ---- [.small]#link:#mrdocs-Optional-03-operator_assign-041[_» more..._]# Assignment operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-Optional-03[Optional]& link:#mrdocs-Optional-03-operator_assign-06[operator=](std::nullptr_t value) noexcept(reset_noex_()); ---- [.small]#link:#mrdocs-Optional-03-operator_assign-06[_» more..._]# Assign from a value. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<typename U = std::remove_cv_t<T>> requires (!std::is_same_v<Optional, std::remove_cvref_t<U>>) && std::is_constructible_v<T, U> && std::is_assignable_v<T&, U> constexpr link:#mrdocs-Optional-03[Optional]& link:#mrdocs-Optional-03-operator_assign-042[operator=](U&& u) noexcept(std::is_nothrow_constructible_v<T, U> && std::is_nothrow_assignable_v<T &, U>); ---- [.small]#link:#mrdocs-Optional-03-operator_assign-042[_» more..._]# == Parameters [cols=2] |=== | Name | Description | *u* | The value to store. It must be convertible to T. |=== Copy assignment == Synopsis Declared in `<mrdocs/ADT/Optional.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-Optional-03[Optional]& operator=(link:#mrdocs-Optional-03[Optional] const& other) = default; ---- == Return Value Reference to the current object == Parameters [cols=2] |=== | Name | Description | *other* | The object to copy assign from |=== Copy assignment operator == Synopsis Declared in `<mrdocs/ADT/Optional.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<typename U> requires (!std::is_same_v<T, U>) && std::is_constructible_v<T, const U&> && std::is_assignable_v<T&, const U&> && (!detail::ConvertsFromOptional<T, U>::value) && (!detail::AssignsFromOptional<T, U>::value) constexpr link:#mrdocs-Optional-03[Optional]& operator=(link:#mrdocs-Optional-03[Optional<U>] const& u) noexcept(std::is_nothrow_constructible_v<T, const U &> && std::is_nothrow_assignable_v<T &, const U &>); ---- == Return Value Reference to the current object == Parameters [cols=2] |=== | Name | Description | *u* | The object to copy assign from |=== Move assignment == Synopsis Declared in `<mrdocs/ADT/Optional.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-Optional-03[Optional]& operator=(link:#mrdocs-Optional-03[Optional]&& other) = default; ---- == Return Value Reference to the current object == Parameters [cols=2] |=== | Name | Description | *other* | The object to move assign from |=== Move assignment operator == Synopsis Declared in `<mrdocs/ADT/Optional.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<typename U> requires (!std::is_same_v<T, U>) && std::is_constructible_v<T, U> && std::is_assignable_v<T&, U> && (!detail::ConvertsFromOptional<T, U>::value) && (!detail::AssignsFromOptional<T, U>::value) constexpr link:#mrdocs-Optional-03[Optional]& operator=(link:#mrdocs-Optional-03[Optional<U>]&& u) noexcept(std::is_nothrow_constructible_v<T, U> && std::is_nothrow_assignable_v<T &, U>); ---- == Return Value Reference to the current object == Parameters [cols=2] |=== | Name | Description | *u* | The object to move assign from |=== Assignment operator == Synopsis Declared in `<mrdocs/ADT/Optional.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-Optional-03[Optional]& operator=(std::nullptr_t value) noexcept(reset_noex_()); ---- == Return Value Reference to the current object == Parameters [cols=2] |=== | Name | Description | *value* | The object to assign from |=== Assign from a value. == Synopsis Declared in `<mrdocs/ADT/Optional.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<typename U = std::remove_cv_t<T>> requires (!std::is_same_v<Optional, std::remove_cvref_t<U>>) && std::is_constructible_v<T, U> && std::is_assignable_v<T&, U> constexpr link:#mrdocs-Optional-03[Optional]& operator=(U&& u) noexcept(std::is_nothrow_constructible_v<T, U> && std::is_nothrow_assignable_v<T &, U>); ---- == Return Value Reference to the current object == Parameters [cols=2] |=== | Name | Description | *u* | The value to store. It must be convertible to T. |=== In‐place construct a new value, replacing any existing one. == Synopsis Declared in `<mrdocs/ADT/Optional.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class... Args> requires std::is_constructible_v<T, Args...> constexpr link:#mrdocs-Optional-03-value_type[value_type]& emplace(Args...&&... args) noexcept(std::is_nothrow_constructible_v<T, Args...>); ---- == Return Value A reference to the newly constructed value. == Parameters [cols=2] |=== | Name | Description | *args* | The arguments to forward to T's constructor. |=== True if engaged (contains a value). == Synopsis Declared in `<mrdocs/ADT/Optional.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr bool has_value() const noexcept(has_value_noex_()); ---- == Return Value `true` if the optional contains a value. Dereference‐like access. == Synopses Declared in `<mrdocs/ADT/Optional.hpp>` Dereference‐like access. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-Optional-03-value_type[value_type]& link:#mrdocs-Optional-03-operator_star-0f[operator*]() noexcept; ---- [.small]#link:#mrdocs-Optional-03-operator_star-0f[_» more..._]# Dereference‐like access. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-Optional-03-value_type[value_type] const& link:#mrdocs-Optional-03-operator_star-06[operator*]() const noexcept; ---- [.small]#link:#mrdocs-Optional-03-operator_star-06[_» more..._]# == Return Value A reference to the contained value. Dereference‐like access. == Synopsis Declared in `<mrdocs/ADT/Optional.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-Optional-03-value_type[value_type]& operator*() noexcept; ---- == Return Value A reference to the contained value. Dereference‐like access. == Synopsis Declared in `<mrdocs/ADT/Optional.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-Optional-03-value_type[value_type] const& operator*() const noexcept; ---- == Return Value A reference to the contained value. Pointer‐like access. == Synopses Declared in `<mrdocs/ADT/Optional.hpp>` Pointer‐like access. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-Optional-03-value_type[value_type]* link:#mrdocs-Optional-03-operator_ptr-0fb[operator‐>]() noexcept; ---- [.small]#link:#mrdocs-Optional-03-operator_ptr-0fb[_» more..._]# Pointer‐like access. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-Optional-03-value_type[value_type] const* link:#mrdocs-Optional-03-operator_ptr-0fe[operator‐>]() const noexcept; ---- [.small]#link:#mrdocs-Optional-03-operator_ptr-0fe[_» more..._]# == Return Value A pointer to the contained value. Pointer‐like access. == Synopsis Declared in `<mrdocs/ADT/Optional.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-Optional-03-value_type[value_type]* operator‐>() noexcept; ---- == Return Value A pointer to the contained value. Pointer‐like access. == Synopsis Declared in `<mrdocs/ADT/Optional.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-Optional-03-value_type[value_type] const* operator‐>() const noexcept; ---- == Return Value A pointer to the contained value. Reset to the null state. * == Synopsis Declared in `<mrdocs/ADT/Optional.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr void reset() noexcept(reset_noex_()); ---- Value access. Preconditions: has_value() is true. == Synopses Declared in `<mrdocs/ADT/Optional.hpp>` Value access. Preconditions: has_value() is true. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-Optional-03-value_type[value_type]& link:#mrdocs-Optional-03-value-08[value]() & noexcept; ---- [.small]#link:#mrdocs-Optional-03-value-08[_» more..._]# Value access. Preconditions: has_value() is true. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-Optional-03-value_type[value_type] const& link:#mrdocs-Optional-03-value-07[value]() const & noexcept; ---- [.small]#link:#mrdocs-Optional-03-value-07[_» more..._]# Value access. Preconditions: has_value() is true. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-Optional-03-value_type[value_type]&& link:#mrdocs-Optional-03-value-0e[value]() && noexcept; ---- [.small]#link:#mrdocs-Optional-03-value-0e[_» more..._]# Value access. Preconditions: has_value() is true. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-Optional-03-value_type[value_type] const&& link:#mrdocs-Optional-03-value-0f[value]() const && noexcept; ---- [.small]#link:#mrdocs-Optional-03-value-0f[_» more..._]# == Return Value A reference to the contained value. Value access. Preconditions: has_value() is true. == Synopsis Declared in `<mrdocs/ADT/Optional.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-Optional-03-value_type[value_type]& value() & noexcept; ---- == Return Value A reference to the contained value. Value access. Preconditions: has_value() is true. == Synopsis Declared in `<mrdocs/ADT/Optional.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-Optional-03-value_type[value_type] const& value() const & noexcept; ---- == Return Value A reference to the contained value. Value access. Preconditions: has_value() is true. == Synopsis Declared in `<mrdocs/ADT/Optional.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-Optional-03-value_type[value_type]&& value() && noexcept; ---- == Return Value A reference to the contained value. Value access. Preconditions: has_value() is true. == Synopsis Declared in `<mrdocs/ADT/Optional.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-Optional-03-value_type[value_type] const&& value() const && noexcept; ---- == Return Value A reference to the contained value. Contextual bool. == Synopsis Declared in `<mrdocs/ADT/Optional.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr explicit operator bool() const noexcept(noexcept(this‐>has_value())); ---- == Return Value The object converted to `bool` Determine if the value is inlined via nullable traits. == Synopsis Declared in `<mrdocs/ADT/Optional.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool is_inlined() noexcept; ---- == Description This is a compile‐time property of T. If nullable_traits<T> is not specialized, this function returns false to indicate that the optional uses std::optional<T> as storage with an extra discriminator. If nullable_traits<T> is specialized, this function returns true to suggest that the null state is encoded inside T and no extra storage is used. == Return Value `true` if the optional uses nullable_traits<T> for storage. == Synopsis Declared in `<mrdocs/ADT/Optional.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class T> class link:#mrdocs-Optional-03[Optional]<T&>; ---- == Types [cols=1] |=== | Name | link:#mrdocs-Optional-02-value_type[`value_type`] |=== == Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-Optional-02-2constructor-0b[`Optional`] [.small]#[constructor]# | Constructors | link:#mrdocs-Optional-02-operator_assign-0a[`operator=`] | Assignment operators | link:#mrdocs-Optional-02-emplace[`emplace`] | | link:#mrdocs-Optional-02-has_value[`has_value`] | | link:#mrdocs-Optional-02-operator_star-093[`operator*`] | Dereference operators | link:#mrdocs-Optional-02-operator_ptr-00[`operator‐>`] | Member access operators | link:#mrdocs-Optional-02-reset[`reset`] | | link:#mrdocs-Optional-02-swap[`swap`] | | link:#mrdocs-Optional-02-value-04[`value`] | | link:#mrdocs-Optional-02-2conversion[`operator bool`] | Conversion to `bool` |=== == Static Member Functions [cols=1] |=== | Name | link:#mrdocs-Optional-02-is_inlined[`is_inlined`] |=== == Synopsis Declared in `<mrdocs/ADT/Optional.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- using value_type = T; ---- Constructors == Synopses Declared in `<mrdocs/ADT/Optional.hpp>` Default constructor [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-Optional-02-2constructor-023[Optional]() noexcept = default; ---- [.small]#link:#mrdocs-Optional-02-2constructor-023[_» more..._]# Copy constructor [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-Optional-02-2constructor-027[Optional](link:#mrdocs-Optional-02[Optional] const& other) noexcept = default; ---- [.small]#link:#mrdocs-Optional-02-2constructor-027[_» more..._]# Move constructor [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-Optional-02-2constructor-01[Optional](link:#mrdocs-Optional-02[Optional]&& other) noexcept = default; ---- [.small]#link:#mrdocs-Optional-02-2constructor-01[_» more..._]# Construct from `nullopt_t` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-Optional-02-2constructor-03e[Optional](std::nullopt_t value) noexcept; ---- [.small]#link:#mrdocs-Optional-02-2constructor-03e[_» more..._]# Construct from `Optional` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class U> requires ok_bind_v<U&> constexpr explicit(!std::is_convertible_v<U &, T &>) link:#mrdocs-Optional-02-2constructor-06d[Optional](link:#mrdocs-Optional-03[Optional<U>]& rhs) noexcept(std::is_nothrow_constructible_v<T &, U &>); ---- [.small]#link:#mrdocs-Optional-02-2constructor-06d[_» more..._]# Construct from `optional` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class U> requires ok_bind_v<U&> constexpr link:#mrdocs-Optional-02-2constructor-06b[Optional](std::optional<U>& o) noexcept(std::is_nothrow_constructible_v<T &, U &>); ---- [.small]#link:#mrdocs-Optional-02-2constructor-06b[_» more..._]# Construct from `Optional` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class U> requires ok_bind_v<U const&> constexpr explicit(!std::is_convertible_v<const U &, T &>) link:#mrdocs-Optional-02-2constructor-03f[Optional](link:#mrdocs-Optional-03[Optional<U>] const& rhs) noexcept(std::is_nothrow_constructible_v<T &, const U &>); ---- [.small]#link:#mrdocs-Optional-02-2constructor-03f[_» more..._]# Construct from `optional` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class U> requires ok_bind_v<U const&> constexpr link:#mrdocs-Optional-02-2constructor-04[Optional](std::optional<U> const& o) noexcept(std::is_nothrow_constructible_v<T &, const U &>); ---- [.small]#link:#mrdocs-Optional-02-2constructor-04[_» more..._]# Construct from `U` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class U> requires ( !std::is_same_v<std::remove_cvref_t<U>, Optional> && !std::is_same_v<std::remove_cvref_t<U>, std::in_place_t> && ok_bind_v<U>) constexpr explicit(!std::is_convertible_v<U, T &>) link:#mrdocs-Optional-02-2constructor-065[Optional](U&& u) noexcept(std::is_nothrow_constructible_v<T &, U>); ---- [.small]#link:#mrdocs-Optional-02-2constructor-065[_» more..._]# Default constructor == Synopsis Declared in `<mrdocs/ADT/Optional.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr Optional() noexcept = default; ---- Copy constructor == Synopsis Declared in `<mrdocs/ADT/Optional.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr Optional(link:#mrdocs-Optional-02[Optional] const& other) noexcept = default; ---- == Parameters [cols=2] |=== | Name | Description | *other* | The object to copy construct from |=== Move constructor == Synopsis Declared in `<mrdocs/ADT/Optional.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr Optional(link:#mrdocs-Optional-02[Optional]&& other) noexcept = default; ---- == Parameters [cols=2] |=== | Name | Description | *other* | The object to move construct from |=== Construct from `nullopt_t` == Synopsis Declared in `<mrdocs/ADT/Optional.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr Optional(std::nullopt_t value) noexcept; ---- == Parameters [cols=2] |=== | Name | Description | *value* | The object to construct from |=== Construct from `Optional` == Synopsis Declared in `<mrdocs/ADT/Optional.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class U> requires ok_bind_v<U&> constexpr explicit(!std::is_convertible_v<U &, T &>) Optional(link:#mrdocs-Optional-03[Optional<U>]& rhs) noexcept(std::is_nothrow_constructible_v<T &, U &>); ---- == Parameters [cols=2] |=== | Name | Description | *rhs* | The object to copy construct from |=== Construct from `optional` == Synopsis Declared in `<mrdocs/ADT/Optional.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class U> requires ok_bind_v<U&> constexpr Optional(std::optional<U>& o) noexcept(std::is_nothrow_constructible_v<T &, U &>); ---- == Parameters [cols=2] |=== | Name | Description | *o* | The object to copy construct from |=== Construct from `Optional` == Synopsis Declared in `<mrdocs/ADT/Optional.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class U> requires ok_bind_v<U const&> constexpr explicit(!std::is_convertible_v<const U &, T &>) Optional(link:#mrdocs-Optional-03[Optional<U>] const& rhs) noexcept(std::is_nothrow_constructible_v<T &, const U &>); ---- == Parameters [cols=2] |=== | Name | Description | *rhs* | The object to copy construct from |=== Construct from `optional` == Synopsis Declared in `<mrdocs/ADT/Optional.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class U> requires ok_bind_v<U const&> constexpr Optional(std::optional<U> const& o) noexcept(std::is_nothrow_constructible_v<T &, const U &>); ---- == Parameters [cols=2] |=== | Name | Description | *o* | The object to copy construct from |=== Construct from `U` == Synopsis Declared in `<mrdocs/ADT/Optional.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class U> requires ( !std::is_same_v<std::remove_cvref_t<U>, Optional> && !std::is_same_v<std::remove_cvref_t<U>, std::in_place_t> && ok_bind_v<U>) constexpr explicit(!std::is_convertible_v<U, T &>) Optional(U&& u) noexcept(std::is_nothrow_constructible_v<T &, U>); ---- == Parameters [cols=2] |=== | Name | Description | *u* | The object to move construct from |=== Assignment operators == Synopses Declared in `<mrdocs/ADT/Optional.hpp>` Copy assignment operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-Optional-02[Optional]& link:#mrdocs-Optional-02-operator_assign-0c2[operator=](link:#mrdocs-Optional-02[Optional] const& other) noexcept = default; ---- [.small]#link:#mrdocs-Optional-02-operator_assign-0c2[_» more..._]# Move assignment operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-Optional-02[Optional]& link:#mrdocs-Optional-02-operator_assign-08[operator=](link:#mrdocs-Optional-02[Optional]&& other) noexcept = default; ---- [.small]#link:#mrdocs-Optional-02-operator_assign-08[_» more..._]# Assignment operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-Optional-02[Optional]& link:#mrdocs-Optional-02-operator_assign-05[operator=](std::nullopt_t value) noexcept; ---- [.small]#link:#mrdocs-Optional-02-operator_assign-05[_» more..._]# Assignment operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class U> requires ok_bind_v<U&> constexpr link:#mrdocs-Optional-02[Optional]& link:#mrdocs-Optional-02-operator_assign-0e[operator=](link:#mrdocs-Optional-03[Optional<U>]& rhs) noexcept(std::is_nothrow_constructible_v<T &, U &>); ---- [.small]#link:#mrdocs-Optional-02-operator_assign-0e[_» more..._]# Assignment operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class U> requires ok_bind_v<U const&> constexpr link:#mrdocs-Optional-02[Optional]& link:#mrdocs-Optional-02-operator_assign-0b[operator=](link:#mrdocs-Optional-03[Optional<U>] const& rhs) noexcept(std::is_nothrow_constructible_v<T &, const U &>); ---- [.small]#link:#mrdocs-Optional-02-operator_assign-0b[_» more..._]# Assignment operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class U> requires ok_bind_v<U> constexpr link:#mrdocs-Optional-02[Optional]& link:#mrdocs-Optional-02-operator_assign-0ce[operator=](U&& u) noexcept(std::is_nothrow_constructible_v<T &, U>); ---- [.small]#link:#mrdocs-Optional-02-operator_assign-0ce[_» more..._]# Assignment operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class U> requires ok_bind_v<U> constexpr link:#mrdocs-Optional-02[Optional]& link:#mrdocs-Optional-02-operator_assign-07[operator=](link:#mrdocs-Optional-03[Optional<U>]&& rhs) noexcept(std::is_nothrow_constructible_v<T &, U>); ---- [.small]#link:#mrdocs-Optional-02-operator_assign-07[_» more..._]# Copy assignment operator == Synopsis Declared in `<mrdocs/ADT/Optional.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-Optional-02[Optional]& operator=(link:#mrdocs-Optional-02[Optional] const& other) noexcept = default; ---- == Return Value Reference to the current object == Parameters [cols=2] |=== | Name | Description | *other* | The object to copy assign from |=== Move assignment operator == Synopsis Declared in `<mrdocs/ADT/Optional.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-Optional-02[Optional]& operator=(link:#mrdocs-Optional-02[Optional]&& other) noexcept = default; ---- == Return Value Reference to the current object == Parameters [cols=2] |=== | Name | Description | *other* | The object to move assign from |=== Assignment operator == Synopsis Declared in `<mrdocs/ADT/Optional.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-Optional-02[Optional]& operator=(std::nullopt_t value) noexcept; ---- == Return Value Reference to the current object == Parameters [cols=2] |=== | Name | Description | *value* | The object to assign from |=== Assignment operator == Synopsis Declared in `<mrdocs/ADT/Optional.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class U> requires ok_bind_v<U&> constexpr link:#mrdocs-Optional-02[Optional]& operator=(link:#mrdocs-Optional-03[Optional<U>]& rhs) noexcept(std::is_nothrow_constructible_v<T &, U &>); ---- == Return Value Reference to the current object == Parameters [cols=2] |=== | Name | Description | *rhs* | The object to copy assign from |=== Assignment operator == Synopsis Declared in `<mrdocs/ADT/Optional.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class U> requires ok_bind_v<U const&> constexpr link:#mrdocs-Optional-02[Optional]& operator=(link:#mrdocs-Optional-03[Optional<U>] const& rhs) noexcept(std::is_nothrow_constructible_v<T &, const U &>); ---- == Return Value Reference to the current object == Parameters [cols=2] |=== | Name | Description | *rhs* | The object to copy assign from |=== Assignment operator == Synopsis Declared in `<mrdocs/ADT/Optional.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class U> requires ok_bind_v<U> constexpr link:#mrdocs-Optional-02[Optional]& operator=(U&& u) noexcept(std::is_nothrow_constructible_v<T &, U>); ---- == Return Value Reference to the current object == Parameters [cols=2] |=== | Name | Description | *u* | The object to move assign from |=== Assignment operator == Synopsis Declared in `<mrdocs/ADT/Optional.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class U> requires ok_bind_v<U> constexpr link:#mrdocs-Optional-02[Optional]& operator=(link:#mrdocs-Optional-03[Optional<U>]&& rhs) noexcept(std::is_nothrow_constructible_v<T &, U>); ---- == Return Value Reference to the current object == Parameters [cols=2] |=== | Name | Description | *rhs* | The object to move assign from |=== == Synopsis Declared in `<mrdocs/ADT/Optional.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class U> requires ok_bind_v<U> constexpr link:#mrdocs-Optional-02-value_type[value_type]& emplace(U&& u) noexcept(std::is_nothrow_constructible_v<T &, U>); ---- == Synopsis Declared in `<mrdocs/ADT/Optional.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr bool has_value() const noexcept; ---- Dereference operators == Synopses Declared in `<mrdocs/ADT/Optional.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-Optional-02-value_type[value_type]& link:#mrdocs-Optional-02-operator_star-090[operator*]() noexcept; ---- [.small]#link:#mrdocs-Optional-02-operator_star-090[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-Optional-02-value_type[value_type] const& link:#mrdocs-Optional-02-operator_star-05[operator*]() const noexcept; ---- [.small]#link:#mrdocs-Optional-02-operator_star-05[_» more..._]# == Synopsis Declared in `<mrdocs/ADT/Optional.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-Optional-02-value_type[value_type]& operator*() noexcept; ---- == Synopsis Declared in `<mrdocs/ADT/Optional.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-Optional-02-value_type[value_type] const& operator*() const noexcept; ---- Member access operators == Synopses Declared in `<mrdocs/ADT/Optional.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-Optional-02-value_type[value_type]* link:#mrdocs-Optional-02-operator_ptr-02[operator‐>]() noexcept; ---- [.small]#link:#mrdocs-Optional-02-operator_ptr-02[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-Optional-02-value_type[value_type] const* link:#mrdocs-Optional-02-operator_ptr-07[operator‐>]() const noexcept; ---- [.small]#link:#mrdocs-Optional-02-operator_ptr-07[_» more..._]# == Synopsis Declared in `<mrdocs/ADT/Optional.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-Optional-02-value_type[value_type]* operator‐>() noexcept; ---- == Synopsis Declared in `<mrdocs/ADT/Optional.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-Optional-02-value_type[value_type] const* operator‐>() const noexcept; ---- == Synopsis Declared in `<mrdocs/ADT/Optional.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr void reset() noexcept; ---- == Synopsis Declared in `<mrdocs/ADT/Optional.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr void swap(link:#mrdocs-Optional-02[Optional]& other) noexcept; ---- == Synopses Declared in `<mrdocs/ADT/Optional.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-Optional-02-value_type[value_type]& link:#mrdocs-Optional-02-value-01[value]() & noexcept; ---- [.small]#link:#mrdocs-Optional-02-value-01[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-Optional-02-value_type[value_type] const& link:#mrdocs-Optional-02-value-00[value]() const & noexcept; ---- [.small]#link:#mrdocs-Optional-02-value-00[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-Optional-02-value_type[value_type]& link:#mrdocs-Optional-02-value-05[value]() && noexcept; ---- [.small]#link:#mrdocs-Optional-02-value-05[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-Optional-02-value_type[value_type] const& link:#mrdocs-Optional-02-value-02[value]() const && noexcept; ---- [.small]#link:#mrdocs-Optional-02-value-02[_» more..._]# == Synopsis Declared in `<mrdocs/ADT/Optional.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-Optional-02-value_type[value_type]& value() & noexcept; ---- == Synopsis Declared in `<mrdocs/ADT/Optional.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-Optional-02-value_type[value_type] const& value() const & noexcept; ---- == Synopsis Declared in `<mrdocs/ADT/Optional.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-Optional-02-value_type[value_type]& value() && noexcept; ---- == Synopsis Declared in `<mrdocs/ADT/Optional.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-Optional-02-value_type[value_type] const& value() const && noexcept; ---- Conversion to `bool` == Synopsis Declared in `<mrdocs/ADT/Optional.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr explicit operator bool() const noexcept; ---- == Return Value The object converted to `bool` == Synopsis Declared in `<mrdocs/ADT/Optional.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool is_inlined() noexcept; ---- Reference to output stream used by handlebars == Synopsis Declared in `<mrdocs/Support/Handlebars.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- class OutputRef; ---- == Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-OutputRef-2constructor-0f[`OutputRef`] [.small]#[constructor]# | Constructors | link:#mrdocs-OutputRef-getIndent[`getIndent`] | | link:#mrdocs-OutputRef-setIndent[`setIndent`] | |=== == Friends [cols=2] |=== | Name | Description | `link:#mrdocs-operator_lshift-0a[mrdocs::operator<<]` | Write to output | `link:#mrdocs-operator_lshift-0f[mrdocs::operator<<]` | Write to output | `link:#mrdocs-operator_lshift-0e9[mrdocs::operator<<]` | Write to output | `link:#mrdocs-operator_lshift-0d[mrdocs::operator<<]` | Write to output | `link:#mrdocs-Handlebars[mrdocs::Handlebars]` | A handlebars environment |=== == Non-Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-HTMLEscape-09[`HTMLEscape`] | HTML escapes the specified string |=== == Description This class is used to internally pass an output stream to the handlebars environment. It allows many types to be used as output streams, including std::string, std::ostream, llvm::raw_string_ostream, and others. Constructors == Synopses Declared in `<mrdocs/Support/Handlebars.hpp>` Constructor for std::ostream& output [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template</* implementation-defined */ Os> requires std::is_convertible_v<Os*, std::ostream*> && (!detail::StdLHROStreamable<Os>) link:#mrdocs-OutputRef-2constructor-0d[OutputRef](Os& os); ---- [.small]#link:#mrdocs-OutputRef-2constructor-0d[_» more..._]# Constructor for llvm::raw_string_ostream output [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template</* implementation-defined */ Os> requires std::is_convertible_v<Os*, std::ostream*> link:#mrdocs-OutputRef-2constructor-08[OutputRef](Os& os); ---- [.small]#link:#mrdocs-OutputRef-2constructor-08[_» more..._]# Constructor for std::string output [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template</* implementation-defined */ St> requires std::same_as<typename St::value_type, char> link:#mrdocs-OutputRef-2constructor-0b[OutputRef](St& st); ---- [.small]#link:#mrdocs-OutputRef-2constructor-0b[_» more..._]# == Parameters [cols=2] |=== | Name | Description | *os* | The output stream to write to | *st* | The string to append to |=== Constructor for std::ostream& output == Synopsis Declared in `<mrdocs/Support/Handlebars.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template</* implementation-defined */ Os> requires std::is_convertible_v<Os*, std::ostream*> && (!detail::StdLHROStreamable<Os>) OutputRef(Os& os); ---- == Parameters [cols=2] |=== | Name | Description | *os* | The output stream to write to |=== Constructor for llvm::raw_string_ostream output == Synopsis Declared in `<mrdocs/Support/Handlebars.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template</* implementation-defined */ Os> requires std::is_convertible_v<Os*, std::ostream*> OutputRef(Os& os); ---- == Parameters [cols=2] |=== | Name | Description | *os* | The output stream to write to |=== Constructor for std::string output == Synopsis Declared in `<mrdocs/Support/Handlebars.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template</* implementation-defined */ St> requires std::same_as<typename St::value_type, char> OutputRef(St& st); ---- == Parameters [cols=2] |=== | Name | Description | *st* | The string to append to |=== == Synopsis Declared in `<mrdocs/Support/Handlebars.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::size_t getIndent() const noexcept; ---- == Synopsis Declared in `<mrdocs/Support/Handlebars.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void setIndent(std::size_t indent); ---- Combines multiple callable types into a single overloaded function object. == Synopsis Declared in `<mrdocs/ADT/Overload.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class... Ts> struct Overload : Ts... ---- == Base Classes [cols=2] |=== | Name | Description | `Ts...` | |=== == Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-Overload-09-2constructor[`Overload`] [.small]#[constructor]# | Constructs an Overload from the given callables. |=== == Non-Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-makeOverload[`makeOverload`] | Factory function that creates an Overload from the given callables. |=== == Description This is the canonical "overloaded pattern" implemented as a class template. It inherits from all provided callables and brings in their operator()s, so the resulting object can be called with whichever overload matches. Typical use‐cases include visiting std::variant and building small ad‐hoc pattern‐matching style dispatchers. [,cpp] ---- auto f = fn::makeOverload( [](int i) { return i * 2; }, [](const std::string& s) { return s.size(); } ); auto a = f(21); // calls int overload auto b = f(std::string("hello")); // calls string overload ---- == Template Parameters [cols=2] |=== | Name | Description | *Ts* | The callable types to combine (lambdas, function objects, etc.) |=== Constructs an Overload from the given callables. == Synopsis Declared in `<mrdocs/ADT/Overload.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr explicit Overload(Ts... xs) noexcept((std::is_nothrow_move_constructible_v<Ts> && ...)); ---- == Parameters [cols=2] |=== | Name | Description | *xs* | The callables to store. |=== Represents a set of function overloads. == Synopsis Declared in `<mrdocs/Metadata/Symbol/Overloads.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- struct OverloadsSymbol final : link:#mrdocs-SymbolCommonBase-015[SymbolCommonBase<SymbolKind::Overloads>] ---- == Base Classes [cols=2] |=== | Name | Description | `link:#mrdocs-SymbolCommonBase-015[SymbolCommonBase<SymbolKind::Overloads>]` | Base class for providing variant discriminator functions. |=== == Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-OverloadsSymbol-2constructor-02[`OverloadsSymbol`] [.small]#[constructor]# | Constructors | link:#mrdocs-OverloadsSymbol-operator_3way[`operator<=>`] | Three‐way comparison operator |=== == Static Member Functions [cols=1] |=== | Name | link:#mrdocs-OverloadsSymbol-isConcept[`isConcept`] | link:#mrdocs-OverloadsSymbol-isEnum[`isEnum`] | link:#mrdocs-OverloadsSymbol-isEnumConstant[`isEnumConstant`] | link:#mrdocs-OverloadsSymbol-isFunction[`isFunction`] | link:#mrdocs-OverloadsSymbol-isGuide[`isGuide`] | link:#mrdocs-OverloadsSymbol-isNamespace[`isNamespace`] | link:#mrdocs-OverloadsSymbol-isNamespaceAlias[`isNamespaceAlias`] | link:#mrdocs-OverloadsSymbol-isOverloads[`isOverloads`] | link:#mrdocs-OverloadsSymbol-isRecord[`isRecord`] | link:#mrdocs-OverloadsSymbol-isTypedef[`isTypedef`] | link:#mrdocs-OverloadsSymbol-isUsing[`isUsing`] | link:#mrdocs-OverloadsSymbol-isVariable[`isVariable`] |=== == Data Members [cols=2] |=== | Name | Description | link:#mrdocs-OverloadsSymbol-Class[`Class`] | The class of the functions. | link:#mrdocs-OverloadsSymbol-Members[`Members`] | The members of the overload set. | link:#mrdocs-OverloadsSymbol-OverloadedOperator[`OverloadedOperator`] | The overloaded operator, if any. | link:#mrdocs-OverloadsSymbol-ReturnType[`ReturnType`] | Info about the return type of these function overloads. |=== == Static Data Members [cols=1] |=== | Name | link:#mrdocs-OverloadsSymbol-kind_id[`kind_id`] |=== == Non-Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-merge-00c[`merge`] | Merges two Symbol objects. |=== Constructors == Synopses Declared in `<mrdocs/Metadata/Symbol/Overloads.hpp>` Construct from `SymbolID` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- explicit link:#mrdocs-OverloadsSymbol-2constructor-07[OverloadsSymbol](link:#mrdocs-SymbolID[SymbolID] const& ID) noexcept; ---- [.small]#link:#mrdocs-OverloadsSymbol-2constructor-07[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- explicit link:#mrdocs-OverloadsSymbol-2constructor-01[OverloadsSymbol]( link:#mrdocs-SymbolID[SymbolID] const& Parent, std::string_view Name, link:#mrdocs-AccessKind[AccessKind] Access, bool isStatic) noexcept; ---- [.small]#link:#mrdocs-OverloadsSymbol-2constructor-01[_» more..._]# Construct from `SymbolID` == Synopsis Declared in `<mrdocs/Metadata/Symbol/Overloads.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- explicit OverloadsSymbol(link:#mrdocs-SymbolID[SymbolID] const& ID) noexcept; ---- == Parameters [cols=2] |=== | Name | Description | *ID* | The object to copy construct from |=== == Synopsis Declared in `<mrdocs/Metadata/Symbol/Overloads.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- explicit OverloadsSymbol( link:#mrdocs-SymbolID[SymbolID] const& Parent, std::string_view Name, link:#mrdocs-AccessKind[AccessKind] Access, bool isStatic) noexcept; ---- Three‐way comparison operator == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- auto operator<=>(link:#mrdocs-SymbolCommonBase-015[SymbolCommonBase<mrdocs::SymbolKind::Overloads>] const& rhs) const = default; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isConcept() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isEnum() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isEnumConstant() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isFunction() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isGuide() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isNamespace() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isNamespaceAlias() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isOverloads() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isRecord() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isTypedef() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isUsing() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isVariable() noexcept; ---- The class of the functions. == Synopsis Declared in `<mrdocs/Metadata/Symbol/Overloads.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-FunctionClass[FunctionClass] Class = FunctionClass::Normal; ---- The members of the overload set. == Synopsis Declared in `<mrdocs/Metadata/Symbol/Overloads.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::vector<SymbolID> Members; ---- The overloaded operator, if any. == Synopsis Declared in `<mrdocs/Metadata/Symbol/Overloads.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-OperatorKind[OperatorKind] OverloadedOperator = OperatorKind::None; ---- Info about the return type of these function overloads. == Synopsis Declared in `<mrdocs/Metadata/Symbol/Overloads.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-Polymorphic[Polymorphic<Type>] ReturnType = Polymorphic<Type>(AutoType{}); ---- == Description If all overloads have the same return type, this contains that type. Otherwise, it contains `auto` to indicate that the return type varies according to the parameters. == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static link:#mrdocs-SymbolKind[SymbolKind] kind_id; ---- Represents a single function parameter == Synopsis Declared in `<mrdocs/Metadata/Symbol/Param.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- struct Param final ---- == Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-Param-2constructor-03[`Param`] [.small]#[constructor]# | Constructors | link:#mrdocs-Param-operator_3way[`operator<=>`] | Three‐way comparison operator |=== == Data Members [cols=2] |=== | Name | Description | link:#mrdocs-Param-Default[`Default`] | The default argument for this parameter, if any | link:#mrdocs-Param-Name[`Name`] | The parameter name. | link:#mrdocs-Param-Type[`Type`] | The type of this parameter |=== Constructors == Synopses Declared in `<mrdocs/Metadata/Symbol/Param.hpp>` Default constructor [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-Param-2constructor-0d[Param]() = default; ---- [.small]#link:#mrdocs-Param-2constructor-0d[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-Param-2constructor-00[Param]( link:#mrdocs-Polymorphic[Polymorphic<Type>]&& type, std::string&& name, std::string&& def_arg); ---- [.small]#link:#mrdocs-Param-2constructor-00[_» more..._]# Default constructor == Synopsis Declared in `<mrdocs/Metadata/Symbol/Param.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr Param() = default; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/Param.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- Param( link:#mrdocs-Polymorphic[Polymorphic<Type>]&& type, std::string&& name, std::string&& def_arg); ---- Three‐way comparison operator == Synopsis Declared in `<mrdocs/Metadata/Symbol/Param.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- auto operator<=>(link:#mrdocs-Param[Param] const& rhs) const = default; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== The default argument for this parameter, if any == Synopsis Declared in `<mrdocs/Metadata/Symbol/Param.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-Optional-03[Optional<std::string>] Default; ---- The parameter name. == Synopsis Declared in `<mrdocs/Metadata/Symbol/Param.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-Optional-03[Optional<std::string>] Name; ---- The type of this parameter == Synopsis Declared in `<mrdocs/Metadata/Symbol/Param.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-Polymorphic[Polymorphic<Type>] Type = Polymorphic<struct Type>(AutoType{}); ---- The result of a parse operation. == Synopsis Declared in `<mrdocs/Support/Parse.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- struct ParseResult; ---- == Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-ParseResult-2conversion[`operator bool`] | Conversion to `bool` |=== == Data Members [cols=1] |=== | Name | link:#mrdocs-ParseResult-ec[`ec`] | link:#mrdocs-ParseResult-ptr[`ptr`] |=== == Friends [cols=2] |=== | Name | Description | `link:#mrdocs-operator_eq-01[mrdocs::operator==]` | Equality operator |=== == Non-Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-parse-04[`parse`] | Parse a string view |=== == Description This class holds the result of a parse operation. The structure is similar to `std::from_chars_result`, where we have a `ptr` member that points to the first character not parsed, and a `ec` member that holds the error code. If parsing was successful, then `ec` stores a default constructed `Error` object, which indicates success. The `operator bool` can also be used to check for success. The typical format of a parsing function is: [,cpp] ---- ParseResult parseType( char const* first, char const* last, Type& value); ---- where more parameters can be defined as needed for parsing options. Conversion to `bool` == Synopsis Declared in `<mrdocs/Support/Parse.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr explicit operator bool() const noexcept; ---- == Return Value The object converted to `bool` == Synopsis Declared in `<mrdocs/Support/Parse.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-Error[Error] ec; ---- == Synopsis Declared in `<mrdocs/Support/Parse.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- char const* ptr; ---- A glob pattern matcher for paths == Synopsis Declared in `<mrdocs/Support/Glob.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- class PathGlobPattern; ---- == Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-PathGlobPattern-2constructor-0c[`PathGlobPattern`] [.small]#[constructor]# | Construct an empty PathGlobPattern. | link:#mrdocs-PathGlobPattern-isLiteral[`isLiteral`] | Checks if the glob pattern is a literal string. | link:#mrdocs-PathGlobPattern-match[`match`] | Matches the given string against the glob pattern. | link:#mrdocs-PathGlobPattern-matchPatternPrefix[`matchPatternPrefix`] | Matches the start of a given string against the glob pattern. | link:#mrdocs-PathGlobPattern-pattern[`pattern`] | Returns the glob pattern. |=== == Static Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-PathGlobPattern-create-090[`create`] | Constructs a PathGlobPattern with the given pattern. |=== == Description A glob pattern matcher where "*" does not match path separators. The pattern "**" can be used to match any number of path separators. Construct an empty PathGlobPattern. == Synopses Declared in `<mrdocs/Support/Glob.hpp>` Construct an empty PathGlobPattern. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-PathGlobPattern-2constructor-05[PathGlobPattern]() = default; ---- [.small]#link:#mrdocs-PathGlobPattern-2constructor-05[_» more..._]# Construct an empty PathGlobPattern. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- explicit link:#mrdocs-PathGlobPattern-2constructor-02[PathGlobPattern](link:#mrdocs-GlobPattern[GlobPattern] glob); ---- [.small]#link:#mrdocs-PathGlobPattern-2constructor-02[_» more..._]# Construct an empty PathGlobPattern. == Synopsis Declared in `<mrdocs/Support/Glob.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr PathGlobPattern() = default; ---- == Description An empty PathGlobPattern will never match any string. Construct an empty PathGlobPattern. == Synopsis Declared in `<mrdocs/Support/Glob.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- explicit PathGlobPattern(link:#mrdocs-GlobPattern[GlobPattern] glob); ---- == Description An empty PathGlobPattern will never match any string. == Parameters [cols=2] |=== | Name | Description | *glob* | The object to construct from |=== Checks if the glob pattern is a literal string. == Synopsis Declared in `<mrdocs/Support/Glob.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool isLiteral() const; ---- == Description This function determines if the glob pattern does not contain any special characters. In other words, it matches a single string. == Return Value true if the glob pattern is a literal string, false otherwise. Matches the given string against the glob pattern. == Synopsis Declared in `<mrdocs/Support/Glob.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool match(std::string_view const str) const; ---- == Return Value true if the string matches the pattern, false otherwise. == Parameters [cols=2] |=== | Name | Description | *str* | The string to match against the pattern. |=== Matches the start of a given string against the glob pattern. == Synopsis Declared in `<mrdocs/Support/Glob.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool matchPatternPrefix(std::string_view prefix) const; ---- == Description This function determines if the given string with the specified `prefix` can potentially match the glob pattern. If the string matches the start of the pattern without failure, even if there are characters left in the string or the pattern, the function returns true. == Return Value true if the string prefix matches the pattern, false otherwise. == Parameters [cols=2] |=== | Name | Description | *prefix* | The string to match against the pattern. |=== Returns the glob pattern. == Synopsis Declared in `<mrdocs/Support/Glob.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::string_view pattern() const; ---- == Return Value The glob pattern as a string view. Constructs a PathGlobPattern with the given pattern. == Synopses Declared in `<mrdocs/Support/Glob.hpp>` Constructs a PathGlobPattern with the given pattern. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- static link:#mrdocs-Expected-0a[Expected<PathGlobPattern>] link:#mrdocs-PathGlobPattern-create-05[create](std::string_view const pattern); ---- [.small]#link:#mrdocs-PathGlobPattern-create-05[_» more..._]# Constructs a PathGlobPattern with the given pattern. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- static link:#mrdocs-Expected-0a[Expected<PathGlobPattern>] link:#mrdocs-PathGlobPattern-create-09f[create]( std::string_view const pattern, link:#mrdocs-Optional-03[Optional<std::size_t>] maxSubGlobs); ---- [.small]#link:#mrdocs-PathGlobPattern-create-09f[_» more..._]# == Parameters [cols=2] |=== | Name | Description | *pattern* | The glob pattern to use for matching. | *maxSubGlobs* | The maximum number of subpatterns allowed. |=== Constructs a PathGlobPattern with the given pattern. == Synopsis Declared in `<mrdocs/Support/Glob.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- static link:#mrdocs-Expected-0a[Expected<PathGlobPattern>] create(std::string_view const pattern); ---- == Return Value A container holding an error or a value. == Parameters [cols=2] |=== | Name | Description | *pattern* | The glob pattern to use for matching. |=== Constructs a PathGlobPattern with the given pattern. == Synopsis Declared in `<mrdocs/Support/Glob.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- static link:#mrdocs-Expected-0a[Expected<PathGlobPattern>] create( std::string_view const pattern, link:#mrdocs-Optional-03[Optional<std::size_t>] maxSubGlobs); ---- == Return Value A container holding an error or a value. == Parameters [cols=2] |=== | Name | Description | *pattern* | The glob pattern to use for matching. | *maxSubGlobs* | The maximum number of subpatterns allowed. |=== == Synopsis Declared in `<mrdocs/Metadata/Type/PointerType.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- struct PointerType final : link:#mrdocs-TypeCommonBase-0e[TypeCommonBase<TypeKind::Pointer>] ---- == Base Classes [cols=2] |=== | Name | Description | `link:#mrdocs-TypeCommonBase-0e[TypeCommonBase<TypeKind::Pointer>]` | |=== == Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-PointerType-operator_3way-0d[`operator<=>`] | Three‐way comparison operators |=== == Static Member Functions [cols=1] |=== | Name | link:#mrdocs-PointerType-isArray[`isArray`] | link:#mrdocs-PointerType-isAuto[`isAuto`] | link:#mrdocs-PointerType-isDecltype[`isDecltype`] | link:#mrdocs-PointerType-isFunction[`isFunction`] | link:#mrdocs-PointerType-isLValueReference[`isLValueReference`] | link:#mrdocs-PointerType-isMemberPointer[`isMemberPointer`] | link:#mrdocs-PointerType-isNamed[`isNamed`] | link:#mrdocs-PointerType-isPointer[`isPointer`] | link:#mrdocs-PointerType-isRValueReference[`isRValueReference`] |=== == Data Members [cols=1] |=== | Name | link:#mrdocs-PointerType-PointeeType[`PointeeType`] |=== == Static Data Members [cols=1] |=== | Name | link:#mrdocs-PointerType-kind_id[`kind_id`] |=== == Non-Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-innerType-06[`innerType`] | Return the inner type. | link:#mrdocs-innerType-09[`innerType`] | Return the inner type. | link:#mrdocs-innerTypePtr-08[`innerTypePtr`] | Return the inner type. | link:#mrdocs-innerTypePtr-0a[`innerTypePtr`] | Return the inner type. |=== Three‐way comparison operators == Synopses Declared in `<mrdocs/Metadata/Type/PointerType.hpp>` Three‐way comparison operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::strong_ordering link:#mrdocs-PointerType-operator_3way-09[operator<=>](link:#mrdocs-PointerType[PointerType] const& rhs) const; ---- [.small]#link:#mrdocs-PointerType-operator_3way-09[_» more..._]# Three‐way comparison operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr auto link:#mrdocs-PointerType-operator_3way-07[operator<=>](link:#mrdocs-TypeCommonBase-0e[TypeCommonBase<mrdocs::TypeKind::Pointer>] const& rhs) const = default; ---- [.small]#link:#mrdocs-PointerType-operator_3way-07[_» more..._]# Three‐way comparison operator == Synopsis Declared in `<mrdocs/Metadata/Type/PointerType.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::strong_ordering operator<=>(link:#mrdocs-PointerType[PointerType] const& rhs) const; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== Three‐way comparison operator == Synopsis Declared in `<mrdocs/Metadata/Type/TypeBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr auto operator<=>(link:#mrdocs-TypeCommonBase-0e[TypeCommonBase<mrdocs::TypeKind::Pointer>] const& rhs) const = default; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== == Synopsis Declared in `<mrdocs/Metadata/Type/TypeBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isArray() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Type/TypeBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isAuto() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Type/TypeBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isDecltype() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Type/TypeBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isFunction() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Type/TypeBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isLValueReference() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Type/TypeBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isMemberPointer() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Type/TypeBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isNamed() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Type/TypeBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isPointer() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Type/TypeBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isRValueReference() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Type/PointerType.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-Polymorphic[Polymorphic<Type>] PointeeType = Polymorphic<Type>(AutoType{}); ---- == Synopsis Declared in `<mrdocs/Metadata/Type/TypeBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static link:#mrdocs-TypeKind[TypeKind] kind_id; ---- A polymorphic value‐type. == Synopsis Declared in `<mrdocs/ADT/Polymorphic.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class T> class Polymorphic; ---- == Types [cols=1] |=== | Name | link:#mrdocs-Polymorphic-const_pointer[`const_pointer`] | link:#mrdocs-Polymorphic-pointer[`pointer`] | link:#mrdocs-Polymorphic-value_type[`value_type`] |=== == Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-Polymorphic-2constructor-0b[`Polymorphic`] [.small]#[constructor]# | Constructors | link:#mrdocs-Polymorphic-2destructor[`~Polymorphic`] [.small]#[destructor]# | Destructor | link:#mrdocs-Polymorphic-operator_assign-02[`operator=`] | Assignment operators | link:#mrdocs-Polymorphic-operator_star-00[`operator*`] | Dereference operators | link:#mrdocs-Polymorphic-operator_ptr-01[`operator‐>`] | Member access operators | link:#mrdocs-Polymorphic-valueless_after_move[`valueless_after_move`] | |=== == Friends [cols=2] |=== | Name | Description | `link:#mrdocs-swap-07ce[mrdocs::swap]` | | `link:#mrdocs-nullable_traits-0b[mrdocs::nullable_traits]` | nullable_traits<T> defines how to treat a T as “nullable” without an external engaged bit. |=== == Non-Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-CompareDerived-06[`CompareDerived`] | Compares two polymorphic objects that have visit functions | link:#mrdocs-innerType-06[`innerType`] | Return the inner type. | link:#mrdocs-innerType-09[`innerType`] | Return the inner type. | link:#mrdocs-innermostType-09[`innermostType`] | Return the innermost type. | link:#mrdocs-innermostType-0b[`innermostType`] | Return the innermost type. | link:#mrdocs-operator_3way-03[`operator<=>`] | Three‐way comparison operator | link:#mrdocs-operator_3way-04[`operator<=>`] | Three‐way comparison operator | link:#mrdocs-operator_3way-0820[`operator<=>`] | Three‐way comparison operator | link:#mrdocs-operator_3way-0822[`operator<=>`] | Three‐way comparison operator | link:#mrdocs-operator_3way-0b[`operator<=>`] | Three‐way comparison operator | link:#mrdocs-operator_eq-02[`operator==`] | Equality operator | link:#mrdocs-operator_eq-06c[`operator==`] | Equality operator | link:#mrdocs-operator_eq-0c4[`operator==`] | Equality operator | link:#mrdocs-operator_eq-0f[`operator==`] | Equality operator | link:#mrdocs-doc-isEmpty-00[`doc::isEmpty`] | Determine if the inline is empty | link:#mrdocs-doc-isEmpty-03[`doc::isEmpty`] | Determine if the inline is empty | link:#mrdocs-doc-ltrim-02[`doc::ltrim`] | Removes leading whitespace from the inline element. | link:#mrdocs-doc-ltrim-05[`doc::ltrim`] | Removes leading whitespace from the block. | link:#mrdocs-doc-operator_3way-016[`doc::operator<=>`] | Three‐way comparison operator | link:#mrdocs-doc-operator_3way-0a[`doc::operator<=>`] | Three‐way comparison operator | link:#mrdocs-doc-operator_eq-00[`doc::operator==`] | Equality operator | link:#mrdocs-doc-operator_eq-01[`doc::operator==`] | Equality operator | link:#mrdocs-doc-rtrim-02[`doc::rtrim`] | Removes trailing whitespace from the block. | link:#mrdocs-doc-rtrim-0f[`doc::rtrim`] | Removes trailing whitespace from the inline element. | link:#mrdocs-doc-trim-01[`doc::trim`] | Removes leading and trailing whitespace from the block. | link:#mrdocs-doc-trim-07f[`doc::trim`] | Removes leading and trailing whitespace from the inline element. |=== == Description This class supports polymorphic objects with value‐like semantics. It implements a tweaked version of std::polymorphic, based on the reference implementation for P3019R14. Differences are: It implements comparison operators with a very project‐specific design. Fixed allocator, not parametrizable. No initializer_list constructor. == Deep copies To copy polymorphic objects, the class uses the copy constructor of the owned derived‐type object when copying to another value. Similarly, to allow the correct destruction of derived objects, it uses the destructor of the owned derived‐type object in the destructor. == Synopsis Declared in `<mrdocs/ADT/Polymorphic.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- using const_pointer = T const*; ---- == Synopsis Declared in `<mrdocs/ADT/Polymorphic.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- using pointer = T*; ---- == Synopsis Declared in `<mrdocs/ADT/Polymorphic.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- using value_type = T; ---- Constructors == Synopses Declared in `<mrdocs/ADT/Polymorphic.hpp>` Copy constructor [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-Polymorphic-2constructor-0f9[Polymorphic](link:#mrdocs-Polymorphic[Polymorphic] const& V); ---- [.small]#link:#mrdocs-Polymorphic-2constructor-0f9[_» more..._]# Move constructor [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-Polymorphic-2constructor-09[Polymorphic](link:#mrdocs-Polymorphic[Polymorphic]&& V) noexcept; ---- [.small]#link:#mrdocs-Polymorphic-2constructor-09[_» more..._]# Forwarding constructor from a derived U. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class U> constexpr explicit link:#mrdocs-Polymorphic-2constructor-02[Polymorphic](U&& u) requires (!std::same_as<Polymorphic, std::remove_cvref_t<U>>) && std::copy_constructible<std::remove_cvref_t<U>> && std::derived_from<std::remove_cvref_t<U>, T>; ---- [.small]#link:#mrdocs-Polymorphic-2constructor-02[_» more..._]# In‐place constructor for a specific derived U. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< class U, class... Ts> constexpr explicit link:#mrdocs-Polymorphic-2constructor-0f7[Polymorphic]( std::in_place_type_t<U>, Ts...&&... ts) requires std::same_as<std::remove_cvref_t<U>, U> && std::constructible_from<U, Ts&&...> && std::copy_constructible<U> && std::derived_from<U, T>; ---- [.small]#link:#mrdocs-Polymorphic-2constructor-0f7[_» more..._]# == Parameters [cols=2] |=== | Name | Description | *ts* | Arguments to forward to U's constructor. |=== Copy constructor == Synopsis Declared in `<mrdocs/ADT/Polymorphic.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr Polymorphic(link:#mrdocs-Polymorphic[Polymorphic] const& V); ---- == Parameters [cols=2] |=== | Name | Description | *V* | The object to copy construct from |=== Move constructor == Synopsis Declared in `<mrdocs/ADT/Polymorphic.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr Polymorphic(link:#mrdocs-Polymorphic[Polymorphic]&& V) noexcept; ---- == Parameters [cols=2] |=== | Name | Description | *V* | The object to move construct from |=== Forwarding constructor from a derived U. == Synopsis Declared in `<mrdocs/ADT/Polymorphic.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class U> constexpr explicit Polymorphic(U&& u) requires (!std::same_as<Polymorphic, std::remove_cvref_t<U>>) && std::copy_constructible<std::remove_cvref_t<U>> && std::derived_from<std::remove_cvref_t<U>, T>; ---- == Parameters [cols=2] |=== | Name | Description | *u* | The object to move construct from |=== In‐place constructor for a specific derived U. == Synopsis Declared in `<mrdocs/ADT/Polymorphic.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< class U, class... Ts> constexpr explicit Polymorphic( std::in_place_type_t<U>, Ts...&&... ts) requires std::same_as<std::remove_cvref_t<U>, U> && std::constructible_from<U, Ts&&...> && std::copy_constructible<U> && std::derived_from<U, T>; ---- == Parameters [cols=2] |=== | Name | Description | *ts* | Arguments to forward to U's constructor. |=== Destructor == Synopsis Declared in `<mrdocs/ADT/Polymorphic.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr ~Polymorphic(); ---- Assignment operators == Synopses Declared in `<mrdocs/ADT/Polymorphic.hpp>` Copy assignment operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-Polymorphic[Polymorphic]& link:#mrdocs-Polymorphic-operator_assign-0c[operator=](link:#mrdocs-Polymorphic[Polymorphic] const& V); ---- [.small]#link:#mrdocs-Polymorphic-operator_assign-0c[_» more..._]# Move assignment operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-Polymorphic[Polymorphic]& link:#mrdocs-Polymorphic-operator_assign-04[operator=](link:#mrdocs-Polymorphic[Polymorphic]&& V) noexcept; ---- [.small]#link:#mrdocs-Polymorphic-operator_assign-04[_» more..._]# Copy assignment operator == Synopsis Declared in `<mrdocs/ADT/Polymorphic.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-Polymorphic[Polymorphic]& operator=(link:#mrdocs-Polymorphic[Polymorphic] const& V); ---- == Return Value Reference to the current object == Parameters [cols=2] |=== | Name | Description | *V* | The object to copy assign from |=== Move assignment operator == Synopsis Declared in `<mrdocs/ADT/Polymorphic.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-Polymorphic[Polymorphic]& operator=(link:#mrdocs-Polymorphic[Polymorphic]&& V) noexcept; ---- == Return Value Reference to the current object == Parameters [cols=2] |=== | Name | Description | *V* | The object to move assign from |=== Dereference operators == Synopses Declared in `<mrdocs/ADT/Polymorphic.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- [[nodiscard]] constexpr T& link:#mrdocs-Polymorphic-operator_star-07[operator*]() noexcept; ---- [.small]#link:#mrdocs-Polymorphic-operator_star-07[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- [[nodiscard]] constexpr T const& link:#mrdocs-Polymorphic-operator_star-02[operator*]() const noexcept; ---- [.small]#link:#mrdocs-Polymorphic-operator_star-02[_» more..._]# == Synopsis Declared in `<mrdocs/ADT/Polymorphic.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- [[nodiscard]] constexpr T& operator*() noexcept; ---- == Synopsis Declared in `<mrdocs/ADT/Polymorphic.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- [[nodiscard]] constexpr T const& operator*() const noexcept; ---- Member access operators == Synopses Declared in `<mrdocs/ADT/Polymorphic.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- [[nodiscard]] constexpr link:#mrdocs-Polymorphic-pointer[pointer] link:#mrdocs-Polymorphic-operator_ptr-00[operator‐>]() noexcept; ---- [.small]#link:#mrdocs-Polymorphic-operator_ptr-00[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- [[nodiscard]] constexpr link:#mrdocs-Polymorphic-const_pointer[const_pointer] link:#mrdocs-Polymorphic-operator_ptr-07[operator‐>]() const noexcept; ---- [.small]#link:#mrdocs-Polymorphic-operator_ptr-07[_» more..._]# == Synopsis Declared in `<mrdocs/ADT/Polymorphic.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- [[nodiscard]] constexpr link:#mrdocs-Polymorphic-pointer[pointer] operator‐>() noexcept; ---- == Synopsis Declared in `<mrdocs/ADT/Polymorphic.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- [[nodiscard]] constexpr link:#mrdocs-Polymorphic-const_pointer[const_pointer] operator‐>() const noexcept; ---- == Synopsis Declared in `<mrdocs/ADT/Polymorphic.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr bool valueless_after_move() const noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Type/RValueReferenceType.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- struct RValueReferenceType final : link:#mrdocs-TypeCommonBase-0e[TypeCommonBase<TypeKind::RValueReference>] ---- == Base Classes [cols=2] |=== | Name | Description | `link:#mrdocs-TypeCommonBase-0e[TypeCommonBase<TypeKind::RValueReference>]` | |=== == Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-RValueReferenceType-operator_3way-0d[`operator<=>`] | Three‐way comparison operators |=== == Static Member Functions [cols=1] |=== | Name | link:#mrdocs-RValueReferenceType-isArray[`isArray`] | link:#mrdocs-RValueReferenceType-isAuto[`isAuto`] | link:#mrdocs-RValueReferenceType-isDecltype[`isDecltype`] | link:#mrdocs-RValueReferenceType-isFunction[`isFunction`] | link:#mrdocs-RValueReferenceType-isLValueReference[`isLValueReference`] | link:#mrdocs-RValueReferenceType-isMemberPointer[`isMemberPointer`] | link:#mrdocs-RValueReferenceType-isNamed[`isNamed`] | link:#mrdocs-RValueReferenceType-isPointer[`isPointer`] | link:#mrdocs-RValueReferenceType-isRValueReference[`isRValueReference`] |=== == Data Members [cols=1] |=== | Name | link:#mrdocs-RValueReferenceType-PointeeType[`PointeeType`] |=== == Static Data Members [cols=1] |=== | Name | link:#mrdocs-RValueReferenceType-kind_id[`kind_id`] |=== == Non-Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-innerType-06[`innerType`] | Return the inner type. | link:#mrdocs-innerType-09[`innerType`] | Return the inner type. | link:#mrdocs-innerTypePtr-08[`innerTypePtr`] | Return the inner type. | link:#mrdocs-innerTypePtr-0a[`innerTypePtr`] | Return the inner type. |=== Three‐way comparison operators == Synopses Declared in `<mrdocs/Metadata/Type/RValueReferenceType.hpp>` Three‐way comparison operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::strong_ordering link:#mrdocs-RValueReferenceType-operator_3way-09[operator<=>](link:#mrdocs-RValueReferenceType[RValueReferenceType] const& rhs) const; ---- [.small]#link:#mrdocs-RValueReferenceType-operator_3way-09[_» more..._]# Three‐way comparison operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr auto link:#mrdocs-RValueReferenceType-operator_3way-0b[operator<=>](link:#mrdocs-TypeCommonBase-0e[TypeCommonBase<mrdocs::TypeKind::RValueReference>] const& rhs) const = default; ---- [.small]#link:#mrdocs-RValueReferenceType-operator_3way-0b[_» more..._]# Three‐way comparison operator == Synopsis Declared in `<mrdocs/Metadata/Type/RValueReferenceType.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::strong_ordering operator<=>(link:#mrdocs-RValueReferenceType[RValueReferenceType] const& rhs) const; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== Three‐way comparison operator == Synopsis Declared in `<mrdocs/Metadata/Type/TypeBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr auto operator<=>(link:#mrdocs-TypeCommonBase-0e[TypeCommonBase<mrdocs::TypeKind::RValueReference>] const& rhs) const = default; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== == Synopsis Declared in `<mrdocs/Metadata/Type/TypeBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isArray() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Type/TypeBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isAuto() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Type/TypeBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isDecltype() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Type/TypeBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isFunction() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Type/TypeBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isLValueReference() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Type/TypeBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isMemberPointer() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Type/TypeBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isNamed() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Type/TypeBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isPointer() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Type/TypeBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isRValueReference() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Type/RValueReferenceType.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-Polymorphic[Polymorphic<Type>] PointeeType = Polymorphic<Type>(AutoType{}); ---- == Synopsis Declared in `<mrdocs/Metadata/Type/TypeBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static link:#mrdocs-TypeKind[TypeKind] kind_id; ---- Range to help range‐for loops identify first and last. == Synopsis Declared in `<mrdocs/Support/RangeFor.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class Container> class RangeFor; ---- == Types [cols=1] |=== | Name | link:#mrdocs-RangeFor-0f-iterator[`iterator`] | link:#mrdocs-RangeFor-0f-value_type[`value_type`] | link:#mrdocs-RangeFor-0f-const_pointer[`const_pointer`] | link:#mrdocs-RangeFor-0f-const_reference[`const_reference`] | link:#mrdocs-RangeFor-0f-difference_type[`difference_type`] | link:#mrdocs-RangeFor-0f-pointer[`pointer`] | link:#mrdocs-RangeFor-0f-reference[`reference`] | link:#mrdocs-RangeFor-0f-size_type[`size_type`] |=== == Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-RangeFor-0f-2constructor[`RangeFor`] [.small]#[constructor]# | Construct from `Container` | link:#mrdocs-RangeFor-0f-begin[`begin`] | | link:#mrdocs-RangeFor-0f-end[`end`] | |=== == Synopsis Declared in `<mrdocs/Support/RangeFor.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- using const_pointer = link:#mrdocs-RangeFor-0f-value_type[value_type] const*; ---- == Synopsis Declared in `<mrdocs/Support/RangeFor.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- using const_reference = link:#mrdocs-RangeFor-0f-value_type[value_type] const&; ---- == Synopsis Declared in `<mrdocs/Support/RangeFor.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- using difference_type = std::ptrdiff_t; ---- == Synopsis Declared in `<mrdocs/Support/RangeFor.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- using pointer = link:#mrdocs-RangeFor-0f-value_type[value_type]*; ---- == Synopsis Declared in `<mrdocs/Support/RangeFor.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- using reference = link:#mrdocs-RangeFor-0f-value_type[value_type]&; ---- == Synopsis Declared in `<mrdocs/Support/RangeFor.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- using size_type = std::size_t; ---- == Synopsis Declared in `<mrdocs/Support/RangeFor.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- class iterator; ---- == Types [cols=1] |=== | Name | link:#mrdocs-RangeFor-0f-iterator-iterator_category[`iterator_category`] | link:#mrdocs-RangeFor-0f-iterator-pointer[`pointer`] | link:#mrdocs-RangeFor-0f-iterator-reference[`reference`] | link:#mrdocs-RangeFor-0f-iterator-size_type[`size_type`] | link:#mrdocs-RangeFor-0f-iterator-value_type[`value_type`] |=== == Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-RangeFor-0f-iterator-2constructor-07e[`iterator`] [.small]#[constructor]# | Constructors | link:#mrdocs-RangeFor-0f-iterator-operator_assign[`operator=`] | Copy assignment operator | link:#mrdocs-RangeFor-0f-iterator-operator_star[`operator*`] | | link:#mrdocs-RangeFor-0f-iterator-operator_inc-0a[`operator++`] | Increment operators | link:#mrdocs-RangeFor-0f-iterator-operator_ptr[`operator‐>`] | | link:#mrdocs-RangeFor-0f-iterator-operator_eq[`operator==`] | Equality operator | link:#mrdocs-RangeFor-0f-iterator-operator_not_eq[`operator!=`] | Inequality operator |=== == Friends [cols=2] |=== | Name | Description | `link:#mrdocs-RangeFor-0f-value_type[mrdocs::RangeFor::value_type]` | | `link:#mrdocs-RangeFor-0f[mrdocs::RangeFor]` | Range to help range‐for loops identify first and last. |=== == Synopsis Declared in `<mrdocs/Support/RangeFor.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- using iterator_category = std::iterator_traits<Container::iterator>::iterator_category; ---- == Synopsis Declared in `<mrdocs/Support/RangeFor.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- using pointer = void; ---- == Synopsis Declared in `<mrdocs/Support/RangeFor.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- using reference = link:#mrdocs-RangeFor-0f-iterator-value_type[value_type]; ---- == Synopsis Declared in `<mrdocs/Support/RangeFor.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- using size_type = std::size_t; ---- == Synopsis Declared in `<mrdocs/Support/RangeFor.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- using value_type = link:#mrdocs-RangeFor-0f-value_type[RangeFor<Container>::value_type]; ---- Constructors == Synopses Declared in `<mrdocs/Support/RangeFor.hpp>` Default constructor [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-RangeFor-0f-iterator-2constructor-09[iterator]() = default; ---- [.small]#link:#mrdocs-RangeFor-0f-iterator-2constructor-09[_» more..._]# Copy constructor [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-RangeFor-0f-iterator-2constructor-07a[iterator](link:#mrdocs-RangeFor-0f-iterator[iterator] const& other) = default; ---- [.small]#link:#mrdocs-RangeFor-0f-iterator-2constructor-07a[_» more..._]# Default constructor == Synopsis Declared in `<mrdocs/Support/RangeFor.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- iterator() = default; ---- Copy constructor == Synopsis Declared in `<mrdocs/Support/RangeFor.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- iterator(link:#mrdocs-RangeFor-0f-iterator[iterator] const& other) = default; ---- == Parameters [cols=2] |=== | Name | Description | *other* | The object to copy construct from |=== Copy assignment operator == Synopsis Declared in `<mrdocs/Support/RangeFor.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-RangeFor-0f-iterator[iterator]& operator=(link:#mrdocs-RangeFor-0f-iterator[iterator] const& other) = default; ---- == Return Value Reference to the current object == Parameters [cols=2] |=== | Name | Description | *other* | The object to copy assign from |=== == Synopsis Declared in `<mrdocs/Support/RangeFor.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-RangeFor-0f-iterator-reference[reference] operator*() const noexcept; ---- Increment operators == Synopses Declared in `<mrdocs/Support/RangeFor.hpp>` Increment operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-RangeFor-0f-iterator[iterator]& link:#mrdocs-RangeFor-0f-iterator-operator_inc-01[operator++]() noexcept; ---- [.small]#link:#mrdocs-RangeFor-0f-iterator-operator_inc-01[_» more..._]# Increment operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-RangeFor-0f-iterator[iterator] link:#mrdocs-RangeFor-0f-iterator-operator_inc-0c[operator++](int) noexcept; ---- [.small]#link:#mrdocs-RangeFor-0f-iterator-operator_inc-0c[_» more..._]# Increment operator == Synopsis Declared in `<mrdocs/Support/RangeFor.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-RangeFor-0f-iterator[iterator]& operator++() noexcept; ---- == Return Value Reference to the current object Increment operator == Synopsis Declared in `<mrdocs/Support/RangeFor.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-RangeFor-0f-iterator[iterator] operator++(int) noexcept; ---- == Return Value Another instance of the object == Synopsis Declared in `<mrdocs/Support/RangeFor.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-RangeFor-0f-iterator-reference[reference] operator‐>() const noexcept; ---- Equality operator == Synopsis Declared in `<mrdocs/Support/RangeFor.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool operator==(link:#mrdocs-RangeFor-0f-iterator[iterator] const& it) const noexcept; ---- == Return Value `true` if the objects are equal, `false` otherwise == Parameters [cols=2] |=== | Name | Description | *it* | The right operand |=== Inequality operator == Synopsis Declared in `<mrdocs/Support/RangeFor.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool operator!=(link:#mrdocs-RangeFor-0f-iterator[iterator] const& it) const noexcept; ---- == Return Value `true` if the objects are not equal, `false` otherwise == Parameters [cols=2] |=== | Name | Description | *it* | The right operand |=== == Synopsis Declared in `<mrdocs/Support/RangeFor.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- struct value_type; ---- == Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-RangeFor-0f-value_type-operator_ptr[`operator‐>`] | Member access operator |=== == Data Members [cols=1] |=== | Name | link:#mrdocs-RangeFor-0f-value_type-first[`first`] | link:#mrdocs-RangeFor-0f-value_type-last[`last`] | link:#mrdocs-RangeFor-0f-value_type-value[`value`] |=== Member access operator == Synopsis Declared in `<mrdocs/Support/RangeFor.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-RangeFor-0f-value_type[value_type] const* operator‐>() const noexcept; ---- == Return Value Pointer to the current object == Synopsis Declared in `<mrdocs/Support/RangeFor.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool const first; ---- == Synopsis Declared in `<mrdocs/Support/RangeFor.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool const last; ---- == Synopsis Declared in `<mrdocs/Support/RangeFor.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- Container::value_type const& value; ---- Construct from `Container` == Synopsis Declared in `<mrdocs/Support/RangeFor.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- explicit RangeFor(Container const& C) noexcept; ---- == Parameters [cols=2] |=== | Name | Description | *C* | The object to copy construct from |=== == Synopsis Declared in `<mrdocs/Support/RangeFor.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-RangeFor-0f-iterator[iterator] begin() const noexcept; ---- == Synopsis Declared in `<mrdocs/Support/RangeFor.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-RangeFor-0f-iterator[iterator] end() const noexcept; ---- The aggregated interface for a given struct, class, or union. == Synopsis Declared in `<mrdocs/Metadata/Symbol/RecordInterface.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- class RecordInterface; ---- == Data Members [cols=2] |=== | Name | Description | link:#mrdocs-RecordInterface-Private[`Private`] | The aggregated private interfaces. | link:#mrdocs-RecordInterface-Protected[`Protected`] | The aggregated protected interfaces. | link:#mrdocs-RecordInterface-Public[`Public`] | The aggregated public interfaces. |=== == Description This class represents the public, protected, and private interfaces of a record. It is used to generate the "interface" value of the DOM for symbols that represent records or namespaces. The interface is not part of the Corpus. It is a temporary structure generated to aggregate the symbols of a record. This structure is provided to the user via the DOM. While the members of a Namespace are directly represented with a Tranche, the members of a Record are represented with an Interface. The aggregated private interfaces. == Synopsis Declared in `<mrdocs/Metadata/Symbol/RecordInterface.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-RecordTranche[RecordTranche] Private; ---- == Description This tranche contains all private members of a record or namespace. The aggregated protected interfaces. == Synopsis Declared in `<mrdocs/Metadata/Symbol/RecordInterface.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-RecordTranche[RecordTranche] Protected; ---- == Description This tranche contains all protected members of a record or namespace. The aggregated public interfaces. == Synopsis Declared in `<mrdocs/Metadata/Symbol/RecordInterface.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-RecordTranche[RecordTranche] Public; ---- == Description This tranche contains all public members of a record or namespace. Metadata for struct, class, or union. == Synopsis Declared in `<mrdocs/Metadata/Symbol/Record.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- struct RecordSymbol final : link:#mrdocs-SymbolCommonBase-015[SymbolCommonBase<SymbolKind::Record>] ---- == Base Classes [cols=2] |=== | Name | Description | `link:#mrdocs-SymbolCommonBase-015[SymbolCommonBase<SymbolKind::Record>]` | Base class for providing variant discriminator functions. |=== == Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-RecordSymbol-2constructor[`RecordSymbol`] [.small]#[constructor]# | Construct from `SymbolID` | link:#mrdocs-RecordSymbol-operator_3way-03[`operator<=>`] | Three‐way comparison operators |=== == Static Member Functions [cols=1] |=== | Name | link:#mrdocs-RecordSymbol-isConcept[`isConcept`] | link:#mrdocs-RecordSymbol-isEnum[`isEnum`] | link:#mrdocs-RecordSymbol-isEnumConstant[`isEnumConstant`] | link:#mrdocs-RecordSymbol-isFunction[`isFunction`] | link:#mrdocs-RecordSymbol-isGuide[`isGuide`] | link:#mrdocs-RecordSymbol-isNamespace[`isNamespace`] | link:#mrdocs-RecordSymbol-isNamespaceAlias[`isNamespaceAlias`] | link:#mrdocs-RecordSymbol-isOverloads[`isOverloads`] | link:#mrdocs-RecordSymbol-isRecord[`isRecord`] | link:#mrdocs-RecordSymbol-isTypedef[`isTypedef`] | link:#mrdocs-RecordSymbol-isUsing[`isUsing`] | link:#mrdocs-RecordSymbol-isVariable[`isVariable`] |=== == Data Members [cols=2] |=== | Name | Description | link:#mrdocs-RecordSymbol-Bases[`Bases`] | List of immediate bases. | link:#mrdocs-RecordSymbol-Derived[`Derived`] | List of derived classes | link:#mrdocs-RecordSymbol-Friends[`Friends`] | List of friends. | link:#mrdocs-RecordSymbol-Interface[`Interface`] | Lists of members. | link:#mrdocs-RecordSymbol-IsFinal[`IsFinal`] | | link:#mrdocs-RecordSymbol-IsFinalDestructor[`IsFinalDestructor`] | | link:#mrdocs-RecordSymbol-IsTypeDef[`IsTypeDef`] | | link:#mrdocs-RecordSymbol-KeyKind[`KeyKind`] | Kind of record this is (class, struct, or union). | link:#mrdocs-RecordSymbol-Template[`Template`] | When present, this record is a template or specialization. |=== == Static Data Members [cols=1] |=== | Name | link:#mrdocs-RecordSymbol-kind_id[`kind_id`] |=== == Non-Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-merge-00c[`merge`] | Merges two Symbol objects. |=== Construct from `SymbolID` == Synopsis Declared in `<mrdocs/Metadata/Symbol/Record.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- explicit RecordSymbol(link:#mrdocs-SymbolID[SymbolID] const& ID) noexcept; ---- == Parameters [cols=2] |=== | Name | Description | *ID* | The object to copy construct from |=== Three‐way comparison operators == Synopses Declared in `<mrdocs/Metadata/Symbol/Record.hpp>` Three‐way comparison operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::strong_ordering link:#mrdocs-RecordSymbol-operator_3way-0c[operator<=>](link:#mrdocs-RecordSymbol[RecordSymbol] const& other) const; ---- [.small]#link:#mrdocs-RecordSymbol-operator_3way-0c[_» more..._]# Three‐way comparison operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- auto link:#mrdocs-RecordSymbol-operator_3way-07[operator<=>](link:#mrdocs-SymbolCommonBase-015[SymbolCommonBase<mrdocs::SymbolKind::Record>] const& rhs) const = default; ---- [.small]#link:#mrdocs-RecordSymbol-operator_3way-07[_» more..._]# Three‐way comparison operator == Synopsis Declared in `<mrdocs/Metadata/Symbol/Record.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::strong_ordering operator<=>(link:#mrdocs-RecordSymbol[RecordSymbol] const& other) const; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *other* | The right operand |=== Three‐way comparison operator == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- auto operator<=>(link:#mrdocs-SymbolCommonBase-015[SymbolCommonBase<mrdocs::SymbolKind::Record>] const& rhs) const = default; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isConcept() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isEnum() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isEnumConstant() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isFunction() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isGuide() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isNamespace() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isNamespaceAlias() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isOverloads() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isRecord() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isTypedef() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isUsing() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isVariable() noexcept; ---- List of immediate bases. == Synopsis Declared in `<mrdocs/Metadata/Symbol/Record.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::vector<BaseInfo> Bases; ---- List of derived classes == Synopsis Declared in `<mrdocs/Metadata/Symbol/Record.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::vector<SymbolID> Derived; ---- List of friends. == Synopsis Declared in `<mrdocs/Metadata/Symbol/Record.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::vector<FriendInfo> Friends; ---- Lists of members. == Synopsis Declared in `<mrdocs/Metadata/Symbol/Record.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-RecordInterface[RecordInterface] Interface; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/Record.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool IsFinal = false; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/Record.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool IsFinalDestructor = false; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/Record.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool IsTypeDef = false; ---- Kind of record this is (class, struct, or union). == Synopsis Declared in `<mrdocs/Metadata/Symbol/Record.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-RecordKeyKind[RecordKeyKind] KeyKind = RecordKeyKind::Struct; ---- When present, this record is a template or specialization. == Synopsis Declared in `<mrdocs/Metadata/Symbol/Record.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-Optional-03[Optional<TemplateInfo>] Template; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static link:#mrdocs-SymbolKind[SymbolKind] kind_id; ---- A group of members that have the same access specifier. == Synopsis Declared in `<mrdocs/Metadata/Symbol/RecordTranche.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- struct RecordTranche; ---- == Data Members [cols=1] |=== | Name | link:#mrdocs-RecordTranche-Concepts[`Concepts`] | link:#mrdocs-RecordTranche-Enums[`Enums`] | link:#mrdocs-RecordTranche-Functions[`Functions`] | link:#mrdocs-RecordTranche-Guides[`Guides`] | link:#mrdocs-RecordTranche-NamespaceAliases[`NamespaceAliases`] | link:#mrdocs-RecordTranche-Records[`Records`] | link:#mrdocs-RecordTranche-StaticFunctions[`StaticFunctions`] | link:#mrdocs-RecordTranche-StaticVariables[`StaticVariables`] | link:#mrdocs-RecordTranche-Typedefs[`Typedefs`] | link:#mrdocs-RecordTranche-Usings[`Usings`] | link:#mrdocs-RecordTranche-Variables[`Variables`] |=== == Description This struct represents a collection of symbols that share the same access specifier within a record. It includes one vector for each info type allowed in a record, and individual vectors for static functions, types, and function overloads. == Synopsis Declared in `<mrdocs/Metadata/Symbol/RecordTranche.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::vector<SymbolID> Concepts; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/RecordTranche.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::vector<SymbolID> Enums; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/RecordTranche.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::vector<SymbolID> Functions; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/RecordTranche.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::vector<SymbolID> Guides; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/RecordTranche.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::vector<SymbolID> NamespaceAliases; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/RecordTranche.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::vector<SymbolID> Records; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/RecordTranche.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::vector<SymbolID> StaticFunctions; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/RecordTranche.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::vector<SymbolID> StaticVariables; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/RecordTranche.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::vector<SymbolID> Typedefs; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/RecordTranche.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::vector<SymbolID> Usings; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/RecordTranche.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::vector<SymbolID> Variables; ---- Reference directories used to resolve paths == Synopsis Declared in `<mrdocs/Config/ReferenceDirectories.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- struct ReferenceDirectories; ---- == Data Members [cols=1] |=== | Name | link:#mrdocs-ReferenceDirectories-cwd[`cwd`] | link:#mrdocs-ReferenceDirectories-mrdocsRoot[`mrdocsRoot`] |=== == Description These are the main reference directories used to resolve paths in the application. All other reference directories come directly from the configuration file. == Synopsis Declared in `<mrdocs/Config/ReferenceDirectories.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::string cwd; ---- == Synopsis Declared in `<mrdocs/Config/ReferenceDirectories.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::string mrdocsRoot; ---- == Synopsis Declared in `<mrdocs/Support/ScopeExit.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class F> class ScopeExit; ---- == Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-ScopeExit-0a-2constructor[`ScopeExit`] [.small]#[constructor]# | Construct from `F` | link:#mrdocs-ScopeExit-0a-2destructor[`~ScopeExit`] [.small]#[destructor]# | Destructor | link:#mrdocs-ScopeExit-0a-dismiss[`dismiss`] | |=== Construct from `F` == Synopsis Declared in `<mrdocs/Support/ScopeExit.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- explicit ScopeExit(F onExitScope); ---- == Parameters [cols=2] |=== | Name | Description | *onExitScope* | The object to construct from |=== Destructor == Synopsis Declared in `<mrdocs/Support/ScopeExit.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- ~ScopeExit(); ---- == Synopsis Declared in `<mrdocs/Support/ScopeExit.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void dismiss(); ---- == Synopsis Declared in `<mrdocs/Support/ScopeExit.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class T> class ScopeExitRestore; ---- == Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-ScopeExitRestore-01-2constructor-00[`ScopeExitRestore`] [.small]#[constructor]# | Constructors | link:#mrdocs-ScopeExitRestore-01-2destructor[`~ScopeExitRestore`] [.small]#[destructor]# | Destructor | link:#mrdocs-ScopeExitRestore-01-dismiss[`dismiss`] | |=== Constructors == Synopses Declared in `<mrdocs/Support/ScopeExit.hpp>` Restore `ref` to its previous value when the scope ends [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- explicit link:#mrdocs-ScopeExitRestore-01-2constructor-095[ScopeExitRestore](T& ref); ---- [.small]#link:#mrdocs-ScopeExitRestore-01-2constructor-095[_» more..._]# Temporarily set `ref` to `next` and restore it when the scope ends [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<std::convertible_to<T> T2> explicit link:#mrdocs-ScopeExitRestore-01-2constructor-09f[ScopeExitRestore]( T& ref, T2 next); ---- [.small]#link:#mrdocs-ScopeExitRestore-01-2constructor-09f[_» more..._]# Restore `ref` to its previous value when the scope ends == Synopsis Declared in `<mrdocs/Support/ScopeExit.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- explicit ScopeExitRestore(T& ref); ---- == Description Store the current value of `ref` and restore it when this object goes out of scope, unless `dismiss()` is called. == Parameters [cols=2] |=== | Name | Description | *ref* | The object to copy construct from |=== Temporarily set `ref` to `next` and restore it when the scope ends == Synopsis Declared in `<mrdocs/Support/ScopeExit.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<std::convertible_to<T> T2> explicit ScopeExitRestore( T& ref, T2 next); ---- == Description Store the current value of `ref`, set it to `next`, and restore the previous value when this object goes out of scope, unless `dismiss()` is called. == Parameters [cols=2] |=== | Name | Description | *ref* | The object to copy construct from |=== Destructor == Synopsis Declared in `<mrdocs/Support/ScopeExit.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- ~ScopeExitRestore(); ---- == Synopsis Declared in `<mrdocs/Support/ScopeExit.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void dismiss(); ---- Stores source information for a declaration. == Synopsis Declared in `<mrdocs/Metadata/Symbol/Source.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- struct SourceInfo; ---- == Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-SourceInfo-2constructor[`SourceInfo`] [.small]#[constructor]# | Default constructor | link:#mrdocs-SourceInfo-2destructor[`~SourceInfo`] [.small]#[destructor]# [.small]#[virtual]# | Destructor | link:#mrdocs-SourceInfo-operator_3way[`operator<=>`] | Three‐way comparison operator |=== == Data Members [cols=2] |=== | Name | Description | link:#mrdocs-SourceInfo-DefLoc[`DefLoc`] | Location where the entity was defined | link:#mrdocs-SourceInfo-Loc[`Loc`] | Locations where the entity was declared. |=== Default constructor == Synopsis Declared in `<mrdocs/Metadata/Symbol/Source.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr SourceInfo() = default; ---- Destructor == Synopsis Declared in `<mrdocs/Metadata/Symbol/Source.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr virtual ~SourceInfo() = default; ---- Three‐way comparison operator == Synopsis Declared in `<mrdocs/Metadata/Symbol/Source.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr auto operator<=>(link:#mrdocs-SourceInfo[SourceInfo] const& rhs) const = default; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== Location where the entity was defined == Synopsis Declared in `<mrdocs/Metadata/Symbol/Source.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-Optional-03[Optional<Location>] DefLoc; ---- == Description KRYSTIAN NOTE: this is used for entities which cannot be redeclared ‐‐ regardless of whether such a declaration is actually a definition (e.g. alias‐declarations and typedef declarations are never definition). Locations where the entity was declared. == Synopsis Declared in `<mrdocs/Metadata/Symbol/Source.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::vector<Location> Loc; ---- == Description This does not include the definition. A source location with filename prettification. == Synopsis Declared in `<mrdocs/Support/Error.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- class SourceLocation; ---- == Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-SourceLocation-2constructor[`SourceLocation`] [.small]#[constructor]# | Construct from `source_location` | link:#mrdocs-SourceLocation-column[`column`] | | link:#mrdocs-SourceLocation-file_name[`file_name`] | | link:#mrdocs-SourceLocation-function_name[`function_name`] | | link:#mrdocs-SourceLocation-line[`line`] | |=== Construct from `source_location` == Synopsis Declared in `<mrdocs/Support/Error.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- SourceLocation(std::source_location const& loc) noexcept; ---- == Parameters [cols=2] |=== | Name | Description | *loc* | The object to copy construct from |=== == Synopsis Declared in `<mrdocs/Support/Error.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- uint_least32_t column() const noexcept; ---- == Synopsis Declared in `<mrdocs/Support/Error.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::string_view file_name() const noexcept; ---- == Synopsis Declared in `<mrdocs/Support/Error.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::string_view function_name() const noexcept; ---- == Synopsis Declared in `<mrdocs/Support/Error.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- uint_least32_t line() const noexcept; ---- Represents a (possibly qualified) symbol name with template arguments. == Synopsis Declared in `<mrdocs/Metadata/Name/SpecializationName.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- struct SpecializationName final : link:#mrdocs-Name[Name] ---- == Base Classes [cols=2] |=== | Name | Description | `link:#mrdocs-Name[Name]` | Represents a name for a named `Type` |=== == Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-SpecializationName-2constructor[`SpecializationName`] [.small]#[constructor]# | Default constructor | link:#mrdocs-Name-asName-08[`asName`] | | link:#mrdocs-Name-operator_eq[`operator==`] | Equality operator | link:#mrdocs-SpecializationName-operator_3way-08[`operator<=>`] | Three‐way comparison operators |=== == Data Members [cols=2] |=== | Name | Description | link:#mrdocs-Name-Identifier[`Identifier`] | The unqualified name. | link:#mrdocs-Name-Kind[`Kind`] | The kind of name this is. | link:#mrdocs-Name-Prefix[`Prefix`] | The parent name info, if any. | link:#mrdocs-SpecializationName-TemplateArgs[`TemplateArgs`] | The template arguments. | link:#mrdocs-Name-id[`id`] | The SymbolID of the named symbol, if it exists. | link:#mrdocs-SpecializationName-specializationID[`specializationID`] | The SymbolID of the named symbol, if it exists. |=== Default constructor == Synopsis Declared in `<mrdocs/Metadata/Name/SpecializationName.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr SpecializationName() noexcept; ---- Three‐way comparison operators == Synopses Declared in `<mrdocs/Metadata/Name/NameBase.hpp>` Three‐way comparison operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- auto link:#mrdocs-SpecializationName-operator_3way-0c[operator<=>](link:#mrdocs-SpecializationName[SpecializationName] const& other) const; ---- [.small]#link:#mrdocs-SpecializationName-operator_3way-0c[_» more..._]# Three‐way comparison operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::strong_ordering link:#mrdocs-Name-operator_3way[operator<=>](link:#mrdocs-Name[Name] const& other) const; ---- [.small]#link:#mrdocs-Name-operator_3way[_» more..._]# Three‐way comparison operator == Synopsis Declared in `<mrdocs/Metadata/Name/SpecializationName.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- auto operator<=>(link:#mrdocs-SpecializationName[SpecializationName] const& other) const; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *other* | The right operand |=== Three‐way comparison operator == Synopsis Declared in `<mrdocs/Metadata/Name/NameBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::strong_ordering operator<=>(link:#mrdocs-Name[Name] const& other) const; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *other* | The right operand |=== The template arguments. == Synopsis Declared in `<mrdocs/Metadata/Name/SpecializationName.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::vector<Polymorphic<TArg>> TemplateArgs; ---- The SymbolID of the named symbol, if it exists. == Synopsis Declared in `<mrdocs/Metadata/Name/SpecializationName.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-SymbolID[SymbolID] specializationID = = SymbolID::invalid; ---- == Synopsis Declared in `<mrdocs/Support/SplitLines.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- struct SplitLinesAdaptor; ---- == Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-SplitLinesAdaptor-operator_call-09[`operator()`] | Function call operators |=== == Friends [cols=2] |=== | Name | Description | `link:#mrdocs-operator_bitor[mrdocs::operator|]` | |=== Function call operators == Synopses Declared in `<mrdocs/Support/SplitLines.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr auto link:#mrdocs-SplitLinesAdaptor-operator_call-0c[operator()](std::string_view sv) const; ---- [.small]#link:#mrdocs-SplitLinesAdaptor-operator_call-0c[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<std::ranges::contiguous_range R> requires std::same_as<std::remove_cv_t<std::ranges::range_value_t<R>>, char> constexpr auto link:#mrdocs-SplitLinesAdaptor-operator_call-08[operator()](R&& r) const; ---- [.small]#link:#mrdocs-SplitLinesAdaptor-operator_call-08[_» more..._]# == Synopsis Declared in `<mrdocs/Support/SplitLines.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr auto operator()(std::string_view sv) const; ---- == Synopsis Declared in `<mrdocs/Support/SplitLines.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<std::ranges::contiguous_range R> requires std::same_as<std::remove_cv_t<std::ranges::range_value_t<R>>, char> constexpr auto operator()(R&& r) const; ---- == Synopsis Declared in `<mrdocs/Support/SplitLines.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- struct SplitLinesView : std::ranges::view_interface<SplitLinesView> ---- == Base Classes [cols=2] |=== | Name | Description | `std::ranges::view_interface<SplitLinesView>` | |=== == Types [cols=1] |=== | Name | link:#mrdocs-SplitLinesView-Iterator[`Iterator`] |=== == Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-SplitLinesView-2constructor-09[`SplitLinesView`] [.small]#[constructor]# | Constructors | link:#mrdocs-SplitLinesView-back-04[`back`] | | link:#mrdocs-SplitLinesView-begin[`begin`] | | link:#mrdocs-SplitLinesView-data-0f2[`data`] | | link:#mrdocs-SplitLinesView-empty-07[`empty`] | | link:#mrdocs-SplitLinesView-end[`end`] | | link:#mrdocs-SplitLinesView-front-05[`front`] | | link:#mrdocs-SplitLinesView-operator_subs-0c[`operator[]`] | Subscript operators | link:#mrdocs-SplitLinesView-size-0a[`size`] | | link:#mrdocs-SplitLinesView-2conversion-09[`operator bool`] | Conversion operators |=== == Data Members [cols=1] |=== | Name | link:#mrdocs-SplitLinesView-sv_[`sv_`] |=== == Synopsis Declared in `<mrdocs/Support/SplitLines.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- struct Iterator; ---- == Types [cols=1] |=== | Name | link:#mrdocs-SplitLinesView-Iterator-difference_type[`difference_type`] | link:#mrdocs-SplitLinesView-Iterator-value_type[`value_type`] |=== == Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-SplitLinesView-Iterator-2constructor-03[`Iterator`] [.small]#[constructor]# | Constructors | link:#mrdocs-SplitLinesView-Iterator-findBreak[`findBreak`] | | link:#mrdocs-SplitLinesView-Iterator-operator_star[`operator*`] | | link:#mrdocs-SplitLinesView-Iterator-operator_inc-0a[`operator++`] | Increment operators |=== == Data Members [cols=1] |=== | Name | link:#mrdocs-SplitLinesView-Iterator-atEnd[`atEnd`] | link:#mrdocs-SplitLinesView-Iterator-cur[`cur`] | link:#mrdocs-SplitLinesView-Iterator-nextBreak[`nextBreak`] | link:#mrdocs-SplitLinesView-Iterator-sv[`sv`] |=== == Friends [cols=2] |=== | Name | Description | `link:#mrdocs-operator_eq-0cfd[mrdocs::operator==]` | Equality operator |=== == Synopsis Declared in `<mrdocs/Support/SplitLines.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- using difference_type = std::ptrdiff_t; ---- == Synopsis Declared in `<mrdocs/Support/SplitLines.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- using value_type = std::string_view; ---- Constructors == Synopses Declared in `<mrdocs/Support/SplitLines.hpp>` Default constructor [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-SplitLinesView-Iterator-2constructor-0c[Iterator]() = default; ---- [.small]#link:#mrdocs-SplitLinesView-Iterator-2constructor-0c[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr explicit link:#mrdocs-SplitLinesView-Iterator-2constructor-0f[Iterator]( std::string_view s, bool begin); ---- [.small]#link:#mrdocs-SplitLinesView-Iterator-2constructor-0f[_» more..._]# Default constructor == Synopsis Declared in `<mrdocs/Support/SplitLines.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr Iterator() = default; ---- == Synopsis Declared in `<mrdocs/Support/SplitLines.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr explicit Iterator( std::string_view s, bool begin); ---- == Synopsis Declared in `<mrdocs/Support/SplitLines.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr std::size_t findBreak(std::size_t from) const noexcept; ---- == Synopsis Declared in `<mrdocs/Support/SplitLines.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-SplitLinesView-Iterator-value_type[value_type] operator*() const noexcept; ---- Increment operators == Synopses Declared in `<mrdocs/Support/SplitLines.hpp>` Increment operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-SplitLinesView-Iterator[Iterator]& link:#mrdocs-SplitLinesView-Iterator-operator_inc-0d[operator++]() noexcept; ---- [.small]#link:#mrdocs-SplitLinesView-Iterator-operator_inc-0d[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr void link:#mrdocs-SplitLinesView-Iterator-operator_inc-01[operator++](int); ---- [.small]#link:#mrdocs-SplitLinesView-Iterator-operator_inc-01[_» more..._]# Increment operator == Synopsis Declared in `<mrdocs/Support/SplitLines.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-SplitLinesView-Iterator[Iterator]& operator++() noexcept; ---- == Return Value Reference to the current object == Synopsis Declared in `<mrdocs/Support/SplitLines.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr void operator++(int); ---- == Synopsis Declared in `<mrdocs/Support/SplitLines.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool atEnd = false; ---- == Synopsis Declared in `<mrdocs/Support/SplitLines.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::size_t cur = 0; ---- == Synopsis Declared in `<mrdocs/Support/SplitLines.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::size_t nextBreak = 0; ---- == Synopsis Declared in `<mrdocs/Support/SplitLines.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::string_view sv = {}; ---- Constructors == Synopses Declared in `<mrdocs/Support/SplitLines.hpp>` Default constructor [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-SplitLinesView-2constructor-03[SplitLinesView]() = default; ---- [.small]#link:#mrdocs-SplitLinesView-2constructor-03[_» more..._]# Construct from `string_view` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr explicit link:#mrdocs-SplitLinesView-2constructor-01[SplitLinesView](std::string_view sv); ---- [.small]#link:#mrdocs-SplitLinesView-2constructor-01[_» more..._]# Default constructor == Synopsis Declared in `<mrdocs/Support/SplitLines.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr SplitLinesView() = default; ---- Construct from `string_view` == Synopsis Declared in `<mrdocs/Support/SplitLines.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr explicit SplitLinesView(std::string_view sv); ---- == Parameters [cols=2] |=== | Name | Description | *sv* | The object to construct from |=== == Synopses Declared in `<__ranges/view_interface.h>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class _D2 = link:#mrdocs-SplitLinesView[SplitLinesView]> [[__exclude_from_explicit_instantiation__, __abi_tag__]] constexpr decltype(auto) link:#mrdocs-SplitLinesView-back-07[back]() requires bidirectional_range<_D2> && common_range<_D2>; ---- [.small]#link:#mrdocs-SplitLinesView-back-07[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class _D2 = link:#mrdocs-SplitLinesView[SplitLinesView]> [[__exclude_from_explicit_instantiation__, __abi_tag__]] constexpr decltype(auto) link:#mrdocs-SplitLinesView-back-0c[back]() const requires bidirectional_range<const _D2> && common_range<const _D2>; ---- [.small]#link:#mrdocs-SplitLinesView-back-0c[_» more..._]# == Synopsis Declared in `<__ranges/view_interface.h>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class _D2 = link:#mrdocs-SplitLinesView[SplitLinesView]> [[__exclude_from_explicit_instantiation__, __abi_tag__]] constexpr decltype(auto) back() requires bidirectional_range<_D2> && common_range<_D2>; ---- == Synopsis Declared in `<__ranges/view_interface.h>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class _D2 = link:#mrdocs-SplitLinesView[SplitLinesView]> [[__exclude_from_explicit_instantiation__, __abi_tag__]] constexpr decltype(auto) back() const requires bidirectional_range<const _D2> && common_range<const _D2>; ---- == Synopsis Declared in `<mrdocs/Support/SplitLines.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-SplitLinesView-Iterator[Iterator] begin() const noexcept; ---- == Synopses Declared in `<__ranges/view_interface.h>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class _D2 = link:#mrdocs-SplitLinesView[SplitLinesView]> [[__exclude_from_explicit_instantiation__, __abi_tag__]] constexpr auto link:#mrdocs-SplitLinesView-data-0f7[data]() requires contiguous_iterator<iterator_t<_D2>>; ---- [.small]#link:#mrdocs-SplitLinesView-data-0f7[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class _D2 = link:#mrdocs-SplitLinesView[SplitLinesView]> [[__exclude_from_explicit_instantiation__, __abi_tag__]] constexpr auto link:#mrdocs-SplitLinesView-data-0d[data]() const requires range<const _D2> && contiguous_iterator<iterator_t<const _D2>>; ---- [.small]#link:#mrdocs-SplitLinesView-data-0d[_» more..._]# == Synopsis Declared in `<__ranges/view_interface.h>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class _D2 = link:#mrdocs-SplitLinesView[SplitLinesView]> [[__exclude_from_explicit_instantiation__, __abi_tag__]] constexpr auto data() requires contiguous_iterator<iterator_t<_D2>>; ---- == Synopsis Declared in `<__ranges/view_interface.h>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class _D2 = link:#mrdocs-SplitLinesView[SplitLinesView]> [[__exclude_from_explicit_instantiation__, __abi_tag__]] constexpr auto data() const requires range<const _D2> && contiguous_iterator<iterator_t<const _D2>>; ---- == Synopses Declared in `<__ranges/view_interface.h>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class _D2 = link:#mrdocs-SplitLinesView[SplitLinesView]> [[nodiscard, __exclude_from_explicit_instantiation__, __abi_tag__]] constexpr bool link:#mrdocs-SplitLinesView-empty-01a[empty]() requires sized_range<_D2> || forward_range<_D2>; ---- [.small]#link:#mrdocs-SplitLinesView-empty-01a[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class _D2 = link:#mrdocs-SplitLinesView[SplitLinesView]> [[nodiscard, __exclude_from_explicit_instantiation__, __abi_tag__]] constexpr bool link:#mrdocs-SplitLinesView-empty-018[empty]() const requires sized_range<const _D2> || forward_range<const _D2>; ---- [.small]#link:#mrdocs-SplitLinesView-empty-018[_» more..._]# == Synopsis Declared in `<__ranges/view_interface.h>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class _D2 = link:#mrdocs-SplitLinesView[SplitLinesView]> [[nodiscard, __exclude_from_explicit_instantiation__, __abi_tag__]] constexpr bool empty() requires sized_range<_D2> || forward_range<_D2>; ---- == Synopsis Declared in `<__ranges/view_interface.h>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class _D2 = link:#mrdocs-SplitLinesView[SplitLinesView]> [[nodiscard, __exclude_from_explicit_instantiation__, __abi_tag__]] constexpr bool empty() const requires sized_range<const _D2> || forward_range<const _D2>; ---- == Synopsis Declared in `<mrdocs/Support/SplitLines.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr std::default_sentinel_t end() const noexcept; ---- == Synopses Declared in `<__ranges/view_interface.h>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class _D2 = link:#mrdocs-SplitLinesView[SplitLinesView]> [[__exclude_from_explicit_instantiation__, __abi_tag__]] constexpr decltype(auto) link:#mrdocs-SplitLinesView-front-09[front]() requires forward_range<_D2>; ---- [.small]#link:#mrdocs-SplitLinesView-front-09[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class _D2 = link:#mrdocs-SplitLinesView[SplitLinesView]> [[__exclude_from_explicit_instantiation__, __abi_tag__]] constexpr decltype(auto) link:#mrdocs-SplitLinesView-front-00[front]() const requires forward_range<const _D2>; ---- [.small]#link:#mrdocs-SplitLinesView-front-00[_» more..._]# == Synopsis Declared in `<__ranges/view_interface.h>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class _D2 = link:#mrdocs-SplitLinesView[SplitLinesView]> [[__exclude_from_explicit_instantiation__, __abi_tag__]] constexpr decltype(auto) front() requires forward_range<_D2>; ---- == Synopsis Declared in `<__ranges/view_interface.h>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class _D2 = link:#mrdocs-SplitLinesView[SplitLinesView]> [[__exclude_from_explicit_instantiation__, __abi_tag__]] constexpr decltype(auto) front() const requires forward_range<const _D2>; ---- Subscript operators == Synopses Declared in `<__ranges/view_interface.h>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<random_access_range _RARange = link:#mrdocs-SplitLinesView[SplitLinesView]> [[__exclude_from_explicit_instantiation__, __abi_tag__]] constexpr decltype(auto) link:#mrdocs-SplitLinesView-operator_subs-08[operator[]](range_difference_t<_RARange> __index); ---- [.small]#link:#mrdocs-SplitLinesView-operator_subs-08[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<random_access_range _RARange = link:#mrdocs-SplitLinesView[SplitLinesView] const> [[__exclude_from_explicit_instantiation__, __abi_tag__]] constexpr decltype(auto) link:#mrdocs-SplitLinesView-operator_subs-0f[operator[]](range_difference_t<_RARange> __index) const; ---- [.small]#link:#mrdocs-SplitLinesView-operator_subs-0f[_» more..._]# == Synopsis Declared in `<__ranges/view_interface.h>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<random_access_range _RARange = link:#mrdocs-SplitLinesView[SplitLinesView]> [[__exclude_from_explicit_instantiation__, __abi_tag__]] constexpr decltype(auto) operator[](range_difference_t<_RARange> __index); ---- == Synopsis Declared in `<__ranges/view_interface.h>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<random_access_range _RARange = link:#mrdocs-SplitLinesView[SplitLinesView] const> [[__exclude_from_explicit_instantiation__, __abi_tag__]] constexpr decltype(auto) operator[](range_difference_t<_RARange> __index) const; ---- == Synopses Declared in `<__ranges/view_interface.h>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class _D2 = link:#mrdocs-SplitLinesView[SplitLinesView]> [[__exclude_from_explicit_instantiation__, __abi_tag__]] constexpr auto link:#mrdocs-SplitLinesView-size-05[size]() requires forward_range<_D2> && sized_sentinel_for<sentinel_t<_D2>, iterator_t<_D2>>; ---- [.small]#link:#mrdocs-SplitLinesView-size-05[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class _D2 = link:#mrdocs-SplitLinesView[SplitLinesView]> [[__exclude_from_explicit_instantiation__, __abi_tag__]] constexpr auto link:#mrdocs-SplitLinesView-size-03[size]() const requires forward_range<const _D2> && sized_sentinel_for<sentinel_t<const _D2>, iterator_t<const _D2>>; ---- [.small]#link:#mrdocs-SplitLinesView-size-03[_» more..._]# == Synopsis Declared in `<__ranges/view_interface.h>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class _D2 = link:#mrdocs-SplitLinesView[SplitLinesView]> [[__exclude_from_explicit_instantiation__, __abi_tag__]] constexpr auto size() requires forward_range<_D2> && sized_sentinel_for<sentinel_t<_D2>, iterator_t<_D2>>; ---- == Synopsis Declared in `<__ranges/view_interface.h>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class _D2 = link:#mrdocs-SplitLinesView[SplitLinesView]> [[__exclude_from_explicit_instantiation__, __abi_tag__]] constexpr auto size() const requires forward_range<const _D2> && sized_sentinel_for<sentinel_t<const _D2>, iterator_t<const _D2>>; ---- Conversion operators == Synopses Declared in `<__ranges/view_interface.h>` Conversion to `bool` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class _D2 = link:#mrdocs-SplitLinesView[SplitLinesView]> [[__exclude_from_explicit_instantiation__, __abi_tag__]] constexpr explicit operator bool() requires requires(_D2& __t) { ranges::empty(__t); }; ---- [.small]#link:#mrdocs-SplitLinesView-2conversion-0f[_» more..._]# Conversion to `bool` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class _D2 = link:#mrdocs-SplitLinesView[SplitLinesView]> [[__exclude_from_explicit_instantiation__, __abi_tag__]] constexpr explicit operator bool() const requires requires(const _D2& __t) { ranges::empty(__t); }; ---- [.small]#link:#mrdocs-SplitLinesView-2conversion-0e[_» more..._]# Conversion to `bool` == Synopsis Declared in `<__ranges/view_interface.h>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class _D2 = link:#mrdocs-SplitLinesView[SplitLinesView]> [[__exclude_from_explicit_instantiation__, __abi_tag__]] constexpr explicit operator bool() requires requires(_D2& __t) { ranges::empty(__t); }; ---- == Return Value The object converted to `bool` Conversion to `bool` == Synopsis Declared in `<__ranges/view_interface.h>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class _D2 = link:#mrdocs-SplitLinesView[SplitLinesView]> [[__exclude_from_explicit_instantiation__, __abi_tag__]] constexpr explicit operator bool() const requires requires(const _D2& __t) { ranges::empty(__t); }; ---- == Return Value The object converted to `bool` == Synopsis Declared in `<mrdocs/Support/SplitLines.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::string_view sv_; ---- == Synopsis Declared in `<mrdocs/ADT/UnorderedStringMap.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- struct StringHash; ---- == Types [cols=1] |=== | Name | link:#mrdocs-StringHash-hash_type[`hash_type`] | link:#mrdocs-StringHash-is_transparent[`is_transparent`] |=== == Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-StringHash-operator_call-03[`operator()`] | Function call operators |=== == Synopsis Declared in `<mrdocs/ADT/UnorderedStringMap.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- using hash_type = std::hash<std::string_view>; ---- == Synopsis Declared in `<mrdocs/ADT/UnorderedStringMap.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- using is_transparent = void; ---- Function call operators == Synopses Declared in `<mrdocs/ADT/UnorderedStringMap.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::size_t link:#mrdocs-StringHash-operator_call-05[operator()](std::string_view str) const; ---- [.small]#link:#mrdocs-StringHash-operator_call-05[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::size_t link:#mrdocs-StringHash-operator_call-0f[operator()](std::string const& str) const; ---- [.small]#link:#mrdocs-StringHash-operator_call-0f[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::size_t link:#mrdocs-StringHash-operator_call-09[operator()](char const* str) const; ---- [.small]#link:#mrdocs-StringHash-operator_call-09[_» more..._]# == Synopsis Declared in `<mrdocs/ADT/UnorderedStringMap.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::size_t operator()(std::string_view str) const; ---- == Synopsis Declared in `<mrdocs/ADT/UnorderedStringMap.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::size_t operator()(std::string const& str) const; ---- == Synopsis Declared in `<mrdocs/ADT/UnorderedStringMap.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::size_t operator()(char const* str) const; ---- Base class with common properties of all symbols == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- struct Symbol; ---- == Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-Symbol-2destructor[`~Symbol`] [.small]#[destructor]# [.small]#[virtual]# | Destructor | link:#mrdocs-Symbol-asInfo-08[`asInfo`] | | link:#mrdocs-Symbol-operator_3way[`operator<=>`] | Three‐way comparison operator |=== == Data Members [cols=2] |=== | Name | Description | link:#mrdocs-Symbol-Access[`Access`] | Declaration access. | link:#mrdocs-Symbol-Extraction[`Extraction`] | Determine why a symbol is extracted. | link:#mrdocs-Symbol-Kind[`Kind`] | Kind of declaration. | link:#mrdocs-Symbol-Loc[`Loc`] | The source location information. | link:#mrdocs-Symbol-Name[`Name`] | The unqualified name. | link:#mrdocs-Symbol-Parent[`Parent`] | The parent symbol, if any. | link:#mrdocs-Symbol-doc[`doc`] | The extracted documentation for this declaration. | link:#mrdocs-Symbol-id[`id`] | The unique identifier for this symbol. |=== == Protected Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-Symbol-2constructor-03[`Symbol`] [.small]#[constructor]# | Constructors |=== == Non-Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-merge-00c[`merge`] | Merges two Symbol objects. |=== == Derived Classes [cols=2] |=== | Name | Description | link:#mrdocs-SymbolCommonBase-015[`SymbolCommonBase`] | Base class for providing variant discriminator functions. |=== Destructor == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr virtual ~Symbol() = default; ---- == Synopses Declared in `<mrdocs/Metadata/Symbol/SymbolBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-Symbol[Symbol] const& link:#mrdocs-Symbol-asInfo-0c[asInfo]() const noexcept; ---- [.small]#link:#mrdocs-Symbol-asInfo-0c[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-Symbol[Symbol]& link:#mrdocs-Symbol-asInfo-00[asInfo]() noexcept; ---- [.small]#link:#mrdocs-Symbol-asInfo-00[_» more..._]# == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-Symbol[Symbol] const& asInfo() const noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-Symbol[Symbol]& asInfo() noexcept; ---- Three‐way comparison operator == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- auto operator<=>(link:#mrdocs-Symbol[Symbol] const& rhs) const = default; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== Declaration access. == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-AccessKind[AccessKind] Access = AccessKind::None; ---- == Description Class members use: * `AccessKind::Public`, * `AccessKind::Protected`, and * `AccessKind::Private`. Namespace members use `AccessKind::None`. Determine why a symbol is extracted. == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-ExtractionMode[ExtractionMode] Extraction = ExtractionMode::Dependency; ---- == Description This flag distinguishes `Info` from its dependencies and indicates why it was extracted. Non‐dependencies can be extracted in normal mode, see‐below mode, or implementation‐defined mode. A dependency is a symbol that does not meet the configured conditions for extraction, but had to be extracted due to it being used transitively by a primary `Info`. Kind of declaration. == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-SymbolKind[SymbolKind] Kind = SymbolKind::None; ---- The source location information. == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-SourceInfo[SourceInfo] Loc; ---- The unqualified name. == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::string Name; ---- The parent symbol, if any. == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-SymbolID[SymbolID] Parent; ---- == Description This is the parent namespace or record where the symbol is defined. The extracted documentation for this declaration. == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-Optional-03[Optional<DocComment>] doc; ---- The unique identifier for this symbol. == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-SymbolID[SymbolID] id; ---- Constructors == Synopses Declared in `<mrdocs/Metadata/Symbol/SymbolBase.hpp>` Default constructor [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-Symbol-2constructor-0b[Symbol]() = default; ---- [.small]#link:#mrdocs-Symbol-2constructor-0b[_» more..._]# Copy constructor [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-Symbol-2constructor-0f3[Symbol](link:#mrdocs-Symbol[Symbol] const& Other) = default; ---- [.small]#link:#mrdocs-Symbol-2constructor-0f3[_» more..._]# Move constructor. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-Symbol-2constructor-0f7[Symbol](link:#mrdocs-Symbol[Symbol]&& Other) = default; ---- [.small]#link:#mrdocs-Symbol-2constructor-0f7[_» more..._]# Construct an Symbol. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- explicit link:#mrdocs-Symbol-2constructor-0d[Symbol]( link:#mrdocs-SymbolKind[SymbolKind] const kind, link:#mrdocs-SymbolID[SymbolID] const& ID) noexcept; ---- [.small]#link:#mrdocs-Symbol-2constructor-0d[_» more..._]# == Parameters [cols=2] |=== | Name | Description | *kind* | The kind of symbol | *ID* | The unique identifier for this symbol |=== Default constructor == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr Symbol() = default; ---- Copy constructor == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr Symbol(link:#mrdocs-Symbol[Symbol] const& Other) = default; ---- == Parameters [cols=2] |=== | Name | Description | *Other* | The object to copy construct from |=== Move constructor. == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr Symbol(link:#mrdocs-Symbol[Symbol]&& Other) = default; ---- == Parameters [cols=2] |=== | Name | Description | *Other* | The object to move construct from |=== Construct an Symbol. == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- explicit Symbol( link:#mrdocs-SymbolKind[SymbolKind] const kind, link:#mrdocs-SymbolID[SymbolID] const& ID) noexcept; ---- == Parameters [cols=2] |=== | Name | Description | *kind* | The kind of symbol | *ID* | The unique identifier for this symbol |=== Base class for providing variant discriminator functions. == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<link:#mrdocs-SymbolKind[SymbolKind] K> struct SymbolCommonBase : link:#mrdocs-Symbol[Symbol] ---- == Base Classes [cols=2] |=== | Name | Description | `link:#mrdocs-Symbol[Symbol]` | Base class with common properties of all symbols |=== == Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-Symbol-asInfo-08[`asInfo`] | | link:#mrdocs-SymbolCommonBase-015-operator_3way-0b[`operator<=>`] | Three‐way comparison operators |=== == Data Members [cols=2] |=== | Name | Description | link:#mrdocs-Symbol-Access[`Access`] | Declaration access. | link:#mrdocs-Symbol-Extraction[`Extraction`] | Determine why a symbol is extracted. | link:#mrdocs-Symbol-Kind[`Kind`] | Kind of declaration. | link:#mrdocs-Symbol-Loc[`Loc`] | The source location information. | link:#mrdocs-Symbol-Name[`Name`] | The unqualified name. | link:#mrdocs-Symbol-Parent[`Parent`] | The parent symbol, if any. | link:#mrdocs-Symbol-doc[`doc`] | The extracted documentation for this declaration. | link:#mrdocs-Symbol-id[`id`] | The unique identifier for this symbol. |=== == Static Data Members [cols=2] |=== | Name | Description | link:#mrdocs-SymbolCommonBase-015-kind_id[`kind_id`] | The variant discriminator constant of the most‐derived class. |=== == Protected Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-SymbolCommonBase-015-2constructor-07[`SymbolCommonBase`] [.small]#[constructor]# | Constructors |=== == Non-Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-merge-00c[`merge`] | Merges two Symbol objects. |=== == Derived Classes [cols=2] |=== | Name | Description | link:#mrdocs-ConceptSymbol[`ConceptSymbol`] | Info for concepts. | link:#mrdocs-EnumConstantSymbol[`EnumConstantSymbol`] | Info for enum constants. | link:#mrdocs-EnumSymbol[`EnumSymbol`] | | link:#mrdocs-FunctionSymbol[`FunctionSymbol`] | | link:#mrdocs-GuideSymbol[`GuideSymbol`] | Info for deduction guides. | link:#mrdocs-NamespaceAliasSymbol[`NamespaceAliasSymbol`] | Info for namespace aliases. | link:#mrdocs-NamespaceSymbol[`NamespaceSymbol`] | Describes a namespace. | link:#mrdocs-OverloadsSymbol[`OverloadsSymbol`] | Represents a set of function overloads. | link:#mrdocs-RecordSymbol[`RecordSymbol`] | Metadata for struct, class, or union. | link:#mrdocs-TypedefSymbol[`TypedefSymbol`] | | link:#mrdocs-UsingSymbol[`UsingSymbol`] | Info for using declarations. | link:#mrdocs-VariableSymbol[`VariableSymbol`] | A variable. |=== == Description This offers functions that return a boolean at compile‐time, indicating if the most‐derived class is a certain type. Three‐way comparison operators == Synopses Declared in `<mrdocs/Metadata/Symbol/SymbolBase.hpp>` Three‐way comparison operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- auto link:#mrdocs-SymbolCommonBase-015-operator_3way-07[operator<=>](link:#mrdocs-SymbolCommonBase-015[SymbolCommonBase] const& rhs) const = default; ---- [.small]#link:#mrdocs-SymbolCommonBase-015-operator_3way-07[_» more..._]# Three‐way comparison operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- auto link:#mrdocs-Symbol-operator_3way[operator<=>](link:#mrdocs-Symbol[Symbol] const& rhs) const = default; ---- [.small]#link:#mrdocs-Symbol-operator_3way[_» more..._]# Three‐way comparison operator == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- auto operator<=>(link:#mrdocs-SymbolCommonBase-015[SymbolCommonBase] const& rhs) const = default; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== Three‐way comparison operator == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- auto operator<=>(link:#mrdocs-Symbol[Symbol] const& rhs) const = default; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== The variant discriminator constant of the most‐derived class. == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- inline constexpr static link:#mrdocs-SymbolKind[SymbolKind] kind_id = K; ---- == Description It only distinguishes from `Symbol::kind` in that it is a constant. Constructors == Synopses Declared in `<mrdocs/Metadata/Symbol/SymbolBase.hpp>` Default constructor [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-SymbolCommonBase-015-2constructor-05[SymbolCommonBase]() = default; ---- [.small]#link:#mrdocs-SymbolCommonBase-015-2constructor-05[_» more..._]# Construct from `SymbolID` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr explicit link:#mrdocs-SymbolCommonBase-015-2constructor-0d[SymbolCommonBase](link:#mrdocs-SymbolID[SymbolID] const& ID); ---- [.small]#link:#mrdocs-SymbolCommonBase-015-2constructor-0d[_» more..._]# Default constructor == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- SymbolCommonBase() = default; ---- Construct from `SymbolID` == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr explicit SymbolCommonBase(link:#mrdocs-SymbolID[SymbolID] const& ID); ---- == Parameters [cols=2] |=== | Name | Description | *ID* | The object to copy construct from |=== A glob pattern matcher for C++ symbols == Synopsis Declared in `<mrdocs/Support/Glob.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- class SymbolGlobPattern; ---- == Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-SymbolGlobPattern-2constructor-0f1[`SymbolGlobPattern`] [.small]#[constructor]# | Construct an empty SymbolGlobPattern. | link:#mrdocs-SymbolGlobPattern-isLiteral[`isLiteral`] | Checks if the glob pattern is a literal string. | link:#mrdocs-SymbolGlobPattern-match[`match`] | Matches the given string against the glob pattern. | link:#mrdocs-SymbolGlobPattern-matchPatternPrefix[`matchPatternPrefix`] | Matches the start of a given string against the glob pattern. | link:#mrdocs-SymbolGlobPattern-pattern[`pattern`] | Returns the glob pattern. |=== == Static Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-SymbolGlobPattern-create-00[`create`] | Constructs a SymbolGlobPattern with the given pattern. |=== == Description A glob pattern matcher where "*" does not match "::". The pattern "**" can be used to match any number of "::". Construct an empty SymbolGlobPattern. == Synopses Declared in `<mrdocs/Support/Glob.hpp>` Construct an empty SymbolGlobPattern. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-SymbolGlobPattern-2constructor-0f7[SymbolGlobPattern]() = default; ---- [.small]#link:#mrdocs-SymbolGlobPattern-2constructor-0f7[_» more..._]# Construct an empty SymbolGlobPattern. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- explicit link:#mrdocs-SymbolGlobPattern-2constructor-0a[SymbolGlobPattern](link:#mrdocs-GlobPattern[GlobPattern] glob); ---- [.small]#link:#mrdocs-SymbolGlobPattern-2constructor-0a[_» more..._]# Construct an empty SymbolGlobPattern. == Synopsis Declared in `<mrdocs/Support/Glob.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr SymbolGlobPattern() = default; ---- == Description An empty SymbolGlobPattern will never match any string. Construct an empty SymbolGlobPattern. == Synopsis Declared in `<mrdocs/Support/Glob.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- explicit SymbolGlobPattern(link:#mrdocs-GlobPattern[GlobPattern] glob); ---- == Description An empty SymbolGlobPattern will never match any string. == Parameters [cols=2] |=== | Name | Description | *glob* | The object to construct from |=== Checks if the glob pattern is a literal string. == Synopsis Declared in `<mrdocs/Support/Glob.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool isLiteral() const; ---- == Description This function determines if the glob pattern does not contain any special characters. In other words, it matches a single string. == Return Value true if the glob pattern is a literal string, false otherwise. Matches the given string against the glob pattern. == Synopsis Declared in `<mrdocs/Support/Glob.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool match(std::string_view const str) const; ---- == Return Value true if the string matches the pattern, false otherwise. == Parameters [cols=2] |=== | Name | Description | *str* | The string to match against the pattern. |=== Matches the start of a given string against the glob pattern. == Synopsis Declared in `<mrdocs/Support/Glob.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool matchPatternPrefix(std::string_view prefix) const; ---- == Description This function determines if the given string with the specified `prefix` can potentially match the glob pattern. If the string matches the start of the pattern without failure, even if there are characters left in the string or the pattern, the function returns true. == Return Value true if the string prefix matches the pattern, false otherwise. == Parameters [cols=2] |=== | Name | Description | *prefix* | The string to match against the pattern. |=== Returns the glob pattern. == Synopsis Declared in `<mrdocs/Support/Glob.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::string_view pattern() const; ---- == Return Value The glob pattern as a string view. Constructs a SymbolGlobPattern with the given pattern. == Synopses Declared in `<mrdocs/Support/Glob.hpp>` Constructs a SymbolGlobPattern with the given pattern. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- static link:#mrdocs-Expected-0a[Expected<SymbolGlobPattern>] link:#mrdocs-SymbolGlobPattern-create-037[create](std::string_view const pattern); ---- [.small]#link:#mrdocs-SymbolGlobPattern-create-037[_» more..._]# Constructs a SymbolGlobPattern with the given pattern. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- static link:#mrdocs-Expected-0a[Expected<SymbolGlobPattern>] link:#mrdocs-SymbolGlobPattern-create-03d[create]( std::string_view const pattern, link:#mrdocs-Optional-03[Optional<std::size_t>] maxSubGlobs); ---- [.small]#link:#mrdocs-SymbolGlobPattern-create-03d[_» more..._]# == Parameters [cols=2] |=== | Name | Description | *pattern* | The glob pattern to use for matching. | *maxSubGlobs* | The maximum number of subpatterns allowed. |=== Constructs a SymbolGlobPattern with the given pattern. == Synopsis Declared in `<mrdocs/Support/Glob.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- static link:#mrdocs-Expected-0a[Expected<SymbolGlobPattern>] create(std::string_view const pattern); ---- == Return Value A container holding an error or a value. == Parameters [cols=2] |=== | Name | Description | *pattern* | The glob pattern to use for matching. |=== Constructs a SymbolGlobPattern with the given pattern. == Synopsis Declared in `<mrdocs/Support/Glob.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- static link:#mrdocs-Expected-0a[Expected<SymbolGlobPattern>] create( std::string_view const pattern, link:#mrdocs-Optional-03[Optional<std::size_t>] maxSubGlobs); ---- == Return Value A container holding an error or a value. == Parameters [cols=2] |=== | Name | Description | *pattern* | The glob pattern to use for matching. | *maxSubGlobs* | The maximum number of subpatterns allowed. |=== A unique identifier for a symbol. == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolID.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- class SymbolID; ---- == Types [cols=1] |=== | Name | link:#mrdocs-SymbolID-value_type[`value_type`] |=== == Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-SymbolID-2constructor-0b[`SymbolID`] [.small]#[constructor]# | Construct a SymbolID from a null‐terminated string. | link:#mrdocs-SymbolID-begin[`begin`] | Return an iterator to the first byte of the SymbolID. | link:#mrdocs-SymbolID-data[`data`] | Return the raw data for this SymbolID. | link:#mrdocs-SymbolID-end[`end`] | Return an iterator to one past the last byte of the SymbolID. | link:#mrdocs-SymbolID-size[`size`] | Return the size of the SymbolID. | link:#mrdocs-SymbolID-2conversion-0e[`operator std::string_view`] | Return a string view of the SymbolID. | link:#mrdocs-SymbolID-2conversion-0a[`operator bool`] | Return true if this is a valid SymbolID. | link:#mrdocs-SymbolID-operator_eq[`operator==`] | Compare two SymbolIDs for equality. | link:#mrdocs-SymbolID-operator_3way[`operator<=>`] | Compare two SymbolIDs with strong ordering. |=== == Static Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-SymbolID-createFromString[`createFromString`] | Construct a SymbolID by hashing a string |=== == Static Data Members [cols=2] |=== | Name | Description | link:#mrdocs-SymbolID-global[`global`] | Symbol ID of the global namespace. | link:#mrdocs-SymbolID-invalid[`invalid`] | |=== == Non-Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-getParents-04[`getParents`] | Return a list of the parent symbols of the specified Symbol. | link:#mrdocs-toBase16Str[`toBase16Str`] | Convert a SymbolID to a string |=== == Description This is calculated as the SHA1 digest of the USR. A USRs is a string that provides an unambiguous reference to a symbol. == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolID.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- using value_type = uint8_t; ---- Construct a SymbolID from a null‐terminated string. == Synopses Declared in `<mrdocs/Metadata/Symbol/SymbolID.hpp>` Default constructor [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-SymbolID-2constructor-0c[SymbolID]() = default; ---- [.small]#link:#mrdocs-SymbolID-2constructor-0c[_» more..._]# Construct a SymbolID from a null‐terminated string. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<std::convertible_to<value_type> Char> constexpr link:#mrdocs-SymbolID-2constructor-04[SymbolID](Char const* src); ---- [.small]#link:#mrdocs-SymbolID-2constructor-04[_» more..._]# == Parameters [cols=2] |=== | Name | Description | *src* | The string to construct from. |=== Default constructor == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolID.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr SymbolID() = default; ---- Construct a SymbolID from a null‐terminated string. == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolID.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<std::convertible_to<value_type> Char> constexpr SymbolID(Char const* src); ---- == Description This function constructs a SymbolID from a string. The string must be exactly 20 characters long. == Parameters [cols=2] |=== | Name | Description | *src* | The string to construct from. |=== Return an iterator to the first byte of the SymbolID. == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolID.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr auto begin() const noexcept; ---- == Return Value an iterator to the first byte of the SymbolID. Return the raw data for this SymbolID. == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolID.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr auto data() const noexcept; ---- == Return Value the raw data for this SymbolID. Return an iterator to one past the last byte of the SymbolID. == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolID.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr auto end() const noexcept; ---- == Return Value an iterator to one past the last byte of the SymbolID. Return the size of the SymbolID. == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolID.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr std::size_t size() const noexcept; ---- == Description The size of a SymbolID is always 20. == Return Value the size of the SymbolID. Return a string view of the SymbolID. == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolID.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- operator std::string_view() const noexcept; ---- == Return Value a string view of the SymbolID. Return true if this is a valid SymbolID. == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolID.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- explicit operator bool() const noexcept; ---- == Return Value true if this is a valid SymbolID. Compare two SymbolIDs for equality. == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolID.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr bool operator==(link:#mrdocs-SymbolID[SymbolID] const& other) const noexcept = default; ---- == Return Value `true` if the objects are equal, `false` otherwise == Parameters [cols=2] |=== | Name | Description | *other* | The right operand |=== Compare two SymbolIDs with strong ordering. == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolID.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- auto operator<=>(link:#mrdocs-SymbolID[SymbolID] const& other) const noexcept; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *other* | The right operand |=== Construct a SymbolID by hashing a string == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolID.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- static link:#mrdocs-SymbolID[SymbolID] createFromString(std::string_view input); ---- == Return Value The SymbolID created by hashing the string. == Parameters [cols=2] |=== | Name | Description | *input* | The string to hash. |=== Symbol ID of the global namespace. == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolID.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- inline constexpr static link:#mrdocs-SymbolID[SymbolID] global = "\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF" "\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF"; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolID.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- inline constexpr static link:#mrdocs-SymbolID[SymbolID] invalid = SymbolID(); ---- == Synopsis Declared in `<mrdocs/Metadata/TArg/TArgBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- struct TArg; ---- == Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-TArg-2destructor[`~TArg`] [.small]#[destructor]# [.small]#[virtual]# | Destructor | link:#mrdocs-TArg-asTArg-0c[`asTArg`] | | link:#mrdocs-TArg-operator_3way[`operator<=>`] | Three‐way comparison operator |=== == Data Members [cols=2] |=== | Name | Description | link:#mrdocs-TArg-IsPackExpansion[`IsPackExpansion`] | Whether this template argument is a parameter expansion. | link:#mrdocs-TArg-Kind[`Kind`] | The kind of template argument this is. |=== == Protected Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-TArg-2constructor-0f[`TArg`] [.small]#[constructor]# | Constructors |=== == Derived Classes [cols=2] |=== | Name | Description | link:#mrdocs-TArgCommonBase-06[`TArgCommonBase`] | |=== Destructor == Synopsis Declared in `<mrdocs/Metadata/TArg/TArgBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr virtual ~TArg() = default; ---- == Synopses Declared in `<mrdocs/Metadata/TArg/TArgBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-TArg[TArg] const& link:#mrdocs-TArg-asTArg-06[asTArg]() const noexcept; ---- [.small]#link:#mrdocs-TArg-asTArg-06[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-TArg[TArg]& link:#mrdocs-TArg-asTArg-0a[asTArg]() noexcept; ---- [.small]#link:#mrdocs-TArg-asTArg-0a[_» more..._]# == Synopsis Declared in `<mrdocs/Metadata/TArg/TArgBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-TArg[TArg] const& asTArg() const noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/TArg/TArgBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-TArg[TArg]& asTArg() noexcept; ---- Three‐way comparison operator == Synopsis Declared in `<mrdocs/Metadata/TArg/TArgBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr auto operator<=>(link:#mrdocs-TArg[TArg] const& rhs) const = default; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== Whether this template argument is a parameter expansion. == Synopsis Declared in `<mrdocs/Metadata/TArg/TArgBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool IsPackExpansion = false; ---- The kind of template argument this is. == Synopsis Declared in `<mrdocs/Metadata/TArg/TArgBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-TArgKind[TArgKind] Kind = TArgKind::Type; ---- Constructors == Synopses Declared in `<mrdocs/Metadata/TArg/TArgBase.hpp>` Default constructor [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-TArg-2constructor-0d[TArg]() noexcept = default; ---- [.small]#link:#mrdocs-TArg-2constructor-0d[_» more..._]# Construct from `TArgKind` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-TArg-2constructor-07[TArg](link:#mrdocs-TArgKind[TArgKind] kind) noexcept; ---- [.small]#link:#mrdocs-TArg-2constructor-07[_» more..._]# Default constructor == Synopsis Declared in `<mrdocs/Metadata/TArg/TArgBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr TArg() noexcept = default; ---- Construct from `TArgKind` == Synopsis Declared in `<mrdocs/Metadata/TArg/TArgBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr TArg(link:#mrdocs-TArgKind[TArgKind] kind) noexcept; ---- == Parameters [cols=2] |=== | Name | Description | *kind* | The object to construct from |=== == Synopsis Declared in `<mrdocs/Metadata/TArg/TArgBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<link:#mrdocs-TArgKind[TArgKind] K> struct TArgCommonBase : link:#mrdocs-TArg[TArg] ---- == Base Classes [cols=2] |=== | Name | Description | `link:#mrdocs-TArg[TArg]` | |=== == Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-TArg-asTArg-0c[`asTArg`] | | link:#mrdocs-TArg-operator_3way[`operator<=>`] | Three‐way comparison operator |=== == Static Member Functions [cols=1] |=== | Name | link:#mrdocs-TArgCommonBase-06-isConstant[`isConstant`] | link:#mrdocs-TArgCommonBase-06-isTemplate[`isTemplate`] | link:#mrdocs-TArgCommonBase-06-isType[`isType`] |=== == Data Members [cols=2] |=== | Name | Description | link:#mrdocs-TArg-IsPackExpansion[`IsPackExpansion`] | Whether this template argument is a parameter expansion. | link:#mrdocs-TArg-Kind[`Kind`] | The kind of template argument this is. |=== == Static Data Members [cols=1] |=== | Name | link:#mrdocs-TArgCommonBase-06-kind_id[`kind_id`] |=== == Protected Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-TArgCommonBase-06-2constructor[`TArgCommonBase`] [.small]#[constructor]# | Default constructor |=== == Derived Classes [cols=2] |=== | Name | Description | link:#mrdocs-ConstantTArg[`ConstantTArg`] | | link:#mrdocs-TemplateTArg[`TemplateTArg`] | | link:#mrdocs-TypeTArg[`TypeTArg`] | |=== == Synopsis Declared in `<mrdocs/Metadata/TArg/TArgBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isConstant() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/TArg/TArgBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isTemplate() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/TArg/TArgBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isType() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/TArg/TArgBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- inline constexpr static link:#mrdocs-TArgKind[TArgKind] kind_id = K; ---- Default constructor == Synopsis Declared in `<mrdocs/Metadata/TArg/TArgBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr TArgCommonBase() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/TParam/TParamBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- struct TParam; ---- == Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-TParam-2destructor[`~TParam`] [.small]#[destructor]# [.small]#[virtual]# | Destructor | link:#mrdocs-TParam-asTParam-0f[`asTParam`] | | link:#mrdocs-TParam-operator_3way[`operator<=>`] | Three‐way comparison operator |=== == Data Members [cols=2] |=== | Name | Description | link:#mrdocs-TParam-Default[`Default`] | The default template argument, if any | link:#mrdocs-TParam-IsParameterPack[`IsParameterPack`] | Whether this template parameter is a parameter pack | link:#mrdocs-TParam-Kind[`Kind`] | The kind of template parameter this is | link:#mrdocs-TParam-Name[`Name`] | The template parameters name, if any |=== == Protected Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-TParam-2constructor-00[`TParam`] [.small]#[constructor]# | Constructors |=== == Derived Classes [cols=2] |=== | Name | Description | link:#mrdocs-TParamCommonBase-0c[`TParamCommonBase`] | |=== Destructor == Synopsis Declared in `<mrdocs/Metadata/TParam/TParamBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr virtual ~TParam() = default; ---- == Synopses Declared in `<mrdocs/Metadata/TParam/TParamBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-TParam[TParam] const& link:#mrdocs-TParam-asTParam-0b[asTParam]() const noexcept; ---- [.small]#link:#mrdocs-TParam-asTParam-0b[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-TParam[TParam]& link:#mrdocs-TParam-asTParam-06[asTParam]() noexcept; ---- [.small]#link:#mrdocs-TParam-asTParam-06[_» more..._]# == Synopsis Declared in `<mrdocs/Metadata/TParam/TParamBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-TParam[TParam] const& asTParam() const noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/TParam/TParamBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-TParam[TParam]& asTParam() noexcept; ---- Three‐way comparison operator == Synopsis Declared in `<mrdocs/Metadata/TParam/TParamBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::strong_ordering operator<=>(link:#mrdocs-TParam[TParam] const& rhs) const; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== The default template argument, if any == Synopsis Declared in `<mrdocs/Metadata/TParam/TParamBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-Optional-03[Optional<Polymorphic<TArg>>] Default = std::nullopt; ---- Whether this template parameter is a parameter pack == Synopsis Declared in `<mrdocs/Metadata/TParam/TParamBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool IsParameterPack = false; ---- The kind of template parameter this is == Synopsis Declared in `<mrdocs/Metadata/TParam/TParamBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-TParamKind[TParamKind] Kind = TParamKind::Type; ---- The template parameters name, if any == Synopsis Declared in `<mrdocs/Metadata/TParam/TParamBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::string Name; ---- Constructors == Synopses Declared in `<mrdocs/Metadata/TParam/TParamBase.hpp>` Default constructor [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-TParam-2constructor-09[TParam]() noexcept = default; ---- [.small]#link:#mrdocs-TParam-2constructor-09[_» more..._]# Construct from `TParamKind` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-TParam-2constructor-05[TParam](link:#mrdocs-TParamKind[TParamKind] kind) noexcept; ---- [.small]#link:#mrdocs-TParam-2constructor-05[_» more..._]# Default constructor == Synopsis Declared in `<mrdocs/Metadata/TParam/TParamBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr TParam() noexcept = default; ---- Construct from `TParamKind` == Synopsis Declared in `<mrdocs/Metadata/TParam/TParamBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr TParam(link:#mrdocs-TParamKind[TParamKind] kind) noexcept; ---- == Parameters [cols=2] |=== | Name | Description | *kind* | The object to construct from |=== == Synopsis Declared in `<mrdocs/Metadata/TParam/TParamBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<link:#mrdocs-TParamKind[TParamKind] K> struct TParamCommonBase : link:#mrdocs-TParam[TParam] ---- == Base Classes [cols=2] |=== | Name | Description | `link:#mrdocs-TParam[TParam]` | |=== == Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-TParam-asTParam-0f[`asTParam`] | | link:#mrdocs-TParamCommonBase-0c-operator_3way-07[`operator<=>`] | Three‐way comparison operators |=== == Static Member Functions [cols=1] |=== | Name | link:#mrdocs-TParamCommonBase-0c-isConstant[`isConstant`] | link:#mrdocs-TParamCommonBase-0c-isTemplate[`isTemplate`] | link:#mrdocs-TParamCommonBase-0c-isType[`isType`] |=== == Data Members [cols=2] |=== | Name | Description | link:#mrdocs-TParam-Default[`Default`] | The default template argument, if any | link:#mrdocs-TParam-IsParameterPack[`IsParameterPack`] | Whether this template parameter is a parameter pack | link:#mrdocs-TParam-Kind[`Kind`] | The kind of template parameter this is | link:#mrdocs-TParam-Name[`Name`] | The template parameters name, if any |=== == Static Data Members [cols=1] |=== | Name | link:#mrdocs-TParamCommonBase-0c-kind_id[`kind_id`] |=== == Protected Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-TParamCommonBase-0c-2constructor[`TParamCommonBase`] [.small]#[constructor]# | Default constructor |=== == Derived Classes [cols=2] |=== | Name | Description | link:#mrdocs-ConstantTParam[`ConstantTParam`] | A constant template parameter | link:#mrdocs-TemplateTParam[`TemplateTParam`] | | link:#mrdocs-TypeTParam[`TypeTParam`] | |=== Three‐way comparison operators == Synopses Declared in `<mrdocs/Metadata/TParam/TParamBase.hpp>` Three‐way comparison operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- auto link:#mrdocs-TParamCommonBase-0c-operator_3way-06[operator<=>](link:#mrdocs-TParamCommonBase-0c[TParamCommonBase] const& rhs) const = default; ---- [.small]#link:#mrdocs-TParamCommonBase-0c-operator_3way-06[_» more..._]# Three‐way comparison operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::strong_ordering link:#mrdocs-TParam-operator_3way[operator<=>](link:#mrdocs-TParam[TParam] const& rhs) const; ---- [.small]#link:#mrdocs-TParam-operator_3way[_» more..._]# Three‐way comparison operator == Synopsis Declared in `<mrdocs/Metadata/TParam/TParamBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- auto operator<=>(link:#mrdocs-TParamCommonBase-0c[TParamCommonBase] const& rhs) const = default; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== Three‐way comparison operator == Synopsis Declared in `<mrdocs/Metadata/TParam/TParamBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::strong_ordering operator<=>(link:#mrdocs-TParam[TParam] const& rhs) const; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== == Synopsis Declared in `<mrdocs/Metadata/TParam/TParamBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isConstant() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/TParam/TParamBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isTemplate() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/TParam/TParamBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isType() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/TParam/TParamBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- inline constexpr static link:#mrdocs-TParamKind[TParamKind] kind_id = K; ---- Default constructor == Synopsis Declared in `<mrdocs/Metadata/TParam/TParamBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr TParamCommonBase() noexcept; ---- A subset of possible work in a thread pool. == Synopsis Declared in `<mrdocs/Support/ThreadPool.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- class TaskGroup; ---- == Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-TaskGroup-2constructor[`TaskGroup`] [.small]#[constructor]# | Constructor. | link:#mrdocs-TaskGroup-2destructor[`~TaskGroup`] [.small]#[destructor]# | Destructor. | link:#mrdocs-TaskGroup-async[`async`] | Submit work to be executed. | link:#mrdocs-TaskGroup-wait[`wait`] | Block until all work has completed. |=== Constructor. == Synopsis Declared in `<mrdocs/Support/ThreadPool.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- explicit TaskGroup(link:#mrdocs-ThreadPool[ThreadPool]& threadPool); ---- == Parameters [cols=2] |=== | Name | Description | *threadPool* | The object to copy construct from |=== Destructor. == Synopsis Declared in `<mrdocs/Support/ThreadPool.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- ~TaskGroup(); ---- Submit work to be executed. == Synopsis Declared in `<mrdocs/Support/ThreadPool.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class F> void async(F&& f); ---- == Description The signature of the submitted function object should be `void(void)`. == Parameters [cols=2] |=== | Name | Description | *f* | The function object to execute. |=== Block until all work has completed. == Synopsis Declared in `<mrdocs/Support/ThreadPool.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- [[nodiscard]] std::vector<Error> wait(); ---- == Return Value Zero or more errors which were thrown from submitted work. Information about templates and specializations thereof. == Synopsis Declared in `<mrdocs/Metadata/Template.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- struct TemplateInfo final ---- == Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-TemplateInfo-specializationKind[`specializationKind`] | | link:#mrdocs-TemplateInfo-operator_3way[`operator<=>`] | Three‐way comparison operator |=== == Data Members [cols=2] |=== | Name | Description | link:#mrdocs-TemplateInfo-Args[`Args`] | | link:#mrdocs-TemplateInfo-Params[`Params`] | | link:#mrdocs-TemplateInfo-Primary[`Primary`] | Primary template ID for partial and explicit specializations. | link:#mrdocs-TemplateInfo-Requires[`Requires`] | The requires‐clause for the template parameter list, if any. |=== == Synopsis Declared in `<mrdocs/Metadata/Template.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-TemplateSpecKind[TemplateSpecKind] specializationKind() const noexcept; ---- Three‐way comparison operator == Synopsis Declared in `<mrdocs/Metadata/Template.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::strong_ordering operator<=>(link:#mrdocs-TemplateInfo[TemplateInfo] const& other) const; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *other* | The right operand |=== == Synopsis Declared in `<mrdocs/Metadata/Template.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::vector<Polymorphic<TArg>> Args; ---- == Synopsis Declared in `<mrdocs/Metadata/Template.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::vector<Polymorphic<TParam>> Params; ---- Primary template ID for partial and explicit specializations. == Synopsis Declared in `<mrdocs/Metadata/Template.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-SymbolID[SymbolID] Primary = = SymbolID::invalid; ---- The requires‐clause for the template parameter list, if any. == Synopsis Declared in `<mrdocs/Metadata/Template.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-ExprInfo[ExprInfo] Requires; ---- == Synopsis Declared in `<mrdocs/Metadata/TArg/TemplateTArg.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- struct TemplateTArg final : link:#mrdocs-TArgCommonBase-06[TArgCommonBase<TArgKind::Template>] ---- == Base Classes [cols=2] |=== | Name | Description | `link:#mrdocs-TArgCommonBase-06[TArgCommonBase<TArgKind::Template>]` | |=== == Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-TemplateTArg-operator_3way[`operator<=>`] | Three‐way comparison operator |=== == Static Member Functions [cols=1] |=== | Name | link:#mrdocs-TemplateTArg-isConstant[`isConstant`] | link:#mrdocs-TemplateTArg-isTemplate[`isTemplate`] | link:#mrdocs-TemplateTArg-isType[`isType`] |=== == Data Members [cols=2] |=== | Name | Description | link:#mrdocs-TemplateTArg-Name[`Name`] | Name of the referenced template. | link:#mrdocs-TemplateTArg-Template[`Template`] | SymbolID of the referenced template. |=== == Static Data Members [cols=1] |=== | Name | link:#mrdocs-TemplateTArg-kind_id[`kind_id`] |=== Three‐way comparison operator == Synopsis Declared in `<mrdocs/Metadata/TArg/TemplateTArg.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- auto operator<=>(link:#mrdocs-TemplateTArg[TemplateTArg] const& rhs) const = default; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== == Synopsis Declared in `<mrdocs/Metadata/TArg/TArgBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isConstant() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/TArg/TArgBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isTemplate() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/TArg/TArgBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isType() noexcept; ---- Name of the referenced template. == Synopsis Declared in `<mrdocs/Metadata/TArg/TemplateTArg.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::string Name; ---- SymbolID of the referenced template. == Synopsis Declared in `<mrdocs/Metadata/TArg/TemplateTArg.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-SymbolID[SymbolID] Template; ---- == Synopsis Declared in `<mrdocs/Metadata/TArg/TArgBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static link:#mrdocs-TArgKind[TArgKind] kind_id; ---- == Synopsis Declared in `<mrdocs/Metadata/TParam/TemplateTParam.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- struct TemplateTParam final : link:#mrdocs-TParamCommonBase-0c[TParamCommonBase<TParamKind::Template>] ---- == Base Classes [cols=2] |=== | Name | Description | `link:#mrdocs-TParamCommonBase-0c[TParamCommonBase<TParamKind::Template>]` | |=== == Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-TemplateTParam-operator_3way-06[`operator<=>`] | Three‐way comparison operators |=== == Static Member Functions [cols=1] |=== | Name | link:#mrdocs-TemplateTParam-isConstant[`isConstant`] | link:#mrdocs-TemplateTParam-isTemplate[`isTemplate`] | link:#mrdocs-TemplateTParam-isType[`isType`] |=== == Data Members [cols=2] |=== | Name | Description | link:#mrdocs-TemplateTParam-Params[`Params`] | Template parameters for the template‐template parameter |=== == Static Data Members [cols=1] |=== | Name | link:#mrdocs-TemplateTParam-kind_id[`kind_id`] |=== Three‐way comparison operators == Synopses Declared in `<mrdocs/Metadata/TParam/TemplateTParam.hpp>` Three‐way comparison operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::strong_ordering link:#mrdocs-TemplateTParam-operator_3way-08[operator<=>](link:#mrdocs-TemplateTParam[TemplateTParam] const& other) const; ---- [.small]#link:#mrdocs-TemplateTParam-operator_3way-08[_» more..._]# Three‐way comparison operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- auto link:#mrdocs-TemplateTParam-operator_3way-00[operator<=>](link:#mrdocs-TParamCommonBase-0c[TParamCommonBase<mrdocs::TParamKind::Template>] const& rhs) const = default; ---- [.small]#link:#mrdocs-TemplateTParam-operator_3way-00[_» more..._]# Three‐way comparison operator == Synopsis Declared in `<mrdocs/Metadata/TParam/TemplateTParam.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::strong_ordering operator<=>(link:#mrdocs-TemplateTParam[TemplateTParam] const& other) const; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *other* | The right operand |=== Three‐way comparison operator == Synopsis Declared in `<mrdocs/Metadata/TParam/TParamBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- auto operator<=>(link:#mrdocs-TParamCommonBase-0c[TParamCommonBase<mrdocs::TParamKind::Template>] const& rhs) const = default; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== == Synopsis Declared in `<mrdocs/Metadata/TParam/TParamBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isConstant() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/TParam/TParamBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isTemplate() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/TParam/TParamBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isType() noexcept; ---- Template parameters for the template‐template parameter == Synopsis Declared in `<mrdocs/Metadata/TParam/TemplateTParam.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::vector<Polymorphic<TParam>> Params; ---- == Synopsis Declared in `<mrdocs/Metadata/TParam/TParamBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static link:#mrdocs-TParamKind[TParamKind] kind_id; ---- A pool of threads for executing work concurrently. == Synopsis Declared in `<mrdocs/Support/ThreadPool.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- class ThreadPool; ---- == Types [cols=1] |=== | Name | link:#mrdocs-ThreadPool-arg_ty-0a[`arg_ty`] | link:#mrdocs-ThreadPool-arg_ty-03[`arg_ty<T&>`] | link:#mrdocs-ThreadPool-arg_t[`arg_t`] |=== == Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-ThreadPool-2constructor-04[`ThreadPool`] [.small]#[constructor]# | Constructor. | link:#mrdocs-ThreadPool-2destructor[`~ThreadPool`] [.small]#[destructor]# | Destructor. | link:#mrdocs-ThreadPool-async[`async`] | Submit work to be executed. | link:#mrdocs-ThreadPool-forEach[`forEach`] | Invoke a function object for each element of a range. | link:#mrdocs-ThreadPool-getThreadCount[`getThreadCount`] | Return the number of threads in the pool. | link:#mrdocs-ThreadPool-wait[`wait`] | Block until all work has completed. |=== == Friends [cols=2] |=== | Name | Description | `link:#mrdocs-TaskGroup[mrdocs::TaskGroup]` | A subset of possible work in a thread pool. |=== == Synopsis Declared in `<mrdocs/Support/ThreadPool.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class T> using arg_t = arg_ty<T>::type; ---- == Synopsis Declared in `<mrdocs/Support/ThreadPool.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class T> struct arg_ty; ---- == Types [cols=1] |=== | Name | link:#mrdocs-ThreadPool-arg_ty-0a-type[`type`] |=== == Synopsis Declared in `<mrdocs/Support/ThreadPool.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- using type = T; ---- == Synopsis Declared in `<mrdocs/Support/ThreadPool.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class T> struct link:#mrdocs-ThreadPool-arg_ty-0a[arg_ty]<T&>; ---- == Types [cols=1] |=== | Name | link:#mrdocs-ThreadPool-arg_ty-03-type[`type`] |=== == Synopsis Declared in `<mrdocs/Support/ThreadPool.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- using type = std::conditional_t<std::is_const_v<T>, T, T&>; ---- Constructor. == Synopses Declared in `<mrdocs/Support/ThreadPool.hpp>` Constructor. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- explicit link:#mrdocs-ThreadPool-2constructor-0e[ThreadPool](); ---- [.small]#link:#mrdocs-ThreadPool-2constructor-0e[_» more..._]# Constructor. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- explicit link:#mrdocs-ThreadPool-2constructor-03[ThreadPool](unsigned int concurrency); ---- [.small]#link:#mrdocs-ThreadPool-2constructor-03[_» more..._]# Constructor. == Synopsis Declared in `<mrdocs/Support/ThreadPool.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- explicit ThreadPool(); ---- == Description Default constructed thread pools have concurrency equal to one and never spawn new threads. Submitted work blocks the caller until the work is complete. Constructor. == Synopsis Declared in `<mrdocs/Support/ThreadPool.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- explicit ThreadPool(unsigned int concurrency); ---- == Parameters [cols=2] |=== | Name | Description | *concurrency* | The value to construct from |=== Destructor. == Synopsis Declared in `<mrdocs/Support/ThreadPool.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- ~ThreadPool(); ---- Submit work to be executed. == Synopsis Declared in `<mrdocs/Support/ThreadPool.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class F> void async(F&& f); ---- == Description The signature of the submitted function object should be `void(void)`. == Parameters [cols=2] |=== | Name | Description | *f* | The function object to execute. |=== Invoke a function object for each element of a range. == Synopsis Declared in `<mrdocs/Support/ThreadPool.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< class Range, class F> [[nodiscard]] std::vector<Error> forEach( Range&& range, F const& f); ---- == Return Value Zero or more errors which were thrown from submitted work. == Parameters [cols=2] |=== | Name | Description | *range* | The range of elements to process. | *f* | The function object to invoke. |=== Return the number of threads in the pool. == Synopsis Declared in `<mrdocs/Support/ThreadPool.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- unsigned int getThreadCount() const noexcept; ---- == Return Value the number of threads in the pool. Block until all work has completed. == Synopsis Declared in `<mrdocs/Support/ThreadPool.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void wait(); ---- A possibly qualified type. == Synopsis Declared in `<mrdocs/Metadata/Type/TypeBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- struct Type; ---- == Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-Type-asType-09[`asType`] | | link:#mrdocs-Type-namedSymbol[`namedSymbol`] | Return the symbol named by this type. | link:#mrdocs-Type-operator_3way[`operator<=>`] | Three‐way comparison operator |=== == Data Members [cols=2] |=== | Name | Description | link:#mrdocs-Type-Constraints[`Constraints`] | The constraints associated with the type | link:#mrdocs-Type-IsConst[`IsConst`] | The const qualifier | link:#mrdocs-Type-IsPackExpansion[`IsPackExpansion`] | Whether this is the pattern of a pack expansion. | link:#mrdocs-Type-IsVolatile[`IsVolatile`] | The volatile qualifier | link:#mrdocs-Type-Kind[`Kind`] | The kind of Type this is |=== == Protected Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-Type-2constructor[`Type`] [.small]#[constructor]# | Construct from `TypeKind` | link:#mrdocs-Type-2destructor[`~Type`] [.small]#[destructor]# [.small]#[virtual]# | Destructor |=== == Non-Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-innerType-06[`innerType`] | Return the inner type. | link:#mrdocs-innerType-09[`innerType`] | Return the inner type. | link:#mrdocs-innerTypePtr-08[`innerTypePtr`] | Return the inner type. | link:#mrdocs-innerTypePtr-0a[`innerTypePtr`] | Return the inner type. |=== == Derived Classes [cols=2] |=== | Name | Description | link:#mrdocs-TypeCommonBase-0e[`TypeCommonBase`] | |=== == Description This class represents a type that may have qualifiers (e.g. const, volatile). This base class is used to store the kind of type. Derived classes are used to store the type information according to the kind. == Synopses Declared in `<mrdocs/Metadata/Type/TypeBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-Type[Type] const& link:#mrdocs-Type-asType-0d[asType]() const noexcept; ---- [.small]#link:#mrdocs-Type-asType-0d[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-Type[Type]& link:#mrdocs-Type-asType-0c[asType]() noexcept; ---- [.small]#link:#mrdocs-Type-asType-0c[_» more..._]# == Synopsis Declared in `<mrdocs/Metadata/Type/TypeBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-Type[Type] const& asType() const noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Type/TypeBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-Type[Type]& asType() noexcept; ---- Return the symbol named by this type. == Synopsis Declared in `<mrdocs/Metadata/Type/TypeBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-SymbolID[SymbolID] namedSymbol() const noexcept; ---- == Return Value the symbol named by this type. Three‐way comparison operator == Synopsis Declared in `<mrdocs/Metadata/Type/TypeBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr auto operator<=>(link:#mrdocs-Type[Type] const& rhs) const = default; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== The constraints associated with the type == Synopsis Declared in `<mrdocs/Metadata/Type/TypeBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::vector<ExprInfo> Constraints; ---- == Description This represents the constraints associated with the type, such as SFINAE constraints. For instance, if SFINAE detection is enabled, the expression `std::enable_if_t<std::is_integral_v<T>, T>` will have type `T` (NamedType) and constraints `{std::is_integral_v<T>}`. The const qualifier == Synopsis Declared in `<mrdocs/Metadata/Type/TypeBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool IsConst = false; ---- Whether this is the pattern of a pack expansion. == Synopsis Declared in `<mrdocs/Metadata/Type/TypeBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool IsPackExpansion = false; ---- The volatile qualifier == Synopsis Declared in `<mrdocs/Metadata/Type/TypeBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool IsVolatile = false; ---- The kind of Type this is == Synopsis Declared in `<mrdocs/Metadata/Type/TypeBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-TypeKind[TypeKind] Kind; ---- Construct from `TypeKind` == Synopsis Declared in `<mrdocs/Metadata/Type/TypeBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr Type(link:#mrdocs-TypeKind[TypeKind] kind) noexcept; ---- == Parameters [cols=2] |=== | Name | Description | *kind* | The object to construct from |=== Destructor == Synopsis Declared in `<mrdocs/Metadata/Type/TypeBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr virtual ~Type() = default; ---- == Synopsis Declared in `<mrdocs/Metadata/Type/TypeBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<link:#mrdocs-TypeKind[TypeKind] K> struct TypeCommonBase : link:#mrdocs-Type[Type] ---- == Base Classes [cols=2] |=== | Name | Description | `link:#mrdocs-Type[Type]` | A possibly qualified type. |=== == Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-Type-asType-09[`asType`] | | link:#mrdocs-Type-namedSymbol[`namedSymbol`] | Return the symbol named by this type. | link:#mrdocs-TypeCommonBase-0e-operator_3way-07[`operator<=>`] | Three‐way comparison operators |=== == Static Member Functions [cols=1] |=== | Name | link:#mrdocs-TypeCommonBase-0e-isArray[`isArray`] | link:#mrdocs-TypeCommonBase-0e-isAuto[`isAuto`] | link:#mrdocs-TypeCommonBase-0e-isDecltype[`isDecltype`] | link:#mrdocs-TypeCommonBase-0e-isFunction[`isFunction`] | link:#mrdocs-TypeCommonBase-0e-isLValueReference[`isLValueReference`] | link:#mrdocs-TypeCommonBase-0e-isMemberPointer[`isMemberPointer`] | link:#mrdocs-TypeCommonBase-0e-isNamed[`isNamed`] | link:#mrdocs-TypeCommonBase-0e-isPointer[`isPointer`] | link:#mrdocs-TypeCommonBase-0e-isRValueReference[`isRValueReference`] |=== == Data Members [cols=2] |=== | Name | Description | link:#mrdocs-Type-Constraints[`Constraints`] | The constraints associated with the type | link:#mrdocs-Type-IsConst[`IsConst`] | The const qualifier | link:#mrdocs-Type-IsPackExpansion[`IsPackExpansion`] | Whether this is the pattern of a pack expansion. | link:#mrdocs-Type-IsVolatile[`IsVolatile`] | The volatile qualifier | link:#mrdocs-Type-Kind[`Kind`] | The kind of Type this is |=== == Static Data Members [cols=1] |=== | Name | link:#mrdocs-TypeCommonBase-0e-kind_id[`kind_id`] |=== == Protected Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-TypeCommonBase-0e-2constructor[`TypeCommonBase`] [.small]#[constructor]# | Default constructor |=== == Non-Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-innerType-06[`innerType`] | Return the inner type. | link:#mrdocs-innerType-09[`innerType`] | Return the inner type. | link:#mrdocs-innerTypePtr-08[`innerTypePtr`] | Return the inner type. | link:#mrdocs-innerTypePtr-0a[`innerTypePtr`] | Return the inner type. |=== == Derived Classes [cols=2] |=== | Name | Description | link:#mrdocs-ArrayType[`ArrayType`] | | link:#mrdocs-AutoType[`AutoType`] | | link:#mrdocs-DecltypeType[`DecltypeType`] | | link:#mrdocs-FunctionType[`FunctionType`] | | link:#mrdocs-LValueReferenceType[`LValueReferenceType`] | | link:#mrdocs-MemberPointerType[`MemberPointerType`] | | link:#mrdocs-NamedType[`NamedType`] | | link:#mrdocs-PointerType[`PointerType`] | | link:#mrdocs-RValueReferenceType[`RValueReferenceType`] | |=== Three‐way comparison operators == Synopses Declared in `<mrdocs/Metadata/Type/TypeBase.hpp>` Three‐way comparison operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- auto link:#mrdocs-TypeCommonBase-0e-operator_3way-0f[operator<=>](link:#mrdocs-TypeCommonBase-0e[TypeCommonBase] const& rhs) const = default; ---- [.small]#link:#mrdocs-TypeCommonBase-0e-operator_3way-0f[_» more..._]# Three‐way comparison operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr auto link:#mrdocs-Type-operator_3way[operator<=>](link:#mrdocs-Type[Type] const& rhs) const = default; ---- [.small]#link:#mrdocs-Type-operator_3way[_» more..._]# Three‐way comparison operator == Synopsis Declared in `<mrdocs/Metadata/Type/TypeBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- auto operator<=>(link:#mrdocs-TypeCommonBase-0e[TypeCommonBase] const& rhs) const = default; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== Three‐way comparison operator == Synopsis Declared in `<mrdocs/Metadata/Type/TypeBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr auto operator<=>(link:#mrdocs-Type[Type] const& rhs) const = default; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== == Synopsis Declared in `<mrdocs/Metadata/Type/TypeBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isArray() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Type/TypeBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isAuto() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Type/TypeBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isDecltype() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Type/TypeBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isFunction() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Type/TypeBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isLValueReference() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Type/TypeBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isMemberPointer() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Type/TypeBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isNamed() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Type/TypeBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isPointer() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Type/TypeBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isRValueReference() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Type/TypeBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- inline constexpr static link:#mrdocs-TypeKind[TypeKind] kind_id = K; ---- Default constructor == Synopsis Declared in `<mrdocs/Metadata/Type/TypeBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr TypeCommonBase() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/TArg/TypeTArg.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- struct TypeTArg final : link:#mrdocs-TArgCommonBase-06[TArgCommonBase<TArgKind::Type>] ---- == Base Classes [cols=2] |=== | Name | Description | `link:#mrdocs-TArgCommonBase-06[TArgCommonBase<TArgKind::Type>]` | |=== == Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-TypeTArg-operator_3way[`operator<=>`] | Three‐way comparison operator |=== == Static Member Functions [cols=1] |=== | Name | link:#mrdocs-TypeTArg-isConstant[`isConstant`] | link:#mrdocs-TypeTArg-isTemplate[`isTemplate`] | link:#mrdocs-TypeTArg-isType[`isType`] |=== == Data Members [cols=2] |=== | Name | Description | link:#mrdocs-TypeTArg-Type[`Type`] | Template argument type. |=== == Static Data Members [cols=1] |=== | Name | link:#mrdocs-TypeTArg-kind_id[`kind_id`] |=== Three‐way comparison operator == Synopsis Declared in `<mrdocs/Metadata/TArg/TypeTArg.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- auto operator<=>(link:#mrdocs-TypeTArg[TypeTArg] const& rhs) const = default; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== == Synopsis Declared in `<mrdocs/Metadata/TArg/TArgBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isConstant() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/TArg/TArgBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isTemplate() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/TArg/TArgBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isType() noexcept; ---- Template argument type. == Synopsis Declared in `<mrdocs/Metadata/TArg/TypeTArg.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-Polymorphic[Polymorphic<Type>] Type = Polymorphic<struct Type>(AutoType{}); ---- == Synopsis Declared in `<mrdocs/Metadata/TArg/TArgBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static link:#mrdocs-TArgKind[TArgKind] kind_id; ---- == Synopsis Declared in `<mrdocs/Metadata/TParam/TypeTParam.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- struct TypeTParam final : link:#mrdocs-TParamCommonBase-0c[TParamCommonBase<TParamKind::Type>] ---- == Base Classes [cols=2] |=== | Name | Description | `link:#mrdocs-TParamCommonBase-0c[TParamCommonBase<TParamKind::Type>]` | |=== == Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-TypeTParam-operator_3way-0b[`operator<=>`] | Three‐way comparison operators |=== == Static Member Functions [cols=1] |=== | Name | link:#mrdocs-TypeTParam-isConstant[`isConstant`] | link:#mrdocs-TypeTParam-isTemplate[`isTemplate`] | link:#mrdocs-TypeTParam-isType[`isType`] |=== == Data Members [cols=2] |=== | Name | Description | link:#mrdocs-TypeTParam-Constraint[`Constraint`] | The type‐constraint for the parameter, if any. | link:#mrdocs-TypeTParam-KeyKind[`KeyKind`] | Keyword (class/typename) the parameter uses |=== == Static Data Members [cols=1] |=== | Name | link:#mrdocs-TypeTParam-kind_id[`kind_id`] |=== Three‐way comparison operators == Synopses Declared in `<mrdocs/Metadata/TParam/TypeTParam.hpp>` Three‐way comparison operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::strong_ordering link:#mrdocs-TypeTParam-operator_3way-07[operator<=>](link:#mrdocs-TypeTParam[TypeTParam] const& rhs) const; ---- [.small]#link:#mrdocs-TypeTParam-operator_3way-07[_» more..._]# Three‐way comparison operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- auto link:#mrdocs-TypeTParam-operator_3way-09[operator<=>](link:#mrdocs-TParamCommonBase-0c[TParamCommonBase<mrdocs::TParamKind::Type>] const& rhs) const = default; ---- [.small]#link:#mrdocs-TypeTParam-operator_3way-09[_» more..._]# Three‐way comparison operator == Synopsis Declared in `<mrdocs/Metadata/TParam/TypeTParam.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::strong_ordering operator<=>(link:#mrdocs-TypeTParam[TypeTParam] const& rhs) const; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== Three‐way comparison operator == Synopsis Declared in `<mrdocs/Metadata/TParam/TParamBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- auto operator<=>(link:#mrdocs-TParamCommonBase-0c[TParamCommonBase<mrdocs::TParamKind::Type>] const& rhs) const = default; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== == Synopsis Declared in `<mrdocs/Metadata/TParam/TParamBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isConstant() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/TParam/TParamBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isTemplate() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/TParam/TParamBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isType() noexcept; ---- The type‐constraint for the parameter, if any. == Synopsis Declared in `<mrdocs/Metadata/TParam/TypeTParam.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-Optional-03[Optional<Polymorphic<Name>>] Constraint = std::nullopt; ---- Keyword (class/typename) the parameter uses == Synopsis Declared in `<mrdocs/Metadata/TParam/TypeTParam.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-TParamKeyKind[TParamKeyKind] KeyKind = TParamKeyKind::Class; ---- == Synopsis Declared in `<mrdocs/Metadata/TParam/TParamBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static link:#mrdocs-TParamKind[TParamKind] kind_id; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/Typedef.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- struct TypedefSymbol final : link:#mrdocs-SymbolCommonBase-015[SymbolCommonBase<SymbolKind::Typedef>] ---- == Base Classes [cols=2] |=== | Name | Description | `link:#mrdocs-SymbolCommonBase-015[SymbolCommonBase<SymbolKind::Typedef>]` | Base class for providing variant discriminator functions. |=== == Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-TypedefSymbol-2constructor[`TypedefSymbol`] [.small]#[constructor]# | Construct from `SymbolID` | link:#mrdocs-TypedefSymbol-operator_3way-0c[`operator<=>`] | Three‐way comparison operators |=== == Static Member Functions [cols=1] |=== | Name | link:#mrdocs-TypedefSymbol-isConcept[`isConcept`] | link:#mrdocs-TypedefSymbol-isEnum[`isEnum`] | link:#mrdocs-TypedefSymbol-isEnumConstant[`isEnumConstant`] | link:#mrdocs-TypedefSymbol-isFunction[`isFunction`] | link:#mrdocs-TypedefSymbol-isGuide[`isGuide`] | link:#mrdocs-TypedefSymbol-isNamespace[`isNamespace`] | link:#mrdocs-TypedefSymbol-isNamespaceAlias[`isNamespaceAlias`] | link:#mrdocs-TypedefSymbol-isOverloads[`isOverloads`] | link:#mrdocs-TypedefSymbol-isRecord[`isRecord`] | link:#mrdocs-TypedefSymbol-isTypedef[`isTypedef`] | link:#mrdocs-TypedefSymbol-isUsing[`isUsing`] | link:#mrdocs-TypedefSymbol-isVariable[`isVariable`] |=== == Data Members [cols=2] |=== | Name | Description | link:#mrdocs-TypedefSymbol-IsUsing[`IsUsing`] | Indicates if this is a new C++ "using"‐style typedef | link:#mrdocs-TypedefSymbol-Template[`Template`] | | link:#mrdocs-TypedefSymbol-Type[`Type`] | |=== == Static Data Members [cols=1] |=== | Name | link:#mrdocs-TypedefSymbol-kind_id[`kind_id`] |=== == Non-Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-merge-00c[`merge`] | Merges two Symbol objects. |=== Construct from `SymbolID` == Synopsis Declared in `<mrdocs/Metadata/Symbol/Typedef.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- explicit TypedefSymbol(link:#mrdocs-SymbolID[SymbolID] ID) noexcept; ---- == Parameters [cols=2] |=== | Name | Description | *ID* | The object to construct from |=== Three‐way comparison operators == Synopses Declared in `<mrdocs/Metadata/Symbol/Typedef.hpp>` Three‐way comparison operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::strong_ordering link:#mrdocs-TypedefSymbol-operator_3way-06[operator<=>](link:#mrdocs-TypedefSymbol[TypedefSymbol] const& other) const; ---- [.small]#link:#mrdocs-TypedefSymbol-operator_3way-06[_» more..._]# Three‐way comparison operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- auto link:#mrdocs-TypedefSymbol-operator_3way-02[operator<=>](link:#mrdocs-SymbolCommonBase-015[SymbolCommonBase<mrdocs::SymbolKind::Typedef>] const& rhs) const = default; ---- [.small]#link:#mrdocs-TypedefSymbol-operator_3way-02[_» more..._]# Three‐way comparison operator == Synopsis Declared in `<mrdocs/Metadata/Symbol/Typedef.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::strong_ordering operator<=>(link:#mrdocs-TypedefSymbol[TypedefSymbol] const& other) const; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *other* | The right operand |=== Three‐way comparison operator == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- auto operator<=>(link:#mrdocs-SymbolCommonBase-015[SymbolCommonBase<mrdocs::SymbolKind::Typedef>] const& rhs) const = default; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isConcept() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isEnum() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isEnumConstant() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isFunction() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isGuide() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isNamespace() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isNamespaceAlias() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isOverloads() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isRecord() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isTypedef() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isUsing() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isVariable() noexcept; ---- Indicates if this is a new C++ "using"‐style typedef == Synopsis Declared in `<mrdocs/Metadata/Symbol/Typedef.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool IsUsing = false; ---- == Description [,cpp] ---- using MyVector = std::vector ---- False means it's a C‐style typedef: [,cpp] ---- typedef std::vector MyVector; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/Typedef.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-Optional-03[Optional<TemplateInfo>] Template; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/Typedef.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-Polymorphic[Polymorphic<Type>] Type = Polymorphic<struct Type>(NamedType{}); ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static link:#mrdocs-SymbolKind[SymbolKind] kind_id; ---- == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class E> class Unexpected; ---- == Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-Unexpected-0c-2constructor-0b[`Unexpected`] [.small]#[constructor]# | Constructors | link:#mrdocs-Unexpected-0c-operator_assign-09[`operator=`] | Assignment operators | link:#mrdocs-Unexpected-0c-error-02[`error`] | | link:#mrdocs-Unexpected-0c-swap[`swap`] | |=== == Friends [cols=2] |=== | Name | Description | `link:#mrdocs-swap-02[mrdocs::swap]` | | `link:#mrdocs-operator_eq-0a[mrdocs::operator==]` | Equality operator |=== Constructors == Synopses Declared in `<mrdocs/Support/Expected.hpp>` Copy constructor [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-Unexpected-0c-2constructor-04[Unexpected](link:#mrdocs-Unexpected-0c[Unexpected] const& other) = default; ---- [.small]#link:#mrdocs-Unexpected-0c-2constructor-04[_» more..._]# Move constructor [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-Unexpected-0c-2constructor-07[Unexpected](link:#mrdocs-Unexpected-0c[Unexpected]&& other) = default; ---- [.small]#link:#mrdocs-Unexpected-0c-2constructor-07[_» more..._]# Construct from `Er` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class Er = E> requires (!std::is_same_v<std::remove_cvref_t<Er>, Unexpected>) && (!std::is_same_v<std::remove_cvref_t<Er>, std::in_place_t>) && std::is_constructible_v<E, Er> constexpr explicit link:#mrdocs-Unexpected-0c-2constructor-01[Unexpected](Er&& e) noexcept(std::is_nothrow_constructible_v<E, Er>); ---- [.small]#link:#mrdocs-Unexpected-0c-2constructor-01[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class... Args> requires std::is_constructible_v<E, Args...> constexpr explicit link:#mrdocs-Unexpected-0c-2constructor-030[Unexpected]( std::in_place_t, Args...&&... args) noexcept(std::is_nothrow_constructible_v<E, Args...>); ---- [.small]#link:#mrdocs-Unexpected-0c-2constructor-030[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< class U, class... Args> requires std::is_constructible_v<E, std::initializer_list<U>&, Args...> constexpr explicit link:#mrdocs-Unexpected-0c-2constructor-038[Unexpected]( std::in_place_t, std::initializer_list<U> il, Args...&&... args) noexcept(std::is_nothrow_constructible_v<E, std::initializer_list<U> &, Args...>); ---- [.small]#link:#mrdocs-Unexpected-0c-2constructor-038[_» more..._]# Copy constructor == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr Unexpected(link:#mrdocs-Unexpected-0c[Unexpected] const& other) = default; ---- == Parameters [cols=2] |=== | Name | Description | *other* | The object to copy construct from |=== Move constructor == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr Unexpected(link:#mrdocs-Unexpected-0c[Unexpected]&& other) = default; ---- == Parameters [cols=2] |=== | Name | Description | *other* | The object to move construct from |=== Construct from `Er` == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class Er = E> requires (!std::is_same_v<std::remove_cvref_t<Er>, Unexpected>) && (!std::is_same_v<std::remove_cvref_t<Er>, std::in_place_t>) && std::is_constructible_v<E, Er> constexpr explicit Unexpected(Er&& e) noexcept(std::is_nothrow_constructible_v<E, Er>); ---- == Parameters [cols=2] |=== | Name | Description | *e* | The object to move construct from |=== == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class... Args> requires std::is_constructible_v<E, Args...> constexpr explicit Unexpected( std::in_place_t, Args...&&... args) noexcept(std::is_nothrow_constructible_v<E, Args...>); ---- == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< class U, class... Args> requires std::is_constructible_v<E, std::initializer_list<U>&, Args...> constexpr explicit Unexpected( std::in_place_t, std::initializer_list<U> il, Args...&&... args) noexcept(std::is_nothrow_constructible_v<E, std::initializer_list<U> &, Args...>); ---- Assignment operators == Synopses Declared in `<mrdocs/Support/Expected.hpp>` Copy assignment operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-Unexpected-0c[Unexpected]& link:#mrdocs-Unexpected-0c-operator_assign-08[operator=](link:#mrdocs-Unexpected-0c[Unexpected] const& other) = default; ---- [.small]#link:#mrdocs-Unexpected-0c-operator_assign-08[_» more..._]# Move assignment operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-Unexpected-0c[Unexpected]& link:#mrdocs-Unexpected-0c-operator_assign-0d[operator=](link:#mrdocs-Unexpected-0c[Unexpected]&& other) = default; ---- [.small]#link:#mrdocs-Unexpected-0c-operator_assign-0d[_» more..._]# Copy assignment operator == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-Unexpected-0c[Unexpected]& operator=(link:#mrdocs-Unexpected-0c[Unexpected] const& other) = default; ---- == Return Value Reference to the current object == Parameters [cols=2] |=== | Name | Description | *other* | The object to copy assign from |=== Move assignment operator == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-Unexpected-0c[Unexpected]& operator=(link:#mrdocs-Unexpected-0c[Unexpected]&& other) = default; ---- == Return Value Reference to the current object == Parameters [cols=2] |=== | Name | Description | *other* | The object to move assign from |=== == Synopses Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- [[nodiscard]] constexpr E const& link:#mrdocs-Unexpected-0c-error-07f[error]() const & noexcept; ---- [.small]#link:#mrdocs-Unexpected-0c-error-07f[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- [[nodiscard]] constexpr E& link:#mrdocs-Unexpected-0c-error-0a[error]() & noexcept; ---- [.small]#link:#mrdocs-Unexpected-0c-error-0a[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- [[nodiscard]] constexpr E const&& link:#mrdocs-Unexpected-0c-error-07e[error]() const && noexcept; ---- [.small]#link:#mrdocs-Unexpected-0c-error-07e[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- [[nodiscard]] constexpr E&& link:#mrdocs-Unexpected-0c-error-0e[error]() && noexcept; ---- [.small]#link:#mrdocs-Unexpected-0c-error-0e[_» more..._]# == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- [[nodiscard]] constexpr E const& error() const & noexcept; ---- == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- [[nodiscard]] constexpr E& error() & noexcept; ---- == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- [[nodiscard]] constexpr E const&& error() const && noexcept; ---- == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- [[nodiscard]] constexpr E&& error() && noexcept; ---- == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr void swap(link:#mrdocs-Unexpected-0c[Unexpected]& other) noexcept(std::is_nothrow_swappable_v<E>) requires std::is_swappable_v<E>; ---- Info for using declarations. == Synopsis Declared in `<mrdocs/Metadata/Symbol/Using.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- struct UsingSymbol final : link:#mrdocs-SymbolCommonBase-015[SymbolCommonBase<SymbolKind::Using>] ---- == Base Classes [cols=2] |=== | Name | Description | `link:#mrdocs-SymbolCommonBase-015[SymbolCommonBase<SymbolKind::Using>]` | Base class for providing variant discriminator functions. |=== == Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-UsingSymbol-2constructor[`UsingSymbol`] [.small]#[constructor]# | Construct from `SymbolID` | link:#mrdocs-UsingSymbol-operator_3way[`operator<=>`] | Three‐way comparison operator |=== == Static Member Functions [cols=1] |=== | Name | link:#mrdocs-UsingSymbol-isConcept[`isConcept`] | link:#mrdocs-UsingSymbol-isEnum[`isEnum`] | link:#mrdocs-UsingSymbol-isEnumConstant[`isEnumConstant`] | link:#mrdocs-UsingSymbol-isFunction[`isFunction`] | link:#mrdocs-UsingSymbol-isGuide[`isGuide`] | link:#mrdocs-UsingSymbol-isNamespace[`isNamespace`] | link:#mrdocs-UsingSymbol-isNamespaceAlias[`isNamespaceAlias`] | link:#mrdocs-UsingSymbol-isOverloads[`isOverloads`] | link:#mrdocs-UsingSymbol-isRecord[`isRecord`] | link:#mrdocs-UsingSymbol-isTypedef[`isTypedef`] | link:#mrdocs-UsingSymbol-isUsing[`isUsing`] | link:#mrdocs-UsingSymbol-isVariable[`isVariable`] |=== == Data Members [cols=2] |=== | Name | Description | link:#mrdocs-UsingSymbol-Class[`Class`] | The using declaration. | link:#mrdocs-UsingSymbol-IntroducedName[`IntroducedName`] | The symbol being introduced. | link:#mrdocs-UsingSymbol-ShadowDeclarations[`ShadowDeclarations`] | The shadow declarations. |=== == Static Data Members [cols=1] |=== | Name | link:#mrdocs-UsingSymbol-kind_id[`kind_id`] |=== == Non-Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-merge-00c[`merge`] | Merges two Symbol objects. |=== == Description For instance, the following code: [,cpp] ---- using A::f; // where f is a function in namespace A ---- would be represented by a `UsingSymbol` object. Using‐declarations can be used to introduce namespace members into other namespaces and block scopes, or to introduce base class members into derived class definitions, or to introduce enumerators into namespaces, block, and class scopes. Construct from `SymbolID` == Synopsis Declared in `<mrdocs/Metadata/Symbol/Using.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- explicit UsingSymbol(link:#mrdocs-SymbolID[SymbolID] ID) noexcept; ---- == Parameters [cols=2] |=== | Name | Description | *ID* | The object to construct from |=== Three‐way comparison operator == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- auto operator<=>(link:#mrdocs-SymbolCommonBase-015[SymbolCommonBase<mrdocs::SymbolKind::Using>] const& rhs) const = default; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isConcept() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isEnum() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isEnumConstant() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isFunction() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isGuide() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isNamespace() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isNamespaceAlias() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isOverloads() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isRecord() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isTypedef() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isUsing() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isVariable() noexcept; ---- The using declaration. == Synopsis Declared in `<mrdocs/Metadata/Symbol/Using.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-UsingClass[UsingClass] Class = UsingClass::Normal; ---- The symbol being introduced. == Synopsis Declared in `<mrdocs/Metadata/Symbol/Using.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-Polymorphic[Polymorphic<Name>] IntroducedName = Polymorphic<struct Name>(std::in_place_type<IdentifierName>); ---- == Description This is the symbol that is being "used" or introduced into the current scope. Note that this can be a qualified name, such as `A::f` in the example above. The shadow declarations. == Synopsis Declared in `<mrdocs/Metadata/Symbol/Using.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::vector<SymbolID> ShadowDeclarations; ---- == Description A using declaration can refer to and introduce multiple symbols into the current context. These multiple symbols are considered a special case of declarations: "shadow declarations". This typically happens when there are conflicting symbol names in the scope being introduced, such as: Overloaded functions: the base namespace contains overloaded functions. Name conflicts: the base scope contains a function and a type. Enums: a using enum declaration can refer to multiple enumerators. Also note that more shadow declarations can be introduced later in the same scope, after the using declaration. The shadow declarations here are only those that are shadowed at the point where the using declaration is located. == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static link:#mrdocs-SymbolKind[SymbolKind] kind_id; ---- A variable. == Synopsis Declared in `<mrdocs/Metadata/Symbol/Variable.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- struct VariableSymbol final : link:#mrdocs-SymbolCommonBase-015[SymbolCommonBase<SymbolKind::Variable>] ---- == Base Classes [cols=2] |=== | Name | Description | `link:#mrdocs-SymbolCommonBase-015[SymbolCommonBase<SymbolKind::Variable>]` | Base class for providing variant discriminator functions. |=== == Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-VariableSymbol-2constructor[`VariableSymbol`] [.small]#[constructor]# | Construct from `SymbolID` | link:#mrdocs-VariableSymbol-operator_3way-09[`operator<=>`] | Three‐way comparison operators |=== == Static Member Functions [cols=1] |=== | Name | link:#mrdocs-VariableSymbol-isConcept[`isConcept`] | link:#mrdocs-VariableSymbol-isEnum[`isEnum`] | link:#mrdocs-VariableSymbol-isEnumConstant[`isEnumConstant`] | link:#mrdocs-VariableSymbol-isFunction[`isFunction`] | link:#mrdocs-VariableSymbol-isGuide[`isGuide`] | link:#mrdocs-VariableSymbol-isNamespace[`isNamespace`] | link:#mrdocs-VariableSymbol-isNamespaceAlias[`isNamespaceAlias`] | link:#mrdocs-VariableSymbol-isOverloads[`isOverloads`] | link:#mrdocs-VariableSymbol-isRecord[`isRecord`] | link:#mrdocs-VariableSymbol-isTypedef[`isTypedef`] | link:#mrdocs-VariableSymbol-isUsing[`isUsing`] | link:#mrdocs-VariableSymbol-isVariable[`isVariable`] |=== == Data Members [cols=2] |=== | Name | Description | link:#mrdocs-VariableSymbol-Attributes[`Attributes`] | | link:#mrdocs-VariableSymbol-BitfieldWidth[`BitfieldWidth`] | The width of the bitfield | link:#mrdocs-VariableSymbol-HasNoUniqueAddress[`HasNoUniqueAddress`] | | link:#mrdocs-VariableSymbol-Initializer[`Initializer`] | The default member initializer, if any. | link:#mrdocs-VariableSymbol-IsBitfield[`IsBitfield`] | Whether the field is a bitfield | link:#mrdocs-VariableSymbol-IsConstexpr[`IsConstexpr`] | | link:#mrdocs-VariableSymbol-IsConstinit[`IsConstinit`] | | link:#mrdocs-VariableSymbol-IsDeprecated[`IsDeprecated`] | | link:#mrdocs-VariableSymbol-IsInline[`IsInline`] | | link:#mrdocs-VariableSymbol-IsMaybeUnused[`IsMaybeUnused`] | | link:#mrdocs-VariableSymbol-IsMutable[`IsMutable`] | Whether the field is declared mutable | link:#mrdocs-VariableSymbol-IsRecordField[`IsRecordField`] | | link:#mrdocs-VariableSymbol-IsThreadLocal[`IsThreadLocal`] | | link:#mrdocs-VariableSymbol-IsVariant[`IsVariant`] | Whether the field is a variant member | link:#mrdocs-VariableSymbol-StorageClass[`StorageClass`] | | link:#mrdocs-VariableSymbol-Template[`Template`] | The template information, if any. | link:#mrdocs-VariableSymbol-Type[`Type`] | The type of the variable |=== == Static Data Members [cols=1] |=== | Name | link:#mrdocs-VariableSymbol-kind_id[`kind_id`] |=== == Non-Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-merge-00c[`merge`] | Merges two Symbol objects. |=== == Description This includes variables at namespace or record scope. Construct from `SymbolID` == Synopsis Declared in `<mrdocs/Metadata/Symbol/Variable.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- explicit VariableSymbol(link:#mrdocs-SymbolID[SymbolID] const& ID) noexcept; ---- == Parameters [cols=2] |=== | Name | Description | *ID* | The object to copy construct from |=== Three‐way comparison operators == Synopses Declared in `<mrdocs/Metadata/Symbol/Variable.hpp>` Three‐way comparison operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::strong_ordering link:#mrdocs-VariableSymbol-operator_3way-01[operator<=>](link:#mrdocs-VariableSymbol[VariableSymbol] const& other) const; ---- [.small]#link:#mrdocs-VariableSymbol-operator_3way-01[_» more..._]# Three‐way comparison operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- auto link:#mrdocs-VariableSymbol-operator_3way-0b[operator<=>](link:#mrdocs-SymbolCommonBase-015[SymbolCommonBase<mrdocs::SymbolKind::Variable>] const& rhs) const = default; ---- [.small]#link:#mrdocs-VariableSymbol-operator_3way-0b[_» more..._]# Three‐way comparison operator == Synopsis Declared in `<mrdocs/Metadata/Symbol/Variable.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::strong_ordering operator<=>(link:#mrdocs-VariableSymbol[VariableSymbol] const& other) const; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *other* | The right operand |=== Three‐way comparison operator == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- auto operator<=>(link:#mrdocs-SymbolCommonBase-015[SymbolCommonBase<mrdocs::SymbolKind::Variable>] const& rhs) const = default; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *rhs* | The right operand |=== == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isConcept() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isEnum() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isEnumConstant() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isFunction() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isGuide() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isNamespace() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isNamespaceAlias() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isOverloads() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isRecord() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isTypedef() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isUsing() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolNodes.inc>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool isVariable() noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/Variable.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::vector<std::string> Attributes; ---- The width of the bitfield == Synopsis Declared in `<mrdocs/Metadata/Symbol/Variable.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-ConstantExprInfo[ConstantExprInfo<uint64_t>] BitfieldWidth; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/Variable.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool HasNoUniqueAddress = false; ---- The default member initializer, if any. == Synopsis Declared in `<mrdocs/Metadata/Symbol/Variable.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-ExprInfo[ExprInfo] Initializer; ---- Whether the field is a bitfield == Synopsis Declared in `<mrdocs/Metadata/Symbol/Variable.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool IsBitfield = false; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/Variable.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool IsConstexpr = false; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/Variable.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool IsConstinit = false; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/Variable.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool IsDeprecated = false; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/Variable.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool IsInline = false; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/Variable.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool IsMaybeUnused = false; ---- Whether the field is declared mutable == Synopsis Declared in `<mrdocs/Metadata/Symbol/Variable.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool IsMutable = false; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/Variable.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool IsRecordField = false; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/Variable.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool IsThreadLocal = false; ---- Whether the field is a variant member == Synopsis Declared in `<mrdocs/Metadata/Symbol/Variable.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool IsVariant = false; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/Variable.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-StorageClassKind[StorageClassKind] StorageClass = StorageClassKind::None; ---- The template information, if any. == Synopsis Declared in `<mrdocs/Metadata/Symbol/Variable.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-Optional-03[Optional<TemplateInfo>] Template; ---- The type of the variable == Synopsis Declared in `<mrdocs/Metadata/Symbol/Variable.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-Polymorphic[Polymorphic<Type>] Type = Polymorphic<struct Type>(NamedType{}); ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static link:#mrdocs-SymbolKind[SymbolKind] kind_id; ---- A visitor for a type == Synopsis Declared in `<mrdocs/Support/Visitor.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< typename Base, typename Fn, typename... Args> class Visitor; ---- == Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-Visitor-2constructor[`Visitor`] [.small]#[constructor]# | Constructor | link:#mrdocs-Visitor-visit[`visit`] | Visit a derived type |=== == Description This class is used to implement the visitor pattern. It stores a reference to an object of type `Base`, and a function object `Fn` which is called with the derived type as the first argument, followed by `Args`. The visitor is constructed with the object to visit, the function object, and the arguments to pass to the function object. The method `visit` is a template which accepts a derived type of `Base`. It calls the function object with the derived type as the first argument, followed by the arguments passed to the constructor. == Template Parameters [cols=2] |=== | Name | Description | *Base* | The base type of the object | *Fn* | The function object type | *Args* | The argument types |=== Constructor == Synopsis Declared in `<mrdocs/Support/Visitor.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- Visitor( Base&& obj, Fn&& fn, Args...&&... args); ---- == Parameters [cols=2] |=== | Name | Description | *obj* | The object to visit | *fn* | The function object to call | *args* | The arguments to pass to the function object |=== Visit a derived type == Synopsis Declared in `<mrdocs/Support/Visitor.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<std::derived_from<std::remove_cvref_t<Base>> Derived> decltype(auto) visit(); ---- == Description This method calls the function object with the derived type as the first argument, followed by the arguments passed to the constructor. == Return Value The result of calling the function object == Template Parameters [cols=2] |=== | Name | Description | *Derived* | The derived type to visit |=== Enables recursive lambdas by passing a self‐reference as the first argument. == Synopsis Declared in `<mrdocs/ADT/Overload.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class F> class YCombinator; ---- == Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-YCombinator-2constructor[`YCombinator`] [.small]#[constructor]# | Constructs a YCombinator from the given callable. | link:#mrdocs-YCombinator-operator_call-0c[`operator()`] | Function call operators |=== == Non-Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-yCombinator[`yCombinator`] | Factory that creates a YCombinator from a callable. |=== == Description YCombinator stores a callable F and exposes operator() that forwards arguments to F, prepending a reference to *this so that F can recurse. Overloads are provided for &, const&, &&, const&& to preserve value category. auto fact = fn::yCombinator( []self, int n) ‐> long long { return n <= 1 ? 1 : n * self(n ‐ 1); }); auto r = fact(10); == Template Parameters [cols=2] |=== | Name | Description | *F* | The callable to wrap. |=== Constructs a YCombinator from the given callable. == Synopsis Declared in `<mrdocs/ADT/Overload.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr explicit YCombinator(F f) noexcept(std::is_nothrow_move_constructible_v<F>); ---- == Parameters [cols=2] |=== | Name | Description | *f* | The callable to store. |=== Function call operators == Synopses Declared in `<mrdocs/ADT/Overload.hpp>` Invokes the stored callable, passing *this as the first parameter. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class... Args> constexpr decltype(auto) link:#mrdocs-YCombinator-operator_call-0b[operator()](Args...&&... args) &; ---- [.small]#link:#mrdocs-YCombinator-operator_call-0b[_» more..._]# Const lvalue overload of operator(). [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class... Args> constexpr decltype(auto) link:#mrdocs-YCombinator-operator_call-0f[operator()](Args...&&... args) const &; ---- [.small]#link:#mrdocs-YCombinator-operator_call-0f[_» more..._]# Rvalue overload of operator(). [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class... Args> constexpr decltype(auto) link:#mrdocs-YCombinator-operator_call-00[operator()](Args...&&... args) &&; ---- [.small]#link:#mrdocs-YCombinator-operator_call-00[_» more..._]# Const rvalue overload of operator(). [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class... Args> constexpr decltype(auto) link:#mrdocs-YCombinator-operator_call-08[operator()](Args...&&... args) const &&; ---- [.small]#link:#mrdocs-YCombinator-operator_call-08[_» more..._]# == Return Value Whatever the callable returns. == Parameters [cols=2] |=== | Name | Description | *args* | The arguments to forward to the callable after the self reference. |=== Invokes the stored callable, passing *this as the first parameter. == Synopsis Declared in `<mrdocs/ADT/Overload.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class... Args> constexpr decltype(auto) operator()(Args...&&... args) &; ---- == Return Value Whatever the callable returns. == Parameters [cols=2] |=== | Name | Description | *args* | The arguments to forward to the callable after the self reference. |=== Const lvalue overload of operator(). == Synopsis Declared in `<mrdocs/ADT/Overload.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class... Args> constexpr decltype(auto) operator()(Args...&&... args) const &; ---- == Parameters [cols=2] |=== | Name | Description | *args* | The right operand |=== Rvalue overload of operator(). == Synopsis Declared in `<mrdocs/ADT/Overload.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class... Args> constexpr decltype(auto) operator()(Args...&&... args) &&; ---- == Parameters [cols=2] |=== | Name | Description | *args* | The right operand |=== Const rvalue overload of operator(). == Synopsis Declared in `<mrdocs/ADT/Overload.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class... Args> constexpr decltype(auto) operator()(Args...&&... args) const &&; ---- == Parameters [cols=2] |=== | Name | Description | *args* | The right operand |=== == Synopsis Declared in `<mrdocs/Support/TypeTraits.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< typename From, typename To> struct add_const_from : std::conditional<std::is_const_v<std::remove_reference_t<From>>, add_reference_from_t<To, std::remove_reference_t<To> const>, To> ---- == Base Classes [cols=2] |=== | Name | Description | `std::conditional<std::is_const_v<std::remove_reference_t<From>>, add_reference_from_t<To, std::remove_reference_t<To> const>, To>` | |=== == Derived Classes [cols=2] |=== | Name | Description | link:#mrdocs-add_cv_from[`add_cv_from`] | |=== == Synopsis Declared in `<mrdocs/Support/TypeTraits.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< typename From, typename To> struct add_cv_from : link:#mrdocs-add_const_from[add_const_from<From, add_volatile_from_t<From, To>>] ---- == Base Classes [cols=2] |=== | Name | Description | `link:#mrdocs-add_const_from[add_const_from<From, add_volatile_from_t<From, To>>]` | |=== == Synopsis Declared in `<mrdocs/Support/TypeTraits.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< typename From, typename To> struct add_cvref_from : link:#mrdocs-add_reference_from[add_reference_from<From, add_cv_from_t<From, To>>] ---- == Base Classes [cols=2] |=== | Name | Description | `link:#mrdocs-add_reference_from[add_reference_from<From, add_cv_from_t<From, To>>]` | |=== == Synopsis Declared in `<mrdocs/Support/TypeTraits.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< typename From, typename To> struct add_lvalue_reference_from : std::conditional<std::is_lvalue_reference_v<From>, std::add_lvalue_reference_t<To>, To> ---- == Base Classes [cols=2] |=== | Name | Description | `std::conditional<std::is_lvalue_reference_v<From>, std::add_lvalue_reference_t<To>, To>` | |=== == Derived Classes [cols=2] |=== | Name | Description | link:#mrdocs-add_reference_from[`add_reference_from`] | |=== == Synopsis Declared in `<mrdocs/Support/TypeTraits.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< typename From, typename To> struct add_reference_from : link:#mrdocs-add_lvalue_reference_from[add_lvalue_reference_from<From, add_rvalue_reference_from_t<From, To>>] ---- == Base Classes [cols=2] |=== | Name | Description | `link:#mrdocs-add_lvalue_reference_from[add_lvalue_reference_from<From, add_rvalue_reference_from_t<From, To>>]` | |=== == Derived Classes [cols=2] |=== | Name | Description | link:#mrdocs-add_cvref_from[`add_cvref_from`] | |=== == Synopsis Declared in `<mrdocs/Support/TypeTraits.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< typename From, typename To> struct add_rvalue_reference_from : std::conditional<std::is_rvalue_reference_v<From>, std::add_rvalue_reference_t<To>, To> ---- == Base Classes [cols=2] |=== | Name | Description | `std::conditional<std::is_rvalue_reference_v<From>, std::add_rvalue_reference_t<To>, To>` | |=== == Synopsis Declared in `<mrdocs/Support/TypeTraits.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< typename From, typename To> struct add_volatile_from : std::conditional<std::is_volatile_v<std::remove_reference_t<From>>, add_reference_from_t<To, std::remove_reference_t<To> volatile>, To> ---- == Base Classes [cols=2] |=== | Name | Description | `std::conditional<std::is_volatile_v<std::remove_reference_t<From>>, add_reference_from_t<To, std::remove_reference_t<To> volatile>, To>` | |=== A movable, type‐erased function object. == Synopsis Declared in `<mrdocs/Support/any_callable.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class> class any_callable; ---- == Description Usage: [,cpp] ---- any_callable f; ---- == Synopsis Declared in `<mrdocs/Support/any_callable.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< class R, class... Args> class link:#mrdocs-any_callable-01[any_callable]<R(Args...)>; ---- == Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-any_callable-0a-2constructor-06[`any_callable`] [.small]#[constructor]# [.small]#[deleted]# | Constructors | link:#mrdocs-any_callable-0a-operator_call[`operator()`] | |=== Constructors == Synopses Declared in `<mrdocs/Support/any_callable.hpp>` Default constructor [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-any_callable-0a-2constructor-0a[any_callable]() = delete; ---- [.small]#link:#mrdocs-any_callable-0a-2constructor-0a[_» more..._]# Construct from `Callable` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class Callable> requires std::is_invocable_r_v<R, Callable, Args...> link:#mrdocs-any_callable-0a-2constructor-05[any_callable](Callable&& f); ---- [.small]#link:#mrdocs-any_callable-0a-2constructor-05[_» more..._]# Default constructor == Synopsis Declared in `<mrdocs/Support/any_callable.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- any_callable() = delete; ---- Construct from `Callable` == Synopsis Declared in `<mrdocs/Support/any_callable.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class Callable> requires std::is_invocable_r_v<R, Callable, Args...> any_callable(Callable&& f); ---- == Parameters [cols=2] |=== | Name | Description | *f* | The object to move construct from |=== == Synopsis Declared in `<mrdocs/Support/any_callable.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- R operator()(Args...&&... args) const; ---- == Synopsis Declared in `<mrdocs/Support/TypeTraits.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< typename T, typename U> struct make_dependent; ---- == Types [cols=1] |=== | Name | link:#mrdocs-make_dependent-type[`type`] |=== == Synopsis Declared in `<mrdocs/Support/TypeTraits.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- using type = T; ---- nullable_traits<T> defines how to treat a T as “nullable” without an external engaged bit. == Synopsis Declared in `<mrdocs/ADT/Nullable.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class T> struct nullable_traits; ---- == Description This trait is the canonical place to encode nullability semantics used by any optional‐like type. It exposes the minimal operations needed by an optional: ‐ is_null(const T&): test if a value is null. ‐ null(): create a null value. ‐ make_null(T&): turn an existing value into null. Users may explicitly specialize nullable_traits for their types to define the desired semantics. nullable_traits specialization for Location. == Synopsis Declared in `<mrdocs/Metadata/Symbol/Location.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<> struct link:#mrdocs-nullable_traits-0b[nullable_traits]<link:#mrdocs-Location[Location]>; ---- == Static Member Functions [cols=1] |=== | Name | link:#mrdocs-nullable_traits-00-is_null[`is_null`] | link:#mrdocs-nullable_traits-00-make_null[`make_null`] | link:#mrdocs-nullable_traits-00-null[`null`] |=== == Description Semantics ‐ The “null” (sentinel) state is any Location whose ShortPath is empty. ‐ Creating a null value produces a Location with all fields defaulted and ShortPath empty. ‐ Making an existing value null clears ShortPath and resets the other fields to their defaults. Rationale ‐ This mirrors the old LocationEmptyPredicate, which treated an empty ShortPath as “empty/null.” == Synopsis Declared in `<mrdocs/Metadata/Symbol/Location.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool is_null(link:#mrdocs-Location[Location] const& v) noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/Location.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static void make_null(link:#mrdocs-Location[Location]& v) noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/Location.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static link:#mrdocs-Location[Location] null() noexcept; ---- nullable_traits for types with a sentinel. == Synopsis Declared in `<mrdocs/ADT/Nullable.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class T> requires (!HasSentinel<T> && ClearableContainerLike<T>) struct link:#mrdocs-nullable_traits-0b[nullable_traits]<T>; ---- == Static Member Functions [cols=1] |=== | Name | link:#mrdocs-nullable_traits-06-is_null[`is_null`] | link:#mrdocs-nullable_traits-06-make_null[`make_null`] | link:#mrdocs-nullable_traits-06-null[`null`] |=== == Description Delegates null handling to sentinel_traits<T>. nullable_traits for clearable empty types. Treats the empty state as null, creates null via default construction, and erases via clear(). == Synopsis Declared in `<mrdocs/ADT/Nullable.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool is_null(T const& v) noexcept(noexcept(v.empty())); ---- == Synopsis Declared in `<mrdocs/ADT/Nullable.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static void make_null(T& v) noexcept(noexcept(v.clear())); ---- == Synopsis Declared in `<mrdocs/ADT/Nullable.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static T null() noexcept(std::is_nothrow_default_constructible_v<T>); ---- nullable_traits for Polymorphic<T>. == Synopsis Declared in `<mrdocs/ADT/Polymorphic.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class T> struct link:#mrdocs-nullable_traits-0b[nullable_traits]<link:#mrdocs-Polymorphic[Polymorphic<T>]>; ---- == Static Member Functions [cols=1] |=== | Name | link:#mrdocs-nullable_traits-0c-is_null[`is_null`] | link:#mrdocs-nullable_traits-0c-make_null[`make_null`] | link:#mrdocs-nullable_traits-0c-null[`null`] |=== == Description Only this friend specialization can create/reset the null state. == Synopsis Declared in `<mrdocs/ADT/Polymorphic.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool is_null(link:#mrdocs-Polymorphic[Polymorphic<T>] const& v) noexcept; ---- == Synopsis Declared in `<mrdocs/ADT/Polymorphic.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static void make_null(link:#mrdocs-Polymorphic[Polymorphic<T>]& v) noexcept; ---- == Synopsis Declared in `<mrdocs/ADT/Polymorphic.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static link:#mrdocs-Polymorphic[Polymorphic<T>] null() noexcept; ---- Defines a customization point for types that have an intrinsic sentinel value denoting “null”. == Synopsis Declared in `<mrdocs/ADT/Nullable.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class T> struct sentinel_traits; ---- == Description Users may specialize this trait for their own types to declare a sentinel‐based null representation. When enabled, nullable semantics can be implemented in terms of the sentinel without storing a separate engaged/disengaged flag. Contract for specializations: ‐ Provide static constexpr T sentinel() noexcept; which returns the distinguished null value. ‐ Provide static constexpr bool is_sentinel(const T&) noexcept; which recognizes the null value. If a type does not have a well‐defined sentinel, leave the primary template in effect. Notes ‐ Built‐in pointer types and std::nullptr_t are pre‐specialized to use nullptr as the sentinel. sentinel_traits specialization for std::nullptr_t. == Synopsis Declared in `<mrdocs/ADT/Nullable.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<> struct link:#mrdocs-sentinel_traits-0a[sentinel_traits]<std::nullptr_t>; ---- == Static Member Functions [cols=1] |=== | Name | link:#mrdocs-sentinel_traits-03a-is_sentinel[`is_sentinel`] | link:#mrdocs-sentinel_traits-03a-sentinel[`sentinel`] |=== == Synopsis Declared in `<mrdocs/ADT/Nullable.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool is_sentinel(std::nullptr_t) noexcept; ---- == Synopsis Declared in `<mrdocs/ADT/Nullable.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static std::nullptr_t sentinel() noexcept; ---- sentinel_traits specialization for unsigned integral types. == Synopsis Declared in `<mrdocs/ADT/Nullable.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<std::floating_point T> requires std::is_enum_v<T> && (requires { T::unknown; } || requires { T::Unknown; } || requires { T::UNKNOWN; } || requires { T::none; } || requires { T::None; } || requires { T::NONE; }) struct link:#mrdocs-sentinel_traits-0a[sentinel_traits]<T>; ---- == Static Member Functions [cols=1] |=== | Name | link:#mrdocs-sentinel_traits-01-is_sentinel[`is_sentinel`] | link:#mrdocs-sentinel_traits-01-sentinel[`sentinel`] |=== == Description Uses the maximum representable value (~0u) as the sentinel, which corresponds to ‐1 when converted. sentinel_traits specialization for floating‐point types. Uses a quiet NaN as the sentinel value. This assumes that T supports NaN and that it is distinguishable from all ordinary values. sentinel_traits specialization for enums with a well‐known "null" enumerator. If the enum defines Unknown, UNKNOWN, None, or NONE, this trait uses that enumerator as the sentinel. This requires that such an enumerator exists and is accessible from the scope of T. == Synopsis Declared in `<mrdocs/ADT/Nullable.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool is_sentinel(T v) noexcept; ---- == Synopsis Declared in `<mrdocs/ADT/Nullable.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static T sentinel() noexcept; ---- sentinel_traits specialization for raw pointers. == Synopsis Declared in `<mrdocs/ADT/Nullable.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class T> struct link:#mrdocs-sentinel_traits-0a[sentinel_traits]<T*>; ---- == Static Member Functions [cols=1] |=== | Name | link:#mrdocs-sentinel_traits-03c-is_sentinel[`is_sentinel`] | link:#mrdocs-sentinel_traits-03c-sentinel[`sentinel`] |=== == Description Uses nullptr as the sentinel value. == Synopsis Declared in `<mrdocs/ADT/Nullable.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static bool is_sentinel(T const* p) noexcept; ---- == Synopsis Declared in `<mrdocs/ADT/Nullable.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr static T* sentinel() noexcept; ---- == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- struct unexpect_t; ---- == Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-unexpect_t-2constructor[`unexpect_t`] [.small]#[constructor]# | Default constructor |=== Default constructor == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr explicit unexpect_t() = default; ---- A scoped guard which unlocks a mutex. == Synopsis Declared in `<mrdocs/Support/unlock_guard.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- class unlock_guard; ---- == Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-unlock_guard-2constructor[`unlock_guard`] [.small]#[constructor]# | Constructor. | link:#mrdocs-unlock_guard-2destructor[`~unlock_guard`] [.small]#[destructor]# | Destructor. |=== Constructor. == Synopsis Declared in `<mrdocs/Support/unlock_guard.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- explicit unlock_guard(std::mutex& m); ---- == Parameters [cols=2] |=== | Name | Description | *m* | The object to copy construct from |=== Destructor. == Synopsis Declared in `<mrdocs/Support/unlock_guard.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- ~unlock_guard(); ---- Access specifier. == Synopsis Declared in `<mrdocs/Metadata/Specifiers/AccessKind.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- enum class AccessKind : int; ---- == Members [cols=2] |=== | Name | Description | `None` | Unspecified access | `Public` | Public access | `Protected` | Protected access | `Private` | Private access |=== == Description None is set to zero since it is the most frequently occurring access, and it is elided by the bitstream encoder because it has an all‐zero bit pattern. This improves compression in the bitstream. None is used for namespace members and friend; such declarations have no access. The kind of `auto` keyword used in a declaration. == Synopsis Declared in `<mrdocs/Metadata/Type/AutoKind.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- enum class AutoKind : int; ---- == Members [cols=2] |=== | Name | Description | `Auto` | The `auto` keyword | `DecltypeAuto` | The `decltype(auto)` keyword |=== == Description This is either `auto` or `decltype(auto)`. `constexpr`/`consteval` specifier kinds == Synopsis Declared in `<mrdocs/Metadata/Specifiers/ConstexprKind.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- enum class ConstexprKind : int; ---- == Members [cols=2] |=== | Name | Description | `None` | No `constexpr` or `consteval` specifier | `Constexpr` | The `constexpr` specifier | `Consteval` | The `consteval` specifier only valid for functions |=== == Description [dcl.spec.general]p2: At most one of the `constexpr`, `consteval`, and `constinit` keywords shall appear in a decl‐specifier‐seq Explicit specifier kinds == Synopsis Declared in `<mrdocs/Metadata/Specifiers/ExplicitKind.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- enum class ExplicitKind : int; ---- == Members [cols=2] |=== | Name | Description | `False` | No explicit‐specifier or explicit‐specifier evaluated to false | `True` | explicit‐specifier evaluates to true | `Dependent` | Dependent explicit‐specifier |=== Determine why a symbol is extracted == Synopsis Declared in `<mrdocs/Metadata/Symbol/ExtractionMode.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- enum class ExtractionMode : int; ---- == Members [cols=2] |=== | Name | Description | `Regular` | We're extracting the current symbol because it passes all filters. | `SeeBelow` | We're extracting the current symbol because it passes all filters, but we should also tag it as see‐below because it passes one of the see‐below filters. This symbol has its own page but it has no details and no child members. | `ImplementationDefined` | We're extracting the current symbol because it passes all filters, but we should also tag it as implementation‐defined because one of its parents matches the implementation‐defined filter. This symbol has no page and other symbols that depend on it will just render /_implementation‐defined_/. | `Dependency` | We're extracting the current symbol even though it doesn't pass all filters because it's a direct dependency of a symbol that does pass all filters and needs information about it (e.g.: base classes outside the filters). This symbol has no page and it might even deleted from the corpus if no other symbol depends on it after we extracted the information we wanted from it in post‐processing steps. |=== == Non-Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-leastSpecific[`leastSpecific`] | Compare ExtractionModes and returns the least specific | link:#mrdocs-mostSpecific[`mostSpecific`] | Compare ExtractionModes and returns the most specific | link:#mrdocs-toString-013[`toString`] | Return the name of the SymbolKind as a string. |=== == Description The enum constants are ordered by specificity, with the least specific at the beginning and the most specific at the end. == Synopsis Declared in `<mrdocs/Metadata/Symbol/FileKind.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- enum class FileKind : int; ---- == Members [cols=2] |=== | Name | Description | `Source` | File in the source directory | `System` | File in a system include directory | `Other` | File outside the source directory |=== Function classifications == Synopsis Declared in `<mrdocs/Metadata/Symbol/FunctionClass.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- enum class FunctionClass : int; ---- == Members [cols=2] |=== | Name | Description | `Normal` | The function is a normal function. | `Constructor` | The function is a constructor. | `Conversion` | The function is a conversion operator. | `Destructor` | The function is a destructor. |=== Categorically describes a fundamental type. == Synopsis Declared in `<mrdocs/Metadata/Type/FundamentalTypeKind.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- enum class FundamentalTypeKind : int; ---- == Members [cols=2] |=== | Name | Description | `Void` | void | `Nullptr` | std::nullptr_t | `Bool` | bool | `Char` | char | `SignedChar` | signed char | `UnsignedChar` | unsigned char | `Char8` | char8_t | `Char16` | char16_t | `Char32` | char32_t | `WChar` | wchar_t | `Short` | short / short int / signed short / signed short int | `UnsignedShort` | unsigned short / unsigned short int | `Int` | int / signed / signed int | `UnsignedInt` | unsigned / unsigned int | `Long` | long / long int / signed long / signed long int | `UnsignedLong` | unsigned long / unsigned long int | `LongLong` | long long / long long int / signed long long / signed long long int | `UnsignedLongLong` | unsigned long long / unsigned long long int | `Float` | float | `Double` | double | `LongDouble` | long double |=== == Non-Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-makeChar[`makeChar`] | Apply the "char" specifier to the type | link:#mrdocs-makeLong[`makeLong`] | Apply the "long" specifier to the type | link:#mrdocs-makeShort[`makeShort`] | Apply the "short" specifier to the type | link:#mrdocs-makeSigned[`makeSigned`] | Apply the "signed" specifier to the type | link:#mrdocs-makeUnsigned[`makeUnsigned`] | Apply the "unsigned" specifier to the type | link:#mrdocs-toString-0b[`toString`] | Convert a FundamentalTypeKind to a string. |=== == See Also https://en.cppreference.com/w/cpp/language/types == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/ListKind.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- enum class ListKind : int; ---- == Members [cols=1] |=== | Name | `Unordered` | `Ordered` |=== == Synopsis Declared in `<mrdocs/Metadata/Name/NameKind.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- enum class NameKind : int; ---- Exception specification kinds == Synopsis Declared in `<mrdocs/Metadata/Specifiers/NoexceptKind.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- enum class NoexceptKind : int; ---- == Members [cols=2] |=== | Name | Description | `False` | Potentially‐throwing exception specification | `True` | Non‐throwing exception specification | `Dependent` | Dependent exception specification |=== Operator kinds == Synopsis Declared in `<mrdocs/Metadata/Specifiers/OperatorKind.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- enum class OperatorKind : int; ---- == Members [cols=2] |=== | Name | Description | `None` | No operator | `New` | The `new` Operator | `Delete` | The `delete` Operator | `ArrayNew` | The `new[]` Operator | `ArrayDelete` | The `delete[]` Operator | `Plus` | The + Operator | `Minus` | The ‐ Operator | `Star` | The * Operator | `Slash` | The / Operator | `Percent` | The % Operator | `Caret` | The ˆ Operator | `Amp` | The & Operator | `Pipe` | The | Operator | `Tilde` | The ~ Operator | `Equal` | The ! Operator | `PlusEqual` | The += Operator | `MinusEqual` | The ‐= Operator | `StarEqual` | The *= Operator | `SlashEqual` | The /= Operator | `PercentEqual` | The %= Operator | `CaretEqual` | The ˆ= Operator | `AmpEqual` | The &= Operator | `PipeEqual` | The |= Operator | `LessLess` | The << Operator | `GreaterGreater` | The >> Operator | `LessLessEqual` | The <<= Operator | `GreaterGreaterEqual` | The >>= Operator | `Exclaim` | The ! Operator | `EqualEqual` | The == Operator | `ExclaimEqual` | The != Operator | `Less` | The < Operator | `LessEqual` | The <= Operator | `Greater` | The > Operator | `GreaterEqual` | The >= Operator | `Spaceship` | The <=> Operator | `AmpAmp` | The && Operator | `PipePipe` | The || Operator | `PlusPlus` | The ++ Operator | `MinusMinus` | The ‐‐ Operator | `Comma` | The , Operator | `ArrowStar` | The ‐>* Operator | `Arrow` | The ‐> Operator | `Call` | The () Operator | `Subscript` | The []Operator | `Conditional` | The `? :` Operator | `Coawait` | The `coawait` Operator |=== == Non-Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-getOperatorKind[`getOperatorKind`] | Return the short name of an operator as a string. | link:#mrdocs-getOperatorKindFromSuffix[`getOperatorKindFromSuffix`] | Return the short name of an operator as a string. | link:#mrdocs-getOperatorName[`getOperatorName`] | Return the name of an operator as a string. | link:#mrdocs-getOperatorReadableName[`getOperatorReadableName`] | Return the human‐readable name of the operator | link:#mrdocs-getSafeOperatorName[`getSafeOperatorName`] | Return the safe name of an operator as a string. | link:#mrdocs-getShortOperatorName[`getShortOperatorName`] | Return the short name of an operator as a string. | link:#mrdocs-isBinaryOperator[`isBinaryOperator`] | Determines whether the operator is potentially binary. | link:#mrdocs-isUnaryOperator[`isUnaryOperator`] | Determines whether the operator is potentially unary. |=== Type qualifiers == Synopsis Declared in `<mrdocs/Metadata/Type/QualifierKind.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- enum QualifierKind; ---- == Members [cols=2] |=== | Name | Description | `None` | No qualifiers | `Const` | The const qualifier | `Volatile` | The volatile qualifier |=== The kind of record: struct, class, or union. == Synopsis Declared in `<mrdocs/Metadata/Symbol/RecordKeyKind.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- enum class RecordKeyKind : int; ---- == Members [cols=2] |=== | Name | Description | `Struct` | A struct. | `Class` | A C++ class. | `Union` | A C‐style Union |=== Reference type kinds == Synopsis Declared in `<mrdocs/Metadata/Specifiers/ReferenceKind.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- enum class ReferenceKind : int; ---- == Members [cols=2] |=== | Name | Description | `None` | Not a reference | `LValue` | An L‐Value reference | `RValue` | An R‐Value reference |=== Storage class kinds == Synopsis Declared in `<mrdocs/Metadata/Specifiers/StorageClassKind.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- enum class StorageClassKind : int; ---- == Members [cols=2] |=== | Name | Description | `None` | No storage class specifier | `Extern` | thread_local storage‐class‐specifier | `Static` | mutable storage‐class‐specifier | `Auto` | auto storage‐class‐specifier (removed in C++11) only valid for variables | `Register` | register storage‐class‐specifier (removed in C++17) only valid for variables |=== == Description [dcl.stc]p1: At most one storage‐class‐specifier shall appear in a given decl‐specifier‐seq, except that `thread_local` may appear with `static` or `extern`. Info variant discriminator == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolKind.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- enum class SymbolKind : int; ---- == Members [cols=2] |=== | Name | Description | `None` | Kind is not specified. |=== == Non-Member Functions [cols=2] |=== | Name | Description | link:#mrdocs-toString-041[`toString`] | Return the name of the SymbolKind as a string. |=== The kind of template argument. == Synopsis Declared in `<mrdocs/Metadata/TArg/TArgKind.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- enum class TArgKind : int; ---- The keyword a template parameter was declared with == Synopsis Declared in `<mrdocs/Metadata/TParam/TParamKeyKind.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- enum class TParamKeyKind : int; ---- == Members [cols=2] |=== | Name | Description | `Class` | Class keyword | `Typename` | Typename keyword |=== == Synopsis Declared in `<mrdocs/Metadata/TParam/TParamKind.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- enum class TParamKind : int; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/TableAlignmentKind.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- enum class TableAlignmentKind : int; ---- == Members [cols=1] |=== | Name | `None` | `Left` | `Center` | `Right` |=== The kind of template or specialization. == Synopsis Declared in `<mrdocs/Metadata/Template.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- enum class TemplateSpecKind : int; ---- == Members [cols=2] |=== | Name | Description | `Primary` | Primary template | `Explicit` | Full template specialization | `Partial` | Partial template specialization |=== == Synopsis Declared in `<mrdocs/Metadata/Type/TypeKind.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- enum class TypeKind : int; ---- The class of using declaration. == Synopsis Declared in `<mrdocs/Metadata/Symbol/Using.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- enum class UsingClass : int; ---- == Members [cols=2] |=== | Name | Description | `Normal` | Using declaration class. | `Typename` | Using typename declaration class. | `Enum` | Using enum declaration class. |=== == Description This indicates whether the using declaration is a normal `using`, a `using typename`, or a `using enum`. Compares two polymorphic objects that have visit functions == Synopses Declared in `<mrdocs/ADT/Polymorphic.hpp>` Compares two polymorphic objects that have visit functions [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class Base> requires (!detail::IsPolymorphic<Base>) && detail::CanVisitCompare<Base> auto link:#mrdocs-CompareDerived-0c[CompareDerived]( Base const& lhs, Base const& rhs); ---- [.small]#link:#mrdocs-CompareDerived-0c[_» more..._]# Compares two polymorphic objects that have visit functions [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class Base> requires detail::CanVisitCompare<Base> auto link:#mrdocs-CompareDerived-06[CompareDerived]( link:#mrdocs-Polymorphic[Polymorphic<Base>] const& lhs, link:#mrdocs-Polymorphic[Polymorphic<Base>] const& rhs); ---- [.small]#link:#mrdocs-CompareDerived-06[_» more..._]# == Return Value true if the two Polymorphic objects are equal, otherwise false. == Template Parameters [cols=2] |=== | Name | Description | *Base* | The type of the Polymorphic. |=== == Parameters [cols=2] |=== | Name | Description | *lhs* | The first Polymorphic to compare. | *rhs* | The second Polymorphic to compare. |=== Compares two polymorphic objects that have visit functions == Synopsis Declared in `<mrdocs/ADT/Polymorphic.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class Base> requires (!detail::IsPolymorphic<Base>) && detail::CanVisitCompare<Base> auto CompareDerived( Base const& lhs, Base const& rhs); ---- == Description This function compares two Polymorphic objects that have visit functions for the Base type. The visit function is used to compare the two objects if they are of the same derived type. If the two objects are of different derived types, the comparison is based on the type_info of the derived types. If any of the objects is empty, the comparison is based on the emptiness of the objects. == Return Value true if the two Polymorphic objects are equal, otherwise false. == Template Parameters [cols=2] |=== | Name | Description | *Base* | The type of the Polymorphic. |=== == Parameters [cols=2] |=== | Name | Description | *lhs* | The first Polymorphic to compare. | *rhs* | The second Polymorphic to compare. |=== Compares two polymorphic objects that have visit functions == Synopsis Declared in `<mrdocs/ADT/Polymorphic.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class Base> requires detail::CanVisitCompare<Base> auto CompareDerived( link:#mrdocs-Polymorphic[Polymorphic<Base>] const& lhs, link:#mrdocs-Polymorphic[Polymorphic<Base>] const& rhs); ---- == Description This function compares two Polymorphic objects that have visit functions for the Base type. The visit function is used to compare the two objects if they are of the same derived type. If the two objects are of different derived types, the comparison is based on the type_info of the derived types. If any of the objects is empty, the comparison is based on the emptiness of the objects. == Return Value true if the two Polymorphic objects are equal, otherwise false. == Template Parameters [cols=2] |=== | Name | Description | *Base* | The type of the Polymorphic. |=== == Parameters [cols=2] |=== | Name | Description | *lhs* | The first Polymorphic to compare. | *rhs* | The second Polymorphic to compare. |=== `HTMLEscape` overloads == Synopses Declared in `<mrdocs/Support/Handlebars.hpp>` HTML escapes the specified string. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::string link:#mrdocs-HTMLEscape-03[HTMLEscape](std::string_view str); ---- [.small]#link:#mrdocs-HTMLEscape-03[_» more..._]# HTML escapes the specified string [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void link:#mrdocs-HTMLEscape-09[HTMLEscape]( link:#mrdocs-OutputRef[OutputRef]& out, std::string_view str); ---- [.small]#link:#mrdocs-HTMLEscape-09[_» more..._]# == Return Value The escaped string. == Parameters [cols=2] |=== | Name | Description | *str* | The string to escape. | *out* | The output stream reference where the escaped string will be written. |=== == See Also https://github.com/handlebars‐lang/handlebars.js/blob/master/lib/handlebars/utils.js HTML escapes the specified string. == Synopsis Declared in `<mrdocs/Support/Handlebars.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::string HTMLEscape(std::string_view str); ---- == Description This function HTML escapes the specified string, making it safe for rendering as text within HTML content. Replaces `&`, `<`, `>`, `"`, `'`, ```, `=` with the HTML entity equivalent value for string values. The output of all expressions except for triple‐braced expressions are passed through this method. Helpers should also use this method when returning HTML content via a SafeString instance, to prevent possible code injection. Helper values created by the SafeString function are left untouched by the template and are not passed through this function. == Return Value The escaped string. == Parameters [cols=2] |=== | Name | Description | *str* | The string to escape. |=== HTML escapes the specified string == Synopsis Declared in `<mrdocs/Support/Handlebars.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void HTMLEscape( link:#mrdocs-OutputRef[OutputRef]& out, std::string_view str); ---- == Description This function HTML escapes the specified string, making it safe for rendering as text within HTML content. Replaces `&`, `<`, `>`, `"`, `'`, ```, `=` with the HTML entity equivalent value for string values. The output of all expressions except for triple‐braced expressions are passed through this method. Helpers should also use this method when returning HTML content via a SafeString instance, to prevent possible code injection. Helper values created by the SafeString function are left untouched by the template and are not passed through this function. This function has the same behavior as the corresponding utility function in the Handlebars.js library. == Parameters [cols=2] |=== | Name | Description | *out* | The output stream reference where the escaped string will be written. | *str* | The string to escape. |=== == See Also https://github.com/handlebars‐lang/handlebars.js/blob/master/lib/handlebars/utils.js == Synopsis Declared in `<mrdocs/Metadata/Symbol/Overloads.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void addMember( link:#mrdocs-OverloadsSymbol[OverloadsSymbol]& I, link:#mrdocs-FunctionSymbol[FunctionSymbol] const& Member); ---- == Synopses Declared in `<mrdocs/Metadata/Symbol/Enum.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- auto& link:#mrdocs-allMembers-06[allMembers](link:#mrdocs-EnumSymbol[EnumSymbol] const& T); ---- [.small]#link:#mrdocs-allMembers-06[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- auto link:#mrdocs-allMembers-0c[allMembers](link:#mrdocs-NamespaceSymbol[NamespaceSymbol] const& T); ---- [.small]#link:#mrdocs-allMembers-0c[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- auto link:#mrdocs-allMembers-00[allMembers](link:#mrdocs-NamespaceTranche[NamespaceTranche] const& T); ---- [.small]#link:#mrdocs-allMembers-00[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- auto& link:#mrdocs-allMembers-04[allMembers](link:#mrdocs-OverloadsSymbol[OverloadsSymbol] const& T); ---- [.small]#link:#mrdocs-allMembers-04[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- auto link:#mrdocs-allMembers-0e2[allMembers](link:#mrdocs-RecordInterface[RecordInterface] const& T); ---- [.small]#link:#mrdocs-allMembers-0e2[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- auto link:#mrdocs-allMembers-0d[allMembers](link:#mrdocs-RecordSymbol[RecordSymbol] const& T); ---- [.small]#link:#mrdocs-allMembers-0d[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- auto link:#mrdocs-allMembers-0e7[allMembers](link:#mrdocs-RecordTranche[RecordTranche] const& T); ---- [.small]#link:#mrdocs-allMembers-0e7[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- auto& link:#mrdocs-allMembers-0f[allMembers](link:#mrdocs-UsingSymbol[UsingSymbol] const& T); ---- [.small]#link:#mrdocs-allMembers-0f[_» more..._]# == Synopsis Declared in `<mrdocs/Metadata/Symbol/Enum.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- auto& allMembers(link:#mrdocs-EnumSymbol[EnumSymbol] const& T); ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/Namespace.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- auto allMembers(link:#mrdocs-NamespaceSymbol[NamespaceSymbol] const& T); ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/Namespace.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- auto allMembers(link:#mrdocs-NamespaceTranche[NamespaceTranche] const& T); ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/Overloads.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- auto& allMembers(link:#mrdocs-OverloadsSymbol[OverloadsSymbol] const& T); ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/RecordInterface.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- auto allMembers(link:#mrdocs-RecordInterface[RecordInterface] const& T); ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/Record.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- auto allMembers(link:#mrdocs-RecordSymbol[RecordSymbol] const& T); ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/RecordTranche.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- auto allMembers(link:#mrdocs-RecordTranche[RecordTranche] const& T); ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/Using.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- auto& allMembers(link:#mrdocs-UsingSymbol[UsingSymbol] const& T); ---- == Synopsis Declared in `<mrdocs/Support/Assert.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void assert_failed( char const* msg, char const* file, uint_least32_t line); ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< link:#mrdocs-DocCommentNodeTraversable[DocCommentNodeTraversable] T, class F> void bottomUpTraverse( T& node, F&& func); ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool canMerge( link:#mrdocs-Symbol[Symbol] const& I, link:#mrdocs-Symbol[Symbol] const& Other); ---- == Synopses Declared in `<mrdocs/ADT/Polymorphic.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< class To, class From> requires ( std::derived_from<std::remove_cvref_t<To>, std::remove_cvref_t<From>> ) [[nodiscard]] std::remove_reference_t<To>& link:#mrdocs-cast-08[cast](link:#mrdocs-Polymorphic[Polymorphic<From>]& p); ---- [.small]#link:#mrdocs-cast-08[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< class To, class From> requires ( std::derived_from<std::remove_cvref_t<To>, std::remove_cvref_t<From>> ) [[nodiscard]] std::remove_reference_t<To> const& link:#mrdocs-cast-020[cast](link:#mrdocs-Polymorphic[Polymorphic<From>] const& p); ---- [.small]#link:#mrdocs-cast-020[_» more..._]# == Synopsis Declared in `<mrdocs/ADT/Polymorphic.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< class To, class From> requires ( std::derived_from<std::remove_cvref_t<To>, std::remove_cvref_t<From>> ) [[nodiscard]] std::remove_reference_t<To>& cast(link:#mrdocs-Polymorphic[Polymorphic<From>]& p); ---- == Synopsis Declared in `<mrdocs/ADT/Polymorphic.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< class To, class From> requires ( std::derived_from<std::remove_cvref_t<To>, std::remove_cvref_t<From>> ) [[nodiscard]] std::remove_reference_t<To> const& cast(link:#mrdocs-Polymorphic[Polymorphic<From>] const& p); ---- == Synopses Declared in `<mrdocs/ADT/Polymorphic.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< class To, class From> requires ( std::derived_from<std::remove_cvref_t<To>, std::remove_cvref_t<From>> ) [[nodiscard]] std::add_pointer_t<std::remove_reference_t<To>> link:#mrdocs-cast_or_null-07[cast_or_null](link:#mrdocs-Polymorphic[Polymorphic<From>]* pp); ---- [.small]#link:#mrdocs-cast_or_null-07[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< class To, class From> requires ( std::derived_from<std::remove_cvref_t<To>, std::remove_cvref_t<From>> ) [[nodiscard]] std::add_pointer_t<std::remove_reference_t<To> const> link:#mrdocs-cast_or_null-0b[cast_or_null](link:#mrdocs-Polymorphic[Polymorphic<From>] const* pp); ---- [.small]#link:#mrdocs-cast_or_null-0b[_» more..._]# == Synopsis Declared in `<mrdocs/ADT/Polymorphic.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< class To, class From> requires ( std::derived_from<std::remove_cvref_t<To>, std::remove_cvref_t<From>> ) [[nodiscard]] std::add_pointer_t<std::remove_reference_t<To>> cast_or_null(link:#mrdocs-Polymorphic[Polymorphic<From>]* pp); ---- == Synopsis Declared in `<mrdocs/ADT/Polymorphic.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< class To, class From> requires ( std::derived_from<std::remove_cvref_t<To>, std::remove_cvref_t<From>> ) [[nodiscard]] std::add_pointer_t<std::remove_reference_t<To> const> cast_or_null(link:#mrdocs-Polymorphic[Polymorphic<From>] const* pp); ---- Return the result of comparing s0 to s1. == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolID.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::strong_ordering compareSymbolNames( std::string_view symbolName0, std::string_view symbolName1) noexcept; ---- == Description This function returns true if the string s0 is less than the string s1. The comparison is first made without regard to case, unless the strings compare equal and then they are compared with lowercase letters coming before uppercase letters. == Return Value The result of the comparison. == Parameters [cols=2] |=== | Name | Description | *symbolName0* | The first symbol name to compare. | *symbolName1* | The second symbol name to compare. |=== Determine if a range contains a specific element. == Synopses Declared in `<mrdocs/Support/Algorithm.hpp>` Determine if a range contains a specific element. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< class T, class U> requires std::equality_comparable_with<T, U> bool link:#mrdocs-contains-0f[contains]( std::initializer_list<T> const& range, U const& el); ---- [.small]#link:#mrdocs-contains-0f[_» more..._]# Determine if a range contains a specific element. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< std::ranges::range Range, class El> requires std::equality_comparable_with<El, std::ranges::range_value_t<Range>> bool link:#mrdocs-contains-0c[contains]( Range&& range, El const& el); ---- [.small]#link:#mrdocs-contains-0c[_» more..._]# == Return Value True if the element is found, false otherwise. == Parameters [cols=2] |=== | Name | Description | *range* | The range to search. | *el* | The element to search for. |=== Determine if a range contains a specific element. == Synopsis Declared in `<mrdocs/Support/Algorithm.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< class T, class U> requires std::equality_comparable_with<T, U> bool contains( std::initializer_list<T> const& range, U const& el); ---- == Return Value True if the element is found, false otherwise. == Parameters [cols=2] |=== | Name | Description | *range* | The range to search. | *el* | The element to search for. |=== Determine if a range contains a specific element. == Synopsis Declared in `<mrdocs/Support/Algorithm.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< std::ranges::range Range, class El> requires std::equality_comparable_with<El, std::ranges::range_value_t<Range>> bool contains( Range&& range, El const& el); ---- == Return Value True if the element is found, false otherwise. == Parameters [cols=2] |=== | Name | Description | *range* | The range to search. | *el* | The element to search for. |=== Determine if a range contains any of the specified elements. == Synopses Declared in `<mrdocs/Support/Algorithm.hpp>` Determine if a range contains any of the specified elements. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< std::ranges::range Range, std::ranges::range Els> requires std::equality_comparable_with<std::ranges::range_value_t<Els>, std::ranges::range_value_t<Range>> bool link:#mrdocs-contains_any-06[contains_any]( Range const& range, Els const& els); ---- [.small]#link:#mrdocs-contains_any-06[_» more..._]# Determine if a range contains any of the specified elements. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< std::ranges::range Range, class El> requires std::equality_comparable_with<El, std::ranges::range_value_t<Range>> bool link:#mrdocs-contains_any-0a[contains_any]( Range const& range, std::initializer_list<El> const& els); ---- [.small]#link:#mrdocs-contains_any-0a[_» more..._]# == Return Value True if any of the elements are found, false otherwise. == Parameters [cols=2] |=== | Name | Description | *range* | The range to search. | *els* | The elements to search for. |=== Determine if a range contains any of the specified elements. == Synopsis Declared in `<mrdocs/Support/Algorithm.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< std::ranges::range Range, std::ranges::range Els> requires std::equality_comparable_with<std::ranges::range_value_t<Els>, std::ranges::range_value_t<Range>> bool contains_any( Range const& range, Els const& els); ---- == Return Value True if any of the elements are found, false otherwise. == Parameters [cols=2] |=== | Name | Description | *range* | The range to search. | *els* | The elements to search for. |=== Determine if a range contains any of the specified elements. == Synopsis Declared in `<mrdocs/Support/Algorithm.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< std::ranges::range Range, class El> requires std::equality_comparable_with<El, std::ranges::range_value_t<Range>> bool contains_any( Range const& range, std::initializer_list<El> const& els); ---- == Return Value True if any of the elements are found, false otherwise. == Parameters [cols=2] |=== | Name | Description | *range* | The range to search. | *els* | The elements to search for. |=== Determine if a range contains at least N instances of the specified element. == Synopsis Declared in `<mrdocs/Support/Algorithm.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< std::ranges::range Range, class El> requires std::equality_comparable_with<El, std::ranges::range_value_t<Range>> bool contains_n( Range const& range, El const& el, std::size_t n); ---- == Return Value True if the element is found, false otherwise. == Parameters [cols=2] |=== | Name | Description | *range* | The range to search. | *el* | The element to search for. | *n* | The number of instances to search for. |=== Determine if a range contains at least N instances of any of the specified elements. == Synopses Declared in `<mrdocs/Support/Algorithm.hpp>` Determine if a range contains at least N instances of any of the specified elements. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< std::ranges::range Range, std::ranges::range Els> requires std::equality_comparable_with<std::ranges::range_value_t<Els>, std::ranges::range_value_t<Range>> bool link:#mrdocs-contains_n_any-01[contains_n_any]( Range const& range, Els const& els, std::size_t n); ---- [.small]#link:#mrdocs-contains_n_any-01[_» more..._]# Determine if a range contains at least N instances of any of the specified elements. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< std::ranges::range Range, class El> requires std::equality_comparable_with<El, std::ranges::range_value_t<Range>> bool link:#mrdocs-contains_n_any-0d[contains_n_any]( Range const& range, std::initializer_list<El> const& els, std::size_t n); ---- [.small]#link:#mrdocs-contains_n_any-0d[_» more..._]# == Return Value True if the element is found, false otherwise. == Parameters [cols=2] |=== | Name | Description | *range* | The range to search. | *els* | The elements to search for. | *n* | The number of instances to search for. |=== Determine if a range contains at least N instances of any of the specified elements. == Synopsis Declared in `<mrdocs/Support/Algorithm.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< std::ranges::range Range, std::ranges::range Els> requires std::equality_comparable_with<std::ranges::range_value_t<Els>, std::ranges::range_value_t<Range>> bool contains_n_any( Range const& range, Els const& els, std::size_t n); ---- == Return Value True if the element is found, false otherwise. == Parameters [cols=2] |=== | Name | Description | *range* | The range to search. | *els* | The elements to search for. | *n* | The number of instances to search for. |=== Determine if a range contains at least N instances of any of the specified elements. == Synopsis Declared in `<mrdocs/Support/Algorithm.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< std::ranges::range Range, class El> requires std::equality_comparable_with<El, std::ranges::range_value_t<Range>> bool contains_n_any( Range const& range, std::initializer_list<El> const& els, std::size_t n); ---- == Return Value True if the element is found, false otherwise. == Parameters [cols=2] |=== | Name | Description | *range* | The range to search. | *els* | The elements to search for. | *n* | The number of instances to search for. |=== == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolKind.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- consteval std::underlying_type_t<SymbolKind> countSymbolKind(); ---- Create child data objects. == Synopses Declared in `<mrdocs/Support/Handlebars.hpp>` Create child data objects. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-dom-Object[dom::Object] link:#mrdocs-createFrame-04[createFrame](link:#mrdocs-dom-Object[dom::Object] const& parent); ---- [.small]#link:#mrdocs-createFrame-04[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-dom-Object[dom::Object] link:#mrdocs-createFrame-0b[createFrame](link:#mrdocs-dom-Value[dom::Value] const& parent); ---- [.small]#link:#mrdocs-createFrame-0b[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-dom-Object[dom::Object] link:#mrdocs-createFrame-0f[createFrame]( link:#mrdocs-dom-Object[dom::Object] const& child, link:#mrdocs-dom-Object[dom::Object] const& parent); ---- [.small]#link:#mrdocs-createFrame-0f[_» more..._]# == Return Value The overlay object == Parameters [cols=2] |=== | Name | Description | *parent* | The underlying frame object |=== == See Also https://mustache.github.io/mustache.5.html#Sections Create child data objects. == Synopsis Declared in `<mrdocs/Support/Handlebars.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-dom-Object[dom::Object] createFrame(link:#mrdocs-dom-Object[dom::Object] const& parent); ---- == Description This function can be used by block helpers to create child data objects. The child data object is an overlay frame object implementation that will first look for a value in the child object and if not found will look in the parent object. Helpers that modify the data state should create a new frame object when doing so, to isolate themselves and avoid corrupting the state of any parents. Generally, only one frame needs to be created per helper execution. For example, the each iterator creates a single frame which is reused for all child execution. == Return Value The overlay object == Parameters [cols=2] |=== | Name | Description | *parent* | The underlying frame object |=== == See Also https://mustache.github.io/mustache.5.html#Sections == Synopsis Declared in `<mrdocs/Support/Handlebars.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-dom-Object[dom::Object] createFrame(link:#mrdocs-dom-Value[dom::Value] const& parent); ---- == Synopsis Declared in `<mrdocs/Support/Handlebars.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-dom-Object[dom::Object] createFrame( link:#mrdocs-dom-Object[dom::Object] const& child, link:#mrdocs-dom-Object[dom::Object] const& parent); ---- == Synopses Declared in `<mrdocs/ADT/Polymorphic.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< class To, class From> requires ( std::derived_from<std::remove_cvref_t<To>, std::remove_cvref_t<From>> ) [[nodiscard]] std::add_pointer_t<std::remove_reference_t<To>> link:#mrdocs-dyn_cast-0b[dyn_cast](link:#mrdocs-Polymorphic[Polymorphic<From>]& p) noexcept; ---- [.small]#link:#mrdocs-dyn_cast-0b[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< class To, class From> requires ( std::derived_from<std::remove_cvref_t<To>, std::remove_cvref_t<From>> ) [[nodiscard]] std::add_pointer_t<std::remove_reference_t<To> const> link:#mrdocs-dyn_cast-0f[dyn_cast](link:#mrdocs-Polymorphic[Polymorphic<From>] const& p) noexcept; ---- [.small]#link:#mrdocs-dyn_cast-0f[_» more..._]# == Synopsis Declared in `<mrdocs/ADT/Polymorphic.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< class To, class From> requires ( std::derived_from<std::remove_cvref_t<To>, std::remove_cvref_t<From>> ) [[nodiscard]] std::add_pointer_t<std::remove_reference_t<To>> dyn_cast(link:#mrdocs-Polymorphic[Polymorphic<From>]& p) noexcept; ---- == Synopsis Declared in `<mrdocs/ADT/Polymorphic.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< class To, class From> requires ( std::derived_from<std::remove_cvref_t<To>, std::remove_cvref_t<From>> ) [[nodiscard]] std::add_pointer_t<std::remove_reference_t<To> const> dyn_cast(link:#mrdocs-Polymorphic[Polymorphic<From>] const& p) noexcept; ---- == Synopses Declared in `<mrdocs/ADT/Polymorphic.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< class To, class From> requires ( std::derived_from<std::remove_cvref_t<To>, std::remove_cvref_t<From>> ) [[nodiscard]] std::add_pointer_t<std::remove_reference_t<To>> link:#mrdocs-dyn_cast_or_null-04[dyn_cast_or_null](link:#mrdocs-Polymorphic[Polymorphic<From>]* pp) noexcept; ---- [.small]#link:#mrdocs-dyn_cast_or_null-04[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< class To, class From> requires ( std::derived_from<std::remove_cvref_t<To>, std::remove_cvref_t<From>> ) [[nodiscard]] std::add_pointer_t<std::remove_reference_t<To> const> link:#mrdocs-dyn_cast_or_null-08[dyn_cast_or_null](link:#mrdocs-Polymorphic[Polymorphic<From>] const* pp) noexcept; ---- [.small]#link:#mrdocs-dyn_cast_or_null-08[_» more..._]# == Synopsis Declared in `<mrdocs/ADT/Polymorphic.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< class To, class From> requires ( std::derived_from<std::remove_cvref_t<To>, std::remove_cvref_t<From>> ) [[nodiscard]] std::add_pointer_t<std::remove_reference_t<To>> dyn_cast_or_null(link:#mrdocs-Polymorphic[Polymorphic<From>]* pp) noexcept; ---- == Synopsis Declared in `<mrdocs/ADT/Polymorphic.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< class To, class From> requires ( std::derived_from<std::remove_cvref_t<To>, std::remove_cvref_t<From>> ) [[nodiscard]] std::add_pointer_t<std::remove_reference_t<To> const> dyn_cast_or_null(link:#mrdocs-Polymorphic[Polymorphic<From>] const* pp) noexcept; ---- Determine if a string ends with one of the specified characters == Synopsis Declared in `<mrdocs/Support/String.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr bool endsWithOneOf( std::string_view s, std::string_view chars) noexcept; ---- == Return Value if a string ends with one of the specified characters == Parameters [cols=2] |=== | Name | Description | *s* | The string to check. | *chars* | The characters to check for. |=== == Synopsis Declared in `<mrdocs/Support/Handlebars.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void escapeExpression( link:#mrdocs-OutputRef[OutputRef] out, std::string_view str, link:#mrdocs-HandlebarsOptions[HandlebarsOptions] const& opt); ---- Find the last element in a range that matches an element in the specified range. == Synopsis Declared in `<mrdocs/Support/Algorithm.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< std::ranges::range Range, std::ranges::range Els> requires std::equality_comparable_with<std::ranges::range_value_t<Els>, std::ranges::range_value_t<Range>> auto find_last_of( Range&& range, Els&& els); ---- == Return Value An iterator to the last element found, or std::ranges::end(range) if not found. == Parameters [cols=2] |=== | Name | Description | *range* | The range to search. | *els* | The elements to search for. |=== `forEachFile` overloads == Synopses Declared in `<mrdocs/Support/Path.hpp>` Call a function for each file in a directory. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-Expected-0a[Expected<void>] link:#mrdocs-forEachFile-0c[forEachFile]( std::string_view dirPath, bool recursive, link:#mrdocs-AnyFileVisitor[AnyFileVisitor]& visitor); ---- [.small]#link:#mrdocs-forEachFile-0c[_» more..._]# Visit each file in a directory. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class Visitor> link:#mrdocs-Expected-0a[Expected<void>] link:#mrdocs-forEachFile-0d[forEachFile]( std::string_view dirPath, bool recursive, Visitor&& visitor); ---- [.small]#link:#mrdocs-forEachFile-0d[_» more..._]# == Return Value An error if any occurred. == Parameters [cols=2] |=== | Name | Description | *dirPath* | The path to the directory. | *recursive* | If true, files in subdirectories are also visited, recursively. | *visitor* | The visitor to invoke for each file. |=== Call a function for each file in a directory. == Synopsis Declared in `<mrdocs/Support/Path.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-Expected-0a[Expected<void>] forEachFile( std::string_view dirPath, bool recursive, link:#mrdocs-AnyFileVisitor[AnyFileVisitor]& visitor); ---- == Description This will iterate all the regular files in a directory and invoke the visitor with the path. == Return Value An error if any occurred. == Parameters [cols=2] |=== | Name | Description | *dirPath* | The path to the directory. | *recursive* | If true, files in subdirectories are also visited, recursively. | *visitor* | The visitor to invoke for each file. |=== Visit each file in a directory. == Synopsis Declared in `<mrdocs/Support/Path.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class Visitor> link:#mrdocs-Expected-0a[Expected<void>] forEachFile( std::string_view dirPath, bool recursive, Visitor&& visitor); ---- == Return Value An error if any occurred. == Parameters [cols=2] |=== | Name | Description | *dirPath* | The path to the directory. | *recursive* | If true, files in subdirectories are also visited, recursively. | *visitor* | A callable object which is invoked for each file. This visitor might return `void` or `Expected<void>`. |=== Return a formatted error. == Synopsis Declared in `<mrdocs/Support/Error.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class... Args> link:#mrdocs-Error[Error] formatError( link:#mrdocs-FormatString[FormatString<Args...>] fs, Args...&&... args); ---- == Return Value a formatted error. == Parameters [cols=2] |=== | Name | Description | *fs* | The format string. This must not be empty. | *args* | Zero or more values to substitute into the format string. |=== Convert a string to a FundamentalTypeKind. == Synopsis Declared in `<mrdocs/Metadata/Type/FundamentalTypeKind.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool fromString( std::string_view str, link:#mrdocs-FundamentalTypeKind[FundamentalTypeKind]& kind) noexcept; ---- == Description This function converts a string to a FundamentalTypeKind. All variations of the type specifiers are supported. However, the "long long" specifier cannot be split into two separate specifiers. == Return Value true if the string was successfully converted == Parameters [cols=2] |=== | Name | Description | *str* | The string to convert | *kind* [out] | The resulting FundamentalTypeKind |=== == Synopsis Declared in `<mrdocs/Metadata/Symbol/Record.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr std::string_view getDefaultAccessString(link:#mrdocs-RecordKeyKind[RecordKeyKind] const& kind) noexcept; ---- Return a reference to the global Generators instance. == Synopsis Declared in `<mrdocs/Generators.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-Generators[Generators] const& getGenerators() noexcept; ---- == Return Value a reference to the global Generators instance. Return the short name of an operator as a string. == Synopsis Declared in `<mrdocs/Metadata/Specifiers/OperatorKind.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-OperatorKind[OperatorKind] getOperatorKind(std::string_view name) noexcept; ---- == Return Value The OperatorKind, or OperatorKind::None if not recognized. == Parameters [cols=2] |=== | Name | Description | *name* | The operator name, e.g. `operator+`, `operator++`, `operator[]`, etc. |=== Return the short name of an operator as a string. == Synopsis Declared in `<mrdocs/Metadata/Specifiers/OperatorKind.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-OperatorKind[OperatorKind] getOperatorKindFromSuffix(std::string_view suffix) noexcept; ---- == Return Value The OperatorKind, or OperatorKind::None if not recognized. == Parameters [cols=2] |=== | Name | Description | *suffix* | The operator suffix, e.g. `+`, `++`, `[]`, etc. |=== Return the name of an operator as a string. == Synopsis Declared in `<mrdocs/Metadata/Specifiers/OperatorKind.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::string_view getOperatorName( link:#mrdocs-OperatorKind[OperatorKind] kind, bool include_keyword = false) noexcept; ---- == Return Value the name of an operator as a string. == Parameters [cols=2] |=== | Name | Description | *kind* | The kind of operator. | *include_keyword* | Whether the name should be prefixed with the `operator` keyword. |=== Return the human‐readable name of the operator == Synopsis Declared in `<mrdocs/Metadata/Specifiers/OperatorKind.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-Optional-03[Optional<std::string_view>] getOperatorReadableName( link:#mrdocs-OperatorKind[OperatorKind] kind, int nParams); ---- == Return Value The readable name, or nullopt if the operator is not recognized. == Parameters [cols=2] |=== | Name | Description | *kind* | The kind of operator. | *nParams* | The number of parameters the operator takes. |=== `getParents` overloads == Synopses Declared in `<mrdocs/Corpus.hpp>` Return a list of the parent symbols of the specified Symbol. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::vector<SymbolID> link:#mrdocs-getParents-04[getParents]( link:#mrdocs-Corpus[Corpus] const& C, link:#mrdocs-Symbol[Symbol] const& I); ---- [.small]#link:#mrdocs-getParents-04[_» more..._]# Return a list of the parent symbols of the specified Info. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-dom-Array[dom::Array] link:#mrdocs-getParents-06[getParents]( link:#mrdocs-DomCorpus[DomCorpus] const& C, link:#mrdocs-Symbol[Symbol] const& I); ---- [.small]#link:#mrdocs-getParents-06[_» more..._]# Return a list of the parent symbols of the specified Symbol. == Synopsis Declared in `<mrdocs/Corpus.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::vector<SymbolID> getParents( link:#mrdocs-Corpus[Corpus] const& C, link:#mrdocs-Symbol[Symbol] const& I); ---- == Return Value a list of the parent symbols of the specified Symbol. == Parameters [cols=2] |=== | Name | Description | *C* | The collection of declarations in extracted form. | *I* | Base class with common properties of all symbols |=== Return a list of the parent symbols of the specified Info. == Synopsis Declared in `<mrdocs/Metadata/DomCorpus.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-dom-Array[dom::Array] getParents( link:#mrdocs-DomCorpus[DomCorpus] const& C, link:#mrdocs-Symbol[Symbol] const& I); ---- == Return Value a list of the parent symbols of the specified Info. == Parameters [cols=2] |=== | Name | Description | *C* | Front‐end factory for producing Dom nodes. | *I* | Base class with common properties of all symbols |=== == Synopses Declared in `<mrdocs/Metadata/Symbol/Source.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-Optional-03[Optional<Location>] link:#mrdocs-getPrimaryLocation-0a[getPrimaryLocation](link:#mrdocs-Symbol[Symbol] const& I); ---- [.small]#link:#mrdocs-getPrimaryLocation-0a[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-Optional-03[Optional<Location>] link:#mrdocs-getPrimaryLocation-0f[getPrimaryLocation]( link:#mrdocs-SourceInfo[SourceInfo] const& I, bool preferDefinition); ---- [.small]#link:#mrdocs-getPrimaryLocation-0f[_» more..._]# == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-Optional-03[Optional<Location>] getPrimaryLocation(link:#mrdocs-Symbol[Symbol] const& I); ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/Source.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-Optional-03[Optional<Location>] getPrimaryLocation( link:#mrdocs-SourceInfo[SourceInfo] const& I, bool preferDefinition); ---- Return the safe name of an operator as a string. == Synopsis Declared in `<mrdocs/Metadata/Specifiers/OperatorKind.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::string_view getSafeOperatorName( link:#mrdocs-OperatorKind[OperatorKind] kind, bool include_keyword = false) noexcept; ---- == Return Value the safe name of an operator as a string. == Parameters [cols=2] |=== | Name | Description | *kind* | The kind of operator. | *include_keyword* | Whether the name should be prefixed with `operator_`. |=== Return the short name of an operator as a string. == Synopsis Declared in `<mrdocs/Metadata/Specifiers/OperatorKind.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::string_view getShortOperatorName(link:#mrdocs-OperatorKind[OperatorKind] kind) noexcept; ---- == Return Value the short name of an operator as a string. == Parameters [cols=2] |=== | Name | Description | *kind* | Operator kinds |=== Return the full path for single page output. == Synopsis Declared in `<mrdocs/Generator.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-Expected-0a[Expected<std::string>] getSinglePageFullPath( std::string_view outputPath, std::string_view extension); ---- == Description This function determines the full path for a single‐page output file based on the provided `outputPath` and file `extension`. If the `outputPath` already exists: ‐ If it is a directory, appends the default file name with the provided extension. ‐ If it is a file, uses the provided `outputPath` directly. If the `outputPath` does not exist: ‐ If it ends with a '/', assumes it is a directory and appends the default file name. ‐ Otherwise, it returns an error because the path is ambiguous. == Return Value The full path or an error if the `outputPath` is ambiguous. == Parameters [cols=2] |=== | Name | Description | *outputPath* | The specified output path, which can be a directory or file. | *extension* | The file extension to use for single‐page output. |=== Return the inner type. == Synopses Declared in `<mrdocs/Metadata/Type.hpp>` Return the inner type. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-Optional-03[Optional<Polymorphic<Type>&>] link:#mrdocs-innerType-09[innerType](link:#mrdocs-Type[Type]& TI) noexcept; ---- [.small]#link:#mrdocs-innerType-09[_» more..._]# Return the inner type. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-Optional-03[Optional<Polymorphic<Type> const&>] link:#mrdocs-innerType-06[innerType](link:#mrdocs-Type[Type] const& TI) noexcept; ---- [.small]#link:#mrdocs-innerType-06[_» more..._]# Return the inner type. == Synopsis Declared in `<mrdocs/Metadata/Type.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-Optional-03[Optional<Polymorphic<Type>&>] innerType(link:#mrdocs-Type[Type]& TI) noexcept; ---- == Description The inner type is the type that is modified by a specifier (e.g. "int" in "pointer to int"). == Return Value the inner type. == Parameters [cols=2] |=== | Name | Description | *TI* | A possibly qualified type. |=== Return the inner type. == Synopsis Declared in `<mrdocs/Metadata/Type.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-Optional-03[Optional<Polymorphic<Type> const&>] innerType(link:#mrdocs-Type[Type] const& TI) noexcept; ---- == Description The inner type is the type that is modified by a specifier (e.g. "int" in "pointer to int"). == Return Value the inner type. == Parameters [cols=2] |=== | Name | Description | *TI* | A possibly qualified type. |=== Return the inner type. == Synopses Declared in `<mrdocs/Metadata/Type.hpp>` Return the inner type. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-Type[Type]* link:#mrdocs-innerTypePtr-08[innerTypePtr](link:#mrdocs-Type[Type]& TI) noexcept; ---- [.small]#link:#mrdocs-innerTypePtr-08[_» more..._]# Return the inner type. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-Type[Type] const* link:#mrdocs-innerTypePtr-0a[innerTypePtr](link:#mrdocs-Type[Type] const& TI) noexcept; ---- [.small]#link:#mrdocs-innerTypePtr-0a[_» more..._]# Return the inner type. == Synopsis Declared in `<mrdocs/Metadata/Type.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-Type[Type]* innerTypePtr(link:#mrdocs-Type[Type]& TI) noexcept; ---- == Description The inner type is the type that is modified by a specifier (e.g. "int" in "pointer to int"). == Return Value the inner type. == Parameters [cols=2] |=== | Name | Description | *TI* | A possibly qualified type. |=== Return the inner type. == Synopsis Declared in `<mrdocs/Metadata/Type.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-Type[Type] const* innerTypePtr(link:#mrdocs-Type[Type] const& TI) noexcept; ---- == Description The inner type is the type that is modified by a specifier (e.g. "int" in "pointer to int"). == Return Value the inner type. == Parameters [cols=2] |=== | Name | Description | *TI* | A possibly qualified type. |=== Return the innermost type. == Synopses Declared in `<mrdocs/Metadata/Type.hpp>` Return the innermost type. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-Polymorphic[Polymorphic<Type>]& link:#mrdocs-innermostType-09[innermostType](link:#mrdocs-Polymorphic[Polymorphic<Type>]& TI) noexcept; ---- [.small]#link:#mrdocs-innermostType-09[_» more..._]# Return the innermost type. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-Polymorphic[Polymorphic<Type>] const& link:#mrdocs-innermostType-0b[innermostType](link:#mrdocs-Polymorphic[Polymorphic<Type>] const& TI) noexcept; ---- [.small]#link:#mrdocs-innermostType-0b[_» more..._]# Return the innermost type. == Synopsis Declared in `<mrdocs/Metadata/Type.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-Polymorphic[Polymorphic<Type>]& innermostType(link:#mrdocs-Polymorphic[Polymorphic<Type>]& TI) noexcept; ---- == Description 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. == Return Value the innermost type. == Parameters [cols=2] |=== | Name | Description | *TI* | A polymorphic value‐type. |=== Return the innermost type. == Synopsis Declared in `<mrdocs/Metadata/Type.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-Polymorphic[Polymorphic<Type>] const& innermostType(link:#mrdocs-Polymorphic[Polymorphic<Type>] const& TI) noexcept; ---- == Description 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. == Return Value the innermost type. == Parameters [cols=2] |=== | Name | Description | *TI* | A polymorphic value‐type. |=== == Synopses Declared in `<mrdocs/Support/String.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr bool link:#mrdocs-isAlphaNumeric-0d[isAlphaNumeric](std::string_view const s) noexcept; ---- [.small]#link:#mrdocs-isAlphaNumeric-0d[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr bool link:#mrdocs-isAlphaNumeric-09[isAlphaNumeric](char const c) noexcept; ---- [.small]#link:#mrdocs-isAlphaNumeric-09[_» more..._]# == Synopsis Declared in `<mrdocs/Support/String.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr bool isAlphaNumeric(std::string_view const s) noexcept; ---- == Synopsis Declared in `<mrdocs/Support/String.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr bool isAlphaNumeric(char const c) noexcept; ---- == Synopses Declared in `<mrdocs/Support/String.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr bool link:#mrdocs-isAlphabetic-0e[isAlphabetic](std::string_view const s) noexcept; ---- [.small]#link:#mrdocs-isAlphabetic-0e[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr bool link:#mrdocs-isAlphabetic-06[isAlphabetic](char const c) noexcept; ---- [.small]#link:#mrdocs-isAlphabetic-06[_» more..._]# == Synopsis Declared in `<mrdocs/Support/String.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr bool isAlphabetic(std::string_view const s) noexcept; ---- == Synopsis Declared in `<mrdocs/Support/String.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr bool isAlphabetic(char const c) noexcept; ---- Determines whether the operator is potentially binary. == Synopsis Declared in `<mrdocs/Metadata/Specifiers/OperatorKind.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool isBinaryOperator(link:#mrdocs-OperatorKind[OperatorKind] kind) noexcept; ---- == Return Value whether the operator is potentially binary. == Parameters [cols=2] |=== | Name | Description | *kind* | Operator kinds |=== == Synopses Declared in `<mrdocs/Support/String.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr bool link:#mrdocs-isDigit-0a[isDigit](std::string_view const s) noexcept; ---- [.small]#link:#mrdocs-isDigit-0a[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr bool link:#mrdocs-isDigit-02[isDigit](char const c) noexcept; ---- [.small]#link:#mrdocs-isDigit-02[_» more..._]# == Synopsis Declared in `<mrdocs/Support/String.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr bool isDigit(std::string_view const s) noexcept; ---- == Synopsis Declared in `<mrdocs/Support/String.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr bool isDigit(char const c) noexcept; ---- Determine if a value is empty == Synopsis Declared in `<mrdocs/Support/Handlebars.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool isEmpty(link:#mrdocs-dom-Value[dom::Value] const& arg); ---- == Description This is used by the built‐in if and with helpers to control their execution flow. The Handlebars definition of empty is any of: ‐ Array with length 0 ‐ falsy values other than 0 This is intended to match the Mustache Behaviour. == Return Value True if the value is empty, false otherwise == Parameters [cols=2] |=== | Name | Description | *arg* | The value to test |=== == See Also https://mustache.github.io/mustache.5.html#Sections == Synopses Declared in `<mrdocs/Support/String.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr bool link:#mrdocs-isLowerCase-0f[isLowerCase](std::string_view const s) noexcept; ---- [.small]#link:#mrdocs-isLowerCase-0f[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr bool link:#mrdocs-isLowerCase-02[isLowerCase](char const c) noexcept; ---- [.small]#link:#mrdocs-isLowerCase-02[_» more..._]# == Synopsis Declared in `<mrdocs/Support/String.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr bool isLowerCase(std::string_view const s) noexcept; ---- == Synopsis Declared in `<mrdocs/Support/String.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr bool isLowerCase(char const c) noexcept; ---- Determines whether the operator is potentially unary. == Synopsis Declared in `<mrdocs/Metadata/Specifiers/OperatorKind.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool isUnaryOperator(link:#mrdocs-OperatorKind[OperatorKind] kind) noexcept; ---- == Return Value whether the operator is potentially unary. == Parameters [cols=2] |=== | Name | Description | *kind* | Operator kinds |=== == Synopses Declared in `<mrdocs/Support/String.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr bool link:#mrdocs-isUpperCase-06[isUpperCase](std::string_view const s) noexcept; ---- [.small]#link:#mrdocs-isUpperCase-06[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr bool link:#mrdocs-isUpperCase-02[isUpperCase](char const c) noexcept; ---- [.small]#link:#mrdocs-isUpperCase-02[_» more..._]# == Synopsis Declared in `<mrdocs/Support/String.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr bool isUpperCase(std::string_view const s) noexcept; ---- == Synopsis Declared in `<mrdocs/Support/String.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr bool isUpperCase(char const c) noexcept; ---- Determine if a string is only whitespace. == Synopses Declared in `<mrdocs/Support/String.hpp>` Determine if a string is only whitespace. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr bool link:#mrdocs-isWhitespace-06[isWhitespace](std::string_view s) noexcept; ---- [.small]#link:#mrdocs-isWhitespace-06[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr bool link:#mrdocs-isWhitespace-01[isWhitespace](char c) noexcept; ---- [.small]#link:#mrdocs-isWhitespace-01[_» more..._]# == Return Value true if the string is empty or contains only whitespace characters (space, tab, newline, vertical tab, form feed, carriage return). false otherwise. == Parameters [cols=2] |=== | Name | Description | *s* | The string to check. |=== Determine if a string is only whitespace. == Synopsis Declared in `<mrdocs/Support/String.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr bool isWhitespace(std::string_view s) noexcept; ---- == Return Value true if the string is empty or contains only whitespace characters (space, tab, newline, vertical tab, form feed, carriage return). false otherwise. == Parameters [cols=2] |=== | Name | Description | *s* | The string to check. |=== == Synopsis Declared in `<mrdocs/Support/String.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr bool isWhitespace(char c) noexcept; ---- is_null helper that uses nullable_traits<T> if available. == Synopsis Declared in `<mrdocs/ADT/Nullable.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<link:#mrdocs-has_nullable_traits_v[has_nullable_traits_v] T> bool is_null(T const& v) noexcept(noexcept(nullable_traits<T>::is_null(v))); ---- == Return Value true if v is null, false otherwise. == Parameters [cols=2] |=== | Name | Description | *v* | The value to test for null. |=== Determine if an element is equal to any of the elements in the specified range. == Synopses Declared in `<mrdocs/Support/Algorithm.hpp>` Determine if an element is equal to any of the elements in the specified range. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< class El, std::ranges::range Range> requires std::equality_comparable_with<std::ranges::range_value_t<Range>, El> bool link:#mrdocs-is_one_of-05[is_one_of]( El const& el, Range const& range); ---- [.small]#link:#mrdocs-is_one_of-05[_» more..._]# Determine if an element is equal to any of the elements in the specified range. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< class U, class T> requires std::equality_comparable_with<U, T> bool link:#mrdocs-is_one_of-04[is_one_of]( U const& el, std::initializer_list<T> const& range); ---- [.small]#link:#mrdocs-is_one_of-04[_» more..._]# == Return Value True if the element is found, false otherwise. == Parameters [cols=2] |=== | Name | Description | *el* | The element to search for. | *range* | The range to search. |=== Determine if an element is equal to any of the elements in the specified range. == Synopsis Declared in `<mrdocs/Support/Algorithm.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< class El, std::ranges::range Range> requires std::equality_comparable_with<std::ranges::range_value_t<Range>, El> bool is_one_of( El const& el, Range const& range); ---- == Return Value True if the element is found, false otherwise. == Parameters [cols=2] |=== | Name | Description | *el* | The element to search for. | *range* | The range to search. |=== Determine if an element is equal to any of the elements in the specified range. == Synopsis Declared in `<mrdocs/Support/Algorithm.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< class U, class T> requires std::equality_comparable_with<U, T> bool is_one_of( U const& el, std::initializer_list<T> const& range); ---- == Return Value True if the element is found, false otherwise. == Parameters [cols=2] |=== | Name | Description | *el* | The element to search for. | *range* | The range to search. |=== == Synopsis Declared in `<mrdocs/ADT/Polymorphic.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< class To, class From> requires ( std::derived_from<std::remove_cvref_t<To>, std::remove_cvref_t<From>> ) [[nodiscard]] bool isa(link:#mrdocs-Polymorphic[Polymorphic<From>] const& p) noexcept; ---- == Synopsis Declared in `<mrdocs/ADT/Polymorphic.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< class To, class From> requires ( std::derived_from<std::remove_cvref_t<To>, std::remove_cvref_t<From>> ) [[nodiscard]] bool isa_or_null(link:#mrdocs-Polymorphic[Polymorphic<From>] const* pp) noexcept; ---- Compare ExtractionModes and returns the least specific == Synopsis Declared in `<mrdocs/Metadata/Symbol/ExtractionMode.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-ExtractionMode[ExtractionMode] leastSpecific( link:#mrdocs-ExtractionMode[ExtractionMode] const a, link:#mrdocs-ExtractionMode[ExtractionMode] const b) noexcept; ---- == Description This function returns the least specific of the two ExtractionModes in terms of the number of filters passed. If the symbol passes the filter that categorizes it as `a`, then it also passes the filter that categorizes it as `b` (or vice‐versa), then this function will return the final category for the symbol. == Return Value Determine why a symbol is extracted == Parameters [cols=2] |=== | Name | Description | *a* | Determine why a symbol is extracted | *b* | Determine why a symbol is extracted |=== `ltrim` overloads == Synopses Declared in `<mrdocs/Support/String.hpp>` Return the substring without leading horizontal whitespace. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr std::string_view link:#mrdocs-ltrim-055[ltrim](std::string_view const s) noexcept; ---- [.small]#link:#mrdocs-ltrim-055[_» more..._]# Return the substring without leading specified characters. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr std::string_view link:#mrdocs-ltrim-06[ltrim]( std::string_view const s, std::string_view const chars) noexcept; ---- [.small]#link:#mrdocs-ltrim-06[_» more..._]# == Return Value The modified string. == Parameters [cols=2] |=== | Name | Description | *s* | The string to trim. | *chars* | The characters to remove. |=== Return the substring without leading horizontal whitespace. == Synopsis Declared in `<mrdocs/Support/String.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr std::string_view ltrim(std::string_view const s) noexcept; ---- == Return Value The modified string. == Parameters [cols=2] |=== | Name | Description | *s* | The string to trim. |=== Return the substring without leading specified characters. == Synopsis Declared in `<mrdocs/Support/String.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr std::string_view ltrim( std::string_view const s, std::string_view const chars) noexcept; ---- == Return Value The modified string. == Parameters [cols=2] |=== | Name | Description | *s* | The string to trim. | *chars* | The characters to remove. |=== Apply the "char" specifier to the type == Synopsis Declared in `<mrdocs/Metadata/Type/FundamentalTypeKind.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool makeChar(link:#mrdocs-FundamentalTypeKind[FundamentalTypeKind]& kind) noexcept; ---- == Description If applying the "char" specifier to a type that might have been declared only with "signed/unsigned" or "short/long" specifiers, the function changes the type and returns true. For instance, applying "char" to `FundamentalTypeKind::Int` ("int", which could be declared as "signed") results in `FundamentalTypeKind::SignedChar` ("signed char"). == Return Value Whether the operation was successful == Parameters [cols=2] |=== | Name | Description | *kind* [in] | The type to modify |=== Apply the "long" specifier to the type == Synopsis Declared in `<mrdocs/Metadata/Type/FundamentalTypeKind.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool makeLong(link:#mrdocs-FundamentalTypeKind[FundamentalTypeKind]& kind) noexcept; ---- == Description If applying "long" the specifier is a valid operation the function changes the type and returns true. For instance, applying "long" to `FundamentalTypeKind::Int` ("int") results in `FundamentalTypeKind::Long` ("long int"). == Return Value Whether the operation was successful == Parameters [cols=2] |=== | Name | Description | *kind* [in] | The type to modify |=== Factory function that creates an Overload from the given callables. == Synopsis Declared in `<mrdocs/ADT/Overload.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class... Ts> [[nodiscard]] constexpr link:#mrdocs-Overload-09[Overload<std::decay_t<Ts>...>] makeOverload(Ts...&&... xs) noexcept((std::is_nothrow_constructible_v<std::decay_t<Ts>, Ts &&> && ...)); ---- == Description Prefer this over constructing Overload directly when you need perfect forwarding and decayed storage. [,cpp] ---- auto visitor = fn::makeOverload( [](int) { return 1; }, [](double) { return 2; } ); ---- == Return Value An Overload whose base classes are the decayed types of the provided callables. == Parameters [cols=2] |=== | Name | Description | *xs* | The callables to combine. |=== Apply the "short" specifier to the type == Synopsis Declared in `<mrdocs/Metadata/Type/FundamentalTypeKind.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool makeShort(link:#mrdocs-FundamentalTypeKind[FundamentalTypeKind]& kind) noexcept; ---- == Description If applying "short" the specifier is a valid operation the function changes the type and returns true. For instance, applying "short" to `FundamentalTypeKind::Int` ("int") results in `FundamentalTypeKind::Short` ("short int"). == Return Value Whether the operation was successful == Parameters [cols=2] |=== | Name | Description | *kind* [in] | The type to modify |=== Apply the "signed" specifier to the type == Synopsis Declared in `<mrdocs/Metadata/Type/FundamentalTypeKind.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool makeSigned(link:#mrdocs-FundamentalTypeKind[FundamentalTypeKind]& kind) noexcept; ---- == Description If applying the "signed" specifier is a valid operation the function changes the type and returns true. For instance, applying "signed" to `FundamentalTypeKind::Char` ("char") results in `FundamentalTypeKind::SignedChar` ("signed char"). It also returns true if applying the "signed" specifier is a valid operation but doesn't affect the type. For instance, applying "signed" to `FundamentalTypeKind::Int` ("int") doesn't change the type but returns `true`, even though `FundamentalTypeKind::Int` could be declared as "int" or "signed" and multiple "signed" specifiers are not allowed. == Return Value Whether the operation was successful == Parameters [cols=2] |=== | Name | Description | *kind* [in] | The type to modify |=== Apply the "unsigned" specifier to the type == Synopsis Declared in `<mrdocs/Metadata/Type/FundamentalTypeKind.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool makeUnsigned(link:#mrdocs-FundamentalTypeKind[FundamentalTypeKind]& kind) noexcept; ---- == Description If applying the "unsigned" specifier is a valid operation the function changes the type and returns true. For instance, applying "unsigned" to `FundamentalTypeKind::Char` ("char") results in `FundamentalTypeKind::UnsignedChar` ("unsigned char") and applying "unsigned" to `FundamentalTypeKind::Int` ("int") results in `FundamentalTypeKind::UnsignedInt` ("unsigned int"). == Return Value Whether the operation was successful == Parameters [cols=2] |=== | Name | Description | *kind* [in] | The type to modify |=== Make a visitor for a base type == Synopsis Declared in `<mrdocs/Support/Visitor.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< typename BaseTy, typename ObjectTy, typename FnTy, typename... ArgsTy> auto makeVisitor( ObjectTy&& obj, FnTy&& fn, ArgsTy...&&... args); ---- == Description The returned visitor is an object with a template method `visit` which can be called with a derived type of the object being visited. The visitor stores the arguments `args` passed to this function, and its method `visit` calls the function `fn` with the derived type as the first argument, followed by `args`. == Return Value The common return type of `fn` when called with a derived type of `obj` and `args` == Parameters [cols=2] |=== | Name | Description | *obj* | The object to visit | *fn* | The function object to call | *args* | The arguments to pass to the function object |=== == Synopses Declared in `<mrdocs/ADT/ArrayView.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< class T, std::size_t N> constexpr link:#mrdocs-ArrayView-06[ArrayView<T>] link:#mrdocs-make_array_view-09[make_array_view](T const(& arr)[]) noexcept; ---- [.small]#link:#mrdocs-make_array_view-09[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class T> constexpr link:#mrdocs-ArrayView-06[ArrayView<T>] link:#mrdocs-make_array_view-0b[make_array_view]( T const* data, std::size_t count) noexcept; ---- [.small]#link:#mrdocs-make_array_view-0b[_» more..._]# == Synopsis Declared in `<mrdocs/ADT/ArrayView.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< class T, std::size_t N> constexpr link:#mrdocs-ArrayView-06[ArrayView<T>] make_array_view(T const(& arr)[]) noexcept; ---- == Synopsis Declared in `<mrdocs/ADT/ArrayView.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class T> constexpr link:#mrdocs-ArrayView-06[ArrayView<T>] make_array_view( T const* data, std::size_t count) noexcept; ---- make_null helper that uses nullable_traits<T> if available. == Synopsis Declared in `<mrdocs/ADT/Nullable.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<link:#mrdocs-has_nullable_traits_v[has_nullable_traits_v] T> void make_null(T& v) noexcept(noexcept(nullable_traits<T>::make_null(v))); ---- == Parameters [cols=2] |=== | Name | Description | *v* | The value to make null. |=== Applies a set of callables to a std::variant using std::visit and Overload. == Synopsis Declared in `<mrdocs/ADT/Overload.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< class Variant, class... Ts> constexpr decltype(auto) match( Variant&& v, Ts...&&... xs); ---- == Description This is a convenience wrapper around std::visit(makeOverload(...), variant). It forwards the variant and the callables and returns whatever std::visit returns. [,cpp] ---- std::variant v = 42; auto r = fn::match(v, [](int i) { return i + 1; }, [](const std::string& s) { return s.size(); } ); ---- == Return Value The result of std::visit. == Parameters [cols=2] |=== | Name | Description | *v* | The variant to visit (can be lvalue or rvalue; const‐qualification is preserved). | *xs* | The callables to be combined with makeOverload and passed to std::visit. |=== `merge` overloads == Synopses Declared in `<mrdocs/Metadata/Symbol/SymbolBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void link:#mrdocs-merge-063[merge]( link:#mrdocs-ConceptSymbol[ConceptSymbol]& I, link:#mrdocs-ConceptSymbol[ConceptSymbol]&& Other); ---- [.small]#link:#mrdocs-merge-063[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void link:#mrdocs-merge-0b5[merge]( link:#mrdocs-DocComment[DocComment]& I, link:#mrdocs-DocComment[DocComment]&& other); ---- [.small]#link:#mrdocs-merge-0b5[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void link:#mrdocs-merge-08b[merge]( link:#mrdocs-EnumConstantSymbol[EnumConstantSymbol]& I, link:#mrdocs-EnumConstantSymbol[EnumConstantSymbol]&& Other); ---- [.small]#link:#mrdocs-merge-08b[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void link:#mrdocs-merge-04b[merge]( link:#mrdocs-EnumSymbol[EnumSymbol]& I, link:#mrdocs-EnumSymbol[EnumSymbol]&& Other); ---- [.small]#link:#mrdocs-merge-04b[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void link:#mrdocs-merge-05[merge]( link:#mrdocs-ExprInfo[ExprInfo]& I, link:#mrdocs-ExprInfo[ExprInfo]&& Other); ---- [.small]#link:#mrdocs-merge-05[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void link:#mrdocs-merge-06d[merge]( link:#mrdocs-FriendInfo[FriendInfo]& I, link:#mrdocs-FriendInfo[FriendInfo]&& Other); ---- [.small]#link:#mrdocs-merge-06d[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void link:#mrdocs-merge-01[merge]( link:#mrdocs-FunctionSymbol[FunctionSymbol]& I, link:#mrdocs-FunctionSymbol[FunctionSymbol]&& Other); ---- [.small]#link:#mrdocs-merge-01[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void link:#mrdocs-merge-005[merge]( link:#mrdocs-GuideSymbol[GuideSymbol]& I, link:#mrdocs-GuideSymbol[GuideSymbol]&& Other); ---- [.small]#link:#mrdocs-merge-005[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void link:#mrdocs-merge-02a[merge]( link:#mrdocs-NamespaceAliasSymbol[NamespaceAliasSymbol]& I, link:#mrdocs-NamespaceAliasSymbol[NamespaceAliasSymbol]&& Other); ---- [.small]#link:#mrdocs-merge-02a[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void link:#mrdocs-merge-064[merge]( link:#mrdocs-NamespaceSymbol[NamespaceSymbol]& I, link:#mrdocs-NamespaceSymbol[NamespaceSymbol]&& Other); ---- [.small]#link:#mrdocs-merge-064[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void link:#mrdocs-merge-0b8[merge]( link:#mrdocs-NamespaceTranche[NamespaceTranche]& I, link:#mrdocs-NamespaceTranche[NamespaceTranche]&& Other); ---- [.small]#link:#mrdocs-merge-0b8[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void link:#mrdocs-merge-0d0[merge]( link:#mrdocs-OverloadsSymbol[OverloadsSymbol]& I, link:#mrdocs-OverloadsSymbol[OverloadsSymbol]&& Other); ---- [.small]#link:#mrdocs-merge-0d0[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void link:#mrdocs-merge-044[merge]( link:#mrdocs-Param[Param]& I, link:#mrdocs-Param[Param]&& Other); ---- [.small]#link:#mrdocs-merge-044[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void link:#mrdocs-merge-09[merge]( link:#mrdocs-RecordInterface[RecordInterface]& I, link:#mrdocs-RecordInterface[RecordInterface]&& Other); ---- [.small]#link:#mrdocs-merge-09[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void link:#mrdocs-merge-0f[merge]( link:#mrdocs-RecordSymbol[RecordSymbol]& I, link:#mrdocs-RecordSymbol[RecordSymbol]&& Other); ---- [.small]#link:#mrdocs-merge-0f[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void link:#mrdocs-merge-0cf[merge]( link:#mrdocs-RecordTranche[RecordTranche]& I, link:#mrdocs-RecordTranche[RecordTranche]&& Other); ---- [.small]#link:#mrdocs-merge-0cf[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void link:#mrdocs-merge-0dd[merge]( link:#mrdocs-SourceInfo[SourceInfo]& I, link:#mrdocs-SourceInfo[SourceInfo] const& Other); ---- [.small]#link:#mrdocs-merge-0dd[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void link:#mrdocs-merge-0cc[merge]( link:#mrdocs-SourceInfo[SourceInfo]& I, link:#mrdocs-SourceInfo[SourceInfo]&& Other); ---- [.small]#link:#mrdocs-merge-0cc[_» more..._]# Merges two Symbol objects. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void link:#mrdocs-merge-00c[merge]( link:#mrdocs-Symbol[Symbol]& I, link:#mrdocs-Symbol[Symbol]&& Other); ---- [.small]#link:#mrdocs-merge-00c[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void link:#mrdocs-merge-085[merge]( link:#mrdocs-TemplateInfo[TemplateInfo]& I, link:#mrdocs-TemplateInfo[TemplateInfo]&& Other); ---- [.small]#link:#mrdocs-merge-085[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void link:#mrdocs-merge-025[merge]( link:#mrdocs-TypedefSymbol[TypedefSymbol]& I, link:#mrdocs-TypedefSymbol[TypedefSymbol]&& Other); ---- [.small]#link:#mrdocs-merge-025[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void link:#mrdocs-merge-03[merge]( link:#mrdocs-UsingSymbol[UsingSymbol]& I, link:#mrdocs-UsingSymbol[UsingSymbol]&& Other); ---- [.small]#link:#mrdocs-merge-03[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void link:#mrdocs-merge-029[merge]( link:#mrdocs-VariableSymbol[VariableSymbol]& I, link:#mrdocs-VariableSymbol[VariableSymbol]&& Other); ---- [.small]#link:#mrdocs-merge-029[_» more..._]# Merges two Symbol objects according to the behavior of the derived class. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<link:#mrdocs-polymorphic_storage_for[polymorphic_storage_for<Symbol>] SymbolTy> void link:#mrdocs-merge-0e[merge]( SymbolTy& I, SymbolTy&& Other); ---- [.small]#link:#mrdocs-merge-0e[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class T> static void link:#mrdocs-merge-07[merge]( link:#mrdocs-ConstantExprInfo[ConstantExprInfo<T>]& I, link:#mrdocs-ConstantExprInfo[ConstantExprInfo<T>]&& Other); ---- [.small]#link:#mrdocs-merge-07[_» more..._]# == Parameters [cols=2] |=== | Name | Description | *I* | The Symbol object to merge into. | *Other* | The Symbol object to merge from. |=== == Synopsis Declared in `<mrdocs/Metadata/Symbol/Concept.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void merge( link:#mrdocs-ConceptSymbol[ConceptSymbol]& I, link:#mrdocs-ConceptSymbol[ConceptSymbol]&& Other); ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void merge( link:#mrdocs-DocComment[DocComment]& I, link:#mrdocs-DocComment[DocComment]&& other); ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/EnumConstant.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void merge( link:#mrdocs-EnumConstantSymbol[EnumConstantSymbol]& I, link:#mrdocs-EnumConstantSymbol[EnumConstantSymbol]&& Other); ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/Enum.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void merge( link:#mrdocs-EnumSymbol[EnumSymbol]& I, link:#mrdocs-EnumSymbol[EnumSymbol]&& Other); ---- == Synopsis Declared in `<mrdocs/Metadata/Expression.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void merge( link:#mrdocs-ExprInfo[ExprInfo]& I, link:#mrdocs-ExprInfo[ExprInfo]&& Other); ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/Friend.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void merge( link:#mrdocs-FriendInfo[FriendInfo]& I, link:#mrdocs-FriendInfo[FriendInfo]&& Other); ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/Function.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void merge( link:#mrdocs-FunctionSymbol[FunctionSymbol]& I, link:#mrdocs-FunctionSymbol[FunctionSymbol]&& Other); ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/Guide.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void merge( link:#mrdocs-GuideSymbol[GuideSymbol]& I, link:#mrdocs-GuideSymbol[GuideSymbol]&& Other); ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/NamespaceAlias.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void merge( link:#mrdocs-NamespaceAliasSymbol[NamespaceAliasSymbol]& I, link:#mrdocs-NamespaceAliasSymbol[NamespaceAliasSymbol]&& Other); ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/Namespace.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void merge( link:#mrdocs-NamespaceSymbol[NamespaceSymbol]& I, link:#mrdocs-NamespaceSymbol[NamespaceSymbol]&& Other); ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/Namespace.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void merge( link:#mrdocs-NamespaceTranche[NamespaceTranche]& I, link:#mrdocs-NamespaceTranche[NamespaceTranche]&& Other); ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/Overloads.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void merge( link:#mrdocs-OverloadsSymbol[OverloadsSymbol]& I, link:#mrdocs-OverloadsSymbol[OverloadsSymbol]&& Other); ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/Param.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void merge( link:#mrdocs-Param[Param]& I, link:#mrdocs-Param[Param]&& Other); ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/RecordInterface.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void merge( link:#mrdocs-RecordInterface[RecordInterface]& I, link:#mrdocs-RecordInterface[RecordInterface]&& Other); ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/Record.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void merge( link:#mrdocs-RecordSymbol[RecordSymbol]& I, link:#mrdocs-RecordSymbol[RecordSymbol]&& Other); ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/RecordTranche.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void merge( link:#mrdocs-RecordTranche[RecordTranche]& I, link:#mrdocs-RecordTranche[RecordTranche]&& Other); ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/Source.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void merge( link:#mrdocs-SourceInfo[SourceInfo]& I, link:#mrdocs-SourceInfo[SourceInfo] const& Other); ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/Source.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void merge( link:#mrdocs-SourceInfo[SourceInfo]& I, link:#mrdocs-SourceInfo[SourceInfo]&& Other); ---- Merges two Symbol objects. == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void merge( link:#mrdocs-Symbol[Symbol]& I, link:#mrdocs-Symbol[Symbol]&& Other); ---- == Description This function is used to merge two Symbol objects with the same SymbolID. The function assumes that the two Symbol objects are of the same type. If they are not, the function will fail. == Parameters [cols=2] |=== | Name | Description | *I* | The Symbol object to merge into. | *Other* | The Symbol object to merge from. |=== == Synopsis Declared in `<mrdocs/Metadata/Template.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void merge( link:#mrdocs-TemplateInfo[TemplateInfo]& I, link:#mrdocs-TemplateInfo[TemplateInfo]&& Other); ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/Typedef.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void merge( link:#mrdocs-TypedefSymbol[TypedefSymbol]& I, link:#mrdocs-TypedefSymbol[TypedefSymbol]&& Other); ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/Using.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void merge( link:#mrdocs-UsingSymbol[UsingSymbol]& I, link:#mrdocs-UsingSymbol[UsingSymbol]&& Other); ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/Variable.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void merge( link:#mrdocs-VariableSymbol[VariableSymbol]& I, link:#mrdocs-VariableSymbol[VariableSymbol]&& Other); ---- Merges two Symbol objects according to the behavior of the derived class. == Synopsis Declared in `<mrdocs/Metadata/Symbol.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<link:#mrdocs-polymorphic_storage_for[polymorphic_storage_for<Symbol>] SymbolTy> void merge( SymbolTy& I, SymbolTy&& Other); ---- == Parameters [cols=2] |=== | Name | Description | *I* | The Symbol object to merge into. | *Other* | The Symbol object to merge from. |=== == Synopsis Declared in `<mrdocs/Metadata/Expression.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class T> static void merge( link:#mrdocs-ConstantExprInfo[ConstantExprInfo<T>]& I, link:#mrdocs-ConstantExprInfo[ConstantExprInfo<T>]&& Other); ---- Compare ExtractionModes and returns the most specific == Synopsis Declared in `<mrdocs/Metadata/Symbol/ExtractionMode.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr link:#mrdocs-ExtractionMode[ExtractionMode] mostSpecific( link:#mrdocs-ExtractionMode[ExtractionMode] const a, link:#mrdocs-ExtractionMode[ExtractionMode] const b) noexcept; ---- == Description This function returns the most specific of the two ExtractionModes in terms of number of filters passed. == Return Value Determine why a symbol is extracted == Parameters [cols=2] |=== | Name | Description | *a* | Determine why a symbol is extracted | *b* | Determine why a symbol is extracted |=== null_of helper that constructs a null T using nullable_traits<T>. == Synopsis Declared in `<mrdocs/ADT/Nullable.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<link:#mrdocs-has_nullable_traits_v[has_nullable_traits_v] T> T null_of() noexcept(noexcept(nullable_traits<T>::null())); ---- == Return Value A null T value. == Synopsis Declared in `<mrdocs/Support/SplitLines.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<std::ranges::viewable_range R> requires std::ranges::contiguous_range<R> && std::same_as<std::remove_cv_t<std::ranges::range_value_t<R>>, char> constexpr auto operator|( R&& r, link:#mrdocs-SplitLinesAdaptor[SplitLinesAdaptor] const& a); ---- Determine if one function would override the other == Synopsis Declared in `<mrdocs/Metadata/Symbol/Function.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool overrides( link:#mrdocs-FunctionSymbol[FunctionSymbol] const& base, link:#mrdocs-FunctionSymbol[FunctionSymbol] const& derived); ---- == Return Value if one function would override the other == Parameters [cols=2] |=== | Name | Description | *base* | The base function | *derived* | The derived function |=== Parse a string view == Synopses Declared in `<mrdocs/Support/Parse.hpp>` Parse a string view [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<link:#mrdocs-HasParse[HasParse] T> link:#mrdocs-Expected-0a[Expected<T>] link:#mrdocs-parse-09[parse](std::string_view sv); ---- [.small]#link:#mrdocs-parse-09[_» more..._]# Parse a string view [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<link:#mrdocs-HasParse[HasParse] T> link:#mrdocs-ParseResult[ParseResult] link:#mrdocs-parse-04[parse]( std::string_view sv, T& value); ---- [.small]#link:#mrdocs-parse-04[_» more..._]# == Parameters [cols=2] |=== | Name | Description | *sv* | The string view to parse | *value* | The value to store the result |=== Parse a string view == Synopsis Declared in `<mrdocs/Support/Parse.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<link:#mrdocs-HasParse[HasParse] T> link:#mrdocs-Expected-0a[Expected<T>] parse(std::string_view sv); ---- == Description Parse a string view `sv` as an object of type `T`. If parsing fails, the function returns an error. This overload does not return the `ParseResult` object containing the pointer to the first character not parsed. Instead, the position of the error is calculated and the error message is formatted with the error position. This function parses a string view `sv` into a value of type `T`. The function calls the `parse` function for the type `T` with the `sv.data()` and `sv.data() + sv.size()` as the first and last pointers, respectively. If the parse function returns an error, then the function returns the error. If the parse function returns success, but there are characters left in the string view, then the function returns an error with the message "trailing characters". Otherwise, it returns the value. == Return Value A container holding an error or a value. == Parameters [cols=2] |=== | Name | Description | *sv* | The string view to parse |=== Parse a string view == Synopsis Declared in `<mrdocs/Support/Parse.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<link:#mrdocs-HasParse[HasParse] T> link:#mrdocs-ParseResult[ParseResult] parse( std::string_view sv, T& value); ---- == Description This function parses a string view `sv` into a value of type `T`. The function calls the `parse` function for the type `T` with the `sv.data()` and `sv.data() + sv.size()` as the first and last pointers, respectively. If the parse function returns an error, then the function returns the error. If the parse function returns success, but there are characters left in the string view, then the function returns an error with the message "trailing characters". Otherwise, it returns the value. == Return Value The result of a parse operation. == Parameters [cols=2] |=== | Name | Description | *sv* | The string view to parse | *value* | The value to store the result |=== Reindent code by removing the common leading spaces and adding the specified indent. == Synopsis Declared in `<mrdocs/Support/String.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::string reindentCode( std::string_view code, std::size_t indent = 0); ---- == Return Value The modified code block. == Parameters [cols=2] |=== | Name | Description | *code* | The code block to unindent. |=== Return the substring without leading and trailing horizontal whitespace. == Synopsis Declared in `<mrdocs/Support/String.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void replace( std::string& s, std::string_view from, std::string_view to); ---- == Return Value The modified string. == Parameters [cols=2] |=== | Name | Description | *s* | The string to trim. | *from* | The substring to remove. | *to* | The substring to replace with. If this is empty, the substring is removed. |=== `rtrim` overloads == Synopses Declared in `<mrdocs/Support/String.hpp>` Return the substring without trailing horizontal whitespace. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr std::string_view link:#mrdocs-rtrim-05[rtrim](std::string_view const s) noexcept; ---- [.small]#link:#mrdocs-rtrim-05[_» more..._]# Return the substring without trailing specified characters. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr std::string_view link:#mrdocs-rtrim-0cb[rtrim]( std::string_view const s, std::string_view const chars) noexcept; ---- [.small]#link:#mrdocs-rtrim-0cb[_» more..._]# == Return Value The modified string. == Parameters [cols=2] |=== | Name | Description | *s* | The string to trim. | *chars* | The characters to remove. |=== Return the substring without trailing horizontal whitespace. == Synopsis Declared in `<mrdocs/Support/String.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr std::string_view rtrim(std::string_view const s) noexcept; ---- == Return Value The modified string. == Parameters [cols=2] |=== | Name | Description | *s* | The string to trim. |=== Return the substring without trailing specified characters. == Synopsis Declared in `<mrdocs/Support/String.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr std::string_view rtrim( std::string_view const s, std::string_view const chars) noexcept; ---- == Return Value The modified string. == Parameters [cols=2] |=== | Name | Description | *s* | The string to trim. | *chars* | The characters to remove. |=== Create a wrapper for a safe string. == Synopses Declared in `<mrdocs/Dom/Value.hpp>` Create a wrapper for a safe string. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-dom-Value[Value] link:#mrdocs-safeString-0c[safeString](std::string_view str); ---- [.small]#link:#mrdocs-safeString-0c[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-dom-Value[dom::Value] link:#mrdocs-safeString-0b[safeString](link:#mrdocs-dom-Value[dom::Value] const& str); ---- [.small]#link:#mrdocs-safeString-0b[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<std::convertible_to<std::string_view> SV> link:#mrdocs-dom-Value[dom::Value] link:#mrdocs-safeString-04[safeString](SV const& str); ---- [.small]#link:#mrdocs-safeString-04[_» more..._]# == Return Value The safe string wrapper == Parameters [cols=2] |=== | Name | Description | *str* | The string to mark as safe |=== == See Also https://handlebarsjs.com/api‐reference/utilities.html#handlebars‐safestring‐string Create a wrapper for a safe string. == Synopsis Declared in `<mrdocs/Dom/Value.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-dom-Value[Value] safeString(std::string_view str); ---- == Description This string wrapper prevents the string from being escaped when the template is rendered. When a helper returns a safe string, it will be marked as safe and will not be escaped when rendered. The string will be rendered as if converted to a `dom::Value` and rendered as‐is. When constructing the string that will be marked as safe, any external content should be properly escaped using the `escapeExpression` function to avoid potential security concerns. == Return Value The safe string wrapper == Parameters [cols=2] |=== | Name | Description | *str* | The string to mark as safe |=== == See Also https://handlebarsjs.com/api‐reference/utilities.html#handlebars‐safestring‐string == Synopsis Declared in `<mrdocs/Dom/Value.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-dom-Value[dom::Value] safeString(link:#mrdocs-dom-Value[dom::Value] const& str); ---- == Synopsis Declared in `<mrdocs/Dom/Value.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<std::convertible_to<std::string_view> SV> link:#mrdocs-dom-Value[dom::Value] safeString(SV const& str); ---- Determine if a string starts with one of the specified characters == Synopsis Declared in `<mrdocs/Support/String.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr bool startsWithOneOf( std::string_view s, std::string_view chars) noexcept; ---- == Return Value if a string starts with one of the specified characters == Parameters [cols=2] |=== | Name | Description | *s* | The string to check. | *chars* | The characters to check for. |=== == Synopses Declared in `<mrdocs/ADT/Optional.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr void link:#mrdocs-swap-0e[swap]( link:#mrdocs-Error[Error]& lhs, link:#mrdocs-Error[Error]& rhs) noexcept; ---- [.small]#link:#mrdocs-swap-0e[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr void link:#mrdocs-swap-07c9[swap]( link:#mrdocs-Expected-01[Expected]& a, link:#mrdocs-Expected-01[Expected]& b) noexcept(noexcept(a.swap(b))) requires requires { a.swap(b); }; ---- [.small]#link:#mrdocs-swap-07c9[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr void link:#mrdocs-swap-03[swap]( link:#mrdocs-Expected-0a[Expected]& x, link:#mrdocs-Expected-0a[Expected]& y) noexcept(noexcept(x.swap(y))) requires requires { x.swap(y); }; ---- [.small]#link:#mrdocs-swap-03[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr void link:#mrdocs-swap-07ce[swap]( link:#mrdocs-Polymorphic[Polymorphic]& lhs, link:#mrdocs-Polymorphic[Polymorphic]& rhs) noexcept; ---- [.small]#link:#mrdocs-swap-07ce[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr void link:#mrdocs-swap-02[swap]( link:#mrdocs-Unexpected-0c[Unexpected]& x, link:#mrdocs-Unexpected-0c[Unexpected]& y) noexcept(noexcept(x.swap(y))) requires std::is_swappable_v<E>; ---- [.small]#link:#mrdocs-swap-02[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class T> constexpr void link:#mrdocs-swap-0b[swap]( link:#mrdocs-Optional-03[Optional<T&>]& a, link:#mrdocs-Optional-03[Optional<T&>]& b) noexcept; ---- [.small]#link:#mrdocs-swap-0b[_» more..._]# == Synopsis Declared in `<mrdocs/Support/Error.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr void swap( link:#mrdocs-Error[Error]& lhs, link:#mrdocs-Error[Error]& rhs) noexcept; ---- == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr void swap( link:#mrdocs-Expected-01[Expected]& a, link:#mrdocs-Expected-01[Expected]& b) noexcept(noexcept(a.swap(b))) requires requires { a.swap(b); }; ---- == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr void swap( link:#mrdocs-Expected-0a[Expected]& x, link:#mrdocs-Expected-0a[Expected]& y) noexcept(noexcept(x.swap(y))) requires requires { x.swap(y); }; ---- == Synopsis Declared in `<mrdocs/ADT/Polymorphic.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr void swap( link:#mrdocs-Polymorphic[Polymorphic]& lhs, link:#mrdocs-Polymorphic[Polymorphic]& rhs) noexcept; ---- == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr void swap( link:#mrdocs-Unexpected-0c[Unexpected]& x, link:#mrdocs-Unexpected-0c[Unexpected]& y) noexcept(noexcept(x.swap(y))) requires std::is_swappable_v<E>; ---- == Synopsis Declared in `<mrdocs/ADT/Optional.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class T> constexpr void swap( link:#mrdocs-Optional-03[Optional<T&>]& a, link:#mrdocs-Optional-03[Optional<T&>]& b) noexcept; ---- `tag_invoke` overloads == Synopses Declared in `<mrdocs/Metadata/Symbol/Param.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void link:#mrdocs-tag_invoke-06f[tag_invoke]( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-AutoKind[AutoKind] kind); ---- [.small]#link:#mrdocs-tag_invoke-06f[_» more..._]# Return the SymbolKind from a link:#mrdocs-dom-Value[`dom::Value`] string. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void link:#mrdocs-tag_invoke-0cd[tag_invoke]( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-ExtractionMode[ExtractionMode] kind); ---- [.small]#link:#mrdocs-tag_invoke-0cd[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void link:#mrdocs-tag_invoke-0f1c[tag_invoke]( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-FileKind[FileKind] kind); ---- [.small]#link:#mrdocs-tag_invoke-0f1c[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void link:#mrdocs-tag_invoke-0c9[tag_invoke]( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-OperatorKind[OperatorKind] kind); ---- [.small]#link:#mrdocs-tag_invoke-0c9[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void link:#mrdocs-tag_invoke-0f77[tag_invoke]( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-QualifierKind[QualifierKind] kind); ---- [.small]#link:#mrdocs-tag_invoke-0f77[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void link:#mrdocs-tag_invoke-0ae[tag_invoke]( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-RecordKeyKind[RecordKeyKind] kind); ---- [.small]#link:#mrdocs-tag_invoke-0ae[_» more..._]# Return the ReferenceKind as a link:#mrdocs-dom-Value[`dom::Value`] string. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void link:#mrdocs-tag_invoke-0bc[tag_invoke]( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-ReferenceKind[ReferenceKind] kind); ---- [.small]#link:#mrdocs-tag_invoke-0bc[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void link:#mrdocs-tag_invoke-0c2[tag_invoke]( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-TArgKind[TArgKind] kind); ---- [.small]#link:#mrdocs-tag_invoke-0c2[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void link:#mrdocs-tag_invoke-0904[tag_invoke]( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-TParamKeyKind[TParamKeyKind] kind); ---- [.small]#link:#mrdocs-tag_invoke-0904[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void link:#mrdocs-tag_invoke-08d[tag_invoke]( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-TypeKind[TypeKind] kind); ---- [.small]#link:#mrdocs-tag_invoke-08d[_» more..._]# Return the UsingClass as a link:#mrdocs-dom-Value[`dom::Value`] string. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void link:#mrdocs-tag_invoke-026[tag_invoke]( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-UsingClass[UsingClass] kind); ---- [.small]#link:#mrdocs-tag_invoke-026[_» more..._]# Return the AccessKind as a link:#mrdocs-dom-Value[`dom::Value`] string. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void link:#mrdocs-tag_invoke-037[tag_invoke]( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-AccessKind[AccessKind] const kind); ---- [.small]#link:#mrdocs-tag_invoke-037[_» more..._]# Return the ConstexprKind as a link:#mrdocs-dom-Value[`dom::Value`] string. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void link:#mrdocs-tag_invoke-06e[tag_invoke]( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-ConstexprKind[ConstexprKind] const kind); ---- [.small]#link:#mrdocs-tag_invoke-06e[_» more..._]# Return the FunctionClass from a link:#mrdocs-dom-Value[`dom::Value`] string. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void link:#mrdocs-tag_invoke-08c[tag_invoke]( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-FunctionClass[FunctionClass] const kind); ---- [.small]#link:#mrdocs-tag_invoke-08c[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void link:#mrdocs-tag_invoke-053[tag_invoke]( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-ListKind[ListKind] const kind); ---- [.small]#link:#mrdocs-tag_invoke-053[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void link:#mrdocs-tag_invoke-074[tag_invoke]( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-NameKind[NameKind] const kind); ---- [.small]#link:#mrdocs-tag_invoke-074[_» more..._]# Return the StorageClassKind as a link:#mrdocs-dom-Value[`dom::Value`] string. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void link:#mrdocs-tag_invoke-0d2[tag_invoke]( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-StorageClassKind[StorageClassKind] const kind); ---- [.small]#link:#mrdocs-tag_invoke-0d2[_» more..._]# Return the SymbolKind from a link:#mrdocs-dom-Value[`dom::Value`] string. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void link:#mrdocs-tag_invoke-02c3[tag_invoke]( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-SymbolKind[SymbolKind] const kind); ---- [.small]#link:#mrdocs-tag_invoke-02c3[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void link:#mrdocs-tag_invoke-04d[tag_invoke]( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-TableAlignmentKind[TableAlignmentKind] const kind); ---- [.small]#link:#mrdocs-tag_invoke-04d[_» more..._]# Return the ExplicitInfo as a link:#mrdocs-dom-Value[`dom::Value`] string. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void link:#mrdocs-tag_invoke-0cb[tag_invoke]( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-ExplicitInfo[ExplicitInfo] const& I); ---- [.small]#link:#mrdocs-tag_invoke-0cb[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void link:#mrdocs-tag_invoke-0d3[tag_invoke]( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-Location[Location] const& loc); ---- [.small]#link:#mrdocs-tag_invoke-0d3[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void link:#mrdocs-tag_invoke-004[tag_invoke]( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-NoexceptInfo[NoexceptInfo] const& info); ---- [.small]#link:#mrdocs-tag_invoke-004[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void link:#mrdocs-tag_invoke-086[tag_invoke]( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-SourceInfo[SourceInfo] const& I); ---- [.small]#link:#mrdocs-tag_invoke-086[_» more..._]# Convert SymbolID to dom::Value string in the DOM using toBase16 [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void link:#mrdocs-tag_invoke-0f1d[tag_invoke]( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-SymbolID[SymbolID] const& id); ---- [.small]#link:#mrdocs-tag_invoke-0f1d[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void link:#mrdocs-tag_invoke-087[tag_invoke]( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-BaseInfo[BaseInfo] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- [.small]#link:#mrdocs-tag_invoke-087[_» more..._]# Map the ConceptSymbol to a link:#mrdocs-dom-Value[`dom::Value`] object. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void link:#mrdocs-tag_invoke-03af[tag_invoke]( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-ConceptSymbol[ConceptSymbol] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- [.small]#link:#mrdocs-tag_invoke-03af[_» more..._]# Return the link:#mrdocs-DocComment[`DocComment`] as a link:#mrdocs-dom-Value[`dom::Value`] object. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void link:#mrdocs-tag_invoke-0b6[tag_invoke]( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-DocComment[DocComment] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- [.small]#link:#mrdocs-tag_invoke-0b6[_» more..._]# Map the EnumConstantSymbol to a link:#mrdocs-dom-Value[`dom::Value`] object. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void link:#mrdocs-tag_invoke-010[tag_invoke]( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-EnumConstantSymbol[EnumConstantSymbol] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- [.small]#link:#mrdocs-tag_invoke-010[_» more..._]# Map the EnumSymbol to a link:#mrdocs-dom-Value[`dom::Value`] object. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void link:#mrdocs-tag_invoke-0f6[tag_invoke]( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-EnumSymbol[EnumSymbol] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- [.small]#link:#mrdocs-tag_invoke-0f6[_» more..._]# Map the FriendInfo to a link:#mrdocs-dom-Value[`dom::Value`] object. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void link:#mrdocs-tag_invoke-01a[tag_invoke]( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-FriendInfo[FriendInfo] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- [.small]#link:#mrdocs-tag_invoke-01a[_» more..._]# Map the FunctionSymbol to a link:#mrdocs-dom-Value[`dom::Value`] object. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void link:#mrdocs-tag_invoke-0ea[tag_invoke]( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-FunctionSymbol[FunctionSymbol] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- [.small]#link:#mrdocs-tag_invoke-0ea[_» more..._]# Map the GuideSymbol to a link:#mrdocs-dom-Value[`dom::Value`] object. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void link:#mrdocs-tag_invoke-0674[tag_invoke]( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-GuideSymbol[GuideSymbol] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- [.small]#link:#mrdocs-tag_invoke-0674[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void link:#mrdocs-tag_invoke-079[tag_invoke]( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-Name[Name] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- [.small]#link:#mrdocs-tag_invoke-079[_» more..._]# Map the NamespaceAliasSymbol to a link:#mrdocs-dom-Value[`dom::Value`] object. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void link:#mrdocs-tag_invoke-03e[tag_invoke]( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-NamespaceAliasSymbol[NamespaceAliasSymbol] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- [.small]#link:#mrdocs-tag_invoke-03e[_» more..._]# Map the NamespaceSymbol to a link:#mrdocs-dom-Value[`dom::Value`] object. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void link:#mrdocs-tag_invoke-0e9[tag_invoke]( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-NamespaceSymbol[NamespaceSymbol] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- [.small]#link:#mrdocs-tag_invoke-0e9[_» more..._]# Map the NamespaceTranche to a link:#mrdocs-dom-Value[`dom::Value`] object. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void link:#mrdocs-tag_invoke-03f[tag_invoke]( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-NamespaceTranche[NamespaceTranche] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- [.small]#link:#mrdocs-tag_invoke-03f[_» more..._]# Map the OverloadsSymbol to a link:#mrdocs-dom-Value[`dom::Value`] object. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void link:#mrdocs-tag_invoke-07c[tag_invoke]( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-OverloadsSymbol[OverloadsSymbol] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- [.small]#link:#mrdocs-tag_invoke-07c[_» more..._]# Return the Param as a link:#mrdocs-dom-Value[`dom::Value`] object. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void link:#mrdocs-tag_invoke-094[tag_invoke]( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-Param[Param] const& p, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- [.small]#link:#mrdocs-tag_invoke-094[_» more..._]# Map the RecordInterface to a link:#mrdocs-dom-Value[`dom::Value`] object. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void link:#mrdocs-tag_invoke-0de[tag_invoke]( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-RecordInterface[RecordInterface] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- [.small]#link:#mrdocs-tag_invoke-0de[_» more..._]# Map the RecordSymbol to a link:#mrdocs-dom-Value[`dom::Value`] object. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void link:#mrdocs-tag_invoke-0c8[tag_invoke]( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-RecordSymbol[RecordSymbol] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- [.small]#link:#mrdocs-tag_invoke-0c8[_» more..._]# Map the RecordTranche to a link:#mrdocs-dom-Value[`dom::Value`] object. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void link:#mrdocs-tag_invoke-0fa[tag_invoke]( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-RecordTranche[RecordTranche] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- [.small]#link:#mrdocs-tag_invoke-0fa[_» more..._]# Return the Symbol as a link:#mrdocs-dom-Value[`dom::Value`] object. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void link:#mrdocs-tag_invoke-045[tag_invoke]( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-Symbol[Symbol] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- [.small]#link:#mrdocs-tag_invoke-045[_» more..._]# Convert SymbolID to dom::Value object in the DOM using Corpus [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void link:#mrdocs-tag_invoke-055[tag_invoke]( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-SymbolID[SymbolID] const& id, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- [.small]#link:#mrdocs-tag_invoke-055[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void link:#mrdocs-tag_invoke-0902[tag_invoke]( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-TArg[TArg] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- [.small]#link:#mrdocs-tag_invoke-0902[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void link:#mrdocs-tag_invoke-091c[tag_invoke]( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-TParam[TParam] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- [.small]#link:#mrdocs-tag_invoke-091c[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void link:#mrdocs-tag_invoke-05b[tag_invoke]( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-TemplateInfo[TemplateInfo] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- [.small]#link:#mrdocs-tag_invoke-05b[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void link:#mrdocs-tag_invoke-00c[tag_invoke]( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-Type[Type] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- [.small]#link:#mrdocs-tag_invoke-00c[_» more..._]# Map the TypedefSymbol to a link:#mrdocs-dom-Value[`dom::Value`] object. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void link:#mrdocs-tag_invoke-052[tag_invoke]( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-TypedefSymbol[TypedefSymbol] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- [.small]#link:#mrdocs-tag_invoke-052[_» more..._]# Map the UsingSymbol to a link:#mrdocs-dom-Value[`dom::Value`] object. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void link:#mrdocs-tag_invoke-022[tag_invoke]( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-UsingSymbol[UsingSymbol] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- [.small]#link:#mrdocs-tag_invoke-022[_» more..._]# Map the VariableSymbol to a link:#mrdocs-dom-Value[`dom::Value`] object. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void link:#mrdocs-tag_invoke-051[tag_invoke]( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-VariableSymbol[VariableSymbol] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- [.small]#link:#mrdocs-tag_invoke-051[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void link:#mrdocs-tag_invoke-09b[tag_invoke]( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-Optional-03[Optional<TemplateInfo>] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- [.small]#link:#mrdocs-tag_invoke-09b[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void link:#mrdocs-tag_invoke-02c9[tag_invoke]( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-Optional-03[Optional<Polymorphic<Name>>] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- [.small]#link:#mrdocs-tag_invoke-02c9[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void link:#mrdocs-tag_invoke-03a2[tag_invoke]( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-Optional-03[Optional<Polymorphic<Type>>] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- [.small]#link:#mrdocs-tag_invoke-03a2[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void link:#mrdocs-tag_invoke-030[tag_invoke]( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-Polymorphic[Polymorphic<Name>] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- [.small]#link:#mrdocs-tag_invoke-030[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void link:#mrdocs-tag_invoke-011[tag_invoke]( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-Polymorphic[Polymorphic<TArg>] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- [.small]#link:#mrdocs-tag_invoke-011[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void link:#mrdocs-tag_invoke-0f7d[tag_invoke]( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-Polymorphic[Polymorphic<TParam>] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- [.small]#link:#mrdocs-tag_invoke-0f7d[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void link:#mrdocs-tag_invoke-0a8[tag_invoke]( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-Polymorphic[Polymorphic<Type>] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- [.small]#link:#mrdocs-tag_invoke-0a8[_» more..._]# Convert SymbolID pointers to dom::Value or null. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void link:#mrdocs-tag_invoke-0671[tag_invoke]( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, std::unique_ptr<SymbolID> const& t, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- [.small]#link:#mrdocs-tag_invoke-0671[_» more..._]# Map the link:#mrdocs-DocComment[`DocComment`] to a link:#mrdocs-dom-Object[`dom::Object`]. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class IO> void link:#mrdocs-tag_invoke-024[tag_invoke]( link:#mrdocs-dom-LazyObjectMapTag[dom::LazyObjectMapTag], IO& io, link:#mrdocs-DocComment[DocComment] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- [.small]#link:#mrdocs-tag_invoke-024[_» more..._]# Map a NamespaceTranche to a dom::Object. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class IO> void link:#mrdocs-tag_invoke-091f[tag_invoke]( link:#mrdocs-dom-LazyObjectMapTag[dom::LazyObjectMapTag], IO& io, link:#mrdocs-NamespaceTranche[NamespaceTranche] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- [.small]#link:#mrdocs-tag_invoke-091f[_» more..._]# Map a RecordInterface to a dom::Object. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class IO> void link:#mrdocs-tag_invoke-0ec[tag_invoke]( link:#mrdocs-dom-LazyObjectMapTag[dom::LazyObjectMapTag], IO& io, link:#mrdocs-RecordInterface[RecordInterface] const& I, link:#mrdocs-DomCorpus[DomCorpus] const*); ---- [.small]#link:#mrdocs-tag_invoke-0ec[_» more..._]# Map a RecordTranche to a dom::Object. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class IO> void link:#mrdocs-tag_invoke-048[tag_invoke]( link:#mrdocs-dom-LazyObjectMapTag[dom::LazyObjectMapTag], IO& io, link:#mrdocs-RecordTranche[RecordTranche] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- [.small]#link:#mrdocs-tag_invoke-048[_» more..._]# Map the Symbol to a link:#mrdocs-dom-Object[`dom::Object`]. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class IO> void link:#mrdocs-tag_invoke-088[tag_invoke]( link:#mrdocs-dom-LazyObjectMapTag[dom::LazyObjectMapTag], IO& io, link:#mrdocs-Symbol[Symbol] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- [.small]#link:#mrdocs-tag_invoke-088[_» more..._]# Map a ConceptSymbol to a dom::Object. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class IO> void link:#mrdocs-tag_invoke-0a2[tag_invoke]( link:#mrdocs-dom-LazyObjectMapTag[dom::LazyObjectMapTag] t, IO& io, link:#mrdocs-ConceptSymbol[ConceptSymbol] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- [.small]#link:#mrdocs-tag_invoke-0a2[_» more..._]# Map a EnumConstantSymbol to a dom::Object. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class IO> void link:#mrdocs-tag_invoke-012[tag_invoke]( link:#mrdocs-dom-LazyObjectMapTag[dom::LazyObjectMapTag] t, IO& io, link:#mrdocs-EnumConstantSymbol[EnumConstantSymbol] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- [.small]#link:#mrdocs-tag_invoke-012[_» more..._]# Map a EnumSymbol to a dom::Object. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class IO> void link:#mrdocs-tag_invoke-0b4[tag_invoke]( link:#mrdocs-dom-LazyObjectMapTag[dom::LazyObjectMapTag] t, IO& io, link:#mrdocs-EnumSymbol[EnumSymbol] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- [.small]#link:#mrdocs-tag_invoke-0b4[_» more..._]# Map a FriendInfo to a dom::Object. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class IO> void link:#mrdocs-tag_invoke-013a[tag_invoke]( link:#mrdocs-dom-LazyObjectMapTag[dom::LazyObjectMapTag] t, IO& io, link:#mrdocs-FriendInfo[FriendInfo] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- [.small]#link:#mrdocs-tag_invoke-013a[_» more..._]# Map a FunctionSymbol to a dom::Object. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class IO> void link:#mrdocs-tag_invoke-0e0[tag_invoke]( link:#mrdocs-dom-LazyObjectMapTag[dom::LazyObjectMapTag] t, IO& io, link:#mrdocs-FunctionSymbol[FunctionSymbol] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- [.small]#link:#mrdocs-tag_invoke-0e0[_» more..._]# Map a GuideSymbol to a dom::Object. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class IO> void link:#mrdocs-tag_invoke-0e1[tag_invoke]( link:#mrdocs-dom-LazyObjectMapTag[dom::LazyObjectMapTag] t, IO& io, link:#mrdocs-GuideSymbol[GuideSymbol] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- [.small]#link:#mrdocs-tag_invoke-0e1[_» more..._]# Map a NamespaceAliasSymbol to a dom::Object. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class IO> void link:#mrdocs-tag_invoke-013b[tag_invoke]( link:#mrdocs-dom-LazyObjectMapTag[dom::LazyObjectMapTag] t, IO& io, link:#mrdocs-NamespaceAliasSymbol[NamespaceAliasSymbol] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- [.small]#link:#mrdocs-tag_invoke-013b[_» more..._]# Map a NamespaceSymbol to a dom::Object. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class IO> void link:#mrdocs-tag_invoke-0e5[tag_invoke]( link:#mrdocs-dom-LazyObjectMapTag[dom::LazyObjectMapTag] t, IO& io, link:#mrdocs-NamespaceSymbol[NamespaceSymbol] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- [.small]#link:#mrdocs-tag_invoke-0e5[_» more..._]# Map a OverloadsSymbol to a dom::Object. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class IO> void link:#mrdocs-tag_invoke-056[tag_invoke]( link:#mrdocs-dom-LazyObjectMapTag[dom::LazyObjectMapTag] t, IO& io, link:#mrdocs-OverloadsSymbol[OverloadsSymbol] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- [.small]#link:#mrdocs-tag_invoke-056[_» more..._]# Map a RecordSymbol to a dom::Object. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class IO> void link:#mrdocs-tag_invoke-0db[tag_invoke]( link:#mrdocs-dom-LazyObjectMapTag[dom::LazyObjectMapTag] t, IO& io, link:#mrdocs-RecordSymbol[RecordSymbol] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- [.small]#link:#mrdocs-tag_invoke-0db[_» more..._]# Map a TypedefSymbol to a dom::Object. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class IO> void link:#mrdocs-tag_invoke-068[tag_invoke]( link:#mrdocs-dom-LazyObjectMapTag[dom::LazyObjectMapTag] t, IO& io, link:#mrdocs-TypedefSymbol[TypedefSymbol] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- [.small]#link:#mrdocs-tag_invoke-068[_» more..._]# Map a UsingSymbol to a dom::Object. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class IO> void link:#mrdocs-tag_invoke-0d7[tag_invoke]( link:#mrdocs-dom-LazyObjectMapTag[dom::LazyObjectMapTag] t, IO& io, link:#mrdocs-UsingSymbol[UsingSymbol] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- [.small]#link:#mrdocs-tag_invoke-0d7[_» more..._]# Map a VariableSymbol to a dom::Object. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class IO> void link:#mrdocs-tag_invoke-0bd[tag_invoke]( link:#mrdocs-dom-LazyObjectMapTag[dom::LazyObjectMapTag] t, IO& io, link:#mrdocs-VariableSymbol[VariableSymbol] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- [.small]#link:#mrdocs-tag_invoke-0bd[_» more..._]# Map the Polymorphic Symbol to a link:#mrdocs-dom-Object[`dom::Object`]. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< class IO, link:#mrdocs-polymorphic_storage_for[polymorphic_storage_for<Symbol>] PolymorphicSymbol> requires std::derived_from<PolymorphicSymbol, Symbol> void link:#mrdocs-tag_invoke-033[tag_invoke]( link:#mrdocs-dom-LazyObjectMapTag[dom::LazyObjectMapTag], IO& io, PolymorphicSymbol const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- [.small]#link:#mrdocs-tag_invoke-033[_» more..._]# == Parameters [cols=2] |=== | Name | Description | *v* | The output value. | *kind* | The UsingClass to convert. | *I* | The ExplicitInfo to convert. | *domCorpus* | The DomCorpus used to resolve references. | *t* | The SymbolID pointer to convert. If null, the dom::Value is set to null. | *io* | The output object. |=== == Synopsis Declared in `<mrdocs/Metadata/Type/AutoKind.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void tag_invoke( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-AutoKind[AutoKind] kind); ---- Return the SymbolKind from a link:#mrdocs-dom-Value[`dom::Value`] string. == Synopsis Declared in `<mrdocs/Metadata/Symbol/ExtractionMode.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void tag_invoke( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-ExtractionMode[ExtractionMode] kind); ---- == Parameters [cols=2] |=== | Name | Description | *v* | A variant container for any kind of Dom value. | *kind* | Determine why a symbol is extracted |=== == Synopsis Declared in `<mrdocs/Metadata/Symbol/FileKind.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void tag_invoke( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-FileKind[FileKind] kind); ---- == Synopsis Declared in `<mrdocs/Metadata/Specifiers/OperatorKind.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void tag_invoke( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-OperatorKind[OperatorKind] kind); ---- == Synopsis Declared in `<mrdocs/Metadata/Type/QualifierKind.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void tag_invoke( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-QualifierKind[QualifierKind] kind); ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/RecordKeyKind.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void tag_invoke( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-RecordKeyKind[RecordKeyKind] kind); ---- Return the ReferenceKind as a link:#mrdocs-dom-Value[`dom::Value`] string. == Synopsis Declared in `<mrdocs/Metadata/Specifiers/ReferenceKind.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void tag_invoke( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-ReferenceKind[ReferenceKind] kind); ---- == Parameters [cols=2] |=== | Name | Description | *v* | A variant container for any kind of Dom value. | *kind* | Reference type kinds |=== == Synopsis Declared in `<mrdocs/Metadata/TArg/TArgKind.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void tag_invoke( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-TArgKind[TArgKind] kind); ---- == Synopsis Declared in `<mrdocs/Metadata/TParam/TParamKeyKind.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void tag_invoke( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-TParamKeyKind[TParamKeyKind] kind); ---- == Synopsis Declared in `<mrdocs/Metadata/Type/TypeKind.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void tag_invoke( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-TypeKind[TypeKind] kind); ---- Return the UsingClass as a link:#mrdocs-dom-Value[`dom::Value`] string. == Synopsis Declared in `<mrdocs/Metadata/Symbol/Using.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void tag_invoke( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-UsingClass[UsingClass] kind); ---- == Parameters [cols=2] |=== | Name | Description | *v* | The output value. | *kind* | The UsingClass to convert. |=== Return the AccessKind as a link:#mrdocs-dom-Value[`dom::Value`] string. == Synopsis Declared in `<mrdocs/Metadata/Specifiers/AccessKind.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void tag_invoke( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-AccessKind[AccessKind] const kind); ---- == Parameters [cols=2] |=== | Name | Description | *v* | A variant container for any kind of Dom value. | *kind* | Access specifier. |=== Return the ConstexprKind as a link:#mrdocs-dom-Value[`dom::Value`] string. == Synopsis Declared in `<mrdocs/Metadata/Specifiers/ConstexprKind.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void tag_invoke( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-ConstexprKind[ConstexprKind] const kind); ---- == Parameters [cols=2] |=== | Name | Description | *v* | A variant container for any kind of Dom value. | *kind* | `constexpr`/`consteval` specifier kinds |=== Return the FunctionClass from a link:#mrdocs-dom-Value[`dom::Value`] string. == Synopsis Declared in `<mrdocs/Metadata/Symbol/FunctionClass.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void tag_invoke( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-FunctionClass[FunctionClass] const kind); ---- == Parameters [cols=2] |=== | Name | Description | *v* | A variant container for any kind of Dom value. | *kind* | Function classifications |=== == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/ListKind.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void tag_invoke( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-ListKind[ListKind] const kind); ---- == Synopsis Declared in `<mrdocs/Metadata/Name/NameKind.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void tag_invoke( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-NameKind[NameKind] const kind); ---- Return the StorageClassKind as a link:#mrdocs-dom-Value[`dom::Value`] string. == Synopsis Declared in `<mrdocs/Metadata/Specifiers/StorageClassKind.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void tag_invoke( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-StorageClassKind[StorageClassKind] const kind); ---- == Parameters [cols=2] |=== | Name | Description | *v* | A variant container for any kind of Dom value. | *kind* | Storage class kinds |=== Return the SymbolKind from a link:#mrdocs-dom-Value[`dom::Value`] string. == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolKind.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void tag_invoke( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-SymbolKind[SymbolKind] const kind); ---- == Parameters [cols=2] |=== | Name | Description | *v* | A variant container for any kind of Dom value. | *kind* | Info variant discriminator |=== == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/TableAlignmentKind.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void tag_invoke( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-TableAlignmentKind[TableAlignmentKind] const kind); ---- Return the ExplicitInfo as a link:#mrdocs-dom-Value[`dom::Value`] string. == Synopsis Declared in `<mrdocs/Metadata/Specifiers/ExplicitInfo.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void tag_invoke( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-ExplicitInfo[ExplicitInfo] const& I); ---- == Parameters [cols=2] |=== | Name | Description | *v* | The output parameter to receive the dom::Value. | *I* | The ExplicitInfo to convert. |=== == Synopsis Declared in `<mrdocs/Metadata/Symbol/Location.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void tag_invoke( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-Location[Location] const& loc); ---- == Synopsis Declared in `<mrdocs/Metadata/Specifiers/NoexceptInfo.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void tag_invoke( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-NoexceptInfo[NoexceptInfo] const& info); ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/Source.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void tag_invoke( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-SourceInfo[SourceInfo] const& I); ---- Convert SymbolID to dom::Value string in the DOM using toBase16 == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolID.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void tag_invoke( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-SymbolID[SymbolID] const& id); ---- == Parameters [cols=2] |=== | Name | Description | *v* | A variant container for any kind of Dom value. | *id* | A unique identifier for a symbol. |=== == Synopsis Declared in `<mrdocs/Metadata/Symbol/RecordBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void tag_invoke( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-BaseInfo[BaseInfo] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- Map the ConceptSymbol to a link:#mrdocs-dom-Value[`dom::Value`] object. == Synopsis Declared in `<mrdocs/Metadata/Symbol/Concept.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void tag_invoke( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-ConceptSymbol[ConceptSymbol] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- == Parameters [cols=2] |=== | Name | Description | *v* | A variant container for any kind of Dom value. | *I* | Info for concepts. | *domCorpus* | Front‐end factory for producing Dom nodes. |=== Return the link:#mrdocs-DocComment[`DocComment`] as a link:#mrdocs-dom-Value[`dom::Value`] object. == Synopsis Declared in `<mrdocs/Metadata/DocComment.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void tag_invoke( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-DocComment[DocComment] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- == Parameters [cols=2] |=== | Name | Description | *v* | A variant container for any kind of Dom value. | *I* | A processed documentation comment attached to a declaration. | *domCorpus* | Front‐end factory for producing Dom nodes. |=== Map the EnumConstantSymbol to a link:#mrdocs-dom-Value[`dom::Value`] object. == Synopsis Declared in `<mrdocs/Metadata/Symbol/EnumConstant.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void tag_invoke( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-EnumConstantSymbol[EnumConstantSymbol] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- == Parameters [cols=2] |=== | Name | Description | *v* | A variant container for any kind of Dom value. | *I* | Info for enum constants. | *domCorpus* | Front‐end factory for producing Dom nodes. |=== Map the EnumSymbol to a link:#mrdocs-dom-Value[`dom::Value`] object. == Synopsis Declared in `<mrdocs/Metadata/Symbol/Enum.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void tag_invoke( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-EnumSymbol[EnumSymbol] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- == Parameters [cols=2] |=== | Name | Description | *v* | The output parameter to receive the dom::Value. | *I* | The EnumSymbol to convert. | *domCorpus* | The DomCorpus used to resolve references. |=== Map the FriendInfo to a link:#mrdocs-dom-Value[`dom::Value`] object. == Synopsis Declared in `<mrdocs/Metadata/Symbol/Friend.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void tag_invoke( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-FriendInfo[FriendInfo] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- == Parameters [cols=2] |=== | Name | Description | *v* | A variant container for any kind of Dom value. | *I* | Info for friend declarations. | *domCorpus* | Front‐end factory for producing Dom nodes. |=== Map the FunctionSymbol to a link:#mrdocs-dom-Value[`dom::Value`] object. == Synopsis Declared in `<mrdocs/Metadata/Symbol/Function.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void tag_invoke( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-FunctionSymbol[FunctionSymbol] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- == Parameters [cols=2] |=== | Name | Description | *v* | The output parameter to receive the dom::Value. | *I* | The FunctionSymbol to convert. | *domCorpus* | The DomCorpus used to resolve references. |=== Map the GuideSymbol to a link:#mrdocs-dom-Value[`dom::Value`] object. == Synopsis Declared in `<mrdocs/Metadata/Symbol/Guide.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void tag_invoke( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-GuideSymbol[GuideSymbol] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- == Parameters [cols=2] |=== | Name | Description | *v* | A variant container for any kind of Dom value. | *I* | Info for deduction guides. | *domCorpus* | Front‐end factory for producing Dom nodes. |=== == Synopsis Declared in `<mrdocs/Metadata/Name/NameBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void tag_invoke( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-Name[Name] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- Map the NamespaceAliasSymbol to a link:#mrdocs-dom-Value[`dom::Value`] object. == Synopsis Declared in `<mrdocs/Metadata/Symbol/NamespaceAlias.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void tag_invoke( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-NamespaceAliasSymbol[NamespaceAliasSymbol] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- == Parameters [cols=2] |=== | Name | Description | *v* | A variant container for any kind of Dom value. | *I* | Info for namespace aliases. | *domCorpus* | Front‐end factory for producing Dom nodes. |=== Map the NamespaceSymbol to a link:#mrdocs-dom-Value[`dom::Value`] object. == Synopsis Declared in `<mrdocs/Metadata/Symbol/Namespace.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void tag_invoke( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-NamespaceSymbol[NamespaceSymbol] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- == Parameters [cols=2] |=== | Name | Description | *v* | A variant container for any kind of Dom value. | *I* | Describes a namespace. | *domCorpus* | Front‐end factory for producing Dom nodes. |=== Map the NamespaceTranche to a link:#mrdocs-dom-Value[`dom::Value`] object. == Synopsis Declared in `<mrdocs/Metadata/Symbol/Namespace.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void tag_invoke( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-NamespaceTranche[NamespaceTranche] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- == Parameters [cols=2] |=== | Name | Description | *v* | A variant container for any kind of Dom value. | *I* | The members of a Namespace | *domCorpus* | Front‐end factory for producing Dom nodes. |=== Map the OverloadsSymbol to a link:#mrdocs-dom-Value[`dom::Value`] object. == Synopsis Declared in `<mrdocs/Metadata/Symbol/Overloads.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void tag_invoke( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-OverloadsSymbol[OverloadsSymbol] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- == Parameters [cols=2] |=== | Name | Description | *v* | A variant container for any kind of Dom value. | *I* | Represents a set of function overloads. | *domCorpus* | Front‐end factory for producing Dom nodes. |=== Return the Param as a link:#mrdocs-dom-Value[`dom::Value`] object. == Synopsis Declared in `<mrdocs/Metadata/Symbol/Param.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void tag_invoke( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-Param[Param] const& p, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- == Parameters [cols=2] |=== | Name | Description | *v* | A variant container for any kind of Dom value. | *p* | Represents a single function parameter | *domCorpus* | Front‐end factory for producing Dom nodes. |=== Map the RecordInterface to a link:#mrdocs-dom-Value[`dom::Value`] object. == Synopsis Declared in `<mrdocs/Metadata/Symbol/RecordInterface.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void tag_invoke( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-RecordInterface[RecordInterface] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- == Parameters [cols=2] |=== | Name | Description | *v* | A variant container for any kind of Dom value. | *I* | The aggregated interface for a given struct, class, or union. | *domCorpus* | Front‐end factory for producing Dom nodes. |=== Map the RecordSymbol to a link:#mrdocs-dom-Value[`dom::Value`] object. == Synopsis Declared in `<mrdocs/Metadata/Symbol/Record.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void tag_invoke( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-RecordSymbol[RecordSymbol] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- == Parameters [cols=2] |=== | Name | Description | *v* | A variant container for any kind of Dom value. | *I* | Metadata for struct, class, or union. | *domCorpus* | Front‐end factory for producing Dom nodes. |=== Map the RecordTranche to a link:#mrdocs-dom-Value[`dom::Value`] object. == Synopsis Declared in `<mrdocs/Metadata/Symbol/RecordTranche.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void tag_invoke( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-RecordTranche[RecordTranche] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- == Parameters [cols=2] |=== | Name | Description | *v* | A variant container for any kind of Dom value. | *I* | A group of members that have the same access specifier. | *domCorpus* | Front‐end factory for producing Dom nodes. |=== Return the Symbol as a link:#mrdocs-dom-Value[`dom::Value`] object. == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void tag_invoke( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-Symbol[Symbol] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- == Parameters [cols=2] |=== | Name | Description | *v* | A variant container for any kind of Dom value. | *I* | Base class with common properties of all symbols | *domCorpus* | Front‐end factory for producing Dom nodes. |=== Convert SymbolID to dom::Value object in the DOM using Corpus == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolID.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void tag_invoke( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-SymbolID[SymbolID] const& id, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- == Parameters [cols=2] |=== | Name | Description | *v* | A variant container for any kind of Dom value. | *id* | A unique identifier for a symbol. | *domCorpus* | Front‐end factory for producing Dom nodes. |=== == Synopsis Declared in `<mrdocs/Metadata/TArg/TArgBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void tag_invoke( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-TArg[TArg] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- == Synopsis Declared in `<mrdocs/Metadata/TParam/TParamBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void tag_invoke( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-TParam[TParam] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- == Synopsis Declared in `<mrdocs/Metadata/Template.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void tag_invoke( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-TemplateInfo[TemplateInfo] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- == Synopsis Declared in `<mrdocs/Metadata/Type/TypeBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void tag_invoke( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-Type[Type] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- Map the TypedefSymbol to a link:#mrdocs-dom-Value[`dom::Value`] object. == Synopsis Declared in `<mrdocs/Metadata/Symbol/Typedef.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void tag_invoke( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-TypedefSymbol[TypedefSymbol] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- == Parameters [cols=2] |=== | Name | Description | *v* | The output parameter to receive the dom::Value. | *I* | The TypedefSymbol to convert. | *domCorpus* | The DomCorpus used to resolve references. |=== Map the UsingSymbol to a link:#mrdocs-dom-Value[`dom::Value`] object. == Synopsis Declared in `<mrdocs/Metadata/Symbol/Using.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void tag_invoke( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-UsingSymbol[UsingSymbol] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- == Parameters [cols=2] |=== | Name | Description | *v* | A variant container for any kind of Dom value. | *I* | Info for using declarations. | *domCorpus* | Front‐end factory for producing Dom nodes. |=== Map the VariableSymbol to a link:#mrdocs-dom-Value[`dom::Value`] object. == Synopsis Declared in `<mrdocs/Metadata/Symbol/Variable.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void tag_invoke( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-VariableSymbol[VariableSymbol] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- == Parameters [cols=2] |=== | Name | Description | *v* | A variant container for any kind of Dom value. | *I* | A variable. | *domCorpus* | Front‐end factory for producing Dom nodes. |=== == Synopsis Declared in `<mrdocs/Metadata/Template.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void tag_invoke( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-Optional-03[Optional<TemplateInfo>] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- == Synopsis Declared in `<mrdocs/Metadata/Name.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void tag_invoke( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-Optional-03[Optional<Polymorphic<Name>>] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- == Synopsis Declared in `<mrdocs/Metadata/Type.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void tag_invoke( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-Optional-03[Optional<Polymorphic<Type>>] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- == Synopsis Declared in `<mrdocs/Metadata/Name.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void tag_invoke( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-Polymorphic[Polymorphic<Name>] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- == Synopsis Declared in `<mrdocs/Metadata/TArg.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void tag_invoke( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-Polymorphic[Polymorphic<TArg>] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- == Synopsis Declared in `<mrdocs/Metadata/TParam.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void tag_invoke( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-Polymorphic[Polymorphic<TParam>] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- == Synopsis Declared in `<mrdocs/Metadata/Type.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void tag_invoke( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, link:#mrdocs-Polymorphic[Polymorphic<Type>] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- Convert SymbolID pointers to dom::Value or null. == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolID.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void tag_invoke( link:#mrdocs-dom-ValueFromTag[dom::ValueFromTag], link:#mrdocs-dom-Value[dom::Value]& v, std::unique_ptr<SymbolID> const& t, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- == Parameters [cols=2] |=== | Name | Description | *v* | The output parameter to receive the dom::Value. | *t* | The SymbolID pointer to convert. If null, the dom::Value is set to null. | *domCorpus* | The DomCorpus to use, or nullptr. If null, the SymbolID is converted to a base16 string. |=== Map the link:#mrdocs-DocComment[`DocComment`] to a link:#mrdocs-dom-Object[`dom::Object`]. == Synopsis Declared in `<mrdocs/Metadata/DocComment.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class IO> void tag_invoke( link:#mrdocs-dom-LazyObjectMapTag[dom::LazyObjectMapTag], IO& io, link:#mrdocs-DocComment[DocComment] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- == Parameters [cols=2] |=== | Name | Description | *t* | The tag. | *io* | The output object. | *I* | The DocComment to map. | *domCorpus* | The DOM corpus, or nullptr. |=== Map a NamespaceTranche to a dom::Object. == Synopsis Declared in `<mrdocs/Metadata/Symbol/Namespace.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class IO> void tag_invoke( link:#mrdocs-dom-LazyObjectMapTag[dom::LazyObjectMapTag], IO& io, link:#mrdocs-NamespaceTranche[NamespaceTranche] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- == Parameters [cols=2] |=== | Name | Description | *io* | The IO object to use for mapping. | *I* | The NamespaceTranche to map. | *domCorpus* | The DomCorpus used to create |=== Map a RecordInterface to a dom::Object. == Synopsis Declared in `<mrdocs/Metadata/Symbol/RecordInterface.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class IO> void tag_invoke( link:#mrdocs-dom-LazyObjectMapTag[dom::LazyObjectMapTag], IO& io, link:#mrdocs-RecordInterface[RecordInterface] const& I, link:#mrdocs-DomCorpus[DomCorpus] const*); ---- == Parameters [cols=2] |=== | Name | Description | *io* | The output parameter to receive the dom::Object. | *I* | The RecordInterface to convert. |=== Map a RecordTranche to a dom::Object. == Synopsis Declared in `<mrdocs/Metadata/Symbol/RecordTranche.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class IO> void tag_invoke( link:#mrdocs-dom-LazyObjectMapTag[dom::LazyObjectMapTag], IO& io, link:#mrdocs-RecordTranche[RecordTranche] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- == Parameters [cols=2] |=== | Name | Description | *io* | The output parameter to receive the dom::Object. | *I* | The RecordTranche to convert. | *domCorpus* | The DomCorpus used to resolve references. |=== Map the Symbol to a link:#mrdocs-dom-Object[`dom::Object`]. == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class IO> void tag_invoke( link:#mrdocs-dom-LazyObjectMapTag[dom::LazyObjectMapTag], IO& io, link:#mrdocs-Symbol[Symbol] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- == Parameters [cols=2] |=== | Name | Description | *io* | The output parameter to receive the dom::Object. | *I* | The Symbol to convert. | *domCorpus* | The DomCorpus used to resolve references. |=== Map a ConceptSymbol to a dom::Object. == Synopsis Declared in `<mrdocs/Metadata/Symbol/Concept.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class IO> void tag_invoke( link:#mrdocs-dom-LazyObjectMapTag[dom::LazyObjectMapTag] t, IO& io, link:#mrdocs-ConceptSymbol[ConceptSymbol] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- == Parameters [cols=2] |=== | Name | Description | *t* | The tag type. | *io* | The IO object to use for mapping. | *I* | The ConceptSymbol to map. | *domCorpus* | The DomCorpus used to create |=== Map a EnumConstantSymbol to a dom::Object. == Synopsis Declared in `<mrdocs/Metadata/Symbol/EnumConstant.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class IO> void tag_invoke( link:#mrdocs-dom-LazyObjectMapTag[dom::LazyObjectMapTag] t, IO& io, link:#mrdocs-EnumConstantSymbol[EnumConstantSymbol] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- == Parameters [cols=2] |=== | Name | Description | *t* | The tag type. | *io* | The IO object to use for mapping. | *I* | The EnumConstantSymbol to map. | *domCorpus* | The DomCorpus used to create |=== Map a EnumSymbol to a dom::Object. == Synopsis Declared in `<mrdocs/Metadata/Symbol/Enum.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class IO> void tag_invoke( link:#mrdocs-dom-LazyObjectMapTag[dom::LazyObjectMapTag] t, IO& io, link:#mrdocs-EnumSymbol[EnumSymbol] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- == Parameters [cols=2] |=== | Name | Description | *t* | The tag type. | *io* | The IO object to use for mapping. | *I* | The EnumSymbol to map. | *domCorpus* | The DomCorpus used to create |=== Map a FriendInfo to a dom::Object. == Synopsis Declared in `<mrdocs/Metadata/Symbol/Friend.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class IO> void tag_invoke( link:#mrdocs-dom-LazyObjectMapTag[dom::LazyObjectMapTag] t, IO& io, link:#mrdocs-FriendInfo[FriendInfo] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- == Parameters [cols=2] |=== | Name | Description | *t* | The tag type. | *io* | The IO object to use for mapping. | *I* | The FriendInfo to map. | *domCorpus* | The DomCorpus used to create |=== Map a FunctionSymbol to a dom::Object. == Synopsis Declared in `<mrdocs/Metadata/Symbol/Function.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class IO> void tag_invoke( link:#mrdocs-dom-LazyObjectMapTag[dom::LazyObjectMapTag] t, IO& io, link:#mrdocs-FunctionSymbol[FunctionSymbol] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- == Parameters [cols=2] |=== | Name | Description | *t* | The tag type. | *io* | The IO object to use for mapping. | *I* | The FunctionSymbol to map. | *domCorpus* | The DomCorpus used to create |=== Map a GuideSymbol to a dom::Object. == Synopsis Declared in `<mrdocs/Metadata/Symbol/Guide.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class IO> void tag_invoke( link:#mrdocs-dom-LazyObjectMapTag[dom::LazyObjectMapTag] t, IO& io, link:#mrdocs-GuideSymbol[GuideSymbol] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- == Parameters [cols=2] |=== | Name | Description | *t* | The tag type. | *io* | The IO object to use for mapping. | *I* | The GuideSymbol to map. | *domCorpus* | The DomCorpus used to create |=== Map a NamespaceAliasSymbol to a dom::Object. == Synopsis Declared in `<mrdocs/Metadata/Symbol/NamespaceAlias.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class IO> void tag_invoke( link:#mrdocs-dom-LazyObjectMapTag[dom::LazyObjectMapTag] t, IO& io, link:#mrdocs-NamespaceAliasSymbol[NamespaceAliasSymbol] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- == Parameters [cols=2] |=== | Name | Description | *t* | The tag type. | *io* | The IO object to use for mapping. | *I* | The NamespaceAliasSymbol to map. | *domCorpus* | The DomCorpus used to create |=== Map a NamespaceSymbol to a dom::Object. == Synopsis Declared in `<mrdocs/Metadata/Symbol/Namespace.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class IO> void tag_invoke( link:#mrdocs-dom-LazyObjectMapTag[dom::LazyObjectMapTag] t, IO& io, link:#mrdocs-NamespaceSymbol[NamespaceSymbol] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- == Parameters [cols=2] |=== | Name | Description | *t* | The tag type. | *io* | The IO object to use for mapping. | *I* | The NamespaceSymbol to map. | *domCorpus* | The DomCorpus used to create |=== Map a OverloadsSymbol to a dom::Object. == Synopsis Declared in `<mrdocs/Metadata/Symbol/Overloads.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class IO> void tag_invoke( link:#mrdocs-dom-LazyObjectMapTag[dom::LazyObjectMapTag] t, IO& io, link:#mrdocs-OverloadsSymbol[OverloadsSymbol] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- == Parameters [cols=2] |=== | Name | Description | *t* | The tag type. | *io* | The IO object to use for mapping. | *I* | The OverloadsSymbol to map. | *domCorpus* | The DomCorpus used to create |=== Map a RecordSymbol to a dom::Object. == Synopsis Declared in `<mrdocs/Metadata/Symbol/Record.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class IO> void tag_invoke( link:#mrdocs-dom-LazyObjectMapTag[dom::LazyObjectMapTag] t, IO& io, link:#mrdocs-RecordSymbol[RecordSymbol] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- == Parameters [cols=2] |=== | Name | Description | *t* | The tag type. | *io* | The IO object to use for mapping. | *I* | The RecordSymbol to map. | *domCorpus* | The DomCorpus used to create |=== Map a TypedefSymbol to a dom::Object. == Synopsis Declared in `<mrdocs/Metadata/Symbol/Typedef.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class IO> void tag_invoke( link:#mrdocs-dom-LazyObjectMapTag[dom::LazyObjectMapTag] t, IO& io, link:#mrdocs-TypedefSymbol[TypedefSymbol] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- == Parameters [cols=2] |=== | Name | Description | *t* | The tag type. | *io* | The IO object to use for mapping. | *I* | The TypedefSymbol to map. | *domCorpus* | The DomCorpus used to create |=== Map a UsingSymbol to a dom::Object. == Synopsis Declared in `<mrdocs/Metadata/Symbol/Using.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class IO> void tag_invoke( link:#mrdocs-dom-LazyObjectMapTag[dom::LazyObjectMapTag] t, IO& io, link:#mrdocs-UsingSymbol[UsingSymbol] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- == Parameters [cols=2] |=== | Name | Description | *t* | The tag type. | *io* | The IO object to use for mapping. | *I* | The UsingSymbol to map. | *domCorpus* | The DomCorpus used to create |=== Map a VariableSymbol to a dom::Object. == Synopsis Declared in `<mrdocs/Metadata/Symbol/Variable.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class IO> void tag_invoke( link:#mrdocs-dom-LazyObjectMapTag[dom::LazyObjectMapTag] t, IO& io, link:#mrdocs-VariableSymbol[VariableSymbol] const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- == Parameters [cols=2] |=== | Name | Description | *t* | The tag type. | *io* | The IO object to use for mapping. | *I* | The VariableSymbol to map. | *domCorpus* | The DomCorpus used to create |=== Map the Polymorphic Symbol to a link:#mrdocs-dom-Object[`dom::Object`]. == Synopsis Declared in `<mrdocs/Metadata/Symbol.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< class IO, link:#mrdocs-polymorphic_storage_for[polymorphic_storage_for<Symbol>] PolymorphicSymbol> requires std::derived_from<PolymorphicSymbol, Symbol> void tag_invoke( link:#mrdocs-dom-LazyObjectMapTag[dom::LazyObjectMapTag], IO& io, PolymorphicSymbol const& I, link:#mrdocs-DomCorpus[DomCorpus] const* domCorpus); ---- == Parameters [cols=2] |=== | Name | Description | *io* | The output parameter to receive the dom::Object. | *I* | The polymorphic Symbol to convert. | *domCorpus* | The DomCorpus used to resolve references. |=== Convert a SymbolID to a string == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolID.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::string toBase16Str(link:#mrdocs-SymbolID[SymbolID] const& id); ---- == Return Value The base16 string representation of the SymbolID. == Parameters [cols=2] |=== | Name | Description | *id* | The SymbolID to convert. |=== == Synopsis Declared in `<mrdocs/Support/String.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr std::string toCamelCase(std::string_view const input); ---- == Synopsis Declared in `<mrdocs/Support/String.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr std::string toKebabCase(std::string_view const input); ---- == Synopses Declared in `<mrdocs/Support/String.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr std::string link:#mrdocs-toLowerCase-05[toLowerCase](std::string_view const s) noexcept; ---- [.small]#link:#mrdocs-toLowerCase-05[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr char link:#mrdocs-toLowerCase-0a5[toLowerCase](char const c) noexcept; ---- [.small]#link:#mrdocs-toLowerCase-0a5[_» more..._]# == Synopsis Declared in `<mrdocs/Support/String.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr std::string toLowerCase(std::string_view const s) noexcept; ---- == Synopsis Declared in `<mrdocs/Support/String.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr char toLowerCase(char const c) noexcept; ---- == Synopsis Declared in `<mrdocs/Support/String.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr std::string toPascalCase(std::string_view const input); ---- == Synopsis Declared in `<mrdocs/Support/String.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr std::string toSnakeCase(std::string_view const input); ---- `toString` overloads == Synopses Declared in `<mrdocs/Metadata/Specifiers/ExplicitInfo.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-dom-String[dom::String] link:#mrdocs-toString-0d3[toString](link:#mrdocs-AccessKind[AccessKind] kind) noexcept; ---- [.small]#link:#mrdocs-toString-0d3[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-dom-String[dom::String] link:#mrdocs-toString-0f4[toString](link:#mrdocs-AutoKind[AutoKind] kind) noexcept; ---- [.small]#link:#mrdocs-toString-0f4[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-dom-String[dom::String] link:#mrdocs-toString-0fa[toString](link:#mrdocs-ConstexprKind[ConstexprKind] kind) noexcept; ---- [.small]#link:#mrdocs-toString-0fa[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-dom-String[dom::String] link:#mrdocs-toString-01b5[toString](link:#mrdocs-ExplicitKind[ExplicitKind] kind) noexcept; ---- [.small]#link:#mrdocs-toString-01b5[_» more..._]# Return the name of the SymbolKind as a string. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr std::string_view link:#mrdocs-toString-013[toString](link:#mrdocs-ExtractionMode[ExtractionMode] kind) noexcept; ---- [.small]#link:#mrdocs-toString-013[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::string_view link:#mrdocs-toString-0d8[toString](link:#mrdocs-FileKind[FileKind] kind); ---- [.small]#link:#mrdocs-toString-0d8[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-dom-String[dom::String] link:#mrdocs-toString-00[toString](link:#mrdocs-FunctionClass[FunctionClass] kind) noexcept; ---- [.small]#link:#mrdocs-toString-00[_» more..._]# Convert a FundamentalTypeKind to a string. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::string_view link:#mrdocs-toString-0b[toString](link:#mrdocs-FundamentalTypeKind[FundamentalTypeKind] kind) noexcept; ---- [.small]#link:#mrdocs-toString-0b[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-dom-String[dom::String] link:#mrdocs-toString-0c8[toString](link:#mrdocs-ListKind[ListKind] kind) noexcept; ---- [.small]#link:#mrdocs-toString-0c8[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-dom-String[dom::String] link:#mrdocs-toString-045[toString](link:#mrdocs-NameKind[NameKind] kind) noexcept; ---- [.small]#link:#mrdocs-toString-045[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-dom-String[dom::String] link:#mrdocs-toString-093[toString](link:#mrdocs-NoexceptKind[NoexceptKind] kind) noexcept; ---- [.small]#link:#mrdocs-toString-093[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-dom-String[dom::String] link:#mrdocs-toString-09c[toString](link:#mrdocs-QualifierKind[QualifierKind] kind) noexcept; ---- [.small]#link:#mrdocs-toString-09c[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-dom-String[dom::String] link:#mrdocs-toString-0f3[toString](link:#mrdocs-RecordKeyKind[RecordKeyKind] kind) noexcept; ---- [.small]#link:#mrdocs-toString-0f3[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-dom-String[dom::String] link:#mrdocs-toString-01bf[toString](link:#mrdocs-ReferenceKind[ReferenceKind] kind) noexcept; ---- [.small]#link:#mrdocs-toString-01bf[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-dom-String[dom::String] link:#mrdocs-toString-05f[toString](link:#mrdocs-StorageClassKind[StorageClassKind] kind) noexcept; ---- [.small]#link:#mrdocs-toString-05f[_» more..._]# Return the name of the SymbolKind as a string. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-dom-String[dom::String] link:#mrdocs-toString-041[toString](link:#mrdocs-SymbolKind[SymbolKind] kind) noexcept; ---- [.small]#link:#mrdocs-toString-041[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::string_view link:#mrdocs-toString-0e4[toString](link:#mrdocs-TArgKind[TArgKind] kind) noexcept; ---- [.small]#link:#mrdocs-toString-0e4[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::string_view link:#mrdocs-toString-03[toString](link:#mrdocs-TParamKeyKind[TParamKeyKind] kind) noexcept; ---- [.small]#link:#mrdocs-toString-03[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::string_view link:#mrdocs-toString-052[toString](link:#mrdocs-TParamKind[TParamKind] kind) noexcept; ---- [.small]#link:#mrdocs-toString-052[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-dom-String[dom::String] link:#mrdocs-toString-061[toString](link:#mrdocs-TableAlignmentKind[TableAlignmentKind] kind) noexcept; ---- [.small]#link:#mrdocs-toString-061[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::string_view link:#mrdocs-toString-065[toString](link:#mrdocs-TemplateSpecKind[TemplateSpecKind] kind); ---- [.small]#link:#mrdocs-toString-065[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-dom-String[dom::String] link:#mrdocs-toString-0ec[toString](link:#mrdocs-TypeKind[TypeKind] kind) noexcept; ---- [.small]#link:#mrdocs-toString-0ec[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::string link:#mrdocs-toString-0cf[toString](link:#mrdocs-Name[Name] const& N); ---- [.small]#link:#mrdocs-toString-0cf[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::string link:#mrdocs-toString-087[toString](link:#mrdocs-TArg[TArg] const& arg) noexcept; ---- [.small]#link:#mrdocs-toString-087[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::string link:#mrdocs-toString-098[toString]( link:#mrdocs-Type[Type] const& T, std::string_view Name = ""); ---- [.small]#link:#mrdocs-toString-098[_» more..._]# Convert ExplicitInfo to a string. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-dom-String[dom::String] link:#mrdocs-toString-082[toString]( link:#mrdocs-ExplicitInfo[ExplicitInfo] const& info, bool resolved = false, bool implicit = false); ---- [.small]#link:#mrdocs-toString-082[_» more..._]# Convert NoexceptInfo to a string. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-dom-String[dom::String] link:#mrdocs-toString-0dc[toString]( link:#mrdocs-NoexceptInfo[NoexceptInfo] const& info, bool resolved = false, bool implicit = false); ---- [.small]#link:#mrdocs-toString-0dc[_» more..._]# == Return Value * The string representation of the kind * The string representation of the explicit‐specifier. * The string representation of the noexcept‐specifier. == Parameters [cols=2] |=== | Name | Description | *info* | The explicit‐specifier information. | *resolved* | If true, the operand is not shown when the explicit‐specifier is non‐dependent. | *implicit* | If true, implicit explicit‐specifiers are shown. |=== == Synopsis Declared in `<mrdocs/Metadata/Specifiers/AccessKind.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-dom-String[dom::String] toString(link:#mrdocs-AccessKind[AccessKind] kind) noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Type/AutoKind.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-dom-String[dom::String] toString(link:#mrdocs-AutoKind[AutoKind] kind) noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Specifiers/ConstexprKind.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-dom-String[dom::String] toString(link:#mrdocs-ConstexprKind[ConstexprKind] kind) noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Specifiers/ExplicitKind.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-dom-String[dom::String] toString(link:#mrdocs-ExplicitKind[ExplicitKind] kind) noexcept; ---- Return the name of the SymbolKind as a string. == Synopsis Declared in `<mrdocs/Metadata/Symbol/ExtractionMode.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr std::string_view toString(link:#mrdocs-ExtractionMode[ExtractionMode] kind) noexcept; ---- == Return Value the name of the SymbolKind as a string. == Parameters [cols=2] |=== | Name | Description | *kind* | Determine why a symbol is extracted |=== == Synopsis Declared in `<mrdocs/Metadata/Symbol/FileKind.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::string_view toString(link:#mrdocs-FileKind[FileKind] kind); ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/FunctionClass.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-dom-String[dom::String] toString(link:#mrdocs-FunctionClass[FunctionClass] kind) noexcept; ---- Convert a FundamentalTypeKind to a string. == Synopsis Declared in `<mrdocs/Metadata/Type/FundamentalTypeKind.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::string_view toString(link:#mrdocs-FundamentalTypeKind[FundamentalTypeKind] kind) noexcept; ---- == Description This function converts a FundamentalTypeKind to the shortest canonical string representing the type. == Return Value The string representation of the kind == Parameters [cols=2] |=== | Name | Description | *kind* | Categorically describes a fundamental type. |=== == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/ListKind.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-dom-String[dom::String] toString(link:#mrdocs-ListKind[ListKind] kind) noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Name/NameKind.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-dom-String[dom::String] toString(link:#mrdocs-NameKind[NameKind] kind) noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Specifiers/NoexceptKind.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-dom-String[dom::String] toString(link:#mrdocs-NoexceptKind[NoexceptKind] kind) noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Type/QualifierKind.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-dom-String[dom::String] toString(link:#mrdocs-QualifierKind[QualifierKind] kind) noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Symbol/RecordKeyKind.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-dom-String[dom::String] toString(link:#mrdocs-RecordKeyKind[RecordKeyKind] kind) noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Specifiers/ReferenceKind.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-dom-String[dom::String] toString(link:#mrdocs-ReferenceKind[ReferenceKind] kind) noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Specifiers/StorageClassKind.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-dom-String[dom::String] toString(link:#mrdocs-StorageClassKind[StorageClassKind] kind) noexcept; ---- Return the name of the SymbolKind as a string. == Synopsis Declared in `<mrdocs/Metadata/Symbol/SymbolKind.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-dom-String[dom::String] toString(link:#mrdocs-SymbolKind[SymbolKind] kind) noexcept; ---- == Return Value the name of the SymbolKind as a string. == Parameters [cols=2] |=== | Name | Description | *kind* | Info variant discriminator |=== == Synopsis Declared in `<mrdocs/Metadata/TArg/TArgKind.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::string_view toString(link:#mrdocs-TArgKind[TArgKind] kind) noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/TParam/TParamKeyKind.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::string_view toString(link:#mrdocs-TParamKeyKind[TParamKeyKind] kind) noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/TParam/TParamKind.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::string_view toString(link:#mrdocs-TParamKind[TParamKind] kind) noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment/Block/TableAlignmentKind.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-dom-String[dom::String] toString(link:#mrdocs-TableAlignmentKind[TableAlignmentKind] kind) noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Template.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::string_view toString(link:#mrdocs-TemplateSpecKind[TemplateSpecKind] kind); ---- == Synopsis Declared in `<mrdocs/Metadata/Type/TypeKind.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-dom-String[dom::String] toString(link:#mrdocs-TypeKind[TypeKind] kind) noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Name/NameBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::string toString(link:#mrdocs-Name[Name] const& N); ---- == Synopsis Declared in `<mrdocs/Metadata/TArg/TArgBase.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::string toString(link:#mrdocs-TArg[TArg] const& arg) noexcept; ---- == Synopsis Declared in `<mrdocs/Metadata/Type.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::string toString( link:#mrdocs-Type[Type] const& T, std::string_view Name = ""); ---- Convert ExplicitInfo to a string. == Synopsis Declared in `<mrdocs/Metadata/Specifiers/ExplicitInfo.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-dom-String[dom::String] toString( link:#mrdocs-ExplicitInfo[ExplicitInfo] const& info, bool resolved = false, bool implicit = false); ---- == Return Value The string representation of the explicit‐specifier. == Parameters [cols=2] |=== | Name | Description | *info* | The explicit‐specifier information. | *resolved* | If true, the operand is not shown when the explicit‐specifier is non‐dependent. | *implicit* | If true, implicit explicit‐specifiers are shown. |=== Convert NoexceptInfo to a string. == Synopsis Declared in `<mrdocs/Metadata/Specifiers/NoexceptInfo.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-dom-String[dom::String] toString( link:#mrdocs-NoexceptInfo[NoexceptInfo] const& info, bool resolved = false, bool implicit = false); ---- == Return Value The string representation of the noexcept‐specifier. == Parameters [cols=2] |=== | Name | Description | *info* | The noexcept‐specifier information. | *resolved* | If true, the operand is not shown when the exception specification is non‐dependent. | *implicit* | If true, implicit exception specifications are shown. |=== == Synopses Declared in `<mrdocs/Support/String.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr std::string link:#mrdocs-toUpperCase-01[toUpperCase](std::string_view const s) noexcept; ---- [.small]#link:#mrdocs-toUpperCase-01[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr char link:#mrdocs-toUpperCase-0e[toUpperCase](char const c) noexcept; ---- [.small]#link:#mrdocs-toUpperCase-0e[_» more..._]# == Synopsis Declared in `<mrdocs/Support/String.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr std::string toUpperCase(std::string_view const s) noexcept; ---- == Synopsis Declared in `<mrdocs/Support/String.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr char toUpperCase(char const c) noexcept; ---- Return the value as its underlying type. == Synopsis Declared in `<mrdocs/Support/TypeTraits.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class Enum> requires std::is_enum_v<Enum> constexpr std::underlying_type_t<Enum> to_underlying(Enum value) noexcept; ---- == Return Value the value as its underlying type. == Parameters [cols=2] |=== | Name | Description | *value* | The enum value to convert |=== == Synopsis Declared in `<mrdocs/Metadata/DocComment.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< link:#mrdocs-DocCommentNodeTraversable[DocCommentNodeTraversable] T, class F> void topDownTraverse( T& node, F&& func); ---- `trim` overloads == Synopses Declared in `<mrdocs/Support/String.hpp>` Return the substring without leading and trailing horizontal whitespace. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr std::string_view link:#mrdocs-trim-02[trim](std::string_view const s) noexcept; ---- [.small]#link:#mrdocs-trim-02[_» more..._]# Return the substring without leading and trailing specified characters. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr std::string_view link:#mrdocs-trim-08[trim]( std::string_view const s, std::string_view const chars) noexcept; ---- [.small]#link:#mrdocs-trim-08[_» more..._]# == Return Value The modified string. == Parameters [cols=2] |=== | Name | Description | *s* | The string to trim. | *chars* | The characters to remove. |=== Return the substring without leading and trailing horizontal whitespace. == Synopsis Declared in `<mrdocs/Support/String.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr std::string_view trim(std::string_view const s) noexcept; ---- == Return Value The modified string. == Parameters [cols=2] |=== | Name | Description | *s* | The string to trim. |=== Return the substring without leading and trailing specified characters. == Synopsis Declared in `<mrdocs/Support/String.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr std::string_view trim( std::string_view const s, std::string_view const chars) noexcept; ---- == Return Value The modified string. == Parameters [cols=2] |=== | Name | Description | *s* | The string to trim. | *chars* | The characters to remove. |=== Invoke a function object with a type derived from Symbol == Synopses Declared in `<mrdocs/Metadata/TParam.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< typename TParamTy, typename F, typename... Args> requires std::derived_from<TParamTy, TParam> constexpr decltype(auto) link:#mrdocs-visit-01[visit]( TParamTy& P, F&& f, Args...&&... args); ---- [.small]#link:#mrdocs-visit-01[_» more..._]# Invoke a function object with a type derived from Symbol [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< std::derived_from<Symbol> TypeTy, class F, class... Args> constexpr decltype(auto) link:#mrdocs-visit-09[visit]( TypeTy& I, F&& f, Args...&&... args); ---- [.small]#link:#mrdocs-visit-09[_» more..._]# == Return Value The result of calling the function object with the derived type == Parameters [cols=2] |=== | Name | Description | *info* | The Symbol object to visit | *fn* | The function object to call | *args* | Additional arguments to pass to the function object |=== == Synopsis Declared in `<mrdocs/Metadata/TParam.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< typename TParamTy, typename F, typename... Args> requires std::derived_from<TParamTy, TParam> constexpr decltype(auto) visit( TParamTy& P, F&& f, Args...&&... args); ---- Invoke a function object with a type derived from Symbol == Synopsis Declared in `<mrdocs/Metadata/Type.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< std::derived_from<Symbol> TypeTy, class F, class... Args> constexpr decltype(auto) visit( TypeTy& I, F&& f, Args...&&... args); ---- == Description This function will invoke the function object `fn` with a type derived from `Symbol` as the first argument, followed by `args...`. The type of the first argument is determined by the `SymbolKind` of the `Symbol` object. == Return Value The result of calling the function object with the derived type == Parameters [cols=2] |=== | Name | Description | *info* | The Symbol object to visit | *fn* | The function object to call | *args* | Additional arguments to pass to the function object |=== Visits a std::variant and calls the combined callable with the active index and the value. == Synopsis Declared in `<mrdocs/ADT/Overload.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< class Variant, class... Ts> constexpr decltype(auto) visitIndexed( Variant&& v, Ts...&&... xs); ---- == Description Unlike match, visitIndexed passes an additional first parameter to your callable set: the runtime index of the active alternative (as a std::size_t). This is useful when you need both the value and which alternative was selected, without relying on type‐unique alternatives. The supplied callables are combined via makeOverload and are expected to accept a signature like (std::size_t index, T value) for the relevant T. [,cpp] ---- std::variant v = 3.14; fn::visitIndexed(v, [](std::size_t i, int x) { return i + x; }, [](std::size_t i, double d) { return d + i; }, [](std::size_t i, const std::string& s) { return s.size() + i; }); ---- == Return Value The result of invoking the selected callable. == Parameters [cols=2] |=== | Name | Description | *v* | The variant to visit. | *xs* | The callables to be combined with makeOverload and invoked with (index, value). |=== Factory that creates a YCombinator from a callable. == Synopsis Declared in `<mrdocs/ADT/Overload.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class F> [[nodiscard]] constexpr link:#mrdocs-YCombinator[YCombinator<std::decay_t<F>>] yCombinator(F&& f) noexcept(std::is_nothrow_constructible_v<std::decay_t<F>, F &&>); ---- == Description Prefer this helper to avoid spelling template arguments explicitly. auto fib = fn::yCombinator( []self, int n) ‐> int { return n <= 1 ? n : self(n ‐ 1) + self(n ‐ 2); }); == Return Value A YCombinator storing a decayed copy of the callable. == Parameters [cols=2] |=== | Name | Description | *f* | The callable to wrap. |=== Write to output == Synopses Declared in `<mrdocs/Support/Handlebars.hpp>` Write to output [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class T> requires std::formattable<T, char> link:#mrdocs-OutputRef[OutputRef]& link:#mrdocs-operator_lshift-0a[operator<<]( link:#mrdocs-OutputRef[OutputRef]& os, T v); ---- [.small]#link:#mrdocs-operator_lshift-0a[_» more..._]# Write to output [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-OutputRef[OutputRef]& link:#mrdocs-operator_lshift-0f[operator<<]( link:#mrdocs-OutputRef[OutputRef]& os, char const* c); ---- [.small]#link:#mrdocs-operator_lshift-0f[_» more..._]# Write to output [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-OutputRef[OutputRef]& link:#mrdocs-operator_lshift-0e9[operator<<]( link:#mrdocs-OutputRef[OutputRef]& os, char c); ---- [.small]#link:#mrdocs-operator_lshift-0e9[_» more..._]# Write to output [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-OutputRef[OutputRef]& link:#mrdocs-operator_lshift-0d[operator<<]( link:#mrdocs-OutputRef[OutputRef]& os, std::string_view sv); ---- [.small]#link:#mrdocs-operator_lshift-0d[_» more..._]# == Return Value A reference to this object == Parameters [cols=2] |=== | Name | Description | *os* | The output stream reference | *v* | The character to write | *c* | The string to write | *sv* | The string to write |=== Write to output == Synopsis Declared in `<mrdocs/Support/Handlebars.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class T> requires std::formattable<T, char> link:#mrdocs-OutputRef[OutputRef]& operator<<( link:#mrdocs-OutputRef[OutputRef]& os, T v); ---- == Return Value A reference to this object == Parameters [cols=2] |=== | Name | Description | *os* | The output stream reference | *v* | The character to write |=== Write to output == Synopsis Declared in `<mrdocs/Support/Handlebars.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-OutputRef[OutputRef]& operator<<( link:#mrdocs-OutputRef[OutputRef]& os, char const* c); ---- == Return Value A reference to this object == Parameters [cols=2] |=== | Name | Description | *os* | The output stream reference | *c* | The string to write |=== Write to output == Synopsis Declared in `<mrdocs/Support/Handlebars.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-OutputRef[OutputRef]& operator<<( link:#mrdocs-OutputRef[OutputRef]& os, char c); ---- == Return Value A reference to this object == Parameters [cols=2] |=== | Name | Description | *os* | The output stream reference | *c* | The character to write |=== Write to output == Synopsis Declared in `<mrdocs/Support/Handlebars.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#mrdocs-OutputRef[OutputRef]& operator<<( link:#mrdocs-OutputRef[OutputRef]& os, std::string_view sv); ---- == Return Value A reference to this object == Parameters [cols=2] |=== | Name | Description | *os* | The output stream reference | *sv* | The string to write |=== Equality operators == Synopses Declared in `<mrdocs/ADT/Optional.hpp>` Equality operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< class U, class E2> requires std::is_void_v<U> constexpr bool link:#mrdocs-operator_eq-002[operator==]( link:#mrdocs-Expected-0f[Expected] const& x, link:#mrdocs-Expected-0a[Expected<U, E2>] const& y) noexcept(noexcept(bool(x.error() == y.error()))); ---- [.small]#link:#mrdocs-operator_eq-002[_» more..._]# Equality operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr bool link:#mrdocs-operator_eq-0cfd[operator==]( link:#mrdocs-SplitLinesView-Iterator[Iterator] const& it, std::default_sentinel_t rhs) noexcept; ---- [.small]#link:#mrdocs-operator_eq-0cfd[_» more..._]# Equality operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr bool link:#mrdocs-operator_eq-01[operator==]( link:#mrdocs-ParseResult[ParseResult] const& lhs, link:#mrdocs-ParseResult[ParseResult] const& rhs) = default; ---- [.small]#link:#mrdocs-operator_eq-01[_» more..._]# Equality operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool link:#mrdocs-operator_eq-098[operator==]( link:#mrdocs-Optional-03[Optional<TemplateInfo>] const& lhs, link:#mrdocs-Optional-03[Optional<TemplateInfo>] const& rhs); ---- [.small]#link:#mrdocs-operator_eq-098[_» more..._]# Equality operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool link:#mrdocs-operator_eq-0f[operator==]( link:#mrdocs-Polymorphic[Polymorphic<TParam>] const& lhs, link:#mrdocs-Polymorphic[Polymorphic<TParam>] const& rhs); ---- [.small]#link:#mrdocs-operator_eq-0f[_» more..._]# Equality operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool link:#mrdocs-operator_eq-0c4[operator==]( link:#mrdocs-Polymorphic[Polymorphic<Name>] const& lhs, link:#mrdocs-Polymorphic[Polymorphic<Name>] const& rhs); ---- [.small]#link:#mrdocs-operator_eq-0c4[_» more..._]# Equality operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool link:#mrdocs-operator_eq-0b0[operator==]( link:#mrdocs-Optional-03[Optional<Polymorphic<Type>>] const& lhs, link:#mrdocs-Optional-03[Optional<Polymorphic<Type>>] const& rhs); ---- [.small]#link:#mrdocs-operator_eq-0b0[_» more..._]# Equality operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool link:#mrdocs-operator_eq-02[operator==]( link:#mrdocs-Polymorphic[Polymorphic<Type>] const& lhs, link:#mrdocs-Polymorphic[Polymorphic<Type>] const& rhs); ---- [.small]#link:#mrdocs-operator_eq-02[_» more..._]# Equality operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< class U, class E2> constexpr bool link:#mrdocs-operator_eq-0b3[operator==]( link:#mrdocs-Expected-01[Expected] const& x, link:#mrdocs-Expected-0a[Expected<U, E2>] const& y) noexcept(noexcept(bool(*x == *y)) && noexcept(bool(x.error() == y.error()))) requires (!std::is_void_v<U>); ---- [.small]#link:#mrdocs-operator_eq-0b3[_» more..._]# Equality operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class U> constexpr bool link:#mrdocs-operator_eq-0cfa[operator==]( link:#mrdocs-Expected-01[Expected] const& x, U const& v) noexcept(noexcept(bool(*x == v))); ---- [.small]#link:#mrdocs-operator_eq-0cfa[_» more..._]# Equality operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class E2> constexpr bool link:#mrdocs-operator_eq-087[operator==]( link:#mrdocs-Expected-01[Expected] const& x, link:#mrdocs-Unexpected-0c[Unexpected<E2>] const& e) noexcept(noexcept(bool(x.error() == e.error()))); ---- [.small]#link:#mrdocs-operator_eq-087[_» more..._]# Equality operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr bool link:#mrdocs-operator_eq-07[operator==]( link:#mrdocs-ArrayView-06[ArrayView] a, link:#mrdocs-ArrayView-06[ArrayView] b) noexcept requires requires (const T& x, const T& y) { { x == y } ‐> std::convertible_to<bool>; }; ---- [.small]#link:#mrdocs-operator_eq-07[_» more..._]# Equality operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< class U, class E2> requires (!std::is_void_v<U>) constexpr bool link:#mrdocs-operator_eq-09e[operator==]( link:#mrdocs-Expected-0a[Expected] const& x, link:#mrdocs-Expected-0a[Expected<U, E2>] const& y) noexcept(noexcept(bool(*x == *y)) && noexcept(bool(x.error() == y.error()))); ---- [.small]#link:#mrdocs-operator_eq-09e[_» more..._]# Equality operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class U> constexpr bool link:#mrdocs-operator_eq-03[operator==]( link:#mrdocs-Expected-0a[Expected] const& x, U const& v) noexcept(noexcept(bool(*x == v))); ---- [.small]#link:#mrdocs-operator_eq-03[_» more..._]# Equality operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class E2> constexpr bool link:#mrdocs-operator_eq-066[operator==]( link:#mrdocs-Expected-0a[Expected] const& x, link:#mrdocs-Unexpected-0c[Unexpected<E2>] const& e) noexcept(noexcept(bool(x.error() == e.error()))); ---- [.small]#link:#mrdocs-operator_eq-066[_» more..._]# Equality operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class Er> [[nodiscard]] constexpr bool link:#mrdocs-operator_eq-0a[operator==]( link:#mrdocs-Unexpected-0c[Unexpected] const& x, link:#mrdocs-Unexpected-0c[Unexpected<Er>] const& y); ---- [.small]#link:#mrdocs-operator_eq-0a[_» more..._]# Equality operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class Base> requires detail::CanVisitCompare<Base> bool link:#mrdocs-operator_eq-06c[operator==]( link:#mrdocs-Polymorphic[Polymorphic<Base>] const& lhs, link:#mrdocs-Polymorphic[Polymorphic<Base>] const& rhs); ---- [.small]#link:#mrdocs-operator_eq-06c[_» more..._]# Compares a value to an engaged Optional for equality. Returns true if the Optional is engaged and its value equals lhs. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< typename T, typename U> requires (!detail::isOptionalV<T>) constexpr /* implementation-defined */ link:#mrdocs-operator_eq-0cb[operator==]( T const& lhs, link:#mrdocs-Optional-03[Optional<U>] const& rhs); ---- [.small]#link:#mrdocs-operator_eq-0cb[_» more..._]# Compares an engaged Optional to a value for equality. Returns true if the Optional is engaged and its value equals rhs. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< typename T, typename U> requires (!detail::isOptionalV<U>) constexpr /* implementation-defined */ link:#mrdocs-operator_eq-0c9[operator==]( link:#mrdocs-Optional-03[Optional<T>] const& lhs, U const& rhs); ---- [.small]#link:#mrdocs-operator_eq-0c9[_» more..._]# Checks if the Optional is disengaged (equal to std::nullopt). Returns true if the Optional does not contain a value. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<typename T> [[nodiscard]] constexpr bool link:#mrdocs-operator_eq-08e[operator==]( link:#mrdocs-Optional-03[Optional<T>] const& lhs, std::nullopt_t rhs) noexcept; ---- [.small]#link:#mrdocs-operator_eq-08e[_» more..._]# Compares two Optional values for equality. Returns true if both are engaged and their contained values are equal, or both are disengaged. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< typename T, typename U> constexpr /* implementation-defined */ link:#mrdocs-operator_eq-00b[operator==]( link:#mrdocs-Optional-03[Optional<T>] const& lhs, link:#mrdocs-Optional-03[Optional<U>] const& rhs); ---- [.small]#link:#mrdocs-operator_eq-00b[_» more..._]# == Return Value * `true` if the optional is engaged and equal to `lhs`; otherwise, `false`. * `true` if the optional is engaged and equal to `rhs`; otherwise, `false`. * `true` if the optional is disengaged; otherwise, `false`. * `true` if both optionals are engaged and equal, or both are disengaged; otherwise, `false`. Equality operator == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< class U, class E2> requires std::is_void_v<U> constexpr bool operator==( link:#mrdocs-Expected-0f[Expected] const& x, link:#mrdocs-Expected-0a[Expected<U, E2>] const& y) noexcept(noexcept(bool(x.error() == y.error()))); ---- == Return Value `true` if the objects are equal, `false` otherwise == Parameters [cols=2] |=== | Name | Description | *x* | The left operand | *y* | The right operand |=== Equality operator == Synopsis Declared in `<mrdocs/Support/SplitLines.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr bool operator==( link:#mrdocs-SplitLinesView-Iterator[Iterator] const& it, std::default_sentinel_t rhs) noexcept; ---- == Return Value `true` if the objects are equal, `false` otherwise == Parameters [cols=2] |=== | Name | Description | *it* | The left operand | *rhs* | The right operand |=== Equality operator == Synopsis Declared in `<mrdocs/Support/Parse.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr bool operator==( link:#mrdocs-ParseResult[ParseResult] const& lhs, link:#mrdocs-ParseResult[ParseResult] const& rhs) = default; ---- == Return Value `true` if the objects are equal, `false` otherwise == Parameters [cols=2] |=== | Name | Description | *lhs* | The left operand | *rhs* | The right operand |=== Equality operator == Synopsis Declared in `<mrdocs/Metadata/Template.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool operator==( link:#mrdocs-Optional-03[Optional<TemplateInfo>] const& lhs, link:#mrdocs-Optional-03[Optional<TemplateInfo>] const& rhs); ---- == Return Value `true` if the objects are equal, `false` otherwise == Parameters [cols=2] |=== | Name | Description | *lhs* | The left operand | *rhs* | The right operand |=== Equality operator == Synopsis Declared in `<mrdocs/Metadata/TParam.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool operator==( link:#mrdocs-Polymorphic[Polymorphic<TParam>] const& lhs, link:#mrdocs-Polymorphic[Polymorphic<TParam>] const& rhs); ---- == Return Value `true` if the objects are equal, `false` otherwise == Parameters [cols=2] |=== | Name | Description | *lhs* | The left operand | *rhs* | The right operand |=== Equality operator == Synopsis Declared in `<mrdocs/Metadata/Name.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool operator==( link:#mrdocs-Polymorphic[Polymorphic<Name>] const& lhs, link:#mrdocs-Polymorphic[Polymorphic<Name>] const& rhs); ---- == Return Value `true` if the objects are equal, `false` otherwise == Parameters [cols=2] |=== | Name | Description | *lhs* | The left operand | *rhs* | The right operand |=== Equality operator == Synopsis Declared in `<mrdocs/Metadata/Type.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool operator==( link:#mrdocs-Optional-03[Optional<Polymorphic<Type>>] const& lhs, link:#mrdocs-Optional-03[Optional<Polymorphic<Type>>] const& rhs); ---- == Return Value `true` if the objects are equal, `false` otherwise == Parameters [cols=2] |=== | Name | Description | *lhs* | The left operand | *rhs* | The right operand |=== Equality operator == Synopsis Declared in `<mrdocs/Metadata/Type.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool operator==( link:#mrdocs-Polymorphic[Polymorphic<Type>] const& lhs, link:#mrdocs-Polymorphic[Polymorphic<Type>] const& rhs); ---- == Return Value `true` if the objects are equal, `false` otherwise == Parameters [cols=2] |=== | Name | Description | *lhs* | The left operand | *rhs* | The right operand |=== Equality operator == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< class U, class E2> constexpr bool operator==( link:#mrdocs-Expected-01[Expected] const& x, link:#mrdocs-Expected-0a[Expected<U, E2>] const& y) noexcept(noexcept(bool(*x == *y)) && noexcept(bool(x.error() == y.error()))) requires (!std::is_void_v<U>); ---- == Return Value `true` if the objects are equal, `false` otherwise == Parameters [cols=2] |=== | Name | Description | *x* | The left operand | *y* | The right operand |=== Equality operator == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class U> constexpr bool operator==( link:#mrdocs-Expected-01[Expected] const& x, U const& v) noexcept(noexcept(bool(*x == v))); ---- == Return Value `true` if the objects are equal, `false` otherwise == Parameters [cols=2] |=== | Name | Description | *x* | The left operand | *v* | The right operand |=== Equality operator == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class E2> constexpr bool operator==( link:#mrdocs-Expected-01[Expected] const& x, link:#mrdocs-Unexpected-0c[Unexpected<E2>] const& e) noexcept(noexcept(bool(x.error() == e.error()))); ---- == Return Value `true` if the objects are equal, `false` otherwise == Parameters [cols=2] |=== | Name | Description | *x* | The left operand | *e* | The right operand |=== Equality operator == Synopsis Declared in `<mrdocs/ADT/ArrayView.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr bool operator==( link:#mrdocs-ArrayView-06[ArrayView] a, link:#mrdocs-ArrayView-06[ArrayView] b) noexcept requires requires (const T& x, const T& y) { { x == y } ‐> std::convertible_to<bool>; }; ---- == Return Value `true` if the objects are equal, `false` otherwise == Parameters [cols=2] |=== | Name | Description | *a* | The left operand | *b* | The right operand |=== Equality operator == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< class U, class E2> requires (!std::is_void_v<U>) constexpr bool operator==( link:#mrdocs-Expected-0a[Expected] const& x, link:#mrdocs-Expected-0a[Expected<U, E2>] const& y) noexcept(noexcept(bool(*x == *y)) && noexcept(bool(x.error() == y.error()))); ---- == Return Value `true` if the objects are equal, `false` otherwise == Parameters [cols=2] |=== | Name | Description | *x* | The left operand | *y* | The right operand |=== Equality operator == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class U> constexpr bool operator==( link:#mrdocs-Expected-0a[Expected] const& x, U const& v) noexcept(noexcept(bool(*x == v))); ---- == Return Value `true` if the objects are equal, `false` otherwise == Parameters [cols=2] |=== | Name | Description | *x* | The left operand | *v* | The right operand |=== Equality operator == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class E2> constexpr bool operator==( link:#mrdocs-Expected-0a[Expected] const& x, link:#mrdocs-Unexpected-0c[Unexpected<E2>] const& e) noexcept(noexcept(bool(x.error() == e.error()))); ---- == Return Value `true` if the objects are equal, `false` otherwise == Parameters [cols=2] |=== | Name | Description | *x* | The left operand | *e* | The right operand |=== Equality operator == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class Er> [[nodiscard]] constexpr bool operator==( link:#mrdocs-Unexpected-0c[Unexpected] const& x, link:#mrdocs-Unexpected-0c[Unexpected<Er>] const& y); ---- == Return Value `true` if the objects are equal, `false` otherwise == Parameters [cols=2] |=== | Name | Description | *x* | The left operand | *y* | The right operand |=== Equality operator == Synopsis Declared in `<mrdocs/ADT/Polymorphic.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class Base> requires detail::CanVisitCompare<Base> bool operator==( link:#mrdocs-Polymorphic[Polymorphic<Base>] const& lhs, link:#mrdocs-Polymorphic[Polymorphic<Base>] const& rhs); ---- == Return Value `true` if the objects are equal, `false` otherwise == Parameters [cols=2] |=== | Name | Description | *lhs* | The left operand | *rhs* | The right operand |=== Compares a value to an engaged Optional for equality. Returns true if the Optional is engaged and its value equals lhs. == Synopsis Declared in `<mrdocs/ADT/Optional.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< typename T, typename U> requires (!detail::isOptionalV<T>) constexpr /* implementation-defined */ operator==( T const& lhs, link:#mrdocs-Optional-03[Optional<U>] const& rhs); ---- == Return Value `true` if the optional is engaged and equal to `lhs`; otherwise, `false`. == Parameters [cols=2] |=== | Name | Description | *lhs* | The left operand | *rhs* | The right operand |=== Compares an engaged Optional to a value for equality. Returns true if the Optional is engaged and its value equals rhs. == Synopsis Declared in `<mrdocs/ADT/Optional.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< typename T, typename U> requires (!detail::isOptionalV<U>) constexpr /* implementation-defined */ operator==( link:#mrdocs-Optional-03[Optional<T>] const& lhs, U const& rhs); ---- == Return Value `true` if the optional is engaged and equal to `rhs`; otherwise, `false`. == Parameters [cols=2] |=== | Name | Description | *lhs* | The left operand | *rhs* | The right operand |=== Checks if the Optional is disengaged (equal to std::nullopt). Returns true if the Optional does not contain a value. == Synopsis Declared in `<mrdocs/ADT/Optional.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<typename T> [[nodiscard]] constexpr bool operator==( link:#mrdocs-Optional-03[Optional<T>] const& lhs, std::nullopt_t rhs) noexcept; ---- == Return Value `true` if the optional is disengaged; otherwise, `false`. == Parameters [cols=2] |=== | Name | Description | *lhs* | The left operand | *rhs* | The right operand |=== Compares two Optional values for equality. Returns true if both are engaged and their contained values are equal, or both are disengaged. == Synopsis Declared in `<mrdocs/ADT/Optional.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< typename T, typename U> constexpr /* implementation-defined */ operator==( link:#mrdocs-Optional-03[Optional<T>] const& lhs, link:#mrdocs-Optional-03[Optional<U>] const& rhs); ---- == Return Value `true` if both optionals are engaged and equal, or both are disengaged; otherwise, `false`. == Parameters [cols=2] |=== | Name | Description | *lhs* | The left operand | *rhs* | The right operand |=== Inequality operators == Synopses Declared in `<mrdocs/ADT/Optional.hpp>` Compares two Optional values for inequality. Returns true if their engagement states differ or their contained values are not equal. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< typename T, typename U> constexpr /* implementation-defined */ link:#mrdocs-operator_not_eq-06[operator!=]( link:#mrdocs-Optional-03[Optional<T>] const& lhs, link:#mrdocs-Optional-03[Optional<U>] const& rhs); ---- [.small]#link:#mrdocs-operator_not_eq-06[_» more..._]# Compares an Optional to a value for inequality. Returns true if the Optional is disengaged or its value does not equal rhs. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< typename T, typename U> requires (!detail::isOptionalV<U>) constexpr /* implementation-defined */ link:#mrdocs-operator_not_eq-04[operator!=]( link:#mrdocs-Optional-03[Optional<T>] const& lhs, U const& rhs); ---- [.small]#link:#mrdocs-operator_not_eq-04[_» more..._]# Compares a value to an Optional for inequality. Returns true if the Optional is disengaged or its value does not equal lhs. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< typename T, typename U> requires (!detail::isOptionalV<T>) constexpr /* implementation-defined */ link:#mrdocs-operator_not_eq-0f[operator!=]( T const& lhs, link:#mrdocs-Optional-03[Optional<U>] const& rhs); ---- [.small]#link:#mrdocs-operator_not_eq-0f[_» more..._]# == Return Value * `true` if the optionals differ in engagement or value; otherwise, `false`. * `true` if the optional is disengaged or not equal to `rhs`; otherwise, `false`. * `true` if the optional is disengaged or not equal to `lhs`; otherwise, `false`. Compares two Optional values for inequality. Returns true if their engagement states differ or their contained values are not equal. == Synopsis Declared in `<mrdocs/ADT/Optional.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< typename T, typename U> constexpr /* implementation-defined */ operator!=( link:#mrdocs-Optional-03[Optional<T>] const& lhs, link:#mrdocs-Optional-03[Optional<U>] const& rhs); ---- == Return Value `true` if the optionals differ in engagement or value; otherwise, `false`. == Parameters [cols=2] |=== | Name | Description | *lhs* | The left operand | *rhs* | The right operand |=== Compares an Optional to a value for inequality. Returns true if the Optional is disengaged or its value does not equal rhs. == Synopsis Declared in `<mrdocs/ADT/Optional.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< typename T, typename U> requires (!detail::isOptionalV<U>) constexpr /* implementation-defined */ operator!=( link:#mrdocs-Optional-03[Optional<T>] const& lhs, U const& rhs); ---- == Return Value `true` if the optional is disengaged or not equal to `rhs`; otherwise, `false`. == Parameters [cols=2] |=== | Name | Description | *lhs* | The left operand | *rhs* | The right operand |=== Compares a value to an Optional for inequality. Returns true if the Optional is disengaged or its value does not equal lhs. == Synopsis Declared in `<mrdocs/ADT/Optional.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< typename T, typename U> requires (!detail::isOptionalV<T>) constexpr /* implementation-defined */ operator!=( T const& lhs, link:#mrdocs-Optional-03[Optional<U>] const& rhs); ---- == Return Value `true` if the optional is disengaged or not equal to `lhs`; otherwise, `false`. == Parameters [cols=2] |=== | Name | Description | *lhs* | The left operand | *rhs* | The right operand |=== Less‐than operators == Synopses Declared in `<mrdocs/ADT/Optional.hpp>` Checks if the left Optional is less than the right Optional. Returns true if the right is engaged and either the left is disengaged or its value is less. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< typename T, typename U> constexpr /* implementation-defined */ link:#mrdocs-operator_lt-09[operator<]( link:#mrdocs-Optional-03[Optional<T>] const& lhs, link:#mrdocs-Optional-03[Optional<U>] const& rhs); ---- [.small]#link:#mrdocs-operator_lt-09[_» more..._]# Checks if the Optional is less than a value. Returns true if the Optional is disengaged or its value is less than rhs. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< typename T, typename U> requires (!detail::isOptionalV<U>) [[nodiscard]] constexpr /* implementation-defined */ link:#mrdocs-operator_lt-0c[operator<]( link:#mrdocs-Optional-03[Optional<T>] const& lhs, U const& rhs); ---- [.small]#link:#mrdocs-operator_lt-0c[_» more..._]# Checks if a value is less than an engaged Optional. Returns true if the Optional is engaged and lhs is less than its value. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< typename T, typename U> requires (!detail::isOptionalV<T>) [[nodiscard]] constexpr /* implementation-defined */ link:#mrdocs-operator_lt-08[operator<]( T const& lhs, link:#mrdocs-Optional-03[Optional<U>] const& rhs); ---- [.small]#link:#mrdocs-operator_lt-08[_» more..._]# == Return Value * `true` if `lhs` is less than `rhs` according to the described rules; otherwise, `false`. * `true` if the optional is disengaged or less than `rhs`; otherwise, `false`. * `true` if the optional is engaged and `lhs` is less than its value; otherwise, `false`. Checks if the left Optional is less than the right Optional. Returns true if the right is engaged and either the left is disengaged or its value is less. == Synopsis Declared in `<mrdocs/ADT/Optional.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< typename T, typename U> constexpr /* implementation-defined */ operator<( link:#mrdocs-Optional-03[Optional<T>] const& lhs, link:#mrdocs-Optional-03[Optional<U>] const& rhs); ---- == Return Value `true` if `lhs` is less than `rhs` according to the described rules; otherwise, `false`. == Parameters [cols=2] |=== | Name | Description | *lhs* | The left operand | *rhs* | The right operand |=== Checks if the Optional is less than a value. Returns true if the Optional is disengaged or its value is less than rhs. == Synopsis Declared in `<mrdocs/ADT/Optional.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< typename T, typename U> requires (!detail::isOptionalV<U>) [[nodiscard]] constexpr /* implementation-defined */ operator<( link:#mrdocs-Optional-03[Optional<T>] const& lhs, U const& rhs); ---- == Return Value `true` if the optional is disengaged or less than `rhs`; otherwise, `false`. == Parameters [cols=2] |=== | Name | Description | *lhs* | The left operand | *rhs* | The right operand |=== Checks if a value is less than an engaged Optional. Returns true if the Optional is engaged and lhs is less than its value. == Synopsis Declared in `<mrdocs/ADT/Optional.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< typename T, typename U> requires (!detail::isOptionalV<T>) [[nodiscard]] constexpr /* implementation-defined */ operator<( T const& lhs, link:#mrdocs-Optional-03[Optional<U>] const& rhs); ---- == Return Value `true` if the optional is engaged and `lhs` is less than its value; otherwise, `false`. == Parameters [cols=2] |=== | Name | Description | *lhs* | The left operand | *rhs* | The right operand |=== Less‐than‐or‐equal operators == Synopses Declared in `<mrdocs/ADT/Optional.hpp>` Checks if the left Optional is less than or equal to the right Optional. Returns true if the left is disengaged or the right is engaged and the left's value is less or equal. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< typename T, typename U> constexpr /* implementation-defined */ link:#mrdocs-operator_le-08[operator<=]( link:#mrdocs-Optional-03[Optional<T>] const& lhs, link:#mrdocs-Optional-03[Optional<U>] const& rhs); ---- [.small]#link:#mrdocs-operator_le-08[_» more..._]# Checks if the Optional is less than or equal to a value. Returns true if the Optional is disengaged or its value is less than or equal to rhs. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< typename T, typename U> requires (!detail::isOptionalV<U>) constexpr /* implementation-defined */ link:#mrdocs-operator_le-0e[operator<=]( link:#mrdocs-Optional-03[Optional<T>] const& lhs, U const& rhs); ---- [.small]#link:#mrdocs-operator_le-0e[_» more..._]# Checks if a value is less than or equal to an engaged Optional. Returns true if the Optional is engaged and lhs is less than or equal to its value. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< typename T, typename U> requires (!detail::isOptionalV<T>) constexpr /* implementation-defined */ link:#mrdocs-operator_le-03[operator<=]( T const& lhs, link:#mrdocs-Optional-03[Optional<U>] const& rhs); ---- [.small]#link:#mrdocs-operator_le-03[_» more..._]# == Return Value * `true` if `lhs` is less than or equal to `rhs` according to the described rules; otherwise, `false`. * `true` if the optional is disengaged or less than or equal to `rhs`; otherwise, `false`. * `true` if the optional is engaged and `lhs` is less than or equal to its value; otherwise, `false`. Checks if the left Optional is less than or equal to the right Optional. Returns true if the left is disengaged or the right is engaged and the left's value is less or equal. == Synopsis Declared in `<mrdocs/ADT/Optional.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< typename T, typename U> constexpr /* implementation-defined */ operator<=( link:#mrdocs-Optional-03[Optional<T>] const& lhs, link:#mrdocs-Optional-03[Optional<U>] const& rhs); ---- == Return Value `true` if `lhs` is less than or equal to `rhs` according to the described rules; otherwise, `false`. == Parameters [cols=2] |=== | Name | Description | *lhs* | The left operand | *rhs* | The right operand |=== Checks if the Optional is less than or equal to a value. Returns true if the Optional is disengaged or its value is less than or equal to rhs. == Synopsis Declared in `<mrdocs/ADT/Optional.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< typename T, typename U> requires (!detail::isOptionalV<U>) constexpr /* implementation-defined */ operator<=( link:#mrdocs-Optional-03[Optional<T>] const& lhs, U const& rhs); ---- == Return Value `true` if the optional is disengaged or less than or equal to `rhs`; otherwise, `false`. == Parameters [cols=2] |=== | Name | Description | *lhs* | The left operand | *rhs* | The right operand |=== Checks if a value is less than or equal to an engaged Optional. Returns true if the Optional is engaged and lhs is less than or equal to its value. == Synopsis Declared in `<mrdocs/ADT/Optional.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< typename T, typename U> requires (!detail::isOptionalV<T>) constexpr /* implementation-defined */ operator<=( T const& lhs, link:#mrdocs-Optional-03[Optional<U>] const& rhs); ---- == Return Value `true` if the optional is engaged and `lhs` is less than or equal to its value; otherwise, `false`. == Parameters [cols=2] |=== | Name | Description | *lhs* | The left operand | *rhs* | The right operand |=== Greater‐than operators == Synopses Declared in `<mrdocs/ADT/Optional.hpp>` Checks if the left Optional is greater than the right Optional. Returns true if the left is engaged and either the right is disengaged or its value is greater. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< typename T, typename U> constexpr /* implementation-defined */ link:#mrdocs-operator_gt-0a0[operator>]( link:#mrdocs-Optional-03[Optional<T>] const& lhs, link:#mrdocs-Optional-03[Optional<U>] const& rhs); ---- [.small]#link:#mrdocs-operator_gt-0a0[_» more..._]# Checks if the Optional is greater than a value. Returns true if the Optional is engaged and its value is greater than rhs. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< typename T, typename U> requires (!detail::isOptionalV<U>) constexpr /* implementation-defined */ link:#mrdocs-operator_gt-0ab[operator>]( link:#mrdocs-Optional-03[Optional<T>] const& lhs, U const& rhs); ---- [.small]#link:#mrdocs-operator_gt-0ab[_» more..._]# Checks if a value is greater than an Optional. Returns true if the Optional is disengaged or lhs is greater than its value. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< typename T, typename U> requires (!detail::isOptionalV<T>) constexpr /* implementation-defined */ link:#mrdocs-operator_gt-0d[operator>]( T const& lhs, link:#mrdocs-Optional-03[Optional<U>] const& rhs); ---- [.small]#link:#mrdocs-operator_gt-0d[_» more..._]# == Return Value * `true` if `lhs` is greater than `rhs` according to the described rules; otherwise, `false`. * `true` if the optional is engaged and greater than `rhs`; otherwise, `false`. * `true` if the optional is disengaged or `lhs` is greater than its value; otherwise, `false`. Checks if the left Optional is greater than the right Optional. Returns true if the left is engaged and either the right is disengaged or its value is greater. == Synopsis Declared in `<mrdocs/ADT/Optional.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< typename T, typename U> constexpr /* implementation-defined */ operator>( link:#mrdocs-Optional-03[Optional<T>] const& lhs, link:#mrdocs-Optional-03[Optional<U>] const& rhs); ---- == Return Value `true` if `lhs` is greater than `rhs` according to the described rules; otherwise, `false`. == Parameters [cols=2] |=== | Name | Description | *lhs* | The left operand | *rhs* | The right operand |=== Checks if the Optional is greater than a value. Returns true if the Optional is engaged and its value is greater than rhs. == Synopsis Declared in `<mrdocs/ADT/Optional.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< typename T, typename U> requires (!detail::isOptionalV<U>) constexpr /* implementation-defined */ operator>( link:#mrdocs-Optional-03[Optional<T>] const& lhs, U const& rhs); ---- == Return Value `true` if the optional is engaged and greater than `rhs`; otherwise, `false`. == Parameters [cols=2] |=== | Name | Description | *lhs* | The left operand | *rhs* | The right operand |=== Checks if a value is greater than an Optional. Returns true if the Optional is disengaged or lhs is greater than its value. == Synopsis Declared in `<mrdocs/ADT/Optional.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< typename T, typename U> requires (!detail::isOptionalV<T>) constexpr /* implementation-defined */ operator>( T const& lhs, link:#mrdocs-Optional-03[Optional<U>] const& rhs); ---- == Return Value `true` if the optional is disengaged or `lhs` is greater than its value; otherwise, `false`. == Parameters [cols=2] |=== | Name | Description | *lhs* | The left operand | *rhs* | The right operand |=== Greater‐than‐or‐equal operators == Synopses Declared in `<mrdocs/ADT/Optional.hpp>` Checks if the left Optional is greater than or equal to the right Optional. Returns true if the right is disengaged or the left is engaged and its value is greater or equal. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< typename T, typename U> constexpr /* implementation-defined */ link:#mrdocs-operator_ge-04[operator>=]( link:#mrdocs-Optional-03[Optional<T>] const& lhs, link:#mrdocs-Optional-03[Optional<U>] const& rhs); ---- [.small]#link:#mrdocs-operator_ge-04[_» more..._]# Checks if the Optional is greater than or equal to a value. Returns true if the Optional is engaged and its value is greater than or equal to rhs. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< typename T, typename U> requires (!detail::isOptionalV<U>) constexpr /* implementation-defined */ link:#mrdocs-operator_ge-07[operator>=]( link:#mrdocs-Optional-03[Optional<T>] const& lhs, U const& rhs); ---- [.small]#link:#mrdocs-operator_ge-07[_» more..._]# Checks if a value is greater than or equal to an Optional. Returns true if the Optional is disengaged or lhs is greater than or equal to its value. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< typename T, typename U> requires (!detail::isOptionalV<T>) constexpr /* implementation-defined */ link:#mrdocs-operator_ge-0b[operator>=]( T const& lhs, link:#mrdocs-Optional-03[Optional<U>] const& rhs); ---- [.small]#link:#mrdocs-operator_ge-0b[_» more..._]# == Return Value * `true` if `lhs` is greater than or equal to `rhs` according to the described rules; otherwise, `false`. * `true` if the optional is engaged and greater than or equal to `rhs`; otherwise, `false`. * `true` if the optional is disengaged or `lhs` is greater than or equal to its value; otherwise, `false`. Checks if the left Optional is greater than or equal to the right Optional. Returns true if the right is disengaged or the left is engaged and its value is greater or equal. == Synopsis Declared in `<mrdocs/ADT/Optional.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< typename T, typename U> constexpr /* implementation-defined */ operator>=( link:#mrdocs-Optional-03[Optional<T>] const& lhs, link:#mrdocs-Optional-03[Optional<U>] const& rhs); ---- == Return Value `true` if `lhs` is greater than or equal to `rhs` according to the described rules; otherwise, `false`. == Parameters [cols=2] |=== | Name | Description | *lhs* | The left operand | *rhs* | The right operand |=== Checks if the Optional is greater than or equal to a value. Returns true if the Optional is engaged and its value is greater than or equal to rhs. == Synopsis Declared in `<mrdocs/ADT/Optional.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< typename T, typename U> requires (!detail::isOptionalV<U>) constexpr /* implementation-defined */ operator>=( link:#mrdocs-Optional-03[Optional<T>] const& lhs, U const& rhs); ---- == Return Value `true` if the optional is engaged and greater than or equal to `rhs`; otherwise, `false`. == Parameters [cols=2] |=== | Name | Description | *lhs* | The left operand | *rhs* | The right operand |=== Checks if a value is greater than or equal to an Optional. Returns true if the Optional is disengaged or lhs is greater than or equal to its value. == Synopsis Declared in `<mrdocs/ADT/Optional.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< typename T, typename U> requires (!detail::isOptionalV<T>) constexpr /* implementation-defined */ operator>=( T const& lhs, link:#mrdocs-Optional-03[Optional<U>] const& rhs); ---- == Return Value `true` if the optional is disengaged or `lhs` is greater than or equal to its value; otherwise, `false`. == Parameters [cols=2] |=== | Name | Description | *lhs* | The left operand | *rhs* | The right operand |=== Three‐way comparison operators == Synopses Declared in `<mrdocs/Metadata/Name.hpp>` Three‐way comparison operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr auto link:#mrdocs-operator_3way-0a[operator<=>]( link:#mrdocs-ArrayView-06[ArrayView] a, link:#mrdocs-ArrayView-06[ArrayView] b) noexcept requires requires (const T& x, const T& y) { x <=> y; }; ---- [.small]#link:#mrdocs-operator_3way-0a[_» more..._]# Performs a three‐way comparison between two Optional values. If both are engaged, compares their contained values; otherwise, compares engagement state. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< typename T, std::three_way_comparable_with<T> U> [[nodiscard]] constexpr std::compare_three_way_result_t<T, U> link:#mrdocs-operator_3way-02[operator<=>]( link:#mrdocs-Optional-03[Optional<T>] const& x, link:#mrdocs-Optional-03[Optional<U>] const& y); ---- [.small]#link:#mrdocs-operator_3way-02[_» more..._]# Performs a three‐way comparison between an Optional and std::nullopt. Returns std::strong_ordering::greater if engaged, std::strong_ordering::equal if disengaged. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<typename T> [[nodiscard]] constexpr std::strong_ordering link:#mrdocs-operator_3way-0c4[operator<=>]( link:#mrdocs-Optional-03[Optional<T>] const& x, std::nullopt_t rhs) noexcept; ---- [.small]#link:#mrdocs-operator_3way-0c4[_» more..._]# Performs a three‐way comparison between an Optional and a value. If the Optional is engaged, compares its value to v; otherwise, returns less. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< typename T, typename U> requires (!detail::isDerivedFromOptional<U>) && requires { typename std::compare_three_way_result_t<T, U>; } && std::three_way_comparable_with<T, U> constexpr std::compare_three_way_result_t<T, U> link:#mrdocs-operator_3way-01[operator<=>]( link:#mrdocs-Optional-03[Optional<T>] const& x, U const& v); ---- [.small]#link:#mrdocs-operator_3way-01[_» more..._]# Three‐way comparison operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class Base> requires detail::CanVisitCompare<Base> auto link:#mrdocs-operator_3way-0822[operator<=>]( link:#mrdocs-Polymorphic[Polymorphic<Base>] const& lhs, link:#mrdocs-Polymorphic[Polymorphic<Base>] const& rhs); ---- [.small]#link:#mrdocs-operator_3way-0822[_» more..._]# Three‐way comparison operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::strong_ordering link:#mrdocs-operator_3way-0b[operator<=>]( link:#mrdocs-Polymorphic[Polymorphic<Type>] const& lhs, link:#mrdocs-Polymorphic[Polymorphic<Type>] const& rhs); ---- [.small]#link:#mrdocs-operator_3way-0b[_» more..._]# Three‐way comparison operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::strong_ordering link:#mrdocs-operator_3way-0c8[operator<=>]( link:#mrdocs-Optional-03[Optional<Polymorphic<Type>>] const& lhs, link:#mrdocs-Optional-03[Optional<Polymorphic<Type>>] const& rhs); ---- [.small]#link:#mrdocs-operator_3way-0c8[_» more..._]# Three‐way comparison operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::strong_ordering link:#mrdocs-operator_3way-03[operator<=>]( link:#mrdocs-Polymorphic[Polymorphic<TArg>] const& lhs, link:#mrdocs-Polymorphic[Polymorphic<TArg>] const& rhs); ---- [.small]#link:#mrdocs-operator_3way-03[_» more..._]# Three‐way comparison operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::strong_ordering link:#mrdocs-operator_3way-04[operator<=>]( link:#mrdocs-Polymorphic[Polymorphic<Name>] const& lhs, link:#mrdocs-Polymorphic[Polymorphic<Name>] const& rhs); ---- [.small]#link:#mrdocs-operator_3way-04[_» more..._]# Three‐way comparison operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::strong_ordering link:#mrdocs-operator_3way-0820[operator<=>]( link:#mrdocs-Polymorphic[Polymorphic<TParam>] const& lhs, link:#mrdocs-Polymorphic[Polymorphic<TParam>] const& rhs); ---- [.small]#link:#mrdocs-operator_3way-0820[_» more..._]# Three‐way comparison operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- auto link:#mrdocs-operator_3way-0d[operator<=>]( link:#mrdocs-Optional-03[Optional<TemplateInfo>] const& lhs, link:#mrdocs-Optional-03[Optional<TemplateInfo>] const& rhs); ---- [.small]#link:#mrdocs-operator_3way-0d[_» more..._]# == Return Value * The result of the three‐way comparison between the optionals or their values. * The result of the three‐way comparison with `std::nullopt`. * The result of the three‐way comparison with the value. Three‐way comparison operator == Synopsis Declared in `<mrdocs/ADT/ArrayView.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr auto operator<=>( link:#mrdocs-ArrayView-06[ArrayView] a, link:#mrdocs-ArrayView-06[ArrayView] b) noexcept requires requires (const T& x, const T& y) { x <=> y; }; ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *a* | The left operand | *b* | The right operand |=== Performs a three‐way comparison between two Optional values. If both are engaged, compares their contained values; otherwise, compares engagement state. == Synopsis Declared in `<mrdocs/ADT/Optional.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< typename T, std::three_way_comparable_with<T> U> [[nodiscard]] constexpr std::compare_three_way_result_t<T, U> operator<=>( link:#mrdocs-Optional-03[Optional<T>] const& x, link:#mrdocs-Optional-03[Optional<U>] const& y); ---- == Return Value The result of the three‐way comparison between the optionals or their values. == Parameters [cols=2] |=== | Name | Description | *x* | The left operand | *y* | The right operand |=== Performs a three‐way comparison between an Optional and std::nullopt. Returns std::strong_ordering::greater if engaged, std::strong_ordering::equal if disengaged. == Synopsis Declared in `<mrdocs/ADT/Optional.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<typename T> [[nodiscard]] constexpr std::strong_ordering operator<=>( link:#mrdocs-Optional-03[Optional<T>] const& x, std::nullopt_t rhs) noexcept; ---- == Return Value The result of the three‐way comparison with `std::nullopt`. == Parameters [cols=2] |=== | Name | Description | *x* | The left operand | *rhs* | The right operand |=== Performs a three‐way comparison between an Optional and a value. If the Optional is engaged, compares its value to v; otherwise, returns less. == Synopsis Declared in `<mrdocs/ADT/Optional.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< typename T, typename U> requires (!detail::isDerivedFromOptional<U>) && requires { typename std::compare_three_way_result_t<T, U>; } && std::three_way_comparable_with<T, U> constexpr std::compare_three_way_result_t<T, U> operator<=>( link:#mrdocs-Optional-03[Optional<T>] const& x, U const& v); ---- == Return Value The result of the three‐way comparison with the value. == Parameters [cols=2] |=== | Name | Description | *x* | The left operand | *v* | The right operand |=== Three‐way comparison operator == Synopsis Declared in `<mrdocs/ADT/Polymorphic.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class Base> requires detail::CanVisitCompare<Base> auto operator<=>( link:#mrdocs-Polymorphic[Polymorphic<Base>] const& lhs, link:#mrdocs-Polymorphic[Polymorphic<Base>] const& rhs); ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *lhs* | The left operand | *rhs* | The right operand |=== Three‐way comparison operator == Synopsis Declared in `<mrdocs/Metadata/Type.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::strong_ordering operator<=>( link:#mrdocs-Polymorphic[Polymorphic<Type>] const& lhs, link:#mrdocs-Polymorphic[Polymorphic<Type>] const& rhs); ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *lhs* | The left operand | *rhs* | The right operand |=== Three‐way comparison operator == Synopsis Declared in `<mrdocs/Metadata/Type.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::strong_ordering operator<=>( link:#mrdocs-Optional-03[Optional<Polymorphic<Type>>] const& lhs, link:#mrdocs-Optional-03[Optional<Polymorphic<Type>>] const& rhs); ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *lhs* | The left operand | *rhs* | The right operand |=== Three‐way comparison operator == Synopsis Declared in `<mrdocs/Metadata/TArg.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::strong_ordering operator<=>( link:#mrdocs-Polymorphic[Polymorphic<TArg>] const& lhs, link:#mrdocs-Polymorphic[Polymorphic<TArg>] const& rhs); ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *lhs* | The left operand | *rhs* | The right operand |=== Three‐way comparison operator == Synopsis Declared in `<mrdocs/Metadata/Name.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::strong_ordering operator<=>( link:#mrdocs-Polymorphic[Polymorphic<Name>] const& lhs, link:#mrdocs-Polymorphic[Polymorphic<Name>] const& rhs); ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *lhs* | The left operand | *rhs* | The right operand |=== Three‐way comparison operator == Synopsis Declared in `<mrdocs/Metadata/TParam.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- std::strong_ordering operator<=>( link:#mrdocs-Polymorphic[Polymorphic<TParam>] const& lhs, link:#mrdocs-Polymorphic[Polymorphic<TParam>] const& rhs); ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *lhs* | The left operand | *rhs* | The right operand |=== Three‐way comparison operator == Synopsis Declared in `<mrdocs/Metadata/Template.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- auto operator<=>( link:#mrdocs-Optional-03[Optional<TemplateInfo>] const& lhs, link:#mrdocs-Optional-03[Optional<TemplateInfo>] const& rhs); ---- == Return Value The relative order of the objects == Parameters [cols=2] |=== | Name | Description | *lhs* | The left operand | *rhs* | The right operand |=== Split a string view into lines, recognizing all common line breaks == Synopsis Declared in `<mrdocs/Support/SplitLines.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- inline constexpr link:#mrdocs-SplitLinesAdaptor[SplitLinesAdaptor] splitLines = {}; ---- == Description This is a convenience function for creating a SplitLinesView. == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- inline constexpr link:#mrdocs-unexpect_t[unexpect_t] unexpect = unexpect{}; ---- Internal concept that matches “empty‐clear default‐constructible” types. == Synopsis Declared in `<mrdocs/ADT/Nullable.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class T> concept ClearableContainerLike = requires { typename T::value_type; typename T::size_type; typename T::difference_type; typename T::reference; typename T::const_reference; typename T::iterator; typename T::const_iterator; } && // size_type should be integral for normal containers std::is_integral_v<typename T::size_type> && // ‐‐‐‐ member begin/end with expected iterator types ‐‐‐‐ requires(T& t, const T& ct) { { t.begin() } ‐> std::convertible_to<typename T::iterator>; { t.end() } ‐> std::convertible_to<typename T::iterator>; { ct.begin() } ‐> std::convertible_to<typename T::const_iterator>; { ct.end() } ‐> std::convertible_to<typename T::const_iterator>; } && // ‐‐‐‐ iterator “shape”: deref and increment ‐‐‐‐ requires(T& t, const T& ct) { { *t.begin() } ‐> std::convertible_to<typename T::reference>; { *ct.begin() } ‐> std::convertible_to<typename T::const_reference>; { ++std::declval<typename T::iterator&>() } ‐> std::same_as<typename T::iterator&>; } && // ‐‐‐‐ size/empty/clear trio ‐‐‐‐ requires(T& t, const T& ct) { { ct.size() } ‐> std::same_as<typename T::size_type>; { ct.empty() } ‐> std::convertible_to<bool>; { t.clear() } ‐> std::same_as<void>; } && // ‐‐‐‐ default constructible (most std containers satisfy this) ‐‐‐‐ std::default_initializable<T>; ---- == Description This captures the common case of containers and data structures that can be default‐constructed to empty, tested with .empty(), and reset with .clear(). Common cases of such containers include std::string, std::vector, std::optional, std::unique_ptr, std::shared_ptr, and many more. Concept to check if a type represents a DocComment node. == Synopsis Declared in `<mrdocs/Metadata/DocComment.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class T> concept DocCommentNode = std::derived_from<T, doc::Block> || std::derived_from<T, doc::Inline>; ---- == Synopsis Declared in `<mrdocs/Metadata/DocComment.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class T> concept DocCommentNodeTraversable = DocCommentNode<T> || std::same_as<DocComment, T> || (detail::IsPolymorphic<T> && DocCommentNode<typename T::value_type>); ---- Concept to determine if there's a parse function for a type. == Synopsis Declared in `<mrdocs/Support/Parse.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class T> concept HasParse = requires( char const* first, char const* last, T& value) { { parse(first, last, value) } ‐> std::same_as<ParseResult>; }; ---- == Description This concept checks if a type `T` has a parse function with the signature: [,cpp] ---- ParseResult parse( char const* first, char const* last, T& value); ---- Concept that is satisfied when sentinel_traits<T> declares a usable sentinel. == Synopsis Declared in `<mrdocs/ADT/Nullable.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class T> concept HasSentinel = requires { { sentinel_traits<T>::sentinel() } ‐> std::same_as<T>; { sentinel_traits<T>::is_sentinel(std::declval<const T&>()) } ‐> std::convertible_to<bool>; }; ---- A concept for types that have `Symbol` members. == Synopsis Declared in `<mrdocs/Metadata/Symbol.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class SymbolTy> concept SymbolParent = requires(SymbolTy const& I) { { allMembers(I) } ‐> range_of<SymbolID>; }; ---- == Description In most cases `T` is another `Symbol` type that has a `Members` member which is a range of `SymbolID` values. Determine if a type is dereferenceable == Synopsis Declared in `<mrdocs/Support/Concepts.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class T> concept dereferenceable = requires(T const& t) { { static_cast<bool>(t) }; { *t }; }; ---- == Description This concept checks if a type can be dereferenced to a value it represents and converted to a boolean value that represents if the object is in a valid state. Examples of such types are std::optional, std::unique_ptr, std::shared_ptr, Polymorphic, pointers, etc. Utility function that returns true if T has a nullable_traits specialization enabled. == Synopsis Declared in `<mrdocs/ADT/Nullable.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class T> concept has_nullable_traits_v = requires { { nullable_traits<T>::is_null(std::declval<const T&>()) } ‐> std::convertible_to<bool>; { nullable_traits<T>::null() } ‐> std::same_as<T>; { nullable_traits<T>::make_null(std::declval<T&>()) } ‐> std::same_as<void>; }; ---- Concept to check if a type is pair‐like == Synopsis Declared in `<mrdocs/Support/Concepts.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class T> concept pair_like = tuple_like<T> && (std::tuple_size<std::remove_cvref_t<T>>::value == 2); ---- == Description This concept checks if a type is tuple‐like and has exactly two elements. Examples of such types are std::pair, std::array with two elements, and user‐defined types that provide specializations for std::tuple_size and std::tuple_element with exactly two elements. Concept to check if a type is representing a polymorphic storage == Synopsis Declared in `<mrdocs/Support/Concepts.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< class T, class Base> concept polymorphic_storage_for = requires(T const& t) { { *t } ‐> std::convertible_to<Base const&>; { t.operator‐>() } ‐> std::convertible_to<Base const*>; }; ---- == Description This concept checks if a type is used to store derived objects of a base class. Examples of such types are std::unique_ptr, std::shared_ptr, Polymorphic, etc. The `get()` function might not always be available, but `operator*` and `operator‐>` should be available and return a reference to the Base class. Concept to check if a type is a range of T == Synopsis Declared in `<mrdocs/Support/Concepts.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< class Range, class T> concept range_of = std::ranges::range<Range> && std::same_as<std::ranges::range_value_t<Range>, T>; ---- Concept to check if a range is a range of tuple‐like elements == Synopsis Declared in `<mrdocs/Support/Concepts.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class Range> concept range_of_tuple_like = std::ranges::range<Range> && tuple_like<std::ranges::range_value_t<Range>>; ---- == Description This concept checks if a type is a range and all its elements are tuple‐like. Examples of such types are std::vector<std::tuple<...>>, std::list<std::pair<...>>, and user‐defined types that provide specializations for std::tuple_size and std::tuple_element for their element type. == Synopsis Declared in `<mrdocs/Support/Concepts.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< class To, class From> concept reference_constructs_from_temporary_v = reference_converts_from_temporary_v<To, From>; ---- == Synopsis Declared in `<mrdocs/Support/Concepts.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< class To, class From> concept reference_converts_from_temporary_v = std::is_reference_v<To> && ((!std::is_reference_v<From> && std::is_convertible_v< std::remove_cvref_t<From>*, std::remove_cvref_t<To>*>) || (std::is_lvalue_reference_v<To> && std::is_const_v<std::remove_reference_t<To>> && std::is_convertible_v<From, const std::remove_cvref_t<To>&&> && !std::is_convertible_v<From, std::remove_cvref_t<To>&>) ); ---- Concept to check if a type is tuple‐like == Synopsis Declared in `<mrdocs/Support/Concepts.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class T> concept tuple_like = detail::has_tuple_size<T>::value && detail::all_tuple_elements<T>::value; ---- == Description This concept checks if a type has a specialization of std::tuple_size and std::tuple_element for all elements in the range [0, N), where N is the value of std::tuple_size.] Examples of such types are std::tuple, std::pair, std::array, and user‐defined types that provide specializations for std::tuple_size and std::tuple_element. == Synopsis Declared in `<mrdocs/ADT/ArrayView.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< class T, std::size_t N> link:#mrdocs-ArrayView-06[ArrayView<T>](T const(&)[]) -> link:#mrdocs-ArrayView-06[ArrayView<T>]; ---- == Synopsis Declared in `<mrdocs/ADT/ArrayView.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class T> link:#mrdocs-ArrayView-06[ArrayView<T>]( T const*, std::size_t) -> link:#mrdocs-ArrayView-06[ArrayView<T>]; ---- Class template argument deduction guide for Overload. == Synopsis Declared in `<mrdocs/ADT/Overload.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class... Ts> link:#mrdocs-Overload-09[Overload<Ts...>](Ts...) -> link:#mrdocs-Overload-09[Overload<Ts...>]; ---- == Description Allows writing Overload{lambda1, lambda2, ...} without specifying template parameters. == Synopsis Declared in `<mrdocs/Support/RangeFor.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class Container> link:#mrdocs-RangeFor-0f[RangeFor<Container>](Container const&) -> link:#mrdocs-RangeFor-0f[RangeFor<Container>]; ---- == Synopsis Declared in `<mrdocs/Support/ScopeExit.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class F> link:#mrdocs-ScopeExit-0a[ScopeExit<F>](F) -> link:#mrdocs-ScopeExit-0a[ScopeExit<F>]; ---- == Synopsis Declared in `<mrdocs/Support/ScopeExit.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class T> link:#mrdocs-ScopeExitRestore-01[ScopeExitRestore<T>](T&) -> link:#mrdocs-ScopeExitRestore-01[ScopeExitRestore<T>]; ---- == Synopsis Declared in `<mrdocs/Support/ScopeExit.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< class T, std::convertible_to<T> T2> link:#mrdocs-ScopeExitRestore-01[ScopeExitRestore<T>]( T&, T2) -> link:#mrdocs-ScopeExitRestore-01[ScopeExitRestore<T>]; ---- == Synopsis Declared in `<mrdocs/Support/Expected.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class E> link:#mrdocs-Unexpected-0c[Unexpected<E>](E) -> link:#mrdocs-Unexpected-0c[Unexpected<E>]; ---- == Synopsis Declared in `<mrdocs/Support/source_location.hpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- using std::source_location; ---- [.small]#Created with https://www.mrdocs.com[MrDocs]#