Namespaces

Name

mrdocs

mrdocs namespace

Namespaces

Name

Description

doc

dom

Objects representing JSON‐like values.

files

helpers

js

lua

report

Types

Name

Description

AnyFileVisitor

ArrayType

ArrayView

A non‐owning, read‐only view over a contiguous array of T.

AutoType

BadExpectedAccess

BadExpectedAccess<void>

BaseInfo

Metadata for a direct base.

ConceptSymbol

Info for concepts.

Config

Configuration used to generate the Corpus and Docs

ConstantExprInfo

Represents an expression with a (possibly known) value

ConstantTArg

ConstantTParam

A constant template parameter

Corpus

The collection of declarations in extracted form.

DecltypeType

DocComment

A processed documentation comment attached to a declaration.

DomCorpus

Front‐end factory for producing Dom nodes.

EnumConstantSymbol

Info for enum constants.

EnumSymbol

Error

Holds the description of an error, or success.

Exception

Type of all exceptions thrown by the API.

ExecutorGroup

A set of execution agents for performing concurrent work.

ExecutorGroupBase

Expected

A container holding an error or a value.

Expected<T, E>

Expected<T&, E>

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.

ExprInfo

Represents an expression

FormatString

A format string with source location.

FriendInfo

Info for friend declarations.

FunctionSymbol

FunctionType

Generator

Base class for documentation generators.

Generators

A dynamic list of Generator elements.

GlobPattern

A glob pattern matcher

GuideSymbol

Info for deduction guides.

Handlebars

A handlebars environment

HandlebarsError

An error thrown or returned by Handlebars

HandlebarsOptions

Options for handlebars

IdentifierName

Represents an identifier

LValueReferenceType

Location

MemberPointerType

Name

Represents a name for a named Type

NamedType

NamespaceAliasSymbol

Info for namespace aliases.

NamespaceSymbol

Describes a namespace.

NamespaceTranche

The members of a Namespace

NoexceptInfo

Optional

A compact optional that automatically uses nullable_traits<T> when available.

Optional<T&>

OutputRef

Reference to output stream used by handlebars

Overload

Combines multiple callable types into a single overloaded function object.

OverloadsSymbol

Represents a set of function overloads.

Param

Represents a single function parameter

ParseResult

The result of a parse operation.

PathGlobPattern

A glob pattern matcher for paths

PointerType

Polymorphic

A polymorphic value‐type.

RValueReferenceType

RangeFor

Range to help range‐for loops identify first and last.

RecordInterface

The aggregated interface for a given struct, class, or union.

RecordSymbol

Metadata for struct, class, or union.

RecordTranche

A group of members that have the same access specifier.

ReferenceDirectories

Reference directories used to resolve paths

ScopeExit

ScopeExitRestore

SourceInfo

Stores source information for a declaration.

SourceLocation

A source location with filename prettification.

SpecializationName

Represents a (possibly qualified) symbol name with template arguments.

SplitLinesAdaptor

SplitLinesView

StringHash

Symbol

Base class with common properties of all symbols

SymbolCommonBase

Base class for providing variant discriminator functions.

SymbolGlobPattern

A glob pattern matcher for C++ symbols

SymbolID

A unique identifier for a symbol.

TArg

TArgCommonBase

TParam

TParamCommonBase

TaskGroup

A subset of possible work in a thread pool.

TemplateInfo

Information about templates and specializations thereof.

TemplateTArg

TemplateTParam

ThreadPool

A pool of threads for executing work concurrently.

Type

A possibly qualified type.

TypeCommonBase

TypeTArg

TypeTParam

TypedefSymbol

Unexpected

UsingSymbol

Info for using declarations.

VariableSymbol

A variable.

Visitor

A visitor for a type

YCombinator

Enables recursive lambdas by passing a self‐reference as the first argument.

add_const_from

add_cv_from

add_cvref_from

add_lvalue_reference_from

add_reference_from

add_rvalue_reference_from

add_volatile_from

any_callable

A movable, type‐erased function object.

any_callable<R(Args...)>

make_dependent

nullable_traits

nullable_traits<T> defines how to treat a T as “nullable” without an external engaged bit.

nullable_traits<Location>

nullable_traits specialization for Location.

nullable_traits<T>

nullable_traits for types with a sentinel.

nullable_traits<Polymorphic<T>>

nullable_traits for Polymorphic<T>.

sentinel_traits

Defines a customization point for types that have an intrinsic sentinel value denoting “null”.

sentinel_traits<std::nullptr_t>

sentinel_traits specialization for std::nullptr_t.

sentinel_traits<T>

sentinel_traits specialization for unsigned integral types.

sentinel_traits<T*>

sentinel_traits specialization for raw pointers.

unexpect_t

unlock_guard

A scoped guard which unlocks a mutex.

UnorderedStringMap

UnorderedStringMultiMap

add_const_from_t

add_cv_from_t

add_cvref_from_t

add_lvalue_reference_from_t

add_reference_from_t

add_rvalue_reference_from_t

add_volatile_from_t

make_dependent_t

Enums

Name

Description

AccessKind

Access specifier.

AutoKind

The kind of auto keyword used in a declaration.

ConstexprKind

constexpr/`consteval` specifier kinds

ExplicitKind

Explicit specifier kinds

ExtractionMode

Determine why a symbol is extracted

FileKind

FunctionClass

Function classifications

FundamentalTypeKind

Categorically describes a fundamental type.

ListKind

NameKind

NoexceptKind

Exception specification kinds

OperatorKind

Operator kinds

QualifierKind

Type qualifiers

RecordKeyKind

The kind of record: struct, class, or union.

ReferenceKind

Reference type kinds

StorageClassKind

Storage class kinds

SymbolKind

Info variant discriminator

TArgKind

The kind of template argument.

TParamKeyKind

The keyword a template parameter was declared with

TParamKind

TableAlignmentKind

TemplateSpecKind

The kind of template or specialization.

TypeKind

UsingClass

The class of using declaration.

Functions

Name

Description

CompareDerived

Compares two polymorphic objects that have visit functions

HTMLEscape

HTMLEscape overloads

addMember

allMembers

assert_failed

bottomUpTraverse

canMerge

cast

cast_or_null

compareSymbolNames

Return the result of comparing s0 to s1.

contains

Determine if a range contains a specific element.

contains_any

Determine if a range contains any of the specified elements.

contains_n

Determine if a range contains at least N instances of the specified element.

contains_n_any

Determine if a range contains at least N instances of any of the specified elements.

countSymbolKind

createFrame

Create child data objects.

dyn_cast

dyn_cast_or_null

endsWithOneOf

Determine if a string ends with one of the specified characters

escapeExpression

find_last_of

Find the last element in a range that matches an element in the specified range.

forEachFile

forEachFile overloads

formatError

Return a formatted error.

fromString

Convert a string to a FundamentalTypeKind.

getDefaultAccessString

getGenerators

Return a reference to the global Generators instance.

getOperatorKind

Return the short name of an operator as a string.

getOperatorKindFromSuffix

Return the short name of an operator as a string.

getOperatorName

Return the name of an operator as a string.

getOperatorReadableName

Return the human‐readable name of the operator

getParents

getParents overloads

getPrimaryLocation

getSafeOperatorName

Return the safe name of an operator as a string.

getShortOperatorName

Return the short name of an operator as a string.

getSinglePageFullPath

Return the full path for single page output.

innerType

Return the inner type.

innerTypePtr

Return the inner type.

innermostType

Return the innermost type.

isAlphaNumeric

isAlphabetic

isBinaryOperator

Determines whether the operator is potentially binary.

isDigit

isEmpty

Determine if a value is empty

isLowerCase

isUnaryOperator

Determines whether the operator is potentially unary.

isUpperCase

isWhitespace

Determine if a string is only whitespace.

is_null

is_null helper that uses nullable_traits<T> if available.

is_one_of

Determine if an element is equal to any of the elements in the specified range.

isa

isa_or_null

leastSpecific

Compare ExtractionModes and returns the least specific

ltrim

ltrim overloads

makeChar

Apply the "char" specifier to the type

makeLong

Apply the "long" specifier to the type

makeOverload

Factory function that creates an Overload from the given callables.

makeShort

Apply the "short" specifier to the type

makeSigned

Apply the "signed" specifier to the type

makeUnsigned

Apply the "unsigned" specifier to the type

makeVisitor

Make a visitor for a base type

make_array_view

make_null

make_null helper that uses nullable_traits<T> if available.

match

Applies a set of callables to a std::variant using std::visit and Overload.

merge

merge overloads

mostSpecific

Compare ExtractionModes and returns the most specific

null_of

null_of helper that constructs a null T using nullable_traits<T>.

operator|

overrides

Determine if one function would override the other

parse

Parse a string view

reindentCode

Reindent code by removing the common leading spaces and adding the specified indent.

replace

Return the substring without leading and trailing horizontal whitespace.

rtrim

rtrim overloads

safeString

Create a wrapper for a safe string.

startsWithOneOf

Determine if a string starts with one of the specified characters

swap

tag_invoke

tag_invoke overloads

toBase16Str

Convert a SymbolID to a string

toCamelCase

toKebabCase

toLowerCase

toPascalCase

toSnakeCase

toString

toString overloads

toUpperCase

to_underlying

Return the value as its underlying type.

topDownTraverse

trim

trim overloads

visit

Invoke a function object with a type derived from Symbol

visitIndexed

Visits a std::variant and calls the combined callable with the active index and the value.

yCombinator

Factory that creates a YCombinator from a callable.

operator<<

Write to output

operator==

Equality operators

operator!=

Inequality operators

operator<

Less‐than operators

operator<=

Less‐than‐or‐equal operators

operator>

Greater‐than operators

operator>=

Greater‐than‐or‐equal operators

operator<=>

Three‐way comparison operators

Variables

Name

Description

splitLines

Split a string view into lines, recognizing all common line breaks

unexpect

Concepts

Name

Description

ClearableContainerLike

Internal concept that matches “empty‐clear default‐constructible” types.

DocCommentNode

Concept to check if a type represents a DocComment node.

DocCommentNodeTraversable

HasParse

Concept to determine if there's a parse function for a type.

HasSentinel

Concept that is satisfied when sentinel_traits<T> declares a usable sentinel.

SymbolParent

A concept for types that have Symbol members.

dereferenceable

Determine if a type is dereferenceable

has_nullable_traits_v

Utility function that returns true if T has a nullable_traits specialization enabled.

pair_like

Concept to check if a type is pair‐like

polymorphic_storage_for

Concept to check if a type is representing a polymorphic storage

range_of

Concept to check if a type is a range of T

range_of_tuple_like

Concept to check if a range is a range of tuple‐like elements

reference_constructs_from_temporary_v

reference_converts_from_temporary_v

tuple_like

Concept to check if a type is tuple‐like

Deduction Guides

Name

Description

ArrayView<T>

ArrayView<T>

Overload<Ts...>

Class template argument deduction guide for Overload.

RangeFor<Container>

ScopeExit<F>

ScopeExitRestore<T>

ScopeExitRestore<T>

Unexpected<E>

Using Declarations

Name

source_location

mrdocs::doc namespace

Types

Name

Description

AdmonitionBlock

A block for side‐notes like tips, warnings, notes

Block

A piece of block content

BlockCommonBase

Base class for providing variant discriminator functions.

BlockContainer

BriefBlock

The brief description

CodeBlock

Preformatted source code.

CodeInline

A piece of styled text.

CopyDetailsInline

Documentation copied from another symbol.

DefinitionListBlock

DefinitionListItem

An item in a definition list

EmphInline

A piece of styled text.

FootnoteDefinitionBlock

Preformatted source code.

FootnoteReferenceInline

A reference to a symbol.

HeadingBlock

A manually specified section heading.

HighlightInline

A piece of highlighted text.

ImageInline

An image.

Inline

A Node containing a string of text.

InlineCommonBase

Base class for providing variant discriminator functions.

InlineContainer

An internal node in the inline element tree

InlineTextLeaf

A leaf node that stores a string of text.

LineBreakInline

A hard line break that renders as ""

LinkInline

A hyperlink.

ListBlock

A list of list items

ListItem

An item in a list

MathBlock

A block of LaTeX math

MathInline

An inline LaTeX math expression

ParagraphBlock

A sequence of text nodes.

ParamBlock

Documentation for a function parameter

PostconditionBlock

PreconditionBlock

QuoteBlock

A list of list items

ReferenceInline

A reference to a symbol.

ReturnsBlock

Documentation for a function return type

SeeBlock

A

SoftBreakInline

A line break that may render as space

StrikethroughInline

A piece of styled text.

StrongInline

A piece of styled text.

SubscriptInline

A piece of styled text.

SuperscriptInline

A piece of styled text.

TParamBlock

Documentation for a template parameter

TableBlock

A table block

TableCell

A cell in a table

TableRow

An item in a list

TextInline

A Node containing a string of text.

ThematicBreakBlock

The brief description

ThrowsBlock

Documentation for a function parameter

Enums

Name

Description

AdmonitionKind

An admonishment style.

BlockKind

InlineKind

ParamDirection

Parameter pass direction.

Parts

Which parts of the documentation to copy.

Functions

Name

Description

getAsPlainText

getAsPlainText overloads

isBlockCommand

isEmpty

Determine if the inline is empty

ltrim

ltrim overloads

rtrim

rtrim overloads

tag_invoke

tag_invoke overloads

toString

toString overloads

traverse

Traverse a list of inlines.

trim

trim overloads

visit

visit overloads

operator==

Equality operators

operator<=>

Three‐way comparison operators

mrdocs::dom namespace

Objects representing JSON‐like values.

Namespaces

Name

JSON

Types

Name

Description

Array

An array of values

ArrayImpl

Abstract array interface.

DefaultArrayImpl

The default array implementation.

DefaultFunctionImpl

DefaultObjectImpl

The default Object implementation.

Function

FunctionImpl

LazyArrayImpl

Lazy array implementation

LazyArrayImpl

Lazy array implementation

LazyObjectImpl

Lazy object implementation.

LazyObjectImpl

Lazy object implementation.

LazyObjectMapTag

Customization point tag.

Object

A container of key and value pairs.

ObjectImpl

Abstract object interface.

String

Value

A variant container for any kind of Dom value.

ValueFromTag

Customization point tag.

VariadicFunctionImpl

function_traits

function_traits<F>

function_traits<R(*)(Args...)>

function_traits<R(Args...)>

function_traits<R const volatile(C::*)(Args...)>

Enums

Name

Description

Kind

The type of data in a Value.

Functions

Name

Description

LazyArray

LazyArray overloads

LazyObject

LazyObject overloads

TransformArray

Return a new dom::Array based on a transformed lazy array implementation.

ValueFrom

ValueFrom overloads

makeInvocable

makeVariadicInvocable

newArray

Return a new array using a custom implementation.

newFunction

Return a diagnostic string.

newObject

Return a new object using a custom implementation.

operator&&

Return the first dom::Value that is not truthy, or the last one.

operator+

Addition operators

operator||

Return the first dom::Value that is truthy, or the last one.

stringOrNull

Return a non‐empty string, or a null.

swap

swap overloads

toString

toString overloads

operator==

Equality operators

operator!=

Return the result of comparing two strings.

operator<=>

Three‐way comparison operators

Concepts

Name

Description

HasLazyObjectMap

Determine if T can be converted to dom::Value.

HasLazyObjectMapWithContext

Concept to determine if a type can be mapped to a dom::LazyObjectImpl with a user‐provided conversion.

HasLazyObjectMapWithoutContext

Concept to determine if a type can be mapped to a dom::LazyObjectImpl with a user‐provided conversion.

HasStandaloneValueFrom

Determine if ` T` can be converted to dom::Value without a context.

HasValueFrom

Determine if T can be converted to dom::Value.

HasValueFromWithContext

Concept to determine if a type can be converted to a dom::Value with a user‐provided conversion.

HasValueFromWithoutContext

Concept to determine if a type can be converted to a dom::Value with a user‐provided conversion.

StringLikeTy

Satisfied if StringTy is convertible to String but not a String.

function_traits_convertible_to_value

has_function_args_for_default_function_impl

has_function_traits

has_function_traits_for_default_function_impl

has_invoke_expected_result_convertible_to_dom_value

has_invoke_result_convertible_to_dom_value

has_invoke_result_for_default_function_impl

mrdocs::dom::JSON namespace

Functions

Name

Description

stringify

Stringify a value as JSON

mrdocs::files namespace

Enums

Name

Description

FileType

The type of a file.

Functions

Name

Description

appendPath

createDirectory

Create a directory.

exists

Determine if a path exists

getFileName

Return the filename part of the path.

getFileText

Return the contents of a file as a string.

getFileType

Return the file type or an error

getParentDir

Return the parent directory.

getSourceFilename

Return the relevant suffix of a source file path.

isAbsolute

Return true if pathName is absolute.

isDirectory

Determine if a path is a directory.

isDirsy

Return true if pathName ends in a separator.

isLexicalDirectory

Determine lexically if a path is a directory.

isPosixStyle

Check if the path is posix style.

makeAbsolute

Return an absolute path from a possibly relative path.

makeDirsy

Append a trailing native separator if not already present.

makePosixStyle

Convert all backward slashes to forward slashes.

normalizeDir

Return a normalized directory.

normalizePath

Return a normalized path.

requireAbsolute

Return an error if pathName is not absolute.

requireDirectory

Return an error if the path is not a directory.

startsWith

Checks if the given path starts with the specified prefix.

withExtension

Return the filename with a new or different extension.

mrdocs::helpers namespace

Functions

Name

Description

and_fn

"and" helper function

detag_fn

"detag" helper function

eq_fn

"eq" helper function

increment_fn

"increment" helper function

ne_fn

"ne" helper function

not_fn

"not" helper function

or_fn

"or" helper function

registerAntoraHelpers

Register all the Antora helpers into a Handlebars instance

registerBuiltinHelpers

Register all the built‐in helpers into a Handlebars instance

registerConstructorHelpers

Register contructor helpers into a Handlebars instance

registerContainerHelpers

Register helpers to manipulate composite data types

registerLogicalHelpers

Register logical helpers into a Handlebars instance

registerMathHelpers

Register math helpers into a Handlebars instance

registerStringHelpers

Register string helpers into a Handlebars instance

registerTypeHelpers

Register type helpers into a Handlebars instance

relativize_fn

"relativize" helper function

select_fn

"select" helper function

year_fn

"year" helper function

mrdocs::js namespace

Types

Name

Description

Access

Array

Boolean

Context

An instance of a JavaScript interpreter.

Object

Prop

Scope

A JavaScript scope

String

Value

An ECMAScript value.

Enums

Name

Description

Type

Types of values.

Functions

Name

Description

operator&&

Return the first Value that is not truthy, or the last one.

operator||

Return the first Value that is truthy, or the last one.

registerHelper

Register a JavaScript helper function

swap

Swap two values.

toString

Return value as a string.

operator==

Compare two values for equality.

operator!=

Inequality operators

operator<=>

Compare two values for inequality.

mrdocs::lua namespace

Types

Name

Description

Access

Context

A reference to an instance of a Lua interpreter.

Function

A Lua function.

Param

A lazy container to push values to the Lua stack.

Scope

String

A Lua string.

Table

A Lua table.

Value

A Lua value.

zstring

A null‐terminated string.

FunctionPtr

Enums

Name

Description

Type

Types of values.

mrdocs::report namespace

Types

Name

Description

Located

Parameter type that adds a source location to a value.

Results

Provides statistics on the number of reported messages.

Enums

Name

Description

Level

Severity levels attached to reported messags.

Functions

Name

Description

debug

Report a message to the console.

error

Report a message to the console.

fatal

Report a message to the console.

getMinimumLevel

info

Report a message to the console.

log

Format a message to the console.

print

Report a message to the console.

setMinimumLevel

Set the minimum threshold level for reporting.

setSourceLocationWarnings

If true, source location information will be printed with warnings, errors, and fatal messages.

trace

Report a message to the console.

warn

Report a message to the console.

Variables

Name

Description

results

Holds current statistics on reported messages.

Namespaces

Name

Description

doc

dom

Objects representing JSON‐like values.

files

helpers

js

lua

report

Types

Name

Description

AnyFileVisitor

ArrayType

ArrayView

A non‐owning, read‐only view over a contiguous array of T.

AutoType

BadExpectedAccess

BadExpectedAccess<void>

BaseInfo

Metadata for a direct base.

ConceptSymbol

Info for concepts.

Config

Configuration used to generate the Corpus and Docs

ConstantExprInfo

Represents an expression with a (possibly known) value

ConstantTArg

ConstantTParam

A constant template parameter

Corpus

The collection of declarations in extracted form.

DecltypeType

DocComment

A processed documentation comment attached to a declaration.

DomCorpus

Front‐end factory for producing Dom nodes.

EnumConstantSymbol

Info for enum constants.

EnumSymbol

Error

Holds the description of an error, or success.

Exception

Type of all exceptions thrown by the API.

ExecutorGroup

A set of execution agents for performing concurrent work.

ExecutorGroupBase

Expected

A container holding an error or a value.

Expected<T, E>

Expected<T&, E>

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.

ExprInfo

Represents an expression

FormatString

A format string with source location.

FriendInfo

Info for friend declarations.

FunctionSymbol

FunctionType

Generator

Base class for documentation generators.

Generators

A dynamic list of Generator elements.

GlobPattern

A glob pattern matcher

GuideSymbol

Info for deduction guides.

Handlebars

A handlebars environment

HandlebarsError

An error thrown or returned by Handlebars

HandlebarsOptions

Options for handlebars

IdentifierName

Represents an identifier

LValueReferenceType

Location

MemberPointerType

Name

Represents a name for a named Type

NamedType

NamespaceAliasSymbol

Info for namespace aliases.

NamespaceSymbol

Describes a namespace.

NamespaceTranche

The members of a Namespace

NoexceptInfo

Optional

A compact optional that automatically uses nullable_traits<T> when available.

Optional<T&>

OutputRef

Reference to output stream used by handlebars

Overload

Combines multiple callable types into a single overloaded function object.

OverloadsSymbol

Represents a set of function overloads.

Param

Represents a single function parameter

ParseResult

The result of a parse operation.

PathGlobPattern

A glob pattern matcher for paths

PointerType

Polymorphic

A polymorphic value‐type.

RValueReferenceType

RangeFor

Range to help range‐for loops identify first and last.

RecordInterface

The aggregated interface for a given struct, class, or union.

RecordSymbol

Metadata for struct, class, or union.

RecordTranche

A group of members that have the same access specifier.

ReferenceDirectories

Reference directories used to resolve paths

ScopeExit

ScopeExitRestore

SourceInfo

Stores source information for a declaration.

SourceLocation

A source location with filename prettification.

SpecializationName

Represents a (possibly qualified) symbol name with template arguments.

SplitLinesAdaptor

SplitLinesView

StringHash

Symbol

Base class with common properties of all symbols

SymbolCommonBase

Base class for providing variant discriminator functions.

SymbolGlobPattern

A glob pattern matcher for C++ symbols

SymbolID

A unique identifier for a symbol.

TArg

TArgCommonBase

TParam

TParamCommonBase

TaskGroup

A subset of possible work in a thread pool.

TemplateInfo

Information about templates and specializations thereof.

TemplateTArg

TemplateTParam

ThreadPool

A pool of threads for executing work concurrently.

Type

A possibly qualified type.

TypeCommonBase

TypeTArg

TypeTParam

TypedefSymbol

Unexpected

UsingSymbol

Info for using declarations.

VariableSymbol

A variable.

Visitor

A visitor for a type

YCombinator

Enables recursive lambdas by passing a self‐reference as the first argument.

add_const_from

add_cv_from

add_cvref_from

add_lvalue_reference_from

add_reference_from

add_rvalue_reference_from

add_volatile_from

any_callable

A movable, type‐erased function object.

any_callable<R(Args...)>

make_dependent

nullable_traits

nullable_traits<T> defines how to treat a T as “nullable” without an external engaged bit.

nullable_traits<Location>

nullable_traits specialization for Location.

nullable_traits<T>

nullable_traits for types with a sentinel.

nullable_traits<Polymorphic<T>>

nullable_traits for Polymorphic<T>.

sentinel_traits

Defines a customization point for types that have an intrinsic sentinel value denoting “null”.

sentinel_traits<std::nullptr_t>

sentinel_traits specialization for std::nullptr_t.

sentinel_traits<T>

sentinel_traits specialization for unsigned integral types.

sentinel_traits<T*>

sentinel_traits specialization for raw pointers.

unexpect_t

unlock_guard

A scoped guard which unlocks a mutex.

UnorderedStringMap

UnorderedStringMultiMap

add_const_from_t

add_cv_from_t

add_cvref_from_t

add_lvalue_reference_from_t

add_reference_from_t

add_rvalue_reference_from_t

add_volatile_from_t

make_dependent_t

Enums

Name

Description

AccessKind

Access specifier.

AutoKind

The kind of auto keyword used in a declaration.

ConstexprKind

constexpr/`consteval` specifier kinds

ExplicitKind

Explicit specifier kinds

ExtractionMode

Determine why a symbol is extracted

FileKind

FunctionClass

Function classifications

FundamentalTypeKind

Categorically describes a fundamental type.

ListKind

NameKind

NoexceptKind

Exception specification kinds

OperatorKind

Operator kinds

QualifierKind

Type qualifiers

RecordKeyKind

The kind of record: struct, class, or union.

ReferenceKind

Reference type kinds

StorageClassKind

Storage class kinds

SymbolKind

Info variant discriminator

TArgKind

The kind of template argument.

TParamKeyKind

The keyword a template parameter was declared with

TParamKind

TableAlignmentKind

TemplateSpecKind

The kind of template or specialization.

TypeKind

UsingClass

The class of using declaration.

Functions

Name

Description

CompareDerived

Compares two polymorphic objects that have visit functions

HTMLEscape

HTMLEscape overloads

addMember

allMembers

assert_failed

bottomUpTraverse

canMerge

cast

cast_or_null

compareSymbolNames

Return the result of comparing s0 to s1.

contains

Determine if a range contains a specific element.

contains_any

Determine if a range contains any of the specified elements.

contains_n

Determine if a range contains at least N instances of the specified element.

contains_n_any

Determine if a range contains at least N instances of any of the specified elements.

countSymbolKind

createFrame

Create child data objects.

dyn_cast

dyn_cast_or_null

endsWithOneOf

Determine if a string ends with one of the specified characters

escapeExpression

find_last_of

Find the last element in a range that matches an element in the specified range.

forEachFile

forEachFile overloads

formatError

Return a formatted error.

fromString

Convert a string to a FundamentalTypeKind.

getDefaultAccessString

getGenerators

Return a reference to the global Generators instance.

getOperatorKind

Return the short name of an operator as a string.

getOperatorKindFromSuffix

Return the short name of an operator as a string.

getOperatorName

Return the name of an operator as a string.

getOperatorReadableName

Return the human‐readable name of the operator

getParents

getParents overloads

getPrimaryLocation

getSafeOperatorName

Return the safe name of an operator as a string.

getShortOperatorName

Return the short name of an operator as a string.

getSinglePageFullPath

Return the full path for single page output.

innerType

Return the inner type.

innerTypePtr

Return the inner type.

innermostType

Return the innermost type.

isAlphaNumeric

isAlphabetic

isBinaryOperator

Determines whether the operator is potentially binary.

isDigit

isEmpty

Determine if a value is empty

isLowerCase

isUnaryOperator

Determines whether the operator is potentially unary.

isUpperCase

isWhitespace

Determine if a string is only whitespace.

is_null

is_null helper that uses nullable_traits<T> if available.

is_one_of

Determine if an element is equal to any of the elements in the specified range.

isa

isa_or_null

leastSpecific

Compare ExtractionModes and returns the least specific

ltrim

ltrim overloads

makeChar

Apply the "char" specifier to the type

makeLong

Apply the "long" specifier to the type

makeOverload

Factory function that creates an Overload from the given callables.

makeShort

Apply the "short" specifier to the type

makeSigned

Apply the "signed" specifier to the type

makeUnsigned

Apply the "unsigned" specifier to the type

makeVisitor

Make a visitor for a base type

make_array_view

make_null

make_null helper that uses nullable_traits<T> if available.

match

Applies a set of callables to a std::variant using std::visit and Overload.

merge

merge overloads

mostSpecific

Compare ExtractionModes and returns the most specific

null_of

null_of helper that constructs a null T using nullable_traits<T>.

operator|

overrides

Determine if one function would override the other

parse

Parse a string view

reindentCode

Reindent code by removing the common leading spaces and adding the specified indent.

replace

Return the substring without leading and trailing horizontal whitespace.

rtrim

rtrim overloads

safeString

Create a wrapper for a safe string.

startsWithOneOf

Determine if a string starts with one of the specified characters

swap

tag_invoke

tag_invoke overloads

toBase16Str

Convert a SymbolID to a string

toCamelCase

toKebabCase

toLowerCase

toPascalCase

toSnakeCase

toString

toString overloads

toUpperCase

to_underlying

Return the value as its underlying type.

topDownTraverse

trim

trim overloads

visit

Invoke a function object with a type derived from Symbol

visitIndexed

Visits a std::variant and calls the combined callable with the active index and the value.

yCombinator

Factory that creates a YCombinator from a callable.

operator<<

Write to output

operator==

Equality operators

operator!=

Inequality operators

operator<

Less‐than operators

operator<=

Less‐than‐or‐equal operators

operator>

Greater‐than operators

operator>=

Greater‐than‐or‐equal operators

operator<=>

Three‐way comparison operators

Variables

Name

Description

splitLines

Split a string view into lines, recognizing all common line breaks

unexpect

Concepts

Name

Description

ClearableContainerLike

Internal concept that matches “empty‐clear default‐constructible” types.

DocCommentNode

Concept to check if a type represents a DocComment node.

DocCommentNodeTraversable

HasParse

Concept to determine if there's a parse function for a type.

HasSentinel

Concept that is satisfied when sentinel_traits<T> declares a usable sentinel.

SymbolParent

A concept for types that have Symbol members.

dereferenceable

Determine if a type is dereferenceable

has_nullable_traits_v

Utility function that returns true if T has a nullable_traits specialization enabled.

pair_like

Concept to check if a type is pair‐like

polymorphic_storage_for

Concept to check if a type is representing a polymorphic storage

range_of

Concept to check if a type is a range of T

range_of_tuple_like

Concept to check if a range is a range of tuple‐like elements

reference_constructs_from_temporary_v

reference_converts_from_temporary_v

tuple_like

Concept to check if a type is tuple‐like

Deduction Guides

Using Declarations

Types

Name

Description

AdmonitionBlock

A block for side‐notes like tips, warnings, notes

Block

A piece of block content

BlockCommonBase

Base class for providing variant discriminator functions.

BlockContainer

BriefBlock

The brief description

CodeBlock

Preformatted source code.

CodeInline

A piece of styled text.

CopyDetailsInline

Documentation copied from another symbol.

DefinitionListBlock

DefinitionListItem

An item in a definition list

EmphInline

A piece of styled text.

FootnoteDefinitionBlock

Preformatted source code.

FootnoteReferenceInline

A reference to a symbol.

HeadingBlock

A manually specified section heading.

HighlightInline

A piece of highlighted text.

ImageInline

An image.

Inline

A Node containing a string of text.

InlineCommonBase

Base class for providing variant discriminator functions.

InlineContainer

An internal node in the inline element tree

InlineTextLeaf

A leaf node that stores a string of text.

LineBreakInline

A hard line break that renders as ""

LinkInline

A hyperlink.

ListBlock

A list of list items

ListItem

An item in a list

MathBlock

A block of LaTeX math

MathInline

An inline LaTeX math expression

ParagraphBlock

A sequence of text nodes.

ParamBlock

Documentation for a function parameter

PostconditionBlock

PreconditionBlock

QuoteBlock

A list of list items

ReferenceInline

A reference to a symbol.

ReturnsBlock

Documentation for a function return type

SeeBlock

A

SoftBreakInline

A line break that may render as space

StrikethroughInline

A piece of styled text.

StrongInline

A piece of styled text.

SubscriptInline

A piece of styled text.

SuperscriptInline

A piece of styled text.

TParamBlock

Documentation for a template parameter

TableBlock

A table block

TableCell

A cell in a table

TableRow

An item in a list

TextInline

A Node containing a string of text.

ThematicBreakBlock

The brief description

ThrowsBlock

Documentation for a function parameter

Enums

Name

Description

AdmonitionKind

An admonishment style.

BlockKind

InlineKind

ParamDirection

Parameter pass direction.

Parts

Which parts of the documentation to copy.

Functions

Name

Description

getAsPlainText

getAsPlainText overloads

isBlockCommand

isEmpty

Determine if the inline is empty

ltrim

ltrim overloads

rtrim

rtrim overloads

tag_invoke

tag_invoke overloads

toString

toString overloads

traverse

Traverse a list of inlines.

trim

trim overloads

visit

visit overloads

operator==

Equality operators

operator<=>

Three‐way comparison operators

A block for side‐notes like tips, warnings, notes

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/AdmonitionBlock.hpp>

struct AdmonitionBlock final
    : BlockCommonBase<BlockKind::Admonition>
    , BlockContainer

Base Classes

Name

Description

BlockCommonBase<BlockKind::Admonition>

Base class for providing variant discriminator functions.

BlockContainer

Member Functions

Name

Description

AdmonitionBlock [constructor]

Construct from AdmonitionKind

asBlockContainer

operator==

Equality operators

operator<=>

Three‐way comparison operators

Static Member Functions

Data Members

Name

Description

Title

Optional title for the admonition

admonish

The kind of admonition

blocks

Static Data Members

Name

kind_id

Non-Member Functions

Name

Description

isEmpty

Determine if the inline is empty

ltrim

Removes leading whitespace from the first text elements

ltrim

Removes leading whitespace from the block.

rtrim

Removes trailing whitespace from the last text elements

rtrim

Removes trailing whitespace from the block.

trim

Removes leading and trailing whitespace from the block.

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>

explicit
AdmonitionBlock(AdmonitionKind const admonish_ = AdmonitionKind::none) noexcept;

Parameters

Name

Description

admonish_

The object to construct from

Equality operators

Synopses

Declared in <mrdocs/Metadata/DocComment/Block/AdmonitionBlock.hpp>

Equality operator

constexpr
bool
operator==(AdmonitionBlock const& rhs) const noexcept = default;

Equality operator

constexpr
bool
operator==(BlockContainer const& rhs) const = default;

Equality operator

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/AdmonitionBlock.hpp>

constexpr
bool
operator==(AdmonitionBlock const& rhs) const noexcept = default;

Return Value

true if the objects are equal, false otherwise

Parameters

Name

Description

rhs

The right operand

Equality operator

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockBase.hpp>

constexpr
bool
operator==(BlockContainer const& rhs) const = default;

Return Value

true if the objects are equal, false otherwise

Parameters

Name

Description

rhs

The right operand

Three‐way comparison operators

Synopses

Declared in <mrdocs/Metadata/DocComment/Block/BlockBase.hpp>

Three‐way comparison operator

auto
operator<=>(AdmonitionBlock const& rhs) const = default;

Three‐way comparison operator

constexpr
auto
operator<=>(BlockCommonBase<mrdocs::doc::BlockKind::Admonition> const& rhs) const = default;

Three‐way comparison operator

std::strong_ordering
operator<=>(BlockContainer const& rhs) const;

Three‐way comparison operator

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/AdmonitionBlock.hpp>

auto
operator<=>(AdmonitionBlock const& rhs) const = default;

Return Value

The relative order of the objects

Parameters

Name

Description

rhs

The right operand

Three‐way comparison operator

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockBase.hpp>

constexpr
auto
operator<=>(BlockCommonBase<mrdocs::doc::BlockKind::Admonition> const& rhs) const = default;

Return Value

The relative order of the objects

Parameters

Name

Description

rhs

The right operand

Three‐way comparison operator

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockBase.hpp>

std::strong_ordering
operator<=>(BlockContainer const& rhs) const;

Return Value

The relative order of the objects

Parameters

Name

Description

rhs

The right operand

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isAdmonition() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isBrief() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isCode() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isDefinitionList() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isFootnoteDefinition() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isHeading() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isList() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isMath() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isParagraph() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>

constexpr
static
bool
isParam() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>

constexpr
static
bool
isPostcondition() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>

constexpr
static
bool
isPrecondition() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isQuote() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>

constexpr
static
bool
isReturns() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>

constexpr
static
bool
isSee() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>

constexpr
static
bool
isTParam() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isTable() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isThematicBreak() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>

constexpr
static
bool
isThrows() noexcept;

Optional title for the admonition

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/AdmonitionBlock.hpp>

The kind of admonition

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/AdmonitionBlock.hpp>

AdmonitionKind admonish;

Description

This is typically a string in other implementations.

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockBase.hpp>

constexpr static
BlockKind kind_id;

A piece of block content

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockBase.hpp>

struct Block;

Member Functions

Name

Description

~Block [destructor] [virtual]

Destructor

asBlock

operator==

Equality operator

operator<=>

Three‐way comparison operator

Data Members

Name

Kind

Protected Member Functions

Name

Description

Block [constructor]

Constructors

Non-Member Functions

Name

Description

isEmpty

Determine if the inline is empty

ltrim

Removes leading whitespace from the block.

rtrim

Removes trailing whitespace from the block.

trim

Removes leading and trailing whitespace from the block.

Derived Classes

Name

Description

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>

constexpr
virtual
~Block() = default;

Synopses

Declared in <mrdocs/Metadata/DocComment/Block/BlockBase.hpp>

constexpr
Block const&
asBlock() const noexcept;
constexpr
Block&
asBlock() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockBase.hpp>

constexpr
Block const&
asBlock() const noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockBase.hpp>

constexpr
Block&
asBlock() noexcept;

Equality operator

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockBase.hpp>

constexpr
bool
operator==(Block const& other) const noexcept = default;

Return Value

true if the objects are equal, false otherwise

Parameters

Name

Description

other

The right operand

Three‐way comparison operator

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockBase.hpp>

constexpr
auto
operator<=>(Block const& other) const = default;

Return Value

The relative order of the objects

Parameters

Name

Description

other

The right operand

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockBase.hpp>

BlockKind Kind = BlockKind::Paragraph;

Constructors

Synopses

Declared in <mrdocs/Metadata/DocComment/Block/BlockBase.hpp>

Default constructor

constexpr
Block() = default;

Construct from BlockKind

explicit
Block(BlockKind const kind_) noexcept;

Default constructor

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockBase.hpp>

constexpr
Block() = default;

Construct from BlockKind

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockBase.hpp>

explicit
Block(BlockKind const kind_) noexcept;

Parameters

Name

Description

kind_

The object to construct from

Base class for providing variant discriminator functions.

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockBase.hpp>

template<BlockKind K>
struct BlockCommonBase
    : Block

Base Classes

Name

Description

Block

A piece of block content

Member Functions

Name

Description

~BlockCommonBase [destructor] [virtual]

Destructor

asBlock

operator==

Equality operator

operator<=>

Three‐way comparison operators

Data Members

Name

Kind

Static Data Members

Name

Description

kind_id

The variant discriminator constant of the most‐derived class.

Protected Member Functions

Name

Description

BlockCommonBase [constructor]

Default constructor

Non-Member Functions

Name

Description

isEmpty

Determine if the inline is empty

ltrim

Removes leading whitespace from the block.

rtrim

Removes trailing whitespace from the block.

trim

Removes leading and trailing whitespace from the block.

Derived Classes

Name

Description

AdmonitionBlock

A block for side‐notes like tips, warnings, notes

BriefBlock

The brief description

CodeBlock

Preformatted source code.

DefinitionListBlock

FootnoteDefinitionBlock

Preformatted source code.

HeadingBlock

A manually specified section heading.

ListBlock

A list of list items

MathBlock

A block of LaTeX math

ParagraphBlock

A sequence of text nodes.

ParamBlock

Documentation for a function parameter

PostconditionBlock

PreconditionBlock

QuoteBlock

A list of list items

ReturnsBlock

Documentation for a function return type

SeeBlock

A

TParamBlock

Documentation for a template parameter

TableBlock

A table block

ThematicBreakBlock

The brief description

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>

virtual
~BlockCommonBase() override = default;

Three‐way comparison operators

Synopses

Declared in <mrdocs/Metadata/DocComment/Block/BlockBase.hpp>

Three‐way comparison operator

auto
operator<=>(BlockCommonBase const& rhs) const = default;

Three‐way comparison operator

constexpr
auto
operator<=>(Block const& other) const = default;

Three‐way comparison operator

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockBase.hpp>

auto
operator<=>(BlockCommonBase const& rhs) const = default;

Return Value

The relative order of the objects

Parameters

Name

Description

rhs

The right operand

Three‐way comparison operator

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockBase.hpp>

constexpr
auto
operator<=>(Block const& other) const = default;

Return Value

The relative order of the objects

Parameters

Name

Description

other

The right operand

The variant discriminator constant of the most‐derived class.

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockBase.hpp>

inline constexpr static
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>

constexpr
explicit
BlockCommonBase();

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockBase.hpp>

struct BlockContainer;

Member Functions

Name

Description

asBlockContainer

operator==

Equality operator

operator<=>

Three‐way comparison operator

Data Members

Name

blocks

Non-Member Functions

Name

Description

ltrim

Removes leading whitespace from the first text elements

rtrim

Removes trailing whitespace from the last text elements

trim

Removes leading and trailing whitespace from the text elements

Derived Classes

Name

Description

AdmonitionBlock

A block for side‐notes like tips, warnings, notes

DefinitionListItem

An item in a definition list

FootnoteDefinitionBlock

Preformatted source code.

ListItem

An item in a list

QuoteBlock

A list of list items

Synopses

Declared in <mrdocs/Metadata/DocComment/Block/BlockBase.hpp>

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockBase.hpp>

BlockContainer&
asBlockContainer();

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockBase.hpp>

BlockContainer const&
asBlockContainer() const;

Equality operator

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockBase.hpp>

constexpr
bool
operator==(BlockContainer const& rhs) const = default;

Return Value

true if the objects are equal, false otherwise

Parameters

Name

Description

rhs

The right operand

Three‐way comparison operator

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockBase.hpp>

std::strong_ordering
operator<=>(BlockContainer const& rhs) const;

Return Value

The relative order of the objects

Parameters

Name

Description

rhs

The right operand

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockBase.hpp>

std::vector<Polymorphic<Block>> blocks;

The brief description

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BriefBlock.hpp>

Base Classes

Name

Description

BlockCommonBase<BlockKind::Brief>

Base class for providing variant discriminator functions.

InlineContainer

An internal node in the inline element tree

Member Functions

Name

Description

BriefBlock [constructor]

Constructors

operator=

Assign an InlineContainer with a single TextInline child.

append

append overloads

asInlineContainer

Helper function so that derived classes can get a reference to the base class.

back

Get the last inline child.

begin

Begin iterator forwarding to children

clear

Clear all inline children.

emplace_back

Append a child of the specified type.

empty

Determine if there are no inline children.

end

End iterator forwarding to children

erase

Erase from children

front

Get the first inline child.

insert

Erase from children

operator+=

Addition assignment operators

size

Get the number of inline children.

operator==

Compare two InlineContainers.

operator<=>

Compare two InlineContainers.

Static Member Functions

Data Members

Static Data Members

Name

kind_id

Using Declarations

Non-Member Functions

Name

Description

getAsPlainText

Flatten an InlineContainer to plain text.

getAsPlainText

Flatten an InlineContainer to plain text.

isEmpty

Determine if the inline is empty

ltrim

Removes leading whitespace from the first text element in the given InlineContainer.

ltrim

Removes leading whitespace from the block.

rtrim

Removes trailing whitespace from the last text element in the given InlineContainer.

rtrim

Removes trailing whitespace from the block.

trim

Removes leading and trailing whitespace from the block.

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

constexpr
BriefBlock() = default;

Copy constructor

constexpr
BriefBlock(BriefBlock const& other) = default;

Default constructor

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BriefBlock.hpp>

constexpr
BriefBlock() = default;

Copy constructor

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BriefBlock.hpp>

constexpr
BriefBlock(BriefBlock const& other) = default;

Parameters

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

constexpr
BriefBlock&
operator=(BriefBlock const& other) = default;

Copy assignment operator

constexpr
InlineContainer&
operator=(InlineContainer const& other) = default;

Move assignment operator

constexpr
InlineContainer&
operator=(InlineContainer&& other) noexcept = default;

Assign an InlineContainer with a single TextInline child.

InlineContainer&
operator=(std::string_view text);

Copy assignment operator

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BriefBlock.hpp>

constexpr
BriefBlock&
operator=(BriefBlock const& other) = default;

Return Value

Reference to the current object

Parameters

Name

Description

other

The object to copy assign from

Copy assignment operator

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>

constexpr
InlineContainer&
operator=(InlineContainer const& other) = default;

Return Value

Reference to the current object

Parameters

Name

Description

other

The object to copy assign from

Move assignment operator

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>

constexpr
InlineContainer&
operator=(InlineContainer&& other) noexcept = default;

Return Value

Reference to the current object

Parameters

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>

InlineContainer&
operator=(std::string_view text);

Return Value

Reference to the current object

Parameters

Name

Description

text

The object to assign from

Compare two InlineContainers.

Synopses

Declared in <mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>

Three‐way comparison operator

auto
operator<=>(BriefBlock const& rhs) const = default;

Three‐way comparison operator

constexpr
auto
operator<=>(BlockCommonBase<mrdocs::doc::BlockKind::Brief> const& rhs) const = default;

Compare two InlineContainers.

std::strong_ordering
operator<=>(InlineContainer const& rhs) const;

Three‐way comparison operator

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BriefBlock.hpp>

auto
operator<=>(BriefBlock const& rhs) const = default;

Return Value

The relative order of the objects

Parameters

Name

Description

rhs

The right operand

Three‐way comparison operator

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockBase.hpp>

constexpr
auto
operator<=>(BlockCommonBase<mrdocs::doc::BlockKind::Brief> const& rhs) const = default;

Return Value

The relative order of the objects

Parameters

Name

Description

rhs

The right operand

Compare two InlineContainers.

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>

std::strong_ordering
operator<=>(InlineContainer const& rhs) const;

Return Value

The relative order of the objects

Parameters

Name

Description

rhs

The right operand

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isAdmonition() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isBrief() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isCode() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isDefinitionList() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isFootnoteDefinition() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isHeading() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isList() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isMath() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isParagraph() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>

constexpr
static
bool
isParam() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>

constexpr
static
bool
isPostcondition() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>

constexpr
static
bool
isPrecondition() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isQuote() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>

constexpr
static
bool
isReturns() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>

constexpr
static
bool
isSee() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>

constexpr
static
bool
isTParam() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isTable() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isThematicBreak() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>

constexpr
static
bool
isThrows() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BriefBlock.hpp>

std::vector<std::string> copiedFrom;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockBase.hpp>

constexpr static
BlockKind kind_id;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BriefBlock.hpp>

using InlineContainer::BriefBlock;

Introduced Symbols

Name

Description

mrdocs::doc::InlineContainer::InlineContainer

Construct an InlineContainer with a single TextInline child.

mrdocs::doc::InlineContainer::InlineContainer

Construct an InlineContainer with a single TextInline child.

mrdocs::doc::InlineContainer::InlineContainer

Construct an InlineContainer with a single TextInline child.

mrdocs::doc::InlineContainer::InlineContainer

Construct an InlineContainer with a single TextInline child.

mrdocs::doc::InlineContainer::InlineContainer

Move constructor

mrdocs::doc::InlineContainer::InlineContainer

Copy constructor

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BriefBlock.hpp>

using InlineContainer::operator=;

Introduced Symbols

Name

Description

mrdocs::doc::InlineContainer::operator=

Assign an InlineContainer with a single TextInline child.

mrdocs::doc::InlineContainer::operator=

Move assignment operator

mrdocs::doc::InlineContainer::operator=

Copy assignment operator

Preformatted source code.

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/CodeBlock.hpp>

struct CodeBlock final
    : BlockCommonBase<BlockKind::Code>

Base Classes

Name

Description

BlockCommonBase<BlockKind::Code>

Base class for providing variant discriminator functions.

Member Functions

Name

Description

CodeBlock [constructor]

Default constructor

operator==

Equality operator

operator<=>

Three‐way comparison operators

Static Member Functions

Data Members

Name

Description

info

Fence info string, e.g. "cpp"

literal

Static Data Members

Name

kind_id

Non-Member Functions

Name

Description

isEmpty

Determine if the inline is empty

ltrim

Removes leading whitespace from the block.

rtrim

Removes trailing whitespace from the block.

trim

Removes leading and trailing whitespace from the block.

Default constructor

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/CodeBlock.hpp>

constexpr
CodeBlock() noexcept = default;

Equality operator

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/CodeBlock.hpp>

constexpr
bool
operator==(CodeBlock const& rhs) const noexcept = default;

Return Value

true if the objects are equal, false otherwise

Parameters

Name

Description

rhs

The right operand

Three‐way comparison operators

Synopses

Declared in <mrdocs/Metadata/DocComment/Block/BlockBase.hpp>

Three‐way comparison operator

constexpr
auto
operator<=>(CodeBlock const& rhs) const = default;

Three‐way comparison operator

constexpr
auto
operator<=>(BlockCommonBase<mrdocs::doc::BlockKind::Code> const& rhs) const = default;

Three‐way comparison operator

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/CodeBlock.hpp>

constexpr
auto
operator<=>(CodeBlock const& rhs) const = default;

Return Value

The relative order of the objects

Parameters

Name

Description

rhs

The right operand

Three‐way comparison operator

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockBase.hpp>

constexpr
auto
operator<=>(BlockCommonBase<mrdocs::doc::BlockKind::Code> const& rhs) const = default;

Return Value

The relative order of the objects

Parameters

Name

Description

rhs

The right operand

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isAdmonition() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isBrief() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isCode() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isDefinitionList() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isFootnoteDefinition() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isHeading() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isList() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isMath() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isParagraph() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>

constexpr
static
bool
isParam() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>

constexpr
static
bool
isPostcondition() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>

constexpr
static
bool
isPrecondition() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isQuote() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>

constexpr
static
bool
isReturns() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>

constexpr
static
bool
isSee() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>

constexpr
static
bool
isTParam() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isTable() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isThematicBreak() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>

constexpr
static
bool
isThrows() noexcept;

Fence info string, e.g. "cpp"

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/CodeBlock.hpp>

std::string info;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/CodeBlock.hpp>

std::string literal;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockBase.hpp>

constexpr static
BlockKind kind_id;

A piece of styled text.

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/CodeInline.hpp>

Base Classes

Name

Description

InlineCommonBase<InlineKind::Code>

Base class for providing variant discriminator functions.

InlineContainer

An internal node in the inline element tree

Member Functions

Name

Description

operator=

Assign an InlineContainer with a single TextInline child.

append

append overloads

asInlineContainer

Helper function so that derived classes can get a reference to the base class.

back

Get the last inline child.

begin

Begin iterator forwarding to children

clear

Clear all inline children.

emplace_back

Append a child of the specified type.

empty

Determine if there are no inline children.

end

End iterator forwarding to children

erase

Erase from children

front

Get the first inline child.

insert

Erase from children

operator+=

Addition assignment operators

size

Get the number of inline children.

operator==

Compare two InlineContainers.

operator<=>

Compare two InlineContainers.

Static Member Functions

Data Members

Name

children

Static Data Members

Name

kind_id

Using Declarations

Name

CodeInline

Non-Member Functions

Name

Description

getAsPlainText

Flatten an InlineContainer to plain text.

getAsPlainText

Flatten an InlineContainer to plain text.

getAsPlainText

Get the plain text representation of an inline element tree.

getAsPlainText

Get the plain text representation of an inline element tree.

ltrim

Removes leading whitespace from the first text element in the given InlineContainer.

rtrim

Removes trailing whitespace from the last text element in the given InlineContainer.

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

constexpr
bool
operator==(CodeInline const& rhs) const noexcept = default;

Compare two InlineContainers.

constexpr
bool
operator==(InlineContainer const& rhs) const = default;

Equality operator

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/CodeInline.hpp>

constexpr
bool
operator==(CodeInline const& rhs) const noexcept = default;

Return Value

true if the objects are equal, false otherwise

Parameters

Name

Description

rhs

The right operand

Compare two InlineContainers.

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>

constexpr
bool
operator==(InlineContainer const& rhs) const = default;

Return Value

true if the objects are equal, false otherwise

Parameters

Name

Description

rhs

The right operand

Compare two InlineContainers.

Synopses

Declared in <mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>

Three‐way comparison operator

auto
operator<=>(CodeInline const& rhs) const = default;

Three‐way comparison operator

constexpr
auto
operator<=>(InlineCommonBase<mrdocs::doc::InlineKind::Code> const& rhs) const = default;

Compare two InlineContainers.

std::strong_ordering
operator<=>(InlineContainer const& rhs) const;

Three‐way comparison operator

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/CodeInline.hpp>

auto
operator<=>(CodeInline const& rhs) const = default;

Return Value

The relative order of the objects

Parameters

Name

Description

rhs

The right operand

Three‐way comparison operator

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>

constexpr
auto
operator<=>(InlineCommonBase<mrdocs::doc::InlineKind::Code> const& rhs) const = default;

Return Value

The relative order of the objects

Parameters

Name

Description

rhs

The right operand

Compare two InlineContainers.

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>

std::strong_ordering
operator<=>(InlineContainer const& rhs) const;

Return Value

The relative order of the objects

Parameters

Name

Description

rhs

The right operand

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isCode() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isCopyDetails() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isEmph() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isFootnoteReference() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isHighlight() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isImage() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isLineBreak() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isLink() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isMath() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isReference() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isSoftBreak() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isStrikethrough() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isStrong() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isSubscript() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isSuperscript() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isText() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>

constexpr static
InlineKind kind_id;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/CodeInline.hpp>

using InlineContainer::CodeInline;

Introduced Symbols

Name

Description

mrdocs::doc::InlineContainer::InlineContainer

Construct an InlineContainer with a single TextInline child.

mrdocs::doc::InlineContainer::InlineContainer

Construct an InlineContainer with a single TextInline child.

mrdocs::doc::InlineContainer::InlineContainer

Construct an InlineContainer with a single TextInline child.

mrdocs::doc::InlineContainer::InlineContainer

Construct an InlineContainer with a single TextInline child.

mrdocs::doc::InlineContainer::InlineContainer

Move constructor

mrdocs::doc::InlineContainer::InlineContainer

Copy constructor

Documentation copied from another symbol.

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/CopyDetailsInline.hpp>

struct CopyDetailsInline final
    : InlineCommonBase<InlineKind::CopyDetails>

Base Classes

Name

Description

InlineCommonBase<InlineKind::CopyDetails>

Base class for providing variant discriminator functions.

Member Functions

Name

Description

CopyDetailsInline [constructor]

Construct from string

operator==

Equality operator

operator<=>

Three‐way comparison operators

Static Member Functions

Data Members

Name

id

string

Static Data Members

Name

kind_id

Non-Member Functions

Name

Description

getAsPlainText

Get the plain text representation of an inline element tree.

getAsPlainText

Get the plain text representation of an inline element tree.

Construct from string

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/CopyDetailsInline.hpp>

CopyDetailsInline(std::string string_ = std::string()) noexcept;

Parameters

Name

Description

string_

The object to construct from

Equality operator

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/CopyDetailsInline.hpp>

constexpr
bool
operator==(CopyDetailsInline const& rhs) const noexcept = default;

Return Value

true if the objects are equal, false otherwise

Parameters

Name

Description

rhs

The right operand

Three‐way comparison operators

Synopses

Declared in <mrdocs/Metadata/DocComment/Inline/CopyDetailsInline.hpp>

Three‐way comparison operator

auto
operator<=>(CopyDetailsInline const& rhs) const = default;

Three‐way comparison operator

constexpr
auto
operator<=>(InlineCommonBase<mrdocs::doc::InlineKind::CopyDetails> const& rhs) const = default;

Three‐way comparison operator

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/CopyDetailsInline.hpp>

auto
operator<=>(CopyDetailsInline const& rhs) const = default;

Return Value

The relative order of the objects

Parameters

Name

Description

rhs

The right operand

Three‐way comparison operator

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>

constexpr
auto
operator<=>(InlineCommonBase<mrdocs::doc::InlineKind::CopyDetails> const& rhs) const = default;

Return Value

The relative order of the objects

Parameters

Name

Description

rhs

The right operand

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isCode() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isCopyDetails() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isEmph() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isFootnoteReference() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isHighlight() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isImage() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isLineBreak() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isLink() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isMath() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isReference() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isSoftBreak() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isStrikethrough() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isStrong() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isSubscript() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isSuperscript() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isText() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/CopyDetailsInline.hpp>

SymbolID id = = SymbolID::invalid;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/CopyDetailsInline.hpp>

std::string string;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>

constexpr static
InlineKind kind_id;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/DefinitionListBlock.hpp>

struct DefinitionListBlock final
    : BlockCommonBase<BlockKind::List>

Base Classes

Name

Description

BlockCommonBase<BlockKind::List>

Base class for providing variant discriminator functions.

Member Functions

Name

Description

operator==

Equality operator

operator<=>

Three‐way comparison operators

Static Member Functions

Data Members

Name

items

Static Data Members

Name

kind_id

Non-Member Functions

Name

Description

isEmpty

Determine if the inline is empty

ltrim

Removes leading whitespace from the block.

rtrim

Removes trailing whitespace from the block.

trim

Removes leading and trailing whitespace from the block.

Equality operator

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/DefinitionListBlock.hpp>

constexpr
bool
operator==(DefinitionListBlock const& rhs) const noexcept = default;

Return Value

true if the objects are equal, false otherwise

Parameters

Name

Description

rhs

The right operand

Three‐way comparison operators

Synopses

Declared in <mrdocs/Metadata/DocComment/Block/BlockBase.hpp>

Three‐way comparison operator

auto
operator<=>(DefinitionListBlock const& other) const;

Three‐way comparison operator

constexpr
auto
operator<=>(BlockCommonBase<mrdocs::doc::BlockKind::List> const& rhs) const = default;

Three‐way comparison operator

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/DefinitionListBlock.hpp>

auto
operator<=>(DefinitionListBlock const& other) const;

Return Value

The relative order of the objects

Parameters

Name

Description

other

The right operand

Three‐way comparison operator

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockBase.hpp>

constexpr
auto
operator<=>(BlockCommonBase<mrdocs::doc::BlockKind::List> const& rhs) const = default;

Return Value

The relative order of the objects

Parameters

Name

Description

rhs

The right operand

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isAdmonition() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isBrief() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isCode() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isDefinitionList() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isFootnoteDefinition() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isHeading() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isList() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isMath() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isParagraph() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>

constexpr
static
bool
isParam() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>

constexpr
static
bool
isPostcondition() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>

constexpr
static
bool
isPrecondition() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isQuote() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>

constexpr
static
bool
isReturns() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>

constexpr
static
bool
isSee() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>

constexpr
static
bool
isTParam() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isTable() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isThematicBreak() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>

constexpr
static
bool
isThrows() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/DefinitionListBlock.hpp>

std::vector<DefinitionListItem> items;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockBase.hpp>

constexpr static
BlockKind kind_id;

An item in a definition list

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/DefinitionListItem.hpp>

struct DefinitionListItem final
    : BlockContainer

Base Classes

Name

Description

BlockContainer

Member Functions

Name

Description

asBlockContainer

operator==

Equality operators

operator<=>

Three‐way comparison operators

Data Members

Name

blocks

term

Non-Member Functions

Name

Description

ltrim

Removes leading whitespace from the first text elements

rtrim

Removes trailing whitespace from the last text elements

trim

Removes leading and trailing whitespace from the text elements

Equality operators

Synopses

Declared in <mrdocs/Metadata/DocComment/Block/BlockBase.hpp>

Equality operator

constexpr
bool
operator==(DefinitionListItem const& rhs) const noexcept = default;

Equality operator

constexpr
bool
operator==(BlockContainer const& rhs) const = default;

Equality operator

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/DefinitionListItem.hpp>

constexpr
bool
operator==(DefinitionListItem const& rhs) const noexcept = default;

Return Value

true if the objects are equal, false otherwise

Parameters

Name

Description

rhs

The right operand

Equality operator

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockBase.hpp>

constexpr
bool
operator==(BlockContainer const& rhs) const = default;

Return Value

true if the objects are equal, false otherwise

Parameters

Name

Description

rhs

The right operand

Three‐way comparison operators

Synopses

Declared in <mrdocs/Metadata/DocComment/Block/BlockBase.hpp>

Three‐way comparison operator

auto
operator<=>(DefinitionListItem const& rhs) const = default;

Three‐way comparison operator

std::strong_ordering
operator<=>(BlockContainer const& rhs) const;

Three‐way comparison operator

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/DefinitionListItem.hpp>

auto
operator<=>(DefinitionListItem const& rhs) const = default;

Return Value

The relative order of the objects

Parameters

Name

Description

rhs

The right operand

Three‐way comparison operator

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockBase.hpp>

std::strong_ordering
operator<=>(BlockContainer const& rhs) const;

Return Value

The relative order of the objects

Parameters

Name

Description

rhs

The right operand

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/DefinitionListItem.hpp>

A piece of styled text.

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/EmphInline.hpp>

Base Classes

Name

Description

InlineCommonBase<InlineKind::Emph>

Base class for providing variant discriminator functions.

InlineContainer

An internal node in the inline element tree

Member Functions

Name

Description

operator=

Assign an InlineContainer with a single TextInline child.

append

append overloads

asInlineContainer

Helper function so that derived classes can get a reference to the base class.

back

Get the last inline child.

begin

Begin iterator forwarding to children

clear

Clear all inline children.

emplace_back

Append a child of the specified type.

empty

Determine if there are no inline children.

end

End iterator forwarding to children

erase

Erase from children

front

Get the first inline child.

insert

Erase from children

operator+=

Addition assignment operators

size

Get the number of inline children.

operator==

Compare two InlineContainers.

operator<=>

Compare two InlineContainers.

Static Member Functions

Data Members

Name

children

Static Data Members

Name

kind_id

Using Declarations

Name

EmphInline

Non-Member Functions

Name

Description

getAsPlainText

Flatten an InlineContainer to plain text.

getAsPlainText

Flatten an InlineContainer to plain text.

getAsPlainText

Get the plain text representation of an inline element tree.

getAsPlainText

Get the plain text representation of an inline element tree.

ltrim

Removes leading whitespace from the first text element in the given InlineContainer.

rtrim

Removes trailing whitespace from the last text element in the given InlineContainer.

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

constexpr
bool
operator==(EmphInline const& rhs) const noexcept = default;

Compare two InlineContainers.

constexpr
bool
operator==(InlineContainer const& rhs) const = default;

Equality operator

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/EmphInline.hpp>

constexpr
bool
operator==(EmphInline const& rhs) const noexcept = default;

Return Value

true if the objects are equal, false otherwise

Parameters

Name

Description

rhs

The right operand

Compare two InlineContainers.

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>

constexpr
bool
operator==(InlineContainer const& rhs) const = default;

Return Value

true if the objects are equal, false otherwise

Parameters

Name

Description

rhs

The right operand

Compare two InlineContainers.

Synopses

Declared in <mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>

Three‐way comparison operator

auto
operator<=>(EmphInline const& rhs) const = default;

Three‐way comparison operator

constexpr
auto
operator<=>(InlineCommonBase<mrdocs::doc::InlineKind::Emph> const& rhs) const = default;

Compare two InlineContainers.

std::strong_ordering
operator<=>(InlineContainer const& rhs) const;

Three‐way comparison operator

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/EmphInline.hpp>

auto
operator<=>(EmphInline const& rhs) const = default;

Return Value

The relative order of the objects

Parameters

Name

Description

rhs

The right operand

Three‐way comparison operator

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>

constexpr
auto
operator<=>(InlineCommonBase<mrdocs::doc::InlineKind::Emph> const& rhs) const = default;

Return Value

The relative order of the objects

Parameters

Name

Description

rhs

The right operand

Compare two InlineContainers.

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>

std::strong_ordering
operator<=>(InlineContainer const& rhs) const;

Return Value

The relative order of the objects

Parameters

Name

Description

rhs

The right operand

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isCode() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isCopyDetails() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isEmph() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isFootnoteReference() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isHighlight() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isImage() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isLineBreak() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isLink() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isMath() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isReference() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isSoftBreak() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isStrikethrough() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isStrong() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isSubscript() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isSuperscript() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isText() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>

constexpr static
InlineKind kind_id;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/EmphInline.hpp>

using InlineContainer::EmphInline;

Introduced Symbols

Name

Description

mrdocs::doc::InlineContainer::InlineContainer

Construct an InlineContainer with a single TextInline child.

mrdocs::doc::InlineContainer::InlineContainer

Construct an InlineContainer with a single TextInline child.

mrdocs::doc::InlineContainer::InlineContainer

Construct an InlineContainer with a single TextInline child.

mrdocs::doc::InlineContainer::InlineContainer

Construct an InlineContainer with a single TextInline child.

mrdocs::doc::InlineContainer::InlineContainer

Move constructor

mrdocs::doc::InlineContainer::InlineContainer

Copy constructor

Preformatted source code.

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/FootnoteDefinitionBlock.hpp>

struct FootnoteDefinitionBlock final
    : BlockCommonBase<BlockKind::FootnoteDefinition>
    , BlockContainer

Base Classes

Name

Description

BlockCommonBase<BlockKind::FootnoteDefinition>

Base class for providing variant discriminator functions.

BlockContainer

Member Functions

Name

Description

FootnoteDefinitionBlock [constructor]

Default constructor

asBlockContainer

operator==

Equality operators

operator<=>

Three‐way comparison operators

Static Member Functions

Data Members

Name

blocks

label

Static Data Members

Name

kind_id

Non-Member Functions

Name

Description

isEmpty

Determine if the inline is empty

ltrim

Removes leading whitespace from the first text elements

ltrim

Removes leading whitespace from the block.

rtrim

Removes trailing whitespace from the last text elements

rtrim

Removes trailing whitespace from the block.

trim

Removes leading and trailing whitespace from the block.

trim

Removes leading and trailing whitespace from the text elements

Default constructor

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/FootnoteDefinitionBlock.hpp>

constexpr
FootnoteDefinitionBlock() noexcept = default;

Equality operators

Synopses

Declared in <mrdocs/Metadata/DocComment/Block/BlockBase.hpp>

Equality operator

constexpr
bool
operator==(FootnoteDefinitionBlock const& rhs) const noexcept = default;

Equality operator

constexpr
bool
operator==(BlockContainer const& rhs) const = default;

Equality operator

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/FootnoteDefinitionBlock.hpp>

constexpr
bool
operator==(FootnoteDefinitionBlock const& rhs) const noexcept = default;

Return Value

true if the objects are equal, false otherwise

Parameters

Name

Description

rhs

The right operand

Equality operator

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockBase.hpp>

constexpr
bool
operator==(BlockContainer const& rhs) const = default;

Return Value

true if the objects are equal, false otherwise

Parameters

Name

Description

rhs

The right operand

Three‐way comparison operators

Synopses

Declared in <mrdocs/Metadata/DocComment/Block/BlockBase.hpp>

Three‐way comparison operator

auto
operator<=>(FootnoteDefinitionBlock const& rhs) const = default;

Three‐way comparison operator

constexpr
auto
operator<=>(BlockCommonBase<mrdocs::doc::BlockKind::FootnoteDefinition> const& rhs) const = default;

Three‐way comparison operator

std::strong_ordering
operator<=>(BlockContainer const& rhs) const;

Three‐way comparison operator

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/FootnoteDefinitionBlock.hpp>

auto
operator<=>(FootnoteDefinitionBlock const& rhs) const = default;

Return Value

The relative order of the objects

Parameters

Name

Description

rhs

The right operand

Three‐way comparison operator

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockBase.hpp>

constexpr
auto
operator<=>(BlockCommonBase<mrdocs::doc::BlockKind::FootnoteDefinition> const& rhs) const = default;

Return Value

The relative order of the objects

Parameters

Name

Description

rhs

The right operand

Three‐way comparison operator

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockBase.hpp>

std::strong_ordering
operator<=>(BlockContainer const& rhs) const;

Return Value

The relative order of the objects

Parameters

Name

Description

rhs

The right operand

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isAdmonition() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isBrief() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isCode() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isDefinitionList() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isFootnoteDefinition() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isHeading() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isList() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isMath() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isParagraph() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>

constexpr
static
bool
isParam() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>

constexpr
static
bool
isPostcondition() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>

constexpr
static
bool
isPrecondition() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isQuote() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>

constexpr
static
bool
isReturns() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>

constexpr
static
bool
isSee() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>

constexpr
static
bool
isTParam() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isTable() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isThematicBreak() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>

constexpr
static
bool
isThrows() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/FootnoteDefinitionBlock.hpp>

std::string label;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockBase.hpp>

constexpr static
BlockKind kind_id;

A reference to a symbol.

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/FootnoteReferenceInline.hpp>

struct FootnoteReferenceInline
    : InlineCommonBase<InlineKind::FootnoteReference>

Base Classes

Name

Description

InlineCommonBase<InlineKind::FootnoteReference>

Base class for providing variant discriminator functions.

Member Functions

Name

Description

operator==

Equality operator

operator<=>

Three‐way comparison operators

Static Member Functions

Data Members

Name

label

Static Data Members

Name

kind_id

Non-Member Functions

Name

Description

getAsPlainText

Get the plain text representation of an inline element tree.

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>

constexpr
bool
operator==(FootnoteReferenceInline const& rhs) const noexcept = default;

Return Value

true if the objects are equal, false otherwise

Parameters

Name

Description

rhs

The right operand

Three‐way comparison operators

Synopses

Declared in <mrdocs/Metadata/DocComment/Inline/FootnoteReferenceInline.hpp>

Three‐way comparison operator

constexpr
auto
operator<=>(FootnoteReferenceInline const& rhs) const = default;

Three‐way comparison operator

Three‐way comparison operator

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/FootnoteReferenceInline.hpp>

constexpr
auto
operator<=>(FootnoteReferenceInline const& rhs) const = default;

Return Value

The relative order of the objects

Parameters

Name

Description

rhs

The right operand

Three‐way comparison operator

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>

constexpr
auto
operator<=>(InlineCommonBase<mrdocs::doc::InlineKind::FootnoteReference> const& rhs) const = default;

Return Value

The relative order of the objects

Parameters

Name

Description

rhs

The right operand

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isCode() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isCopyDetails() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isEmph() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isFootnoteReference() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isHighlight() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isImage() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isLineBreak() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isLink() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isMath() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isReference() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isSoftBreak() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isStrikethrough() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isStrong() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isSubscript() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isSuperscript() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isText() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/FootnoteReferenceInline.hpp>

std::string label;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>

constexpr static
InlineKind kind_id;

A manually specified section heading.

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/HeadingBlock.hpp>

Base Classes

Name

Description

BlockCommonBase<BlockKind::Heading>

Base class for providing variant discriminator functions.

InlineContainer

An internal node in the inline element tree

Member Functions

Name

Description

operator=

Assign an InlineContainer with a single TextInline child.

append

append overloads

asInlineContainer

Helper function so that derived classes can get a reference to the base class.

back

Get the last inline child.

begin

Begin iterator forwarding to children

clear

Clear all inline children.

emplace_back

Append a child of the specified type.

empty

Determine if there are no inline children.

end

End iterator forwarding to children

erase

Erase from children

front

Get the first inline child.

insert

Erase from children

operator+=

Addition assignment operators

size

Get the number of inline children.

operator==

Compare two InlineContainers.

operator<=>

Compare two InlineContainers.

Static Member Functions

Data Members

Static Data Members

Name

kind_id

Using Declarations

Non-Member Functions

Name

Description

getAsPlainText

Flatten an InlineContainer to plain text.

getAsPlainText

Flatten an InlineContainer to plain text.

isEmpty

Determine if the inline is empty

ltrim

Removes leading whitespace from the first text element in the given InlineContainer.

ltrim

Removes leading whitespace from the block.

rtrim

Removes trailing whitespace from the last text element in the given InlineContainer.

rtrim

Removes trailing whitespace from the block.

trim

Removes leading and trailing whitespace from the block.

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

constexpr
bool
operator==(HeadingBlock const& rhs) const noexcept = default;

Compare two InlineContainers.

constexpr
bool
operator==(InlineContainer const& rhs) const = default;

Equality operator

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/HeadingBlock.hpp>

constexpr
bool
operator==(HeadingBlock const& rhs) const noexcept = default;

Return Value

true if the objects are equal, false otherwise

Parameters

Name

Description

rhs

The right operand

Compare two InlineContainers.

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>

constexpr
bool
operator==(InlineContainer const& rhs) const = default;

Return Value

true if the objects are equal, false otherwise

Parameters

Name

Description

rhs

The right operand

Compare two InlineContainers.

Synopses

Declared in <mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>

Three‐way comparison operator

auto
operator<=>(HeadingBlock const& rhs) const = default;

Three‐way comparison operator

constexpr
auto
operator<=>(BlockCommonBase<mrdocs::doc::BlockKind::Heading> const& rhs) const = default;

Compare two InlineContainers.

std::strong_ordering
operator<=>(InlineContainer const& rhs) const;

Three‐way comparison operator

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/HeadingBlock.hpp>

auto
operator<=>(HeadingBlock const& rhs) const = default;

Return Value

The relative order of the objects

Parameters

Name

Description

rhs

The right operand

Three‐way comparison operator

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockBase.hpp>

constexpr
auto
operator<=>(BlockCommonBase<mrdocs::doc::BlockKind::Heading> const& rhs) const = default;

Return Value

The relative order of the objects

Parameters

Name

Description

rhs

The right operand

Compare two InlineContainers.

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>

std::strong_ordering
operator<=>(InlineContainer const& rhs) const;

Return Value

The relative order of the objects

Parameters

Name

Description

rhs

The right operand

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isAdmonition() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isBrief() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isCode() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isDefinitionList() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isFootnoteDefinition() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isHeading() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isList() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isMath() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isParagraph() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>

constexpr
static
bool
isParam() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>

constexpr
static
bool
isPostcondition() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>

constexpr
static
bool
isPrecondition() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isQuote() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>

constexpr
static
bool
isReturns() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>

constexpr
static
bool
isSee() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>

constexpr
static
bool
isTParam() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isTable() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isThematicBreak() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>

constexpr
static
bool
isThrows() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/HeadingBlock.hpp>

unsigned int level = 1;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockBase.hpp>

constexpr static
BlockKind kind_id;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/HeadingBlock.hpp>

using InlineContainer::HeadingBlock;

Introduced Symbols

Name

Description

mrdocs::doc::InlineContainer::InlineContainer

Construct an InlineContainer with a single TextInline child.

mrdocs::doc::InlineContainer::InlineContainer

Construct an InlineContainer with a single TextInline child.

mrdocs::doc::InlineContainer::InlineContainer

Construct an InlineContainer with a single TextInline child.

mrdocs::doc::InlineContainer::InlineContainer

Construct an InlineContainer with a single TextInline child.

mrdocs::doc::InlineContainer::InlineContainer

Move constructor

mrdocs::doc::InlineContainer::InlineContainer

Copy constructor

A piece of highlighted text.

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/HighlightInline.hpp>

struct HighlightInline final
    : InlineCommonBase<InlineKind::Highlight>
    , InlineContainer

Base Classes

Name

Description

InlineCommonBase<InlineKind::Highlight>

Base class for providing variant discriminator functions.

InlineContainer

An internal node in the inline element tree

Member Functions

Name

Description

operator=

Assign an InlineContainer with a single TextInline child.

append

append overloads

asInlineContainer

Helper function so that derived classes can get a reference to the base class.

back

Get the last inline child.

begin

Begin iterator forwarding to children

clear

Clear all inline children.

emplace_back

Append a child of the specified type.

empty

Determine if there are no inline children.

end

End iterator forwarding to children

erase

Erase from children

front

Get the first inline child.

insert

Erase from children

operator+=

Addition assignment operators

size

Get the number of inline children.

operator==

Compare two InlineContainers.

operator<=>

Compare two InlineContainers.

Static Member Functions

Data Members

Name

children

Static Data Members

Name

kind_id

Non-Member Functions

Name

Description

getAsPlainText

Flatten an InlineContainer to plain text.

getAsPlainText

Flatten an InlineContainer to plain text.

getAsPlainText

Get the plain text representation of an inline element tree.

getAsPlainText

Get the plain text representation of an inline element tree.

ltrim

Removes leading whitespace from the first text element in the given InlineContainer.

rtrim

Removes trailing whitespace from the last text element in the given InlineContainer.

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

constexpr
bool
operator==(HighlightInline const& rhs) const noexcept = default;

Compare two InlineContainers.

constexpr
bool
operator==(InlineContainer const& rhs) const = default;

Equality operator

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/HighlightInline.hpp>

constexpr
bool
operator==(HighlightInline const& rhs) const noexcept = default;

Return Value

true if the objects are equal, false otherwise

Parameters

Name

Description

rhs

The right operand

Compare two InlineContainers.

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>

constexpr
bool
operator==(InlineContainer const& rhs) const = default;

Return Value

true if the objects are equal, false otherwise

Parameters

Name

Description

rhs

The right operand

Compare two InlineContainers.

Synopses

Declared in <mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>

Three‐way comparison operator

auto
operator<=>(HighlightInline const& rhs) const = default;

Three‐way comparison operator

constexpr
auto
operator<=>(InlineCommonBase<mrdocs::doc::InlineKind::Highlight> const& rhs) const = default;

Compare two InlineContainers.

std::strong_ordering
operator<=>(InlineContainer const& rhs) const;

Three‐way comparison operator

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/HighlightInline.hpp>

auto
operator<=>(HighlightInline const& rhs) const = default;

Return Value

The relative order of the objects

Parameters

Name

Description

rhs

The right operand

Three‐way comparison operator

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>

constexpr
auto
operator<=>(InlineCommonBase<mrdocs::doc::InlineKind::Highlight> const& rhs) const = default;

Return Value

The relative order of the objects

Parameters

Name

Description

rhs

The right operand

Compare two InlineContainers.

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>

std::strong_ordering
operator<=>(InlineContainer const& rhs) const;

Return Value

The relative order of the objects

Parameters

Name

Description

rhs

The right operand

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isCode() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isCopyDetails() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isEmph() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isFootnoteReference() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isHighlight() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isImage() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isLineBreak() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isLink() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isMath() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isReference() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isSoftBreak() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isStrikethrough() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isStrong() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isSubscript() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isSuperscript() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isText() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>

constexpr static
InlineKind kind_id;

An image.

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/ImageInline.hpp>

Base Classes

Name

Description

InlineCommonBase<InlineKind::Image>

Base class for providing variant discriminator functions.

InlineContainer

An internal node in the inline element tree

Member Functions

Name

Description

operator=

Assign an InlineContainer with a single TextInline child.

append

append overloads

asInlineContainer

Helper function so that derived classes can get a reference to the base class.

back

Get the last inline child.

begin

Begin iterator forwarding to children

clear

Clear all inline children.

emplace_back

Append a child of the specified type.

empty

Determine if there are no inline children.

end

End iterator forwarding to children

erase

Erase from children

front

Get the first inline child.

insert

Erase from children

operator+=

Addition assignment operators

size

Get the number of inline children.

operator==

Compare two InlineContainers.

operator<=>

Compare two InlineContainers.

Static Member Functions

Data Members

Static Data Members

Name

kind_id

Non-Member Functions

Name

Description

getAsPlainText

Flatten an InlineContainer to plain text.

getAsPlainText

Flatten an InlineContainer to plain text.

getAsPlainText

Get the plain text representation of an inline element tree.

getAsPlainText

Get the plain text representation of an inline element tree.

ltrim

Removes leading whitespace from the first text element in the given InlineContainer.

rtrim

Removes trailing whitespace from the last text element in the given InlineContainer.

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

constexpr
bool
operator==(ImageInline const& rhs) const noexcept = default;

Compare two InlineContainers.

constexpr
bool
operator==(InlineContainer const& rhs) const = default;

Equality operator

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/ImageInline.hpp>

constexpr
bool
operator==(ImageInline const& rhs) const noexcept = default;

Return Value

true if the objects are equal, false otherwise

Parameters

Name

Description

rhs

The right operand

Compare two InlineContainers.

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>

constexpr
bool
operator==(InlineContainer const& rhs) const = default;

Return Value

true if the objects are equal, false otherwise

Parameters

Name

Description

rhs

The right operand

Compare two InlineContainers.

Synopses

Declared in <mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>

Three‐way comparison operator

auto
operator<=>(ImageInline const& rhs) const = default;

Three‐way comparison operator

constexpr
auto
operator<=>(InlineCommonBase<mrdocs::doc::InlineKind::Image> const& rhs) const = default;

Compare two InlineContainers.

std::strong_ordering
operator<=>(InlineContainer const& rhs) const;

Three‐way comparison operator

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/ImageInline.hpp>

auto
operator<=>(ImageInline const& rhs) const = default;

Return Value

The relative order of the objects

Parameters

Name

Description

rhs

The right operand

Three‐way comparison operator

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>

constexpr
auto
operator<=>(InlineCommonBase<mrdocs::doc::InlineKind::Image> const& rhs) const = default;

Return Value

The relative order of the objects

Parameters

Name

Description

rhs

The right operand

Compare two InlineContainers.

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>

std::strong_ordering
operator<=>(InlineContainer const& rhs) const;

Return Value

The relative order of the objects

Parameters

Name

Description

rhs

The right operand

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isCode() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isCopyDetails() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isEmph() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isFootnoteReference() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isHighlight() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isImage() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isLineBreak() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isLink() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isMath() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isReference() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isSoftBreak() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isStrikethrough() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isStrong() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isSubscript() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isSuperscript() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isText() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/ImageInline.hpp>

std::string alt;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/ImageInline.hpp>

std::string src;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>

constexpr static
InlineKind kind_id;

A Node containing a string of text.

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>

struct Inline;

Member Functions

Name

Description

~Inline [destructor] [virtual]

Destructor

asInline

operator==

Equality operator

operator<=>

Three‐way comparison operator

Data Members

Name

Kind

Protected Member Functions

Name

Description

Inline [constructor]

Constructors

Non-Member Functions

Name

Description

getAsPlainText

Get the plain text representation of an inline element tree.

getAsPlainText

Get the plain text representation of an inline element tree.

Derived Classes

Name

Description

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>

constexpr
virtual
~Inline() = default;

Synopses

Declared in <mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>

constexpr
Inline const&
asInline() const noexcept;
constexpr
Inline&
asInline() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>

constexpr
Inline const&
asInline() const noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>

constexpr
Inline&
asInline() noexcept;

Equality operator

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>

constexpr
bool
operator==(Inline const& rhs) const noexcept = default;

Return Value

true if the objects are equal, false otherwise

Parameters

Name

Description

rhs

The right operand

Three‐way comparison operator

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>

constexpr
auto
operator<=>(Inline const& rhs) const = default;

Return Value

The relative order of the objects

Parameters

Name

Description

rhs

The right operand

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>

InlineKind Kind = InlineKind::Text;

Constructors

Synopses

Declared in <mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>

Default constructor

constexpr
Inline() noexcept = default;

Construct from InlineKind

Inline(InlineKind kind_);

Default constructor

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>

constexpr
Inline() noexcept = default;

Construct from InlineKind

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>

Inline(InlineKind kind_);

Parameters

Name

Description

kind_

The object to construct from

Base class for providing variant discriminator functions.

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>

template<InlineKind K>
struct InlineCommonBase
    : Inline

Base Classes

Name

Description

Inline

A Node containing a string of text.

Member Functions

Name

Description

~InlineCommonBase [destructor] [virtual]

Destructor

asInline

operator==

Equality operator

operator<=>

Three‐way comparison operators

Data Members

Name

Kind

Static Data Members

Name

Description

kind_id

The variant discriminator constant of the most‐derived class.

Protected Member Functions

Name

Description

InlineCommonBase [constructor]

Default constructor

Non-Member Functions

Name

Description

getAsPlainText

Get the plain text representation of an inline element tree.

getAsPlainText

Get the plain text representation of an inline element tree.

Derived Classes

Name

Description

CodeInline

A piece of styled text.

CopyDetailsInline

Documentation copied from another symbol.

EmphInline

A piece of styled text.

FootnoteReferenceInline

A reference to a symbol.

HighlightInline

A piece of highlighted text.

ImageInline

An image.

LineBreakInline

A hard line break that renders as ""

LinkInline

A hyperlink.

MathInline

An inline LaTeX math expression

ReferenceInline

A reference to a symbol.

SoftBreakInline

A line break that may render as space

StrikethroughInline

A piece of styled text.

StrongInline

A piece of styled text.

SubscriptInline

A piece of styled text.

SuperscriptInline

A piece of styled text.

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>

virtual
~InlineCommonBase() override = default;

Three‐way comparison operators

Synopses

Declared in <mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>

Three‐way comparison operator

auto
operator<=>(InlineCommonBase const& rhs) const = default;

Three‐way comparison operator

constexpr
auto
operator<=>(Inline const& rhs) const = default;

Three‐way comparison operator

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>

auto
operator<=>(InlineCommonBase const& rhs) const = default;

Return Value

The relative order of the objects

Parameters

Name

Description

rhs

The right operand

Three‐way comparison operator

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>

constexpr
auto
operator<=>(Inline const& rhs) const = default;

Return Value

The relative order of the objects

Parameters

Name

Description

rhs

The right operand

The variant discriminator constant of the most‐derived class.

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>

inline constexpr static
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>

constexpr
explicit
InlineCommonBase();

An internal node in the inline element tree

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>

struct InlineContainer;

Member Functions

Name

Description

InlineContainer [constructor]

Construct an InlineContainer with a single TextInline child.

~InlineContainer [destructor] [virtual]

Destructor

operator=

Assign an InlineContainer with a single TextInline child.

append

append overloads

asInlineContainer

Helper function so that derived classes can get a reference to the base class.

back

Get the last inline child.

begin

Begin iterator forwarding to children

clear

Clear all inline children.

emplace_back

Append a child of the specified type.

empty

Determine if there are no inline children.

end

End iterator forwarding to children

erase

Erase from children

front

Get the first inline child.

insert

Erase from children

operator+=

Addition assignment operators

size

Get the number of inline children.

operator==

Compare two InlineContainers.

operator<=>

Compare two InlineContainers.

Data Members

Name

children

Non-Member Functions

Name

Description

getAsPlainText

Flatten an InlineContainer to plain text.

getAsPlainText

Flatten an InlineContainer to plain text.

ltrim

Removes leading whitespace from the first text element in the given InlineContainer.

rtrim

Removes trailing whitespace from the last text element in the given InlineContainer.

trim

Removes leading and trailing whitespace from the text elements in the given InlineContainer.

Derived Classes

Name

Description

BriefBlock

The brief description

CodeInline

A piece of styled text.

EmphInline

A piece of styled text.

HeadingBlock

A manually specified section heading.

HighlightInline

A piece of highlighted text.

ImageInline

An image.

LinkInline

A hyperlink.

ParagraphBlock

A sequence of text nodes.

ParamBlock

Documentation for a function parameter

PostconditionBlock

PreconditionBlock

ReturnsBlock

Documentation for a function return type

SeeBlock

A

StrikethroughInline

A piece of styled text.

StrongInline

A piece of styled text.

SubscriptInline

A piece of styled text.

SuperscriptInline

A piece of styled text.

TParamBlock

Documentation for a template parameter

TableCell

A cell in a table

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

constexpr
InlineContainer() = default;

Copy constructor

constexpr
InlineContainer(InlineContainer const& other) = default;

Move constructor

constexpr
InlineContainer(InlineContainer&& other) noexcept = default;

Construct an InlineContainer with a single TextInline child.

explicit
InlineContainer(std::string_view text);

Construct an InlineContainer with a single TextInline child.

explicit
InlineContainer(std::string const& text);

Construct an InlineContainer with a single TextInline child.

explicit
InlineContainer(std::string&& text);

Construct an InlineContainer with a single TextInline child.

explicit
InlineContainer(char const* text);

Default constructor

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>

constexpr
InlineContainer() = default;

Copy constructor

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>

constexpr
InlineContainer(InlineContainer const& other) = default;

Parameters

Name

Description

other

The object to copy construct from

Move constructor

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>

constexpr
InlineContainer(InlineContainer&& other) noexcept = default;

Parameters

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>

explicit
InlineContainer(std::string_view text);

Parameters

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>

explicit
InlineContainer(std::string const& text);

Parameters

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>

explicit
InlineContainer(std::string&& text);

Parameters

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>

explicit
InlineContainer(char const* text);

Parameters

Name

Description

text

The value to construct from

Destructor

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>

constexpr
virtual
~InlineContainer() = default;

Assign an InlineContainer with a single TextInline child.

Synopses

Declared in <mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>

Copy assignment operator

constexpr
InlineContainer&
operator=(InlineContainer const& other) = default;

Move assignment operator

constexpr
InlineContainer&
operator=(InlineContainer&& other) noexcept = default;

Assign an InlineContainer with a single TextInline child.

InlineContainer&
operator=(std::string_view text);

Copy assignment operator

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>

constexpr
InlineContainer&
operator=(InlineContainer const& other) = default;

Return Value

Reference to the current object

Parameters

Name

Description

other

The object to copy assign from

Move assignment operator

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>

constexpr
InlineContainer&
operator=(InlineContainer&& other) noexcept = default;

Return Value

Reference to the current object

Parameters

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>

InlineContainer&
operator=(std::string_view text);

Return Value

Reference to the current object

Parameters

Name

Description

text

The object to assign from

append overloads

Synopses

Declared in <mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>

Append a TextInline child.

InlineContainer&
append(std::string_view text);

Append a child of the specified type.

template<
    std::derived_from<Inline> InlineTy,
    class... Args>
InlineContainer&
append(Args...&&... args);

Append a TextInline child.

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>

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>

template<
    std::derived_from<Inline> InlineTy,
    class... Args>
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.

Helper function so that derived classes can get a reference to the base class.

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>

InlineContainer&
asInlineContainer();

Return Value

An internal node in the inline element tree

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>

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.

Polymorphic<Inline> const&
back() const;

Get the last inline child.

Get the last inline child.

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>

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>

Return Value

the last inline child.

Begin iterator forwarding to children

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>

decltype(auto)
begin(this auto&& self) noexcept;

Clear all inline children.

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>

void
clear();

Append a child of the specified type.

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>

template<
    std::derived_from<Inline> InlineTy,
    class... Args>
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>

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>

decltype(auto)
end(this auto&& self) noexcept;

Erase from children

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>

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.

Polymorphic<Inline> const&
front() const;

Get the first inline child.

Get the first inline child.

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>

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>

Return Value

the first inline child.

Erase from children

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>

decltype(auto)
insert(this
    auto&& self,
    auto...&&... args);

Addition assignment operators

Synopses

Declared in <mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>

Append a TextInline child.

InlineContainer&
operator+=(std::string_view text);

Append an inline child.

template<std::derived_from<Inline> InlineTy>
InlineContainer&
operator+=(InlineTy&& inlineChild);

Append a TextInline child.

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>

InlineContainer&
operator+=(std::string_view text);

Return Value

Reference to the current object

Parameters

Name

Description

text

The right operand

Append an inline child.

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>

template<std::derived_from<Inline> InlineTy>
InlineContainer&
operator+=(InlineTy&& inlineChild);

Return Value

Reference to the current object

Parameters

Name

Description

inlineChild

The right operand

Get the number of inline children.

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>

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>

constexpr
bool
operator==(InlineContainer const& rhs) const = default;

Return Value

true if the objects are equal, false otherwise

Parameters

Name

Description

rhs

The right operand

Compare two InlineContainers.

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>

std::strong_ordering
operator<=>(InlineContainer const& rhs) const;

Return Value

The relative order of the objects

Parameters

Name

Description

rhs

The right operand

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>

std::vector<Polymorphic<Inline>> children;

A leaf node that stores a string of text.

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>

struct InlineTextLeaf;

Member Functions

Name

Description

InlineTextLeaf [constructor]

Constructors

operator==

Equality operator

operator<=>

Three‐way comparison operator

Data Members

Name

literal

Constructors

Synopses

Declared in <mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>

Construct from string_view

explicit
InlineTextLeaf(std::string_view literal_);

Construct from string

explicit
InlineTextLeaf(std::string const& literal_);

Construct from string

explicit
InlineTextLeaf(std::string&& literal_) noexcept;

Construct from string_view

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>

explicit
InlineTextLeaf(std::string_view literal_);

Parameters

Name

Description

literal_

The object to construct from

Construct from string

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>

explicit
InlineTextLeaf(std::string const& literal_);

Parameters

Name

Description

literal_

The object to copy construct from

Construct from string

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>

explicit
InlineTextLeaf(std::string&& literal_) noexcept;

Parameters

Name

Description

literal_

The object to move construct from

Equality operator

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>

constexpr
bool
operator==(InlineTextLeaf const& rhs) const noexcept = default;

Return Value

true if the objects are equal, false otherwise

Parameters

Name

Description

rhs

The right operand

Three‐way comparison operator

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>

constexpr
auto
operator<=>(InlineTextLeaf const& rhs) const = default;

Return Value

The relative order of the objects

Parameters

Name

Description

rhs

The right operand

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>

std::string literal;

A hard line break that renders as ""

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/LineBreakInline.hpp>

struct LineBreakInline
    : InlineCommonBase<InlineKind::LineBreak>

Base Classes

Name

Description

InlineCommonBase<InlineKind::LineBreak>

Base class for providing variant discriminator functions.

Member Functions

Name

Description

LineBreakInline [constructor]

Default constructor

~LineBreakInline [destructor] [virtual]

Destructor

operator==

Equality operator

operator<=>

Three‐way comparison operators

Static Member Functions

Static Data Members

Name

kind_id

Non-Member Functions

Name

Description

getAsPlainText

Get the plain text representation of an inline element tree.

getAsPlainText

Get the plain text representation of an inline element tree.

Default constructor

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/LineBreakInline.hpp>

constexpr
LineBreakInline() noexcept = default;

Destructor

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/LineBreakInline.hpp>

constexpr
virtual
~LineBreakInline() override = default;

Equality operator

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/LineBreakInline.hpp>

constexpr
bool
operator==(LineBreakInline const& rhs) const noexcept = default;

Return Value

true if the objects are equal, false otherwise

Parameters

Name

Description

rhs

The right operand

Three‐way comparison operators

Synopses

Declared in <mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>

Three‐way comparison operator

constexpr
auto
operator<=>(LineBreakInline const& rhs) const = default;

Three‐way comparison operator

constexpr
auto
operator<=>(InlineCommonBase<mrdocs::doc::InlineKind::LineBreak> const& rhs) const = default;

Three‐way comparison operator

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/LineBreakInline.hpp>

constexpr
auto
operator<=>(LineBreakInline const& rhs) const = default;

Return Value

The relative order of the objects

Parameters

Name

Description

rhs

The right operand

Three‐way comparison operator

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>

constexpr
auto
operator<=>(InlineCommonBase<mrdocs::doc::InlineKind::LineBreak> const& rhs) const = default;

Return Value

The relative order of the objects

Parameters

Name

Description

rhs

The right operand

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isCode() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isCopyDetails() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isEmph() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isFootnoteReference() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isHighlight() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isImage() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isLineBreak() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isLink() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isMath() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isReference() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isSoftBreak() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isStrikethrough() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isStrong() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isSubscript() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isSuperscript() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isText() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>

constexpr static
InlineKind kind_id;

A hyperlink.

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/LinkInline.hpp>

Base Classes

Name

Description

InlineCommonBase<InlineKind::Link>

Base class for providing variant discriminator functions.

InlineContainer

An internal node in the inline element tree

Member Functions

Name

Description

LinkInline [constructor]

Constructors

operator=

Assign an InlineContainer with a single TextInline child.

append

append overloads

asInlineContainer

Helper function so that derived classes can get a reference to the base class.

back

Get the last inline child.

begin

Begin iterator forwarding to children

clear

Clear all inline children.

emplace_back

Append a child of the specified type.

empty

Determine if there are no inline children.

end

End iterator forwarding to children

erase

Erase from children

front

Get the first inline child.

insert

Erase from children

operator+=

Addition assignment operators

size

Get the number of inline children.

operator==

Compare two InlineContainers.

operator<=>

Compare two InlineContainers.

Static Member Functions

Data Members

Name

children

href

Static Data Members

Name

kind_id

Non-Member Functions

Name

Description

getAsPlainText

Flatten an InlineContainer to plain text.

getAsPlainText

Flatten an InlineContainer to plain text.

getAsPlainText

Get the plain text representation of an inline element tree.

getAsPlainText

Get the plain text representation of an inline element tree.

ltrim

Removes leading whitespace from the first text element in the given InlineContainer.

rtrim

Removes trailing whitespace from the last text element in the given InlineContainer.

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

constexpr
LinkInline() = default;
LinkInline(
    std::string_view text,
    std::string_view href);

Default constructor

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/LinkInline.hpp>

constexpr
LinkInline() = default;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/LinkInline.hpp>

LinkInline(
    std::string_view text,
    std::string_view href);

Compare two InlineContainers.

Synopses

Declared in <mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>

Equality operator

constexpr
bool
operator==(LinkInline const& rhs) const noexcept = default;

Compare two InlineContainers.

constexpr
bool
operator==(InlineContainer const& rhs) const = default;

Equality operator

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/LinkInline.hpp>

constexpr
bool
operator==(LinkInline const& rhs) const noexcept = default;

Return Value

true if the objects are equal, false otherwise

Parameters

Name

Description

rhs

The right operand

Compare two InlineContainers.

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>

constexpr
bool
operator==(InlineContainer const& rhs) const = default;

Return Value

true if the objects are equal, false otherwise

Parameters

Name

Description

rhs

The right operand

Compare two InlineContainers.

Synopses

Declared in <mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>

Three‐way comparison operator

auto
operator<=>(LinkInline const& rhs) const = default;

Three‐way comparison operator

constexpr
auto
operator<=>(InlineCommonBase<mrdocs::doc::InlineKind::Link> const& rhs) const = default;

Compare two InlineContainers.

std::strong_ordering
operator<=>(InlineContainer const& rhs) const;

Three‐way comparison operator

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/LinkInline.hpp>

auto
operator<=>(LinkInline const& rhs) const = default;

Return Value

The relative order of the objects

Parameters

Name

Description

rhs

The right operand

Three‐way comparison operator

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>

constexpr
auto
operator<=>(InlineCommonBase<mrdocs::doc::InlineKind::Link> const& rhs) const = default;

Return Value

The relative order of the objects

Parameters

Name

Description

rhs

The right operand

Compare two InlineContainers.

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>

std::strong_ordering
operator<=>(InlineContainer const& rhs) const;

Return Value

The relative order of the objects

Parameters

Name

Description

rhs

The right operand

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isCode() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isCopyDetails() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isEmph() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isFootnoteReference() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isHighlight() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isImage() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isLineBreak() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isLink() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isMath() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isReference() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isSoftBreak() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isStrikethrough() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isStrong() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isSubscript() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isSuperscript() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isText() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/LinkInline.hpp>

std::string href;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>

constexpr static
InlineKind kind_id;

A list of list items

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/ListBlock.hpp>

struct ListBlock final
    : BlockCommonBase<BlockKind::List>

Base Classes

Name

Description

BlockCommonBase<BlockKind::List>

Base class for providing variant discriminator functions.

Member Functions

Name

Description

operator==

Equality operator

operator<=>

Three‐way comparison operators

Static Member Functions

Data Members

Static Data Members

Name

kind_id

Non-Member Functions

Name

Description

isEmpty

Determine if the inline is empty

ltrim

Removes leading whitespace from the block.

rtrim

Removes trailing whitespace from the block.

trim

Removes leading and trailing whitespace from the block.

Equality operator

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/ListBlock.hpp>

constexpr
bool
operator==(ListBlock const& rhs) const noexcept = default;

Return Value

true if the objects are equal, false otherwise

Parameters

Name

Description

rhs

The right operand

Three‐way comparison operators

Synopses

Declared in <mrdocs/Metadata/DocComment/Block/BlockBase.hpp>

Three‐way comparison operator

auto
operator<=>(ListBlock const& other) const;

Three‐way comparison operator

constexpr
auto
operator<=>(BlockCommonBase<mrdocs::doc::BlockKind::List> const& rhs) const = default;

Three‐way comparison operator

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/ListBlock.hpp>

auto
operator<=>(ListBlock const& other) const;

Return Value

The relative order of the objects

Parameters

Name

Description

other

The right operand

Three‐way comparison operator

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockBase.hpp>

constexpr
auto
operator<=>(BlockCommonBase<mrdocs::doc::BlockKind::List> const& rhs) const = default;

Return Value

The relative order of the objects

Parameters

Name

Description

rhs

The right operand

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isAdmonition() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isBrief() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isCode() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isDefinitionList() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isFootnoteDefinition() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isHeading() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isList() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isMath() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isParagraph() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>

constexpr
static
bool
isParam() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>

constexpr
static
bool
isPostcondition() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>

constexpr
static
bool
isPrecondition() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isQuote() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>

constexpr
static
bool
isReturns() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>

constexpr
static
bool
isSee() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>

constexpr
static
bool
isTParam() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isTable() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isThematicBreak() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>

constexpr
static
bool
isThrows() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/ListBlock.hpp>

std::vector<ListItem> items;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/ListBlock.hpp>

ListKind listKind = ListKind::Unordered;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockBase.hpp>

constexpr static
BlockKind kind_id;

An item in a list

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/ListItem.hpp>

struct ListItem final
    : BlockContainer

Base Classes

Name

Description

BlockContainer

Member Functions

Name

Description

asBlockContainer

operator==

Equality operators

operator<=>

Three‐way comparison operators

Data Members

Name

blocks

Non-Member Functions

Name

Description

ltrim

Removes leading whitespace from the first text elements

rtrim

Removes trailing whitespace from the last text elements

trim

Removes leading and trailing whitespace from the text elements

Equality operators

Synopses

Declared in <mrdocs/Metadata/DocComment/Block/BlockBase.hpp>

Equality operator

constexpr
bool
operator==(ListItem const& rhs) const noexcept = default;

Equality operator

constexpr
bool
operator==(BlockContainer const& rhs) const = default;

Equality operator

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/ListItem.hpp>

constexpr
bool
operator==(ListItem const& rhs) const noexcept = default;

Return Value

true if the objects are equal, false otherwise

Parameters

Name

Description

rhs

The right operand

Equality operator

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockBase.hpp>

constexpr
bool
operator==(BlockContainer const& rhs) const = default;

Return Value

true if the objects are equal, false otherwise

Parameters

Name

Description

rhs

The right operand

Three‐way comparison operators

Synopses

Declared in <mrdocs/Metadata/DocComment/Block/BlockBase.hpp>

Three‐way comparison operator

auto
operator<=>(ListItem const& rhs) const = default;

Three‐way comparison operator

std::strong_ordering
operator<=>(BlockContainer const& rhs) const;

Three‐way comparison operator

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/ListItem.hpp>

auto
operator<=>(ListItem const& rhs) const = default;

Return Value

The relative order of the objects

Parameters

Name

Description

rhs

The right operand

Three‐way comparison operator

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockBase.hpp>

std::strong_ordering
operator<=>(BlockContainer const& rhs) const;

Return Value

The relative order of the objects

Parameters

Name

Description

rhs

The right operand

A block of LaTeX math

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/MathBlock.hpp>

struct MathBlock final
    : BlockCommonBase<BlockKind::Math>

Base Classes

Name

Description

BlockCommonBase<BlockKind::Math>

Base class for providing variant discriminator functions.

Member Functions

Name

Description

MathBlock [constructor]

Copy constructor

operator=

Copy assignment operator

operator<=>

Three‐way comparison operators

Static Member Functions

Data Members

Name

Description

literal

Raw TeX math source

Static Data Members

Name

kind_id

Non-Member Functions

Name

Description

isEmpty

Determine if the inline is empty

ltrim

Removes leading whitespace from the block.

rtrim

Removes trailing whitespace from the block.

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>

constexpr
MathBlock(MathBlock const& other) = default;

Parameters

Name

Description

other

The object to copy construct from

Copy assignment operator

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/MathBlock.hpp>

constexpr
MathBlock&
operator=(MathBlock const& other) = default;

Return Value

Reference to the current object

Parameters

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

constexpr
auto
operator<=>(MathBlock const& rhs) const = default;

Three‐way comparison operator

constexpr
auto
operator<=>(BlockCommonBase<mrdocs::doc::BlockKind::Math> const& rhs) const = default;

Three‐way comparison operator

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/MathBlock.hpp>

constexpr
auto
operator<=>(MathBlock const& rhs) const = default;

Return Value

The relative order of the objects

Parameters

Name

Description

rhs

The right operand

Three‐way comparison operator

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockBase.hpp>

constexpr
auto
operator<=>(BlockCommonBase<mrdocs::doc::BlockKind::Math> const& rhs) const = default;

Return Value

The relative order of the objects

Parameters

Name

Description

rhs

The right operand

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isAdmonition() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isBrief() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isCode() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isDefinitionList() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isFootnoteDefinition() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isHeading() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isList() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isMath() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isParagraph() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>

constexpr
static
bool
isParam() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>

constexpr
static
bool
isPostcondition() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>

constexpr
static
bool
isPrecondition() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isQuote() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>

constexpr
static
bool
isReturns() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>

constexpr
static
bool
isSee() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>

constexpr
static
bool
isTParam() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isTable() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isThematicBreak() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>

constexpr
static
bool
isThrows() noexcept;

Raw TeX math source

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/MathBlock.hpp>

std::string literal;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockBase.hpp>

constexpr static
BlockKind kind_id;

An inline LaTeX math expression

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/MathInline.hpp>

Base Classes

Name

Description

InlineCommonBase<InlineKind::Math>

Base class for providing variant discriminator functions.

Member Functions

Name

Description

MathInline [constructor]

Constructors

~MathInline [destructor] [virtual]

Destructor

operator==

Equality operator

operator<=>

Three‐way comparison operators

Static Member Functions

Data Members

Name

literal

Static Data Members

Name

kind_id

Non-Member Functions

Name

Description

getAsPlainText

Get the plain text representation of an inline element tree.

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

constexpr
MathInline() noexcept = default;

Construct from string

explicit
MathInline(std::string string_) noexcept;

Default constructor

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/MathInline.hpp>

constexpr
MathInline() noexcept = default;

Construct from string

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/MathInline.hpp>

explicit
MathInline(std::string string_) noexcept;

Parameters

Name

Description

string_

The object to construct from

Destructor

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/MathInline.hpp>

constexpr
virtual
~MathInline() override = default;

Equality operator

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/MathInline.hpp>

constexpr
bool
operator==(MathInline const& rhs) const noexcept = default;

Return Value

true if the objects are equal, false otherwise

Parameters

Name

Description

rhs

The right operand

Three‐way comparison operators

Synopses

Declared in <mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>

Three‐way comparison operator

constexpr
auto
operator<=>(MathInline const& rhs) const = default;

Three‐way comparison operator

constexpr
auto
operator<=>(InlineCommonBase<mrdocs::doc::InlineKind::Math> const& rhs) const = default;

Three‐way comparison operator

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/MathInline.hpp>

constexpr
auto
operator<=>(MathInline const& rhs) const = default;

Return Value

The relative order of the objects

Parameters

Name

Description

rhs

The right operand

Three‐way comparison operator

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>

constexpr
auto
operator<=>(InlineCommonBase<mrdocs::doc::InlineKind::Math> const& rhs) const = default;

Return Value

The relative order of the objects

Parameters

Name

Description

rhs

The right operand

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isCode() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isCopyDetails() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isEmph() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isFootnoteReference() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isHighlight() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isImage() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isLineBreak() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isLink() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isMath() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isReference() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isSoftBreak() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isStrikethrough() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isStrong() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isSubscript() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isSuperscript() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isText() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/MathInline.hpp>

std::string literal;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>

constexpr static
InlineKind kind_id;

A sequence of text nodes.

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/ParagraphBlock.hpp>

Base Classes

Name

Description

BlockCommonBase<BlockKind::Paragraph>

Base class for providing variant discriminator functions.

InlineContainer

An internal node in the inline element tree

Member Functions

Name

Description

ParagraphBlock [constructor]

Default constructor

~ParagraphBlock [destructor] [virtual]

Destructor

operator=

Assign an InlineContainer with a single TextInline child.

append

append overloads

asInlineContainer

Helper function so that derived classes can get a reference to the base class.

back

Get the last inline child.

begin

Begin iterator forwarding to children

clear

Clear all inline children.

emplace_back

Append a child of the specified type.

empty

Determine if there are no inline children.

end

End iterator forwarding to children

erase

Erase from children

front

Get the first inline child.

insert

Erase from children

operator+=

Addition assignment operators

size

Get the number of inline children.

operator==

Compare two InlineContainers.

operator<=>

Compare two InlineContainers.

Static Member Functions

Data Members

Name

children

Static Data Members

Name

kind_id

Non-Member Functions

Name

Description

getAsPlainText

Flatten an InlineContainer to plain text.

getAsPlainText

Flatten an InlineContainer to plain text.

isEmpty

Determine if the inline is empty

ltrim

Removes leading whitespace from the first text element in the given InlineContainer.

ltrim

Removes leading whitespace from the block.

rtrim

Removes trailing whitespace from the last text element in the given InlineContainer.

rtrim

Removes trailing whitespace from the block.

trim

Removes leading and trailing whitespace from the block.

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>

constexpr
ParagraphBlock() noexcept = default;

Destructor

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/ParagraphBlock.hpp>

constexpr
virtual
~ParagraphBlock() override = default;

Compare two InlineContainers.

Synopses

Declared in <mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>

Three‐way comparison operator

auto
operator<=>(ParagraphBlock const& rhs) const = default;

Three‐way comparison operator

constexpr
auto
operator<=>(BlockCommonBase<mrdocs::doc::BlockKind::Paragraph> const& rhs) const = default;

Compare two InlineContainers.

std::strong_ordering
operator<=>(InlineContainer const& rhs) const;

Three‐way comparison operator

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/ParagraphBlock.hpp>

auto
operator<=>(ParagraphBlock const& rhs) const = default;

Return Value

The relative order of the objects

Parameters

Name

Description

rhs

The right operand

Three‐way comparison operator

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockBase.hpp>

constexpr
auto
operator<=>(BlockCommonBase<mrdocs::doc::BlockKind::Paragraph> const& rhs) const = default;

Return Value

The relative order of the objects

Parameters

Name

Description

rhs

The right operand

Compare two InlineContainers.

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>

std::strong_ordering
operator<=>(InlineContainer const& rhs) const;

Return Value

The relative order of the objects

Parameters

Name

Description

rhs

The right operand

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isAdmonition() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isBrief() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isCode() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isDefinitionList() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isFootnoteDefinition() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isHeading() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isList() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isMath() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isParagraph() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>

constexpr
static
bool
isParam() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>

constexpr
static
bool
isPostcondition() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>

constexpr
static
bool
isPrecondition() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isQuote() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>

constexpr
static
bool
isReturns() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>

constexpr
static
bool
isSee() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>

constexpr
static
bool
isTParam() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isTable() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isThematicBreak() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>

constexpr
static
bool
isThrows() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockBase.hpp>

constexpr static
BlockKind kind_id;

Documentation for a function parameter

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/ParamBlock.hpp>

Base Classes

Name

Description

BlockCommonBase<BlockKind::Param>

Base class for providing variant discriminator functions.

InlineContainer

An internal node in the inline element tree

Member Functions

Name

Description

ParamBlock [constructor]

Constructors

operator=

Assign an InlineContainer with a single TextInline child.

append

append overloads

asInlineContainer

Helper function so that derived classes can get a reference to the base class.

back

Get the last inline child.

begin

Begin iterator forwarding to children

clear

Clear all inline children.

emplace_back

Append a child of the specified type.

empty

Determine if there are no inline children.

end

End iterator forwarding to children

erase

Erase from children

front

Get the first inline child.

insert

Erase from children

operator+=

Addition assignment operators

size

Get the number of inline children.

operator==

Compare two InlineContainers.

operator<=>

Compare two InlineContainers.

Static Member Functions

Data Members

Static Data Members

Name

kind_id

Using Declarations

Name

ParamBlock

Non-Member Functions

Name

Description

getAsPlainText

Flatten an InlineContainer to plain text.

getAsPlainText

Flatten an InlineContainer to plain text.

isEmpty

Determine if the inline is empty

ltrim

Removes leading whitespace from the first text element in the given InlineContainer.

ltrim

Removes leading whitespace from the block.

rtrim

Removes trailing whitespace from the last text element in the given InlineContainer.

rtrim

Removes trailing whitespace from the block.

trim

Removes leading and trailing whitespace from the block.

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

ParamBlock(InlineContainer const& other);

Construct from InlineContainer

ParamBlock(InlineContainer&& other) noexcept;
ParamBlock(
    std::string_view name,
    std::string_view text,
    ParamDirection direction = ParamDirection::none);

Construct from InlineContainer

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/ParamBlock.hpp>

ParamBlock(InlineContainer const& other);

Parameters

Name

Description

other

The object to copy construct from

Construct from InlineContainer

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/ParamBlock.hpp>

ParamBlock(InlineContainer&& other) noexcept;

Parameters

Name

Description

other

The object to move construct from

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/ParamBlock.hpp>

ParamBlock(
    std::string_view name,
    std::string_view text,
    ParamDirection direction = ParamDirection::none);

Compare two InlineContainers.

Synopses

Declared in <mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>

Equality operator

constexpr
bool
operator==(ParamBlock const& rhs) const noexcept = default;

Compare two InlineContainers.

constexpr
bool
operator==(InlineContainer const& rhs) const = default;

Equality operator

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/ParamBlock.hpp>

constexpr
bool
operator==(ParamBlock const& rhs) const noexcept = default;

Return Value

true if the objects are equal, false otherwise

Parameters

Name

Description

rhs

The right operand

Compare two InlineContainers.

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>

constexpr
bool
operator==(InlineContainer const& rhs) const = default;

Return Value

true if the objects are equal, false otherwise

Parameters

Name

Description

rhs

The right operand

Compare two InlineContainers.

Synopses

Declared in <mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>

Three‐way comparison operator

auto
operator<=>(ParamBlock const& rhs) const = default;

Three‐way comparison operator

constexpr
auto
operator<=>(BlockCommonBase<mrdocs::doc::BlockKind::Param> const& rhs) const = default;

Compare two InlineContainers.

std::strong_ordering
operator<=>(InlineContainer const& rhs) const;

Three‐way comparison operator

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/ParamBlock.hpp>

auto
operator<=>(ParamBlock const& rhs) const = default;

Return Value

The relative order of the objects

Parameters

Name

Description

rhs

The right operand

Three‐way comparison operator

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockBase.hpp>

constexpr
auto
operator<=>(BlockCommonBase<mrdocs::doc::BlockKind::Param> const& rhs) const = default;

Return Value

The relative order of the objects

Parameters

Name

Description

rhs

The right operand

Compare two InlineContainers.

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>

std::strong_ordering
operator<=>(InlineContainer const& rhs) const;

Return Value

The relative order of the objects

Parameters

Name

Description

rhs

The right operand

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isAdmonition() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isBrief() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isCode() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isDefinitionList() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isFootnoteDefinition() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isHeading() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isList() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isMath() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isParagraph() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>

constexpr
static
bool
isParam() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>

constexpr
static
bool
isPostcondition() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>

constexpr
static
bool
isPrecondition() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isQuote() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>

constexpr
static
bool
isReturns() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>

constexpr
static
bool
isSee() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>

constexpr
static
bool
isTParam() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isTable() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isThematicBreak() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>

constexpr
static
bool
isThrows() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/ParamBlock.hpp>

ParamDirection direction = ParamDirection::none;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/ParamBlock.hpp>

std::string name;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockBase.hpp>

constexpr static
BlockKind kind_id;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/ParamBlock.hpp>

using InlineContainer::ParamBlock;

Introduced Symbols

Name

Description

mrdocs::doc::InlineContainer::InlineContainer

Construct an InlineContainer with a single TextInline child.

mrdocs::doc::InlineContainer::InlineContainer

Construct an InlineContainer with a single TextInline child.

mrdocs::doc::InlineContainer::InlineContainer

Construct an InlineContainer with a single TextInline child.

mrdocs::doc::InlineContainer::InlineContainer

Construct an InlineContainer with a single TextInline child.

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/PostconditionBlock.hpp>

Base Classes

Name

Description

BlockCommonBase<BlockKind::Postcondition>

Base class for providing variant discriminator functions.

InlineContainer

An internal node in the inline element tree

Member Functions

Name

Description

operator=

Assign an InlineContainer with a single TextInline child.

append

append overloads

asInlineContainer

Helper function so that derived classes can get a reference to the base class.

back

Get the last inline child.

begin

Begin iterator forwarding to children

clear

Clear all inline children.

emplace_back

Append a child of the specified type.

empty

Determine if there are no inline children.

end

End iterator forwarding to children

erase

Erase from children

front

Get the first inline child.

insert

Erase from children

operator+=

Addition assignment operators

size

Get the number of inline children.

operator==

Compare two InlineContainers.

operator<=>

Compare two InlineContainers.

Static Member Functions

Data Members

Name

children

Static Data Members

Name

kind_id

Using Declarations

Non-Member Functions

Name

Description

getAsPlainText

Flatten an InlineContainer to plain text.

getAsPlainText

Flatten an InlineContainer to plain text.

isEmpty

Determine if the inline is empty

ltrim

Removes leading whitespace from the first text element in the given InlineContainer.

ltrim

Removes leading whitespace from the block.

rtrim

Removes trailing whitespace from the last text element in the given InlineContainer.

rtrim

Removes trailing whitespace from the block.

trim

Removes leading and trailing whitespace from the block.

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

constexpr
bool
operator==(PostconditionBlock const& rhs) const noexcept = default;

Compare two InlineContainers.

constexpr
bool
operator==(InlineContainer const& rhs) const = default;

Equality operator

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/PostconditionBlock.hpp>

constexpr
bool
operator==(PostconditionBlock const& rhs) const noexcept = default;

Return Value

true if the objects are equal, false otherwise

Parameters

Name

Description

rhs

The right operand

Compare two InlineContainers.

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>

constexpr
bool
operator==(InlineContainer const& rhs) const = default;

Return Value

true if the objects are equal, false otherwise

Parameters

Name

Description

rhs

The right operand

Compare two InlineContainers.

Synopses

Declared in <mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>

Three‐way comparison operator

auto
operator<=>(PostconditionBlock const& rhs) const = default;

Three‐way comparison operator

constexpr
auto
operator<=>(BlockCommonBase<mrdocs::doc::BlockKind::Postcondition> const& rhs) const = default;

Compare two InlineContainers.

std::strong_ordering
operator<=>(InlineContainer const& rhs) const;

Three‐way comparison operator

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/PostconditionBlock.hpp>

auto
operator<=>(PostconditionBlock const& rhs) const = default;

Return Value

The relative order of the objects

Parameters

Name

Description

rhs

The right operand

Three‐way comparison operator

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockBase.hpp>

constexpr
auto
operator<=>(BlockCommonBase<mrdocs::doc::BlockKind::Postcondition> const& rhs) const = default;

Return Value

The relative order of the objects

Parameters

Name

Description

rhs

The right operand

Compare two InlineContainers.

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>

std::strong_ordering
operator<=>(InlineContainer const& rhs) const;

Return Value

The relative order of the objects

Parameters

Name

Description

rhs

The right operand

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isAdmonition() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isBrief() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isCode() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isDefinitionList() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isFootnoteDefinition() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isHeading() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isList() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isMath() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isParagraph() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>

constexpr
static
bool
isParam() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>

constexpr
static
bool
isPostcondition() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>

constexpr
static
bool
isPrecondition() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isQuote() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>

constexpr
static
bool
isReturns() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>

constexpr
static
bool
isSee() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>

constexpr
static
bool
isTParam() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isTable() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isThematicBreak() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>

constexpr
static
bool
isThrows() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockBase.hpp>

constexpr static
BlockKind kind_id;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/PostconditionBlock.hpp>

using InlineContainer::PostconditionBlock;

Introduced Symbols

Name

Description

mrdocs::doc::InlineContainer::InlineContainer

Construct an InlineContainer with a single TextInline child.

mrdocs::doc::InlineContainer::InlineContainer

Construct an InlineContainer with a single TextInline child.

mrdocs::doc::InlineContainer::InlineContainer

Construct an InlineContainer with a single TextInline child.

mrdocs::doc::InlineContainer::InlineContainer

Construct an InlineContainer with a single TextInline child.

mrdocs::doc::InlineContainer::InlineContainer

Move constructor

mrdocs::doc::InlineContainer::InlineContainer

Copy constructor

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/PreconditionBlock.hpp>

struct PreconditionBlock final
    : BlockCommonBase<BlockKind::Precondition>
    , InlineContainer

Base Classes

Name

Description

BlockCommonBase<BlockKind::Precondition>

Base class for providing variant discriminator functions.

InlineContainer

An internal node in the inline element tree

Member Functions

Name

Description

operator=

Assign an InlineContainer with a single TextInline child.

append

append overloads

asInlineContainer

Helper function so that derived classes can get a reference to the base class.

back

Get the last inline child.

begin

Begin iterator forwarding to children

clear

Clear all inline children.

emplace_back

Append a child of the specified type.

empty

Determine if there are no inline children.

end

End iterator forwarding to children

erase

Erase from children

front

Get the first inline child.

insert

Erase from children

operator+=

Addition assignment operators

size

Get the number of inline children.

operator==

Compare two InlineContainers.

operator<=>

Compare two InlineContainers.

Static Member Functions

Data Members

Name

children

Static Data Members

Name

kind_id

Using Declarations

Non-Member Functions

Name

Description

getAsPlainText

Flatten an InlineContainer to plain text.

getAsPlainText

Flatten an InlineContainer to plain text.

isEmpty

Determine if the inline is empty

ltrim

Removes leading whitespace from the first text element in the given InlineContainer.

ltrim

Removes leading whitespace from the block.

rtrim

Removes trailing whitespace from the last text element in the given InlineContainer.

rtrim

Removes trailing whitespace from the block.

trim

Removes leading and trailing whitespace from the block.

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

constexpr
bool
operator==(PreconditionBlock const& rhs) const noexcept = default;

Compare two InlineContainers.

constexpr
bool
operator==(InlineContainer const& rhs) const = default;

Equality operator

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/PreconditionBlock.hpp>

constexpr
bool
operator==(PreconditionBlock const& rhs) const noexcept = default;

Return Value

true if the objects are equal, false otherwise

Parameters

Name

Description

rhs

The right operand

Compare two InlineContainers.

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>

constexpr
bool
operator==(InlineContainer const& rhs) const = default;

Return Value

true if the objects are equal, false otherwise

Parameters

Name

Description

rhs

The right operand

Compare two InlineContainers.

Synopses

Declared in <mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>

Three‐way comparison operator

auto
operator<=>(PreconditionBlock const& rhs) const = default;

Three‐way comparison operator

constexpr
auto
operator<=>(BlockCommonBase<mrdocs::doc::BlockKind::Precondition> const& rhs) const = default;

Compare two InlineContainers.

std::strong_ordering
operator<=>(InlineContainer const& rhs) const;

Three‐way comparison operator

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/PreconditionBlock.hpp>

auto
operator<=>(PreconditionBlock const& rhs) const = default;

Return Value

The relative order of the objects

Parameters

Name

Description

rhs

The right operand

Three‐way comparison operator

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockBase.hpp>

constexpr
auto
operator<=>(BlockCommonBase<mrdocs::doc::BlockKind::Precondition> const& rhs) const = default;

Return Value

The relative order of the objects

Parameters

Name

Description

rhs

The right operand

Compare two InlineContainers.

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>

std::strong_ordering
operator<=>(InlineContainer const& rhs) const;

Return Value

The relative order of the objects

Parameters

Name

Description

rhs

The right operand

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isAdmonition() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isBrief() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isCode() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isDefinitionList() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isFootnoteDefinition() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isHeading() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isList() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isMath() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isParagraph() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>

constexpr
static
bool
isParam() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>

constexpr
static
bool
isPostcondition() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>

constexpr
static
bool
isPrecondition() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isQuote() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>

constexpr
static
bool
isReturns() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>

constexpr
static
bool
isSee() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>

constexpr
static
bool
isTParam() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isTable() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isThematicBreak() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>

constexpr
static
bool
isThrows() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockBase.hpp>

constexpr static
BlockKind kind_id;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/PreconditionBlock.hpp>

using InlineContainer::PreconditionBlock;

Introduced Symbols

Name

Description

mrdocs::doc::InlineContainer::InlineContainer

Construct an InlineContainer with a single TextInline child.

mrdocs::doc::InlineContainer::InlineContainer

Construct an InlineContainer with a single TextInline child.

mrdocs::doc::InlineContainer::InlineContainer

Construct an InlineContainer with a single TextInline child.

mrdocs::doc::InlineContainer::InlineContainer

Construct an InlineContainer with a single TextInline child.

mrdocs::doc::InlineContainer::InlineContainer

Move constructor

mrdocs::doc::InlineContainer::InlineContainer

Copy constructor

A list of list items

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/QuoteBlock.hpp>

Base Classes

Name

Description

BlockCommonBase<BlockKind::Quote>

Base class for providing variant discriminator functions.

BlockContainer

Member Functions

Name

Description

asBlockContainer

operator==

Equality operators

operator<=>

Three‐way comparison operators

Static Member Functions

Data Members

Name

blocks

Static Data Members

Name

kind_id

Non-Member Functions

Name

Description

isEmpty

Determine if the inline is empty

ltrim

Removes leading whitespace from the first text elements

ltrim

Removes leading whitespace from the block.

rtrim

Removes trailing whitespace from the last text elements

rtrim

Removes trailing whitespace from the block.

trim

Removes leading and trailing whitespace from the block.

trim

Removes leading and trailing whitespace from the text elements

Equality operators

Synopses

Declared in <mrdocs/Metadata/DocComment/Block/BlockBase.hpp>

Equality operator

constexpr
bool
operator==(QuoteBlock const& rhs) const noexcept = default;

Equality operator

constexpr
bool
operator==(BlockContainer const& rhs) const = default;

Equality operator

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/QuoteBlock.hpp>

constexpr
bool
operator==(QuoteBlock const& rhs) const noexcept = default;

Return Value

true if the objects are equal, false otherwise

Parameters

Name

Description

rhs

The right operand

Equality operator

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockBase.hpp>

constexpr
bool
operator==(BlockContainer const& rhs) const = default;

Return Value

true if the objects are equal, false otherwise

Parameters

Name

Description

rhs

The right operand

Three‐way comparison operators

Synopses

Declared in <mrdocs/Metadata/DocComment/Block/BlockBase.hpp>

Three‐way comparison operator

auto
operator<=>(QuoteBlock const& rhs) const = default;

Three‐way comparison operator

constexpr
auto
operator<=>(BlockCommonBase<mrdocs::doc::BlockKind::Quote> const& rhs) const = default;

Three‐way comparison operator

std::strong_ordering
operator<=>(BlockContainer const& rhs) const;

Three‐way comparison operator

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/QuoteBlock.hpp>

auto
operator<=>(QuoteBlock const& rhs) const = default;

Return Value

The relative order of the objects

Parameters

Name

Description

rhs

The right operand

Three‐way comparison operator

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockBase.hpp>

constexpr
auto
operator<=>(BlockCommonBase<mrdocs::doc::BlockKind::Quote> const& rhs) const = default;

Return Value

The relative order of the objects

Parameters

Name

Description

rhs

The right operand

Three‐way comparison operator

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockBase.hpp>

std::strong_ordering
operator<=>(BlockContainer const& rhs) const;

Return Value

The relative order of the objects

Parameters

Name

Description

rhs

The right operand

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isAdmonition() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isBrief() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isCode() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isDefinitionList() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isFootnoteDefinition() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isHeading() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isList() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isMath() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isParagraph() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>

constexpr
static
bool
isParam() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>

constexpr
static
bool
isPostcondition() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>

constexpr
static
bool
isPrecondition() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isQuote() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>

constexpr
static
bool
isReturns() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>

constexpr
static
bool
isSee() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>

constexpr
static
bool
isTParam() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isTable() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isThematicBreak() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>

constexpr
static
bool
isThrows() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockBase.hpp>

constexpr static
BlockKind kind_id;

A reference to a symbol.

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/ReferenceInline.hpp>

struct ReferenceInline
    : InlineCommonBase<InlineKind::Reference>

Base Classes

Name

Description

InlineCommonBase<InlineKind::Reference>

Base class for providing variant discriminator functions.

Member Functions

Name

Description

ReferenceInline [constructor]

Construct from string

operator==

Equality operator

operator<=>

Three‐way comparison operators

Static Member Functions

Data Members

Name

id

literal

Static Data Members

Name

kind_id

Non-Member Functions

Name

Description

getAsPlainText

Get the plain text representation of an inline element tree.

getAsPlainText

Get the plain text representation of an inline element tree.

Construct from string

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/ReferenceInline.hpp>

explicit
ReferenceInline(std::string str = {}) noexcept;

Parameters

Name

Description

str

The object to construct from

Equality operator

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/ReferenceInline.hpp>

constexpr
bool
operator==(ReferenceInline const& rhs) const noexcept = default;

Return Value

true if the objects are equal, false otherwise

Parameters

Name

Description

rhs

The right operand

Three‐way comparison operators

Synopses

Declared in <mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>

Three‐way comparison operator

auto
operator<=>(ReferenceInline const& rhs) const = default;

Three‐way comparison operator

constexpr
auto
operator<=>(InlineCommonBase<mrdocs::doc::InlineKind::Reference> const& rhs) const = default;

Three‐way comparison operator

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/ReferenceInline.hpp>

auto
operator<=>(ReferenceInline const& rhs) const = default;

Return Value

The relative order of the objects

Parameters

Name

Description

rhs

The right operand

Three‐way comparison operator

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>

constexpr
auto
operator<=>(InlineCommonBase<mrdocs::doc::InlineKind::Reference> const& rhs) const = default;

Return Value

The relative order of the objects

Parameters

Name

Description

rhs

The right operand

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isCode() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isCopyDetails() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isEmph() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isFootnoteReference() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isHighlight() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isImage() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isLineBreak() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isLink() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isMath() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isReference() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isSoftBreak() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isStrikethrough() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isStrong() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isSubscript() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isSuperscript() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isText() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/ReferenceInline.hpp>

SymbolID id = = SymbolID::invalid;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/ReferenceInline.hpp>

std::string literal;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>

constexpr static
InlineKind kind_id;

Documentation for a function return type

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/ReturnsBlock.hpp>

Base Classes

Name

Description

BlockCommonBase<BlockKind::Returns>

Base class for providing variant discriminator functions.

InlineContainer

An internal node in the inline element tree

Member Functions

Name

Description

ReturnsBlock [constructor]

Constructors

~ReturnsBlock [destructor] [virtual]

Destructor

operator=

Assign an InlineContainer with a single TextInline child.

append

append overloads

asInlineContainer

Helper function so that derived classes can get a reference to the base class.

back

Get the last inline child.

begin

Begin iterator forwarding to children

clear

Clear all inline children.

emplace_back

Append a child of the specified type.

empty

Determine if there are no inline children.

end

End iterator forwarding to children

erase

Erase from children

front

Get the first inline child.

insert

Erase from children

operator+=

Addition assignment operators

size

Get the number of inline children.

operator==

Compare two InlineContainers.

operator<=>

Compare two InlineContainers.

Static Member Functions

Data Members

Name

children

Static Data Members

Name

kind_id

Using Declarations

Non-Member Functions

Name

Description

getAsPlainText

Flatten an InlineContainer to plain text.

getAsPlainText

Flatten an InlineContainer to plain text.

isEmpty

Determine if the inline is empty

ltrim

Removes leading whitespace from the first text element in the given InlineContainer.

ltrim

Removes leading whitespace from the block.

rtrim

Removes trailing whitespace from the last text element in the given InlineContainer.

rtrim

Removes trailing whitespace from the block.

trim

Removes leading and trailing whitespace from the block.

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

constexpr
ReturnsBlock(ReturnsBlock const& other) = default;

Move constructor

constexpr
ReturnsBlock(ReturnsBlock&& other) noexcept = default;

Construct from InlineContainer

ReturnsBlock(InlineContainer const& other);

Construct from InlineContainer

ReturnsBlock(InlineContainer&& other) noexcept;

Copy constructor

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/ReturnsBlock.hpp>

constexpr
ReturnsBlock(ReturnsBlock const& other) = default;

Parameters

Name

Description

other

The object to copy construct from

Move constructor

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/ReturnsBlock.hpp>

constexpr
ReturnsBlock(ReturnsBlock&& other) noexcept = default;

Parameters

Name

Description

other

The object to move construct from

Construct from InlineContainer

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/ReturnsBlock.hpp>

ReturnsBlock(InlineContainer const& other);

Parameters

Name

Description

other

The object to copy construct from

Construct from InlineContainer

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/ReturnsBlock.hpp>

ReturnsBlock(InlineContainer&& other) noexcept;

Parameters

Name

Description

other

The object to move construct from

Destructor

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/ReturnsBlock.hpp>

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

constexpr
InlineContainer&
operator=(InlineContainer const& other) = default;

Copy assignment operator

constexpr
ReturnsBlock&
operator=(ReturnsBlock const& other) = default;

Move assignment operator

constexpr
InlineContainer&
operator=(InlineContainer&& other) noexcept = default;

Move assignment operator

constexpr
ReturnsBlock&
operator=(ReturnsBlock&& other) noexcept = default;

Assign an InlineContainer with a single TextInline child.

InlineContainer&
operator=(std::string_view text);

Copy assignment operator

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>

constexpr
InlineContainer&
operator=(InlineContainer const& other) = default;

Return Value

Reference to the current object

Parameters

Name

Description

other

The object to copy assign from

Copy assignment operator

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/ReturnsBlock.hpp>

constexpr
ReturnsBlock&
operator=(ReturnsBlock const& other) = default;

Return Value

Reference to the current object

Parameters

Name

Description

other

The object to copy assign from

Move assignment operator

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>

constexpr
InlineContainer&
operator=(InlineContainer&& other) noexcept = default;

Return Value

Reference to the current object

Parameters

Name

Description

other

The object to move assign from

Move assignment operator

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/ReturnsBlock.hpp>

constexpr
ReturnsBlock&
operator=(ReturnsBlock&& other) noexcept = default;

Return Value

Reference to the current object

Parameters

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>

InlineContainer&
operator=(std::string_view text);

Return Value

Reference to the current object

Parameters

Name

Description

text

The object to assign from

Compare two InlineContainers.

Synopses

Declared in <mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>

Equality operator

constexpr
bool
operator==(ReturnsBlock const& rhs) const noexcept = default;

Compare two InlineContainers.

constexpr
bool
operator==(InlineContainer const& rhs) const = default;

Equality operator

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/ReturnsBlock.hpp>

constexpr
bool
operator==(ReturnsBlock const& rhs) const noexcept = default;

Return Value

true if the objects are equal, false otherwise

Parameters

Name

Description

rhs

The right operand

Compare two InlineContainers.

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>

constexpr
bool
operator==(InlineContainer const& rhs) const = default;

Return Value

true if the objects are equal, false otherwise

Parameters

Name

Description

rhs

The right operand

Compare two InlineContainers.

Synopses

Declared in <mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>

Three‐way comparison operator

auto
operator<=>(ReturnsBlock const& rhs) const = default;

Three‐way comparison operator

constexpr
auto
operator<=>(BlockCommonBase<mrdocs::doc::BlockKind::Returns> const& rhs) const = default;

Compare two InlineContainers.

std::strong_ordering
operator<=>(InlineContainer const& rhs) const;

Three‐way comparison operator

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/ReturnsBlock.hpp>

auto
operator<=>(ReturnsBlock const& rhs) const = default;

Return Value

The relative order of the objects

Parameters

Name

Description

rhs

The right operand

Three‐way comparison operator

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockBase.hpp>

constexpr
auto
operator<=>(BlockCommonBase<mrdocs::doc::BlockKind::Returns> const& rhs) const = default;

Return Value

The relative order of the objects

Parameters

Name

Description

rhs

The right operand

Compare two InlineContainers.

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>

std::strong_ordering
operator<=>(InlineContainer const& rhs) const;

Return Value

The relative order of the objects

Parameters

Name

Description

rhs

The right operand

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isAdmonition() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isBrief() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isCode() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isDefinitionList() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isFootnoteDefinition() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isHeading() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isList() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isMath() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isParagraph() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>

constexpr
static
bool
isParam() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>

constexpr
static
bool
isPostcondition() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>

constexpr
static
bool
isPrecondition() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isQuote() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>

constexpr
static
bool
isReturns() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>

constexpr
static
bool
isSee() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>

constexpr
static
bool
isTParam() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isTable() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isThematicBreak() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>

constexpr
static
bool
isThrows() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockBase.hpp>

constexpr static
BlockKind kind_id;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/ReturnsBlock.hpp>

using InlineContainer::ReturnsBlock;

Introduced Symbols

Name

Description

mrdocs::doc::InlineContainer::InlineContainer

Construct an InlineContainer with a single TextInline child.

mrdocs::doc::InlineContainer::InlineContainer

Construct an InlineContainer with a single TextInline child.

mrdocs::doc::InlineContainer::InlineContainer

Construct an InlineContainer with a single TextInline child.

mrdocs::doc::InlineContainer::InlineContainer

Construct an InlineContainer with a single TextInline child.

A

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/SeeBlock.hpp>

Base Classes

Name

Description

BlockCommonBase<BlockKind::See>

Base class for providing variant discriminator functions.

InlineContainer

An internal node in the inline element tree

Member Functions

Name

Description

operator=

Assign an InlineContainer with a single TextInline child.

append

append overloads

asInlineContainer

Helper function so that derived classes can get a reference to the base class.

back

Get the last inline child.

begin

Begin iterator forwarding to children

clear

Clear all inline children.

emplace_back

Append a child of the specified type.

empty

Determine if there are no inline children.

end

End iterator forwarding to children

erase

Erase from children

front

Get the first inline child.

insert

Erase from children

operator+=

Addition assignment operators

size

Get the number of inline children.

operator==

Compare two InlineContainers.

operator<=>

Compare two InlineContainers.

Static Member Functions

Data Members

Name

children

Static Data Members

Name

kind_id

Using Declarations

Name

SeeBlock

Non-Member Functions

Name

Description

getAsPlainText

Flatten an InlineContainer to plain text.

getAsPlainText

Flatten an InlineContainer to plain text.

isEmpty

Determine if the inline is empty

ltrim

Removes leading whitespace from the first text element in the given InlineContainer.

ltrim

Removes leading whitespace from the block.

rtrim

Removes trailing whitespace from the last text element in the given InlineContainer.

rtrim

Removes trailing whitespace from the block.

trim

Removes leading and trailing whitespace from the block.

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

constexpr
bool
operator==(SeeBlock const& rhs) const noexcept = default;

Compare two InlineContainers.

constexpr
bool
operator==(InlineContainer const& rhs) const = default;

Equality operator

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/SeeBlock.hpp>

constexpr
bool
operator==(SeeBlock const& rhs) const noexcept = default;

Return Value

true if the objects are equal, false otherwise

Parameters

Name

Description

rhs

The right operand

Compare two InlineContainers.

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>

constexpr
bool
operator==(InlineContainer const& rhs) const = default;

Return Value

true if the objects are equal, false otherwise

Parameters

Name

Description

rhs

The right operand

Compare two InlineContainers.

Synopses

Declared in <mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>

Three‐way comparison operator

auto
operator<=>(SeeBlock const& rhs) const = default;

Three‐way comparison operator

constexpr
auto
operator<=>(BlockCommonBase<mrdocs::doc::BlockKind::See> const& rhs) const = default;

Compare two InlineContainers.

std::strong_ordering
operator<=>(InlineContainer const& rhs) const;

Three‐way comparison operator

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/SeeBlock.hpp>

auto
operator<=>(SeeBlock const& rhs) const = default;

Return Value

The relative order of the objects

Parameters

Name

Description

rhs

The right operand

Three‐way comparison operator

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockBase.hpp>

constexpr
auto
operator<=>(BlockCommonBase<mrdocs::doc::BlockKind::See> const& rhs) const = default;

Return Value

The relative order of the objects

Parameters

Name

Description

rhs

The right operand

Compare two InlineContainers.

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>

std::strong_ordering
operator<=>(InlineContainer const& rhs) const;

Return Value

The relative order of the objects

Parameters

Name

Description

rhs

The right operand

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isAdmonition() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isBrief() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isCode() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isDefinitionList() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isFootnoteDefinition() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isHeading() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isList() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isMath() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isParagraph() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>

constexpr
static
bool
isParam() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>

constexpr
static
bool
isPostcondition() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>

constexpr
static
bool
isPrecondition() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isQuote() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>

constexpr
static
bool
isReturns() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>

constexpr
static
bool
isSee() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>

constexpr
static
bool
isTParam() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isTable() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isThematicBreak() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>

constexpr
static
bool
isThrows() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockBase.hpp>

constexpr static
BlockKind kind_id;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/SeeBlock.hpp>

using InlineContainer::SeeBlock;

Introduced Symbols

Name

Description

mrdocs::doc::InlineContainer::InlineContainer

Construct an InlineContainer with a single TextInline child.

mrdocs::doc::InlineContainer::InlineContainer

Construct an InlineContainer with a single TextInline child.

mrdocs::doc::InlineContainer::InlineContainer

Construct an InlineContainer with a single TextInline child.

mrdocs::doc::InlineContainer::InlineContainer

Construct an InlineContainer with a single TextInline child.

mrdocs::doc::InlineContainer::InlineContainer

Move constructor

mrdocs::doc::InlineContainer::InlineContainer

Copy constructor

A line break that may render as space

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/SoftBreakInline.hpp>

struct SoftBreakInline
    : InlineCommonBase<InlineKind::SoftBreak>

Base Classes

Name

Description

InlineCommonBase<InlineKind::SoftBreak>

Base class for providing variant discriminator functions.

Member Functions

Name

Description

SoftBreakInline [constructor]

Default constructor

~SoftBreakInline [destructor] [virtual]

Destructor

operator==

Equality operator

operator<=>

Three‐way comparison operators

Static Member Functions

Static Data Members

Name

kind_id

Non-Member Functions

Name

Description

getAsPlainText

Get the plain text representation of an inline element tree.

getAsPlainText

Get the plain text representation of an inline element tree.

Default constructor

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/SoftBreakInline.hpp>

constexpr
SoftBreakInline() noexcept = default;

Destructor

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/SoftBreakInline.hpp>

constexpr
virtual
~SoftBreakInline() override = default;

Equality operator

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/SoftBreakInline.hpp>

constexpr
bool
operator==(SoftBreakInline const& rhs) const noexcept = default;

Return Value

true if the objects are equal, false otherwise

Parameters

Name

Description

rhs

The right operand

Three‐way comparison operators

Synopses

Declared in <mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>

Three‐way comparison operator

constexpr
auto
operator<=>(SoftBreakInline const& rhs) const = default;

Three‐way comparison operator

constexpr
auto
operator<=>(InlineCommonBase<mrdocs::doc::InlineKind::SoftBreak> const& rhs) const = default;

Three‐way comparison operator

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/SoftBreakInline.hpp>

constexpr
auto
operator<=>(SoftBreakInline const& rhs) const = default;

Return Value

The relative order of the objects

Parameters

Name

Description

rhs

The right operand

Three‐way comparison operator

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>

constexpr
auto
operator<=>(InlineCommonBase<mrdocs::doc::InlineKind::SoftBreak> const& rhs) const = default;

Return Value

The relative order of the objects

Parameters

Name

Description

rhs

The right operand

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isCode() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isCopyDetails() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isEmph() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isFootnoteReference() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isHighlight() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isImage() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isLineBreak() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isLink() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isMath() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isReference() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isSoftBreak() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isStrikethrough() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isStrong() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isSubscript() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isSuperscript() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isText() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>

constexpr static
InlineKind kind_id;

A piece of styled text.

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/StrikethroughInline.hpp>

struct StrikethroughInline final
    : InlineCommonBase<InlineKind::Strikethrough>
    , InlineContainer

Base Classes

Name

Description

InlineCommonBase<InlineKind::Strikethrough>

Base class for providing variant discriminator functions.

InlineContainer

An internal node in the inline element tree

Member Functions

Name

Description

operator=

Assign an InlineContainer with a single TextInline child.

append

append overloads

asInlineContainer

Helper function so that derived classes can get a reference to the base class.

back

Get the last inline child.

begin

Begin iterator forwarding to children

clear

Clear all inline children.

emplace_back

Append a child of the specified type.

empty

Determine if there are no inline children.

end

End iterator forwarding to children

erase

Erase from children

front

Get the first inline child.

insert

Erase from children

operator+=

Addition assignment operators

size

Get the number of inline children.

operator==

Compare two InlineContainers.

operator<=>

Compare two InlineContainers.

Static Member Functions

Data Members

Name

children

Static Data Members

Name

kind_id

Non-Member Functions

Name

Description

getAsPlainText

Flatten an InlineContainer to plain text.

getAsPlainText

Flatten an InlineContainer to plain text.

getAsPlainText

Get the plain text representation of an inline element tree.

getAsPlainText

Get the plain text representation of an inline element tree.

ltrim

Removes leading whitespace from the first text element in the given InlineContainer.

rtrim

Removes trailing whitespace from the last text element in the given InlineContainer.

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

constexpr
bool
operator==(StrikethroughInline const& rhs) const noexcept = default;

Compare two InlineContainers.

constexpr
bool
operator==(InlineContainer const& rhs) const = default;

Equality operator

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/StrikethroughInline.hpp>

constexpr
bool
operator==(StrikethroughInline const& rhs) const noexcept = default;

Return Value

true if the objects are equal, false otherwise

Parameters

Name

Description

rhs

The right operand

Compare two InlineContainers.

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>

constexpr
bool
operator==(InlineContainer const& rhs) const = default;

Return Value

true if the objects are equal, false otherwise

Parameters

Name

Description

rhs

The right operand

Compare two InlineContainers.

Synopses

Declared in <mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>

Three‐way comparison operator

auto
operator<=>(StrikethroughInline const& rhs) const = default;

Three‐way comparison operator

constexpr
auto
operator<=>(InlineCommonBase<mrdocs::doc::InlineKind::Strikethrough> const& rhs) const = default;

Compare two InlineContainers.

std::strong_ordering
operator<=>(InlineContainer const& rhs) const;

Three‐way comparison operator

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/StrikethroughInline.hpp>

auto
operator<=>(StrikethroughInline const& rhs) const = default;

Return Value

The relative order of the objects

Parameters

Name

Description

rhs

The right operand

Three‐way comparison operator

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>

constexpr
auto
operator<=>(InlineCommonBase<mrdocs::doc::InlineKind::Strikethrough> const& rhs) const = default;

Return Value

The relative order of the objects

Parameters

Name

Description

rhs

The right operand

Compare two InlineContainers.

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>

std::strong_ordering
operator<=>(InlineContainer const& rhs) const;

Return Value

The relative order of the objects

Parameters

Name

Description

rhs

The right operand

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isCode() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isCopyDetails() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isEmph() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isFootnoteReference() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isHighlight() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isImage() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isLineBreak() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isLink() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isMath() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isReference() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isSoftBreak() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isStrikethrough() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isStrong() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isSubscript() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isSuperscript() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isText() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>

constexpr static
InlineKind kind_id;

A piece of styled text.

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/StrongInline.hpp>

Base Classes

Name

Description

InlineCommonBase<InlineKind::Strong>

Base class for providing variant discriminator functions.

InlineContainer

An internal node in the inline element tree

Member Functions

Name

Description

operator=

Assign an InlineContainer with a single TextInline child.

append

append overloads

asInlineContainer

Helper function so that derived classes can get a reference to the base class.

back

Get the last inline child.

begin

Begin iterator forwarding to children

clear

Clear all inline children.

emplace_back

Append a child of the specified type.

empty

Determine if there are no inline children.

end

End iterator forwarding to children

erase

Erase from children

front

Get the first inline child.

insert

Erase from children

operator+=

Addition assignment operators

size

Get the number of inline children.

operator==

Compare two InlineContainers.

operator<=>

Compare two InlineContainers.

Static Member Functions

Data Members

Name

children

Static Data Members

Name

kind_id

Using Declarations

Non-Member Functions

Name

Description

getAsPlainText

Flatten an InlineContainer to plain text.

getAsPlainText

Flatten an InlineContainer to plain text.

getAsPlainText

Get the plain text representation of an inline element tree.

getAsPlainText

Get the plain text representation of an inline element tree.

ltrim

Removes leading whitespace from the first text element in the given InlineContainer.

rtrim

Removes trailing whitespace from the last text element in the given InlineContainer.

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

constexpr
bool
operator==(StrongInline const& rhs) const noexcept = default;

Compare two InlineContainers.

constexpr
bool
operator==(InlineContainer const& rhs) const = default;

Equality operator

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/StrongInline.hpp>

constexpr
bool
operator==(StrongInline const& rhs) const noexcept = default;

Return Value

true if the objects are equal, false otherwise

Parameters

Name

Description

rhs

The right operand

Compare two InlineContainers.

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>

constexpr
bool
operator==(InlineContainer const& rhs) const = default;

Return Value

true if the objects are equal, false otherwise

Parameters

Name

Description

rhs

The right operand

Compare two InlineContainers.

Synopses

Declared in <mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>

Three‐way comparison operator

auto
operator<=>(StrongInline const& rhs) const = default;

Three‐way comparison operator

constexpr
auto
operator<=>(InlineCommonBase<mrdocs::doc::InlineKind::Strong> const& rhs) const = default;

Compare two InlineContainers.

std::strong_ordering
operator<=>(InlineContainer const& rhs) const;

Three‐way comparison operator

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/StrongInline.hpp>

auto
operator<=>(StrongInline const& rhs) const = default;

Return Value

The relative order of the objects

Parameters

Name

Description

rhs

The right operand

Three‐way comparison operator

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>

constexpr
auto
operator<=>(InlineCommonBase<mrdocs::doc::InlineKind::Strong> const& rhs) const = default;

Return Value

The relative order of the objects

Parameters

Name

Description

rhs

The right operand

Compare two InlineContainers.

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>

std::strong_ordering
operator<=>(InlineContainer const& rhs) const;

Return Value

The relative order of the objects

Parameters

Name

Description

rhs

The right operand

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isCode() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isCopyDetails() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isEmph() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isFootnoteReference() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isHighlight() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isImage() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isLineBreak() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isLink() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isMath() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isReference() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isSoftBreak() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isStrikethrough() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isStrong() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isSubscript() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isSuperscript() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isText() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>

constexpr static
InlineKind kind_id;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/StrongInline.hpp>

using InlineContainer::StrongInline;

Introduced Symbols

Name

Description

mrdocs::doc::InlineContainer::InlineContainer

Construct an InlineContainer with a single TextInline child.

mrdocs::doc::InlineContainer::InlineContainer

Construct an InlineContainer with a single TextInline child.

mrdocs::doc::InlineContainer::InlineContainer

Construct an InlineContainer with a single TextInline child.

mrdocs::doc::InlineContainer::InlineContainer

Construct an InlineContainer with a single TextInline child.

mrdocs::doc::InlineContainer::InlineContainer

Move constructor

mrdocs::doc::InlineContainer::InlineContainer

Copy constructor

A piece of styled text.

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/SubscriptInline.hpp>

struct SubscriptInline final
    : InlineCommonBase<InlineKind::Subscript>
    , InlineContainer

Base Classes

Name

Description

InlineCommonBase<InlineKind::Subscript>

Base class for providing variant discriminator functions.

InlineContainer

An internal node in the inline element tree

Member Functions

Name

Description

operator=

Assign an InlineContainer with a single TextInline child.

append

append overloads

asInlineContainer

Helper function so that derived classes can get a reference to the base class.

back

Get the last inline child.

begin

Begin iterator forwarding to children

clear

Clear all inline children.

emplace_back

Append a child of the specified type.

empty

Determine if there are no inline children.

end

End iterator forwarding to children

erase

Erase from children

front

Get the first inline child.

insert

Erase from children

operator+=

Addition assignment operators

size

Get the number of inline children.

operator==

Compare two InlineContainers.

operator<=>

Compare two InlineContainers.

Static Member Functions

Data Members

Name

children

Static Data Members

Name

kind_id

Non-Member Functions

Name

Description

getAsPlainText

Flatten an InlineContainer to plain text.

getAsPlainText

Flatten an InlineContainer to plain text.

getAsPlainText

Get the plain text representation of an inline element tree.

getAsPlainText

Get the plain text representation of an inline element tree.

ltrim

Removes leading whitespace from the first text element in the given InlineContainer.

rtrim

Removes trailing whitespace from the last text element in the given InlineContainer.

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

constexpr
bool
operator==(SubscriptInline const& rhs) const noexcept = default;

Compare two InlineContainers.

constexpr
bool
operator==(InlineContainer const& rhs) const = default;

Equality operator

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/SubscriptInline.hpp>

constexpr
bool
operator==(SubscriptInline const& rhs) const noexcept = default;

Return Value

true if the objects are equal, false otherwise

Parameters

Name

Description

rhs

The right operand

Compare two InlineContainers.

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>

constexpr
bool
operator==(InlineContainer const& rhs) const = default;

Return Value

true if the objects are equal, false otherwise

Parameters

Name

Description

rhs

The right operand

Compare two InlineContainers.

Synopses

Declared in <mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>

Three‐way comparison operator

auto
operator<=>(SubscriptInline const& rhs) const = default;

Three‐way comparison operator

constexpr
auto
operator<=>(InlineCommonBase<mrdocs::doc::InlineKind::Subscript> const& rhs) const = default;

Compare two InlineContainers.

std::strong_ordering
operator<=>(InlineContainer const& rhs) const;

Three‐way comparison operator

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/SubscriptInline.hpp>

auto
operator<=>(SubscriptInline const& rhs) const = default;

Return Value

The relative order of the objects

Parameters

Name

Description

rhs

The right operand

Three‐way comparison operator

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>

constexpr
auto
operator<=>(InlineCommonBase<mrdocs::doc::InlineKind::Subscript> const& rhs) const = default;

Return Value

The relative order of the objects

Parameters

Name

Description

rhs

The right operand

Compare two InlineContainers.

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>

std::strong_ordering
operator<=>(InlineContainer const& rhs) const;

Return Value

The relative order of the objects

Parameters

Name

Description

rhs

The right operand

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isCode() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isCopyDetails() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isEmph() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isFootnoteReference() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isHighlight() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isImage() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isLineBreak() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isLink() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isMath() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isReference() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isSoftBreak() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isStrikethrough() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isStrong() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isSubscript() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isSuperscript() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isText() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>

constexpr static
InlineKind kind_id;

A piece of styled text.

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/SuperscriptInline.hpp>

struct SuperscriptInline final
    : InlineCommonBase<InlineKind::Superscript>
    , InlineContainer

Base Classes

Name

Description

InlineCommonBase<InlineKind::Superscript>

Base class for providing variant discriminator functions.

InlineContainer

An internal node in the inline element tree

Member Functions

Name

Description

operator=

Assign an InlineContainer with a single TextInline child.

append

append overloads

asInlineContainer

Helper function so that derived classes can get a reference to the base class.

back

Get the last inline child.

begin

Begin iterator forwarding to children

clear

Clear all inline children.

emplace_back

Append a child of the specified type.

empty

Determine if there are no inline children.

end

End iterator forwarding to children

erase

Erase from children

front

Get the first inline child.

insert

Erase from children

operator+=

Addition assignment operators

size

Get the number of inline children.

operator==

Compare two InlineContainers.

operator<=>

Compare two InlineContainers.

Static Member Functions

Data Members

Name

children

Static Data Members

Name

kind_id

Non-Member Functions

Name

Description

getAsPlainText

Flatten an InlineContainer to plain text.

getAsPlainText

Flatten an InlineContainer to plain text.

getAsPlainText

Get the plain text representation of an inline element tree.

getAsPlainText

Get the plain text representation of an inline element tree.

ltrim

Removes leading whitespace from the first text element in the given InlineContainer.

rtrim

Removes trailing whitespace from the last text element in the given InlineContainer.

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

constexpr
bool
operator==(SuperscriptInline const& rhs) const noexcept = default;

Compare two InlineContainers.

constexpr
bool
operator==(InlineContainer const& rhs) const = default;

Equality operator

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/SuperscriptInline.hpp>

constexpr
bool
operator==(SuperscriptInline const& rhs) const noexcept = default;

Return Value

true if the objects are equal, false otherwise

Parameters

Name

Description

rhs

The right operand

Compare two InlineContainers.

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>

constexpr
bool
operator==(InlineContainer const& rhs) const = default;

Return Value

true if the objects are equal, false otherwise

Parameters

Name

Description

rhs

The right operand

Compare two InlineContainers.

Synopses

Declared in <mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>

Three‐way comparison operator

auto
operator<=>(SuperscriptInline const& rhs) const = default;

Three‐way comparison operator

constexpr
auto
operator<=>(InlineCommonBase<mrdocs::doc::InlineKind::Superscript> const& rhs) const = default;

Compare two InlineContainers.

std::strong_ordering
operator<=>(InlineContainer const& rhs) const;

Three‐way comparison operator

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/SuperscriptInline.hpp>

auto
operator<=>(SuperscriptInline const& rhs) const = default;

Return Value

The relative order of the objects

Parameters

Name

Description

rhs

The right operand

Three‐way comparison operator

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>

constexpr
auto
operator<=>(InlineCommonBase<mrdocs::doc::InlineKind::Superscript> const& rhs) const = default;

Return Value

The relative order of the objects

Parameters

Name

Description

rhs

The right operand

Compare two InlineContainers.

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>

std::strong_ordering
operator<=>(InlineContainer const& rhs) const;

Return Value

The relative order of the objects

Parameters

Name

Description

rhs

The right operand

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isCode() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isCopyDetails() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isEmph() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isFootnoteReference() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isHighlight() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isImage() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isLineBreak() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isLink() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isMath() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isReference() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isSoftBreak() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isStrikethrough() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isStrong() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isSubscript() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isSuperscript() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isText() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>

constexpr static
InlineKind kind_id;

Documentation for a template parameter

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/TParamBlock.hpp>

Base Classes

Name

Description

BlockCommonBase<BlockKind::TParam>

Base class for providing variant discriminator functions.

InlineContainer

An internal node in the inline element tree

Member Functions

Name

Description

operator=

Assign an InlineContainer with a single TextInline child.

append

append overloads

asInlineContainer

Helper function so that derived classes can get a reference to the base class.

back

Get the last inline child.

begin

Begin iterator forwarding to children

clear

Clear all inline children.

emplace_back

Append a child of the specified type.

empty

Determine if there are no inline children.

end

End iterator forwarding to children

erase

Erase from children

front

Get the first inline child.

insert

Erase from children

operator+=

Addition assignment operators

size

Get the number of inline children.

operator==

Compare two InlineContainers.

operator<=>

Compare two InlineContainers.

Static Member Functions

Data Members

Name

children

name

Static Data Members

Name

kind_id

Using Declarations

Non-Member Functions

Name

Description

getAsPlainText

Flatten an InlineContainer to plain text.

getAsPlainText

Flatten an InlineContainer to plain text.

isEmpty

Determine if the inline is empty

ltrim

Removes leading whitespace from the first text element in the given InlineContainer.

ltrim

Removes leading whitespace from the block.

rtrim

Removes trailing whitespace from the last text element in the given InlineContainer.

rtrim

Removes trailing whitespace from the block.

trim

Removes leading and trailing whitespace from the block.

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

constexpr
bool
operator==(TParamBlock const& rhs) const noexcept = default;

Compare two InlineContainers.

constexpr
bool
operator==(InlineContainer const& rhs) const = default;

Equality operator

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/TParamBlock.hpp>

constexpr
bool
operator==(TParamBlock const& rhs) const noexcept = default;

Return Value

true if the objects are equal, false otherwise

Parameters

Name

Description

rhs

The right operand

Compare two InlineContainers.

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>

constexpr
bool
operator==(InlineContainer const& rhs) const = default;

Return Value

true if the objects are equal, false otherwise

Parameters

Name

Description

rhs

The right operand

Compare two InlineContainers.

Synopses

Declared in <mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>

Three‐way comparison operator

auto
operator<=>(TParamBlock const& rhs) const = default;

Three‐way comparison operator

constexpr
auto
operator<=>(BlockCommonBase<mrdocs::doc::BlockKind::TParam> const& rhs) const = default;

Compare two InlineContainers.

std::strong_ordering
operator<=>(InlineContainer const& rhs) const;

Three‐way comparison operator

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/TParamBlock.hpp>

auto
operator<=>(TParamBlock const& rhs) const = default;

Return Value

The relative order of the objects

Parameters

Name

Description

rhs

The right operand

Three‐way comparison operator

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockBase.hpp>

constexpr
auto
operator<=>(BlockCommonBase<mrdocs::doc::BlockKind::TParam> const& rhs) const = default;

Return Value

The relative order of the objects

Parameters

Name

Description

rhs

The right operand

Compare two InlineContainers.

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>

std::strong_ordering
operator<=>(InlineContainer const& rhs) const;

Return Value

The relative order of the objects

Parameters

Name

Description

rhs

The right operand

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isAdmonition() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isBrief() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isCode() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isDefinitionList() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isFootnoteDefinition() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isHeading() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isList() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isMath() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isParagraph() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>

constexpr
static
bool
isParam() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>

constexpr
static
bool
isPostcondition() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>

constexpr
static
bool
isPrecondition() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isQuote() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>

constexpr
static
bool
isReturns() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>

constexpr
static
bool
isSee() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>

constexpr
static
bool
isTParam() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isTable() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isThematicBreak() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>

constexpr
static
bool
isThrows() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/TParamBlock.hpp>

std::string name;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockBase.hpp>

constexpr static
BlockKind kind_id;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/TParamBlock.hpp>

using InlineContainer::TParamBlock;

Introduced Symbols

Name

Description

mrdocs::doc::InlineContainer::InlineContainer

Construct an InlineContainer with a single TextInline child.

mrdocs::doc::InlineContainer::InlineContainer

Construct an InlineContainer with a single TextInline child.

mrdocs::doc::InlineContainer::InlineContainer

Construct an InlineContainer with a single TextInline child.

mrdocs::doc::InlineContainer::InlineContainer

Construct an InlineContainer with a single TextInline child.

mrdocs::doc::InlineContainer::InlineContainer

Move constructor

mrdocs::doc::InlineContainer::InlineContainer

Copy constructor

A table block

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/TableBlock.hpp>

struct TableBlock final
    : BlockCommonBase<BlockKind::Table>

Base Classes

Name

Description

BlockCommonBase<BlockKind::Table>

Base class for providing variant discriminator functions.

Member Functions

Name

Description

operator==

Equality operator

operator<=>

Three‐way comparison operators

Static Member Functions

Data Members

Static Data Members

Name

kind_id

Non-Member Functions

Name

Description

isEmpty

Determine if the inline is empty

ltrim

Removes leading whitespace from the block.

rtrim

Removes trailing whitespace from the block.

trim

Removes leading and trailing whitespace from the block.

Equality operator

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/TableBlock.hpp>

constexpr
bool
operator==(TableBlock const& rhs) const noexcept = default;

Return Value

true if the objects are equal, false otherwise

Parameters

Name

Description

rhs

The right operand

Three‐way comparison operators

Synopses

Declared in <mrdocs/Metadata/DocComment/Block/BlockBase.hpp>

Three‐way comparison operator

auto
operator<=>(TableBlock const& other) const;

Three‐way comparison operator

constexpr
auto
operator<=>(BlockCommonBase<mrdocs::doc::BlockKind::Table> const& rhs) const = default;

Three‐way comparison operator

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/TableBlock.hpp>

auto
operator<=>(TableBlock const& other) const;

Return Value

The relative order of the objects

Parameters

Name

Description

other

The right operand

Three‐way comparison operator

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockBase.hpp>

constexpr
auto
operator<=>(BlockCommonBase<mrdocs::doc::BlockKind::Table> const& rhs) const = default;

Return Value

The relative order of the objects

Parameters

Name

Description

rhs

The right operand

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isAdmonition() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isBrief() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isCode() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isDefinitionList() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isFootnoteDefinition() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isHeading() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isList() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isMath() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isParagraph() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>

constexpr
static
bool
isParam() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>

constexpr
static
bool
isPostcondition() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>

constexpr
static
bool
isPrecondition() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isQuote() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>

constexpr
static
bool
isReturns() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>

constexpr
static
bool
isSee() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>

constexpr
static
bool
isTParam() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isTable() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isThematicBreak() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>

constexpr
static
bool
isThrows() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/TableBlock.hpp>

std::vector<TableAlignmentKind> Alignments;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/TableBlock.hpp>

std::vector<TableRow> items;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockBase.hpp>

constexpr static
BlockKind kind_id;

A cell in a table

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/TableCell.hpp>

struct TableCell final
    : InlineContainer

Base Classes

Name

Description

InlineContainer

An internal node in the inline element tree

Member Functions

Name

Description

operator=

Assign an InlineContainer with a single TextInline child.

append

append overloads

asInlineContainer

Helper function so that derived classes can get a reference to the base class.

back

Get the last inline child.

begin

Begin iterator forwarding to children

clear

Clear all inline children.

emplace_back

Append a child of the specified type.

empty

Determine if there are no inline children.

end

End iterator forwarding to children

erase

Erase from children

front

Get the first inline child.

insert

Erase from children

operator+=

Addition assignment operators

size

Get the number of inline children.

operator==

Compare two InlineContainers.

operator<=>

Compare two InlineContainers.

Data Members

Name

children

Non-Member Functions

Name

Description

getAsPlainText

Flatten an InlineContainer to plain text.

getAsPlainText

Flatten an InlineContainer to plain text.

ltrim

Removes leading whitespace from the first text element in the given InlineContainer.

rtrim

Removes trailing whitespace from the last text element in the given InlineContainer.

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

constexpr
bool
operator==(TableCell const& rhs) const noexcept = default;

Compare two InlineContainers.

constexpr
bool
operator==(InlineContainer const& rhs) const = default;

Equality operator

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/TableCell.hpp>

constexpr
bool
operator==(TableCell const& rhs) const noexcept = default;

Return Value

true if the objects are equal, false otherwise

Parameters

Name

Description

rhs

The right operand

Compare two InlineContainers.

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>

constexpr
bool
operator==(InlineContainer const& rhs) const = default;

Return Value

true if the objects are equal, false otherwise

Parameters

Name

Description

rhs

The right operand

Compare two InlineContainers.

Synopses

Declared in <mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>

Three‐way comparison operator

auto
operator<=>(TableCell const& rhs) const = default;

Compare two InlineContainers.

std::strong_ordering
operator<=>(InlineContainer const& rhs) const;

Three‐way comparison operator

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/TableCell.hpp>

auto
operator<=>(TableCell const& rhs) const = default;

Return Value

The relative order of the objects

Parameters

Name

Description

rhs

The right operand

Compare two InlineContainers.

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>

std::strong_ordering
operator<=>(InlineContainer const& rhs) const;

Return Value

The relative order of the objects

Parameters

Name

Description

rhs

The right operand

An item in a list

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/TableRow.hpp>

struct TableRow final

Member Functions

Name

Description

operator==

Equality operator

operator<=>

Three‐way comparison operator

Data Members

Name

Cells

is_header

Equality operator

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/TableRow.hpp>

constexpr
bool
operator==(TableRow const& rhs) const noexcept = default;

Return Value

true if the objects are equal, false otherwise

Parameters

Name

Description

rhs

The right operand

Three‐way comparison operator

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/TableRow.hpp>

constexpr
auto
operator<=>(TableRow const& rhs) const = default;

Return Value

The relative order of the objects

Parameters

Name

Description

rhs

The right operand

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/TableRow.hpp>

std::vector<TableCell> Cells;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/TableRow.hpp>

bool is_header = false;

A Node containing a string of text.

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/TextInline.hpp>

Base Classes

Name

Description

InlineCommonBase<InlineKind::Text>

Base class for providing variant discriminator functions.

Member Functions

Name

Description

TextInline [constructor]

Constructors

~TextInline [destructor] [virtual]

Destructor

operator==

Equality operator

operator<=>

Three‐way comparison operators

Static Member Functions

Data Members

Name

literal

Static Data Members

Name

kind_id

Non-Member Functions

Name

Description

getAsPlainText

Get the plain text representation of an inline element tree.

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

constexpr
TextInline() noexcept = default;

Construct from string_view

explicit
TextInline(std::string_view str) noexcept;

Construct from string

explicit
TextInline(std::string const& str) noexcept;

Construct from string

explicit
TextInline(std::string&& str) noexcept;

Construct from char

explicit
TextInline(char const* str) noexcept;

Default constructor

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/TextInline.hpp>

constexpr
TextInline() noexcept = default;

Construct from string_view

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/TextInline.hpp>

explicit
TextInline(std::string_view str) noexcept;

Parameters

Name

Description

str

The object to construct from

Construct from string

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/TextInline.hpp>

explicit
TextInline(std::string const& str) noexcept;

Parameters

Name

Description

str

The object to copy construct from

Construct from string

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/TextInline.hpp>

explicit
TextInline(std::string&& str) noexcept;

Parameters

Name

Description

str

The object to move construct from

Construct from char

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/TextInline.hpp>

explicit
TextInline(char const* str) noexcept;

Parameters

Name

Description

str

The value to construct from

Destructor

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/TextInline.hpp>

constexpr
virtual
~TextInline() override = default;

Equality operator

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/TextInline.hpp>

constexpr
bool
operator==(TextInline const& rhs) const noexcept = default;

Return Value

true if the objects are equal, false otherwise

Parameters

Name

Description

rhs

The right operand

Three‐way comparison operators

Synopses

Declared in <mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>

Three‐way comparison operator

constexpr
auto
operator<=>(TextInline const& rhs) const = default;

Three‐way comparison operator

constexpr
auto
operator<=>(InlineCommonBase<mrdocs::doc::InlineKind::Text> const& rhs) const = default;

Three‐way comparison operator

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/TextInline.hpp>

constexpr
auto
operator<=>(TextInline const& rhs) const = default;

Return Value

The relative order of the objects

Parameters

Name

Description

rhs

The right operand

Three‐way comparison operator

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>

constexpr
auto
operator<=>(InlineCommonBase<mrdocs::doc::InlineKind::Text> const& rhs) const = default;

Return Value

The relative order of the objects

Parameters

Name

Description

rhs

The right operand

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isCode() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isCopyDetails() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isEmph() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isFootnoteReference() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isHighlight() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isImage() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isLineBreak() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isLink() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isMath() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isReference() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isSoftBreak() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isStrikethrough() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isStrong() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isSubscript() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isSuperscript() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>

constexpr
static
bool
isText() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/TextInline.hpp>

std::string literal;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>

constexpr static
InlineKind kind_id;

The brief description

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/ThematicBreakBlock.hpp>

struct ThematicBreakBlock final
    : BlockCommonBase<BlockKind::ThematicBreak>

Base Classes

Name

Description

BlockCommonBase<BlockKind::ThematicBreak>

Base class for providing variant discriminator functions.

Member Functions

Name

Description

ThematicBreakBlock [constructor]

Copy constructor

operator=

Copy assignment operator

operator<=>

Three‐way comparison operators

Static Member Functions

Static Data Members

Name

kind_id

Non-Member Functions

Name

Description

isEmpty

Determine if the inline is empty

ltrim

Removes leading whitespace from the block.

rtrim

Removes trailing whitespace from the block.

trim

Removes leading and trailing whitespace from the block.

Copy constructor

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/ThematicBreakBlock.hpp>

constexpr
ThematicBreakBlock(ThematicBreakBlock const& other) = default;

Parameters

Name

Description

other

The object to copy construct from

Copy assignment operator

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/ThematicBreakBlock.hpp>

constexpr
ThematicBreakBlock&
operator=(ThematicBreakBlock const& other) = default;

Return Value

Reference to the current object

Parameters

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

constexpr
auto
operator<=>(ThematicBreakBlock const& rhs) const = default;

Three‐way comparison operator

constexpr
auto
operator<=>(BlockCommonBase<mrdocs::doc::BlockKind::ThematicBreak> const& rhs) const = default;

Three‐way comparison operator

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/ThematicBreakBlock.hpp>

constexpr
auto
operator<=>(ThematicBreakBlock const& rhs) const = default;

Return Value

The relative order of the objects

Parameters

Name

Description

rhs

The right operand

Three‐way comparison operator

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockBase.hpp>

constexpr
auto
operator<=>(BlockCommonBase<mrdocs::doc::BlockKind::ThematicBreak> const& rhs) const = default;

Return Value

The relative order of the objects

Parameters

Name

Description

rhs

The right operand

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isAdmonition() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isBrief() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isCode() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isDefinitionList() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isFootnoteDefinition() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isHeading() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isList() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isMath() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isParagraph() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>

constexpr
static
bool
isParam() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>

constexpr
static
bool
isPostcondition() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>

constexpr
static
bool
isPrecondition() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isQuote() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>

constexpr
static
bool
isReturns() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>

constexpr
static
bool
isSee() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>

constexpr
static
bool
isTParam() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isTable() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isThematicBreak() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>

constexpr
static
bool
isThrows() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockBase.hpp>

constexpr static
BlockKind kind_id;

Documentation for a function parameter

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/ThrowsBlock.hpp>

Base Classes

Name

Description

BlockCommonBase<BlockKind::Throws>

Base class for providing variant discriminator functions.

InlineContainer

An internal node in the inline element tree

Member Functions

Name

Description

operator=

Assign an InlineContainer with a single TextInline child.

append

append overloads

asInlineContainer

Helper function so that derived classes can get a reference to the base class.

back

Get the last inline child.

begin

Begin iterator forwarding to children

clear

Clear all inline children.

emplace_back

Append a child of the specified type.

empty

Determine if there are no inline children.

end

End iterator forwarding to children

erase

Erase from children

front

Get the first inline child.

insert

Erase from children

operator+=

Addition assignment operators

size

Get the number of inline children.

operator==

Compare two InlineContainers.

operator<=>

Compare two InlineContainers.

Static Member Functions

Data Members

Static Data Members

Name

kind_id

Using Declarations

Non-Member Functions

Name

Description

getAsPlainText

Flatten an InlineContainer to plain text.

getAsPlainText

Flatten an InlineContainer to plain text.

isEmpty

Determine if the inline is empty

ltrim

Removes leading whitespace from the first text element in the given InlineContainer.

ltrim

Removes leading whitespace from the block.

rtrim

Removes trailing whitespace from the last text element in the given InlineContainer.

rtrim

Removes trailing whitespace from the block.

trim

Removes leading and trailing whitespace from the block.

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

constexpr
bool
operator==(ThrowsBlock const& rhs) const noexcept = default;

Compare two InlineContainers.

constexpr
bool
operator==(InlineContainer const& rhs) const = default;

Equality operator

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/ThrowsBlock.hpp>

constexpr
bool
operator==(ThrowsBlock const& rhs) const noexcept = default;

Return Value

true if the objects are equal, false otherwise

Parameters

Name

Description

rhs

The right operand

Compare two InlineContainers.

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>

constexpr
bool
operator==(InlineContainer const& rhs) const = default;

Return Value

true if the objects are equal, false otherwise

Parameters

Name

Description

rhs

The right operand

Compare two InlineContainers.

Synopses

Declared in <mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>

Three‐way comparison operator

auto
operator<=>(ThrowsBlock const& rhs) const = default;

Three‐way comparison operator

constexpr
auto
operator<=>(BlockCommonBase<mrdocs::doc::BlockKind::Throws> const& rhs) const = default;

Compare two InlineContainers.

std::strong_ordering
operator<=>(InlineContainer const& rhs) const;

Three‐way comparison operator

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/ThrowsBlock.hpp>

auto
operator<=>(ThrowsBlock const& rhs) const = default;

Return Value

The relative order of the objects

Parameters

Name

Description

rhs

The right operand

Three‐way comparison operator

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockBase.hpp>

constexpr
auto
operator<=>(BlockCommonBase<mrdocs::doc::BlockKind::Throws> const& rhs) const = default;

Return Value

The relative order of the objects

Parameters

Name

Description

rhs

The right operand

Compare two InlineContainers.

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>

std::strong_ordering
operator<=>(InlineContainer const& rhs) const;

Return Value

The relative order of the objects

Parameters

Name

Description

rhs

The right operand

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isAdmonition() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isBrief() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isCode() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isDefinitionList() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isFootnoteDefinition() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isHeading() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isList() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isMath() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isParagraph() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>

constexpr
static
bool
isParam() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>

constexpr
static
bool
isPostcondition() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>

constexpr
static
bool
isPrecondition() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isQuote() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>

constexpr
static
bool
isReturns() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>

constexpr
static
bool
isSee() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>

constexpr
static
bool
isTParam() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isTable() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockNodes.inc>

constexpr
static
bool
isThematicBreak() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>

constexpr
static
bool
isThrows() noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/ThrowsBlock.hpp>

ReferenceInline exception;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockBase.hpp>

constexpr static
BlockKind kind_id;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/ThrowsBlock.hpp>

using InlineContainer::ThrowsBlock;

Introduced Symbols

Name

Description

mrdocs::doc::InlineContainer::InlineContainer

Construct an InlineContainer with a single TextInline child.

mrdocs::doc::InlineContainer::InlineContainer

Construct an InlineContainer with a single TextInline child.

mrdocs::doc::InlineContainer::InlineContainer

Construct an InlineContainer with a single TextInline child.

mrdocs::doc::InlineContainer::InlineContainer

Construct an InlineContainer with a single TextInline child.

mrdocs::doc::InlineContainer::InlineContainer

Move constructor

mrdocs::doc::InlineContainer::InlineContainer

Copy constructor

An admonishment style.

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/AdmonitionKind.hpp>

enum class AdmonitionKind : int;

Members

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

Name

Description

toString

Return the name of the Admonish as a string.

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockKind.hpp>

enum class BlockKind : int;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineKind.hpp>

enum class InlineKind : int;

Parameter pass direction.

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/ParamDirection.hpp>

enum class ParamDirection : int;

Members

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

Name

Description

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>

enum class Parts : int;

Members

Name

Description

all

Copy the brief and the description

brief

Copy the brief

description

Copy the description

Non-Member Functions

Name

Description

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.

std::string
getAsPlainText(doc::Inline const& in);

Flatten an InlineContainer to plain text.

std::string
getAsPlainText(doc::InlineContainer const& in);

Get the plain text representation of an inline element tree.

void
getAsPlainText(
    doc::Inline const& in,
    std::string& dst);

Flatten an InlineContainer to plain text.

void
getAsPlainText(
    doc::InlineContainer const& in,
    std::string& dst);

Return Value

The flattened plain text.

Parameters

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>

std::string
getAsPlainText(doc::Inline const& in);

Description

This strips all formatting and returns just the text content.

Return Value

The flattened plain text.

Parameters

Name

Description

in

The input inline element.

Flatten an InlineContainer to plain text.

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>

std::string
getAsPlainText(doc::InlineContainer const& in);

Description

This concatenates all text nodes, ignoring formatting.

Return Value

The flattened plain text.

Parameters

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>

void
getAsPlainText(
    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

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>

void
getAsPlainText(
    doc::InlineContainer const& in,
    std::string& dst);

Description

This concatenates all text nodes, ignoring formatting.

Parameters

Name

Description

in

The InlineContainer to flatten.

dst

The output string to append to.

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockKind.hpp>

constexpr
bool
isBlockCommand(BlockKind k) noexcept;

Determine if the inline is empty

Synopses

Declared in <mrdocs/Metadata/DocComment/Block/BlockBase.hpp>

Determine if the inline is empty

bool
isEmpty(Block const& el);

Determine if the inline is empty

bool
isEmpty(Polymorphic<Block> const& el);

Determine if the inline is empty

bool
isEmpty(Polymorphic<Inline> const& el);

Determine if the inline is empty

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockBase.hpp>

bool
isEmpty(Block const& el);

Return Value

if the inline is empty

Parameters

Name

Description

el

A piece of block content

Determine if the inline is empty

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block.hpp>

bool
isEmpty(Polymorphic<Block> const& el);

Return Value

if the inline is empty

Parameters

Name

Description

el

A polymorphic value‐type.

Determine if the inline is empty

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline.hpp>

bool
isEmpty(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

Name

Description

el

A polymorphic value‐type.

ltrim overloads

Synopses

Declared in <mrdocs/Metadata/DocComment/Block/BlockBase.hpp>

Removes leading whitespace from the block.

void
ltrim(Block& el);

Removes leading whitespace from the first text elements

void
ltrim(BlockContainer& blocks);

Removes leading whitespace from the first text element in the given InlineContainer.

void
ltrim(InlineContainer& inlines);

Removes leading whitespace from the block.

Removes leading whitespace from the inline element.

Return Value

void

Parameters

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>

void
ltrim(Block& el);

Return Value

void

Parameters

Name

Description

el

The Block to trim.

Removes leading whitespace from the first text elements

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockBase.hpp>

void
ltrim(BlockContainer& blocks);

Return Value

void

Parameters

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>

void
ltrim(InlineContainer& inlines);

Return Value

void

Parameters

Name

Description

inlines

The InlineContainer to trim.

Removes leading whitespace from the block.

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block.hpp>

void
ltrim(Polymorphic<Block>& el);

Return Value

void

Parameters

Name

Description

el

The Polymorphic<Block> to trim.

Removes leading whitespace from the inline element.

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline.hpp>

void
ltrim(Polymorphic<Inline>& el);

Return Value

void

Parameters

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.

void
rtrim(Block& el);

Removes trailing whitespace from the last text elements

void
rtrim(BlockContainer& blocks);

Removes trailing whitespace from the last text element in the given InlineContainer.

void
rtrim(InlineContainer& inlines);

Removes trailing whitespace from the block.

Removes trailing whitespace from the inline element.

Return Value

void

Parameters

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>

void
rtrim(Block& el);

Return Value

void

Parameters

Name

Description

el

The Block to trim.

Removes trailing whitespace from the last text elements

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockBase.hpp>

void
rtrim(BlockContainer& blocks);

Return Value

void

Parameters

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>

void
rtrim(InlineContainer& inlines);

Return Value

void

Parameters

Name

Description

inlines

The InlineContainer to trim.

Removes trailing whitespace from the block.

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block.hpp>

void
rtrim(Polymorphic<Block>& el);

Return Value

void

Parameters

Name

Description

el

The Polymorphic<Block> to trim.

Removes trailing whitespace from the inline element.

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline.hpp>

void
rtrim(Polymorphic<Inline>& el);

Return Value

void

Parameters

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 dom::Value string.

Return the ParamDirection from a dom::Value string.

Return the Parts from a dom::Value string.

void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    Parts const kind);

Return the Admonition as a dom::Value object.

void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    AdmonitionBlock const& I,
    DomCorpus const* domCorpus);

Return the Block as a dom::Value object.

void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    Block const& I,
    DomCorpus const* domCorpus);
void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    BlockContainer const& I,
    DomCorpus const* domCorpus);

Return the Brief as a dom::Value object.

void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    BriefBlock const& I,
    DomCorpus const* domCorpus);

Return the Code as a dom::Value object.

void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    CodeBlock const& I,
    DomCorpus const* domCorpus);

Return the Code as a dom::Value object.

void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    CodeInline const& I,
    DomCorpus const* domCorpus);

Return the CopyDetails as a dom::Value object.

void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    CopyDetailsInline const& I,
    DomCorpus const* domCorpus);
void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    DefinitionListBlock const& I,
    DomCorpus const* domCorpus);

Return the DefinitionListItem as a dom::Value object.

void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    DefinitionListItem const& I,
    DomCorpus const* domCorpus);

Return the Emph as a dom::Value object.

void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    EmphInline const& I,
    DomCorpus const* domCorpus);

Return the FootnoteDefinition as a dom::Value object.

void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    FootnoteDefinitionBlock const& I,
    DomCorpus const* domCorpus);

Return the FootnoteReference as a dom::Value object.

void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    FootnoteReferenceInline const& I,
    DomCorpus const* domCorpus);

Return the Heading as a dom::Value object.

void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    HeadingBlock const& I,
    DomCorpus const* domCorpus);

Return the Highlight as a dom::Value object.

void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    HighlightInline const& I,
    DomCorpus const* domCorpus);

Return the Image as a dom::Value object.

void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    ImageInline const& I,
    DomCorpus const* domCorpus);

Return the Inline as a dom::Value object.

void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    Inline const& I,
    DomCorpus const* domCorpus);
void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    InlineContainer const& I,
    DomCorpus const* domCorpus);

Return the LineBreak as a dom::Value object.

void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    LineBreakInline const& I,
    DomCorpus const* domCorpus);

Return the Link as a dom::Value object.

void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    LinkInline const& I,
    DomCorpus const* domCorpus);

Return the UnorderedList as a dom::Value object.

void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    ListBlock const& I,
    DomCorpus const* domCorpus);

Return the ListItem as a dom::Value object.

void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    ListItem const& I,
    DomCorpus const* domCorpus);

Return the Brief as a dom::Value object.

void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    MathBlock const& I,
    DomCorpus const* domCorpus);

Return the Math as a dom::Value object.

void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    MathInline const& I,
    DomCorpus const* domCorpus);

Return the Paragraph as a dom::Value object.

void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    ParagraphBlock const& I,
    DomCorpus const* domCorpus);

Return the Param as a dom::Value object.

void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    ParamBlock const& I,
    DomCorpus const* domCorpus);

Return the Postcondition as a dom::Value object.

void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    PostconditionBlock const& I,
    DomCorpus const* domCorpus);

Return the Precondition as a dom::Value object.

void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    PreconditionBlock const& I,
    DomCorpus const* domCorpus);

Return the QuoteBlock as a dom::Value object.

void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    QuoteBlock const& I,
    DomCorpus const* domCorpus);

Return the Reference as a dom::Value object.

void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    ReferenceInline const& I,
    DomCorpus const* domCorpus);

Return the Returns as a dom::Value object.

void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    ReturnsBlock const& I,
    DomCorpus const* domCorpus);

Return the See as a dom::Value object.

void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    SeeBlock const& I,
    DomCorpus const* domCorpus);

Return the SoftBreak as a dom::Value object.

void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    SoftBreakInline const& I,
    DomCorpus const* domCorpus);

Return the Strikethrough as a dom::Value object.

void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    StrikethroughInline const& I,
    DomCorpus const* domCorpus);

Return the Strong as a dom::Value object.

void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    StrongInline const& I,
    DomCorpus const* domCorpus);

Return the Subscript as a dom::Value object.

void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    SubscriptInline const& I,
    DomCorpus const* domCorpus);

Return the Superscript as a dom::Value object.

void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    SuperscriptInline const& I,
    DomCorpus const* domCorpus);

Return the TParam as a dom::Value object.

void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    TParamBlock const& I,
    DomCorpus const* domCorpus);

Return the UnorderedTable as a dom::Value object.

void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    TableBlock const& I,
    DomCorpus const* domCorpus);

Return the TableCell as a dom::Value object.

void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    TableCell const& I,
    DomCorpus const* domCorpus);

Return the TableRow as a dom::Value object.

void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    TableRow const& I,
    DomCorpus const* domCorpus);

Return the Text as a dom::Value object.

void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    TextInline const& I,
    DomCorpus const* domCorpus);

Return the Brief as a dom::Value object.

void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    ThematicBreakBlock const& I,
    DomCorpus const* domCorpus);

Return the Throws as a dom::Value object.

void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    ThrowsBlock const& I,
    DomCorpus const* domCorpus);

Map the Polymorphic Block as a dom::Value object.

void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    Polymorphic<Block> const& I,
    DomCorpus const* domCorpus);

Map the Polymorphic Block to a dom::Object.

template<class IO>
void
tag_invoke(
    dom::LazyObjectMapTag,
    IO& io,
    Polymorphic<Block> const& I,
    DomCorpus const* domCorpus);

Map the Admonition to a dom::Object.

template<class IO>
void
tag_invoke(
    dom::LazyObjectMapTag t,
    IO& io,
    AdmonitionBlock const& I,
    DomCorpus const* domCorpus);

Map the Block to a dom::Object.

template<class IO>
void
tag_invoke(
    dom::LazyObjectMapTag t,
    IO& io,
    Block const& I,
    DomCorpus const*);
template<class IO>
void
tag_invoke(
    dom::LazyObjectMapTag t,
    IO& io,
    BlockContainer const& I,
    DomCorpus const* domCorpus);

Map the Brief to a dom::Object.

template<class IO>
void
tag_invoke(
    dom::LazyObjectMapTag t,
    IO& io,
    BriefBlock const& I,
    DomCorpus const* domCorpus);

Map the Code to a dom::Object.

template<class IO>
void
tag_invoke(
    dom::LazyObjectMapTag t,
    IO& io,
    CodeBlock const& I,
    DomCorpus const* domCorpus);

Map the Code to a dom::Object.

template<class IO>
void
tag_invoke(
    dom::LazyObjectMapTag t,
    IO& io,
    CodeInline const& I,
    DomCorpus const* domCorpus);

Map the CopyDetails to a dom::Object.

template<class IO>
void
tag_invoke(
    dom::LazyObjectMapTag t,
    IO& io,
    CopyDetailsInline const& I,
    DomCorpus const* domCorpus);
template<class IO>
void
tag_invoke(
    dom::LazyObjectMapTag t,
    IO& io,
    DefinitionListBlock const& I,
    DomCorpus const* domCorpus);
template<class IO>
void
tag_invoke(
    dom::LazyObjectMapTag t,
    IO& io,
    DefinitionListItem const& I,
    DomCorpus const* domCorpus);

Map the Emph to a dom::Object.

template<class IO>
void
tag_invoke(
    dom::LazyObjectMapTag t,
    IO& io,
    EmphInline const& I,
    DomCorpus const* domCorpus);

Map the FootnoteDefinition to a dom::Object.

template<class IO>
void
tag_invoke(
    dom::LazyObjectMapTag t,
    IO& io,
    FootnoteDefinitionBlock const& I,
    DomCorpus const* domCorpus);

Map the FootnoteReference to a dom::Object.

template<class IO>
void
tag_invoke(
    dom::LazyObjectMapTag t,
    IO& io,
    FootnoteReferenceInline const& I,
    DomCorpus const* domCorpus);

Map the Heading to a dom::Object.

template<class IO>
void
tag_invoke(
    dom::LazyObjectMapTag t,
    IO& io,
    HeadingBlock const& I,
    DomCorpus const* domCorpus);

Map the Highlight to a dom::Object.

template<class IO>
void
tag_invoke(
    dom::LazyObjectMapTag t,
    IO& io,
    HighlightInline const& I,
    DomCorpus const* domCorpus);

Map the Image to a dom::Object.

template<class IO>
void
tag_invoke(
    dom::LazyObjectMapTag t,
    IO& io,
    ImageInline const& I,
    DomCorpus const* domCorpus);

Map the Inline to a dom::Object.

template<class IO>
void
tag_invoke(
    dom::LazyObjectMapTag t,
    IO& io,
    Inline const& I,
    DomCorpus const* domCorpus);
template<class IO>
void
tag_invoke(
    dom::LazyObjectMapTag t,
    IO& io,
    InlineContainer const& I,
    DomCorpus const* domCorpus);

Map the LineBreak to a dom::Object.

template<class IO>
void
tag_invoke(
    dom::LazyObjectMapTag t,
    IO& io,
    LineBreakInline const& I,
    DomCorpus const* domCorpus);

Map the Link to a dom::Object.

template<class IO>
void
tag_invoke(
    dom::LazyObjectMapTag t,
    IO& io,
    LinkInline const& I,
    DomCorpus const* domCorpus);

Map the UnorderedList to a dom::Object.

template<class IO>
void
tag_invoke(
    dom::LazyObjectMapTag t,
    IO& io,
    ListBlock const& I,
    DomCorpus const* domCorpus);

Map the ListItem to a dom::Object.

template<class IO>
void
tag_invoke(
    dom::LazyObjectMapTag t,
    IO& io,
    ListItem const& I,
    DomCorpus const* domCorpus);

Map the Brief to a dom::Object.

template<class IO>
void
tag_invoke(
    dom::LazyObjectMapTag t,
    IO& io,
    MathBlock const& I,
    DomCorpus const* domCorpus);

Map the Math to a dom::Object.

template<class IO>
void
tag_invoke(
    dom::LazyObjectMapTag t,
    IO& io,
    MathInline const& I,
    DomCorpus const* domCorpus);

Map the Paragraph to a dom::Object.

template<class IO>
void
tag_invoke(
    dom::LazyObjectMapTag t,
    IO& io,
    ParagraphBlock const& I,
    DomCorpus const* domCorpus);

Map the Param to a dom::Object.

template<class IO>
void
tag_invoke(
    dom::LazyObjectMapTag t,
    IO& io,
    ParamBlock const& I,
    DomCorpus const* domCorpus);

Map the Postcondition to a dom::Object.

template<class IO>
void
tag_invoke(
    dom::LazyObjectMapTag t,
    IO& io,
    PostconditionBlock const& I,
    DomCorpus const* domCorpus);

Map the Precondition to a dom::Object.

template<class IO>
void
tag_invoke(
    dom::LazyObjectMapTag t,
    IO& io,
    PreconditionBlock const& I,
    DomCorpus const* domCorpus);

Map the QuoteBlock to a dom::Object.

template<class IO>
void
tag_invoke(
    dom::LazyObjectMapTag t,
    IO& io,
    QuoteBlock const& I,
    DomCorpus const* domCorpus);

Map the Reference to a dom::Object.

template<class IO>
void
tag_invoke(
    dom::LazyObjectMapTag t,
    IO& io,
    ReferenceInline const& I,
    DomCorpus const* domCorpus);

Map the Returns to a dom::Object.

template<class IO>
void
tag_invoke(
    dom::LazyObjectMapTag t,
    IO& io,
    ReturnsBlock const& I,
    DomCorpus const* domCorpus);

Map the See to a dom::Object.

template<class IO>
void
tag_invoke(
    dom::LazyObjectMapTag t,
    IO& io,
    SeeBlock const& I,
    DomCorpus const* domCorpus);

Map the SoftBreak to a dom::Object.

template<class IO>
void
tag_invoke(
    dom::LazyObjectMapTag t,
    IO& io,
    SoftBreakInline const& I,
    DomCorpus const* domCorpus);

Map the Strikethrough to a dom::Object.

template<class IO>
void
tag_invoke(
    dom::LazyObjectMapTag t,
    IO& io,
    StrikethroughInline const& I,
    DomCorpus const* domCorpus);

Map the Strong to a dom::Object.

template<class IO>
void
tag_invoke(
    dom::LazyObjectMapTag t,
    IO& io,
    StrongInline const& I,
    DomCorpus const* domCorpus);

Map the Subscript to a dom::Object.

template<class IO>
void
tag_invoke(
    dom::LazyObjectMapTag t,
    IO& io,
    SubscriptInline const& I,
    DomCorpus const* domCorpus);

Map the Superscript to a dom::Object.

template<class IO>
void
tag_invoke(
    dom::LazyObjectMapTag t,
    IO& io,
    SuperscriptInline const& I,
    DomCorpus const* domCorpus);

Map the TParam to a dom::Object.

template<class IO>
void
tag_invoke(
    dom::LazyObjectMapTag t,
    IO& io,
    TParamBlock const& I,
    DomCorpus const* domCorpus);

Map the UnorderedTable to a dom::Object.

template<class IO>
void
tag_invoke(
    dom::LazyObjectMapTag t,
    IO& io,
    TableBlock const& I,
    DomCorpus const* domCorpus);

Map the TableCell to a dom::Object.

template<class IO>
void
tag_invoke(
    dom::LazyObjectMapTag t,
    IO& io,
    TableCell const& I,
    DomCorpus const* domCorpus);

Map the TableRow to a dom::Object.

template<class IO>
void
tag_invoke(
    dom::LazyObjectMapTag t,
    IO& io,
    TableRow const& I,
    DomCorpus const* domCorpus);

Map the Text to a dom::Object.

template<class IO>
void
tag_invoke(
    dom::LazyObjectMapTag t,
    IO& io,
    TextInline const& I,
    DomCorpus const* domCorpus);

Map the Brief to a dom::Object.

template<class IO>
void
tag_invoke(
    dom::LazyObjectMapTag t,
    IO& io,
    ThematicBreakBlock const& I,
    DomCorpus const* domCorpus);

Map the Throws to a dom::Object.

template<class IO>
void
tag_invoke(
    dom::LazyObjectMapTag t,
    IO& io,
    ThrowsBlock const& I,
    DomCorpus const* domCorpus);

Map the Polymorphic Inline as a dom::Value object.

template<
    class IO,
    polymorphic_storage_for<Block> InlineTy>
void
tag_invoke(
    dom::ValueFromTag,
    IO& io,
    InlineTy const& I,
    DomCorpus const* domCorpus);

Parameters

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 dom::Value string.

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/AdmonitionKind.hpp>

void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    AdmonitionKind const kind);

Parameters

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>

void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    BlockKind const kind);

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineKind.hpp>

void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    InlineKind const kind);

Return the ParamDirection from a dom::Value string.

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/ParamDirection.hpp>

void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    ParamDirection const kind);

Parameters

Name

Description

v

A variant container for any kind of Dom value.

kind

Parameter pass direction.

Return the Parts from a dom::Value string.

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/Parts.hpp>

void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    Parts const kind);

Parameters

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 dom::Value object.

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/AdmonitionBlock.hpp>

void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    AdmonitionBlock const& I,
    DomCorpus const* domCorpus);

Parameters

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 Block as a dom::Value object.

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockBase.hpp>

void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    Block const& I,
    DomCorpus const* domCorpus);

Parameters

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>

void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    BlockContainer const& I,
    DomCorpus const* domCorpus);

Return the Brief as a dom::Value object.

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BriefBlock.hpp>

void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    BriefBlock const& I,
    DomCorpus const* domCorpus);

Parameters

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 dom::Value object.

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/CodeBlock.hpp>

void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    CodeBlock const& I,
    DomCorpus const* domCorpus);

Parameters

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 dom::Value object.

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/CodeInline.hpp>

void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    CodeInline const& I,
    DomCorpus const* domCorpus);

Parameters

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 dom::Value object.

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/CopyDetailsInline.hpp>

void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    CopyDetailsInline const& I,
    DomCorpus const* domCorpus);

Parameters

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>

void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    DefinitionListBlock const& I,
    DomCorpus const* domCorpus);

Return the DefinitionListItem as a dom::Value object.

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/DefinitionListItem.hpp>

void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    DefinitionListItem const& I,
    DomCorpus const* domCorpus);

Parameters

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 dom::Value object.

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/EmphInline.hpp>

void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    EmphInline const& I,
    DomCorpus const* domCorpus);

Parameters

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 dom::Value object.

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/FootnoteDefinitionBlock.hpp>

void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    FootnoteDefinitionBlock const& I,
    DomCorpus const* domCorpus);

Parameters

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 dom::Value object.

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/FootnoteReferenceInline.hpp>

void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    FootnoteReferenceInline const& I,
    DomCorpus const* domCorpus);

Parameters

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 dom::Value object.

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/HeadingBlock.hpp>

void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    HeadingBlock const& I,
    DomCorpus const* domCorpus);

Parameters

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 dom::Value object.

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/HighlightInline.hpp>

void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    HighlightInline const& I,
    DomCorpus const* domCorpus);

Parameters

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 dom::Value object.

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/ImageInline.hpp>

void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    ImageInline const& I,
    DomCorpus const* domCorpus);

Parameters

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 Inline as a dom::Value object.

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>

void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    Inline const& I,
    DomCorpus const* domCorpus);

Parameters

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>

void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    InlineContainer const& I,
    DomCorpus const* domCorpus);

Return the LineBreak as a dom::Value object.

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/LineBreakInline.hpp>

void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    LineBreakInline const& I,
    DomCorpus const* domCorpus);

Parameters

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 dom::Value object.

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/LinkInline.hpp>

void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    LinkInline const& I,
    DomCorpus const* domCorpus);

Parameters

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 dom::Value object.

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/ListBlock.hpp>

void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    ListBlock const& I,
    DomCorpus const* domCorpus);

Parameters

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 ListItem as a dom::Value object.

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/ListItem.hpp>

void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    ListItem const& I,
    DomCorpus const* domCorpus);

Parameters

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 dom::Value object.

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/MathBlock.hpp>

void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    MathBlock const& I,
    DomCorpus const* domCorpus);

Parameters

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 dom::Value object.

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/MathInline.hpp>

void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    MathInline const& I,
    DomCorpus const* domCorpus);

Parameters

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 dom::Value object.

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/ParagraphBlock.hpp>

void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    ParagraphBlock const& I,
    DomCorpus const* domCorpus);

Parameters

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 Param as a dom::Value object.

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/ParamBlock.hpp>

void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    ParamBlock const& I,
    DomCorpus const* domCorpus);

Parameters

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 dom::Value object.

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/PostconditionBlock.hpp>

void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    PostconditionBlock const& I,
    DomCorpus const* domCorpus);

Parameters

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 dom::Value object.

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/PreconditionBlock.hpp>

void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    PreconditionBlock const& I,
    DomCorpus const* domCorpus);

Parameters

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 QuoteBlock as a dom::Value object.

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/QuoteBlock.hpp>

void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    QuoteBlock const& I,
    DomCorpus const* domCorpus);

Parameters

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 dom::Value object.

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/ReferenceInline.hpp>

void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    ReferenceInline const& I,
    DomCorpus const* domCorpus);

Parameters

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 dom::Value object.

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/ReturnsBlock.hpp>

void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    ReturnsBlock const& I,
    DomCorpus const* domCorpus);

Parameters

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 dom::Value object.

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/SeeBlock.hpp>

void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    SeeBlock const& I,
    DomCorpus const* domCorpus);

Parameters

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 dom::Value object.

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/SoftBreakInline.hpp>

void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    SoftBreakInline const& I,
    DomCorpus const* domCorpus);

Parameters

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 dom::Value object.

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/StrikethroughInline.hpp>

void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    StrikethroughInline const& I,
    DomCorpus const* domCorpus);

Parameters

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 dom::Value object.

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/StrongInline.hpp>

void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    StrongInline const& I,
    DomCorpus const* domCorpus);

Parameters

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 dom::Value object.

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/SubscriptInline.hpp>

void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    SubscriptInline const& I,
    DomCorpus const* domCorpus);

Parameters

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 dom::Value object.

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/SuperscriptInline.hpp>

void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    SuperscriptInline const& I,
    DomCorpus const* domCorpus);

Parameters

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 TParam as a dom::Value object.

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/TParamBlock.hpp>

void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    TParamBlock const& I,
    DomCorpus const* domCorpus);

Parameters

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 dom::Value object.

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/TableBlock.hpp>

void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    TableBlock const& I,
    DomCorpus const* domCorpus);

Parameters

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 TableCell as a dom::Value object.

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/TableCell.hpp>

void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    TableCell const& I,
    DomCorpus const* domCorpus);

Parameters

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 TableRow as a dom::Value object.

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/TableRow.hpp>

void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    TableRow const& I,
    DomCorpus const* domCorpus);

Parameters

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 dom::Value object.

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/TextInline.hpp>

void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    TextInline const& I,
    DomCorpus const* domCorpus);

Parameters

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 dom::Value object.

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/ThematicBreakBlock.hpp>

void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    ThematicBreakBlock const& I,
    DomCorpus const* domCorpus);

Parameters

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 dom::Value object.

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/ThrowsBlock.hpp>

void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    ThrowsBlock const& I,
    DomCorpus const* domCorpus);

Parameters

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>

void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    Optional<Polymorphic<Block>> const& I,
    DomCorpus const* domCorpus);

Map the Polymorphic Block as a dom::Value object.

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block.hpp>

void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    Polymorphic<Block> const& I,
    DomCorpus const* domCorpus);

Parameters

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>

void
tag_invoke(
    mrdocs::dom::ValueFromTag,
    mrdocs::dom::Value& v,
    Optional<BriefBlock> const& I,
    DomCorpus const* domCorpus);

Map the Polymorphic Block to a dom::Object.

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block.hpp>

template<class IO>
void
tag_invoke(
    dom::LazyObjectMapTag,
    IO& io,
    Polymorphic<Block> const& I,
    DomCorpus const* domCorpus);

Parameters

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 dom::Object.

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/AdmonitionBlock.hpp>

template<class IO>
void
tag_invoke(
    dom::LazyObjectMapTag t,
    IO& io,
    AdmonitionBlock const& I,
    DomCorpus const* domCorpus);

Parameters

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 Block to a dom::Object.

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockBase.hpp>

template<class IO>
void
tag_invoke(
    dom::LazyObjectMapTag t,
    IO& io,
    Block const& I,
    DomCorpus const*);

Parameters

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>

template<class IO>
void
tag_invoke(
    dom::LazyObjectMapTag t,
    IO& io,
    BlockContainer const& I,
    DomCorpus const* domCorpus);

Map the Brief to a dom::Object.

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BriefBlock.hpp>

template<class IO>
void
tag_invoke(
    dom::LazyObjectMapTag t,
    IO& io,
    BriefBlock const& I,
    DomCorpus const* domCorpus);

Parameters

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 dom::Object.

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/CodeBlock.hpp>

template<class IO>
void
tag_invoke(
    dom::LazyObjectMapTag t,
    IO& io,
    CodeBlock const& I,
    DomCorpus const* domCorpus);

Parameters

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 dom::Object.

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/CodeInline.hpp>

template<class IO>
void
tag_invoke(
    dom::LazyObjectMapTag t,
    IO& io,
    CodeInline const& I,
    DomCorpus const* domCorpus);

Parameters

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 dom::Object.

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/CopyDetailsInline.hpp>

template<class IO>
void
tag_invoke(
    dom::LazyObjectMapTag t,
    IO& io,
    CopyDetailsInline const& I,
    DomCorpus const* domCorpus);

Parameters

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>

template<class IO>
void
tag_invoke(
    dom::LazyObjectMapTag t,
    IO& io,
    DefinitionListBlock const& I,
    DomCorpus const* domCorpus);

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/DefinitionListItem.hpp>

template<class IO>
void
tag_invoke(
    dom::LazyObjectMapTag t,
    IO& io,
    DefinitionListItem const& I,
    DomCorpus const* domCorpus);

Parameters

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 dom::Object.

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/EmphInline.hpp>

template<class IO>
void
tag_invoke(
    dom::LazyObjectMapTag t,
    IO& io,
    EmphInline const& I,
    DomCorpus const* domCorpus);

Parameters

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 dom::Object.

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/FootnoteDefinitionBlock.hpp>

template<class IO>
void
tag_invoke(
    dom::LazyObjectMapTag t,
    IO& io,
    FootnoteDefinitionBlock const& I,
    DomCorpus const* domCorpus);

Parameters

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 dom::Object.

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/FootnoteReferenceInline.hpp>

template<class IO>
void
tag_invoke(
    dom::LazyObjectMapTag t,
    IO& io,
    FootnoteReferenceInline const& I,
    DomCorpus const* domCorpus);

Parameters

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 dom::Object.

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/HeadingBlock.hpp>

template<class IO>
void
tag_invoke(
    dom::LazyObjectMapTag t,
    IO& io,
    HeadingBlock const& I,
    DomCorpus const* domCorpus);

Parameters

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 dom::Object.

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/HighlightInline.hpp>

template<class IO>
void
tag_invoke(
    dom::LazyObjectMapTag t,
    IO& io,
    HighlightInline const& I,
    DomCorpus const* domCorpus);

Parameters

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 dom::Object.

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/ImageInline.hpp>

template<class IO>
void
tag_invoke(
    dom::LazyObjectMapTag t,
    IO& io,
    ImageInline const& I,
    DomCorpus const* domCorpus);

Parameters

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 Inline to a dom::Object.

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>

template<class IO>
void
tag_invoke(
    dom::LazyObjectMapTag t,
    IO& io,
    Inline const& I,
    DomCorpus const* domCorpus);

Parameters

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>

template<class IO>
void
tag_invoke(
    dom::LazyObjectMapTag t,
    IO& io,
    InlineContainer const& I,
    DomCorpus const* domCorpus);

Map the LineBreak to a dom::Object.

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/LineBreakInline.hpp>

template<class IO>
void
tag_invoke(
    dom::LazyObjectMapTag t,
    IO& io,
    LineBreakInline const& I,
    DomCorpus const* domCorpus);

Parameters

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 dom::Object.

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/LinkInline.hpp>

template<class IO>
void
tag_invoke(
    dom::LazyObjectMapTag t,
    IO& io,
    LinkInline const& I,
    DomCorpus const* domCorpus);

Parameters

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 dom::Object.

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/ListBlock.hpp>

template<class IO>
void
tag_invoke(
    dom::LazyObjectMapTag t,
    IO& io,
    ListBlock const& I,
    DomCorpus const* domCorpus);

Parameters

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 ListItem to a dom::Object.

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/ListItem.hpp>

template<class IO>
void
tag_invoke(
    dom::LazyObjectMapTag t,
    IO& io,
    ListItem const& I,
    DomCorpus const* domCorpus);

Parameters

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 dom::Object.

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/MathBlock.hpp>

template<class IO>
void
tag_invoke(
    dom::LazyObjectMapTag t,
    IO& io,
    MathBlock const& I,
    DomCorpus const* domCorpus);

Parameters

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 dom::Object.

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/MathInline.hpp>

template<class IO>
void
tag_invoke(
    dom::LazyObjectMapTag t,
    IO& io,
    MathInline const& I,
    DomCorpus const* domCorpus);

Parameters

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 dom::Object.

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/ParagraphBlock.hpp>

template<class IO>
void
tag_invoke(
    dom::LazyObjectMapTag t,
    IO& io,
    ParagraphBlock const& I,
    DomCorpus const* domCorpus);

Parameters

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 Param to a dom::Object.

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/ParamBlock.hpp>

template<class IO>
void
tag_invoke(
    dom::LazyObjectMapTag t,
    IO& io,
    ParamBlock const& I,
    DomCorpus const* domCorpus);

Parameters

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 dom::Object.

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/PostconditionBlock.hpp>

template<class IO>
void
tag_invoke(
    dom::LazyObjectMapTag t,
    IO& io,
    PostconditionBlock const& I,
    DomCorpus const* domCorpus);

Parameters

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 dom::Object.

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/PreconditionBlock.hpp>

template<class IO>
void
tag_invoke(
    dom::LazyObjectMapTag t,
    IO& io,
    PreconditionBlock const& I,
    DomCorpus const* domCorpus);

Parameters

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 QuoteBlock to a dom::Object.

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/QuoteBlock.hpp>

template<class IO>
void
tag_invoke(
    dom::LazyObjectMapTag t,
    IO& io,
    QuoteBlock const& I,
    DomCorpus const* domCorpus);

Parameters

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 dom::Object.

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/ReferenceInline.hpp>

template<class IO>
void
tag_invoke(
    dom::LazyObjectMapTag t,
    IO& io,
    ReferenceInline const& I,
    DomCorpus const* domCorpus);

Parameters

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 dom::Object.

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/ReturnsBlock.hpp>

template<class IO>
void
tag_invoke(
    dom::LazyObjectMapTag t,
    IO& io,
    ReturnsBlock const& I,
    DomCorpus const* domCorpus);

Parameters

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 dom::Object.

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/SeeBlock.hpp>

template<class IO>
void
tag_invoke(
    dom::LazyObjectMapTag t,
    IO& io,
    SeeBlock const& I,
    DomCorpus const* domCorpus);

Parameters

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 dom::Object.

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/SoftBreakInline.hpp>

template<class IO>
void
tag_invoke(
    dom::LazyObjectMapTag t,
    IO& io,
    SoftBreakInline const& I,
    DomCorpus const* domCorpus);

Parameters

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 dom::Object.

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/StrikethroughInline.hpp>

template<class IO>
void
tag_invoke(
    dom::LazyObjectMapTag t,
    IO& io,
    StrikethroughInline const& I,
    DomCorpus const* domCorpus);

Parameters

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 dom::Object.

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/StrongInline.hpp>

template<class IO>
void
tag_invoke(
    dom::LazyObjectMapTag t,
    IO& io,
    StrongInline const& I,
    DomCorpus const* domCorpus);

Parameters

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 dom::Object.

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/SubscriptInline.hpp>

template<class IO>
void
tag_invoke(
    dom::LazyObjectMapTag t,
    IO& io,
    SubscriptInline const& I,
    DomCorpus const* domCorpus);

Parameters

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 dom::Object.

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/SuperscriptInline.hpp>

template<class IO>
void
tag_invoke(
    dom::LazyObjectMapTag t,
    IO& io,
    SuperscriptInline const& I,
    DomCorpus const* domCorpus);

Parameters

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 TParam to a dom::Object.

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/TParamBlock.hpp>

template<class IO>
void
tag_invoke(
    dom::LazyObjectMapTag t,
    IO& io,
    TParamBlock const& I,
    DomCorpus const* domCorpus);

Parameters

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 dom::Object.

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/TableBlock.hpp>

template<class IO>
void
tag_invoke(
    dom::LazyObjectMapTag t,
    IO& io,
    TableBlock const& I,
    DomCorpus const* domCorpus);

Parameters

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 TableCell to a dom::Object.

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/TableCell.hpp>

template<class IO>
void
tag_invoke(
    dom::LazyObjectMapTag t,
    IO& io,
    TableCell const& I,
    DomCorpus const* domCorpus);

Parameters

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 TableRow to a dom::Object.

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/TableRow.hpp>

template<class IO>
void
tag_invoke(
    dom::LazyObjectMapTag t,
    IO& io,
    TableRow const& I,
    DomCorpus const* domCorpus);

Parameters

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 dom::Object.

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/TextInline.hpp>

template<class IO>
void
tag_invoke(
    dom::LazyObjectMapTag t,
    IO& io,
    TextInline const& I,
    DomCorpus const* domCorpus);

Parameters

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 dom::Object.

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/ThematicBreakBlock.hpp>

template<class IO>
void
tag_invoke(
    dom::LazyObjectMapTag t,
    IO& io,
    ThematicBreakBlock const& I,
    DomCorpus const* domCorpus);

Parameters

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 dom::Object.

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/ThrowsBlock.hpp>

template<class IO>
void
tag_invoke(
    dom::LazyObjectMapTag t,
    IO& io,
    ThrowsBlock const& I,
    DomCorpus const* domCorpus);

Parameters

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 dom::Value object.

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>

template<
    class IO,
    polymorphic_storage_for<Block> InlineTy>
void
tag_invoke(
    dom::ValueFromTag,
    IO& io,
    InlineTy const& I,
    DomCorpus const* domCorpus);

Parameters

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.

dom::String
toString(BlockKind kind) noexcept;
dom::String
toString(InlineKind kind) noexcept;

Return the name of the ParamDirection as a string.

Return the name of the Parts as a string.

dom::String
toString(Parts kind) noexcept;

Return the name of the Admonish as a string.

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/AdmonitionKind.hpp>

dom::String
toString(AdmonitionKind kind) noexcept;

Return Value

the name of the Admonish as a string.

Parameters

Name

Description

kind

An admonishment style.

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/BlockKind.hpp>

dom::String
toString(BlockKind kind) noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/InlineKind.hpp>

dom::String
toString(InlineKind kind) noexcept;

Return the name of the ParamDirection as a string.

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/ParamDirection.hpp>

dom::String
toString(ParamDirection kind) noexcept;

Return Value

the name of the ParamDirection as a string.

Parameters

Name

Description

kind

Parameter pass direction.

Return the name of the Parts as a string.

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline/Parts.hpp>

dom::String
toString(Parts kind) noexcept;

Return Value

the name of the Parts as a string.

Parameters

Name

Description

kind

Which parts of the documentation to copy.

Traverse a list of inlines.

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline.hpp>

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

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.

void
trim(Block& el);

Removes leading and trailing whitespace from the text elements

void
trim(BlockContainer& blocks);

Removes leading and trailing whitespace from the text elements in the given InlineContainer.

void
trim(InlineContainer& inlines);

Removes leading and trailing whitespace from the block.

Removes leading and trailing whitespace from the inline element.

Return Value

void

Parameters

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>

void
trim(Block& el);

Return Value

void

Parameters

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>

void
trim(BlockContainer& blocks);

Return Value

void

Parameters

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>

void
trim(InlineContainer& inlines);

Return Value

void

Parameters

Name

Description

inlines

The InlineContainer to trim.

Removes leading and trailing whitespace from the block.

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block.hpp>

void
trim(Polymorphic<Block>& el);

Return Value

void

Parameters

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>

void
trim(Polymorphic<Inline>& el);

Return Value

void

Parameters

Name

Description

el

The Polymorphic<Inline> to trim.

visit overloads

Synopses

Declared in <mrdocs/Metadata/DocComment/Block.hpp>

Visit a block.

template<
    std::derived_from<Block> BlockTy,
    class Fn,
    class... Args>
decltype(auto)
visit(
    BlockTy& info,
    Fn&& fn,
    Args...&&... args);

Visit an inline.

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

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>

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

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>

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

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

bool
operator==(
    Polymorphic<Inline> const& lhs,
    Polymorphic<Inline> const& rhs);

Equality operator

bool
operator==(
    Polymorphic<Block> const& lhs,
    Polymorphic<Block> const& rhs);

Equality operator

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline.hpp>

bool
operator==(
    Polymorphic<Inline> const& lhs,
    Polymorphic<Inline> const& rhs);

Return Value

true if the objects are equal, false otherwise

Parameters

Name

Description

lhs

The left operand

rhs

The right operand

Equality operator

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block.hpp>

bool
operator==(
    Polymorphic<Block> const& lhs,
    Polymorphic<Block> const& rhs);

Return Value

true if the objects are equal, false otherwise

Parameters

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

std::strong_ordering
operator<=>(
    Polymorphic<Inline> const& lhs,
    Polymorphic<Inline> const& rhs);

Three‐way comparison operator

std::strong_ordering
operator<=>(
    Polymorphic<Block> const& lhs,
    Polymorphic<Block> const& rhs);

Three‐way comparison operator

Synopsis

Declared in <mrdocs/Metadata/DocComment/Inline.hpp>

std::strong_ordering
operator<=>(
    Polymorphic<Inline> const& lhs,
    Polymorphic<Inline> const& rhs);

Return Value

The relative order of the objects

Parameters

Name

Description

lhs

The left operand

rhs

The right operand

Three‐way comparison operator

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block.hpp>

std::strong_ordering
operator<=>(
    Polymorphic<Block> const& lhs,
    Polymorphic<Block> const& rhs);

Return Value

The relative order of the objects

Parameters

Name

Description

lhs

The left operand

rhs

The right operand

Objects representing JSON‐like values.

Namespaces

Name

JSON

Types

Name

Description

Array

An array of values

ArrayImpl

Abstract array interface.

DefaultArrayImpl

The default array implementation.

DefaultFunctionImpl

DefaultObjectImpl

The default Object implementation.

Function

FunctionImpl

LazyArrayImpl

Lazy array implementation

LazyArrayImpl

Lazy array implementation

LazyObjectImpl

Lazy object implementation.

LazyObjectImpl

Lazy object implementation.

LazyObjectMapTag

Customization point tag.

Object

A container of key and value pairs.

ObjectImpl

Abstract object interface.

String

Value

A variant container for any kind of Dom value.

ValueFromTag

Customization point tag.

VariadicFunctionImpl

function_traits

function_traits<F>

function_traits<R(*)(Args...)>

function_traits<R(Args...)>

function_traits<R const volatile(C::*)(Args...)>

Enums

Name

Description

Kind

The type of data in a Value.

Functions

Name

Description

LazyArray

LazyArray overloads

LazyObject

LazyObject overloads

TransformArray

Return a new dom::Array based on a transformed lazy array implementation.

ValueFrom

ValueFrom overloads

makeInvocable

makeVariadicInvocable

newArray

Return a new array using a custom implementation.

newFunction

Return a diagnostic string.

newObject

Return a new object using a custom implementation.

operator&&

Return the first dom::Value that is not truthy, or the last one.

operator+

Addition operators

operator||

Return the first dom::Value that is truthy, or the last one.

stringOrNull

Return a non‐empty string, or a null.

swap

swap overloads

toString

toString overloads

operator==

Equality operators

operator!=

Return the result of comparing two strings.

operator<=>

Three‐way comparison operators

Concepts

Name

Description

HasLazyObjectMap

Determine if T can be converted to dom::Value.

HasLazyObjectMapWithContext

Concept to determine if a type can be mapped to a dom::LazyObjectImpl with a user‐provided conversion.

HasLazyObjectMapWithoutContext

Concept to determine if a type can be mapped to a dom::LazyObjectImpl with a user‐provided conversion.

HasStandaloneValueFrom

Determine if ` T` can be converted to dom::Value without a context.

HasValueFrom

Determine if T can be converted to dom::Value.

HasValueFromWithContext

Concept to determine if a type can be converted to a dom::Value with a user‐provided conversion.

HasValueFromWithoutContext

Concept to determine if a type can be converted to a dom::Value with a user‐provided conversion.

StringLikeTy

Satisfied if StringTy is convertible to String but not a String.

function_traits_convertible_to_value

has_function_args_for_default_function_impl

has_function_traits

has_function_traits_for_default_function_impl

has_invoke_expected_result_convertible_to_dom_value

has_invoke_result_convertible_to_dom_value

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}
        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

Name

Description

stringify

Stringify a value as JSON

Stringify a value as JSON

Synopsis

Declared in <mrdocs/Dom/Value.hpp>

std::string
stringify(dom::Value const& value);

Description

This function serialized a 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

Name

Description

value

The value to stringify.

An array of values

Synopsis

Declared in <mrdocs/Dom/Array.hpp>

class Array final

Types

Name

Description

iterator

A constant iterator referencing an element in an Array.

const_iterator

A constant iterator referencing an element in an Array.

const_pointer

A pointer to an element.

const_reference

A reference to an element.

difference_type

A signed integral type.

impl_type

The implementation type.

pointer

A pointer to an element.

reference

A reference to an element.

size_type

An unsigned integral type used for indexes and sizes.

storage_type

The type of storage used by the default implementation.

value_type

The type of an element.

Member Functions

Name

Description

Array [constructor]

Constructor.

~Array [destructor]

Destructor.

operator=

Assignment.

at

Return the i‐th element.

back

Return the last element.

begin

Return an iterator to the beginning of the range of elements.

emplace_back

Append an element to the end of the array.

empty

Return true if the array is empty.

end

Return an iterator to the end of the range of elements.

front

Return the first element.

get

Return the i‐th element, without bounds checking.

impl

Return the implementation used by this object.

push_back

Append an element to the end of the array.

set

Set the i‐th element, without bounds checking.

size

Return the number of elements in the array.

swap

Swap two arrays.

type_key

Return the type key of the implementation.

Friends

Name

Description

mrdocs::dom::newArray

Return a new array using a custom implementation.

mrdocs::dom::toString

Return a diagnostic string.

mrdocs::dom::operator<=>

Compare two arrays for precedence.

mrdocs::dom::operator==

Compare two arrays for equality.

mrdocs::dom::swap

Swap two arrays.

mrdocs::dom::operator+

mrdocs::dom::operator+

mrdocs::dom::operator+

Concatenate two arrays.

Non-Member Functions

Name

Description

LazyArray

Return a new dom::Array based on a FromValue context

LazyArray

Return a new dom::Array based on a lazy array implementation.

TransformArray

Return a new dom::Array based on a transformed lazy array implementation.

::mrdocs::getParents

Return a list of the parent symbols of the specified Info.

::mrdocs::helpers::and_fn

"and" helper function

::mrdocs::helpers::eq_fn

"eq" helper function

::mrdocs::helpers::ne_fn

"ne" helper function

::mrdocs::helpers::not_fn

"not" helper function

::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>

using const_iterator = iterator;

A pointer to an element.

Synopsis

Declared in <mrdocs/Dom/Array.hpp>

using const_pointer = value_type const*;

A reference to an element.

Synopsis

Declared in <mrdocs/Dom/Array.hpp>

using const_reference = value_type;

Description

This is a read‐only reference to an element.

A signed integral type.

Synopsis

Declared in <mrdocs/Dom/Array.hpp>

using difference_type = std::ptrdiff_t;

The implementation type.

Synopsis

Declared in <mrdocs/Dom/Array.hpp>

using impl_type = std::shared_ptr<ArrayImpl>;

A pointer to an element.

Synopsis

Declared in <mrdocs/Dom/Array.hpp>

using pointer = value_type const*;

A reference to an element.

Synopsis

Declared in <mrdocs/Dom/Array.hpp>

using reference = 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>

using size_type = std::size_t;

The type of storage used by the default implementation.

Synopsis

Declared in <mrdocs/Dom/Array.hpp>

using storage_type = std::vector<value_type>;

The type of an element.

Synopsis

Declared in <mrdocs/Dom/Array.hpp>

using value_type = Value;

A constant iterator referencing an element in an Array.

Synopsis

Declared in <mrdocs/Dom/Array.hpp>

class iterator;

Friends

Name

Description

mrdocs::dom::operator+

mrdocs::dom::Array

An array of values

Constructor.

Synopses

Declared in <mrdocs/Dom/Array.hpp>

Constructor.

Array();

Constructor.

Array(Array const& other);

Constructor.

Array(Array&& other);

Constructor.

Array(impl_type impl) noexcept;

Constructor.

Array(storage_type elements);

Parameters

Name

Description

elements

The elements to acquire.

Constructor.

Synopsis

Declared in <mrdocs/Dom/Array.hpp>

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>

Array(Array const& other);

Description

The newly constructed array will contain copies of the scalars in other, and references to its structured data.

Parameters

Name

Description

other

The object to copy construct from

Constructor.

Synopsis

Declared in <mrdocs/Dom/Array.hpp>

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

Name

Description

other

The object to move construct from

Constructor.

Synopsis

Declared in <mrdocs/Dom/Array.hpp>

Array(impl_type impl) noexcept;

Description

This constructs an array from an existing implementation, with shared ownership. The pointer cannot not be null.

Parameters

Name

Description

impl

The object to construct from

Constructor.

Synopsis

Declared in <mrdocs/Dom/Array.hpp>

Array(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

Name

Description

elements

The elements to acquire.

Destructor.

Synopsis

Declared in <mrdocs/Dom/Array.hpp>

~Array();

Assignment.

Synopses

Declared in <mrdocs/Dom/Array.hpp>

Assignment.

constexpr
Array&
operator=(Array const& other) = default;

Assignment.

Array&
operator=(Array&& other);

Assignment.

Synopsis

Declared in <mrdocs/Dom/Array.hpp>

constexpr
Array&
operator=(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

Name

Description

other

The object to copy assign from

Assignment.

Synopsis

Declared in <mrdocs/Dom/Array.hpp>

Array&
operator=(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

Name

Description

other

The object to move assign from

Return the i‐th element.

Synopsis

Declared in <mrdocs/Dom/Array.hpp>

value_type
at(size_type i) const;

Exceptions

Name

Thrown on

Exception

i >= size()

Return Value

the i‐th element.

Parameters

Name

Description

i

An unsigned integral type used for indexes and sizes.

Return the last element.

Synopsis

Declared in <mrdocs/Dom/Array.hpp>

value_type
back() const;

Exceptions

Name

Thrown on

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>

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>

template<class... Args>
void
emplace_back(Args...&&... args);

Description

If the array is read‐only, an exception is thrown.

Parameters

Name

Description

args

Arguments forwarded to the constructor of Value.

Return true if the array is empty.

Synopsis

Declared in <mrdocs/Dom/Array.hpp>

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>

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>

value_type
front() const;

Exceptions

Name

Thrown on

Exception

empty()

Return Value

the first element.

Return the i‐th element, without bounds checking.

Synopsis

Declared in <mrdocs/Dom/Array.hpp>

value_type
get(size_type i) const;

Return Value

the i‐th element, without bounds checking.

Parameters

Name

Description

i

The zero‐based index of the element.

Return the implementation used by this object.

Synopsis

Declared in <mrdocs/Dom/Array.hpp>

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>

void
push_back(value_type value);

Description

If the array is read‐only, an exception is thrown.

Parameters

Name

Description

value

The type of an element.

Set the i‐th element, without bounds checking.

Synopsis

Declared in <mrdocs/Dom/Array.hpp>

void
set(
    size_type i,
    Value v);

Parameters

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>

size_type
size() const noexcept;

Return Value

the number of elements in the array.

Swap two arrays.

Synopsis

Declared in <mrdocs/Dom/Array.hpp>

void
swap(Array& other) noexcept;

Parameters

Name

Description

other

An array of values

Return the type key of the implementation.

Synopsis

Declared in <mrdocs/Dom/Array.hpp>

char const*
type_key() const noexcept;

Return Value

the type key of the implementation.

Abstract array interface.

Synopsis

Declared in <mrdocs/Dom/Array.hpp>

class ArrayImpl;

Types

Name

Description

size_type

An unsigned integral type used for indexes and sizes.

value_type

The type of an element.

Member Functions

Name

Description

~ArrayImpl [destructor] [virtual]

Destructor.

emplace_back [virtual]

Append an element to the end of the array.

get [virtual]

Return the i‐th element, without bounds checking.

set [virtual]

Set the i‐th element, without bounds checking.

size [virtual]

Return the number of elements in the array.

type_key [virtual]

Return the type key of the implementation.

Derived Classes

Name

Description

DefaultArrayImpl

The default array implementation.

LazyArrayImpl

Lazy array implementation

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>

using size_type = Array::size_type;

The type of an element.

Synopsis

Declared in <mrdocs/Dom/Array.hpp>

using value_type = Array::value_type;

Destructor.

Synopsis

Declared in <mrdocs/Dom/Array.hpp>

virtual
~ArrayImpl();

Append an element to the end of the array.

Synopsis

Declared in <mrdocs/Dom/Array.hpp>

virtual
void
emplace_back(value_type value);

Description

The default implementation throws an exception, making the array effectively read‐only.

Parameters

Name

Description

value

The type of an element.

Return the i‐th element, without bounds checking.

Synopsis

Declared in <mrdocs/Dom/Array.hpp>

virtual
value_type
get(size_type i) const = 0;

Return Value

the i‐th element, without bounds checking.

Parameters

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>

virtual
void
set(
    size_type,
    Value);

Return the number of elements in the array.

Synopsis

Declared in <mrdocs/Dom/Array.hpp>

virtual
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>

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>

class DefaultArrayImpl
    : public ArrayImpl

Base Classes

Name

Description

ArrayImpl

Abstract array interface.

Types

Name

Description

size_type

An unsigned integral type used for indexes and sizes.

storage_type

The type of storage used by the default implementation.

value_type

The type of an element.

Member Functions

Name

Description

DefaultArrayImpl [constructor]

Constructors

emplace_back [virtual]

get [virtual]

set [virtual]

Set the i‐th element, without bounds checking.

size [virtual]

type_key [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>

using size_type = Array::size_type;

The type of storage used by the default implementation.

Synopsis

Declared in <mrdocs/Dom/Array.hpp>

using storage_type = Array::storage_type;

The type of an element.

Synopsis

Declared in <mrdocs/Dom/Array.hpp>

using value_type = Array::value_type;

Constructors

Synopses

Declared in <mrdocs/Dom/Array.hpp>

Default constructor

Construct from storage_type

explicit
DefaultArrayImpl(storage_type elements) noexcept;

Default constructor

Synopsis

Declared in <mrdocs/Dom/Array.hpp>

DefaultArrayImpl();

Construct from storage_type

Synopsis

Declared in <mrdocs/Dom/Array.hpp>

explicit
DefaultArrayImpl(storage_type elements) noexcept;

Parameters

Name

Description

elements

The object to construct from

Synopsis

Declared in <mrdocs/Dom/Array.hpp>

virtual
void
emplace_back(value_type value) override;

Synopsis

Declared in <mrdocs/Dom/Array.hpp>

virtual
value_type
get(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.

virtual
void
set(
    size_type,
    Value);
virtual
void
set(
    size_type i,
    Value v) override;

Set the i‐th element, without bounds checking.

Synopsis

Declared in <mrdocs/Dom/Array.hpp>

virtual
void
set(
    size_type,
    Value);

Synopsis

Declared in <mrdocs/Dom/Array.hpp>

virtual
void
set(
    size_type i,
    Value v) override;

Synopsis

Declared in <mrdocs/Dom/Array.hpp>

virtual
size_type
size() const override;

Synopsis

Declared in <mrdocs/Dom/Array.hpp>

virtual
char const*
type_key() const noexcept override;

Synopsis

Declared in <mrdocs/Dom/Function.hpp>

template<class F>
class DefaultFunctionImpl
    : public FunctionImpl

Base Classes

Name

Description

FunctionImpl

Types

Member Functions

Name

Description

DefaultFunctionImpl [constructor]

Construct from U

call [virtual]

type_key [virtual]

Synopsis

Declared in <mrdocs/Dom/Function.hpp>

using args_type = function_traits<F>::args_type;

Synopsis

Declared in <mrdocs/Dom/Function.hpp>

using return_type = function_traits<F>::return_type;

Construct from U

Synopsis

Declared in <mrdocs/Dom/Function.hpp>

template<class U>
DefaultFunctionImpl(U&& u);

Parameters

Name

Description

u

The object to move construct from

Synopsis

Declared in <mrdocs/Dom/Function.hpp>

virtual
Expected<Value>
call(Array const& args) const override;

Synopsis

Declared in <mrdocs/Dom/Function.hpp>

virtual
char const*
type_key() const noexcept override;

The default Object implementation.

Synopsis

Declared in <mrdocs/Dom/Object.hpp>

class DefaultObjectImpl
    : public ObjectImpl

Base Classes

Name

Description

ObjectImpl

Abstract object interface.

Types

Name

Description

reference

A reference to an element.

storage_type

The type of storage used by the default implementation.

Member Functions

Name

Description

DefaultObjectImpl [constructor]

Constructors

exists [virtual]

get [virtual]

Return the value for the specified key, or null.

set [virtual]

Insert or set the given key/value pair.

size [virtual]

type_key [virtual]

Return the type key of the implementation.

visit [virtual]

Invoke the visitor for each key/value pair.

Constructors

Synopses

Declared in <mrdocs/Dom/Object.hpp>

Default constructor

DefaultObjectImpl() noexcept;

Construct from storage_type

explicit
DefaultObjectImpl(storage_type entries) noexcept;

Default constructor

Synopsis

Declared in <mrdocs/Dom/Object.hpp>

DefaultObjectImpl() noexcept;

Construct from storage_type

Synopsis

Declared in <mrdocs/Dom/Object.hpp>

explicit
DefaultObjectImpl(storage_type entries) noexcept;

Parameters

Name

Description

entries

The object to construct from

Synopsis

Declared in <mrdocs/Dom/Object.hpp>

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>

virtual
Value
get(std::string_view) const override;

Return the value for the specified key, or null.

virtual
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

Name

Description

key

The key.

Synopsis

Declared in <mrdocs/Dom/Object.hpp>

virtual
Value
get(std::string_view) const override;

Return the value for the specified key, or null.

Synopsis

Declared in <mrdocs/Dom/Object.hpp>

virtual
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

Name

Description

key

The key.

Insert or set the given key/value pair.

Synopses

Declared in <mrdocs/Dom/Object.hpp>

virtual
void
set(
    String,
    Value) override;

Insert or set the given key/value pair.

virtual
void
set(
    String key,
    Value value) = 0;

Parameters

Name

Description

key

The key.

value

The value to set.

Synopsis

Declared in <mrdocs/Dom/Object.hpp>

virtual
void
set(
    String,
    Value) override;

Insert or set the given key/value pair.

Synopsis

Declared in <mrdocs/Dom/Object.hpp>

virtual
void
set(
    String key,
    Value value) = 0;

Parameters

Name

Description

key

The key.

value

The value to set.

Synopsis

Declared in <mrdocs/Dom/Object.hpp>

virtual
std::size_t
size() const override;

Invoke the visitor for each key/value pair.

Synopses

Declared in <mrdocs/Dom/Object.hpp>

virtual
bool
visit(std::function<bool(String, Value)>) const override;

Invoke the visitor for each key/value pair.

virtual
bool
visit(std::function<bool(String, Value)> fn) const = 0;

Return Value

true if the visitor returned true for all elements, otherwise false.

Parameters

Name

Description

fn

The visitor function.

Synopsis

Declared in <mrdocs/Dom/Object.hpp>

virtual
bool
visit(std::function<bool(String, Value)>) const override;

Invoke the visitor for each key/value pair.

Synopsis

Declared in <mrdocs/Dom/Object.hpp>

virtual
bool
visit(std::function<bool(String, 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

Name

Description

fn

The visitor function.

Synopsis

Declared in <mrdocs/Dom/Function.hpp>

class Function;

Member Functions

Name

Description

Function [constructor]

Constructor.

~Function [destructor]

Destructor.

operator=

Assignment.

call

Invoke the function.

impl

Return the implementation used by this object.

operator()

Invoke the function.

swap

Swap two objects.

try_invoke

Invoke the function.

type_key

Return the type key.

Friends

Name

Description

mrdocs::dom::newFunction

Return a diagnostic string.

mrdocs::dom::swap

Swap two objects.

Constructor.

Synopses

Declared in <mrdocs/Dom/Function.hpp>

Constructor.

Function() noexcept;

Constructor.

Function(Function const& other) noexcept;

Constructor.

Function(Function&& other) noexcept;

Construct from F

template<class F>
requires function_traits_convertible_to_value<std::decay_t<F>>
Function(F const& f);

Constructor.

Synopsis

Declared in <mrdocs/Dom/Function.hpp>

Function() noexcept;

Description

A default‐constructed function has this equivalent implementation:

Value f()
{
    return nullptr;
}

Constructor.

Synopsis

Declared in <mrdocs/Dom/Function.hpp>

Function(Function const& other) noexcept;

Description

The newly constructed object acquires shared ownership of the function.

Parameters

Name

Description

other

The object to copy construct from

Constructor.

Synopsis

Declared in <mrdocs/Dom/Function.hpp>

Function(Function&& other) noexcept;

Description

Ownership of the function is tranferred. The moved‐from object behaves as if default constructed.

Parameters

Name

Description

other

The object to move construct from

Construct from F

Synopsis

Declared in <mrdocs/Dom/Function.hpp>

template<class F>
requires function_traits_convertible_to_value<std::decay_t<F>>
Function(F const& f);

Parameters

Name

Description

f

The object to copy construct from

Destructor.

Synopsis

Declared in <mrdocs/Dom/Function.hpp>

~Function();

Assignment.

Synopses

Declared in <mrdocs/Dom/Function.hpp>

Assignment.

Function&
operator=(Function const& other) noexcept;

Assignment.

Function&
operator=(Function&& other) noexcept;

Assignment.

Synopsis

Declared in <mrdocs/Dom/Function.hpp>

Function&
operator=(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

Name

Description

other

The object to copy assign from

Assignment.

Synopsis

Declared in <mrdocs/Dom/Function.hpp>

Function&
operator=(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

Name

Description

other

The object to move assign from

Invoke the function.

Synopsis

Declared in <mrdocs/Dom/Function.hpp>

Expected<Value>
call(Array const& args) const;

Return Value

A container holding an error or a value.

Parameters

Name

Description

args

An array of values

Return the implementation used by this object.

Synopsis

Declared in <mrdocs/Dom/Function.hpp>

impl_type const&
impl() const noexcept;

Return Value

the implementation used by this object.

Invoke the function.

Synopsis

Declared in <mrdocs/Dom/Function.hpp>

template<class... Args>
Value
operator()(Args...&&... args) const;

Return Value

The return value of the function.

Parameters

Name

Description

args

The arguments to the function.

Swap two objects.

Synopsis

Declared in <mrdocs/Dom/Function.hpp>

void
swap(Function& other) noexcept;

Parameters

Name

Description

other

The other object.

Invoke the function.

Synopsis

Declared in <mrdocs/Dom/Function.hpp>

template<class... Args>
Expected<Value>
try_invoke(Args...&&... args) const;

Return Value

A container holding an error or a value.

Parameters

Name

Description

args

The arguments to the function.

Return the type key.

Synopsis

Declared in <mrdocs/Dom/Function.hpp>

char const*
type_key() const noexcept;

Return Value

the type key.

Synopsis

Declared in <mrdocs/Dom/Function.hpp>

class FunctionImpl;

Member Functions

Name

Description

~FunctionImpl [destructor] [virtual]

Destructor.

call [virtual]

Invoke the function.

type_key [virtual]

Return the type key of the implementation.

Derived Classes

Name

Description

DefaultFunctionImpl

VariadicFunctionImpl

Destructor.

Synopsis

Declared in <mrdocs/Dom/Function.hpp>

constexpr
virtual
~FunctionImpl() = default;

Invoke the function.

Synopsis

Declared in <mrdocs/Dom/Function.hpp>

virtual
Expected<Value>
call(Array const& args) const = 0;

Return Value

A container holding an error or a value.

Parameters

Name

Description

args

An array of values

Return the type key of the implementation.

Synopsis

Declared in <mrdocs/Dom/Function.hpp>

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>

class LazyArrayImpl
    : public ArrayImpl

Base Classes

Name

Description

ArrayImpl

Abstract array interface.

Types

Name

Description

size_type

An unsigned integral type used for indexes and sizes.

value_type

The type of an element.

Member Functions

Name

Description

LazyArrayImpl [constructor]

Constructors

~LazyArrayImpl [destructor] [virtual]

Destructor

emplace_back [virtual]

Append an element to the end of the array.

get [virtual]

Return the i‐th element, without bounds checking.

set [virtual]

Set the i‐th element, without bounds checking.

size [virtual]

type_key [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

explicit
LazyArrayImpl(R const& arr);
explicit
LazyArrayImpl(
    R const& arr,
    Context const& ctx);

Construct from R

Synopsis

Declared in <mrdocs/Dom/LazyArray.hpp>

explicit
LazyArrayImpl(R const& arr);

Parameters

Name

Description

arr

The object to copy construct from

Synopsis

Declared in <mrdocs/Dom/LazyArray.hpp>

explicit
LazyArrayImpl(
    R const& arr,
    Context const& ctx);

Destructor

Synopsis

Declared in <mrdocs/Dom/LazyArray.hpp>

virtual
~LazyArrayImpl() override = default;

Return the i‐th element, without bounds checking.

Synopses

Declared in <mrdocs/Dom/Array.hpp>

virtual
dom::Value
get(std::size_t i) const override;

Return the i‐th element, without bounds checking.

virtual
value_type
get(size_type i) const = 0;

Synopsis

Declared in <mrdocs/Dom/LazyArray.hpp>

virtual
dom::Value
get(std::size_t i) const override;

Return the i‐th element, without bounds checking.

Synopsis

Declared in <mrdocs/Dom/Array.hpp>

virtual
value_type
get(size_type i) const = 0;

Return Value

the i‐th element, without bounds checking.

Parameters

Name

Description

i

An unsigned integral type used for indexes and sizes.

Synopsis

Declared in <mrdocs/Dom/LazyArray.hpp>

virtual
std::size_t
size() const noexcept override;

Return the type key of the implementation.

Synopsis

Declared in <mrdocs/Dom/LazyArray.hpp>

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>

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 ArrayImpl

Base Classes

Name

Description

ArrayImpl

Abstract array interface.

Types

Name

Description

size_type

An unsigned integral type used for indexes and sizes.

value_type

The type of an element.

Member Functions

Name

Description

emplace_back [virtual]

Append an element to the end of the array.

get [virtual]

Return the i‐th element, without bounds checking.

set [virtual]

Set the i‐th element, without bounds checking.

size [virtual]

Return the number of elements in the array.

type_key [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>

class LazyObjectImpl
    : public ObjectImpl

Base Classes

Name

Description

ObjectImpl

Abstract object interface.

Types

Name

Description

reference

A reference to an element.

storage_type

The type of storage used by the default implementation.

Member Functions

Name

Description

LazyObjectImpl [constructor]

Constructors

~LazyObjectImpl [destructor] [virtual]

Destructor

exists [virtual]

Determine if a key exists.

get [virtual]

Return the value for the specified key, or null.

set [virtual]

Insert or set the given key/value pair.

size [virtual]

Return the number of properties in the object.

type_key [virtual]

Return the type key of the implementation.

visit [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 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

explicit
LazyObjectImpl(T const& obj)
requires HasLazyObjectMapWithoutContext<T>;
explicit
LazyObjectImpl(
    T const& obj,
    Context const& context)
requires HasLazyObjectMapWithContext<T, Context>;

Construct from T

Synopsis

Declared in <mrdocs/Dom/LazyObject.hpp>

explicit
LazyObjectImpl(T const& obj)
requires HasLazyObjectMapWithoutContext<T>;

Parameters

Name

Description

obj

The object to copy construct from

Synopsis

Declared in <mrdocs/Dom/LazyObject.hpp>

explicit
LazyObjectImpl(
    T const& obj,
    Context const& context)
requires HasLazyObjectMapWithContext<T, Context>;

Destructor

Synopsis

Declared in <mrdocs/Dom/LazyObject.hpp>

virtual
~LazyObjectImpl() override = default;

Determine if a key exists.

Synopsis

Declared in <mrdocs/Dom/LazyObject.hpp>

virtual
bool
exists(std::string_view key) const override;

Return Value

true if the key exists, otherwise false.

Parameters

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>

virtual
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

Name

Description

key

The key.

Insert or set the given key/value pair.

Synopsis

Declared in <mrdocs/Dom/LazyObject.hpp>

virtual
void
set(
    String key,
    Value value) override;

Parameters

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>

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>

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>

virtual
bool
visit(std::function<bool(String, 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

Name

Description

fn

The visitor function.

Lazy object implementation.

Synopsis

Declared in <mrdocs/Dom/LazyObject.hpp>

template<
    class T,
    class Context = /* implementation-defined */>
requires HasLazyObjectMap<T, Context>
class LazyObjectImpl
    : public ObjectImpl

Base Classes

Name

Description

ObjectImpl

Abstract object interface.

Types

Name

Description

reference

A reference to an element.

storage_type

The type of storage used by the default implementation.

Member Functions

Name

Description

exists [virtual]

Determine if a key exists.

get [virtual]

Return the value for the specified key, or null.

set [virtual]

Insert or set the given key/value pair.

size [virtual]

Return the number of properties in the object.

type_key [virtual]

Return the type key of the implementation.

visit [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 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>

struct LazyObjectMapTag;

Non-Member Functions

Name

Description

::mrdocs::tag_invoke

Map a EnumConstantSymbol to a dom::Object.

::mrdocs::tag_invoke

Map a FriendInfo to a dom::Object.

::mrdocs::tag_invoke

Map a NamespaceAliasSymbol to a dom::Object.

::mrdocs::tag_invoke

Map the DocComment to a dom::Object.

::mrdocs::tag_invoke

Map the Polymorphic Symbol to a dom::Object.

::mrdocs::tag_invoke

Map a RecordTranche to a dom::Object.

::mrdocs::tag_invoke

Map a OverloadsSymbol to a dom::Object.

::mrdocs::tag_invoke

Map a TypedefSymbol to a dom::Object.

::mrdocs::tag_invoke

Map the Symbol to a dom::Object.

::mrdocs::tag_invoke

Map a NamespaceTranche to a dom::Object.

::mrdocs::tag_invoke

Map a ConceptSymbol to a dom::Object.

::mrdocs::tag_invoke

Map a EnumSymbol to a dom::Object.

::mrdocs::tag_invoke

Map a VariableSymbol to a dom::Object.

::mrdocs::tag_invoke

Map a UsingSymbol to a dom::Object.

::mrdocs::tag_invoke

Map a RecordSymbol to a dom::Object.

::mrdocs::tag_invoke

Map a FunctionSymbol to a dom::Object.

::mrdocs::tag_invoke

Map a GuideSymbol to a dom::Object.

::mrdocs::tag_invoke

Map a NamespaceSymbol to a dom::Object.

::mrdocs::tag_invoke

Map a RecordInterface to a dom::Object.

::mrdocs::doc::tag_invoke

Map the Highlight to a dom::Object.

::mrdocs::doc::tag_invoke

Map the Code to a dom::Object.

::mrdocs::doc::tag_invoke

Map the Strong to a dom::Object.

::mrdocs::doc::tag_invoke

Map the TableCell to a dom::Object.

::mrdocs::doc::tag_invoke

Map the Precondition to a dom::Object.

::mrdocs::doc::tag_invoke

Map the Brief to a dom::Object.

::mrdocs::doc::tag_invoke

Map the Inline to a dom::Object.

::mrdocs::doc::tag_invoke

Map the Emph to a dom::Object.

::mrdocs::doc::tag_invoke

Map the LineBreak to a dom::Object.

::mrdocs::doc::tag_invoke

Map the See to a dom::Object.

::mrdocs::doc::tag_invoke

Map the Text to a dom::Object.

::mrdocs::doc::tag_invoke

Map the QuoteBlock to a dom::Object.

::mrdocs::doc::tag_invoke

Map the SoftBreak to a dom::Object.

::mrdocs::doc::tag_invoke

Map the Reference to a dom::Object.

::mrdocs::doc::tag_invoke

Map the ListItem to a dom::Object.

::mrdocs::doc::tag_invoke

Map the FootnoteReference to a dom::Object.

::mrdocs::doc::tag_invoke

Map the FootnoteDefinition to a dom::Object.

::mrdocs::doc::tag_invoke

Map the Paragraph to a dom::Object.

::mrdocs::doc::tag_invoke

Map the Block to a dom::Object.

::mrdocs::doc::tag_invoke

Map the Image to a dom::Object.

::mrdocs::doc::tag_invoke

Map the Throws to a dom::Object.

::mrdocs::doc::tag_invoke

Map the Postcondition to a dom::Object.

::mrdocs::doc::tag_invoke

Map the Strikethrough to a dom::Object.

::mrdocs::doc::tag_invoke

Map the Param to a dom::Object.

::mrdocs::doc::tag_invoke

Map the Brief to a dom::Object.

::mrdocs::doc::tag_invoke

Map the DefinitionListItem to a dom::Object.

::mrdocs::doc::tag_invoke

Map the Admonition to a dom::Object.

::mrdocs::doc::tag_invoke

Map the TParam to a dom::Object.

::mrdocs::doc::tag_invoke

Map the Math to a dom::Object.

::mrdocs::doc::tag_invoke

Map the Brief to a dom::Object.

::mrdocs::doc::tag_invoke

Map the UnorderedList to a dom::Object.

::mrdocs::doc::tag_invoke

Map the CopyDetails to a dom::Object.

::mrdocs::doc::tag_invoke

Map the Heading to a dom::Object.

::mrdocs::doc::tag_invoke

Map the TableRow to a dom::Object.

::mrdocs::doc::tag_invoke

Map the Link to a dom::Object.

::mrdocs::doc::tag_invoke

Map the Returns to a dom::Object.

::mrdocs::doc::tag_invoke

Map the Superscript to a dom::Object.

::mrdocs::doc::tag_invoke

Map the Polymorphic Block to a dom::Object.

::mrdocs::doc::tag_invoke

Map the UnorderedTable to a dom::Object.

::mrdocs::doc::tag_invoke

Map the Subscript to a dom::Object.

::mrdocs::doc::tag_invoke

Map the Code to a dom::Object.

Description

This tag type is used by the class dom::LazyObjectImpl to select overloads of tag_invoke.

Note

This type is empty; it has no members.

See Also

Synopsis

Declared in <mrdocs/Dom/Object.hpp>

class Object final

Types

Name

Description

value_type

The type of an element.

const_pointer

A pointer to an element.

const_reference

A reference to an element.

difference_type

A signed integral type.

impl_type

The implementation type.

pointer

A pointer to an element.

reference

A reference to an element.

size_type

An unsigned integral type used for indexes and sizes.

storage_type

The type of storage used by the default implementation.

Member Functions

Name

Description

Object [constructor]

Constructor.

~Object [destructor]

Destructor.

operator=

Assignment.

at

Return the element at a given index.

empty

Return true if the container is empty.

exists

Return true if a key exists.

get

Return the element with the specified key

impl

Return the implementation used by this object.

set

Set or replace the value for a given key.

size

Return the number of elements.

swap

Swap two objects.

type_key

Return the type key.

visit

Invoke the visitor for each key/value pair

Friends

Name

Description

mrdocs::dom::toString

Return a diagnostic string.

mrdocs::dom::operator<=>

Compare two objects for precedence.

mrdocs::dom::operator==

Compare two objects for equality.

mrdocs::dom::swap

Swap two objects.

Non-Member Functions

Name

Description

LazyObject

Return a new dom::Object based on a transformed lazy array implementation.

LazyObject

Return a new dom::Object based on a lazy object implementation.

newObject

Return a new object using a custom implementation.

::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

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>

using const_pointer = pointer;

A reference to an element.

Synopsis

Declared in <mrdocs/Dom/Object.hpp>

using const_reference = reference;

Description

This is a read‐only reference to an element.

A signed integral type.

Synopsis

Declared in <mrdocs/Dom/Object.hpp>

using difference_type = std::ptrdiff_t;

The implementation type.

Synopsis

Declared in <mrdocs/Dom/Object.hpp>

using impl_type = std::shared_ptr<ObjectImpl>;

A pointer to an element.

Synopsis

Declared in <mrdocs/Dom/Object.hpp>

using pointer = value_type const*;

A reference to an element.

Synopsis

Declared in <mrdocs/Dom/Object.hpp>

using reference = 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>

using size_type = std::size_t;

The type of storage used by the default implementation.

Synopsis

Declared in <mrdocs/Dom/Object.hpp>

using storage_type = std::vector<value_type>;

The type of an element.

Synopsis

Declared in <mrdocs/Dom/Object.hpp>

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.

Object();

Constructor.

Object(Object const& other) noexcept;

Constructor.

Object(Object&& other);

Constructor.

explicit
Object(impl_type impl) noexcept;

Constructor.

explicit
Object(storage_type list);

Parameters

Name

Description

list

The initial list of values.

Constructor.

Synopsis

Declared in <mrdocs/Dom/Object.hpp>

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>

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

Name

Description

other

The object to copy construct from

Constructor.

Synopsis

Declared in <mrdocs/Dom/Object.hpp>

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

Name

Description

other

The object to move construct from

Constructor.

Synopsis

Declared in <mrdocs/Dom/Object.hpp>

explicit
Object(impl_type impl) noexcept;

Description

This constructs an object from an existing implementation, with shared ownership. The pointer cannot not be null.

Parameters

Name

Description

impl

The object to construct from

Constructor.

Synopsis

Declared in <mrdocs/Dom/Object.hpp>

explicit
Object(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

Name

Description

list

The initial list of values.

Destructor.

Synopsis

Declared in <mrdocs/Dom/Object.hpp>

constexpr
~Object() = default;

Assignment.

Synopses

Declared in <mrdocs/Dom/Object.hpp>

Assignment.

Object&
operator=(Object const& other) noexcept;

Assignment.

Object&
operator=(Object&& other);

Assignment.

Synopsis

Declared in <mrdocs/Dom/Object.hpp>

Object&
operator=(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

Name

Description

other

The object to copy assign from

Assignment.

Synopsis

Declared in <mrdocs/Dom/Object.hpp>

Object&
operator=(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

Name

Description

other

The object to move assign from

Return the element at a given index.

Synopsis

Declared in <mrdocs/Dom/Object.hpp>

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

Name

Description

i

The index.

Return true if the container is empty.

Synopsis

Declared in <mrdocs/Dom/Object.hpp>

bool
empty() const;

Return Value

true if the container is empty.

Return true if a key exists.

Synopsis

Declared in <mrdocs/Dom/Object.hpp>

bool
exists(std::string_view key) const;

Return Value

true if the key exists, otherwise false.

Parameters

Name

Description

key

The key to check for existence.

Return the element with the specified key

Synopsis

Declared in <mrdocs/Dom/Object.hpp>

Value
get(std::string_view key) const;

Return Value

The value for the specified key, or null if the key does not exist.

Parameters

Name

Description

key

The key.

Return the implementation used by this object.

Synopsis

Declared in <mrdocs/Dom/Object.hpp>

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>

void
set(
    String key,
    Value value) const;

Description

This function inserts a new key or changes the value for the existing key if it is already present.

Parameters

Name

Description

key

The key.

value

The value to set.

Return the number of elements.

Synopsis

Declared in <mrdocs/Dom/Object.hpp>

std::size_t
size() const;

Return Value

the number of elements.

Swap two objects.

Synopsis

Declared in <mrdocs/Dom/Object.hpp>

void
swap(Object& other) noexcept;

Parameters

Name

Description

other

A container of key and value pairs.

Return the type key.

Synopsis

Declared in <mrdocs/Dom/Object.hpp>

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

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;

Invoke the visitor for each key/value pair

template<class F>
requires std::invocable<F, String, Value> &&
        mrdocs::detail::isExpected<std::invoke_result_t<F, String, Value>>
Expected<void, std::invoke_result_t<F, String, Value>::error_type>
visit(F&& fn) const;

Invoke the visitor for each key/value pair

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;

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

Name

Description

fn

The visitor function.

Invoke the visitor for each key/value pair

Synopsis

Declared in <mrdocs/Dom/Object.hpp>

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

Name

Description

fn

The visitor function.

Invoke the visitor for each key/value pair

Synopsis

Declared in <mrdocs/Dom/Object.hpp>

template<class F>
requires std::invocable<F, String, Value> &&
        mrdocs::detail::isExpected<std::invoke_result_t<F, String, Value>>
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

Name

Description

fn

The visitor function.

Invoke the visitor for each key/value pair

Synopsis

Declared in <mrdocs/Dom/Object.hpp>

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

Name

Description

fn

The visitor function.

Abstract object interface.

Synopsis

Declared in <mrdocs/Dom/Object.hpp>

class ObjectImpl;

Types

Name

Description

reference

A reference to an element.

storage_type

The type of storage used by the default implementation.

Member Functions

Name

Description

~ObjectImpl [destructor] [virtual]

Destructor.

exists [virtual]

Determine if a key exists.

get [virtual]

Return the value for the specified key, or null.

set [virtual]

Insert or set the given key/value pair.

size [virtual]

Return the number of properties in the object.

type_key [virtual]

Return the type key of the implementation.

visit [virtual]

Invoke the visitor for each key/value pair.

Derived Classes

Name

Description

DefaultObjectImpl

The default Object implementation.

LazyObjectImpl

Lazy object implementation.

LazyObjectImpl

Lazy object implementation.

Description

This interface is used by Object types.

A reference to an element.

Synopsis

Declared in <mrdocs/Dom/Object.hpp>

using 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>

using storage_type = Object::storage_type;

Destructor.

Synopsis

Declared in <mrdocs/Dom/Object.hpp>

virtual
~ObjectImpl();

Determine if a key exists.

Synopsis

Declared in <mrdocs/Dom/Object.hpp>

virtual
bool
exists(std::string_view key) const;

Return Value

true if the key exists, otherwise false.

Parameters

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>

virtual
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

Name

Description

key

The key.

Insert or set the given key/value pair.

Synopsis

Declared in <mrdocs/Dom/Object.hpp>

virtual
void
set(
    String key,
    Value value) = 0;

Parameters

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>

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>

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>

virtual
bool
visit(std::function<bool(String, 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

Name

Description

fn

The visitor function.

Synopsis

Declared in <mrdocs/Dom/String.hpp>

class String final

Member Functions

Name

Description

String [constructor]

Constructor.

~String [destructor]

Destructor.

operator=

Assignment.

c_str

Return the string.

data

Return the string.

empty

Return true if the string is empty.

get

Return the string.

size

Return the size.

str

Return the string.

swap

Swap two strings.

operator std::string_view

Return the string.

Friends

Name

Description

mrdocs::dom::operator+

mrdocs::dom::operator+

mrdocs::dom::operator+

Concatenate two strings.

mrdocs::dom::operator<=>

Return the result of comparing two strings.

mrdocs::dom::operator!=

Return the result of comparing two strings.

mrdocs::dom::operator==

Return the result of comparing two strings.

mrdocs::dom::operator<=>

Return the result of comparing two strings.

mrdocs::dom::operator!=

Return the result of comparing two strings.

mrdocs::dom::operator==

Return the result of comparing two strings.

mrdocs::dom::swap

Swap two strings.

Non-Member Functions

Name

Description

::mrdocs::toString

Return the name of the SymbolKind as a string.

::mrdocs::toString

Convert ExplicitInfo to a string.

::mrdocs::toString

Convert NoexceptInfo to a string.

::mrdocs::doc::toString

Return the name of the Admonish as a string.

::mrdocs::doc::toString

Return the name of the Parts as a string.

::mrdocs::doc::toString

Return the name of the ParamDirection as a string.

Constructor.

Synopses

Declared in <mrdocs/Dom/String.hpp>

Constructor.

constexpr
String() noexcept = default;

Constructor.

String(String const& other) noexcept;

Constructor.

constexpr
String(String&& other) noexcept;

Constructor.

String(std::string_view sv);

Constructor.

template<StringLikeTy StringLike>
String(StringLike const& s);

Constructor.

template<std::size_t N>
constexpr
String(char const(& str)[]);

Constructor.

String(
    char const* str,
    std::size_t len);

Parameters

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>

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>

String(String const& other) noexcept;

Description

The newly constructed string acquries shared ownership of the string referenced by other.

Parameters

Name

Description

other

The object to copy construct from

Constructor.

Synopsis

Declared in <mrdocs/Dom/String.hpp>

constexpr
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

Name

Description

other

The object to move construct from

Constructor.

Synopsis

Declared in <mrdocs/Dom/String.hpp>

String(std::string_view sv);

Description

This function constructs a new string from the buffer pointed to by sv.

Parameters

Name

Description

sv

The string to construct with. A copy of this string is made.

Constructor.

Synopsis

Declared in <mrdocs/Dom/String.hpp>

template<StringLikeTy StringLike>
String(StringLike const& s);

Description

This function constructs a new string from s, which must be convertible to std::string_view.

Parameters

Name

Description

s

The string to construct with. A copy of this string is made.

Constructor.

Synopsis

Declared in <mrdocs/Dom/String.hpp>

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

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>

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

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>

~String() noexcept;

Assignment.

Synopses

Declared in <mrdocs/Dom/String.hpp>

Assignment.

String&
operator=(String const& other) noexcept;

Assignment.

String&
operator=(String&& other) noexcept;

Assignment.

Synopsis

Declared in <mrdocs/Dom/String.hpp>

String&
operator=(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

Name

Description

other

The object to copy assign from

Assignment.

Synopsis

Declared in <mrdocs/Dom/String.hpp>

String&
operator=(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

Name

Description

other

The object to move assign from

Return the string.

Synopsis

Declared in <mrdocs/Dom/String.hpp>

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>

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>

bool
empty() const noexcept;

Return Value

true if the string is empty.

Return the string.

Synopsis

Declared in <mrdocs/Dom/String.hpp>

std::string_view
get() const noexcept;

Return Value

the string.

Return the size.

Synopsis

Declared in <mrdocs/Dom/String.hpp>

std::size_t
size() const noexcept;

Return Value

the size.

Return the string.

Synopsis

Declared in <mrdocs/Dom/String.hpp>

std::string
str() const noexcept;

Return Value

the string.

Swap two strings.

Synopsis

Declared in <mrdocs/Dom/String.hpp>

constexpr
void
swap(String& other) noexcept;

Parameters

Name

Description

other

The other string.

Return the string.

Synopsis

Declared in <mrdocs/Dom/String.hpp>

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>

class Value;

Member Functions

Name

Description

Value [constructor]

Constructors

~Value [destructor]

Destructor

operator=

Assignment operators

empty

Return if an Array or Object is empty.

exists

Return true if a key exists.

get

get overloads

getArray

Return the array.

getBool

Return the underlying boolean value.

getFunction

Return the function.

getInteger

Return the underlying integer value.

getObject

Return the object.

getString

Return the underlying string value.

isArray

Return true if this is an array.

isBoolean

Return true if this is a boolean.

isFunction

Return true if this is a function.

isInteger

Return true if this is an integer.

isNull

Return true if this is null.

isObject

Return true if this is an object.

isSafeString

Return true if this is a safe string.

isString

Return true if this is a string.

isTruthy

Determine if a value is truthy

isUndefined

Return true if this is undefined.

kind

Return the type of value contained.

lookup

Lookup a sequence of keys.

operator()

Invoke the function.

set

Set or replace the value for a given key.

size

Return if an Array or Object is empty.

swap

Swap two values.

type_key

Return the type key of the value.

operator std::string

Return the string.

operator bool

Determine if a value is truthy

Data Members

Name

arr_ [variant member]

b_ [variant member]

fn_ [variant member]

i_ [variant member]

obj_ [variant member]

str_ [variant member]

Friends

Name

Description

mrdocs::dom::toString

Return value as a string.

mrdocs::dom::operator&&

mrdocs::dom::operator&&

mrdocs::dom::operator&&

Return the first dom::Value that is not truthy, or the last one.

mrdocs::dom::operator||

mrdocs::dom::operator||

mrdocs::dom::operator||

Return the first dom::Value that is truthy, or the last one.

mrdocs::dom::operator+

mrdocs::dom::operator+

mrdocs::dom::operator+

Add or concatenate two values.

mrdocs::dom::operator<=>

Three‐way comparison operator

mrdocs::dom::operator<=>

Three‐way comparison operator

mrdocs::dom::operator<=>

Compare two values for inequality.

mrdocs::dom::operator==

Compare two values for equality.

mrdocs::dom::swap

Swap two values.

mrdocs::safeString

Create a wrapper for a safe string.

mrdocs::dom::Object

A container of key and value pairs.

mrdocs::dom::Array

An array of values

Non-Member Functions

Name

Description

ValueFrom

Convert an object of type T to dom::Value with a context

ValueFrom

Convert an object of type T to dom::Value.

stringOrNull

Return a non‐empty string, or a null.

stringOrNull

Return a non‐empty string, or a null.

stringOrNull

Return a non‐empty string, or a null.

JSON::stringify

Stringify a value as JSON

::mrdocs::isEmpty

Determine if a value is empty

::mrdocs::helpers::detag_fn

"detag" helper function

::mrdocs::helpers::increment_fn

"increment" helper function

::mrdocs::helpers::or_fn

"or" helper function

::mrdocs::helpers::relativize_fn

"relativize" helper function

::mrdocs::helpers::select_fn

"select" helper function

Constructors

Synopses

Declared in <mrdocs/Dom/Value.hpp>

Default constructor

Value() noexcept;

Copy constructor

Value(Value const& other);

Move constructor

Value(Value&& other) noexcept;

Construct from Array

Value(Array arr) noexcept;

Construct from Function

Value(Function fn) noexcept;

Construct from Kind

Value(dom::Kind kind) noexcept;

Construct from Object

Value(Object obj) noexcept;

Construct from String

Value(String str) noexcept;

Construct from int64_t

Value(int64_t v) noexcept;

Construct from nullptr_t

Value(std::nullptr_t v) noexcept;

Construct from storage_type

Construct from char

Value(char c) noexcept;

Construct from char

Value(char const* s);

Construct from T

template<std::floating_point T>
Value(T v) noexcept;

Construct from T

template<std::integral T>
requires (!std::same_as<T, bool>) &&
        (!std::same_as<T, char>)
Value(T v) noexcept;

Construct from Boolean

template<std::convertible_to<String> Boolean>
Value(Boolean const& b);

Construct from F

template<class F>
requires function_traits_convertible_to_value<F>
Value(F const& f);

Construct from Optional

template<class T>
requires std::constructible_from<Value, T>
Value(Optional<T> const& opt);

Construct from optional

template<class T>
requires std::constructible_from<Value, T>
Value(std::optional<T> const& opt);

Construct from char

template<std::size_t N>
Value(char const(& sz)[]);

Default constructor

Synopsis

Declared in <mrdocs/Dom/Value.hpp>

Value() noexcept;

Copy constructor

Synopsis

Declared in <mrdocs/Dom/Value.hpp>

Value(Value const& other);

Parameters

Name

Description

other

The object to copy construct from

Move constructor

Synopsis

Declared in <mrdocs/Dom/Value.hpp>

Value(Value&& other) noexcept;

Parameters

Name

Description

other

The object to move construct from

Construct from Array

Synopsis

Declared in <mrdocs/Dom/Value.hpp>

Value(Array arr) noexcept;

Parameters

Name

Description

arr

The object to construct from

Construct from Function

Synopsis

Declared in <mrdocs/Dom/Value.hpp>

Value(Function fn) noexcept;

Parameters

Name

Description

fn

The object to construct from

Construct from Kind

Synopsis

Declared in <mrdocs/Dom/Value.hpp>

Value(dom::Kind kind) noexcept;

Parameters

Name

Description

kind

The object to construct from

Construct from Object

Synopsis

Declared in <mrdocs/Dom/Value.hpp>

Value(Object obj) noexcept;

Parameters

Name

Description

obj

The object to construct from

Construct from String

Synopsis

Declared in <mrdocs/Dom/Value.hpp>

Value(String str) noexcept;

Parameters

Name

Description

str

The object to construct from

Construct from int64_t

Synopsis

Declared in <mrdocs/Dom/Value.hpp>

Value(int64_t v) noexcept;

Parameters

Name

Description

v

The object to construct from

Construct from nullptr_t

Synopsis

Declared in <mrdocs/Dom/Value.hpp>

Value(std::nullptr_t v) noexcept;

Parameters

Name

Description

v

The object to construct from

Construct from storage_type

Synopsis

Declared in <mrdocs/Dom/Value.hpp>

Value(Array::storage_type elements);

Parameters

Name

Description

elements

The object to construct from

Construct from char

Synopsis

Declared in <mrdocs/Dom/Value.hpp>

Value(char c) noexcept;

Parameters

Name

Description

c

The value to construct from

Construct from char

Synopsis

Declared in <mrdocs/Dom/Value.hpp>

Value(char const* s);

Parameters

Name

Description

s

The value to construct from

Construct from T

Synopsis

Declared in <mrdocs/Dom/Value.hpp>

template<std::floating_point T>
Value(T v) noexcept;

Parameters

Name

Description

v

The object to construct from

Construct from T

Synopsis

Declared in <mrdocs/Dom/Value.hpp>

template<std::integral T>
requires (!std::same_as<T, bool>) &&
        (!std::same_as<T, char>)
Value(T v) noexcept;

Parameters

Name

Description

v

The object to construct from

Construct from Boolean

Synopsis

Declared in <mrdocs/Dom/Value.hpp>

template<std::convertible_to<String> Boolean>
Value(Boolean const& b);

Parameters

Name

Description

b

The object to copy construct from

Construct from F

Synopsis

Declared in <mrdocs/Dom/Value.hpp>

template<class F>
requires function_traits_convertible_to_value<F>
Value(F const& f);

Parameters

Name

Description

f

The object to copy construct from

Construct from Optional

Synopsis

Declared in <mrdocs/Dom/Value.hpp>

template<class T>
requires std::constructible_from<Value, T>
Value(Optional<T> const& opt);

Parameters

Name

Description

opt

The object to copy construct from

Construct from optional

Synopsis

Declared in <mrdocs/Dom/Value.hpp>

template<class T>
requires std::constructible_from<Value, T>
Value(std::optional<T> const& opt);

Parameters

Name

Description

opt

The object to copy construct from

Construct from char

Synopsis

Declared in <mrdocs/Dom/Value.hpp>

template<std::size_t N>
Value(char const(& sz)[]);

Parameters

Name

Description

sz

The value to construct from

Destructor

Synopsis

Declared in <mrdocs/Dom/Value.hpp>

~Value();

Assignment operators

Synopses

Declared in <mrdocs/Dom/Value.hpp>

Copy assignment operator

Value&
operator=(Value const& other);

Move assignment operator

Value&
operator=(Value&& other) noexcept;

Copy assignment operator

Synopsis

Declared in <mrdocs/Dom/Value.hpp>

Value&
operator=(Value const& other);

Return Value

Reference to the current object

Parameters

Name

Description

other

The object to copy assign from

Move assignment operator

Synopsis

Declared in <mrdocs/Dom/Value.hpp>

Value&
operator=(Value&& other) noexcept;

Return Value

Reference to the current object

Parameters

Name

Description

other

The object to move assign from

Return if an Array or Object is empty.

Synopsis

Declared in <mrdocs/Dom/Value.hpp>

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>

bool
exists(std::string_view key) const;

Return Value

true if the key exists, otherwise false.

Parameters

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.

dom::Value
get(std::size_t i) const;

Return the element for a given key.

dom::Value
get(std::string_view key) const;

Return the element at a given index or key.

dom::Value
get(dom::Value const& i) const;
template<std::convertible_to<std::string_view> S>
dom::Value
get(S const& key) const;

Return Value

  • The value at the specified index, or a Value of type

  • The value for the specified key, or a Value of type Kind::Undefined if the key does not exist.

Parameters

Name

Description

i

The index.

key

The key.

Return the element at a given index.

Synopsis

Declared in <mrdocs/Dom/Value.hpp>

dom::Value
get(std::size_t i) const;

Return Value

The value at the specified index, or a Value of type

Parameters

Name

Description

i

The index.

Return the element for a given key.

Synopsis

Declared in <mrdocs/Dom/Value.hpp>

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 Kind::Undefined is returned.

Return Value

The value for the specified key, or a Value of type Kind::Undefined if the key does not exist.

Parameters

Name

Description

key

The key.

Return the element at a given index or key.

Synopsis

Declared in <mrdocs/Dom/Value.hpp>

dom::Value
get(dom::Value const& i) const;

Return Value

the element at a given index or key.

Parameters

Name

Description

i

A variant container for any kind of Dom value.

Synopsis

Declared in <mrdocs/Dom/Value.hpp>

template<std::convertible_to<std::string_view> S>
dom::Value
get(S const& key) const;

Return the array.

Synopses

Declared in <mrdocs/Dom/Value.hpp>

Return the array.

Array const&
getArray() const;

Exceptions

Name

Thrown on

Exception

! isArray()

Return the array.

Synopsis

Declared in <mrdocs/Dom/Value.hpp>

Array const&
getArray() const;

Exceptions

Name

Thrown on

Exception

! isArray()

Return Value

the array.

Synopsis

Declared in <mrdocs/Dom/Value.hpp>

Array&
getArray();

Return Value

An array of values

Return the underlying boolean value.

Synopsis

Declared in <mrdocs/Dom/Value.hpp>

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>

Function const&
getFunction() const;

Exceptions

Name

Thrown on

Exception

! isFunction()

Return Value

the function.

Return the underlying integer value.

Synopsis

Declared in <mrdocs/Dom/Value.hpp>

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>

Object const&
getObject() const;

Exceptions

Name

Thrown on

Exception

! isObject()

Return Value

the object.

Return the underlying string value.

Synopsis

Declared in <mrdocs/Dom/Value.hpp>

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>

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>

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>

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>

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>

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>

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>

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>

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>

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>

bool
isUndefined() const noexcept;

Return Value

true if this is undefined.

Return the type of value contained.

Synopsis

Declared in <mrdocs/Dom/Value.hpp>

dom::Kind
kind() const noexcept;

Return Value

the type of value contained.

Lookup a sequence of keys.

Synopsis

Declared in <mrdocs/Dom/Value.hpp>

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 Kind::Undefined if any key is not found.

Parameters

Name

Description

keys

The dot‐separated sequence of keys.

Invoke the function.

Synopsis

Declared in <mrdocs/Dom/Value.hpp>

template<class... Args>
Value
operator()(Args...&&... args) 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

Another instance of the object

Parameters

Name

Description

args

The arguments to the function.

Set or replace the value for a given key.

Synopsis

Declared in <mrdocs/Dom/Value.hpp>

void
set(
    String const& key,
    Value const& value);

Parameters

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>

std::size_t
size() const;

Return Value

if an Array or Object is empty.

Swap two values.

Synopsis

Declared in <mrdocs/Dom/Value.hpp>

void
swap(Value& other) noexcept;

Parameters

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>

char const*
type_key() const noexcept;

Return Value

the type key of the value.

Return the string.

Synopsis

Declared in <mrdocs/Dom/Value.hpp>

explicit
operator std::string() const noexcept;

Return Value

the string.

Determine if a value is truthy

Synopsis

Declared in <mrdocs/Dom/Value.hpp>

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>

Array arr_;

Synopsis

Declared in <mrdocs/Dom/Value.hpp>

bool b_ = {false};

Synopsis

Declared in <mrdocs/Dom/Value.hpp>

Function fn_;

Synopsis

Declared in <mrdocs/Dom/Value.hpp>

int64_t i_;

Synopsis

Declared in <mrdocs/Dom/Value.hpp>

Object obj_;

Synopsis

Declared in <mrdocs/Dom/Value.hpp>

String str_;

Customization point tag.

Synopsis

Declared in <mrdocs/Dom/Value.hpp>

struct ValueFromTag;

Non-Member Functions

Name

Description

::mrdocs::tag_invoke

Map the EnumConstantSymbol to a dom::Value object.

::mrdocs::tag_invoke

Map the FriendInfo to a dom::Value object.

::mrdocs::tag_invoke

Map the UsingSymbol to a dom::Value object.

::mrdocs::tag_invoke

Return the UsingClass as a dom::Value string.

::mrdocs::tag_invoke

Return the SymbolKind from a dom::Value string.

::mrdocs::tag_invoke

Return the AccessKind as a dom::Value string.

::mrdocs::tag_invoke

Map the ConceptSymbol to a dom::Value object.

::mrdocs::tag_invoke

Map the NamespaceAliasSymbol to a dom::Value object.

::mrdocs::tag_invoke

Map the NamespaceTranche to a dom::Value object.

::mrdocs::tag_invoke

Return the Symbol as a dom::Value object.

::mrdocs::tag_invoke

Map the VariableSymbol to a dom::Value object.

::mrdocs::tag_invoke

Map the TypedefSymbol to a dom::Value object.

::mrdocs::tag_invoke

Convert SymbolID to dom::Value object in the DOM using Corpus

::mrdocs::tag_invoke

Convert SymbolID pointers to dom::Value or null.

::mrdocs::tag_invoke

Map the GuideSymbol to a dom::Value object.

::mrdocs::tag_invoke

Return the ConstexprKind as a dom::Value string.

::mrdocs::tag_invoke

Map the OverloadsSymbol to a dom::Value object.

::mrdocs::tag_invoke

Return the FunctionClass from a dom::Value string.

::mrdocs::tag_invoke

Return the Param as a dom::Value object.

::mrdocs::tag_invoke

Return the DocComment as a dom::Value object.

::mrdocs::tag_invoke

Return the ReferenceKind as a dom::Value string.

::mrdocs::tag_invoke

Map the RecordSymbol to a dom::Value object.

::mrdocs::tag_invoke

Return the ExplicitInfo as a dom::Value string.

::mrdocs::tag_invoke

Return the SymbolKind from a dom::Value string.

::mrdocs::tag_invoke

Return the StorageClassKind as a dom::Value string.

::mrdocs::tag_invoke

Map the RecordInterface to a dom::Value object.

::mrdocs::tag_invoke

Map the NamespaceSymbol to a dom::Value object.

::mrdocs::tag_invoke

Map the FunctionSymbol to a dom::Value object.

::mrdocs::tag_invoke

Convert SymbolID to dom::Value string in the DOM using toBase16

::mrdocs::tag_invoke

Map the EnumSymbol to a dom::Value object.

::mrdocs::tag_invoke

Map the RecordTranche to a dom::Value object.

::mrdocs::doc::tag_invoke

Return the Strong as a dom::Value object.

::mrdocs::doc::tag_invoke

Return the FootnoteReference as a dom::Value object.

::mrdocs::doc::tag_invoke

Return the Parts from a dom::Value string.

::mrdocs::doc::tag_invoke

Return the Text as a dom::Value object.

::mrdocs::doc::tag_invoke

Return the Heading as a dom::Value object.

::mrdocs::doc::tag_invoke

Return the Code as a dom::Value object.

::mrdocs::doc::tag_invoke

Return the UnorderedTable as a dom::Value object.

::mrdocs::doc::tag_invoke

Return the Brief as a dom::Value object.

::mrdocs::doc::tag_invoke

Return the Postcondition as a dom::Value object.

::mrdocs::doc::tag_invoke

Return the Link as a dom::Value object.

::mrdocs::doc::tag_invoke

Return the Math as a dom::Value object.

::mrdocs::doc::tag_invoke

Return the See as a dom::Value object.

::mrdocs::doc::tag_invoke

Return the Admonish from a dom::Value string.

::mrdocs::doc::tag_invoke

Return the Admonition as a dom::Value object.

::mrdocs::doc::tag_invoke

Return the Superscript as a dom::Value object.

::mrdocs::doc::tag_invoke

Return the Precondition as a dom::Value object.

::mrdocs::doc::tag_invoke

Return the Inline as a dom::Value object.

::mrdocs::doc::tag_invoke

Return the LineBreak as a dom::Value object.

::mrdocs::doc::tag_invoke

Return the Emph as a dom::Value object.

::mrdocs::doc::tag_invoke

Return the Code as a dom::Value object.

::mrdocs::doc::tag_invoke

Return the Block as a dom::Value object.

::mrdocs::doc::tag_invoke

Return the FootnoteDefinition as a dom::Value object.

::mrdocs::doc::tag_invoke

Return the Returns as a dom::Value object.

::mrdocs::doc::tag_invoke

Return the Paragraph as a dom::Value object.

::mrdocs::doc::tag_invoke

Return the TableRow as a dom::Value object.

::mrdocs::doc::tag_invoke

Return the TParam as a dom::Value object.

::mrdocs::doc::tag_invoke

Map the Polymorphic Block as a dom::Value object.

::mrdocs::doc::tag_invoke

Return the ListItem as a dom::Value object.

::mrdocs::doc::tag_invoke

Return the Brief as a dom::Value object.

::mrdocs::doc::tag_invoke

Return the Param as a dom::Value object.

::mrdocs::doc::tag_invoke

Return the CopyDetails as a dom::Value object.

::mrdocs::doc::tag_invoke

Return the Reference as a dom::Value object.

::mrdocs::doc::tag_invoke

Map the Polymorphic Inline as a dom::Value object.

::mrdocs::doc::tag_invoke

Return the DefinitionListItem as a dom::Value object.

::mrdocs::doc::tag_invoke

Return the SoftBreak as a dom::Value object.

::mrdocs::doc::tag_invoke

Return the TableCell as a dom::Value object.

::mrdocs::doc::tag_invoke

Return the Highlight as a dom::Value object.

::mrdocs::doc::tag_invoke

Return the QuoteBlock as a dom::Value object.

::mrdocs::doc::tag_invoke

Return the UnorderedList as a dom::Value object.

::mrdocs::doc::tag_invoke

Return the Subscript as a dom::Value object.

::mrdocs::doc::tag_invoke

Return the Image as a dom::Value object.

::mrdocs::doc::tag_invoke

Return the Strikethrough as a dom::Value object.

::mrdocs::doc::tag_invoke

Return the Brief as a dom::Value object.

::mrdocs::doc::tag_invoke

Return the ParamDirection from a dom::Value string.

::mrdocs::doc::tag_invoke

Return the Throws as a dom::Value object.

Description

This tag type is used by the function dom::ValueFrom to select overloads of tag_invoke.

Note

This type is empty; it has no members.

See Also

Synopsis

Declared in <mrdocs/Dom/Function.hpp>

template<class F>
class VariadicFunctionImpl
    : public FunctionImpl

Base Classes

Name

Description

FunctionImpl

Types

Member Functions

Name

Description

VariadicFunctionImpl [constructor]

Construct from U

call [virtual]

type_key [virtual]

Synopsis

Declared in <mrdocs/Dom/Function.hpp>

using args_type = function_traits<F>::args_type;

Synopsis

Declared in <mrdocs/Dom/Function.hpp>

using return_type = function_traits<F>::return_type;

Construct from U

Synopsis

Declared in <mrdocs/Dom/Function.hpp>

template<class U>
VariadicFunctionImpl(U&& u);

Parameters

Name

Description

u

The object to move construct from

Synopsis

Declared in <mrdocs/Dom/Function.hpp>

virtual
Expected<Value>
call(Array const& args) const override;

Synopsis

Declared in <mrdocs/Dom/Function.hpp>

virtual
char const*
type_key() const noexcept override;

Synopsis

Declared in <mrdocs/Dom/Function.hpp>

template<typename F>
struct function_traits;

Derived Classes

Name

Description

function_traits

Synopsis

Declared in <mrdocs/Dom/Function.hpp>

template<typename F>
requires requires { &F::operator(); }
struct function_traits<F>
    : function_traits<decltype(&F::operator)>

Base Classes

Synopsis

Declared in <mrdocs/Dom/Function.hpp>

template<
    typename R,
    typename... Args>
struct function_traits<R(*)(Args...)>;

Types

Synopsis

Declared in <mrdocs/Dom/Function.hpp>

using args_type = std::tuple<Args...>;

Synopsis

Declared in <mrdocs/Dom/Function.hpp>

using return_type = R;

Synopsis

Declared in <mrdocs/Dom/Function.hpp>

template<
    typename R,
    typename... Args>
struct function_traits<R(Args...)>;

Types

Synopsis

Declared in <mrdocs/Dom/Function.hpp>

using args_type = std::tuple<Args...>;

Synopsis

Declared in <mrdocs/Dom/Function.hpp>

using return_type = R;

Synopsis

Declared in <mrdocs/Dom/Function.hpp>

template<
    typename C,
    typename R,
    typename... Args>
struct function_traits<R const volatile(C::*)(Args...)>;

Types

Synopsis

Declared in <mrdocs/Dom/Function.hpp>

using args_type = std::tuple<Args...>;

Synopsis

Declared in <mrdocs/Dom/Function.hpp>

using return_type = R;

The type of data in a Value.

Synopsis

Declared in <mrdocs/Dom/Kind.hpp>

enum class Kind : int;

Members

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 dom::Array based on a lazy array implementation.

template<std::ranges::random_access_range T>
requires HasStandaloneValueFrom<std::ranges::range_value_t<T>>
Array
LazyArray(T const& arr);

Return a new dom::Array based on a FromValue context

template<
    std::ranges::random_access_range T,
    class Context>
requires HasValueFrom<std::ranges::range_value_t<T>, Context>
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 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

Name

Description

arr

The underlying range of elements.

ctx

The context used to convert each element to a dom::Value.

Return a new dom::Array based on a lazy array implementation.

Synopsis

Declared in <mrdocs/Dom/LazyArray.hpp>

template<std::ranges::random_access_range T>
requires HasStandaloneValueFrom<std::ranges::range_value_t<T>>
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

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>

template<
    std::ranges::random_access_range T,
    class Context>
requires HasValueFrom<std::ranges::range_value_t<T>, Context>
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

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.

template<HasLazyObjectMapWithoutContext T>
Object
LazyObject(T const& obj);

Return a new dom::Object based on a transformed lazy array implementation.

template<
    class T,
    class Context>
requires HasLazyObjectMap<T, Context>
Object
LazyObject(
    T const& arr,
    Context const& context);

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

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>

template<HasLazyObjectMapWithoutContext T>
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

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>

template<
    class T,
    class Context>
requires HasLazyObjectMap<T, Context>
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

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>

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>>>
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

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 dom::Value.

template<class T>
requires HasStandaloneValueFrom<T>
Value
ValueFrom(T&& t);

Convert an object of type T to dom::Value.

template<class T>
requires HasStandaloneValueFrom<T>
void
ValueFrom(
    T&& t,
    Value& v);

Convert an object of type T to dom::Value with a context

template<
    class T,
    class Context>
requires HasValueFrom<T, Context>
Value
ValueFrom(
    T&& t,
    Context const& ctx);

Convert an object of type T to dom::Value.

template<
    class Context,
    HasValueFrom<Context> T>
void
ValueFrom(
    T&& t,
    Context const& ctx,
    Value& v);

Return Value

dom::Value out parameter.

Template Parameters

Name

Description

T

The type of the object to convert.

Context

The type of context passed to the conversion function.

Parameters

Name

Description

t

The object to convert.

v

dom::Value out parameter.

ctx

Context passed to the conversion function.

See Also

Synopsis

Declared in <mrdocs/Dom/Value.hpp>

template<class T>
requires HasStandaloneValueFrom<T>
Value
ValueFrom(T&& t);

Description

This function attempts to convert an object of type T to 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:

void tag_invoke( ValueFromTag, dom::Value&, T );

Exception Safety

Strong guarantee.

Return Value

dom::Value out parameter.

Template Parameters

Name

Description

T

The type of the object to convert.

Parameters

Name

Description

t

The object to convert.

See Also

Synopsis

Declared in <mrdocs/Dom/Value.hpp>

template<class T>
requires HasStandaloneValueFrom<T>
void
ValueFrom(
    T&& t,
    Value& v);

Description

This function attempts to convert an object of type T to 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:

void tag_invoke( ValueFromTag, dom::Value&, T );

Exception Safety

Strong guarantee.

Template Parameters

Name

Description

T

The type of the object to convert.

Parameters

Name

Description

t

The object to convert.

v

dom::Value out parameter.

See Also

Synopsis

Declared in <mrdocs/Dom/Value.hpp>

template<
    class T,
    class Context>
requires HasValueFrom<T, Context>
Value
ValueFrom(
    T&& t,
    Context const& ctx);

Description

This function attempts to convert an object of type T to 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:

void tag_invoke( ValueFromTag, dom::Value&, T );

Exception Safety

Strong guarantee.

Return Value

dom::Value out parameter.

Template Parameters

Name

Description

T

The type of the object to convert.

Parameters

Name

Description

t

The object to convert.

ctx

Context passed to the conversion function.

See Also

Synopsis

Declared in <mrdocs/Dom/Value.hpp>

template<
    class Context,
    HasValueFrom<Context> T>
void
ValueFrom(
    T&& t,
    Context const& ctx,
    Value& v);

Description

This function attempts to convert an object of type T to 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:

void tag_invoke( ValueFromTag, dom::Value&, T,  Context const& );

or

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

Name

Description

T

The type of the object to convert.

Context

The type of context passed to the conversion function.

Parameters

Name

Description

t

The object to convert.

ctx

Context passed to the conversion function.

v

dom::Value out parameter.

See Also

Synopsis

Declared in <mrdocs/Dom/Function.hpp>

template<class F>
Function
makeInvocable(F&& f);

Synopsis

Declared in <mrdocs/Dom/Function.hpp>

template<class F>
requires std::invocable<F, Array const&>
Function
makeVariadicInvocable(F&& f);

Return a new array using a custom implementation.

Synopsis

Declared in <mrdocs/Dom/Array.hpp>

template<
    class T,
    class... Args>
requires std::derived_from<T, ArrayImpl>
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

Name

Description

T

The type of the custom implementation. This must be derived from ArrayImpl.

Args

The types of the arguments.

Parameters

Name

Description

args

Arguments forwarded to the constructor of T.

Return a diagnostic string.

Synopsis

Declared in <mrdocs/Dom/Function.hpp>

template<
    class T,
    class... Args>
requires std::derived_from<T, FunctionImpl>
Function
newFunction(Args...&&... args);

Description

Return a new function using a custom implementation.

Return Value

a diagnostic string.

Parameters

Name

Description

args

The arguments to the function.

Return a new object using a custom implementation.

Synopsis

Declared in <mrdocs/Dom/Object.hpp>

template<
    class T,
    class... Args>
requires std::derived_from<T, ObjectImpl>
Object
newObject(Args...&&... args);

Return Value

A new object using the specified implementation.

Template Parameters

Name

Description

T

The type of the custom implementation. This must be derived from ObjectImpl.

Args

The types of the arguments.

Parameters

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.

dom::Value
operator&&(
    Value const& lhs,
    Value const& rhs);
template<std::convertible_to<Value> S>
auto
operator&&(
    S const& lhs,
    Value const& rhs) noexcept;
template<std::convertible_to<Value> S>
auto
operator&&(
    Value const& lhs,
    S const& rhs) noexcept;

Return the first dom::Value that is not truthy, or the last one.

Synopsis

Declared in <mrdocs/Dom/Value.hpp>

dom::Value
operator&&(
    Value const& lhs,
    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

Name

Description

lhs

The left operand

rhs

The right operand

Synopsis

Declared in <mrdocs/Dom/Value.hpp>

template<std::convertible_to<Value> S>
auto
operator&&(
    S const& lhs,
    Value const& rhs) noexcept;

Synopsis

Declared in <mrdocs/Dom/Value.hpp>

template<std::convertible_to<Value> S>
auto
operator&&(
    Value const& lhs,
    S const& rhs) noexcept;

Addition operators

Synopses

Declared in <mrdocs/Dom/Array.hpp>

iterator
operator+(
    difference_type n,
    iterator it) noexcept;

[» more...]

Concatenate two arrays.

Array
operator+(
    Array const& lhs,
    Array const& rhs);

Concatenate two strings.

auto
operator+(
    String const& lhs,
    String const& rhs) noexcept;

Add or concatenate two values.

dom::Value
operator+(
    Value const& lhs,
    Value const& rhs);
template<std::convertible_to<Array> S>
auto
operator+(
    Array const& lhs,
    S const& rhs) noexcept;
template<std::convertible_to<Array> S>
auto
operator+(
    S const& lhs,
    Array const& rhs) noexcept;
template<StringLikeTy S>
auto
operator+(
    S const& lhs,
    String const& rhs) noexcept;
template<std::convertible_to<Value> S>
auto
operator+(
    S const& lhs,
    Value const& rhs) noexcept;
template<StringLikeTy S>
auto
operator+(
    String const& lhs,
    S const& rhs) noexcept;
template<std::convertible_to<Value> S>
auto
operator+(
    Value const& lhs,
    S const& rhs) noexcept;

Return Value

The concatenated string.

Parameters

Name

Description

lhs

The left‐hand side string.

rhs

The right‐hand side string.

Concatenate two arrays.

Synopsis

Declared in <mrdocs/Dom/Array.hpp>

Array
operator+(
    Array const& lhs,
    Array const& rhs);

Return Value

An array of values

Parameters

Name

Description

lhs

The left operand

rhs

The right operand

Concatenate two strings.

Synopsis

Declared in <mrdocs/Dom/String.hpp>

auto
operator+(
    String const& lhs,
    String const& rhs) noexcept;

Return Value

The concatenated string.

Parameters

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>

dom::Value
operator+(
    Value const& lhs,
    Value const& rhs);

Return Value

A variant container for any kind of Dom value.

Parameters

Name

Description

lhs

The left operand

rhs

The right operand

Synopsis

Declared in <mrdocs/Dom/Array.hpp>

template<std::convertible_to<Array> S>
auto
operator+(
    Array const& lhs,
    S const& rhs) noexcept;

Synopsis

Declared in <mrdocs/Dom/Array.hpp>

template<std::convertible_to<Array> S>
auto
operator+(
    S const& lhs,
    Array const& rhs) noexcept;

Synopsis

Declared in <mrdocs/Dom/String.hpp>

template<StringLikeTy S>
auto
operator+(
    S const& lhs,
    String const& rhs) noexcept;

Synopsis

Declared in <mrdocs/Dom/Value.hpp>

template<std::convertible_to<Value> S>
auto
operator+(
    S const& lhs,
    Value const& rhs) noexcept;

Synopsis

Declared in <mrdocs/Dom/String.hpp>

template<StringLikeTy S>
auto
operator+(
    String const& lhs,
    S const& rhs) noexcept;

Synopsis

Declared in <mrdocs/Dom/Value.hpp>

template<std::convertible_to<Value> S>
auto
operator+(
    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.

dom::Value
operator||(
    Value const& lhs,
    Value const& rhs);
template<std::convertible_to<Value> S>
auto
operator||(
    S const& lhs,
    Value const& rhs) noexcept;
template<std::convertible_to<Value> S>
auto
operator||(
    Value const& lhs,
    S const& rhs) noexcept;

Return the first dom::Value that is truthy, or the last one.

Synopsis

Declared in <mrdocs/Dom/Value.hpp>

dom::Value
operator||(
    Value const& lhs,
    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

Name

Description

lhs

The left operand

rhs

The right operand

Synopsis

Declared in <mrdocs/Dom/Value.hpp>

template<std::convertible_to<Value> S>
auto
operator||(
    S const& lhs,
    Value const& rhs) noexcept;

Synopsis

Declared in <mrdocs/Dom/Value.hpp>

template<std::convertible_to<Value> S>
auto
operator||(
    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.

Value
stringOrNull(std::string_view s);

Return a non‐empty string, or a null.

Return a non‐empty string, or a null.

Value
stringOrNull(std::string const& s);

Parameters

Name

Description

s

The string to check.

Return a non‐empty string, or a null.

Synopsis

Declared in <mrdocs/Dom/Value.hpp>

Value
stringOrNull(std::string_view s);

Return Value

a non‐empty string, or a null.

Parameters

Name

Description

s

The string to check.

Return a non‐empty string, or a null.

Synopsis

Declared in <mrdocs/Dom/Value.hpp>

Value
stringOrNull(Optional<std::string> s);

Return Value

a non‐empty string, or a null.

Parameters

Name

Description

s

The string to check.

Return a non‐empty string, or a null.

Synopsis

Declared in <mrdocs/Dom/Value.hpp>

Value
stringOrNull(std::string const& s);

Return Value

a non‐empty string, or a null.

Parameters

Name

Description

s

The string to check.

swap overloads

Synopses

Declared in <mrdocs/Dom/Array.hpp>

Swap two arrays.

void
swap(
    Array& lhs,
    Array& rhs) noexcept;

Swap two objects.

void
swap(
    Function& lhs,
    Function& rhs) noexcept;

Swap two objects.

void
swap(
    Object& lhs,
    Object& rhs) noexcept;

Swap two strings.

constexpr
void
swap(
    String& lhs,
    String& rhs) noexcept;

Swap two values.

void
swap(
    Value& v0,
    Value& v1) noexcept;

Parameters

Name

Description

lhs

The first object.

rhs

The second object.

Swap two arrays.

Synopsis

Declared in <mrdocs/Dom/Array.hpp>

void
swap(
    Array& lhs,
    Array& rhs) noexcept;

Parameters

Name

Description

lhs

An array of values

rhs

An array of values

Swap two objects.

Synopsis

Declared in <mrdocs/Dom/Function.hpp>

void
swap(
    Function& lhs,
    Function& rhs) noexcept;

Parameters

Name

Description

lhs

The first object.

rhs

The second object.

Swap two objects.

Synopsis

Declared in <mrdocs/Dom/Object.hpp>

void
swap(
    Object& lhs,
    Object& rhs) noexcept;

Parameters

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>

constexpr
void
swap(
    String& lhs,
    String& rhs) noexcept;

Parameters

Name

Description

lhs

The first string.

rhs

The second string.

Swap two values.

Synopsis

Declared in <mrdocs/Dom/Value.hpp>

void
swap(
    Value& v0,
    Value& v1) noexcept;

Parameters

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.

std::string
toString(Array const&);

Return a diagnostic string.

std::string
toString(Object const&);

Return value as a string.

std::string
toString(Value const& value);

Return a diagnostic string.

Synopsis

Declared in <mrdocs/Dom/Array.hpp>

std::string
toString(Array const&);

Return Value

a diagnostic string.

Return a diagnostic string.

Synopsis

Declared in <mrdocs/Dom/Object.hpp>

std::string
toString(Object const&);

Return Value

a diagnostic string.

Return value as a string.

Synopsis

Declared in <mrdocs/Dom/Value.hpp>

std::string
toString(Value const& value);

Return Value

value as a string.

Parameters

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.

bool
operator==(
    String const& lhs,
    String const& rhs) noexcept;

Return the result of comparing two strings.

template<StringLikeTy StringLike>
bool
operator==(
    String const& lhs,
    StringLike const& rhs) noexcept;

Compare two values for equality.

bool
operator==(
    Value const& lhs,
    Value const& rhs) noexcept;

Compare two objects for equality.

bool
operator==(
    Object const& a,
    Object const& b) noexcept;

Compare two arrays for equality.

bool
operator==(
    Array const& lhs,
    Array const& rhs) noexcept;

Return the result of comparing two strings.

Synopsis

Declared in <mrdocs/Dom/String.hpp>

bool
operator==(
    String const& lhs,
    String const& rhs) noexcept;

Return Value

the result of comparing two strings.

Parameters

Name

Description

lhs

The left operand

rhs

The right operand

Return the result of comparing two strings.

Synopsis

Declared in <mrdocs/Dom/String.hpp>

template<StringLikeTy StringLike>
bool
operator==(
    String const& lhs,
    StringLike const& rhs) noexcept;

Return Value

the result of comparing two strings.

Parameters

Name

Description

lhs

The left operand

rhs

The right operand

Compare two values for equality.

Synopsis

Declared in <mrdocs/Dom/Value.hpp>

bool
operator==(
    Value const& lhs,
    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

Name

Description

lhs

The left operand

rhs

The right operand

Compare two objects for equality.

Synopsis

Declared in <mrdocs/Dom/Object.hpp>

bool
operator==(
    Object const& a,
    Object const& b) noexcept;

Return Value

true if the objects are equal, false otherwise

Parameters

Name

Description

a

The left operand

b

The right operand

Compare two arrays for equality.

Synopsis

Declared in <mrdocs/Dom/Array.hpp>

bool
operator==(
    Array const& lhs,
    Array const& rhs) noexcept;

Return Value

true if the objects are equal, false otherwise

Parameters

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.

bool
operator!=(
    String const& lhs,
    String const& rhs) noexcept;

Return the result of comparing two strings.

template<StringLikeTy StringLike>
bool
operator!=(
    String const& lhs,
    StringLike const& rhs) noexcept;

Return the result of comparing two strings.

Synopsis

Declared in <mrdocs/Dom/String.hpp>

bool
operator!=(
    String const& lhs,
    String const& rhs) noexcept;

Return Value

the result of comparing two strings.

Parameters

Name

Description

lhs

The left operand

rhs

The right operand

Return the result of comparing two strings.

Synopsis

Declared in <mrdocs/Dom/String.hpp>

template<StringLikeTy StringLike>
bool
operator!=(
    String const& lhs,
    StringLike const& rhs) noexcept;

Return Value

the result of comparing two strings.

Parameters

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.

auto
operator<=>(
    String const& lhs,
    String const& rhs) noexcept;

Return the result of comparing two strings.

template<StringLikeTy StringLike>
auto
operator<=>(
    String const& lhs,
    StringLike const& rhs) noexcept;

Three‐way comparison operator

template<std::convertible_to<Value> S>
auto
operator<=>(
    Value const& lhs,
    S const& rhs) noexcept;

Three‐way comparison operator

template<std::convertible_to<Value> S>
auto
operator<=>(
    S const& lhs,
    Value const& rhs) noexcept;

Compare two values for inequality.

std::strong_ordering
operator<=>(
    Value const& lhs,
    Value const& rhs) noexcept;

Compare two objects for precedence.

std::strong_ordering
operator<=>(
    Object const& a,
    Object const& b) noexcept;

Compare two arrays for precedence.

std::strong_ordering
operator<=>(
    Array const& lhs,
    Array const& rhs) noexcept;

Return the result of comparing two strings.

Synopsis

Declared in <mrdocs/Dom/String.hpp>

auto
operator<=>(
    String const& lhs,
    String const& rhs) noexcept;

Return Value

the result of comparing two strings.

Parameters

Name

Description

lhs

The left operand

rhs

The right operand

Return the result of comparing two strings.

Synopsis

Declared in <mrdocs/Dom/String.hpp>

template<StringLikeTy StringLike>
auto
operator<=>(
    String const& lhs,
    StringLike const& rhs) noexcept;

Return Value

the result of comparing two strings.

Parameters

Name

Description

lhs

The left operand

rhs

The right operand

Three‐way comparison operator

Synopsis

Declared in <mrdocs/Dom/Value.hpp>

template<std::convertible_to<Value> S>
auto
operator<=>(
    Value const& lhs,
    S const& rhs) noexcept;

Return Value

The relative order of the objects

Parameters

Name

Description

lhs

The left operand

rhs

The right operand

Three‐way comparison operator

Synopsis

Declared in <mrdocs/Dom/Value.hpp>

template<std::convertible_to<Value> S>
auto
operator<=>(
    S const& lhs,
    Value const& rhs) noexcept;

Return Value

The relative order of the objects

Parameters

Name

Description

lhs

The left operand

rhs

The right operand

Compare two values for inequality.

Synopsis

Declared in <mrdocs/Dom/Value.hpp>

std::strong_ordering
operator<=>(
    Value const& lhs,
    Value const& rhs) noexcept;

Return Value

The relative order of the objects

Parameters

Name

Description

lhs

The left operand

rhs

The right operand

Compare two objects for precedence.

Synopsis

Declared in <mrdocs/Dom/Object.hpp>

std::strong_ordering
operator<=>(
    Object const& a,
    Object const& b) noexcept;

Return Value

The relative order of the objects

Parameters

Name

Description

a

The left operand

b

The right operand

Compare two arrays for precedence.

Synopsis

Declared in <mrdocs/Dom/Array.hpp>

std::strong_ordering
operator<=>(
    Array const& lhs,
    Array const& rhs) noexcept;

Return Value

The relative order of the objects

Parameters

Name

Description

lhs

The left operand

rhs

The right operand

Determine if T can be converted to dom::Value.

Synopsis

Declared in <mrdocs/Dom/LazyObject.hpp>

template<
    class T,
    class Context>
concept HasLazyObjectMap = HasLazyObjectMapWithContext<T, Context> ||
    HasLazyObjectMapWithoutContext<T>;

Description

If T can be converted to dom::Value via a call to 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 dom::LazyObjectImpl with a user‐provided conversion.

Synopsis

Declared in <mrdocs/Dom/LazyObject.hpp>

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:

template <class IO>
void tag_invoke( LazyObjectMapTag, IO&, T,  Context const& );

Concept to determine if a type can be mapped to a dom::LazyObjectImpl with a user‐provided conversion.

Synopsis

Declared in <mrdocs/Dom/LazyObject.hpp>

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:

template <class IO>
void tag_invoke( LazyObjectMapTag, IO&, T& );

This customization can be defined by any type that needs to be converted to/from a lazy dom::Object. For example:

template <class IO>
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 dom::Value without a context.

Synopsis

Declared in <mrdocs/Dom/Value.hpp>

template<class T>
concept HasStandaloneValueFrom = HasValueFromWithoutContext<T> ||
    std::constructible_from<Value, T>;

Description

This concept determines if there is a user‐provided conversion to dom::Value that does not require a context or if dom::Value has a constructor that can be used to convert T to a dom::Value.

Determine if T can be converted to dom::Value.

Synopsis

Declared in <mrdocs/Dom/Value.hpp>

template<
    class T,
    class Context>
concept HasValueFrom = HasValueFromWithContext<T, Context> ||
    HasValueFromWithoutContext<T> ||
    std::constructible_from<Value, T>;

Description

If T can be converted to dom::Value via a call to dom::ValueFrom, the static data member value is defined as true. Otherwise, value is defined as false.

See Also

Concept to determine if a type can be converted to a dom::Value with a user‐provided conversion.

Synopsis

Declared in <mrdocs/Dom/Value.hpp>

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:

void tag_invoke( ValueFromTag, dom::Value&, T,  Context const& );

Concept to determine if a type can be converted to a dom::Value with a user‐provided conversion.

Synopsis

Declared in <mrdocs/Dom/Value.hpp>

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:

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>

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>

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>

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>

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>

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>

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>

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>

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

Name

Description

FileType

The type of a file.

Functions

Name

Description

appendPath

createDirectory

Create a directory.

exists

Determine if a path exists

getFileName

Return the filename part of the path.

getFileText

Return the contents of a file as a string.

getFileType

Return the file type or an error

getParentDir

Return the parent directory.

getSourceFilename

Return the relevant suffix of a source file path.

isAbsolute

Return true if pathName is absolute.

isDirectory

Determine if a path is a directory.

isDirsy

Return true if pathName ends in a separator.

isLexicalDirectory

Determine lexically if a path is a directory.

isPosixStyle

Check if the path is posix style.

makeAbsolute

Return an absolute path from a possibly relative path.

makeDirsy

Append a trailing native separator if not already present.

makePosixStyle

Convert all backward slashes to forward slashes.

normalizeDir

Return a normalized directory.

normalizePath

Return a normalized path.

requireAbsolute

Return an error if pathName is not absolute.

requireDirectory

Return an error if the path is not a directory.

startsWith

Checks if the given path starts with the specified prefix.

withExtension

Return the filename with a new or different extension.

The type of a file.

Synopsis

Declared in <mrdocs/Support/Path.hpp>

enum class FileType : int;

Members

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

Name

Description

getFileType

Return the file type or an error

Synopses

Declared in <mrdocs/Support/Path.hpp>

std::string
appendPath(
    std::string_view basePath,
    std::string_view name);
std::string
appendPath(
    std::string_view basePath,
    std::string_view name1,
    std::string_view name2);
std::string
appendPath(
    std::string_view basePath,
    std::string_view name1,
    std::string_view name2,
    std::string_view name3);
std::string
appendPath(
    std::string_view basePath,
    std::string_view name1,
    std::string_view name2,
    std::string_view name3,
    std::string_view name4);

Synopsis

Declared in <mrdocs/Support/Path.hpp>

std::string
appendPath(
    std::string_view basePath,
    std::string_view name);

Synopsis

Declared in <mrdocs/Support/Path.hpp>

std::string
appendPath(
    std::string_view basePath,
    std::string_view name1,
    std::string_view name2);

Synopsis

Declared in <mrdocs/Support/Path.hpp>

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>

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>

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

Name

Description

pathName

The absolute or relative path to create.

Determine if a path exists

Synopsis

Declared in <mrdocs/Support/Path.hpp>

bool
exists(std::string_view pathName);

Return Value

true if the path exists, false otherwise.

Parameters

Name

Description

pathName

The absolute or relative path

Return the filename part of the path.

Synopsis

Declared in <mrdocs/Support/Path.hpp>

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

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>

Expected<std::string>
getFileText(std::string_view pathName);

Return Value

The contents of the file, or an error if any occurred.

Parameters

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>

Expected<FileType>
getFileType(std::string_view pathName);

Return Value

the file type or an error

Parameters

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.

std::string
getParentDir(std::string_view pathName);

Return the parent directory.

std::string
getParentDir(
    std::string_view pathName,
    unsigned int levels);

Return Value

The parent directory, or the empty string if there is none.

Parameters

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>

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

Name

Description

pathName

The absolute or relative path to the directory or file.

Return the parent directory.

Synopsis

Declared in <mrdocs/Support/Path.hpp>

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

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>

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

Name

Description

pathName

The absolute or relative path to the file.

Return true if pathName is absolute.

Synopsis

Declared in <mrdocs/Support/Path.hpp>

bool
isAbsolute(std::string_view pathName) noexcept;

Return Value

true if the path is absolute, false otherwise.

Parameters

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>

bool
isDirectory(std::string_view pathName);

Return Value

true if the path exists and is a directory, false otherwise.

Parameters

Name

Description

pathName

The absolute or relative path

Return true if pathName ends in a separator.

Synopsis

Declared in <mrdocs/Support/Path.hpp>

bool
isDirsy(std::string_view pathName) noexcept;

Return Value

true if the path ends in a separator, false otherwise.

Parameters

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>

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

Name

Description

pathName

The absolute or relative path

Check if the path is posix style.

Synopsis

Declared in <mrdocs/Support/Path.hpp>

bool
isPosixStyle(std::string_view pathName);

Return Value

true if the path uses only forward slashes as path separators, false otherwise.

Parameters

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.

Expected<std::string>
makeAbsolute(std::string_view pathName);

Return an absolute path from a possibly relative path.

std::string
makeAbsolute(
    std::string_view pathName,
    std::string_view workingDir);

Return Value

  • The absolute path, or an error if any occurred.

  • The absolute path, or an error if any occurred.

Parameters

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>

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

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>

std::string
makeAbsolute(
    std::string_view pathName,
    std::string_view workingDir);

Return Value

The absolute path, or an error if any occurred.

Parameters

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>

std::string
makeDirsy(std::string_view pathName);

Return Value

A copy of the path with a trailing separator if not already present.

Parameters

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>

std::string
makePosixStyle(std::string_view pathName);

Return Value

A copy of the path with all backslashes replaced with forward slashes.

Parameters

Name

Description

pathName

The absolute or relative path to the directory or file.

Return a normalized directory.

Synopsis

Declared in <mrdocs/Support/Path.hpp>

std::string
normalizeDir(std::string_view pathName);

Description

This function returns a new directory path based on applying the changes defined by normalizePath and makeDirsy.

Return Value

The normalized path.

Parameters

Name

Description

pathName

The relative or absolute path.

Return a normalized path.

Synopsis

Declared in <mrdocs/Support/Path.hpp>

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

Name

Description

pathName

The relative or absolute path.

Return an error if pathName is not absolute.

Synopsis

Declared in <mrdocs/Support/Path.hpp>

Expected<void>
requireAbsolute(std::string_view pathName);

Return Value

An error if the path is not absolute.

Parameters

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>

Expected<void>
requireDirectory(std::string_view pathName);

Return Value

An error if the path does not exist or is not a directory.

Parameters

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>

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

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>

std::string
withExtension(
    std::string_view fileName,
    std::string_view ext);

Return Value

the filename with a new or different extension.

Parameters

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

Name

Description

and_fn

"and" helper function

detag_fn

"detag" helper function

eq_fn

"eq" helper function

increment_fn

"increment" helper function

ne_fn

"ne" helper function

not_fn

"not" helper function

or_fn

"or" helper function

registerAntoraHelpers

Register all the Antora helpers into a Handlebars instance

registerBuiltinHelpers

Register all the built‐in helpers into a Handlebars instance

registerConstructorHelpers

Register contructor helpers into a Handlebars instance

registerContainerHelpers

Register helpers to manipulate composite data types

registerLogicalHelpers

Register logical helpers into a Handlebars instance

registerMathHelpers

Register math helpers into a Handlebars instance

registerStringHelpers

Register string helpers into a Handlebars instance

registerTypeHelpers

Register type helpers into a Handlebars instance

relativize_fn

"relativize" helper function

select_fn

"select" helper function

year_fn

"year" helper function

"and" helper function

Synopsis

Declared in <mrdocs/Support/Handlebars.hpp>

bool
and_fn(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

Name

Description

args

The values to test

"detag" helper function

Synopsis

Declared in <mrdocs/Support/Handlebars.hpp>

dom::Value
detag_fn(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

Name

Description

html

A variant container for any kind of Dom value.

"eq" helper function

Synopsis

Declared in <mrdocs/Support/Handlebars.hpp>

bool
eq_fn(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

Name

Description

args

The values to compare

"increment" helper function

Synopsis

Declared in <mrdocs/Support/Handlebars.hpp>

dom::Value
increment_fn(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

Name

Description

value

A variant container for any kind of Dom value.

"ne" helper function

Synopsis

Declared in <mrdocs/Support/Handlebars.hpp>

bool
ne_fn(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

Name

Description

args

The values to compare

"not" helper function

Synopsis

Declared in <mrdocs/Support/Handlebars.hpp>

bool
not_fn(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

Name

Description

arg

An array of values

"or" helper function

Synopsis

Declared in <mrdocs/Support/Handlebars.hpp>

dom::Value
or_fn(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

Name

Description

args

An array of values

Register all the Antora helpers into a Handlebars instance

Synopsis

Declared in <mrdocs/Support/Handlebars.hpp>

void
registerAntoraHelpers(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

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>

void
registerBuiltinHelpers(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

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>

void
registerConstructorHelpers(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

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>

void
registerContainerHelpers(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

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>

void
registerLogicalHelpers(Handlebars& hbs);

Description

This function registers a number of common helpers that perform logical operations.

Parameters

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>

void
registerMathHelpers(Handlebars& hbs);

Description

This function registers a number of common helpers that perform mathemathical operations.

Parameters

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>

void
registerStringHelpers(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

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>

void
registerTypeHelpers(Handlebars& hbs);

Description

This function registers a number of common helpers that operate on types, such as identity, type checking, and type conversion.

Parameters

Name

Description

hbs

The Handlebars instance to register the helpers into

"relativize" helper function

Synopsis

Declared in <mrdocs/Support/Handlebars.hpp>

dom::Value
relativize_fn(
    dom::Value to,
    dom::Value from,
    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

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>

dom::Value
select_fn(
    dom::Value const& condition,
    dom::Value const& result_true,
    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

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>

int
year_fn();

Description

The "year" helper returns the current year as an integer.

Return Value

The current year as an integer.

Types

Name

Description

Access

Array

Boolean

Context

An instance of a JavaScript interpreter.

Object

Prop

Scope

A JavaScript scope

String

Value

An ECMAScript value.

Enums

Name

Description

Type

Types of values.

Functions

Name

Description

operator&&

Return the first Value that is not truthy, or the last one.

operator||

Return the first Value that is truthy, or the last one.

registerHelper

Register a JavaScript helper function

swap

Swap two values.

toString

Return value as a string.

operator==

Compare two values for equality.

operator!=

Inequality operators

operator<=>

Compare two values for inequality.

Synopsis

Declared in <mrdocs/Support/JavaScript.hpp>

struct Access;

Synopsis

Declared in <mrdocs/Support/JavaScript.hpp>

class Array;

Synopsis

Declared in <mrdocs/Support/JavaScript.hpp>

class Boolean;

An instance of a JavaScript interpreter.

Synopsis

Declared in <mrdocs/Support/JavaScript.hpp>

class Context;

Member Functions

Name

Description

Context [constructor]

Constructor.

~Context [destructor]

Destructor.

operator= [deleted]

Copy assignment.

Friends

Name

Description

mrdocs::js::Access

Description

This class represents a JavaScript interpreter context under which we can create 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 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.

Context();

Constructor.

Context(Context const& other) noexcept;

Constructor.

Synopsis

Declared in <mrdocs/Support/JavaScript.hpp>

Context();

Description

Create a javascript execution context associated with its own garbage‐collected heap.

Constructor.

Synopsis

Declared in <mrdocs/Support/JavaScript.hpp>

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

Name

Description

other

The object to copy construct from

Destructor.

Synopsis

Declared in <mrdocs/Support/JavaScript.hpp>

~Context();

Copy assignment.

Synopsis

Declared in <mrdocs/Support/JavaScript.hpp>

Context&
operator=(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

Name

Description

other

The object to copy assign from

Synopsis

Declared in <mrdocs/Support/JavaScript.hpp>

class Object;

Synopsis

Declared in <mrdocs/Support/JavaScript.hpp>

class Prop;

Member Functions

Name

Description

Prop [constructor]

Constructors

isIndex

Constructors

Synopses

Declared in <mrdocs/Support/JavaScript.hpp>

Construct from string_view

constexpr
Prop(std::string_view name) noexcept;

Construct from unsigned int

constexpr
Prop(unsigned int index) noexcept;

Construct from string_view

Synopsis

Declared in <mrdocs/Support/JavaScript.hpp>

constexpr
Prop(std::string_view name) noexcept;

Parameters

Name

Description

name

The object to construct from

Construct from unsigned int

Synopsis

Declared in <mrdocs/Support/JavaScript.hpp>

constexpr
Prop(unsigned int index) noexcept;

Parameters

Name

Description

index

The value to construct from

Synopsis

Declared in <mrdocs/Support/JavaScript.hpp>

constexpr
bool
isIndex() const noexcept;

A JavaScript scope

Synopsis

Declared in <mrdocs/Support/JavaScript.hpp>

class Scope;

Member Functions

Name

Description

Scope [constructor]

Constructor.

~Scope [destructor]

Destructor.

compile_function

Compile a script and push results to stack.

compile_script

Compile a script and push results to stack.

eval

Compile and run a expression.

getGlobal

Return a global object if it exists.

getGlobalObject

Return the global object.

pushArray

Push a new array to the stack

pushBoolean

Push a boolean to the stack

pushDouble

Push a double to the stack

pushInteger

Push an integer to the stack

pushObject

Push a new object to the stack

pushString

Push a string to the stack

script

Compile and run a script.

setGlobal

Set a global object.

Friends

Name

Description

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 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>

Scope(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

Name

Description

ctx

The context to use.

Destructor.

Synopsis

Declared in <mrdocs/Support/JavaScript.hpp>

~Scope();

Description

All variables defined in this scope are popped from the internal context heap.

There should be no 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>

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

Name

Description

jsCode

The JavaScript code to compile.

Compile a script and push results to stack.

Synopsis

Declared in <mrdocs/Support/JavaScript.hpp>

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

Name

Description

jsCode

The JavaScript code to compile.

Compile and run a expression.

Synopsis

Declared in <mrdocs/Support/JavaScript.hpp>

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 Error.

Return Value

A container holding an error or a value.

Parameters

Name

Description

jsCode

The JavaScript code to execute.

Return a global object if it exists.

Synopsis

Declared in <mrdocs/Support/JavaScript.hpp>

Expected<Value>
getGlobal(std::string_view name);

Description

This function returns a 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

Name

Description

name

The name of the global variable.

Return the global object.

Synopsis

Declared in <mrdocs/Support/JavaScript.hpp>

Value
getGlobalObject();

Description

This function returns a 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>

Value
pushArray();

Return Value

An ECMAScript value.

Push a boolean to the stack

Synopsis

Declared in <mrdocs/Support/JavaScript.hpp>

Value
pushBoolean(bool value);

Return Value

A Value representing the boolean.

Parameters

Name

Description

value

The boolean value to push.

Push a double to the stack

Synopsis

Declared in <mrdocs/Support/JavaScript.hpp>

Value
pushDouble(double value);

Return Value

A Value representing the double.

Parameters

Name

Description

value

The double value to push.

Push an integer to the stack

Synopsis

Declared in <mrdocs/Support/JavaScript.hpp>

Value
pushInteger(int64_t value);

Return Value

A Value representing the integer.

Parameters

Name

Description

value

The integer value to push.

Push a new object to the stack

Synopsis

Declared in <mrdocs/Support/JavaScript.hpp>

Value
pushObject();

Return Value

An ECMAScript value.

Push a string to the stack

Synopsis

Declared in <mrdocs/Support/JavaScript.hpp>

Value
pushString(std::string_view value);

Return Value

A Value representing the string.

Parameters

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>

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 Error.

Return Value

A container holding an error or a value.

Parameters

Name

Description

jsCode

The JavaScript code to execute.

Set a global object.

Synopsis

Declared in <mrdocs/Support/JavaScript.hpp>

void
setGlobal(
    std::string_view name,
    dom::Value const& value);

Parameters

Name

Description

name

The name of the global variable.

value

The value to set.

Synopsis

Declared in <mrdocs/Support/JavaScript.hpp>

class String;

An ECMAScript value.

Synopsis

Declared in <mrdocs/Support/JavaScript.hpp>

class Value;

Member Functions

Name

Description

Value [constructor]

Constructor

~Value [destructor]

Destructor

operator=

Assignment operators

apply

Invoke a function with variadic arguments.

call

Invoke a function.

callProp

Invoke a method.

empty

Return if an Array or Object is empty.

exists

Return true if a key exists.

get

get overloads

getArray

Return the underlying array.

getBool

Return the underlying boolean value.

getDom

Return the value as a dom::Value

getDouble

Return the underlying double value.

getFunction

Return the underlying array.

getInteger

Return the underlying integer value.

getObject

Return the underlying object.

getString

Return the underlying string

isArray

Check if the value is an array.

isBoolean

Check if the value is a boolean.

isDouble

Check if the value is a floating point number.

isFunction

Check if the value is a function.

isInteger

Check if the value is an integer number.

isNull

Check if the value is null.

isNumber

Check if the value is a number.

isObject

Check if the value is an object.

isString

Check if the value is a string.

isTruthy

Determine if a value is truthy

isUndefined

Check if the value is undefined.

lookup

Lookup a sequence of keys.

operator()

Invoke a function.

set

Set or replace the value for a given key.

setlog

Set "log" property

size

Return if an Array or Object is empty.

swap

Swap two values.

type

Return the type of the value.

operator std::string

Return the string.

operator bool

Determine if a value is truthy

Protected Member Functions

Name

Description

Value [constructor]

Constructor

Protected Data Members

Name

idx_

scope_

Friends

Name

Description

mrdocs::js::toString

Return value as a string.

mrdocs::js::operator&&

mrdocs::js::operator&&

mrdocs::js::operator&&

Return the first Value that is not truthy, or the last one.

mrdocs::js::operator||

mrdocs::js::operator||

mrdocs::js::operator||

Return the first Value that is truthy, or the last one.

mrdocs::js::operator<=>

Compare two values for inequality.

mrdocs::js::operator!=

mrdocs::js::operator!=

mrdocs::js::operator!=

Inequality operator

mrdocs::js::operator==

mrdocs::js::operator==

mrdocs::js::operator==

Compare two values for equality.

mrdocs::js::swap

Swap two values.

mrdocs::js::Access

Description

This class represents a value in the JavaScript interpreter.

A value is a variable that is defined in a Scope. It can be a primitive type or an object.

A Value not associated with a Scope is undefined.

The user is responsible for ensuring that the lifetime of a Value does not exceed the lifetime of the Scope that created it.

A value can be converted to a DOM value using the getDom function.

See Also

Scope

Type

Constructor

Synopses

Declared in <mrdocs/Support/JavaScript.hpp>

Constructor

Value() noexcept;

Constructor

Value(Value const& other);

Constructor

Value(Value&& other) noexcept;

Constructor

Synopsis

Declared in <mrdocs/Support/JavaScript.hpp>

Value() noexcept;

Description

Construct a value that is not associated with a Scope.

The value is undefined.

Constructor

Synopsis

Declared in <mrdocs/Support/JavaScript.hpp>

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

Name

Description

other

The object to copy construct from

Constructor

Synopsis

Declared in <mrdocs/Support/JavaScript.hpp>

Value(Value&& other) noexcept;

Description

The function associates the existing value with this object.

Parameters

Name

Description

other

The object to move construct from

Destructor

Synopsis

Declared in <mrdocs/Support/JavaScript.hpp>

~Value();

Description

If the value is associated with a Scope and it is on top of the stack, it is popped. Also, if there are no other Value references to the Scope, all variables defined in that scope are popped via Scope::reset.

Assignment operators

Synopses

Declared in <mrdocs/Support/JavaScript.hpp>

Copy assignment.

Value&
operator=(Value const& other);

Move assignment.

Value&
operator=(Value&& other) noexcept;

Copy assignment.

Synopsis

Declared in <mrdocs/Support/JavaScript.hpp>

Value&
operator=(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

Name

Description

other

The object to copy assign from

Move assignment.

Synopsis

Declared in <mrdocs/Support/JavaScript.hpp>

Value&
operator=(Value&& other) noexcept;

Description

The function associates the existing value with this object.

Return Value

Reference to the current object

Parameters

Name

Description

other

The object to move assign from

Invoke a function with variadic arguments.

Synopsis

Declared in <mrdocs/Support/JavaScript.hpp>

Expected<Value>
apply(std::span<dom::Value> args) const;

Return Value

The return value of the method.

Parameters

Name

Description

args

Zero or more arguments to pass to the method.

Invoke a function.

Synopsis

Declared in <mrdocs/Support/JavaScript.hpp>

template<std::convertible_to<dom::Value>... Args>
Expected<Value>
call(Args...&&... args) const;

Return Value

The return value of the method.

Parameters

Name

Description

args

Zero or more arguments to pass to the method.

Invoke a method.

Synopsis

Declared in <mrdocs/Support/JavaScript.hpp>

template<class... Args>
Expected<Value>
callProp(
    std::string_view prop,
    Args...&&... args) const;

Return Value

The return value of the method.

Parameters

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>

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>

bool
exists(std::string_view key) const;

Return Value

true if the key exists, false otherwise.

Parameters

Name

Description

key

The key to check for.

get overloads

Synopses

Declared in <mrdocs/Support/JavaScript.hpp>

Return the element at a given index.

Value
get(std::size_t i) const;

Return the element for a given key.

Value
get(std::string_view key) const;

Return the element at a given index or key.

Value
get(dom::Value const& i) const;
template<std::convertible_to<std::string_view> S>
Value
get(S const& key) const;

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

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>

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

Name

Description

i

The index of the element to return.

Return the element for a given key.

Synopsis

Declared in <mrdocs/Support/JavaScript.hpp>

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

Name

Description

key

The key to look up.

Return the element at a given index or key.

Synopsis

Declared in <mrdocs/Support/JavaScript.hpp>

Value
get(dom::Value const& i) const;

Return Value

the element at a given index or key.

Parameters

Name

Description

i

A variant container for any kind of Dom value.

Synopsis

Declared in <mrdocs/Support/JavaScript.hpp>

template<std::convertible_to<std::string_view> S>
Value
get(S const& key) const;

Return the underlying array.

Synopsis

Declared in <mrdocs/Support/JavaScript.hpp>

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>

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>

dom::Value
getDom() const;

Description

This function returns the value as a 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>

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>

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>

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>

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>

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>

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>

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>

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>

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>

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>

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>

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>

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>

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>

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>

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>

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

Name

Description

keys

A sequence of keys separated by dots.

Invoke a function.

Synopsis

Declared in <mrdocs/Support/JavaScript.hpp>

template<class... Args>
Value
operator()(Args...&&... args) const;

Return Value

The return value of the method.

Parameters

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.

void
set(
    std::string_view key,
    Value const& value) const;

Set or replace the value for a given key.

void
set(
    std::string_view key,
    dom::Value const& value) const;

Parameters

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>

void
set(
    std::string_view key,
    Value const& value) const;

Parameters

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>

void
set(
    std::string_view key,
    dom::Value const& value) const;

Parameters

Name

Description

key

The key to set.

value

The value to set.

Set "log" property

Synopsis

Declared in <mrdocs/Support/JavaScript.hpp>

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>

std::size_t
size() const;

Return Value

if an Array or Object is empty.

Swap two values.

Synopsis

Declared in <mrdocs/Support/JavaScript.hpp>

void
swap(Value& other) noexcept;

Parameters

Name

Description

other

An ECMAScript value.

Return the type of the value.

Synopsis

Declared in <mrdocs/Support/JavaScript.hpp>

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>

explicit
operator std::string() const noexcept;

Return Value

the string.

Determine if a value is truthy

Synopsis

Declared in <mrdocs/Support/JavaScript.hpp>

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>

Value(
    int,
    Scope&) noexcept;

Synopsis

Declared in <mrdocs/Support/JavaScript.hpp>

int idx_;

Synopsis

Declared in <mrdocs/Support/JavaScript.hpp>

Scope* scope_;

Types of values.

Synopsis

Declared in <mrdocs/Support/JavaScript.hpp>

enum class Type : int;

Members

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.

Value
operator&&(
    Value const& lhs,
    Value const& rhs);
template<std::convertible_to<Value> S>
auto
operator&&(
    S const& lhs,
    Value const& rhs) noexcept;
template<std::convertible_to<Value> S>
auto
operator&&(
    Value const& lhs,
    S const& rhs) noexcept;

Return the first Value that is not truthy, or the last one.

Synopsis

Declared in <mrdocs/Support/JavaScript.hpp>

Value
operator&&(
    Value const& lhs,
    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

Name

Description

lhs

The left operand

rhs

The right operand

Synopsis

Declared in <mrdocs/Support/JavaScript.hpp>

template<std::convertible_to<Value> S>
auto
operator&&(
    S const& lhs,
    Value const& rhs) noexcept;

Synopsis

Declared in <mrdocs/Support/JavaScript.hpp>

template<std::convertible_to<Value> S>
auto
operator&&(
    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.

Value
operator||(
    Value const& lhs,
    Value const& rhs);
template<std::convertible_to<Value> S>
auto
operator||(
    S const& lhs,
    Value const& rhs) noexcept;
template<std::convertible_to<Value> S>
auto
operator||(
    Value const& lhs,
    S const& rhs) noexcept;

Return the first Value that is truthy, or the last one.

Synopsis

Declared in <mrdocs/Support/JavaScript.hpp>

Value
operator||(
    Value const& lhs,
    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

Name

Description

lhs

The left operand

rhs

The right operand

Synopsis

Declared in <mrdocs/Support/JavaScript.hpp>

template<std::convertible_to<Value> S>
auto
operator||(
    S const& lhs,
    Value const& rhs) noexcept;

Synopsis

Declared in <mrdocs/Support/JavaScript.hpp>

template<std::convertible_to<Value> S>
auto
operator||(
    Value const& lhs,
    S const& rhs) noexcept;

Register a JavaScript helper function

Synopsis

Declared in <mrdocs/Support/JavaScript.hpp>

Expected<void, Error>
registerHelper(
    mrdocs::Handlebars& hbs,
    std::string_view name,
    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

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>

void
swap(
    Value& v0,
    Value& v1) noexcept;

Parameters

Name

Description

v0

An ECMAScript value.

v1

An ECMAScript value.

Return value as a string.

Synopsis

Declared in <mrdocs/Support/JavaScript.hpp>

std::string
toString(Value const& value);

Description

This function coerces any value to a string.

Return Value

value as a string.

Parameters

Name

Description

value

An ECMAScript value.

Compare two values for equality.

Synopses

Declared in <mrdocs/Support/JavaScript.hpp>

template<std::convertible_to<Value> S>
auto
operator==(
    Value const& lhs,
    S const& rhs) noexcept;
template<std::convertible_to<Value> S>
auto
operator==(
    S const& lhs,
    Value const& rhs) noexcept;

Compare two values for equality.

bool
operator==(
    Value const& lhs,
    Value const& rhs) noexcept;

Synopsis

Declared in <mrdocs/Support/JavaScript.hpp>

template<std::convertible_to<Value> S>
auto
operator==(
    Value const& lhs,
    S const& rhs) noexcept;

Synopsis

Declared in <mrdocs/Support/JavaScript.hpp>

template<std::convertible_to<Value> S>
auto
operator==(
    S const& lhs,
    Value const& rhs) noexcept;

Compare two values for equality.

Synopsis

Declared in <mrdocs/Support/JavaScript.hpp>

bool
operator==(
    Value const& lhs,
    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

Name

Description

lhs

The left operand

rhs

The right operand

Inequality operators

Synopses

Declared in <mrdocs/Support/JavaScript.hpp>

template<std::convertible_to<Value> S>
auto
operator!=(
    Value const& lhs,
    S const& rhs) noexcept;
template<std::convertible_to<Value> S>
auto
operator!=(
    S const& lhs,
    Value const& rhs) noexcept;

Inequality operator

bool
operator!=(
    Value const& lhs,
    Value const& rhs) noexcept;

Synopsis

Declared in <mrdocs/Support/JavaScript.hpp>

template<std::convertible_to<Value> S>
auto
operator!=(
    Value const& lhs,
    S const& rhs) noexcept;

Synopsis

Declared in <mrdocs/Support/JavaScript.hpp>

template<std::convertible_to<Value> S>
auto
operator!=(
    S const& lhs,
    Value const& rhs) noexcept;

Inequality operator

Synopsis

Declared in <mrdocs/Support/JavaScript.hpp>

bool
operator!=(
    Value const& lhs,
    Value const& rhs) noexcept;

Return Value

true if the objects are not equal, false otherwise

Parameters

Name

Description

lhs

The left operand

rhs

The right operand

Compare two values for inequality.

Synopsis

Declared in <mrdocs/Support/JavaScript.hpp>

std::strong_ordering
operator<=>(
    Value const& lhs,
    Value const& rhs) noexcept;

Return Value

The relative order of the objects

Parameters

Name

Description

lhs

The left operand

rhs

The right operand

Types

Name

Description

Access

Context

A reference to an instance of a Lua interpreter.

Function

A Lua function.

Param

A lazy container to push values to the Lua stack.

Scope

String

A Lua string.

Table

A Lua table.

Value

A Lua value.

zstring

A null‐terminated string.

FunctionPtr

Enums

Name

Description

Type

Types of values.

Synopsis

Declared in <mrdocs/Support/Lua.hpp>

using FunctionPtr = Value(*)(std::vector<Value>);

Synopsis

Declared in <mrdocs/Support/Lua.hpp>

struct Access;

A reference to an instance of a Lua interpreter.

Synopsis

Declared in <mrdocs/Support/Lua.hpp>

class Context;

Member Functions

Name

Description

Context [constructor]

Constructor.

~Context [destructor]

Destructor.

operator= [deleted]

Copy assignment.

Friends

Name

Description

mrdocs::lua::Scope

mrdocs::lua::Access

Constructor.

Synopses

Declared in <mrdocs/Support/Lua.hpp>

Constructor.

Context();

Constructor.

Context(Context const& other) noexcept;

Constructor.

Synopsis

Declared in <mrdocs/Support/Lua.hpp>

Context();

Constructor.

Synopsis

Declared in <mrdocs/Support/Lua.hpp>

Context(Context const& other) noexcept;

Parameters

Name

Description

other

The object to copy construct from

Destructor.

Synopsis

Declared in <mrdocs/Support/Lua.hpp>

~Context();

Copy assignment.

Synopsis

Declared in <mrdocs/Support/Lua.hpp>

Context&
operator=(Context const& other) = delete;

Return Value

Reference to the current object

Parameters

Name

Description

other

The object to copy assign from

A Lua function.

Synopsis

Declared in <mrdocs/Support/Lua.hpp>

class Function
    : public Value

Base Classes

Name

Description

Value

A Lua value.

Member Functions

Name

Description

Function [constructor]

Construct from Value

call

Invoke the value as a function.

displayString

Return a string representation.

isBoolean

isFunction

isNil

isNumber

isString

isTable

operator()

Invoke the value as a function.

type

Protected Data Members

Name

index_

scope_

Friends

Name

Description

mrdocs::lua::Access

Construct from Value

Synopsis

Declared in <mrdocs/Support/Lua.hpp>

Function(Value value);

Parameters

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>

class Param;

Member Functions

Name

Description

Param [constructor] [deleted]

Constructors

~Param [destructor]

Destructor

operator= [deleted]

Copy assignment operator

Data Members

Name

arr_ [variant member]

b_ [variant member]

i_ [variant member]

index_ [variant member]

obj_ [variant member]

s_ [variant member]

Friends

Name

Description

mrdocs::lua::Access

Constructors

Synopses

Declared in <mrdocs/Support/Lua.hpp>

Copy constructor

Param(Param const& other) = delete;

Construct from Array

Param(dom::Array arr) noexcept;

Construct from Object

Param(dom::Object obj) noexcept;

Construct from int64_t

Param(int64_t value) noexcept;

Construct from nullptr_t

Param(std::nullptr_t value) noexcept;

Construct from string_view

Param(std::string_view s) noexcept;

Construct from Value

Param(Value const& value) noexcept;

Construct from Value

Param(dom::Value const& value) noexcept;

Construct from char

Param(char const* s) noexcept;

Construct from Enum

template<class Enum>
requires std::is_enum_v<Enum>
Param(Enum v) noexcept;

Construct from Boolean

template<class Boolean>
requires std::is_same_v<Boolean, bool>
Param(Boolean const& b) noexcept;

Construct from String

template<class String>
requires std::is_convertible_v<
        String, std::string_view>
Param(String const& s);

Copy constructor

Synopsis

Declared in <mrdocs/Support/Lua.hpp>

Param(Param const& other) = delete;

Parameters

Name

Description

other

The object to copy construct from

Construct from Array

Synopsis

Declared in <mrdocs/Support/Lua.hpp>

Param(dom::Array arr) noexcept;

Parameters

Name

Description

arr

The object to construct from

Construct from Object

Synopsis

Declared in <mrdocs/Support/Lua.hpp>

Param(dom::Object obj) noexcept;

Parameters

Name

Description

obj

The object to construct from

Construct from int64_t

Synopsis

Declared in <mrdocs/Support/Lua.hpp>

Param(int64_t value) noexcept;

Parameters

Name

Description

value

The object to construct from

Construct from nullptr_t

Synopsis

Declared in <mrdocs/Support/Lua.hpp>

Param(std::nullptr_t value) noexcept;

Parameters

Name

Description

value

The object to construct from

Construct from string_view

Synopsis

Declared in <mrdocs/Support/Lua.hpp>

Param(std::string_view s) noexcept;

Parameters

Name

Description

s

The object to construct from

Construct from Value

Synopsis

Declared in <mrdocs/Support/Lua.hpp>

Param(Value const& value) noexcept;

Parameters

Name

Description

value

The object to copy construct from

Construct from Value

Synopsis

Declared in <mrdocs/Support/Lua.hpp>

Param(dom::Value const& value) noexcept;

Parameters

Name

Description

value

The object to copy construct from

Construct from char

Synopsis

Declared in <mrdocs/Support/Lua.hpp>

Param(char const* s) noexcept;

Parameters

Name

Description

s

The value to construct from

Construct from Enum

Synopsis

Declared in <mrdocs/Support/Lua.hpp>

template<class Enum>
requires std::is_enum_v<Enum>
Param(Enum v) noexcept;

Parameters

Name

Description

v

The object to construct from

Construct from Boolean

Synopsis

Declared in <mrdocs/Support/Lua.hpp>

template<class Boolean>
requires std::is_same_v<Boolean, bool>
Param(Boolean const& b) noexcept;

Parameters

Name

Description

b

The object to copy construct from

Construct from String

Synopsis

Declared in <mrdocs/Support/Lua.hpp>

template<class String>
requires std::is_convertible_v<
        String, std::string_view>
Param(String const& s);

Parameters

Name

Description

s

The object to copy construct from

Destructor

Synopsis

Declared in <mrdocs/Support/Lua.hpp>

~Param();

Copy assignment operator

Synopsis

Declared in <mrdocs/Support/Lua.hpp>

Param&
operator=(Param const& other) = delete;

Return Value

Reference to the current object

Parameters

Name

Description

other

The object to copy assign from

Synopsis

Declared in <mrdocs/Support/Lua.hpp>

dom::Array arr_;

Synopsis

Declared in <mrdocs/Support/Lua.hpp>

bool b_;

Synopsis

Declared in <mrdocs/Support/Lua.hpp>

int i_;

Synopsis

Declared in <mrdocs/Support/Lua.hpp>

int index_;

Synopsis

Declared in <mrdocs/Support/Lua.hpp>

dom::Object obj_;

Synopsis

Declared in <mrdocs/Support/Lua.hpp>

std::string_view s_;

Synopsis

Declared in <mrdocs/Support/Lua.hpp>

class Scope;

Member Functions

Name

Description

Scope [constructor]

Construct from Context

~Scope [destructor]

Destructor

getGlobal

Return a value from the global table if it exists.

getGlobalTable

Return the global table.

loadChunk

Load a Lua chunk

loadChunkFromFile

Run a Lua chunk.

Friends

Name

Description

mrdocs::lua::Access

Construct from Context

Synopsis

Declared in <mrdocs/Support/Lua.hpp>

Scope(Context const& ctx) noexcept;

Parameters

Name

Description

ctx

The object to copy construct from

Destructor

Synopsis

Declared in <mrdocs/Support/Lua.hpp>

~Scope();

Return a value from the global table if it exists.

Synopsis

Declared in <mrdocs/Support/Lua.hpp>

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

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>

Table
getGlobalTable();

Return Value

the global table.

Load a Lua chunk

Synopses

Declared in <mrdocs/Support/Lua.hpp>

Load a Lua chunk

Expected<Function>
loadChunk(
    std::string_view luaChunk,
    std::source_location loc = source_location::current());

Load a Lua chunk

Expected<Function>
loadChunk(
    std::string_view luaChunk,
    zstring chunkName,
    std::source_location loc = source_location::current());

Return Value

The function if successful, or an error.

Parameters

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>

Expected<Function>
loadChunk(
    std::string_view luaChunk,
    std::source_location loc = source_location::current());

Return Value

The function if successful, or an error.

Parameters

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>

Expected<Function>
loadChunk(
    std::string_view luaChunk,
    zstring chunkName,
    std::source_location loc = source_location::current());

Return Value

The function if successful, or an error.

Parameters

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>

Expected<Function>
loadChunkFromFile(
    std::string_view fileName,
    std::source_location loc = source_location::current());

Return Value

The function if successful, or an error.

Parameters

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>

class String
    : public Value

Base Classes

Name

Description

Value

A Lua value.

Member Functions

Name

Description

String [constructor]

Constructors

call

Invoke the value as a function.

displayString

Return a string representation.

get

isBoolean

isFunction

isNil

isNumber

isString

isTable

operator()

Invoke the value as a function.

operator*

type

operator std::string_view

Conversion to string_view

Protected Data Members

Name

index_

scope_

Friends

Name

Description

mrdocs::lua::Access

Constructors

Synopses

Declared in <mrdocs/Support/Lua.hpp>

Construct from Value

String(Value value);

Construct from string_view

explicit
String(std::string_view s);

Construct from Value

Synopsis

Declared in <mrdocs/Support/Lua.hpp>

String(Value value);

Parameters

Name

Description

value

The object to construct from

Construct from string_view

Synopsis

Declared in <mrdocs/Support/Lua.hpp>

explicit
String(std::string_view s);

Parameters

Name

Description

s

The object to construct from

Synopsis

Declared in <mrdocs/Support/Lua.hpp>

std::string_view
get() const noexcept;

Synopsis

Declared in <mrdocs/Support/Lua.hpp>

std::string_view
operator*() const noexcept;

Conversion to string_view

Synopsis

Declared in <mrdocs/Support/Lua.hpp>

operator std::string_view() const noexcept;

Return Value

The object converted to string_view

A Lua table.

Synopsis

Declared in <mrdocs/Support/Lua.hpp>

class Table
    : public Value

Base Classes

Name

Description

Value

A Lua value.

Member Functions

Name

Description

Table [constructor]

Constructors

call

Invoke the value as a function.

displayString

Return a string representation.

get

isBoolean

isFunction

isNil

isNumber

isString

isTable

operator()

Invoke the value as a function.

set

Create or replace the value with a key.

type

Protected Data Members

Name

index_

scope_

Friends

Name

Description

mrdocs::lua::Access

Constructors

Synopses

Declared in <mrdocs/Support/Lua.hpp>

Construct from Value

Table(Value value);

Construct from Scope

explicit
Table(Scope& scope);

Constructor

Table(
    Scope&,
    dom::Object const& obj);

Construct from Value

Synopsis

Declared in <mrdocs/Support/Lua.hpp>

Table(Value value);

Parameters

Name

Description

value

The object to construct from

Construct from Scope

Synopsis

Declared in <mrdocs/Support/Lua.hpp>

explicit
Table(Scope& scope);

Parameters

Name

Description

scope

The object to copy construct from

Constructor

Synopsis

Declared in <mrdocs/Support/Lua.hpp>

Table(
    Scope&,
    dom::Object const& obj);

Parameters

Name

Description

obj

A container of key and value pairs.

Synopsis

Declared in <mrdocs/Support/Lua.hpp>

Value
get(std::string_view key) const;

Create or replace the value with a key.

Synopsis

Declared in <mrdocs/Support/Lua.hpp>

void
set(
    std::string_view key,
    Param value) const;

Parameters

Name

Description

key

The key to set.

value

The value to set.

A Lua value.

Synopsis

Declared in <mrdocs/Support/Lua.hpp>

class Value;

Member Functions

Name

Description

Value [constructor]

Constructor.

~Value [destructor]

Destructor.

call

Invoke the value as a function.

displayString

Return a string representation.

isBoolean

isFunction

isNil

isNumber

isString

isTable

operator()

Invoke the value as a function.

type

Protected Member Functions

Name

Description

Value [constructor]

Constructor

Protected Data Members

Name

index_

scope_

Friends

Name

Description

mrdocs::lua::Access

Derived Classes

Name

Description

Function

A Lua function.

String

A Lua string.

Table

A Lua table.

Constructor.

Synopses

Declared in <mrdocs/Support/Lua.hpp>

Constructor.

Value() noexcept;

Constructor.

Value(Value const& other);

Constructor.

Value(Value&& other) noexcept;

Parameters

Name

Description

other

The value to copy.

Constructor.

Synopsis

Declared in <mrdocs/Support/Lua.hpp>

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>

Value(Value const& other);

Description

The new value will be assigned a new stack index which has the same underlying value as other.

Parameters

Name

Description

other

The value to copy.

Constructor.

Synopsis

Declared in <mrdocs/Support/Lua.hpp>

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

Name

Description

other

The object to move construct from

Destructor.

Synopsis

Declared in <mrdocs/Support/Lua.hpp>

~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>

template<class... Args>
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

Name

Description

args

Zero or more values to pass to the function.

Return a string representation.

Synopsis

Declared in <mrdocs/Support/Lua.hpp>

std::string
displayString() const;

Description

This function is used for diagnostics.

Return Value

a string representation.

Synopsis

Declared in <mrdocs/Support/Lua.hpp>

bool
isBoolean() const noexcept;

Synopsis

Declared in <mrdocs/Support/Lua.hpp>

bool
isFunction() const noexcept;

Synopsis

Declared in <mrdocs/Support/Lua.hpp>

bool
isNil() const noexcept;

Synopsis

Declared in <mrdocs/Support/Lua.hpp>

bool
isNumber() const noexcept;

Synopsis

Declared in <mrdocs/Support/Lua.hpp>

bool
isString() const noexcept;

Synopsis

Declared in <mrdocs/Support/Lua.hpp>

bool
isTable() const noexcept;

Invoke the value as a function.

Synopsis

Declared in <mrdocs/Support/Lua.hpp>

template<class... Args>
Value
operator()(Args...&&... args);

Return Value

Another instance of the object

Parameters

Name

Description

args

Zero or more values to pass to the function.

Synopsis

Declared in <mrdocs/Support/Lua.hpp>

Type
type() const noexcept;

Constructor

Synopsis

Declared in <mrdocs/Support/Lua.hpp>

Value(
    int,
    Scope&) noexcept;

Synopsis

Declared in <mrdocs/Support/Lua.hpp>

int index_;

Synopsis

Declared in <mrdocs/Support/Lua.hpp>

Scope* scope_;

A null‐terminated string.

Synopsis

Declared in <mrdocs/Support/Lua.hpp>

class zstring;

Member Functions

Name

Description

zstring [constructor]

Constructors

c_str

Constructors

Synopses

Declared in <mrdocs/Support/Lua.hpp>

Construct from string_view

zstring(std::string_view s);

Construct from string

zstring(std::string const& s);

Construct from char

zstring(char const* s) noexcept;

Construct from string_view

Synopsis

Declared in <mrdocs/Support/Lua.hpp>

zstring(std::string_view s);

Parameters

Name

Description

s

The object to construct from

Construct from string

Synopsis

Declared in <mrdocs/Support/Lua.hpp>

zstring(std::string const& s);

Parameters

Name

Description

s

The object to copy construct from

Construct from char

Synopsis

Declared in <mrdocs/Support/Lua.hpp>

zstring(char const* s) noexcept;

Parameters

Name

Description

s

The value to construct from

Synopsis

Declared in <mrdocs/Support/Lua.hpp>

char const*
c_str() const noexcept;

Types of values.

Synopsis

Declared in <mrdocs/Support/Lua.hpp>

enum class Type : int;

Members

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

Name

Description

Located

Parameter type that adds a source location to a value.

Results

Provides statistics on the number of reported messages.

Enums

Name

Description

Level

Severity levels attached to reported messags.

Functions

Name

Description

debug

Report a message to the console.

error

Report a message to the console.

fatal

Report a message to the console.

getMinimumLevel

info

Report a message to the console.

log

Format a message to the console.

print

Report a message to the console.

setMinimumLevel

Set the minimum threshold level for reporting.

setSourceLocationWarnings

If true, source location information will be printed with warnings, errors, and fatal messages.

trace

Report a message to the console.

warn

Report a message to the console.

Variables

Name

Description

results

Holds current statistics on reported messages.

Parameter type that adds a source location to a value.

Synopsis

Declared in <mrdocs/Support/Report.hpp>

template<class T>
struct Located;

Member Functions

Name

Located [constructor]

Data Members

Name

value

where

Non-Member Functions

Name

Description

debug

Report a message to the console.

error

Report a message to the console.

fatal

Report a message to the console.

info

Report a message to the console.

trace

Report a message to the console.

warn

Report a message to the console.

Synopsis

Declared in <mrdocs/Support/Report.hpp>

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>

T value;

Synopsis

Declared in <mrdocs/Support/Report.hpp>

std::source_location where;

Provides statistics on the number of reported messages.

Synopsis

Declared in <mrdocs/Support/Report.hpp>

struct Results;

Data Members

Synopsis

Declared in <mrdocs/Support/Report.hpp>

std::size_t debugCount;

Synopsis

Declared in <mrdocs/Support/Report.hpp>

std::size_t errorCount;

Synopsis

Declared in <mrdocs/Support/Report.hpp>

std::size_t fatalCount;

Synopsis

Declared in <mrdocs/Support/Report.hpp>

std::size_t infoCount;

Synopsis

Declared in <mrdocs/Support/Report.hpp>

std::size_t traceCount;

Synopsis

Declared in <mrdocs/Support/Report.hpp>

std::size_t warnCount;

Severity levels attached to reported messags.

Synopsis

Declared in <mrdocs/Support/Report.hpp>

enum class Level : int;

Members

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

Name

Description

log

Format a message to the console.

print

Report a message to the console.

setMinimumLevel

Set the minimum threshold level for reporting.

Report a message to the console.

Synopsis

Declared in <mrdocs/Support/Report.hpp>

template<class... Args>
void
debug(
    Located<std::string_view> format,
    Args...&&... args);

Parameters

Name

Description

format

The format string.

args

Optional additional arguments

Report a message to the console.

Synopsis

Declared in <mrdocs/Support/Report.hpp>

template<class... Args>
void
error(
    Located<std::string_view> format,
    Args...&&... args);

Parameters

Name

Description

format

The format string.

args

Optional additional arguments

Report a message to the console.

Synopsis

Declared in <mrdocs/Support/Report.hpp>

template<class... Args>
void
fatal(
    Located<std::string_view> format,
    Args...&&... args);

Parameters

Name

Description

format

The format string.

args

Optional additional arguments

Synopsis

Declared in <mrdocs/Support/Report.hpp>

Level
getMinimumLevel() noexcept;

Report a message to the console.

Synopsis

Declared in <mrdocs/Support/Report.hpp>

template<class... Args>
void
info(
    Located<std::string_view> format,
    Args...&&... args);

Parameters

Name

Description

format

The format string.

args

Optional additional arguments

Format a message to the console.

Synopsis

Declared in <mrdocs/Support/Report.hpp>

template<class... Args>
void
log(
    Level level,
    Located<std::string_view> fs,
    Args...&&... args);

Parameters

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.

void
print(std::string const& text);

Report a message to the console.

void
print(
    Level level,
    std::string const& text,
    std::source_location const* loc = nullptr,
    Error const* e = nullptr);

Parameters

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>

void
print(std::string const& text);

Parameters

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>

void
print(
    Level level,
    std::string const& text,
    std::source_location const* loc = nullptr,
    Error const* e = nullptr);

Parameters

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>

void
setMinimumLevel(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

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>

void
setSourceLocationWarnings(bool b) noexcept;

Parameters

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>

template<class... Args>
void
trace(
    Located<std::string_view> format,
    Args...&&... args);

Parameters

Name

Description

format

The format string.

args

Optional additional arguments

Report a message to the console.

Synopsis

Declared in <mrdocs/Support/Report.hpp>

template<class... Args>
void
warn(
    Located<std::string_view> format,
    Args...&&... args);

Parameters

Name

Description

format

The format string.

args

Optional additional arguments

Holds current statistics on reported messages.

Synopsis

Declared in <mrdocs/Support/Report.hpp>

extern
Results results;

Synopsis

Declared in <mrdocs/ADT/UnorderedStringMap.hpp>

template<class T>
using UnorderedStringMap = std::unordered_map<std::string, T, StringHash, std::equal_to>;

Synopsis

Declared in <mrdocs/ADT/UnorderedStringMap.hpp>

template<class T>
using UnorderedStringMultiMap = std::unordered_multimap<std::string, T, StringHash, std::equal_to>;

Synopsis

Declared in <mrdocs/Support/TypeTraits.hpp>

template<
    typename From,
    typename To>
using add_const_from_t = add_const_from<From, To>::type;

Synopsis

Declared in <mrdocs/Support/TypeTraits.hpp>

template<
    typename From,
    typename To>
using add_cv_from_t = add_cv_from<From, To>::type;

Synopsis

Declared in <mrdocs/Support/TypeTraits.hpp>

template<
    typename From,
    typename To>
using add_cvref_from_t = add_cvref_from<From, To>::type;

Synopsis

Declared in <mrdocs/Support/TypeTraits.hpp>

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>

template<
    typename From,
    typename To>
using add_reference_from_t = add_reference_from<From, To>::type;

Synopsis

Declared in <mrdocs/Support/TypeTraits.hpp>

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>

template<
    typename From,
    typename To>
using add_volatile_from_t = add_volatile_from<From, To>::type;

Synopsis

Declared in <mrdocs/Support/TypeTraits.hpp>

template<
    typename T,
    typename U>
using make_dependent_t = T;

Synopsis

Declared in <mrdocs/Support/Path.hpp>

struct AnyFileVisitor;

Member Functions

Name

Description

~AnyFileVisitor [destructor] [virtual]

Destructor

visitFile [virtual]

Destructor

Synopsis

Declared in <mrdocs/Support/Path.hpp>

virtual
~AnyFileVisitor() = 0;

Synopsis

Declared in <mrdocs/Support/Path.hpp>

virtual
Expected<void>
visitFile(std::string_view fileName) = 0;

Synopsis

Declared in <mrdocs/Metadata/Type/ArrayType.hpp>

struct ArrayType final
    : TypeCommonBase<TypeKind::Array>

Base Classes

Member Functions

Name

Description

operator<=>

Three‐way comparison operators

Static Member Functions

Data Members

Static Data Members

Name

kind_id

Non-Member Functions

Name

Description

innerType

Return the inner type.

innerType

Return the inner type.

innerTypePtr

Return the inner type.

innerTypePtr

Return the inner type.

Three‐way comparison operators

Synopses

Declared in <mrdocs/Metadata/Type/ArrayType.hpp>

Three‐way comparison operator

std::strong_ordering
operator<=>(ArrayType const& rhs) const;

Three‐way comparison operator

constexpr
auto
operator<=>(TypeCommonBase<mrdocs::TypeKind::Array> const& rhs) const = default;

Three‐way comparison operator

Synopsis

Declared in <mrdocs/Metadata/Type/ArrayType.hpp>

std::strong_ordering
operator<=>(ArrayType const& rhs) const;

Return Value

The relative order of the objects

Parameters

Name

Description

rhs

The right operand

Three‐way comparison operator

Synopsis

Declared in <mrdocs/Metadata/Type/TypeBase.hpp>

constexpr
auto
operator<=>(TypeCommonBase<mrdocs::TypeKind::Array> const& rhs) const = default;

Return Value

The relative order of the objects

Parameters

Name

Description

rhs

The right operand

Synopsis

Declared in <mrdocs/Metadata/Type/TypeBase.hpp>

constexpr
static
bool
isArray() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Type/TypeBase.hpp>

constexpr
static
bool
isAuto() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Type/TypeBase.hpp>

constexpr
static
bool
isDecltype() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Type/TypeBase.hpp>

constexpr
static
bool
isFunction() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Type/TypeBase.hpp>

constexpr
static
bool
isLValueReference() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Type/TypeBase.hpp>

constexpr
static
bool
isMemberPointer() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Type/TypeBase.hpp>

constexpr
static
bool
isNamed() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Type/TypeBase.hpp>

constexpr
static
bool
isPointer() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Type/TypeBase.hpp>

constexpr
static
bool
isRValueReference() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Type/ArrayType.hpp>

Synopsis

Declared in <mrdocs/Metadata/Type/ArrayType.hpp>

Polymorphic<Type> ElementType = Polymorphic<Type>(AutoType{});

Synopsis

Declared in <mrdocs/Metadata/Type/TypeBase.hpp>

constexpr static
TypeKind kind_id;

A non‐owning, read‐only view over a contiguous array of T.

Synopsis

Declared in <mrdocs/ADT/ArrayView.hpp>

template<class T>
class ArrayView;

Types

Member Functions

Static Data Members

Name

npos

Friends

Name

Description

mrdocs::operator<=>

Three‐way comparison operator

mrdocs::operator==

Equality operator

Description

Similar to std::string_view but for arbitrary element type T.

Synopsis

Declared in <mrdocs/ADT/ArrayView.hpp>

using const_iterator = T const*;

Synopsis

Declared in <mrdocs/ADT/ArrayView.hpp>

using const_pointer = T const*;

Synopsis

Declared in <mrdocs/ADT/ArrayView.hpp>

using const_reference = T const&;

Synopsis

Declared in <mrdocs/ADT/ArrayView.hpp>

using const_reverse_iterator = std::reverse_iterator<const_iterator>;

Synopsis

Declared in <mrdocs/ADT/ArrayView.hpp>

using difference_type = std::ptrdiff_t;

Synopsis

Declared in <mrdocs/ADT/ArrayView.hpp>

using iterator = T const*;

Synopsis

Declared in <mrdocs/ADT/ArrayView.hpp>

using pointer = T const*;

Synopsis

Declared in <mrdocs/ADT/ArrayView.hpp>

using reference = T const&;

Synopsis

Declared in <mrdocs/ADT/ArrayView.hpp>

using reverse_iterator = std::reverse_iterator<const_iterator>;

Synopsis

Declared in <mrdocs/ADT/ArrayView.hpp>

using size_type = std::size_t;

Synopsis

Declared in <mrdocs/ADT/ArrayView.hpp>

using value_type = T;

Constructors

Synopses

Declared in <mrdocs/ADT/ArrayView.hpp>

Default constructor

constexpr
ArrayView() noexcept = default;

Construct from T

template<size_type N>
constexpr
ArrayView(T const(& arr)[]) noexcept;
constexpr
ArrayView(
    T const* data,
    size_type count) noexcept;
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,
    size_type count) noexcept;

Default constructor

Synopsis

Declared in <mrdocs/ADT/ArrayView.hpp>

constexpr
ArrayView() noexcept = default;

Construct from T

Synopsis

Declared in <mrdocs/ADT/ArrayView.hpp>

template<size_type N>
constexpr
ArrayView(T const(& arr)[]) noexcept;

Parameters

Name

Description

arr

The object to copy construct from

Synopsis

Declared in <mrdocs/ADT/ArrayView.hpp>

constexpr
ArrayView(
    T const* data,
    size_type count) noexcept;

Synopsis

Declared in <mrdocs/ADT/ArrayView.hpp>

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,
    size_type count) noexcept;

Synopsis

Declared in <mrdocs/ADT/ArrayView.hpp>

constexpr
const_reference
at(size_type i) const;

Synopsis

Declared in <mrdocs/ADT/ArrayView.hpp>

constexpr
const_reference
back() const;

Synopsis

Declared in <mrdocs/ADT/ArrayView.hpp>

constexpr
const_iterator
begin() const noexcept;

Synopsis

Declared in <mrdocs/ADT/ArrayView.hpp>

constexpr
const_iterator
cbegin() const noexcept;

Synopsis

Declared in <mrdocs/ADT/ArrayView.hpp>

constexpr
const_iterator
cend() const noexcept;

Synopsis

Declared in <mrdocs/ADT/ArrayView.hpp>

constexpr
const_pointer
data() const noexcept;

Synopsis

Declared in <mrdocs/ADT/ArrayView.hpp>

constexpr
ArrayView
drop_back(size_type n) const noexcept;

Synopsis

Declared in <mrdocs/ADT/ArrayView.hpp>

constexpr
ArrayView
drop_front(size_type n) const noexcept;

Synopsis

Declared in <mrdocs/ADT/ArrayView.hpp>

[[nodiscard]]
constexpr
bool
empty() const noexcept;

Synopsis

Declared in <mrdocs/ADT/ArrayView.hpp>

constexpr
const_iterator
end() const noexcept;

Synopsis

Declared in <mrdocs/ADT/ArrayView.hpp>

constexpr
const_reference
front() const;

Synopsis

Declared in <mrdocs/ADT/ArrayView.hpp>

constexpr
size_type
length() const noexcept;

Synopsis

Declared in <mrdocs/ADT/ArrayView.hpp>

constexpr
const_reference
operator[](size_type i) const noexcept;

Synopsis

Declared in <mrdocs/ADT/ArrayView.hpp>

constexpr
const_reverse_iterator
rbegin() const noexcept;

Synopsis

Declared in <mrdocs/ADT/ArrayView.hpp>

constexpr
void
remove_prefix(size_type n) noexcept;

Synopsis

Declared in <mrdocs/ADT/ArrayView.hpp>

constexpr
void
remove_suffix(size_type n) noexcept;

Synopsis

Declared in <mrdocs/ADT/ArrayView.hpp>

constexpr
const_reverse_iterator
rend() const noexcept;

Synopsis

Declared in <mrdocs/ADT/ArrayView.hpp>

constexpr
size_type
size() const noexcept;

Synopsis

Declared in <mrdocs/ADT/ArrayView.hpp>

constexpr
ArrayView
slice(
    size_type pos,
    size_type count = npos) const noexcept;

Synopsis

Declared in <mrdocs/ADT/ArrayView.hpp>

constexpr
ArrayView
take_back(size_type n) const noexcept;

Synopsis

Declared in <mrdocs/ADT/ArrayView.hpp>

constexpr
ArrayView
take_front(size_type n) const noexcept;

Synopsis

Declared in <mrdocs/ADT/ArrayView.hpp>

inline constexpr static
size_type npos = static_cast<size_type>(‐1);

Synopsis

Declared in <mrdocs/Metadata/Type/AutoType.hpp>

struct AutoType final
    : TypeCommonBase<TypeKind::Auto>

Base Classes

Member Functions

Name

Description

operator<=>

Three‐way comparison operators

Static Member Functions

Data Members

Name

Description

Constraint

Constraint on the auto type, if any.

Keyword

Static Data Members

Name

kind_id

Non-Member Functions

Name

Description

innerType

Return the inner type.

innerType

Return the inner type.

innerTypePtr

Return the inner type.

innerTypePtr

Return the inner type.

Three‐way comparison operators

Synopses

Declared in <mrdocs/Metadata/Type/AutoType.hpp>

Three‐way comparison operator

std::strong_ordering
operator<=>(AutoType const& rhs) const;

Three‐way comparison operator

constexpr
auto
operator<=>(TypeCommonBase<mrdocs::TypeKind::Auto> const& rhs) const = default;

Three‐way comparison operator

Synopsis

Declared in <mrdocs/Metadata/Type/AutoType.hpp>

std::strong_ordering
operator<=>(AutoType const& rhs) const;

Return Value

The relative order of the objects

Parameters

Name

Description

rhs

The right operand

Three‐way comparison operator

Synopsis

Declared in <mrdocs/Metadata/Type/TypeBase.hpp>

constexpr
auto
operator<=>(TypeCommonBase<mrdocs::TypeKind::Auto> const& rhs) const = default;

Return Value

The relative order of the objects

Parameters

Name

Description

rhs

The right operand

Synopsis

Declared in <mrdocs/Metadata/Type/TypeBase.hpp>

constexpr
static
bool
isArray() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Type/TypeBase.hpp>

constexpr
static
bool
isAuto() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Type/TypeBase.hpp>

constexpr
static
bool
isDecltype() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Type/TypeBase.hpp>

constexpr
static
bool
isFunction() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Type/TypeBase.hpp>

constexpr
static
bool
isLValueReference() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Type/TypeBase.hpp>

constexpr
static
bool
isMemberPointer() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Type/TypeBase.hpp>

constexpr
static
bool
isNamed() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Type/TypeBase.hpp>

constexpr
static
bool
isPointer() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Type/TypeBase.hpp>

constexpr
static
bool
isRValueReference() noexcept;

Constraint on the auto type, if any.

Synopsis

Declared in <mrdocs/Metadata/Type/AutoType.hpp>

Optional<Polymorphic<Name>> Constraint = std::nullopt;

Synopsis

Declared in <mrdocs/Metadata/Type/AutoType.hpp>

AutoKind Keyword = AutoKind::Auto;

Synopsis

Declared in <mrdocs/Metadata/Type/TypeBase.hpp>

constexpr static
TypeKind kind_id;

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

template<class E>
class BadExpectedAccess
    : public BadExpectedAccess<void>

Base Classes

Name

Description

BadExpectedAccess<void>

Member Functions

Name

Description

BadExpectedAccess [constructor]

Construct from E

operator=

error

what [virtual]

Protected Member Functions

Name

Description

operator=

Assignment operators

Construct from E

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

explicit
BadExpectedAccess(E e);

Parameters

Name

Description

e

The object to construct from

Synopses

Declared in <mrdocs/Support/Expected.hpp>

[[nodiscard]]
E&
error() & noexcept;
[[nodiscard]]
E const&
error() const & noexcept;
[[nodiscard]]
E&&
error() && noexcept;
[[nodiscard]]
E const&&
error() const && noexcept;

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

[[nodiscard]]
E&
error() & noexcept;

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

[[nodiscard]]
E const&
error() const & noexcept;

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

[[nodiscard]]
E&&
error() && noexcept;

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

[[nodiscard]]
E const&&
error() const && noexcept;

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

template<>
class BadExpectedAccess<void>
    : public std::exception

Base Classes

Name

Description

std::exception

Member Functions

Name

operator=

what [virtual]

Protected Member Functions

Name

Description

BadExpectedAccess [constructor]

Constructors

~BadExpectedAccess [destructor] [virtual]

Destructor

operator=

Assignment operators

Derived Classes

Name

Description

BadExpectedAccess

Synopsis

Declared in <__exception/exception.h>

[[__visibility__, __exclude_from_explicit_instantiation__, __abi_tag__]]
constexpr
exception&
operator=(exception const& value) noexcept = default;

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

[[nodiscard]]
virtual
char const*
what() const noexcept override;

Constructors

Synopses

Declared in <mrdocs/Support/Expected.hpp>

Default constructor

constexpr
BadExpectedAccess() noexcept = default;

Copy constructor

constexpr
BadExpectedAccess(BadExpectedAccess<void> const& other) = default;

Move constructor

constexpr
BadExpectedAccess(BadExpectedAccess<void>&& other) = default;

Default constructor

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

constexpr
BadExpectedAccess() noexcept = default;

Copy constructor

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

constexpr
BadExpectedAccess(BadExpectedAccess<void> const& other) = default;

Parameters

Name

Description

other

The object to copy construct from

Move constructor

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

constexpr
BadExpectedAccess(BadExpectedAccess<void>&& other) = default;

Parameters

Name

Description

other

The object to move construct from

Destructor

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

constexpr
virtual
~BadExpectedAccess() override = default;

Assignment operators

Synopses

Declared in <mrdocs/Support/Expected.hpp>

Copy assignment operator

constexpr
BadExpectedAccess<void>&
operator=(BadExpectedAccess<void> const& other) = default;

Move assignment operator

Copy assignment operator

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

constexpr
BadExpectedAccess<void>&
operator=(BadExpectedAccess<void> const& other) = default;

Return Value

Reference to the current object

Parameters

Name

Description

other

The object to copy assign from

Move assignment operator

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

constexpr
BadExpectedAccess<void>&
operator=(BadExpectedAccess<void>&& other) = default;

Return Value

Reference to the current object

Parameters

Name

Description

other

The object to move assign from

Metadata for a direct base.

Synopsis

Declared in <mrdocs/Metadata/Symbol/RecordBase.hpp>

struct BaseInfo;

Member Functions

Name

Description

BaseInfo [constructor] [deleted]

Constructors

Data Members

Name

Description

Access

The access specifier for the base.

IsVirtual

Whether the base is virtual.

Type

The base type.

Constructors

Synopses

Declared in <mrdocs/Metadata/Symbol/RecordBase.hpp>

Default constructor

BaseInfo() = delete;
BaseInfo(
    Polymorphic<Type>&& type,
    AccessKind const access,
    bool const is_virtual);

Default constructor

Synopsis

Declared in <mrdocs/Metadata/Symbol/RecordBase.hpp>

BaseInfo() = delete;

Synopsis

Declared in <mrdocs/Metadata/Symbol/RecordBase.hpp>

BaseInfo(
    Polymorphic<Type>&& type,
    AccessKind const access,
    bool const is_virtual);

The access specifier for the base.

Synopsis

Declared in <mrdocs/Metadata/Symbol/RecordBase.hpp>

AccessKind Access = AccessKind::Public;

Whether the base is virtual.

Synopsis

Declared in <mrdocs/Metadata/Symbol/RecordBase.hpp>

bool IsVirtual = false;

The base type.

Synopsis

Declared in <mrdocs/Metadata/Symbol/RecordBase.hpp>

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>

struct ConceptSymbol final
    : SymbolCommonBase<SymbolKind::Concept>

Base Classes

Name

Description

SymbolCommonBase<SymbolKind::Concept>

Base class for providing variant discriminator functions.

Member Functions

Name

Description

ConceptSymbol [constructor]

Construct from SymbolID

operator<=>

Three‐way comparison operators

Static Member Functions

Data Members

Name

Description

Constraint

The concepts constraint‐expression

Template

The concepts template parameters

Static Data Members

Name

kind_id

Non-Member Functions

Name

Description

merge

Merges two Symbol objects.

Construct from SymbolID

Synopsis

Declared in <mrdocs/Metadata/Symbol/Concept.hpp>

explicit
ConceptSymbol(SymbolID const& ID) noexcept;

Parameters

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

std::strong_ordering
operator<=>(ConceptSymbol const& other) const;

Three‐way comparison operator

Three‐way comparison operator

Synopsis

Declared in <mrdocs/Metadata/Symbol/Concept.hpp>

std::strong_ordering
operator<=>(ConceptSymbol const& other) const;

Return Value

The relative order of the objects

Parameters

Name

Description

other

The right operand

Three‐way comparison operator

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolBase.hpp>

auto
operator<=>(SymbolCommonBase<mrdocs::SymbolKind::Concept> const& rhs) const = default;

Return Value

The relative order of the objects

Parameters

Name

Description

rhs

The right operand

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolNodes.inc>

constexpr
static
bool
isConcept() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolNodes.inc>

constexpr
static
bool
isEnum() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolNodes.inc>

constexpr
static
bool
isEnumConstant() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolNodes.inc>

constexpr
static
bool
isFunction() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolNodes.inc>

constexpr
static
bool
isGuide() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolNodes.inc>

constexpr
static
bool
isNamespace() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolNodes.inc>

constexpr
static
bool
isNamespaceAlias() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolNodes.inc>

constexpr
static
bool
isOverloads() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolNodes.inc>

constexpr
static
bool
isRecord() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolNodes.inc>

constexpr
static
bool
isTypedef() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolNodes.inc>

constexpr
static
bool
isUsing() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolNodes.inc>

constexpr
static
bool
isVariable() noexcept;

The concepts constraint‐expression

Synopsis

Declared in <mrdocs/Metadata/Symbol/Concept.hpp>

ExprInfo Constraint;

The concepts template parameters

Synopsis

Declared in <mrdocs/Metadata/Symbol/Concept.hpp>

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolBase.hpp>

constexpr static
SymbolKind kind_id;

Configuration used to generate the Corpus and Docs

Synopsis

Declared in <mrdocs/Config.hpp>

class Config;

Types

Name

Description

Settings

Settings values used to generate the Corpus and Docs

Member Functions

Name

Description

~Config [destructor] [virtual]

Destructor.

object [virtual]

Return a DOM object representing the configuration keys.

operator‐>

Return the settings used to generate the Corpus and Docs.

settings [virtual]

Return the settings used to generate the Corpus and Docs.

threadPool [virtual]

Return a pool of threads for executing work.

Protected Member Functions

Name

Description

Config [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>

struct Settings
    : PublicSettings

Base Classes

Name

Description

PublicSettings

Types

Name

Description

OptionProperties

Option validation traits

Enums

Name

Description

BaseMemberInheritance

Enum for "base‐member‐inheritance" options

Generator

Enum for "generator" options

LogLevel

Enum for "log‐level" options

OptionType

Option Type

SortSymbolBy

Enum for "sort‐symbol‐by" options

Member Functions

Name

Description

configDir

Full path to the config file directory

normalize

Normalize the configuration values with a visitor

operator‐>

Member access operator

outputDir

Full path to the output directory

visit

Visit all options

Static Member Functions

Name

Description

fromString

load

load overloads

load_file

Loads the public configuration settings from the specified file.

toString

Data Members

Name

Description

addons

Path to the Addons directory

autoBrief

command is required.

autoFunctionMetadata

Automatically provide missing documentation for special functions and trivial metadata

autoRelates

Automatically find non‐member functions

baseUrl

Base URL for links to source code

cmake

CMake arguments when generating the compilation database from CMakeLists.txt

cmdLineInputs

Configuration or compilation database files

compilationDatabase

Path to the compilation database

concurrency

Number of threads to use

config

Mr.Docs configuration file

configYaml

A string holding the complete configuration YAML.

cwdDir

Full path to the current working directory

defines

Additional defines passed to the compiler

embedded

Output an embeddable document

exclude

Input directories to exclude

excludePatterns

File patterns to exclude

excludeSymbols

Symbol patterns to exclude

extractAll

Extract all symbols

extractAnonymousNamespaces

Extraction policy for anonymous namespaces

extractEmptyNamespaces

Extraction policy for empty namespaces

extractFriends

Extraction policy for friend functions and classes

extractImplicitSpecializations

Implicit template specializations used as base classes are extracted as dependencies

extractLocalClasses

Extraction policy for records defined locally in source files

extractPrivate

Extraction policy for private class members

extractPrivateBases

Extraction policy for private base classes

extractPrivateVirtual

Extraction policy for private virtual methods of a class

extractStatic

Extraction policy for static members of a file

filePatterns

File patterns to include

generator

Generator used to create the documentation

globalNamespaceIndex

Use the global namespace page as an index for all symbols

ignoreFailures

Whether AST visitation failures should not stop the program

ignoreMapErrors

Continue if files are not mapped correctly

implementationDefined

Symbols rendered as "implementation‐defined"

includeSymbols

Symbol patterns to include

includes

Include paths

inheritBaseMembers

Determine how derived classes inherit base members

input

Input directories to extract symbols from

legibleNames

Use legible names

libcIncludes

Standard Library include paths

logLevel

The minimum reporting level

missingIncludePrefixes

Include path prefixes allowed to be missing

missingIncludeShims

Shims for forgiven missing include files

mrdocsRootDir

Full path to the mrdocs root directory

multipage

Generate a multipage documentation

output

Directory or file for generating output

overloads

Detect and group function overloads

recursive

Recursively include files from "input" paths

report

The minimum reporting level

seeBelow

Exposition only symbols rendered as "see‐below".

sfinae

Detect and reduce SFINAE expressions

showEnumConstants

Show enum constant pages in the documentation

showNamespaces

Show namespace pages in the documentation

sortMembers

Sort the members of a record

sortMembersAssignment1St

Sort assignment operators first

sortMembersBy

Determine how members of a record are sorted

sortMembersConversionLast

Sort conversion operators last

sortMembersCtors1St

Sort constructors first

sortMembersDtors1St

Sort destructors first

sortMembersRelationalLast

Sort relational operators last

sortNamespaceMembersBy

Determine how members of a namespace are sorted

sourceRoot

Path to the root directory of the source code

stdlibIncludes

C++ Standard Library include paths

systemIncludes

System include paths

tagfile

Path for the tagfile

useSystemLibc

Use the system C standard library

useSystemStdlib

Use the system C++ standard library

verbose

Verbose output

warnAsError

Treat warnings as errors

warnBrokenRef

Warn if a documentation reference is broken

warnIfDocError

Warn if documentation has errors

warnIfUndocEnumVal

Warn if enum values are not documented

warnIfUndocumented

Warn if symbols are not documented

warnNoParamdoc

Warn if parameters are not documented

warnUnnamedParam

Warn if documented functions have unnamed parameters

warnings

Enable warning messages

Friends

Name

Description

llvm::yaml::MappingTraits

Option validation traits

Synopsis

Declared in <mrdocs/PublicSettings.hpp>

struct OptionProperties;

Enum for "base‐member‐inheritance" options

Synopsis

Declared in <mrdocs/PublicSettings.hpp>

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>

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>

enum class LogLevel : int;

Description

This enumeration value is valid for the log‐level option

Option Type

Synopsis

Declared in <mrdocs/PublicSettings.hpp>

enum class OptionType : int;

Enum for "sort‐symbol‐by" options

Synopsis

Declared in <mrdocs/PublicSettings.hpp>

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>

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

Normalize the configuration values with a visitor

template<class F>
Expected<void>
normalize(
    ReferenceDirectories const& dirs,
    F&& f);

Return Value

Expected<void> with the error if any

Parameters

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>

Expected<void>
normalize(ReferenceDirectories const& dirs);

Description

This function normalizes and validates the configuration values.

Return Value

Expected<void> with the error if any

Parameters

Name

Description

dirs

The reference directories to resolve paths

Normalize the configuration values with a visitor

Synopsis

Declared in <mrdocs/PublicSettings.hpp>

template<class F>
Expected<void>
normalize(
    ReferenceDirectories const& dirs,
    F&& f);

Description

This function normalizes and validates the configuration values.

Return Value

Expected<void> with the error if any

Parameters

Name

Description

dirs

The reference directories to resolve paths

f

The visitor

Member access operator

Synopsis

Declared in <mrdocs/Config.hpp>

constexpr
Settings const*
operator‐>() const noexcept;

Return Value

Pointer to the current object

Full path to the output directory

Synopsis

Declared in <mrdocs/Config.hpp>

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

template<class F>
void
visit(F&& f);

Visit all options

template<class F>
void
visit(F&& f) const;

Parameters

Name

Description

f

The visitor

Visit all options

Synopsis

Declared in <mrdocs/PublicSettings.hpp>

template<class F>
void
visit(F&& f);

Parameters

Name

Description

f

The visitor

Visit all options

Synopsis

Declared in <mrdocs/PublicSettings.hpp>

template<class F>
void
visit(F&& f) const;

Parameters

Name

Description

f

The visitor

Synopses

Declared in <mrdocs/PublicSettings.hpp>

constexpr
static
bool
fromString(
    std::string_view const str,
    BaseMemberInheritance& e);
constexpr
static
bool
fromString(
    std::string_view const str,
    Generator& e);
constexpr
static
bool
fromString(
    std::string_view const str,
    LogLevel& e);
constexpr
static
bool
fromString(
    std::string_view const str,
    SortSymbolBy& e);

Synopsis

Declared in <mrdocs/PublicSettings.hpp>

constexpr
static
bool
fromString(
    std::string_view const str,
    BaseMemberInheritance& e);

Synopsis

Declared in <mrdocs/PublicSettings.hpp>

constexpr
static
bool
fromString(
    std::string_view const str,
    Generator& e);

Synopsis

Declared in <mrdocs/PublicSettings.hpp>

constexpr
static
bool
fromString(
    std::string_view const str,
    LogLevel& e);

Synopsis

Declared in <mrdocs/PublicSettings.hpp>

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

static
Expected<void>
load(
    PublicSettings& s,
    std::string_view configYaml);

Loads the public configuration settings from the specified YAML file.

static
Expected<void>
load(
    Config::Settings& s,
    std::string_view configYaml,
    ReferenceDirectories const& dirs);

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

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>

static
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

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>

static
Expected<void>
load(
    Config::Settings& s,
    std::string_view configYaml,
    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

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>

static
Expected<void>
load_file(
    Config::Settings& s,
    std::string_view configPath,
    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

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>

constexpr
static
std::string_view
toString(BaseMemberInheritance const e);
constexpr
static
std::string_view
toString(Generator const e);
constexpr
static
std::string_view
toString(LogLevel const e);
constexpr
static
std::string_view
toString(SortSymbolBy const e);

Synopsis

Declared in <mrdocs/PublicSettings.hpp>

constexpr
static
std::string_view
toString(BaseMemberInheritance const e);

Synopsis

Declared in <mrdocs/PublicSettings.hpp>

constexpr
static
std::string_view
toString(Generator const e);

Synopsis

Declared in <mrdocs/PublicSettings.hpp>

constexpr
static
std::string_view
toString(LogLevel const e);

Synopsis

Declared in <mrdocs/PublicSettings.hpp>

constexpr
static
std::string_view
toString(SortSymbolBy const e);

Path to the Addons directory

Synopsis

Declared in <mrdocs/PublicSettings.hpp>

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>

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>

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>

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>

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>

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>

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>

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>

unsigned int concurrency = 0;

Description

The desired level of concurrency: 0 for hardware‐suggested.

Mr.Docs configuration file

Synopsis

Declared in <mrdocs/PublicSettings.hpp>

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>

std::string configYaml;

Full path to the current working directory

Synopsis

Declared in <mrdocs/Config.hpp>

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>

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>

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>

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>

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>

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>

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>

bool extractAnonymousNamespaces = true;

Description

Determine whether symbols in anonymous namespaces should be extracted.

Extraction policy for empty namespaces

Synopsis

Declared in <mrdocs/PublicSettings.hpp>

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>

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>

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>

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>

bool extractPrivate = false;

Description

Determine whether private class members should be extracted

Extraction policy for private base classes

Synopsis

Declared in <mrdocs/PublicSettings.hpp>

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>

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>

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>

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>

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>

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>

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>

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>

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>

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>

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>

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>

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>

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>

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>

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>

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>

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>

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>

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>

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>

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>

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>

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>

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>

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>

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>

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>

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>

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>

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>

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>

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>

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>

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>

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>

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>

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>

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>

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>

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>

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>

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>

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>

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>

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>

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>

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>

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>

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>

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>

virtual
~Config() noexcept = 0;

Return a DOM object representing the configuration keys.

Synopsis

Declared in <mrdocs/Config.hpp>

virtual
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>

constexpr
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>

virtual
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>

virtual
ThreadPool&
threadPool() const noexcept = 0;

Return Value

a pool of threads for executing work.

Default constructor

Synopsis

Declared in <mrdocs/Config.hpp>

Config() noexcept;

Represents an expression with a (possibly known) value

Synopsis

Declared in <mrdocs/Metadata/Expression.hpp>

template<typename T>
struct ConstantExprInfo
    : ExprInfo

Base Classes

Name

Description

ExprInfo

Represents an expression

Types

Name

Description

type

The underlying type of the expression

Member Functions

Name

Description

asExpr

operator<=>

Three‐way comparison operators

Data Members

Name

Description

Value

The expressions value, if it is known

Written

The expression, as written

The underlying type of the expression

Synopsis

Declared in <mrdocs/Metadata/Expression.hpp>

using type = T;

Three‐way comparison operators

Synopses

Declared in <mrdocs/Metadata/Expression.hpp>

Three‐way comparison operator

auto
operator<=>(ConstantExprInfo const& rhs) const = default;

Three‐way comparison operator

constexpr
auto
operator<=>(ExprInfo const& rhs) const = default;

Three‐way comparison operator

Synopsis

Declared in <mrdocs/Metadata/Expression.hpp>

auto
operator<=>(ConstantExprInfo const& rhs) const = default;

Return Value

The relative order of the objects

Parameters

Name

Description

rhs

The right operand

Three‐way comparison operator

Synopsis

Declared in <mrdocs/Metadata/Expression.hpp>

constexpr
auto
operator<=>(ExprInfo const& rhs) const = default;

Return Value

The relative order of the objects

Parameters

Name

Description

rhs

The right operand

The expressions value, if it is known

Synopsis

Declared in <mrdocs/Metadata/Expression.hpp>

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>

struct ConstantTArg final
    : TArgCommonBase<TArgKind::Constant>

Base Classes

Member Functions

Name

Description

operator<=>

Three‐way comparison operator

Static Member Functions

Data Members

Name

Description

Value

Template argument expression.

Static Data Members

Name

kind_id

Three‐way comparison operator

Synopsis

Declared in <mrdocs/Metadata/TArg/ConstantTArg.hpp>

constexpr
auto
operator<=>(ConstantTArg const& rhs) const = default;

Return Value

The relative order of the objects

Parameters

Name

Description

rhs

The right operand

Synopsis

Declared in <mrdocs/Metadata/TArg/TArgBase.hpp>

constexpr
static
bool
isConstant() noexcept;

Synopsis

Declared in <mrdocs/Metadata/TArg/TArgBase.hpp>

constexpr
static
bool
isTemplate() noexcept;

Synopsis

Declared in <mrdocs/Metadata/TArg/TArgBase.hpp>

constexpr
static
bool
isType() noexcept;

Template argument expression.

Synopsis

Declared in <mrdocs/Metadata/TArg/ConstantTArg.hpp>

ExprInfo Value;

Synopsis

Declared in <mrdocs/Metadata/TArg/TArgBase.hpp>

constexpr static
TArgKind kind_id;

A constant template parameter

Synopsis

Declared in <mrdocs/Metadata/TParam/ConstantTParam.hpp>

struct ConstantTParam final
    : TParamCommonBase<TParamKind::Constant>

Base Classes

Member Functions

Name

Description

operator<=>

Three‐way comparison operators

Static Member Functions

Data Members

Name

Description

Type

Type of the non‐type template parameter

Static Data Members

Name

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

std::strong_ordering
operator<=>(ConstantTParam const& rhs) const;

Three‐way comparison operator

Three‐way comparison operator

Synopsis

Declared in <mrdocs/Metadata/TParam/ConstantTParam.hpp>

std::strong_ordering
operator<=>(ConstantTParam const& rhs) const;

Return Value

The relative order of the objects

Parameters

Name

Description

rhs

The right operand

Three‐way comparison operator

Synopsis

Declared in <mrdocs/Metadata/TParam/TParamBase.hpp>

auto
operator<=>(TParamCommonBase<mrdocs::TParamKind::Constant> const& rhs) const = default;

Return Value

The relative order of the objects

Parameters

Name

Description

rhs

The right operand

Synopsis

Declared in <mrdocs/Metadata/TParam/TParamBase.hpp>

constexpr
static
bool
isConstant() noexcept;

Synopsis

Declared in <mrdocs/Metadata/TParam/TParamBase.hpp>

constexpr
static
bool
isTemplate() noexcept;

Synopsis

Declared in <mrdocs/Metadata/TParam/TParamBase.hpp>

constexpr
static
bool
isType() noexcept;

Type of the non‐type template parameter

Synopsis

Declared in <mrdocs/Metadata/TParam/ConstantTParam.hpp>

Polymorphic<Type> Type = Polymorphic<struct Type>(AutoType{});

Synopsis

Declared in <mrdocs/Metadata/TParam/TParamBase.hpp>

constexpr static
TParamKind kind_id;

The collection of declarations in extracted form.

Synopsis

Declared in <mrdocs/Corpus.hpp>

class Corpus;

Types

Name

Description

TraverseOptions

Options to traverse the members of an Symbol.

iterator

The iterator type for the index of all symbols.

Member Functions

Name

Description

~Corpus [destructor] [virtual]

Destructor.

begin [virtual]

Return the begin iterator for the index of all symbols.

empty

Whether the corpus contains any symbols.

end [virtual]

Return the end iterator for the index.

exists

Return true if an Symbol with the specified symbol ID exists.

find [virtual]

Return the Symbol with the matching ID, or nullptr.

get

Return the Symbol with the specified symbol ID.

globalNamespace

Return the metadata for the global namespace.

lookup

lookup overloads

qualifiedName

qualifiedName overloads

traverse

Visit the members of specified Symbol.

visitIDs

Visit the specified Symbol IDs

Data Members

Name

Description

config

The configuration used to generate this corpus.

Protected Member Functions

Name

Description

Corpus [constructor]

Construct from Config

Non-Member Functions

Name

Description

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>

struct TraverseOptions;

Data Members

Name

Description

ordered

Whether to traverse in a stable order

recursive

Whether to skip inherited members whose parent is not the Symbol

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>

bool ordered = false;

Whether to skip inherited members whose parent is not the Symbol

Synopsis

Declared in <mrdocs/Corpus.hpp>

bool recursive = false;

Whether to skip inherited members whose parent is not the Symbol

Synopsis

Declared in <mrdocs/Corpus.hpp>

bool skipInherited = false;

The iterator type for the index of all symbols.

Synopsis

Declared in <mrdocs/Corpus.hpp>

class iterator;

Types

Member Functions

Name

Description

iterator [constructor]

Constructors

operator=

Copy assignment operator

operator*

operator++

Increment operators

operator‐>

operator==

Equality operator

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 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>

using const_pointer = value_type const*;

Synopsis

Declared in <mrdocs/Corpus.hpp>

using const_reference = value_type const&;

Synopsis

Declared in <mrdocs/Corpus.hpp>

using difference_type = std::ptrdiff_t;

Synopsis

Declared in <mrdocs/Corpus.hpp>

using pointer = value_type*;

Synopsis

Declared in <mrdocs/Corpus.hpp>

using reference = value_type&;

Synopsis

Declared in <mrdocs/Corpus.hpp>

using size_type = std::size_t;

Synopsis

Declared in <mrdocs/Corpus.hpp>

using value_type = Symbol const;

Constructors

Synopses

Declared in <mrdocs/Corpus.hpp>

Default constructor

constexpr
iterator() = default;

Copy constructor

constexpr
iterator(iterator const& other) = default;

Constructor

iterator(
    Corpus const* corpus,
    Symbol const* val,
    Symbol const*(* next)(Corpus const*, Symbol const*));

Default constructor

Synopsis

Declared in <mrdocs/Corpus.hpp>

constexpr
iterator() = default;

Copy constructor

Synopsis

Declared in <mrdocs/Corpus.hpp>

constexpr
iterator(iterator const& other) = default;

Parameters

Name

Description

other

The object to copy construct from

Constructor

Synopsis

Declared in <mrdocs/Corpus.hpp>

iterator(
    Corpus const* corpus,
    Symbol const* val,
    Symbol const*(* next)(Corpus const*, Symbol const*));

Parameters

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>

constexpr
iterator&
operator=(iterator const& other) = default;

Return Value

Reference to the current object

Parameters

Name

Description

other

The object to copy assign from

Synopsis

Declared in <mrdocs/Corpus.hpp>

const_reference
operator*() const noexcept;

Increment operators

Synopses

Declared in <mrdocs/Corpus.hpp>

Increment operator

iterator&
operator++() noexcept;

Increment operator

iterator
operator++(int) noexcept;

Increment operator

Synopsis

Declared in <mrdocs/Corpus.hpp>

iterator&
operator++() noexcept;

Return Value

Reference to the current object

Increment operator

Synopsis

Declared in <mrdocs/Corpus.hpp>

iterator
operator++(int) noexcept;

Return Value

Another instance of the object

Synopsis

Declared in <mrdocs/Corpus.hpp>

const_pointer
operator‐>() const noexcept;

Equality operator

Synopsis

Declared in <mrdocs/Corpus.hpp>

bool
operator==(iterator const& other) const noexcept;

Return Value

true if the objects are equal, false otherwise

Parameters

Name

Description

other

The right operand

Inequality operator

Synopsis

Declared in <mrdocs/Corpus.hpp>

bool
operator!=(iterator const& other) const noexcept;

Return Value

true if the objects are not equal, false otherwise

Parameters

Name

Description

other

The right operand

Destructor.

Synopsis

Declared in <mrdocs/Corpus.hpp>

virtual
~Corpus() noexcept;

Return the begin iterator for the index of all symbols.

Synopsis

Declared in <mrdocs/Corpus.hpp>

virtual
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>

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>

virtual
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>

bool
exists(SymbolID const& id) const noexcept;

Description

This function uses the 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

Name

Description

id

A unique identifier for a symbol.

Return the Symbol with the matching ID, or nullptr.

Synopsis

Declared in <mrdocs/Corpus.hpp>

virtual
Symbol const*
find(SymbolID const& id) const noexcept = 0;

Return Value

the Symbol with the matching ID, or nullptr.

Parameters

Name

Description

id

A unique identifier for a symbol.

Return the Symbol with the specified symbol ID.

Synopsis

Declared in <mrdocs/Corpus.hpp>

template<class T = Symbol>
requires std::derived_from<T, Symbol>
T const&
get(SymbolID const& id) const noexcept;

Description

This function uses the find function to locate the Symbol with the specified symbol ID. The result is converted to the specified type T and returned.

The function 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

Name

Description

id

A unique identifier for a symbol.

Return the metadata for the global namespace.

Synopsis

Declared in <mrdocs/Corpus.hpp>

NamespaceSymbol const&
globalNamespace() const noexcept;

Description

This function is equivalent to calling 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.

Expected<Symbol const&>
lookup(std::string_view name) const;

Return the Symbol for the matching string in a given context.

virtual
Expected<Symbol const&>
lookup(
    SymbolID const& context,
    std::string_view name) const = 0;

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 traverse to find all matching symbols.

Parameters

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>

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

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>

virtual
Expected<Symbol const&>
lookup(
    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 traverse to find all matching symbols.

Parameters

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>

std::string
qualifiedName(Symbol const& I) const;

Return the fully qualified name of the specified Symbol.

virtual
void
qualifiedName(
    Symbol const& I,
    std::string& temp) const = 0;
std::string
qualifiedName(
    Symbol const& I,
    SymbolID const& context) const;

Return a qualified name from the specified context.

virtual
void
qualifiedName(
    Symbol const& I,
    SymbolID const& context,
    std::string& result) const = 0;

Return Value

A reference to the string temp.

Parameters

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>

std::string
qualifiedName(Symbol const& I) const;

Return the fully qualified name of the specified Symbol.

Synopsis

Declared in <mrdocs/Corpus.hpp>

virtual
void
qualifiedName(
    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

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>

std::string
qualifiedName(
    Symbol const& I,
    SymbolID const& context) const;

Return a qualified name from the specified context.

Synopsis

Declared in <mrdocs/Corpus.hpp>

virtual
void
qualifiedName(
    Symbol const& I,
    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

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.

template<
    std::derived_from<Symbol> T,
    class F,
    class... Args>
void
traverse(
    T const& I,
    F&& f,
    Args...&&... args) const;

Visit the members of specified Symbol.

template<
    std::derived_from<Symbol> T,
    class F,
    class... Args>
void
traverse(
    TraverseOptions const& opts,
    T const& I,
    F&& f,
    Args...&&... args) const;

Parameters

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>

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

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>

template<
    std::derived_from<Symbol> T,
    class F,
    class... Args>
void
traverse(
    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

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>

template<
    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

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>

Config const& config;

Construct from Config

Synopsis

Declared in <mrdocs/Corpus.hpp>

explicit
Corpus(Config const& config_) noexcept;

Parameters

Name

Description

config_

The object to copy construct from

Synopsis

Declared in <mrdocs/Metadata/Type/DecltypeType.hpp>

struct DecltypeType final
    : TypeCommonBase<TypeKind::Decltype>

Base Classes

Member Functions

Name

Description

operator<=>

Three‐way comparison operators

Static Member Functions

Data Members

Name

Operand

Static Data Members

Name

kind_id

Non-Member Functions

Name

Description

innerType

Return the inner type.

innerType

Return the inner type.

innerTypePtr

Return the inner type.

innerTypePtr

Return the inner type.

Three‐way comparison operators

Synopses

Declared in <mrdocs/Metadata/Type/DecltypeType.hpp>

Three‐way comparison operator

constexpr
auto
operator<=>(DecltypeType const& rhs) const = default;

Three‐way comparison operator

constexpr
auto
operator<=>(TypeCommonBase<mrdocs::TypeKind::Decltype> const& rhs) const = default;

Three‐way comparison operator

Synopsis

Declared in <mrdocs/Metadata/Type/DecltypeType.hpp>

constexpr
auto
operator<=>(DecltypeType const& rhs) const = default;

Return Value

The relative order of the objects

Parameters

Name

Description

rhs

The right operand

Three‐way comparison operator

Synopsis

Declared in <mrdocs/Metadata/Type/TypeBase.hpp>

constexpr
auto
operator<=>(TypeCommonBase<mrdocs::TypeKind::Decltype> const& rhs) const = default;

Return Value

The relative order of the objects

Parameters

Name

Description

rhs

The right operand

Synopsis

Declared in <mrdocs/Metadata/Type/TypeBase.hpp>

constexpr
static
bool
isArray() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Type/TypeBase.hpp>

constexpr
static
bool
isAuto() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Type/TypeBase.hpp>

constexpr
static
bool
isDecltype() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Type/TypeBase.hpp>

constexpr
static
bool
isFunction() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Type/TypeBase.hpp>

constexpr
static
bool
isLValueReference() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Type/TypeBase.hpp>

constexpr
static
bool
isMemberPointer() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Type/TypeBase.hpp>

constexpr
static
bool
isNamed() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Type/TypeBase.hpp>

constexpr
static
bool
isPointer() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Type/TypeBase.hpp>

constexpr
static
bool
isRValueReference() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Type/DecltypeType.hpp>

ExprInfo Operand;

Synopsis

Declared in <mrdocs/Metadata/Type/TypeBase.hpp>

constexpr static
TypeKind kind_id;

A processed documentation comment attached to a declaration.

Synopsis

Declared in <mrdocs/Metadata/DocComment.hpp>

struct DocComment;

Member Functions

Name

Description

DocComment [constructor]

Constructors

append

Append blocks from another DocComment to this.

empty

Return true if this is empty

operator==

Equality operator

operator!=

Inequality operator

operator<=>

Three‐way comparison operator

Data Members

Name

Description

Document

The list of text blocks.

brief

A brief description of the symbol.

exceptions

The list of exceptions.

params

The list of parameters.

postconditions

The list of postconditions.

preconditions

The list of preconditions.

related

The list of "related" references.

relates

The list of "relates" references.

returns

The list of return type descriptions.

sees

The list of "see also" references.

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.

DocComment() noexcept;

Constructor

explicit
DocComment(std::vector<Polymorphic<doc::Block>> blocks);

Constructor.

Synopsis

Declared in <mrdocs/Metadata/DocComment.hpp>

DocComment() noexcept;

Constructor

Synopsis

Declared in <mrdocs/Metadata/DocComment.hpp>

explicit
DocComment(std::vector<Polymorphic<doc::Block>> blocks);

Parameters

Name

Description

blocks

The object to construct from

Append blocks from another DocComment to this.

Synopsis

Declared in <mrdocs/Metadata/DocComment.hpp>

void
append(DocComment&& other);

Parameters

Name

Description

other

A processed documentation comment attached to a declaration.

Return true if this is empty

Synopsis

Declared in <mrdocs/Metadata/DocComment.hpp>

bool
empty() const noexcept;

Return Value

true if this is empty

Equality operator

Synopsis

Declared in <mrdocs/Metadata/DocComment.hpp>

constexpr
bool
operator==(DocComment const& rhs) const noexcept = default;

Return Value

true if the objects are equal, false otherwise

Parameters

Name

Description

rhs

The right operand

Inequality operator

Synopsis

Declared in <mrdocs/Metadata/DocComment.hpp>

bool
operator!=(DocComment const& rhs) const noexcept;

Return Value

true if the objects are not equal, false otherwise

Parameters

Name

Description

rhs

The right operand

Three‐way comparison operator

Synopsis

Declared in <mrdocs/Metadata/DocComment.hpp>

auto
operator<=>(DocComment const& other) const noexcept;

Return Value

The relative order of the objects

Parameters

Name

Description

other

The right operand

The list of text blocks.

Synopsis

Declared in <mrdocs/Metadata/DocComment.hpp>

std::vector<Polymorphic<doc::Block>> Document;

A brief description of the symbol.

Synopsis

Declared in <mrdocs/Metadata/DocComment.hpp>

The list of exceptions.

Synopsis

Declared in <mrdocs/Metadata/DocComment.hpp>

std::vector<doc::ThrowsBlock> exceptions;

The list of parameters.

Synopsis

Declared in <mrdocs/Metadata/DocComment.hpp>

std::vector<doc::ParamBlock> params;

The list of postconditions.

Synopsis

Declared in <mrdocs/Metadata/DocComment.hpp>

std::vector<doc::PostconditionBlock> postconditions;

The list of preconditions.

Synopsis

Declared in <mrdocs/Metadata/DocComment.hpp>

std::vector<doc::PreconditionBlock> preconditions;

The list of "related" references.

Synopsis

Declared in <mrdocs/Metadata/DocComment.hpp>

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>

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>

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>

std::vector<doc::SeeBlock> sees;

The list of template parameters.

Synopsis

Declared in <mrdocs/Metadata/DocComment.hpp>

std::vector<doc::TParamBlock> tparams;

Front‐end factory for producing Dom nodes.

Synopsis

Declared in <mrdocs/Metadata/DomCorpus.hpp>

class DomCorpus;

Member Functions

Name

Description

DomCorpus [constructor]

Constructor.

~DomCorpus [destructor] [virtual]

Destructor.

construct [virtual]

Construct a lazy Dom object representing the specified symbol.

get

Return a Dom object representing the given symbol.

getCorpus

Returns the Corpus associated with the Dom.

getDocComment [virtual]

Return a Dom value representing the DocComment.

operator*

Returns the Corpus associated with the Dom.

operator‐>

Returns the Corpus associated with the Dom.

Non-Member Functions

Name

Description

getParents

Return a list of the parent symbols of the specified Info.

Description

This class keeps a reference to the Corpus of extracted metadata, and provides a mechanism for constructing DOM nodes representing the metadata.

A 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>

DomCorpus(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

Name

Description

corpus

The Corpus whose metadata to use.

Destructor.

Synopsis

Declared in <mrdocs/Metadata/DomCorpus.hpp>

virtual
~DomCorpus();

Construct a lazy Dom object representing the specified symbol.

Synopsis

Declared in <mrdocs/Metadata/DomCorpus.hpp>

virtual
dom::Object
construct(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

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>

dom::Value
get(SymbolID const& id) const;

Return Value

A value containing the symbol contents, or null if id is invalid.

Parameters

Name

Description

id

The id of the symbol to return.

Returns the Corpus associated with the Dom.

Synopsis

Declared in <mrdocs/Metadata/DomCorpus.hpp>

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>

virtual
dom::Value
getDocComment(DocComment const& jd) const;

Description

The default implementation returns null. A 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

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>

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>

Corpus const*
operator‐>() const;

Return Value

the Corpus associated with the Dom.

Info for enum constants.

Synopsis

Declared in <mrdocs/Metadata/Symbol/EnumConstant.hpp>

struct EnumConstantSymbol final
    : SymbolCommonBase<SymbolKind::EnumConstant>

Base Classes

Name

Description

SymbolCommonBase<SymbolKind::EnumConstant>

Base class for providing variant discriminator functions.

Member Functions

Name

Description

EnumConstantSymbol [constructor]

Construct from SymbolID

operator<=>

Three‐way comparison operator

Static Member Functions

Data Members

Name

Description

Initializer

The initializer expression, if any

Static Data Members

Name

kind_id

Non-Member Functions

Name

Description

merge

Merges two Symbol objects.

Construct from SymbolID

Synopsis

Declared in <mrdocs/Metadata/Symbol/EnumConstant.hpp>

explicit
EnumConstantSymbol(SymbolID ID) noexcept;

Parameters

Name

Description

ID

The object to construct from

Three‐way comparison operator

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolBase.hpp>

auto
operator<=>(SymbolCommonBase<mrdocs::SymbolKind::EnumConstant> const& rhs) const = default;

Return Value

The relative order of the objects

Parameters

Name

Description

rhs

The right operand

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolNodes.inc>

constexpr
static
bool
isConcept() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolNodes.inc>

constexpr
static
bool
isEnum() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolNodes.inc>

constexpr
static
bool
isEnumConstant() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolNodes.inc>

constexpr
static
bool
isFunction() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolNodes.inc>

constexpr
static
bool
isGuide() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolNodes.inc>

constexpr
static
bool
isNamespace() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolNodes.inc>

constexpr
static
bool
isNamespaceAlias() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolNodes.inc>

constexpr
static
bool
isOverloads() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolNodes.inc>

constexpr
static
bool
isRecord() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolNodes.inc>

constexpr
static
bool
isTypedef() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolNodes.inc>

constexpr
static
bool
isUsing() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolNodes.inc>

constexpr
static
bool
isVariable() noexcept;

The initializer expression, if any

Synopsis

Declared in <mrdocs/Metadata/Symbol/EnumConstant.hpp>

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolBase.hpp>

constexpr static
SymbolKind kind_id;

Synopsis

Declared in <mrdocs/Metadata/Symbol/Enum.hpp>

struct EnumSymbol final
    : SymbolCommonBase<SymbolKind::Enum>

Base Classes

Name

Description

SymbolCommonBase<SymbolKind::Enum>

Base class for providing variant discriminator functions.

Member Functions

Name

Description

EnumSymbol [constructor]

Construct from SymbolID

operator<=>

Three‐way comparison operator

Static Member Functions

Data Members

Name

Description

Constants

The members of this scope.

Scoped

Indicates whether this enum is scoped (e.g. enum class).

UnderlyingType

The underlying type of this enum, if explicitly specified.

Static Data Members

Name

kind_id

Non-Member Functions

Name

Description

merge

Merges two Symbol objects.

Construct from SymbolID

Synopsis

Declared in <mrdocs/Metadata/Symbol/Enum.hpp>

explicit
EnumSymbol(SymbolID ID) noexcept;

Parameters

Name

Description

ID

The object to construct from

Three‐way comparison operator

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolBase.hpp>

auto
operator<=>(SymbolCommonBase<mrdocs::SymbolKind::Enum> const& rhs) const = default;

Return Value

The relative order of the objects

Parameters

Name

Description

rhs

The right operand

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolNodes.inc>

constexpr
static
bool
isConcept() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolNodes.inc>

constexpr
static
bool
isEnum() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolNodes.inc>

constexpr
static
bool
isEnumConstant() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolNodes.inc>

constexpr
static
bool
isFunction() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolNodes.inc>

constexpr
static
bool
isGuide() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolNodes.inc>

constexpr
static
bool
isNamespace() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolNodes.inc>

constexpr
static
bool
isNamespaceAlias() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolNodes.inc>

constexpr
static
bool
isOverloads() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolNodes.inc>

constexpr
static
bool
isRecord() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolNodes.inc>

constexpr
static
bool
isTypedef() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolNodes.inc>

constexpr
static
bool
isUsing() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolNodes.inc>

constexpr
static
bool
isVariable() noexcept;

The members of this scope.

Synopsis

Declared in <mrdocs/Metadata/Symbol/Enum.hpp>

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>

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>

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>

constexpr static
SymbolKind kind_id;

Holds the description of an error, or success.

Synopsis

Declared in <mrdocs/Support/Error.hpp>

class Error final

Member Functions

Name

Description

Error [constructor]

Constructor.

operator=

Assignment operators

Throw

Throw overloads

failed

Return true if this holds an error.

location

Return the source location.

message

Return the error string.

reason

Return the reason string.

swap

where

Return the location string.

operator bool

Return true if this holds an error.

operator==

Return true if this equals rhs.

Friends

Name

Description

mrdocs::swap

Non-Member Functions

Name

Description

formatError

Return a formatted error.

Constructor.

Synopses

Declared in <mrdocs/Support/Error.hpp>

Constructor.

constexpr
Error() noexcept = default;

Constructor.

constexpr
Error(Error const& other) = default;

Constructor.

constexpr
Error(Error&& other) noexcept = default;

Constructor.

explicit
Error(std::exception const& ex);

Constructor.

explicit
Error(
    std::string reason,
    std::source_location loc = source_location::current());

Constructor.

explicit
Error(
    std::error_code const& ec,
    std::source_location loc = source_location::current());

Constructor.

Error(
    std::vector<Error> const& errors,
    std::source_location loc = source_location::current());

Parameters

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>

constexpr
Error() noexcept = default;

Description

A default‐constructed error is equivalent to success.

Constructor.

Synopsis

Declared in <mrdocs/Support/Error.hpp>

constexpr
Error(Error const& other) = default;

Parameters

Name

Description

other

The object to copy construct from

Constructor.

Synopsis

Declared in <mrdocs/Support/Error.hpp>

constexpr
Error(Error&& other) noexcept = default;

Parameters

Name

Description

other

The object to move construct from

Constructor.

Synopsis

Declared in <mrdocs/Support/Error.hpp>

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

Name

Description

ex

The object to copy construct from

Constructor.

Synopsis

Declared in <mrdocs/Support/Error.hpp>

explicit
Error(
    std::string reason,
    std::source_location loc = source_location::current());

Parameters

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>

explicit
Error(
    std::error_code const& ec,
    std::source_location loc = source_location::current());

Parameters

Name

Description

ec

The error code.

loc

The source location where the error occurred.

Constructor.

Synopsis

Declared in <mrdocs/Support/Error.hpp>

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

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.

constexpr
Error&
operator=(Error const& other) = default;

Constructor.

constexpr
Error&
operator=(Error&& other) noexcept = default;

Assignment.

Synopsis

Declared in <mrdocs/Support/Error.hpp>

constexpr
Error&
operator=(Error const& other) = default;

Return Value

Reference to the current object

Parameters

Name

Description

other

The object to copy assign from

Constructor.

Synopsis

Declared in <mrdocs/Support/Error.hpp>

constexpr
Error&
operator=(Error&& other) noexcept = default;

Return Value

Reference to the current object

Parameters

Name

Description

other

The object to move assign from

Throw overloads

Synopses

Declared in <mrdocs/Support/Error.hpp>

Throw Exception(*this)

[[noreturn]]
void
Throw() const &;

Throw Exception(std::move(*this))

[[noreturn]]
void
Throw() &&;

Preconditions

  • this‐>failed()

Throw Exception(*this)

Synopsis

Declared in <mrdocs/Support/Error.hpp>

[[noreturn]]
void
Throw() const &;

Preconditions

  • this‐>failed()

Throw Exception(std::move(*this))

Synopsis

Declared in <mrdocs/Support/Error.hpp>

[[noreturn]]
void
Throw() &&;

Preconditions

  • this‐>failed()

Return true if this holds an error.

Synopsis

Declared in <mrdocs/Support/Error.hpp>

constexpr
bool
failed() const noexcept;

Return Value

true if this holds an error.

Return the source location.

Synopsis

Declared in <mrdocs/Support/Error.hpp>

constexpr
std::source_location const&
location() const noexcept;

Return Value

the source location.

Return the error string.

Synopsis

Declared in <mrdocs/Support/Error.hpp>

constexpr
std::string const&
message() const noexcept;

Return Value

the error string.

Return the reason string.

Synopsis

Declared in <mrdocs/Support/Error.hpp>

constexpr
std::string const&
reason() const noexcept;

Return Value

the reason string.

Synopsis

Declared in <mrdocs/Support/Error.hpp>

constexpr
void
swap(Error& rhs) noexcept;

Return the location string.

Synopsis

Declared in <mrdocs/Support/Error.hpp>

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>

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>

constexpr
bool
operator==(Error const& rhs) const noexcept;

Return Value

true if this equals rhs.

Parameters

Name

Description

rhs

The right operand

Type of all exceptions thrown by the API.

Synopsis

Declared in <mrdocs/Support/Error.hpp>

class Exception final
    : public std::exception

Base Classes

Name

Description

std::exception

Member Functions

Name

Description

Exception [constructor]

Constructor.

operator=

error

Return the Error stored in the exception.

what [virtual]

Return a null‐terminated error string.

Constructor.

Synopsis

Declared in <mrdocs/Support/Error.hpp>

explicit
Exception(Error err) noexcept;

Parameters

Name

Description

err

The object to construct from

Synopsis

Declared in <__exception/exception.h>

[[__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>

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>

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>

template<class Agent>
class ExecutorGroup
    : public ExecutorGroupBase

Base Classes

Name

Description

ExecutorGroupBase

Types

Name

arg_t

Member Functions

Name

Description

ExecutorGroup [constructor]

Construct from ThreadPool

async

Submit work to be executed.

emplace

Construct a new agent in the group.

wait

Block until all work has completed.

Protected Types

Name

AnyAgent

Impl

Protected Member Functions

Name

post

run

Protected Data Members

Name

agents_

impl_

work_

Construct from ThreadPool

Synopsis

Declared in <mrdocs/Support/ExecutorGroup.hpp>

explicit
ExecutorGroup(ThreadPool& threadPool);

Parameters

Name

Description

threadPool

The object to copy construct from

Submit work to be executed.

Synopsis

Declared in <mrdocs/Support/ExecutorGroup.hpp>

template<
    class F,
    class... Args>
void
async(
    F&& f,
    Args...&&... args);

Description

The function object must have this equivalent signature:

void( Agent&, Args... );

Parameters

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>

template<class... Args>
void
emplace(Args...&&... args);

Description

The behavior is undefined if there is any outstanding work or busy threads.

Parameters

Name

Description

args

Zero or more arguments to forward to the agent constructor.

Synopsis

Declared in <mrdocs/Support/ExecutorGroup.hpp>

class ExecutorGroupBase;

Types

Name

arg_t

Member Functions

Name

Description

ExecutorGroupBase [constructor]

Move constructor

~ExecutorGroupBase [destructor]

Destructor

wait

Block until all work has completed.

Protected Types

Name

AnyAgent

Impl

Protected Member Functions

Name

Description

ExecutorGroupBase [constructor]

Construct from ThreadPool

post

run

Protected Data Members

Derived Classes

Name

Description

ExecutorGroup

A set of execution agents for performing concurrent work.

Synopsis

Declared in <mrdocs/Support/ExecutorGroup.hpp>

template<class T>
using arg_t = ThreadPool::arg_t<T>;

Move constructor

Synopsis

Declared in <mrdocs/Support/ExecutorGroup.hpp>

ExecutorGroupBase(ExecutorGroupBase&& other) noexcept;

Parameters

Name

Description

other

The object to move construct from

Destructor

Synopsis

Declared in <mrdocs/Support/ExecutorGroup.hpp>

~ExecutorGroupBase();

Block until all work has completed.

Synopsis

Declared in <mrdocs/Support/ExecutorGroup.hpp>

[[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>

struct AnyAgent;

Member Functions

Name

Description

~AnyAgent [destructor] [virtual]

Destructor

get [virtual]

Destructor

Synopsis

Declared in <mrdocs/Support/ExecutorGroup.hpp>

virtual
~AnyAgent() = 0;

Synopsis

Declared in <mrdocs/Support/ExecutorGroup.hpp>

virtual
void*
get() noexcept = 0;

Synopsis

Declared in <mrdocs/Support/ExecutorGroup.hpp>

struct Impl;

Construct from ThreadPool

Synopsis

Declared in <mrdocs/Support/ExecutorGroup.hpp>

explicit
ExecutorGroupBase(ThreadPool& value);

Parameters

Name

Description

value

The object to copy construct from

Synopsis

Declared in <mrdocs/Support/ExecutorGroup.hpp>

Synopsis

Declared in <mrdocs/Support/ExecutorGroup.hpp>

void
run(std::unique_lock<std::mutex>);

Synopsis

Declared in <mrdocs/Support/ExecutorGroup.hpp>

std::vector<std::unique_ptr<AnyAgent>> agents_;

Synopsis

Declared in <mrdocs/Support/ExecutorGroup.hpp>

std::unique_ptr<Impl> impl_;

Synopsis

Declared in <mrdocs/Support/ExecutorGroup.hpp>

std::deque<any_callable<void(void*)>> work_;

A container holding an error or a value.

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

template<
    class T,
    class E = Error>
class Expected;

Types

Member Functions

Name

Description

Expected [constructor]

Constructors

~Expected [destructor]

Destructors

operator= [deleted]

Assignment operators

and_then

emplace

error

error_or

has_value

operator*

Dereference operators

operator‐>

Member access operators

or_else

swap

transform

transform_error

value

value_or

operator bool

Conversion to bool

Data Members

Name

unex_ [variant member]

val_ [variant member]

Friends

Name

Description

mrdocs::swap

mrdocs::operator==

Equality operator

mrdocs::operator==

Equality operator

mrdocs::operator==

Equality operator

mrdocs::Expected

A container holding an error or a value.

Non-Member Functions

Name

Description

forEachFile

Call a function for each file in a directory.

forEachFile

Visit each file in a directory.

getSinglePageFullPath

Return the full path for single page output.

parse

Parse a string view

files::createDirectory

Create a directory.

files::getFileText

Return the contents of a file as a string.

files::getFileType

Return the file type or an error

files::makeAbsolute

Return an absolute path from a possibly relative path.

files::requireAbsolute

Return an error if pathName is not absolute.

files::requireDirectory

Return an error if the path is not a directory.

js::registerHelper

Register a JavaScript helper function

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

using error_type = E;

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

template<class U>
using rebind = Expected<U, error_type>;

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

using unexpected_type = Unexpected<E>;

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

using value_type = T;

Constructors

Synopses

Declared in <mrdocs/Support/Expected.hpp>

Default constructor

constexpr
Expected() noexcept(std::is_nothrow_default_constructible_v<T>)
requires std::is_default_constructible_v<T>;

Copy constructor

Expected(Expected const& other) = default;

Copy constructor

constexpr
Expected(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>);

Copy constructor

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(Expected<U, G> const& x) noexcept(std::is_nothrow_constructible_v<T, const U &> && std::is_nothrow_constructible_v<E, const G &>);

Move constructor

Expected(Expected&& other) = default;

Move constructor

constexpr
Expected(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>);

Move constructor

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(Expected<U, G>&& x) noexcept(std::is_nothrow_constructible_v<T, U> && std::is_nothrow_constructible_v<E, G>);

Construct from Unexpected

template<class G = E>
requires std::is_constructible_v<E, G const&>
constexpr
explicit(!std::is_convertible_v<const G &, E>)
Expected(Unexpected<G> const& u) noexcept(std::is_nothrow_constructible_v<E, const G &>);

Construct from U

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>);

Construct from Unexpected

template<class G = E>
requires std::is_constructible_v<E, G>
constexpr
explicit(!std::is_convertible_v<G, E>)
Expected(Unexpected<G>&& u) noexcept(std::is_nothrow_constructible_v<E, G>);
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...>);
template<class... Args>
requires std::is_constructible_v<E, Args...>
constexpr
explicit
Expected(
    unexpect_t,
    Args...&&... args) noexcept(std::is_nothrow_constructible_v<E, Args...>);
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...>);
template<
    class U,
    class... Args>
requires std::is_constructible_v<E, std::initializer_list<U>&, Args...>
constexpr
explicit
Expected(
    unexpect_t,
    std::initializer_list<U> il,
    Args...&&... args) noexcept(std::is_nothrow_constructible_v<E, std::initializer_list<U> &, Args...>);

Default constructor

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

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>

Expected(Expected const& other) = default;

Parameters

Name

Description

other

The object to copy construct from

Copy constructor

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

constexpr
Expected(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

Name

Description

x

The object to copy construct from

Copy constructor

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

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(Expected<U, G> const& x) noexcept(std::is_nothrow_constructible_v<T, const U &> && std::is_nothrow_constructible_v<E, const G &>);

Parameters

Name

Description

x

The object to copy construct from

Move constructor

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

Expected(Expected&& other) = default;

Parameters

Name

Description

other

The object to move construct from

Move constructor

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

constexpr
Expected(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

Name

Description

x

The object to move construct from

Move constructor

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

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(Expected<U, G>&& x) noexcept(std::is_nothrow_constructible_v<T, U> && std::is_nothrow_constructible_v<E, G>);

Parameters

Name

Description

x

The object to move construct from

Construct from Unexpected

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

template<class G = E>
requires std::is_constructible_v<E, G const&>
constexpr
explicit(!std::is_convertible_v<const G &, E>)
Expected(Unexpected<G> const& u) noexcept(std::is_nothrow_constructible_v<E, const G &>);

Parameters

Name

Description

u

The object to copy construct from

Construct from U

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

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

Name

Description

v

The object to move construct from

Construct from Unexpected

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

template<class G = E>
requires std::is_constructible_v<E, G>
constexpr
explicit(!std::is_convertible_v<G, E>)
Expected(Unexpected<G>&& u) noexcept(std::is_nothrow_constructible_v<E, G>);

Parameters

Name

Description

u

The object to move construct from

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

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>

template<class... Args>
requires std::is_constructible_v<E, Args...>
constexpr
explicit
Expected(
    unexpect_t,
    Args...&&... args) noexcept(std::is_nothrow_constructible_v<E, Args...>);

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

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>

template<
    class U,
    class... Args>
requires std::is_constructible_v<E, std::initializer_list<U>&, Args...>
constexpr
explicit
Expected(
    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

constexpr
~Expected() = default;

Destructor

constexpr
~Expected()
requires (!std::is_trivially_destructible_v<T>)
        || (!std::is_trivially_destructible_v<E>);

Destructor

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

constexpr
~Expected() = default;

Destructor

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

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

Expected&
operator=(Expected const& other) = delete;

Copy assignment operator

constexpr
Expected&
operator=(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>);

Move assignment operator

constexpr
Expected&
operator=(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>);

Assignment operator

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
Expected&
operator=(Unexpected<G> const& e);

Assignment operator

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
Expected&
operator=(U&& v);

Assignment operator

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
Expected&
operator=(Unexpected<G>&& e);

Copy assignment operator

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

Expected&
operator=(Expected const& other) = delete;

Return Value

Reference to the current object

Parameters

Name

Description

other

The object to copy assign from

Copy assignment operator

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

constexpr
Expected&
operator=(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

Name

Description

x

The object to copy assign from

Move assignment operator

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

constexpr
Expected&
operator=(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

Name

Description

x

The object to move assign from

Assignment operator

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

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
Expected&
operator=(Unexpected<G> const& e);

Return Value

Reference to the current object

Parameters

Name

Description

e

The object to copy assign from

Assignment operator

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

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
Expected&
operator=(U&& v);

Return Value

Reference to the current object

Parameters

Name

Description

v

The object to move assign from

Assignment operator

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

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
Expected&
operator=(Unexpected<G>&& e);

Return Value

Reference to the current object

Parameters

Name

Description

e

The object to move assign from

Synopses

Declared in <mrdocs/Support/Expected.hpp>

template<class Fn>
requires std::is_constructible_v<E, E&>
constexpr
auto
and_then(Fn&& f) &;
template<class Fn>
requires std::is_constructible_v<E, E const&>
constexpr
auto
and_then(Fn&& f) const &;
template<class Fn>
requires std::is_constructible_v<E, E>
constexpr
auto
and_then(Fn&& f) &&;
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>

template<class Fn>
requires std::is_constructible_v<E, E&>
constexpr
auto
and_then(Fn&& f) &;

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

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>

template<class Fn>
requires std::is_constructible_v<E, E>
constexpr
auto
and_then(Fn&& f) &&;

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

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>

template<class... Args>
requires std::is_nothrow_constructible_v<T, Args...>
constexpr
T&
emplace(Args...&&... args) noexcept;
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;

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

template<class... Args>
requires std::is_nothrow_constructible_v<T, Args...>
constexpr
T&
emplace(Args...&&... args) noexcept;

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

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>

constexpr
E const&
error() const & noexcept;
constexpr
E&
error() & noexcept;
constexpr
E const&&
error() const && noexcept;
constexpr
E&&
error() && noexcept;

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

constexpr
E const&
error() const & noexcept;

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

constexpr
E&
error() & noexcept;

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

constexpr
E const&&
error() const && noexcept;

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

constexpr
E&&
error() && noexcept;

Synopses

Declared in <mrdocs/Support/Expected.hpp>

template<class G = E>
constexpr
E
error_or(G&& e) const &;
template<class G = E>
constexpr
E
error_or(G&& e) &&;

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

template<class G = E>
constexpr
E
error_or(G&& e) const &;

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

template<class G = E>
constexpr
E
error_or(G&& e) &&;

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

[[nodiscard]]
constexpr
bool
has_value() const noexcept;

Dereference operators

Synopses

Declared in <mrdocs/Support/Expected.hpp>

[[nodiscard]]
constexpr
T const&
operator*() const & noexcept;
[[nodiscard]]
constexpr
T&
operator*() & noexcept;
[[nodiscard]]
constexpr
T const&&
operator*() const && noexcept;
[[nodiscard]]
constexpr
T&&
operator*() && noexcept;

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

[[nodiscard]]
constexpr
T const&
operator*() const & noexcept;

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

[[nodiscard]]
constexpr
T&
operator*() & noexcept;

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

[[nodiscard]]
constexpr
T const&&
operator*() const && noexcept;

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

[[nodiscard]]
constexpr
T&&
operator*() && noexcept;

Member access operators

Synopses

Declared in <mrdocs/Support/Expected.hpp>

[[nodiscard]]
constexpr
T const*
operator‐>() const noexcept;
[[nodiscard]]
constexpr
T*
operator‐>() noexcept;

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

[[nodiscard]]
constexpr
T const*
operator‐>() const noexcept;

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

[[nodiscard]]
constexpr
T*
operator‐>() noexcept;

Synopses

Declared in <mrdocs/Support/Expected.hpp>

template<class Fn>
requires std::is_constructible_v<T, T&>
constexpr
auto
or_else(Fn&& f) &;
template<class Fn>
requires std::is_constructible_v<T, T const&>
constexpr
auto
or_else(Fn&& f) const &;
template<class Fn>
requires std::is_constructible_v<T, T>
constexpr
auto
or_else(Fn&& f) &&;
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>

template<class Fn>
requires std::is_constructible_v<T, T&>
constexpr
auto
or_else(Fn&& f) &;

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

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>

template<class Fn>
requires std::is_constructible_v<T, T>
constexpr
auto
or_else(Fn&& f) &&;

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

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>

constexpr
void
swap(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>

template<class Fn>
requires std::is_constructible_v<E, E&>
constexpr
auto
transform(Fn&& f) &;
template<class Fn>
requires std::is_constructible_v<E, E const&>
constexpr
auto
transform(Fn&& f) const &;
template<class Fn>
requires std::is_constructible_v<E, E>
constexpr
auto
transform(Fn&& f) &&;
template<class Fn>
requires std::is_constructible_v<E, const E>
constexpr
auto
transform(Fn&& f) const &&;

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

template<class Fn>
requires std::is_constructible_v<E, E&>
constexpr
auto
transform(Fn&& f) &;

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

template<class Fn>
requires std::is_constructible_v<E, E const&>
constexpr
auto
transform(Fn&& f) const &;

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

template<class Fn>
requires std::is_constructible_v<E, E>
constexpr
auto
transform(Fn&& f) &&;

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

template<class Fn>
requires std::is_constructible_v<E, const E>
constexpr
auto
transform(Fn&& f) const &&;

Synopses

Declared in <mrdocs/Support/Expected.hpp>

template<class Fn>
requires std::is_constructible_v<T, T&>
constexpr
auto
transform_error(Fn&& f) &;
template<class Fn>
requires std::is_constructible_v<T, T const&>
constexpr
auto
transform_error(Fn&& f) const &;
template<class Fn>
requires std::is_constructible_v<T, T>
constexpr
auto
transform_error(Fn&& f) &&;
template<class Fn>
requires std::is_constructible_v<T, const T>
constexpr
auto
transform_error(Fn&& f) const &&;

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

template<class Fn>
requires std::is_constructible_v<T, T&>
constexpr
auto
transform_error(Fn&& f) &;

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

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>

template<class Fn>
requires std::is_constructible_v<T, T>
constexpr
auto
transform_error(Fn&& f) &&;

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

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>

constexpr
T const&
value() const &;
constexpr
T&
value() &;
constexpr
T const&&
value() const &&;
constexpr
T&&
value() &&;

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

constexpr
T const&
value() const &;

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

constexpr
T&
value() &;

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

constexpr
T const&&
value() const &&;

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

constexpr
T&&
value() &&;

Synopses

Declared in <mrdocs/Support/Expected.hpp>

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>);
template<class U>
constexpr
T
value_or(U&& v) && noexcept(std::is_nothrow_move_constructible_v<T> && std::is_nothrow_convertible_v<U, T>);

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

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>

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>

[[nodiscard]]
constexpr
explicit
operator bool() const noexcept;

Return Value

The object converted to bool

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

E unex_;

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

T val_;

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

template<
    class T,
    class E>
requires std::is_void_v<T>
class Expected<T, E>;

Types

Member Functions

Name

Description

Expected [constructor]

Constructors

~Expected [destructor]

Destructors

operator= [deleted]

Assignment operators

and_then

emplace

error

error_or

has_value

operator*

or_else

swap

transform

transform_error

value

operator bool

Conversion to bool

Data Members

Name

unex_ [variant member]

void_ [variant member]

Friends

Name

Description

mrdocs::swap

mrdocs::operator==

Equality operator

mrdocs::operator==

Equality operator

mrdocs::Expected

A container holding an error or a value.

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

using error_type = E;

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

template<class U>
using rebind = Expected<U, error_type>;

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

using unexpected_type = Unexpected<E>;

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

using value_type = T;

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

struct Unnamed struct;

Constructors

Synopses

Declared in <mrdocs/Support/Expected.hpp>

Default constructor

constexpr
Expected() noexcept;

Copy constructor

Expected(Expected const& other) = default;

Copy constructor

constexpr
Expected(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>);

Move constructor

Expected(Expected&& other) = default;

Move constructor

constexpr
Expected(Expected&& x) noexcept(std::is_nothrow_move_constructible_v<E>)
requires std::is_move_constructible_v<E> &&
        (!std::is_trivially_move_constructible_v<E>);

Construct from in_place_t

constexpr
explicit
Expected(std::in_place_t value) noexcept;

Construct from Unexpected

template<class G = E>
requires std::is_constructible_v<E, G const&>
constexpr
explicit(!std::is_convertible_v<const G &, E>)
Expected(Unexpected<G> const& u) noexcept(std::is_nothrow_constructible_v<E, const G &>);

Construct from Unexpected

template<class G = E>
requires std::is_constructible_v<E, G>
constexpr
explicit(!std::is_convertible_v<G, E>)
Expected(Unexpected<G>&& u) noexcept(std::is_nothrow_constructible_v<E, G>);

Construct from Expected

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(Expected<U, G> const& x) noexcept(std::is_nothrow_constructible_v<E, const G &>);

Construct from Expected

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(Expected<U, G>&& x) noexcept(std::is_nothrow_constructible_v<E, G>);
template<class... Args>
requires std::is_constructible_v<E, Args...>
constexpr
explicit
Expected(
    unexpect_t,
    Args...&&... args) noexcept(std::is_nothrow_constructible_v<E, Args...>);
template<
    class U,
    class... Args>
requires std::is_constructible_v<E, std::initializer_list<U>&, Args...>
constexpr
explicit
Expected(
    unexpect_t,
    std::initializer_list<U> il,
    Args...&&... args) noexcept(std::is_nothrow_constructible_v<E, std::initializer_list<U> &, Args...>);

Default constructor

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

constexpr
Expected() noexcept;

Copy constructor

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

Expected(Expected const& other) = default;

Parameters

Name

Description

other

The object to copy construct from

Copy constructor

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

constexpr
Expected(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

Name

Description

x

The object to copy construct from

Move constructor

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

Expected(Expected&& other) = default;

Parameters

Name

Description

other

The object to move construct from

Move constructor

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

constexpr
Expected(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

Name

Description

x

The object to move construct from

Construct from in_place_t

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

constexpr
explicit
Expected(std::in_place_t value) noexcept;

Parameters

Name

Description

value

The object to construct from

Construct from Unexpected

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

template<class G = E>
requires std::is_constructible_v<E, G const&>
constexpr
explicit(!std::is_convertible_v<const G &, E>)
Expected(Unexpected<G> const& u) noexcept(std::is_nothrow_constructible_v<E, const G &>);

Parameters

Name

Description

u

The object to copy construct from

Construct from Unexpected

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

template<class G = E>
requires std::is_constructible_v<E, G>
constexpr
explicit(!std::is_convertible_v<G, E>)
Expected(Unexpected<G>&& u) noexcept(std::is_nothrow_constructible_v<E, G>);

Parameters

Name

Description

u

The object to move construct from

Construct from Expected

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

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(Expected<U, G> const& x) noexcept(std::is_nothrow_constructible_v<E, const G &>);

Parameters

Name

Description

x

The object to copy construct from

Construct from Expected

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

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(Expected<U, G>&& x) noexcept(std::is_nothrow_constructible_v<E, G>);

Parameters

Name

Description

x

The object to move construct from

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

template<class... Args>
requires std::is_constructible_v<E, Args...>
constexpr
explicit
Expected(
    unexpect_t,
    Args...&&... args) noexcept(std::is_nothrow_constructible_v<E, Args...>);

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

template<
    class U,
    class... Args>
requires std::is_constructible_v<E, std::initializer_list<U>&, Args...>
constexpr
explicit
Expected(
    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

constexpr
~Expected() = default;

Destructor

constexpr
~Expected()
requires (!std::is_trivially_destructible_v<E>);

Destructor

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

constexpr
~Expected() = default;

Destructor

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

constexpr
~Expected()
requires (!std::is_trivially_destructible_v<E>);

Assignment operators

Synopses

Declared in <mrdocs/Support/Expected.hpp>

Copy assignment operator

Expected&
operator=(Expected const& other) = delete;

Copy assignment operator

constexpr
Expected&
operator=(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>;

Move assignment operator

constexpr
Expected&
operator=(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>;

Assignment operator

template<class G>
requires std::is_constructible_v<E, G const&> &&
        std::is_assignable_v<E&, G const&>
constexpr
Expected&
operator=(Unexpected<G> const& e);

Assignment operator

template<class G>
requires std::is_constructible_v<E, G> &&
        std::is_assignable_v<E&, G>
constexpr
Expected&
operator=(Unexpected<G>&& e);

Copy assignment operator

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

Expected&
operator=(Expected const& other) = delete;

Return Value

Reference to the current object

Parameters

Name

Description

other

The object to copy assign from

Copy assignment operator

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

constexpr
Expected&
operator=(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

Name

Description

x

The object to copy assign from

Move assignment operator

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

constexpr
Expected&
operator=(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

Name

Description

x

The object to move assign from

Assignment operator

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

template<class G>
requires std::is_constructible_v<E, G const&> &&
        std::is_assignable_v<E&, G const&>
constexpr
Expected&
operator=(Unexpected<G> const& e);

Return Value

Reference to the current object

Parameters

Name

Description

e

The object to copy assign from

Assignment operator

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

template<class G>
requires std::is_constructible_v<E, G> &&
        std::is_assignable_v<E&, G>
constexpr
Expected&
operator=(Unexpected<G>&& e);

Return Value

Reference to the current object

Parameters

Name

Description

e

The object to move assign from

Synopses

Declared in <mrdocs/Support/Expected.hpp>

template<class Fn>
requires std::is_constructible_v<E, E&>
constexpr
auto
and_then(Fn&& f) &;
template<class Fn>
requires std::is_constructible_v<E, E const&>
constexpr
auto
and_then(Fn&& f) const &;
template<class Fn>
requires std::is_constructible_v<E, E>
constexpr
auto
and_then(Fn&& f) &&;
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>

template<class Fn>
requires std::is_constructible_v<E, E&>
constexpr
auto
and_then(Fn&& f) &;

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

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>

template<class Fn>
requires std::is_constructible_v<E, E>
constexpr
auto
and_then(Fn&& f) &&;

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

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>

constexpr
void
emplace() noexcept;

Synopses

Declared in <mrdocs/Support/Expected.hpp>

constexpr
E const&
error() const & noexcept;
constexpr
E&
error() & noexcept;
constexpr
E const&&
error() const && noexcept;
constexpr
E&&
error() && noexcept;

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

constexpr
E const&
error() const & noexcept;

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

constexpr
E&
error() & noexcept;

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

constexpr
E const&&
error() const && noexcept;

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

constexpr
E&&
error() && noexcept;

Synopses

Declared in <mrdocs/Support/Expected.hpp>

template<class G = E>
constexpr
E
error_or(G&& e) const &;
template<class G = E>
constexpr
E
error_or(G&& e) &&;

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

template<class G = E>
constexpr
E
error_or(G&& e) const &;

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

template<class G = E>
constexpr
E
error_or(G&& e) &&;

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

[[nodiscard]]
constexpr
bool
has_value() const noexcept;

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

constexpr
void
operator*() const noexcept;

Synopses

Declared in <mrdocs/Support/Expected.hpp>

template<class Fn>
constexpr
auto
or_else(Fn&& f) &;
template<class Fn>
constexpr
auto
or_else(Fn&& f) const &;
template<class Fn>
constexpr
auto
or_else(Fn&& f) &&;
template<class Fn>
constexpr
auto
or_else(Fn&& f) const &&;

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

template<class Fn>
constexpr
auto
or_else(Fn&& f) &;

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

template<class Fn>
constexpr
auto
or_else(Fn&& f) const &;

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

template<class Fn>
constexpr
auto
or_else(Fn&& f) &&;

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

template<class Fn>
constexpr
auto
or_else(Fn&& f) const &&;

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

constexpr
void
swap(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>

template<class Fn>
requires std::is_constructible_v<E, E&>
constexpr
auto
transform(Fn&& f) &;
template<class Fn>
requires std::is_constructible_v<E, E const&>
constexpr
auto
transform(Fn&& f) const &;
template<class Fn>
requires std::is_constructible_v<E, E>
constexpr
auto
transform(Fn&& f) &&;
template<class Fn>
requires std::is_constructible_v<E, const E>
constexpr
auto
transform(Fn&& f) const &&;

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

template<class Fn>
requires std::is_constructible_v<E, E&>
constexpr
auto
transform(Fn&& f) &;

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

template<class Fn>
requires std::is_constructible_v<E, E const&>
constexpr
auto
transform(Fn&& f) const &;

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

template<class Fn>
requires std::is_constructible_v<E, E>
constexpr
auto
transform(Fn&& f) &&;

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

template<class Fn>
requires std::is_constructible_v<E, const E>
constexpr
auto
transform(Fn&& f) const &&;

Synopses

Declared in <mrdocs/Support/Expected.hpp>

template<class Fn>
constexpr
auto
transform_error(Fn&& f) &;
template<class Fn>
constexpr
auto
transform_error(Fn&& f) const &;
template<class Fn>
constexpr
auto
transform_error(Fn&& f) &&;
template<class Fn>
constexpr
auto
transform_error(Fn&& f) const &&;

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

template<class Fn>
constexpr
auto
transform_error(Fn&& f) &;

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

template<class Fn>
constexpr
auto
transform_error(Fn&& f) const &;

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

template<class Fn>
constexpr
auto
transform_error(Fn&& f) &&;

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

template<class Fn>
constexpr
auto
transform_error(Fn&& f) const &&;

Synopses

Declared in <mrdocs/Support/Expected.hpp>

constexpr
void
value() const &;
constexpr
void
value() &&;

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

constexpr
void
value() const &;

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

constexpr
void
value() &&;

Conversion to bool

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

[[nodiscard]]
constexpr
explicit
operator bool() const noexcept;

Return Value

The object converted to bool

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

E unex_;

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

template<
    class T,
    class E>
class Expected<T&, E>;

Types

Member Functions

Name

Description

Expected [constructor]

Constructors

~Expected [destructor]

Destructor

operator=

Assignment operators

and_then

emplace

error

error_or

has_value

operator*

Dereference operators

operator‐>

Member access operators

or_else

swap

transform

transform_error

value

value_or

operator bool

Conversion to bool

Data Members

Name

p_ [variant member]

unex_ [variant member]

Friends

Name

Description

mrdocs::operator==

Equality operator

mrdocs::operator==

Equality operator

mrdocs::operator==

Equality operator

mrdocs::swap

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

using error_type = E;

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

template<class U>
using rebind = Expected<U, error_type>;

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

using unexpected_type = Unexpected<E>;

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

using value_type = T&;

Constructors

Synopses

Declared in <mrdocs/Support/Expected.hpp>

Default constructor

constexpr
Expected() noexcept;

Copy constructor

constexpr
Expected(Expected const& other) = default;

Move constructor

constexpr
Expected(Expected&& other) = default;

Construct from U

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 &>);

Construct from Expected

template<class U>
requires detail::ok_bind_ref_v<R, U&>
constexpr
explicit(!std::is_convertible_v<U &, R>)
Expected(Expected<U, E>& other) noexcept(std::is_nothrow_constructible_v<R, U &> && std::is_nothrow_copy_constructible_v<E>);

Construct from Expected

template<class U>
requires detail::ok_bind_ref_v<R, U&>
constexpr
explicit(!std::is_convertible_v<U &, R>)
Expected(Expected<U&, E> const& other) noexcept(std::is_nothrow_constructible_v<R, U &> && std::is_nothrow_copy_constructible_v<E>);

Construct from Unexpected

template<class G = E>
requires std::is_constructible_v<E, G const&>
constexpr
explicit(!std::is_convertible_v<const G &, E>)
Expected(Unexpected<G> const& u) noexcept(std::is_nothrow_constructible_v<E, const G &>);

Construct from U

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;

Construct from Expected

template<class U>
constexpr
Expected(Expected<U, E>&& value) = delete;

Construct from Expected

template<class U>
requires detail::ok_bind_ref_v<R, U&>
constexpr
explicit(!std::is_convertible_v<U &, R>)
Expected(Expected<U&, E>&& other) noexcept(std::is_nothrow_constructible_v<R, U &> && std::is_nothrow_move_constructible_v<E>);

Construct from Unexpected

template<class G = E>
requires std::is_constructible_v<E, G>
constexpr
explicit(!std::is_convertible_v<G, E>)
Expected(Unexpected<G>&& u) noexcept(std::is_nothrow_constructible_v<E, G>);
template<class Fn>
constexpr
explicit
Expected(
    /* implementation-defined */,
    Fn&& fn);
template<class U>
requires ok_bind_v<U&>
constexpr
explicit
Expected(
    std::in_place_t,
    U& u) noexcept;
template<class Fn>
constexpr
explicit
Expected(
    /* implementation-defined */,
    Fn&& fn);
template<class... Args>
requires std::is_constructible_v<E, Args...>
constexpr
explicit
Expected(
    unexpect_t,
    Args...&&... args) noexcept(std::is_nothrow_constructible_v<E, Args...>);
template<
    class U,
    class... Args>
requires std::is_constructible_v<E, std::initializer_list<U>&, Args...>
constexpr
explicit
Expected(
    unexpect_t,
    std::initializer_list<U> il,
    Args...&&... args) noexcept(std::is_nothrow_constructible_v<E, std::initializer_list<U> &, Args...>);

Default constructor

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

constexpr
Expected() noexcept;

Copy constructor

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

constexpr
Expected(Expected const& other) = default;

Parameters

Name

Description

other

The object to copy construct from

Move constructor

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

constexpr
Expected(Expected&& other) = default;

Parameters

Name

Description

other

The object to move construct from

Construct from U

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

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

Name

Description

u

The object to copy construct from

Construct from Expected

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

template<class U>
requires detail::ok_bind_ref_v<R, U&>
constexpr
explicit(!std::is_convertible_v<U &, R>)
Expected(Expected<U, E>& other) noexcept(std::is_nothrow_constructible_v<R, U &> && std::is_nothrow_copy_constructible_v<E>);

Parameters

Name

Description

other

The object to copy construct from

Construct from Expected

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

template<class U>
requires detail::ok_bind_ref_v<R, U&>
constexpr
explicit(!std::is_convertible_v<U &, R>)
Expected(Expected<U&, E> const& other) noexcept(std::is_nothrow_constructible_v<R, U &> && std::is_nothrow_copy_constructible_v<E>);

Parameters

Name

Description

other

The object to copy construct from

Construct from Unexpected

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

template<class G = E>
requires std::is_constructible_v<E, G const&>
constexpr
explicit(!std::is_convertible_v<const G &, E>)
Expected(Unexpected<G> const& u) noexcept(std::is_nothrow_constructible_v<E, const G &>);

Parameters

Name

Description

u

The object to copy construct from

Construct from U

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

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

Name

Description

value

The object to move construct from

Construct from Expected

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

template<class U>
constexpr
Expected(Expected<U, E>&& value) = delete;

Parameters

Name

Description

value

The object to move construct from

Construct from Expected

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

template<class U>
requires detail::ok_bind_ref_v<R, U&>
constexpr
explicit(!std::is_convertible_v<U &, R>)
Expected(Expected<U&, E>&& other) noexcept(std::is_nothrow_constructible_v<R, U &> && std::is_nothrow_move_constructible_v<E>);

Parameters

Name

Description

other

The object to move construct from

Construct from Unexpected

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

template<class G = E>
requires std::is_constructible_v<E, G>
constexpr
explicit(!std::is_convertible_v<G, E>)
Expected(Unexpected<G>&& u) noexcept(std::is_nothrow_constructible_v<E, G>);

Parameters

Name

Description

u

The object to move construct from

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

template<class Fn>
constexpr
explicit
Expected(
    /* implementation-defined */,
    Fn&& fn);

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

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>

template<class Fn>
constexpr
explicit
Expected(
    /* implementation-defined */,
    Fn&& fn);

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

template<class... Args>
requires std::is_constructible_v<E, Args...>
constexpr
explicit
Expected(
    unexpect_t,
    Args...&&... args) noexcept(std::is_nothrow_constructible_v<E, Args...>);

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

template<
    class U,
    class... Args>
requires std::is_constructible_v<E, std::initializer_list<U>&, Args...>
constexpr
explicit
Expected(
    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>

constexpr
~Expected();

Assignment operators

Synopses

Declared in <mrdocs/Support/Expected.hpp>

Copy assignment operator

constexpr
Expected&
operator=(Expected const& other) = default;

Move assignment operator

constexpr
Expected&
operator=(Expected&& other) = default;

Assignment operator

template<class U>
requires ok_bind_v<U&>
constexpr
Expected&
operator=(U& u) noexcept(std::is_nothrow_constructible_v<R, U &>);

Assignment operator

template<class U>
requires detail::ok_bind_ref_v<R, U&>
constexpr
Expected&
operator=(Expected<U, E>& other);

Assignment operator

template<class U>
requires detail::ok_bind_ref_v<R, U&>
constexpr
Expected&
operator=(Expected<U&, E> const& other);

Assignment operator

template<class G>
requires std::is_constructible_v<E, G const&>
             && std::is_assignable_v<E&, G const&>
constexpr
Expected&
operator=(Unexpected<G> const& e);

Assignment operator

template<class U>
requires (!ok_bind_v<U &&>)
constexpr
Expected&
operator=(U&& value) = delete;

Assignment operator

template<class U>
constexpr
Expected&
operator=(Expected<U, E>&& value) = delete;

Assignment operator

template<class U>
requires detail::ok_bind_ref_v<R, U&>
constexpr
Expected&
operator=(Expected<U&, E>&& other);

Assignment operator

template<class G>
requires std::is_constructible_v<E, G> && std::is_assignable_v<E&, G>
constexpr
Expected&
operator=(Unexpected<G>&& e);

Copy assignment operator

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

constexpr
Expected&
operator=(Expected const& other) = default;

Return Value

Reference to the current object

Parameters

Name

Description

other

The object to copy assign from

Move assignment operator

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

constexpr
Expected&
operator=(Expected&& other) = default;

Return Value

Reference to the current object

Parameters

Name

Description

other

The object to move assign from

Assignment operator

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

template<class U>
requires ok_bind_v<U&>
constexpr
Expected&
operator=(U& u) noexcept(std::is_nothrow_constructible_v<R, U &>);

Return Value

Reference to the current object

Parameters

Name

Description

u

The object to copy assign from

Assignment operator

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

template<class U>
requires detail::ok_bind_ref_v<R, U&>
constexpr
Expected&
operator=(Expected<U, E>& other);

Return Value

Reference to the current object

Parameters

Name

Description

other

The object to copy assign from

Assignment operator

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

template<class U>
requires detail::ok_bind_ref_v<R, U&>
constexpr
Expected&
operator=(Expected<U&, E> const& other);

Return Value

Reference to the current object

Parameters

Name

Description

other

The object to copy assign from

Assignment operator

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

template<class G>
requires std::is_constructible_v<E, G const&>
             && std::is_assignable_v<E&, G const&>
constexpr
Expected&
operator=(Unexpected<G> const& e);

Return Value

Reference to the current object

Parameters

Name

Description

e

The object to copy assign from

Assignment operator

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

template<class U>
requires (!ok_bind_v<U &&>)
constexpr
Expected&
operator=(U&& value) = delete;

Return Value

Reference to the current object

Parameters

Name

Description

value

The object to move assign from

Assignment operator

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

template<class U>
constexpr
Expected&
operator=(Expected<U, E>&& value) = delete;

Return Value

Reference to the current object

Parameters

Name

Description

value

The object to move assign from

Assignment operator

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

template<class U>
requires detail::ok_bind_ref_v<R, U&>
constexpr
Expected&
operator=(Expected<U&, E>&& other);

Return Value

Reference to the current object

Parameters

Name

Description

other

The object to move assign from

Assignment operator

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

template<class G>
requires std::is_constructible_v<E, G> && std::is_assignable_v<E&, G>
constexpr
Expected&
operator=(Unexpected<G>&& e);

Return Value

Reference to the current object

Parameters

Name

Description

e

The object to move assign from

Synopses

Declared in <mrdocs/Support/Expected.hpp>

template<class Fn>
constexpr
auto
and_then(Fn&& f) &;
template<class Fn>
constexpr
auto
and_then(Fn&& f) const &;
template<class Fn>
constexpr
auto
and_then(Fn&& f) &&;
template<class Fn>
constexpr
auto
and_then(Fn&& f) const &&;

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

template<class Fn>
constexpr
auto
and_then(Fn&& f) &;

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

template<class Fn>
constexpr
auto
and_then(Fn&& f) const &;

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

template<class Fn>
constexpr
auto
and_then(Fn&& f) &&;

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

template<class Fn>
constexpr
auto
and_then(Fn&& f) const &&;

Synopses

Declared in <mrdocs/Support/Expected.hpp>

template<class U>
requires ok_bind_v<U&>
constexpr
T&
emplace(U& u) noexcept;
template<class U>
requires (!ok_bind_v<U &&>)
constexpr
T&
emplace(U&&) = delete;

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

template<class U>
requires ok_bind_v<U&>
constexpr
T&
emplace(U& u) noexcept;

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

template<class U>
requires (!ok_bind_v<U &&>)
constexpr
T&
emplace(U&&) = delete;

Synopses

Declared in <mrdocs/Support/Expected.hpp>

[[nodiscard]]
constexpr
E&
error() & noexcept;
[[nodiscard]]
constexpr
E const&
error() const & noexcept;
[[nodiscard]]
constexpr
E&&
error() && noexcept;
[[nodiscard]]
constexpr
E const&&
error() const && noexcept;

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

[[nodiscard]]
constexpr
E&
error() & noexcept;

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

[[nodiscard]]
constexpr
E const&
error() const & noexcept;

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

[[nodiscard]]
constexpr
E&&
error() && noexcept;

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

[[nodiscard]]
constexpr
E const&&
error() const && noexcept;

Synopses

Declared in <mrdocs/Support/Expected.hpp>

template<class G = E>
constexpr
E
error_or(G&& g) const &;
template<class G = E>
constexpr
E
error_or(G&& g) &&;

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

template<class G = E>
constexpr
E
error_or(G&& g) const &;

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

template<class G = E>
constexpr
E
error_or(G&& g) &&;

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

[[nodiscard]]
constexpr
bool
has_value() const noexcept;

Dereference operators

Synopses

Declared in <mrdocs/Support/Expected.hpp>

[[nodiscard]]
constexpr
T&
operator*() & noexcept;
[[nodiscard]]
constexpr
T const&
operator*() const & noexcept;
[[nodiscard]]
constexpr
T&&
operator*() && noexcept;
[[nodiscard]]
constexpr
T const&&
operator*() const && noexcept;

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

[[nodiscard]]
constexpr
T&
operator*() & noexcept;

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

[[nodiscard]]
constexpr
T const&
operator*() const & noexcept;

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

[[nodiscard]]
constexpr
T&&
operator*() && noexcept;

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

[[nodiscard]]
constexpr
T const&&
operator*() const && noexcept;

Member access operators

Synopses

Declared in <mrdocs/Support/Expected.hpp>

[[nodiscard]]
constexpr
T*
operator‐>() noexcept;
[[nodiscard]]
constexpr
T const*
operator‐>() const noexcept;

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

[[nodiscard]]
constexpr
T*
operator‐>() noexcept;

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

[[nodiscard]]
constexpr
T const*
operator‐>() const noexcept;

Synopses

Declared in <mrdocs/Support/Expected.hpp>

template<class Fn>
constexpr
Expected
or_else(Fn&& f) &;
template<class Fn>
constexpr
Expected
or_else(Fn&& f) const &;
template<class Fn>
constexpr
Expected
or_else(Fn&& f) &&;
template<class Fn>
constexpr
Expected
or_else(Fn&& f) const &&;

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

template<class Fn>
constexpr
Expected
or_else(Fn&& f) &;

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

template<class Fn>
constexpr
Expected
or_else(Fn&& f) const &;

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

template<class Fn>
constexpr
Expected
or_else(Fn&& f) &&;

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

template<class Fn>
constexpr
Expected
or_else(Fn&& f) const &&;

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

constexpr
void
swap(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>

template<class Fn>
constexpr
auto
transform(Fn&& f) &;
template<class Fn>
constexpr
auto
transform(Fn&& f) const &;
template<class Fn>
constexpr
auto
transform(Fn&& f) &&;
template<class Fn>
constexpr
auto
transform(Fn&& f) const &&;

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

template<class Fn>
constexpr
auto
transform(Fn&& f) &;

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

template<class Fn>
constexpr
auto
transform(Fn&& f) const &;

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

template<class Fn>
constexpr
auto
transform(Fn&& f) &&;

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

template<class Fn>
constexpr
auto
transform(Fn&& f) const &&;

Synopses

Declared in <mrdocs/Support/Expected.hpp>

template<class Fn>
constexpr
auto
transform_error(Fn&& f) &;
template<class Fn>
constexpr
auto
transform_error(Fn&& f) const &;
template<class Fn>
constexpr
auto
transform_error(Fn&& f) &&;
template<class Fn>
constexpr
auto
transform_error(Fn&& f) const &&;

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

template<class Fn>
constexpr
auto
transform_error(Fn&& f) &;

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

template<class Fn>
constexpr
auto
transform_error(Fn&& f) const &;

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

template<class Fn>
constexpr
auto
transform_error(Fn&& f) &&;

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

template<class Fn>
constexpr
auto
transform_error(Fn&& f) const &&;

Synopses

Declared in <mrdocs/Support/Expected.hpp>

constexpr
T&
value() &;
constexpr
T const&
value() const &;
constexpr
T&&
value() &&;
constexpr
T const&&
value() const &&;

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

constexpr
T&
value() &;

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

constexpr
T const&
value() const &;

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

constexpr
T&&
value() &&;

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

constexpr
T const&&
value() const &&;

Synopses

Declared in <mrdocs/Support/Expected.hpp>

template<class U>
constexpr
std::remove_reference_t<T>
value_or(U&& u) const &;
template<class U>
constexpr
std::remove_reference_t<T>
value_or(U&& u) &&;

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

template<class U>
constexpr
std::remove_reference_t<T>
value_or(U&& u) const &;

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

template<class U>
constexpr
std::remove_reference_t<T>
value_or(U&& u) &&;

Conversion to bool

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

[[nodiscard]]
constexpr
explicit
operator bool() const noexcept;

Return Value

The object converted to bool

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

T* p_;

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

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>

struct ExplicitInfo;

Member Functions

Name

Description

operator<=>

Three‐way comparison operator

Data Members

Name

Description

Implicit

Whether an explicit‐specifier was user‐written.

Kind

The evaluated exception specification.

Operand

The operand of the explicit‐specifier, if any.

Non-Member Functions

Name

Description

toString

Convert ExplicitInfo to a string.

Three‐way comparison operator

Synopsis

Declared in <mrdocs/Metadata/Specifiers/ExplicitInfo.hpp>

constexpr
auto
operator<=>(ExplicitInfo const& rhs) const = default;

Return Value

The relative order of the objects

Parameters

Name

Description

rhs

The right operand

Whether an explicit‐specifier was user‐written.

Synopsis

Declared in <mrdocs/Metadata/Specifiers/ExplicitInfo.hpp>

bool Implicit = true;

The evaluated exception specification.

Synopsis

Declared in <mrdocs/Metadata/Specifiers/ExplicitInfo.hpp>

ExplicitKind Kind = ExplicitKind::False;

The operand of the explicit‐specifier, if any.

Synopsis

Declared in <mrdocs/Metadata/Specifiers/ExplicitInfo.hpp>

std::string Operand;

Represents an expression

Synopsis

Declared in <mrdocs/Metadata/Expression.hpp>

struct ExprInfo;

Member Functions

Name

Description

asExpr

operator<=>

Three‐way comparison operator

Data Members

Name

Description

Written

The expression, as written

Derived Classes

Name

Description

ConstantExprInfo

Represents an expression with a (possibly known) value

Synopses

Declared in <mrdocs/Metadata/Expression.hpp>

ExprInfo&
asExpr() noexcept;
ExprInfo const&
asExpr() const noexcept;

Synopsis

Declared in <mrdocs/Metadata/Expression.hpp>

ExprInfo&
asExpr() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Expression.hpp>

ExprInfo const&
asExpr() const noexcept;

Three‐way comparison operator

Synopsis

Declared in <mrdocs/Metadata/Expression.hpp>

constexpr
auto
operator<=>(ExprInfo const& rhs) const = default;

Return Value

The relative order of the objects

Parameters

Name

Description

rhs

The right operand

The expression, as written

Synopsis

Declared in <mrdocs/Metadata/Expression.hpp>

std::string Written;

A format string with source location.

Synopsis

Declared in <mrdocs/Support/Error.hpp>

template<class... Args>
struct FormatString;

Member Functions

Name

FormatString [constructor]

Data Members

Name

fs

loc

Non-Member Functions

Name

Description

formatError

Return a formatted error.

Synopsis

Declared in <mrdocs/Support/Error.hpp>

template<class T>
FormatString(
    T const& fs_,
    std::source_location loc_ = source_location::current());

Synopsis

Declared in <mrdocs/Support/Error.hpp>

std::string_view fs;

Synopsis

Declared in <mrdocs/Support/Error.hpp>

std::source_location loc;

Info for friend declarations.

Synopsis

Declared in <mrdocs/Metadata/Symbol/Friend.hpp>

struct FriendInfo final

Data Members

Name

Description

Type

Befriended type.

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>

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>

SymbolID id = = SymbolID::invalid;

Synopsis

Declared in <mrdocs/Metadata/Symbol/Function.hpp>

struct FunctionSymbol final
    : SymbolCommonBase<SymbolKind::Function>

Base Classes

Name

Description

SymbolCommonBase<SymbolKind::Function>

Base class for providing variant discriminator functions.

Member Functions

Name

Description

FunctionSymbol [constructor]

Construct from SymbolID

operator<=>

Three‐way comparison operators

Static Member Functions

Data Members

Static Data Members

Name

kind_id

Non-Member Functions

Name

Description

merge

Merges two Symbol objects.

overrides

Determine if one function would override the other

Construct from SymbolID

Synopsis

Declared in <mrdocs/Metadata/Symbol/Function.hpp>

explicit
FunctionSymbol(SymbolID const& ID) noexcept;

Parameters

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

std::strong_ordering
operator<=>(FunctionSymbol const& other) const;

Three‐way comparison operator

Three‐way comparison operator

Synopsis

Declared in <mrdocs/Metadata/Symbol/Function.hpp>

std::strong_ordering
operator<=>(FunctionSymbol const& other) const;

Return Value

The relative order of the objects

Parameters

Name

Description

other

The right operand

Three‐way comparison operator

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolBase.hpp>

auto
operator<=>(SymbolCommonBase<mrdocs::SymbolKind::Function> const& rhs) const = default;

Return Value

The relative order of the objects

Parameters

Name

Description

rhs

The right operand

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolNodes.inc>

constexpr
static
bool
isConcept() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolNodes.inc>

constexpr
static
bool
isEnum() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolNodes.inc>

constexpr
static
bool
isEnumConstant() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolNodes.inc>

constexpr
static
bool
isFunction() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolNodes.inc>

constexpr
static
bool
isGuide() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolNodes.inc>

constexpr
static
bool
isNamespace() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolNodes.inc>

constexpr
static
bool
isNamespaceAlias() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolNodes.inc>

constexpr
static
bool
isOverloads() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolNodes.inc>

constexpr
static
bool
isRecord() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolNodes.inc>

constexpr
static
bool
isTypedef() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolNodes.inc>

constexpr
static
bool
isUsing() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolNodes.inc>

constexpr
static
bool
isVariable() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Symbol/Function.hpp>

std::vector<std::string> Attributes;

The class of function this is

Synopsis

Declared in <mrdocs/Metadata/Symbol/Function.hpp>

FunctionClass Class = FunctionClass::Normal;

Synopsis

Declared in <mrdocs/Metadata/Symbol/Function.hpp>

ConstexprKind Constexpr = ConstexprKind::None;

Synopsis

Declared in <mrdocs/Metadata/Symbol/Function.hpp>

ExplicitInfo Explicit;

Synopsis

Declared in <mrdocs/Metadata/Symbol/Function.hpp>

bool HasOverrideAttr = false;

Synopsis

Declared in <mrdocs/Metadata/Symbol/Function.hpp>

bool HasTrailingReturn = false;

Synopsis

Declared in <mrdocs/Metadata/Symbol/Function.hpp>

bool IsConst = false;

Synopsis

Declared in <mrdocs/Metadata/Symbol/Function.hpp>

bool IsDefaulted = false;

Synopsis

Declared in <mrdocs/Metadata/Symbol/Function.hpp>

bool IsDeleted = false;

Synopsis

Declared in <mrdocs/Metadata/Symbol/Function.hpp>

bool IsDeletedAsWritten = false;

Synopsis

Declared in <mrdocs/Metadata/Symbol/Function.hpp>

bool IsExplicitObjectMemberFunction = false;

Synopsis

Declared in <mrdocs/Metadata/Symbol/Function.hpp>

bool IsExplicitlyDefaulted = false;

Synopsis

Declared in <mrdocs/Metadata/Symbol/Function.hpp>

bool IsFinal = false;

Synopsis

Declared in <mrdocs/Metadata/Symbol/Function.hpp>

bool IsNoReturn = false;

Synopsis

Declared in <mrdocs/Metadata/Symbol/Function.hpp>

bool IsNodiscard = false;

Synopsis

Declared in <mrdocs/Metadata/Symbol/Function.hpp>

bool IsPure = false;

Synopsis

Declared in <mrdocs/Metadata/Symbol/Function.hpp>

bool IsRecordMethod = false;

Synopsis

Declared in <mrdocs/Metadata/Symbol/Function.hpp>

bool IsVariadic = false;

Synopsis

Declared in <mrdocs/Metadata/Symbol/Function.hpp>

bool IsVirtual = false;

Synopsis

Declared in <mrdocs/Metadata/Symbol/Function.hpp>

bool IsVirtualAsWritten = false;

Synopsis

Declared in <mrdocs/Metadata/Symbol/Function.hpp>

bool IsVolatile = false;

Synopsis

Declared in <mrdocs/Metadata/Symbol/Function.hpp>

NoexceptInfo Noexcept;

Synopsis

Declared in <mrdocs/Metadata/Symbol/Function.hpp>

OperatorKind OverloadedOperator = OperatorKind::None;

List of parameters.

Synopsis

Declared in <mrdocs/Metadata/Symbol/Function.hpp>

std::vector<Param> Params;

Synopsis

Declared in <mrdocs/Metadata/Symbol/Function.hpp>

ReferenceKind RefQualifier = ReferenceKind::None;

Synopsis

Declared in <mrdocs/Metadata/Symbol/Function.hpp>

ExprInfo Requires;

Info about the return type of this function.

Synopsis

Declared in <mrdocs/Metadata/Symbol/Function.hpp>

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>

StorageClassKind StorageClass = StorageClassKind::None;

When present, this function is a template or specialization.

Synopsis

Declared in <mrdocs/Metadata/Symbol/Function.hpp>

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolBase.hpp>

constexpr static
SymbolKind kind_id;

Synopsis

Declared in <mrdocs/Metadata/Type/FunctionType.hpp>

struct FunctionType final
    : TypeCommonBase<TypeKind::Function>

Base Classes

Member Functions

Name

Description

operator<=>

Three‐way comparison operators

Static Member Functions

Data Members

Static Data Members

Name

kind_id

Non-Member Functions

Name

Description

innerType

Return the inner type.

innerType

Return the inner type.

innerTypePtr

Return the inner type.

innerTypePtr

Return the inner type.

Three‐way comparison operators

Synopses

Declared in <mrdocs/Metadata/Type/FunctionType.hpp>

Three‐way comparison operator

std::strong_ordering
operator<=>(FunctionType const& rhs) const;

Three‐way comparison operator

constexpr
auto
operator<=>(TypeCommonBase<mrdocs::TypeKind::Function> const& rhs) const = default;

Three‐way comparison operator

Synopsis

Declared in <mrdocs/Metadata/Type/FunctionType.hpp>

std::strong_ordering
operator<=>(FunctionType const& rhs) const;

Return Value

The relative order of the objects

Parameters

Name

Description

rhs

The right operand

Three‐way comparison operator

Synopsis

Declared in <mrdocs/Metadata/Type/TypeBase.hpp>

constexpr
auto
operator<=>(TypeCommonBase<mrdocs::TypeKind::Function> const& rhs) const = default;

Return Value

The relative order of the objects

Parameters

Name

Description

rhs

The right operand

Synopsis

Declared in <mrdocs/Metadata/Type/TypeBase.hpp>

constexpr
static
bool
isArray() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Type/TypeBase.hpp>

constexpr
static
bool
isAuto() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Type/TypeBase.hpp>

constexpr
static
bool
isDecltype() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Type/TypeBase.hpp>

constexpr
static
bool
isFunction() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Type/TypeBase.hpp>

constexpr
static
bool
isLValueReference() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Type/TypeBase.hpp>

constexpr
static
bool
isMemberPointer() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Type/TypeBase.hpp>

constexpr
static
bool
isNamed() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Type/TypeBase.hpp>

constexpr
static
bool
isPointer() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Type/TypeBase.hpp>

constexpr
static
bool
isRValueReference() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Type/FunctionType.hpp>

NoexceptInfo ExceptionSpec;

Synopsis

Declared in <mrdocs/Metadata/Type/FunctionType.hpp>

bool IsVariadic = false;

Synopsis

Declared in <mrdocs/Metadata/Type/FunctionType.hpp>

std::vector<Polymorphic<Type>> ParamTypes;

Synopsis

Declared in <mrdocs/Metadata/Type/FunctionType.hpp>

ReferenceKind RefQualifier = ReferenceKind::None;

Synopsis

Declared in <mrdocs/Metadata/Type/FunctionType.hpp>

Polymorphic<Type> ReturnType = Polymorphic<Type>(AutoType{});

Synopsis

Declared in <mrdocs/Metadata/Type/TypeBase.hpp>

constexpr static
TypeKind kind_id;

Base class for documentation generators.

Synopsis

Declared in <mrdocs/Generator.hpp>

class Generator;

Member Functions

Name

Description

~Generator [destructor] [virtual]

Destructor.

build

Build reference documentation for the corpus.

buildOne

buildOne overloads

buildOneString

Build the reference as a single page to a string.

displayName [virtual]

Return the display name of the generator.

fileExtension [virtual]

Return the extension or tag of the generator.

id [virtual]

Return the symbolic name of the generator.

Destructor.

Synopsis

Declared in <mrdocs/Generator.hpp>

virtual
~Generator() noexcept;

Build reference documentation for the corpus.

Synopses

Declared in <mrdocs/Generator.hpp>

Build reference documentation for the corpus.

Expected<void>
build(Corpus const& corpus) const;

Build reference documentation for the corpus.

virtual
Expected<void>
build(
    std::string_view outputPath,
    Corpus const& corpus) const;

Return Value

The error, if any occurred.

Parameters

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>

Expected<void>
build(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

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>

virtual
Expected<void>
build(
    std::string_view outputPath,
    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 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

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.

Expected<void>
buildOne(
    std::string_view fileName,
    Corpus const& corpus) const;

Build reference documentation for the corpus.

virtual
Expected<void>
buildOne(
    std::ostream& os,
    Corpus const& corpus) const = 0;

Return Value

The error, if any occurred.

Parameters

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>

Expected<void>
buildOne(
    std::string_view fileName,
    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

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>

virtual
Expected<void>
buildOne(
    std::ostream& os,
    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

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>

Expected<void>
buildOneString(
    std::string& dest,
    Corpus const& corpus) const;

Return Value

The error, if any occurred.

Parameters

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>

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>

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>

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 Generator elements.

Synopsis

Declared in <mrdocs/Generators.hpp>

class Generators;

Types

Member Functions

Name

Description

~Generators [destructor] [virtual]

Destructor.

begin [virtual]

Return an iterator to the beginning.

end [virtual]

Return an iterator to the end.

find [virtual]

Return a pointer to the matching generator.

Protected Member Functions

Name

Description

Generators [constructor]

Default constructor

Non-Member Functions

Name

Description

getGenerators

Return a reference to the global Generators instance.

Synopsis

Declared in <mrdocs/Generators.hpp>

using const_iterator = iterator;

Synopsis

Declared in <mrdocs/Generators.hpp>

using const_reference = value_type const&;

Synopsis

Declared in <mrdocs/Generators.hpp>

using difference_type = std::ptrdiff_t;

Synopsis

Declared in <mrdocs/Generators.hpp>

using iterator = value_type const*;

Synopsis

Declared in <mrdocs/Generators.hpp>

using reference = value_type const&;

Synopsis

Declared in <mrdocs/Generators.hpp>

using size_type = std::size_t;

Synopsis

Declared in <mrdocs/Generators.hpp>

using value_type = Generator const*;

Destructor.

Synopsis

Declared in <mrdocs/Generators.hpp>

virtual
~Generators() noexcept;

Return an iterator to the beginning.

Synopsis

Declared in <mrdocs/Generators.hpp>

virtual
iterator
begin() const noexcept = 0;

Return Value

an iterator to the beginning.

Return an iterator to the end.

Synopsis

Declared in <mrdocs/Generators.hpp>

virtual
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>

virtual
Generator const*
find(std::string_view name) const noexcept = 0;

Return Value

A pointer to the generator, or nullptr.

Parameters

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>

constexpr
Generators() noexcept = default;

A glob pattern matcher

Synopsis

Declared in <mrdocs/Support/Glob.hpp>

class GlobPattern;

Member Functions

Name

Description

GlobPattern [constructor]

Constructors

~GlobPattern [destructor]

Destructor

operator=

Assignment operators

isLiteral

Checks if the glob pattern is a literal string.

match

Matches the given string against the glob pattern.

matchPatternPrefix

Matches the start of a given string against the glob pattern.

pattern

Returns the glob pattern.

Static Member Functions

Name

Description

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.

Copy constructor

GlobPattern(GlobPattern const& other);

Move constructor

GlobPattern(GlobPattern&& other) noexcept;

Construct an empty GlobPattern.

Synopsis

Declared in <mrdocs/Support/Glob.hpp>

GlobPattern();

Description

An empty GlobPattern will never match any string.

Copy constructor

Synopsis

Declared in <mrdocs/Support/Glob.hpp>

GlobPattern(GlobPattern const& other);

Parameters

Name

Description

other

The object to copy construct from

Move constructor

Synopsis

Declared in <mrdocs/Support/Glob.hpp>

GlobPattern(GlobPattern&& other) noexcept;

Parameters

Name

Description

other

The object to move construct from

Destructor

Synopsis

Declared in <mrdocs/Support/Glob.hpp>

~GlobPattern();

Assignment operators

Synopses

Declared in <mrdocs/Support/Glob.hpp>

Copy assignment

Move assignment

GlobPattern&
operator=(GlobPattern&& other) noexcept;

Copy assignment

Synopsis

Declared in <mrdocs/Support/Glob.hpp>

GlobPattern&
operator=(GlobPattern const& other);

Return Value

Reference to the current object

Parameters

Name

Description

other

The object to copy assign from

Move assignment

Synopsis

Declared in <mrdocs/Support/Glob.hpp>

GlobPattern&
operator=(GlobPattern&& other) noexcept;

Return Value

Reference to the current object

Parameters

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>

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>

bool
match(
    std::string_view str,
    char delimiter) const;

Return Value

true if the string matches the pattern, false otherwise.

Parameters

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>

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

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>

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>

static
Expected<GlobPattern>
create(std::string_view pattern);

Constructs a GlobPattern with the given pattern.

static
Expected<GlobPattern>
create(
    std::string_view pattern,
    Optional<std::size_t> maxSubGlobs);

Return Value

The constructed GlobPattern, or an error if the pattern is invalid.

Parameters

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>

static
Expected<GlobPattern>
create(std::string_view pattern);

Constructs a GlobPattern with the given pattern.

Synopsis

Declared in <mrdocs/Support/Glob.hpp>

static
Expected<GlobPattern>
create(
    std::string_view pattern,
    Optional<std::size_t> maxSubGlobs);

Return Value

The constructed GlobPattern, or an error if the pattern is invalid.

Parameters

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>

struct GuideSymbol final
    : SymbolCommonBase<SymbolKind::Guide>

Base Classes

Name

Description

SymbolCommonBase<SymbolKind::Guide>

Base class for providing variant discriminator functions.

Member Functions

Name

Description

GuideSymbol [constructor]

Construct from SymbolID

operator<=>

Three‐way comparison operators

Static Member Functions

Data Members

Name

Description

Deduced

The pattern for the deduced specialization.

Explicit

The explicit‐specifier, if any.

Params

The parameters of the deduction guide.

Template

Template head, if any.

Static Data Members

Name

kind_id

Non-Member Functions

Name

Description

merge

Merges two Symbol objects.

Construct from SymbolID

Synopsis

Declared in <mrdocs/Metadata/Symbol/Guide.hpp>

explicit
GuideSymbol(SymbolID ID) noexcept;

Parameters

Name

Description

ID

The object to construct from

Three‐way comparison operators

Synopses

Declared in <mrdocs/Metadata/Symbol/Guide.hpp>

Three‐way comparison operator

std::strong_ordering
operator<=>(GuideSymbol const& other) const;

Three‐way comparison operator

auto
operator<=>(SymbolCommonBase<mrdocs::SymbolKind::Guide> const& rhs) const = default;

Three‐way comparison operator

Synopsis

Declared in <mrdocs/Metadata/Symbol/Guide.hpp>

std::strong_ordering
operator<=>(GuideSymbol const& other) const;

Return Value

The relative order of the objects

Parameters

Name

Description

other

The right operand

Three‐way comparison operator

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolBase.hpp>

auto
operator<=>(SymbolCommonBase<mrdocs::SymbolKind::Guide> const& rhs) const = default;

Return Value

The relative order of the objects

Parameters

Name

Description

rhs

The right operand

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolNodes.inc>

constexpr
static
bool
isConcept() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolNodes.inc>

constexpr
static
bool
isEnum() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolNodes.inc>

constexpr
static
bool
isEnumConstant() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolNodes.inc>

constexpr
static
bool
isFunction() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolNodes.inc>

constexpr
static
bool
isGuide() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolNodes.inc>

constexpr
static
bool
isNamespace() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolNodes.inc>

constexpr
static
bool
isNamespaceAlias() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolNodes.inc>

constexpr
static
bool
isOverloads() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolNodes.inc>

constexpr
static
bool
isRecord() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolNodes.inc>

constexpr
static
bool
isTypedef() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolNodes.inc>

constexpr
static
bool
isUsing() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolNodes.inc>

constexpr
static
bool
isVariable() noexcept;

The pattern for the deduced specialization.

Synopsis

Declared in <mrdocs/Metadata/Symbol/Guide.hpp>

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>

ExplicitInfo Explicit;

The parameters of the deduction guide.

Synopsis

Declared in <mrdocs/Metadata/Symbol/Guide.hpp>

std::vector<Param> Params;

Template head, if any.

Synopsis

Declared in <mrdocs/Metadata/Symbol/Guide.hpp>

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolBase.hpp>

constexpr static
SymbolKind kind_id;

A handlebars environment

Synopsis

Declared in <mrdocs/Support/Handlebars.hpp>

class Handlebars;

Types

Name

Tag

Member Functions

Name

Description

Handlebars [constructor]

Construct a handlebars environment

registerHelper

Register a helper accessible by any template in the environment.

registerLogger

Register a logger

registerPartial

Register a partial

render

Render a handlebars template

render_to

Render a handlebars template

try_render

Render a handlebars template

try_render_to

Render a handlebars template

unregisterHelper

Unregister a helper

unregisterPartial

Unregister a partial

Non-Member Functions

Name

Description

helpers::registerAntoraHelpers

Register all the Antora helpers into a Handlebars instance

helpers::registerBuiltinHelpers

Register all the built‐in helpers into a Handlebars instance

helpers::registerConstructorHelpers

Register contructor helpers into a Handlebars instance

helpers::registerContainerHelpers

Register helpers to manipulate composite data types

helpers::registerLogicalHelpers

Register logical helpers into a Handlebars instance

helpers::registerMathHelpers

Register math helpers into a Handlebars instance

helpers::registerStringHelpers

Register string helpers into a Handlebars instance

helpers::registerTypeHelpers

Register type helpers into a Handlebars instance

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:

{.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:

{.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}
      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}
      Handlebars env;
      dom::Object context;
      context["foo"] = "bar";
      env.render_to(std::cout, "{{ foo }}", context);
      // prints "bar" to stdout
{.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>

struct Tag;

Construct a handlebars environment

Synopsis

Declared in <mrdocs/Support/Handlebars.hpp>

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>

void
registerHelper(
    std::string_view name,
    dom::Function const& helper);

Description

The helper type is a type erased function of type dom::Function, which receives the resolved template arguments as parameters as a 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 dom::Function, the helper should also return a dom::Value. If the function semantics does not require a return value, the function should return a dom::Value of type dom::Kind::Undefined.

When the helper is used in an subexpression, the dom::Value return value is used as the intermediary result. When the helper is used in a block or a final expression, the dom::Value return value will be formatted to the output.

Parameters

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>

void
registerLogger(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

Name

Description

fn

The logger function

Register a partial

Synopsis

Declared in <mrdocs/Support/Handlebars.hpp>

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:

{.handlebars}
        <ul>
        {{#each items}}
            {{> item}}
        {{/each}}
        </ul>

Parameters

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>

std::string
render(std::string_view templateText) const;
std::string
render(
    std::string_view templateText,
    dom::Value const& context) const;

Render a handlebars template

std::string
render(
    std::string_view templateText,
    dom::Value const& context,
    HandlebarsOptions const& options) const;

Return Value

The rendered text

Parameters

Name

Description

templateText

The handlebars template text

context

The data to render

options

The options to use

Synopsis

Declared in <mrdocs/Support/Handlebars.hpp>

std::string
render(std::string_view templateText) const;

Synopsis

Declared in <mrdocs/Support/Handlebars.hpp>

std::string
render(
    std::string_view templateText,
    dom::Value const& context) const;

Render a handlebars template

Synopsis

Declared in <mrdocs/Support/Handlebars.hpp>

std::string
render(
    std::string_view templateText,
    dom::Value const& context,
    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

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>

void
render_to(
    OutputRef& out,
    std::string_view templateText) const;
void
render_to(
    OutputRef& out,
    std::string_view templateText,
    dom::Value const& context) const;

Render a handlebars template

void
render_to(
    OutputRef& out,
    std::string_view templateText,
    dom::Value const& context,
    HandlebarsOptions const& options) const;

Return Value

The rendered text

Parameters

Name

Description

templateText

The handlebars template text

context

The data to render

options

The options to use

Synopsis

Declared in <mrdocs/Support/Handlebars.hpp>

void
render_to(
    OutputRef& out,
    std::string_view templateText) const;

Synopsis

Declared in <mrdocs/Support/Handlebars.hpp>

void
render_to(
    OutputRef& out,
    std::string_view templateText,
    dom::Value const& context) const;

Render a handlebars template

Synopsis

Declared in <mrdocs/Support/Handlebars.hpp>

void
render_to(
    OutputRef& out,
    std::string_view templateText,
    dom::Value const& context,
    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

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>

Expected<std::string, HandlebarsError>
try_render(std::string_view templateText) const;
Expected<std::string, HandlebarsError>
try_render(
    std::string_view templateText,
    dom::Value const& context) const;

Render a handlebars template

Expected<std::string, HandlebarsError>
try_render(
    std::string_view templateText,
    dom::Value const& context,
    HandlebarsOptions const& options) const;

Return Value

The rendered text

Parameters

Name

Description

templateText

The handlebars template text

context

The data to render

options

The options to use

Synopsis

Declared in <mrdocs/Support/Handlebars.hpp>

Expected<std::string, HandlebarsError>
try_render(std::string_view templateText) const;

Synopsis

Declared in <mrdocs/Support/Handlebars.hpp>

Expected<std::string, HandlebarsError>
try_render(
    std::string_view templateText,
    dom::Value const& context) const;

Render a handlebars template

Synopsis

Declared in <mrdocs/Support/Handlebars.hpp>

Expected<std::string, HandlebarsError>
try_render(
    std::string_view templateText,
    dom::Value const& context,
    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

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>

Expected<void, HandlebarsError>
try_render_to(
    OutputRef& out,
    std::string_view templateText) const;
Expected<void, HandlebarsError>
try_render_to(
    OutputRef& out,
    std::string_view templateText,
    dom::Value const& context) const;

Render a handlebars template

Expected<void, HandlebarsError>
try_render_to(
    OutputRef& out,
    std::string_view templateText,
    dom::Value const& context,
    HandlebarsOptions const& options) const;

Return Value

The rendered text

Parameters

Name

Description

templateText

The handlebars template text

context

The data to render

options

The options to use

Synopsis

Declared in <mrdocs/Support/Handlebars.hpp>

Expected<void, HandlebarsError>
try_render_to(
    OutputRef& out,
    std::string_view templateText) const;

Synopsis

Declared in <mrdocs/Support/Handlebars.hpp>

Expected<void, HandlebarsError>
try_render_to(
    OutputRef& out,
    std::string_view templateText,
    dom::Value const& context) const;

Render a handlebars template

Synopsis

Declared in <mrdocs/Support/Handlebars.hpp>

Expected<void, HandlebarsError>
try_render_to(
    OutputRef& out,
    std::string_view templateText,
    dom::Value const& context,
    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

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>

void
unregisterHelper(std::string_view name);

Description

This function unregisters a helper with the handlebars environment.

Parameters

Name

Description

name

The name of the helper

Unregister a partial

Synopsis

Declared in <mrdocs/Support/Handlebars.hpp>

void
unregisterPartial(std::string_view name);

Description

This function unregisters a partial with the handlebars environment.

Parameters

Name

Description

name

The name of the partial

An error thrown or returned by Handlebars

Synopsis

Declared in <mrdocs/Support/Handlebars.hpp>

struct HandlebarsError
    : std::runtime_error

Base Classes

Name

Description

std::runtime_error

Member Functions

Name

Description

HandlebarsError [constructor]

Constructors

operator=

what [virtual]

Data Members

Name

column

line

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

HandlebarsError(std::string_view msg);
HandlebarsError(
    std::string_view msg,
    std::size_t line_,
    std::size_t column_,
    std::size_t pos_);

Construct from string_view

Synopsis

Declared in <mrdocs/Support/Handlebars.hpp>

HandlebarsError(std::string_view msg);

Parameters

Name

Description

msg

The object to construct from

Synopsis

Declared in <mrdocs/Support/Handlebars.hpp>

HandlebarsError(
    std::string_view msg,
    std::size_t line_,
    std::size_t column_,
    std::size_t pos_);

Synopsis

Declared in <stdexcept>

runtime_error&
operator=(runtime_error const& value) noexcept;

Synopsis

Declared in <stdexcept>

virtual
char const*
what() const noexcept override;

Synopsis

Declared in <mrdocs/Support/Handlebars.hpp>

std::size_t column = static_cast<std::size_t>(‐1);

Synopsis

Declared in <mrdocs/Support/Handlebars.hpp>

std::size_t line = static_cast<std::size_t>(‐1);

Synopsis

Declared in <mrdocs/Support/Handlebars.hpp>

std::size_t pos = static_cast<std::size_t>(‐1);

Options for handlebars

Synopsis

Declared in <mrdocs/Support/Handlebars.hpp>

struct HandlebarsOptions;

Data Members

Name

Description

assumeObjects

Removes object existence checks when traversing paths

compat

Enable recursive field lookup

data

Custom private data object

escapeFunction

Function to escape entities

explicitPartialContext

Disables implicit context for partials

ignoreStandalone

Disables standalone tag removal when set to true

noEscape

Escape HTML entities or entities defined by the escape function

preventIndent

Disable the auto‐indent feature

strict

Templates will throw rather than ignore missing fields

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>

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>

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>

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>

std::function<void(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>

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>

bool ignoreStandalone = false;

Description

By default, Handlebars removes whitespace around block and partial expressions. For instance, the partial:

{.handlebars}
        A

and the template:

{.handlebars}
        <div>
            {{> partial}}
        </div>

will render as:

{.html}
        <div>
            A</div>

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:

{.handlebars}
        <div>
            {{> partial}}

        </div>

will render as:

{.html}
        <div>
            A
        </div>

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>

bool noEscape = false;

Disable the auto‐indent feature

Synopsis

Declared in <mrdocs/Support/Handlebars.hpp>

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:

{.handlebars}
        A
        B
        C

and the template:

{.handlebars}
        <div>
            {{> partial}}
        </div>

will render as:

{.html}
        <div>
            A
            B
            C
        </div>

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:

{.html}
        <div>
            A
        B
        C
        </div>

Templates will throw rather than ignore missing fields

Synopsis

Declared in <mrdocs/Support/Handlebars.hpp>

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>

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>

struct IdentifierName final
    : Name

Base Classes

Name

Description

Name

Represents a name for a named Type

Member Functions

Name

Description

IdentifierName [constructor]

Default constructor

asName

operator==

Equality operator

operator<=>

Three‐way comparison operators

Data Members

Name

Description

Identifier

The unqualified name.

Kind

The kind of name this is.

Prefix

The parent name info, if any.

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>

constexpr
IdentifierName() noexcept;

Three‐way comparison operators

Synopses

Declared in <mrdocs/Metadata/Name/NameBase.hpp>

Three‐way comparison operator

auto
operator<=>(IdentifierName const& other) const;

Three‐way comparison operator

std::strong_ordering
operator<=>(Name const& other) const;

Three‐way comparison operator

Synopsis

Declared in <mrdocs/Metadata/Name/IdentifierName.hpp>

auto
operator<=>(IdentifierName const& other) const;

Return Value

The relative order of the objects

Parameters

Name

Description

other

The right operand

Three‐way comparison operator

Synopsis

Declared in <mrdocs/Metadata/Name/NameBase.hpp>

std::strong_ordering
operator<=>(Name const& other) const;

Return Value

The relative order of the objects

Parameters

Name

Description

other

The right operand

Synopsis

Declared in <mrdocs/Metadata/Type/LValueReferenceType.hpp>

struct LValueReferenceType final
    : TypeCommonBase<TypeKind::LValueReference>

Base Classes

Member Functions

Name

Description

operator<=>

Three‐way comparison operators

Static Member Functions

Data Members

Static Data Members

Name

kind_id

Non-Member Functions

Name

Description

innerType

Return the inner type.

innerType

Return the inner type.

innerTypePtr

Return the inner type.

innerTypePtr

Return the inner type.

Three‐way comparison operators

Synopses

Declared in <mrdocs/Metadata/Type/LValueReferenceType.hpp>

Three‐way comparison operator

std::strong_ordering
operator<=>(LValueReferenceType const& rhs) const;

Three‐way comparison operator

constexpr
auto
operator<=>(TypeCommonBase<mrdocs::TypeKind::LValueReference> const& rhs) const = default;

Three‐way comparison operator

Synopsis

Declared in <mrdocs/Metadata/Type/LValueReferenceType.hpp>

std::strong_ordering
operator<=>(LValueReferenceType const& rhs) const;

Return Value

The relative order of the objects

Parameters

Name

Description

rhs

The right operand

Three‐way comparison operator

Synopsis

Declared in <mrdocs/Metadata/Type/TypeBase.hpp>

constexpr
auto
operator<=>(TypeCommonBase<mrdocs::TypeKind::LValueReference> const& rhs) const = default;

Return Value

The relative order of the objects

Parameters

Name

Description

rhs

The right operand

Synopsis

Declared in <mrdocs/Metadata/Type/TypeBase.hpp>

constexpr
static
bool
isArray() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Type/TypeBase.hpp>

constexpr
static
bool
isAuto() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Type/TypeBase.hpp>

constexpr
static
bool
isDecltype() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Type/TypeBase.hpp>

constexpr
static
bool
isFunction() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Type/TypeBase.hpp>

constexpr
static
bool
isLValueReference() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Type/TypeBase.hpp>

constexpr
static
bool
isMemberPointer() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Type/TypeBase.hpp>

constexpr
static
bool
isNamed() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Type/TypeBase.hpp>

constexpr
static
bool
isPointer() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Type/TypeBase.hpp>

constexpr
static
bool
isRValueReference() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Type/LValueReferenceType.hpp>

Polymorphic<Type> PointeeType = Polymorphic<Type>(AutoType{});

Synopsis

Declared in <mrdocs/Metadata/Type/TypeBase.hpp>

constexpr static
TypeKind kind_id;

Synopsis

Declared in <mrdocs/Metadata/Symbol/Location.hpp>

struct Location;

Member Functions

Name

Description

Location [constructor]

operator<=>

Three‐way comparison operator

Data Members

Name

Description

ColumnNumber

Column number within the line

Documented

Whether this location has documentation.

FullPath

The full file path

LineNumber

Line number within the file

ShortPath

The file path relative to one of the search directories

SourcePath

The file path relative to the source‐root directory

Synopsis

Declared in <mrdocs/Metadata/Symbol/Location.hpp>

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>

constexpr
auto
operator<=>(Location const& rhs) const = default;

Return Value

The relative order of the objects

Parameters

Name

Description

rhs

The right operand

Column number within the line

Synopsis

Declared in <mrdocs/Metadata/Symbol/Location.hpp>

unsigned int ColumnNumber = 0;

Whether this location has documentation.

Synopsis

Declared in <mrdocs/Metadata/Symbol/Location.hpp>

bool Documented = false;

The full file path

Synopsis

Declared in <mrdocs/Metadata/Symbol/Location.hpp>

std::string FullPath;

Line number within the file

Synopsis

Declared in <mrdocs/Metadata/Symbol/Location.hpp>

unsigned int LineNumber = 0;

The file path relative to one of the search directories

Synopsis

Declared in <mrdocs/Metadata/Symbol/Location.hpp>

std::string ShortPath;

The file path relative to the source‐root directory

Synopsis

Declared in <mrdocs/Metadata/Symbol/Location.hpp>

std::string SourcePath;

Synopsis

Declared in <mrdocs/Metadata/Type/MemberPointerType.hpp>

struct MemberPointerType final
    : TypeCommonBase<TypeKind::MemberPointer>

Base Classes

Member Functions

Name

Description

operator<=>

Three‐way comparison operators

Static Member Functions

Data Members

Static Data Members

Name

kind_id

Non-Member Functions

Name

Description

innerType

Return the inner type.

innerType

Return the inner type.

innerTypePtr

Return the inner type.

innerTypePtr

Return the inner type.

Three‐way comparison operators

Synopses

Declared in <mrdocs/Metadata/Type/MemberPointerType.hpp>

Three‐way comparison operator

std::strong_ordering
operator<=>(MemberPointerType const& rhs) const;

Three‐way comparison operator

constexpr
auto
operator<=>(TypeCommonBase<mrdocs::TypeKind::MemberPointer> const& rhs) const = default;

Three‐way comparison operator

Synopsis

Declared in <mrdocs/Metadata/Type/MemberPointerType.hpp>

std::strong_ordering
operator<=>(MemberPointerType const& rhs) const;

Return Value

The relative order of the objects

Parameters

Name

Description

rhs

The right operand

Three‐way comparison operator

Synopsis

Declared in <mrdocs/Metadata/Type/TypeBase.hpp>

constexpr
auto
operator<=>(TypeCommonBase<mrdocs::TypeKind::MemberPointer> const& rhs) const = default;

Return Value

The relative order of the objects

Parameters

Name

Description

rhs

The right operand

Synopsis

Declared in <mrdocs/Metadata/Type/TypeBase.hpp>

constexpr
static
bool
isArray() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Type/TypeBase.hpp>

constexpr
static
bool
isAuto() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Type/TypeBase.hpp>

constexpr
static
bool
isDecltype() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Type/TypeBase.hpp>

constexpr
static
bool
isFunction() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Type/TypeBase.hpp>

constexpr
static
bool
isLValueReference() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Type/TypeBase.hpp>

constexpr
static
bool
isMemberPointer() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Type/TypeBase.hpp>

constexpr
static
bool
isNamed() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Type/TypeBase.hpp>

constexpr
static
bool
isPointer() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Type/TypeBase.hpp>

constexpr
static
bool
isRValueReference() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Type/MemberPointerType.hpp>

Polymorphic<Type> ParentType = Polymorphic<Type>(AutoType{});

Synopsis

Declared in <mrdocs/Metadata/Type/MemberPointerType.hpp>

Polymorphic<Type> PointeeType = Polymorphic<Type>(AutoType{});

Synopsis

Declared in <mrdocs/Metadata/Type/TypeBase.hpp>

constexpr static
TypeKind kind_id;

Represents a name for a named Type

Synopsis

Declared in <mrdocs/Metadata/Name/NameBase.hpp>

struct Name;

Member Functions

Name

Description

~Name [destructor] [virtual]

Destructor

asName

operator==

Equality operator

operator<=>

Three‐way comparison operator

Data Members

Name

Description

Identifier

The unqualified name.

Kind

The kind of name this is.

Prefix

The parent name info, if any.

id

The SymbolID of the named symbol, if it exists.

Protected Member Functions

Name

Description

Name [constructor]

Constructors

Derived Classes

Name

Description

IdentifierName

Represents an identifier

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>

constexpr
virtual
~Name() = default;

Synopses

Declared in <mrdocs/Metadata/Name/NameBase.hpp>

constexpr
Name const&
asName() const noexcept;
constexpr
Name&
asName() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Name/NameBase.hpp>

constexpr
Name const&
asName() const noexcept;

Synopsis

Declared in <mrdocs/Metadata/Name/NameBase.hpp>

constexpr
Name&
asName() noexcept;

Equality operator

Synopsis

Declared in <mrdocs/Metadata/Name/NameBase.hpp>

bool
operator==(Name const& other) const;

Return Value

true if the objects are equal, false otherwise

Parameters

Name

Description

other

The right operand

Three‐way comparison operator

Synopsis

Declared in <mrdocs/Metadata/Name/NameBase.hpp>

std::strong_ordering
operator<=>(Name const& other) const;

Return Value

The relative order of the objects

Parameters

Name

Description

other

The right operand

The unqualified name.

Synopsis

Declared in <mrdocs/Metadata/Name/NameBase.hpp>

std::string Identifier;

The kind of name this is.

Synopsis

Declared in <mrdocs/Metadata/Name/NameBase.hpp>

NameKind Kind;

The parent name info, if any.

Synopsis

Declared in <mrdocs/Metadata/Name/NameBase.hpp>

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>

SymbolID id = = SymbolID::invalid;

Constructors

Synopses

Declared in <mrdocs/Metadata/Name/NameBase.hpp>

Default constructor

constexpr
Name() noexcept;

Construct from NameKind

constexpr
explicit
Name(NameKind const kind) noexcept;

Default constructor

Synopsis

Declared in <mrdocs/Metadata/Name/NameBase.hpp>

constexpr
Name() noexcept;

Construct from NameKind

Synopsis

Declared in <mrdocs/Metadata/Name/NameBase.hpp>

constexpr
explicit
Name(NameKind const kind) noexcept;

Parameters

Name

Description

kind

The object to construct from

Synopsis

Declared in <mrdocs/Metadata/Type/NamedType.hpp>

struct NamedType final
    : TypeCommonBase<TypeKind::Named>

Base Classes

Member Functions

Name

Description

operator<=>

Three‐way comparison operators

Static Member Functions

Data Members

Static Data Members

Name

kind_id

Non-Member Functions

Name

Description

innerType

Return the inner type.

innerType

Return the inner type.

innerTypePtr

Return the inner type.

innerTypePtr

Return the inner type.

Three‐way comparison operators

Synopses

Declared in <mrdocs/Metadata/Type/NamedType.hpp>

Three‐way comparison operator

std::strong_ordering
operator<=>(NamedType const& other) const;

Three‐way comparison operator

constexpr
auto
operator<=>(TypeCommonBase<mrdocs::TypeKind::Named> const& rhs) const = default;

Three‐way comparison operator

Synopsis

Declared in <mrdocs/Metadata/Type/NamedType.hpp>

std::strong_ordering
operator<=>(NamedType const& other) const;

Return Value

The relative order of the objects

Parameters

Name

Description

other

The right operand

Three‐way comparison operator

Synopsis

Declared in <mrdocs/Metadata/Type/TypeBase.hpp>

constexpr
auto
operator<=>(TypeCommonBase<mrdocs::TypeKind::Named> const& rhs) const = default;

Return Value

The relative order of the objects

Parameters

Name

Description

rhs

The right operand

Synopsis

Declared in <mrdocs/Metadata/Type/TypeBase.hpp>

constexpr
static
bool
isArray() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Type/TypeBase.hpp>

constexpr
static
bool
isAuto() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Type/TypeBase.hpp>

constexpr
static
bool
isDecltype() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Type/TypeBase.hpp>

constexpr
static
bool
isFunction() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Type/TypeBase.hpp>

constexpr
static
bool
isLValueReference() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Type/TypeBase.hpp>

constexpr
static
bool
isMemberPointer() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Type/TypeBase.hpp>

constexpr
static
bool
isNamed() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Type/TypeBase.hpp>

constexpr
static
bool
isPointer() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Type/TypeBase.hpp>

constexpr
static
bool
isRValueReference() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Type/NamedType.hpp>

Synopsis

Declared in <mrdocs/Metadata/Type/NamedType.hpp>

Polymorphic<Name> Name = Polymorphic<struct Name>(std::in_place_type<IdentifierName>);

Synopsis

Declared in <mrdocs/Metadata/Type/TypeBase.hpp>

constexpr static
TypeKind kind_id;

Info for namespace aliases.

Synopsis

Declared in <mrdocs/Metadata/Symbol/NamespaceAlias.hpp>

struct NamespaceAliasSymbol final
    : SymbolCommonBase<SymbolKind::NamespaceAlias>

Base Classes

Name

Description

SymbolCommonBase<SymbolKind::NamespaceAlias>

Base class for providing variant discriminator functions.

Member Functions

Name

Description

NamespaceAliasSymbol [constructor]

Construct from SymbolID

operator<=>

Three‐way comparison operator

Static Member Functions

Data Members

Name

Description

AliasedSymbol

The aliased symbol.

Static Data Members

Name

kind_id

Non-Member Functions

Name

Description

merge

Merges two Symbol objects.

Construct from SymbolID

Synopsis

Declared in <mrdocs/Metadata/Symbol/NamespaceAlias.hpp>

explicit
NamespaceAliasSymbol(SymbolID const& ID) noexcept;

Parameters

Name

Description

ID

The object to copy construct from

Three‐way comparison operator

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolBase.hpp>

auto
operator<=>(SymbolCommonBase<mrdocs::SymbolKind::NamespaceAlias> const& rhs) const = default;

Return Value

The relative order of the objects

Parameters

Name

Description

rhs

The right operand

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolNodes.inc>

constexpr
static
bool
isConcept() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolNodes.inc>

constexpr
static
bool
isEnum() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolNodes.inc>

constexpr
static
bool
isEnumConstant() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolNodes.inc>

constexpr
static
bool
isFunction() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolNodes.inc>

constexpr
static
bool
isGuide() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolNodes.inc>

constexpr
static
bool
isNamespace() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolNodes.inc>

constexpr
static
bool
isNamespaceAlias() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolNodes.inc>

constexpr
static
bool
isOverloads() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolNodes.inc>

constexpr
static
bool
isRecord() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolNodes.inc>

constexpr
static
bool
isTypedef() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolNodes.inc>

constexpr
static
bool
isUsing() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolNodes.inc>

constexpr
static
bool
isVariable() noexcept;

The aliased symbol.

Synopsis

Declared in <mrdocs/Metadata/Symbol/NamespaceAlias.hpp>

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>

constexpr static
SymbolKind kind_id;

Describes a namespace.

Synopsis

Declared in <mrdocs/Metadata/Symbol/Namespace.hpp>

struct NamespaceSymbol final
    : SymbolCommonBase<SymbolKind::Namespace>

Base Classes

Name

Description

SymbolCommonBase<SymbolKind::Namespace>

Base class for providing variant discriminator functions.

Member Functions

Name

Description

NamespaceSymbol [constructor]

Construct from SymbolID

operator<=>

Three‐way comparison operators

Static Member Functions

Data Members

Name

Description

IsAnonymous

IsInline

Members

The members of this namespace.

UsingDirectives

Namespaces nominated by using‐directives.

Static Data Members

Name

kind_id

Non-Member Functions

Name

Description

merge

Merges two Symbol objects.

Construct from SymbolID

Synopsis

Declared in <mrdocs/Metadata/Symbol/Namespace.hpp>

explicit
NamespaceSymbol(SymbolID const& ID) noexcept;

Parameters

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

std::strong_ordering
operator<=>(NamespaceSymbol const& rhs) const;

Three‐way comparison operator

Three‐way comparison operator

Synopsis

Declared in <mrdocs/Metadata/Symbol/Namespace.hpp>

std::strong_ordering
operator<=>(NamespaceSymbol const& rhs) const;

Return Value

The relative order of the objects

Parameters

Name

Description

rhs

The right operand

Three‐way comparison operator

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolBase.hpp>

auto
operator<=>(SymbolCommonBase<mrdocs::SymbolKind::Namespace> const& rhs) const = default;

Return Value

The relative order of the objects

Parameters

Name

Description

rhs

The right operand

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolNodes.inc>

constexpr
static
bool
isConcept() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolNodes.inc>

constexpr
static
bool
isEnum() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolNodes.inc>

constexpr
static
bool
isEnumConstant() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolNodes.inc>

constexpr
static
bool
isFunction() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolNodes.inc>

constexpr
static
bool
isGuide() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolNodes.inc>

constexpr
static
bool
isNamespace() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolNodes.inc>

constexpr
static
bool
isNamespaceAlias() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolNodes.inc>

constexpr
static
bool
isOverloads() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolNodes.inc>

constexpr
static
bool
isRecord() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolNodes.inc>

constexpr
static
bool
isTypedef() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolNodes.inc>

constexpr
static
bool
isUsing() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolNodes.inc>

constexpr
static
bool
isVariable() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Symbol/Namespace.hpp>

bool IsAnonymous = false;

Synopsis

Declared in <mrdocs/Metadata/Symbol/Namespace.hpp>

bool IsInline = false;

The members of this namespace.

Synopsis

Declared in <mrdocs/Metadata/Symbol/Namespace.hpp>

NamespaceTranche Members;

Namespaces nominated by using‐directives.

Synopsis

Declared in <mrdocs/Metadata/Symbol/Namespace.hpp>

std::vector<Name> UsingDirectives;

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolBase.hpp>

constexpr static
SymbolKind kind_id;

The members of a Namespace

Synopsis

Declared in <mrdocs/Metadata/Symbol/Namespace.hpp>

struct NamespaceTranche;

Member Functions

Name

Description

operator<=>

Three‐way comparison operator

Data Members

Synopsis

Declared in <mrdocs/Metadata/Symbol/Namespace.hpp>

constexpr
auto
operator<=>(NamespaceTranche const& rhs) const = default;

Return Value

The relative order of the objects

Parameters

Name

Description

rhs

The right operand

Synopsis

Declared in <mrdocs/Metadata/Symbol/Namespace.hpp>

std::vector<SymbolID> Concepts;

Synopsis

Declared in <mrdocs/Metadata/Symbol/Namespace.hpp>

std::vector<SymbolID> Enums;

Synopsis

Declared in <mrdocs/Metadata/Symbol/Namespace.hpp>

std::vector<SymbolID> Functions;

Synopsis

Declared in <mrdocs/Metadata/Symbol/Namespace.hpp>

std::vector<SymbolID> Guides;

Synopsis

Declared in <mrdocs/Metadata/Symbol/Namespace.hpp>

std::vector<SymbolID> NamespaceAliases;

Synopsis

Declared in <mrdocs/Metadata/Symbol/Namespace.hpp>

std::vector<SymbolID> Namespaces;

Synopsis

Declared in <mrdocs/Metadata/Symbol/Namespace.hpp>

std::vector<SymbolID> Records;

Synopsis

Declared in <mrdocs/Metadata/Symbol/Namespace.hpp>

std::vector<SymbolID> Typedefs;

Synopsis

Declared in <mrdocs/Metadata/Symbol/Namespace.hpp>

std::vector<SymbolID> Usings;

Synopsis

Declared in <mrdocs/Metadata/Symbol/Namespace.hpp>

std::vector<SymbolID> Variables;

Synopsis

Declared in <mrdocs/Metadata/Specifiers/NoexceptInfo.hpp>

struct NoexceptInfo;

Member Functions

Name

Description

operator<=>

Three‐way comparison operator

Data Members

Name

Description

Implicit

Whether a noexcept‐specifier was user‐written.

Kind

The evaluated exception specification.

Operand

The operand of the noexcept‐specifier, if any.

Non-Member Functions

Name

Description

toString

Convert NoexceptInfo to a string.

Three‐way comparison operator

Synopsis

Declared in <mrdocs/Metadata/Specifiers/NoexceptInfo.hpp>

constexpr
auto
operator<=>(NoexceptInfo const& rhs) const = default;

Return Value

The relative order of the objects

Parameters

Name

Description

rhs

The right operand

Whether a noexcept‐specifier was user‐written.

Synopsis

Declared in <mrdocs/Metadata/Specifiers/NoexceptInfo.hpp>

bool Implicit = true;

The evaluated exception specification.

Synopsis

Declared in <mrdocs/Metadata/Specifiers/NoexceptInfo.hpp>

NoexceptKind Kind = NoexceptKind::False;

The operand of the noexcept‐specifier, if any.

Synopsis

Declared in <mrdocs/Metadata/Specifiers/NoexceptInfo.hpp>

std::string Operand;

A compact optional that automatically uses nullable_traits<T> when available.

Synopsis

Declared in <mrdocs/ADT/Optional.hpp>

template<class T>
class Optional;

Types

Name

value_type

Member Functions

Name

Description

Optional [constructor]

Constructors

operator=

Assignment operators

emplace

In‐place construct a new value, replacing any existing one.

has_value

True if engaged (contains a value).

operator*

Dereference‐like access.

operator‐>

Pointer‐like access.

reset

Reset to the null state. *

value

Value access. Preconditions: has_value() is true.

operator bool

Contextual bool.

Static Member Functions

Name

Description

is_inlined

Determine if the value is inlined via nullable traits.

Non-Member Functions

Name

Description

getOperatorReadableName

Return the human‐readable name of the operator

innerType

Return the inner type.

innerType

Return the inner type.

operator!=

Compares an Optional to a value for inequality. Returns true if the Optional is disengaged or its value does not equal rhs.

operator!=

Compares two Optional values for inequality. Returns true if their engagement states differ or their contained values are not equal.

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.

operator<

Checks if the Optional is less than a value. Returns true if the Optional is disengaged or its value is less than rhs.

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.

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.

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.

operator<=>

Performs a three‐way comparison between two Optional values. If both are engaged, compares their contained values; otherwise, compares engagement state.

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.

operator<=>

Three‐way comparison operator

operator<=>

Three‐way comparison operator

operator==

Compares two Optional values for equality. Returns true if both are engaged and their contained values are equal, or both are disengaged.

operator==

Checks if the Optional is disengaged (equal to std::nullopt). Returns true if the Optional does not contain a value.

operator==

Equality operator

operator==

Equality operator

operator==

Compares an engaged Optional to a value for equality. Returns true if the Optional is engaged and its value equals rhs.

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.

operator>

Checks if the Optional is greater than a value. Returns true if the Optional is engaged and its value is greater than rhs.

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.

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.

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>

using value_type = T;

Constructors

Synopses

Declared in <mrdocs/ADT/Optional.hpp>

Default‐constructs to the “null” state.

constexpr
Optional() noexcept(default_ctor_noex_());

Copy constructor

constexpr
Optional(Optional const& other) = default;

Copy constructor

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(Optional<U> const& t) noexcept(std::is_nothrow_constructible_v<T, const U &>);

Move constructor

constexpr
Optional(Optional&& other) = default;

Move constructor

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(Optional<U>&& t) noexcept(std::is_nothrow_constructible_v<T, U>);

Construct from std::nullopt

constexpr
Optional(std::nullopt_t value) noexcept(default_ctor_noex_());

Construct from optional

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 &>);

Construct from a value.

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>);

Construct from optional

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>);
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...>);
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...>);

Parameters

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>

constexpr
Optional() noexcept(default_ctor_noex_());

Copy constructor

Synopsis

Declared in <mrdocs/ADT/Optional.hpp>

constexpr
Optional(Optional const& other) = default;

Parameters

Name

Description

other

The object to copy construct from

Copy constructor

Synopsis

Declared in <mrdocs/ADT/Optional.hpp>

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(Optional<U> const& t) noexcept(std::is_nothrow_constructible_v<T, const U &>);

Parameters

Name

Description

t

The object to copy construct from

Move constructor

Synopsis

Declared in <mrdocs/ADT/Optional.hpp>

constexpr
Optional(Optional&& other) = default;

Parameters

Name

Description

other

The object to move construct from

Move constructor

Synopsis

Declared in <mrdocs/ADT/Optional.hpp>

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(Optional<U>&& t) noexcept(std::is_nothrow_constructible_v<T, U>);

Parameters

Name

Description

t

The object to move construct from

Construct from std::nullopt

Synopsis

Declared in <mrdocs/ADT/Optional.hpp>

constexpr
Optional(std::nullopt_t value) noexcept(default_ctor_noex_());

Parameters

Name

Description

value

The object to construct from

Construct from optional

Synopsis

Declared in <mrdocs/ADT/Optional.hpp>

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

Name

Description

t

The object to copy construct from

Construct from a value.

Synopsis

Declared in <mrdocs/ADT/Optional.hpp>

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

Name

Description

u

The value to store. It must be convertible to T.

Construct from optional

Synopsis

Declared in <mrdocs/ADT/Optional.hpp>

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

Name

Description

t

The object to move construct from

Synopsis

Declared in <mrdocs/ADT/Optional.hpp>

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>

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

constexpr
Optional&
operator=(Optional const& other) = default;

Copy assignment operator

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
Optional&
operator=(Optional<U> const& u) noexcept(std::is_nothrow_constructible_v<T, const U &> && std::is_nothrow_assignable_v<T &, const U &>);

Move assignment

constexpr
Optional&
operator=(Optional&& other) = default;

Move assignment operator

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
Optional&
operator=(Optional<U>&& u) noexcept(std::is_nothrow_constructible_v<T, U> && std::is_nothrow_assignable_v<T &, U>);

Assignment operator

constexpr
Optional&
operator=(std::nullptr_t value) noexcept(reset_noex_());

Assign from a value.

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
Optional&
operator=(U&& u) noexcept(std::is_nothrow_constructible_v<T, U> && std::is_nothrow_assignable_v<T &, U>);

Parameters

Name

Description

u

The value to store. It must be convertible to T.

Copy assignment

Synopsis

Declared in <mrdocs/ADT/Optional.hpp>

constexpr
Optional&
operator=(Optional const& other) = default;

Return Value

Reference to the current object

Parameters

Name

Description

other

The object to copy assign from

Copy assignment operator

Synopsis

Declared in <mrdocs/ADT/Optional.hpp>

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
Optional&
operator=(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

Name

Description

u

The object to copy assign from

Move assignment

Synopsis

Declared in <mrdocs/ADT/Optional.hpp>

constexpr
Optional&
operator=(Optional&& other) = default;

Return Value

Reference to the current object

Parameters

Name

Description

other

The object to move assign from

Move assignment operator

Synopsis

Declared in <mrdocs/ADT/Optional.hpp>

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
Optional&
operator=(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

Name

Description

u

The object to move assign from

Assignment operator

Synopsis

Declared in <mrdocs/ADT/Optional.hpp>

constexpr
Optional&
operator=(std::nullptr_t value) noexcept(reset_noex_());

Return Value

Reference to the current object

Parameters

Name

Description

value

The object to assign from

Assign from a value.

Synopsis

Declared in <mrdocs/ADT/Optional.hpp>

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
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

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>

template<class... Args>
requires std::is_constructible_v<T, Args...>
constexpr
value_type&
emplace(Args...&&... args) noexcept(std::is_nothrow_constructible_v<T, Args...>);

Return Value

A reference to the newly constructed value.

Parameters

Name

Description

args

The arguments to forward to T's constructor.

True if engaged (contains a value).

Synopsis

Declared in <mrdocs/ADT/Optional.hpp>

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.

constexpr
value_type&
operator*() noexcept;

Dereference‐like access.

constexpr
value_type const&
operator*() const noexcept;

Return Value

A reference to the contained value.

Dereference‐like access.

Synopsis

Declared in <mrdocs/ADT/Optional.hpp>

constexpr
value_type&
operator*() noexcept;

Return Value

A reference to the contained value.

Dereference‐like access.

Synopsis

Declared in <mrdocs/ADT/Optional.hpp>

constexpr
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.

constexpr
value_type*
operator‐>() noexcept;

Pointer‐like access.

constexpr
value_type const*
operator‐>() const noexcept;

Return Value

A pointer to the contained value.

Pointer‐like access.

Synopsis

Declared in <mrdocs/ADT/Optional.hpp>

constexpr
value_type*
operator‐>() noexcept;

Return Value

A pointer to the contained value.

Pointer‐like access.

Synopsis

Declared in <mrdocs/ADT/Optional.hpp>

constexpr
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>

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.

constexpr
value_type&
value() & noexcept;

Value access. Preconditions: has_value() is true.

constexpr
value_type const&
value() const & noexcept;

Value access. Preconditions: has_value() is true.

constexpr
value_type&&
value() && noexcept;

Value access. Preconditions: has_value() is true.

constexpr
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>

constexpr
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>

constexpr
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>

constexpr
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>

constexpr
value_type const&&
value() const && noexcept;

Return Value

A reference to the contained value.

Contextual bool.

Synopsis

Declared in <mrdocs/ADT/Optional.hpp>

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>

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>

template<class T>
class Optional<T&>;

Types

Name

value_type

Member Functions

Name

Description

Optional [constructor]

Constructors

operator=

Assignment operators

emplace

has_value

operator*

Dereference operators

operator‐>

Member access operators

reset

swap

value

operator bool

Conversion to bool

Static Member Functions

Name

is_inlined

Synopsis

Declared in <mrdocs/ADT/Optional.hpp>

using value_type = T;

Constructors

Synopses

Declared in <mrdocs/ADT/Optional.hpp>

Default constructor

constexpr
Optional() noexcept = default;

Copy constructor

constexpr
Optional(Optional const& other) noexcept = default;

Move constructor

constexpr
Optional(Optional&& other) noexcept = default;

Construct from nullopt_t

constexpr
Optional(std::nullopt_t value) noexcept;

Construct from Optional

template<class U>
requires ok_bind_v<U&>
constexpr
explicit(!std::is_convertible_v<U &, T &>)
Optional(Optional<U>& rhs) noexcept(std::is_nothrow_constructible_v<T &, U &>);

Construct from optional

template<class U>
requires ok_bind_v<U&>
constexpr
Optional(std::optional<U>& o) noexcept(std::is_nothrow_constructible_v<T &, U &>);

Construct from Optional

template<class U>
requires ok_bind_v<U const&>
constexpr
explicit(!std::is_convertible_v<const U &, T &>)
Optional(Optional<U> const& rhs) noexcept(std::is_nothrow_constructible_v<T &, const U &>);

Construct from optional

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 &>);

Construct from U

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>);

Default constructor

Synopsis

Declared in <mrdocs/ADT/Optional.hpp>

constexpr
Optional() noexcept = default;

Copy constructor

Synopsis

Declared in <mrdocs/ADT/Optional.hpp>

constexpr
Optional(Optional const& other) noexcept = default;

Parameters

Name

Description

other

The object to copy construct from

Move constructor

Synopsis

Declared in <mrdocs/ADT/Optional.hpp>

constexpr
Optional(Optional&& other) noexcept = default;

Parameters

Name

Description

other

The object to move construct from

Construct from nullopt_t

Synopsis

Declared in <mrdocs/ADT/Optional.hpp>

constexpr
Optional(std::nullopt_t value) noexcept;

Parameters

Name

Description

value

The object to construct from

Construct from Optional

Synopsis

Declared in <mrdocs/ADT/Optional.hpp>

template<class U>
requires ok_bind_v<U&>
constexpr
explicit(!std::is_convertible_v<U &, T &>)
Optional(Optional<U>& rhs) noexcept(std::is_nothrow_constructible_v<T &, U &>);

Parameters

Name

Description

rhs

The object to copy construct from

Construct from optional

Synopsis

Declared in <mrdocs/ADT/Optional.hpp>

template<class U>
requires ok_bind_v<U&>
constexpr
Optional(std::optional<U>& o) noexcept(std::is_nothrow_constructible_v<T &, U &>);

Parameters

Name

Description

o

The object to copy construct from

Construct from Optional

Synopsis

Declared in <mrdocs/ADT/Optional.hpp>

template<class U>
requires ok_bind_v<U const&>
constexpr
explicit(!std::is_convertible_v<const U &, T &>)
Optional(Optional<U> const& rhs) noexcept(std::is_nothrow_constructible_v<T &, const U &>);

Parameters

Name

Description

rhs

The object to copy construct from

Construct from optional

Synopsis

Declared in <mrdocs/ADT/Optional.hpp>

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

Name

Description

o

The object to copy construct from

Construct from U

Synopsis

Declared in <mrdocs/ADT/Optional.hpp>

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

Name

Description

u

The object to move construct from

Assignment operators

Synopses

Declared in <mrdocs/ADT/Optional.hpp>

Copy assignment operator

constexpr
Optional&
operator=(Optional const& other) noexcept = default;

Move assignment operator

constexpr
Optional&
operator=(Optional&& other) noexcept = default;

Assignment operator

constexpr
Optional&
operator=(std::nullopt_t value) noexcept;

Assignment operator

template<class U>
requires ok_bind_v<U&>
constexpr
Optional&
operator=(Optional<U>& rhs) noexcept(std::is_nothrow_constructible_v<T &, U &>);

Assignment operator

template<class U>
requires ok_bind_v<U const&>
constexpr
Optional&
operator=(Optional<U> const& rhs) noexcept(std::is_nothrow_constructible_v<T &, const U &>);

Assignment operator

template<class U>
requires ok_bind_v<U>
constexpr
Optional&
operator=(U&& u) noexcept(std::is_nothrow_constructible_v<T &, U>);

Assignment operator

template<class U>
requires ok_bind_v<U>
constexpr
Optional&
operator=(Optional<U>&& rhs) noexcept(std::is_nothrow_constructible_v<T &, U>);

Copy assignment operator

Synopsis

Declared in <mrdocs/ADT/Optional.hpp>

constexpr
Optional&
operator=(Optional const& other) noexcept = default;

Return Value

Reference to the current object

Parameters

Name

Description

other

The object to copy assign from

Move assignment operator

Synopsis

Declared in <mrdocs/ADT/Optional.hpp>

constexpr
Optional&
operator=(Optional&& other) noexcept = default;

Return Value

Reference to the current object

Parameters

Name

Description

other

The object to move assign from

Assignment operator

Synopsis

Declared in <mrdocs/ADT/Optional.hpp>

constexpr
Optional&
operator=(std::nullopt_t value) noexcept;

Return Value

Reference to the current object

Parameters

Name

Description

value

The object to assign from

Assignment operator

Synopsis

Declared in <mrdocs/ADT/Optional.hpp>

template<class U>
requires ok_bind_v<U&>
constexpr
Optional&
operator=(Optional<U>& rhs) noexcept(std::is_nothrow_constructible_v<T &, U &>);

Return Value

Reference to the current object

Parameters

Name

Description

rhs

The object to copy assign from

Assignment operator

Synopsis

Declared in <mrdocs/ADT/Optional.hpp>

template<class U>
requires ok_bind_v<U const&>
constexpr
Optional&
operator=(Optional<U> const& rhs) noexcept(std::is_nothrow_constructible_v<T &, const U &>);

Return Value

Reference to the current object

Parameters

Name

Description

rhs

The object to copy assign from

Assignment operator

Synopsis

Declared in <mrdocs/ADT/Optional.hpp>

template<class U>
requires ok_bind_v<U>
constexpr
Optional&
operator=(U&& u) noexcept(std::is_nothrow_constructible_v<T &, U>);

Return Value

Reference to the current object

Parameters

Name

Description

u

The object to move assign from

Assignment operator

Synopsis

Declared in <mrdocs/ADT/Optional.hpp>

template<class U>
requires ok_bind_v<U>
constexpr
Optional&
operator=(Optional<U>&& rhs) noexcept(std::is_nothrow_constructible_v<T &, U>);

Return Value

Reference to the current object

Parameters

Name

Description

rhs

The object to move assign from

Synopsis

Declared in <mrdocs/ADT/Optional.hpp>

template<class U>
requires ok_bind_v<U>
constexpr
value_type&
emplace(U&& u) noexcept(std::is_nothrow_constructible_v<T &, U>);

Synopsis

Declared in <mrdocs/ADT/Optional.hpp>

constexpr
bool
has_value() const noexcept;

Dereference operators

Synopses

Declared in <mrdocs/ADT/Optional.hpp>

constexpr
value_type&
operator*() noexcept;
constexpr
value_type const&
operator*() const noexcept;

Synopsis

Declared in <mrdocs/ADT/Optional.hpp>

constexpr
value_type&
operator*() noexcept;

Synopsis

Declared in <mrdocs/ADT/Optional.hpp>

constexpr
value_type const&
operator*() const noexcept;

Member access operators

Synopses

Declared in <mrdocs/ADT/Optional.hpp>

constexpr
value_type*
operator‐>() noexcept;
constexpr
value_type const*
operator‐>() const noexcept;

Synopsis

Declared in <mrdocs/ADT/Optional.hpp>

constexpr
value_type*
operator‐>() noexcept;

Synopsis

Declared in <mrdocs/ADT/Optional.hpp>

constexpr
value_type const*
operator‐>() const noexcept;

Synopsis

Declared in <mrdocs/ADT/Optional.hpp>

constexpr
void
reset() noexcept;

Synopsis

Declared in <mrdocs/ADT/Optional.hpp>

constexpr
void
swap(Optional& other) noexcept;

Synopses

Declared in <mrdocs/ADT/Optional.hpp>

constexpr
value_type&
value() & noexcept;
constexpr
value_type const&
value() const & noexcept;
constexpr
value_type&
value() && noexcept;
constexpr
value_type const&
value() const && noexcept;

Synopsis

Declared in <mrdocs/ADT/Optional.hpp>

constexpr
value_type&
value() & noexcept;

Synopsis

Declared in <mrdocs/ADT/Optional.hpp>

constexpr
value_type const&
value() const & noexcept;

Synopsis

Declared in <mrdocs/ADT/Optional.hpp>

constexpr
value_type&
value() && noexcept;

Synopsis

Declared in <mrdocs/ADT/Optional.hpp>

constexpr
value_type const&
value() const && noexcept;

Conversion to bool

Synopsis

Declared in <mrdocs/ADT/Optional.hpp>

constexpr
explicit
operator bool() const noexcept;

Return Value

The object converted to bool

Synopsis

Declared in <mrdocs/ADT/Optional.hpp>

constexpr
static
bool
is_inlined() noexcept;

Reference to output stream used by handlebars

Synopsis

Declared in <mrdocs/Support/Handlebars.hpp>

class OutputRef;

Member Functions

Name

Description

OutputRef [constructor]

Constructors

getIndent

setIndent

Friends

Name

Description

mrdocs::operator<<

Write to output

mrdocs::operator<<

Write to output

mrdocs::operator<<

Write to output

mrdocs::operator<<

Write to output

mrdocs::Handlebars

A handlebars environment

Non-Member Functions

Name

Description

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

template</* implementation-defined */ Os>
requires std::is_convertible_v<Os*, std::ostream*> &&
        (!detail::StdLHROStreamable<Os>)
OutputRef(Os& os);

Constructor for llvm::raw_string_ostream output

template</* implementation-defined */ Os>
requires std::is_convertible_v<Os*, std::ostream*>
OutputRef(Os& os);

Constructor for std::string output

template</* implementation-defined */ St>
requires std::same_as<typename St::value_type, char>
OutputRef(St& st);

Parameters

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>

template</* implementation-defined */ Os>
requires std::is_convertible_v<Os*, std::ostream*> &&
        (!detail::StdLHROStreamable<Os>)
OutputRef(Os& os);

Parameters

Name

Description

os

The output stream to write to

Constructor for llvm::raw_string_ostream output

Synopsis

Declared in <mrdocs/Support/Handlebars.hpp>

template</* implementation-defined */ Os>
requires std::is_convertible_v<Os*, std::ostream*>
OutputRef(Os& os);

Parameters

Name

Description

os

The output stream to write to

Constructor for std::string output

Synopsis

Declared in <mrdocs/Support/Handlebars.hpp>

template</* implementation-defined */ St>
requires std::same_as<typename St::value_type, char>
OutputRef(St& st);

Parameters

Name

Description

st

The string to append to

Synopsis

Declared in <mrdocs/Support/Handlebars.hpp>

std::size_t
getIndent() const noexcept;

Synopsis

Declared in <mrdocs/Support/Handlebars.hpp>

void
setIndent(std::size_t indent);

Combines multiple callable types into a single overloaded function object.

Synopsis

Declared in <mrdocs/ADT/Overload.hpp>

template<class... Ts>
struct Overload
    : Ts...

Base Classes

Name

Description

Ts...

Member Functions

Name

Description

Overload [constructor]

Constructs an Overload from the given callables.

Non-Member Functions

Name

Description

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.

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

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>

constexpr
explicit
Overload(Ts... xs) noexceptstd::is_nothrow_move_constructible_v<Ts> && ...;

Parameters

Name

Description

xs

The callables to store.

Represents a set of function overloads.

Synopsis

Declared in <mrdocs/Metadata/Symbol/Overloads.hpp>

struct OverloadsSymbol final
    : SymbolCommonBase<SymbolKind::Overloads>

Base Classes

Name

Description

SymbolCommonBase<SymbolKind::Overloads>

Base class for providing variant discriminator functions.

Member Functions

Name

Description

OverloadsSymbol [constructor]

Constructors

operator<=>

Three‐way comparison operator

Static Member Functions

Data Members

Name

Description

Class

The class of the functions.

Members

The members of the overload set.

OverloadedOperator

The overloaded operator, if any.

ReturnType

Info about the return type of these function overloads.

Static Data Members

Name

kind_id

Non-Member Functions

Name

Description

merge

Merges two Symbol objects.

Constructors

Synopses

Declared in <mrdocs/Metadata/Symbol/Overloads.hpp>

Construct from SymbolID

explicit
OverloadsSymbol(SymbolID const& ID) noexcept;
explicit
OverloadsSymbol(
    SymbolID const& Parent,
    std::string_view Name,
    AccessKind Access,
    bool isStatic) noexcept;

Construct from SymbolID

Synopsis

Declared in <mrdocs/Metadata/Symbol/Overloads.hpp>

explicit
OverloadsSymbol(SymbolID const& ID) noexcept;

Parameters

Name

Description

ID

The object to copy construct from

Synopsis

Declared in <mrdocs/Metadata/Symbol/Overloads.hpp>

explicit
OverloadsSymbol(
    SymbolID const& Parent,
    std::string_view Name,
    AccessKind Access,
    bool isStatic) noexcept;

Three‐way comparison operator

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolBase.hpp>

auto
operator<=>(SymbolCommonBase<mrdocs::SymbolKind::Overloads> const& rhs) const = default;

Return Value

The relative order of the objects

Parameters

Name

Description

rhs

The right operand

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolNodes.inc>

constexpr
static
bool
isConcept() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolNodes.inc>

constexpr
static
bool
isEnum() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolNodes.inc>

constexpr
static
bool
isEnumConstant() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolNodes.inc>

constexpr
static
bool
isFunction() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolNodes.inc>

constexpr
static
bool
isGuide() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolNodes.inc>

constexpr
static
bool
isNamespace() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolNodes.inc>

constexpr
static
bool
isNamespaceAlias() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolNodes.inc>

constexpr
static
bool
isOverloads() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolNodes.inc>

constexpr
static
bool
isRecord() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolNodes.inc>

constexpr
static
bool
isTypedef() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolNodes.inc>

constexpr
static
bool
isUsing() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolNodes.inc>

constexpr
static
bool
isVariable() noexcept;

The class of the functions.

Synopsis

Declared in <mrdocs/Metadata/Symbol/Overloads.hpp>

FunctionClass Class = FunctionClass::Normal;

The members of the overload set.

Synopsis

Declared in <mrdocs/Metadata/Symbol/Overloads.hpp>

std::vector<SymbolID> Members;

The overloaded operator, if any.

Synopsis

Declared in <mrdocs/Metadata/Symbol/Overloads.hpp>

OperatorKind OverloadedOperator = OperatorKind::None;

Info about the return type of these function overloads.

Synopsis

Declared in <mrdocs/Metadata/Symbol/Overloads.hpp>

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>

constexpr static
SymbolKind kind_id;

Represents a single function parameter

Synopsis

Declared in <mrdocs/Metadata/Symbol/Param.hpp>

struct Param final

Member Functions

Name

Description

Param [constructor]

Constructors

operator<=>

Three‐way comparison operator

Data Members

Name

Description

Default

The default argument for this parameter, if any

Name

The parameter name.

Type

The type of this parameter

Constructors

Synopses

Declared in <mrdocs/Metadata/Symbol/Param.hpp>

Default constructor

constexpr
Param() = default;
Param(
    Polymorphic<Type>&& type,
    std::string&& name,
    std::string&& def_arg);

Default constructor

Synopsis

Declared in <mrdocs/Metadata/Symbol/Param.hpp>

constexpr
Param() = default;

Synopsis

Declared in <mrdocs/Metadata/Symbol/Param.hpp>

Param(
    Polymorphic<Type>&& type,
    std::string&& name,
    std::string&& def_arg);

Three‐way comparison operator

Synopsis

Declared in <mrdocs/Metadata/Symbol/Param.hpp>

auto
operator<=>(Param const& rhs) const = default;

Return Value

The relative order of the objects

Parameters

Name

Description

rhs

The right operand

The default argument for this parameter, if any

Synopsis

Declared in <mrdocs/Metadata/Symbol/Param.hpp>

The parameter name.

Synopsis

Declared in <mrdocs/Metadata/Symbol/Param.hpp>

The type of this parameter

Synopsis

Declared in <mrdocs/Metadata/Symbol/Param.hpp>

Polymorphic<Type> Type = Polymorphic<struct Type>(AutoType{});

The result of a parse operation.

Synopsis

Declared in <mrdocs/Support/Parse.hpp>

struct ParseResult;

Member Functions

Name

Description

operator bool

Conversion to bool

Data Members

Name

ec

ptr

Friends

Name

Description

mrdocs::operator==

Equality operator

Non-Member Functions

Name

Description

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:

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>

constexpr
explicit
operator bool() const noexcept;

Return Value

The object converted to bool

Synopsis

Declared in <mrdocs/Support/Parse.hpp>

Error ec;

Synopsis

Declared in <mrdocs/Support/Parse.hpp>

char const* ptr;

A glob pattern matcher for paths

Synopsis

Declared in <mrdocs/Support/Glob.hpp>

class PathGlobPattern;

Member Functions

Name

Description

PathGlobPattern [constructor]

Construct an empty PathGlobPattern.

isLiteral

Checks if the glob pattern is a literal string.

match

Matches the given string against the glob pattern.

matchPatternPrefix

Matches the start of a given string against the glob pattern.

pattern

Returns the glob pattern.

Static Member Functions

Name

Description

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.

constexpr
PathGlobPattern() = default;

Construct an empty PathGlobPattern.

explicit
PathGlobPattern(GlobPattern glob);

Construct an empty PathGlobPattern.

Synopsis

Declared in <mrdocs/Support/Glob.hpp>

constexpr
PathGlobPattern() = default;

Description

An empty PathGlobPattern will never match any string.

Construct an empty PathGlobPattern.

Synopsis

Declared in <mrdocs/Support/Glob.hpp>

explicit
PathGlobPattern(GlobPattern glob);

Description

An empty PathGlobPattern will never match any string.

Parameters

Name

Description

glob

The object to construct from

Checks if the glob pattern is a literal string.

Synopsis

Declared in <mrdocs/Support/Glob.hpp>

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>

bool
match(std::string_view const str) const;

Return Value

true if the string matches the pattern, false otherwise.

Parameters

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>

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

Name

Description

prefix

The string to match against the pattern.

Returns the glob pattern.

Synopsis

Declared in <mrdocs/Support/Glob.hpp>

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.

static
Expected<PathGlobPattern>
create(std::string_view const pattern);

Constructs a PathGlobPattern with the given pattern.

static
Expected<PathGlobPattern>
create(
    std::string_view const pattern,
    Optional<std::size_t> maxSubGlobs);

Parameters

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>

static
Expected<PathGlobPattern>
create(std::string_view const pattern);

Return Value

A container holding an error or a value.

Parameters

Name

Description

pattern

The glob pattern to use for matching.

Constructs a PathGlobPattern with the given pattern.

Synopsis

Declared in <mrdocs/Support/Glob.hpp>

static
Expected<PathGlobPattern>
create(
    std::string_view const pattern,
    Optional<std::size_t> maxSubGlobs);

Return Value

A container holding an error or a value.

Parameters

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>

struct PointerType final
    : TypeCommonBase<TypeKind::Pointer>

Base Classes

Member Functions

Name

Description

operator<=>

Three‐way comparison operators

Static Member Functions

Data Members

Static Data Members

Name

kind_id

Non-Member Functions

Name

Description

innerType

Return the inner type.

innerType

Return the inner type.

innerTypePtr

Return the inner type.

innerTypePtr

Return the inner type.

Three‐way comparison operators

Synopses

Declared in <mrdocs/Metadata/Type/PointerType.hpp>

Three‐way comparison operator

std::strong_ordering
operator<=>(PointerType const& rhs) const;

Three‐way comparison operator

constexpr
auto
operator<=>(TypeCommonBase<mrdocs::TypeKind::Pointer> const& rhs) const = default;

Three‐way comparison operator

Synopsis

Declared in <mrdocs/Metadata/Type/PointerType.hpp>

std::strong_ordering
operator<=>(PointerType const& rhs) const;

Return Value

The relative order of the objects

Parameters

Name

Description

rhs

The right operand

Three‐way comparison operator

Synopsis

Declared in <mrdocs/Metadata/Type/TypeBase.hpp>

constexpr
auto
operator<=>(TypeCommonBase<mrdocs::TypeKind::Pointer> const& rhs) const = default;

Return Value

The relative order of the objects

Parameters

Name

Description

rhs

The right operand

Synopsis

Declared in <mrdocs/Metadata/Type/TypeBase.hpp>

constexpr
static
bool
isArray() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Type/TypeBase.hpp>

constexpr
static
bool
isAuto() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Type/TypeBase.hpp>

constexpr
static
bool
isDecltype() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Type/TypeBase.hpp>

constexpr
static
bool
isFunction() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Type/TypeBase.hpp>

constexpr
static
bool
isLValueReference() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Type/TypeBase.hpp>

constexpr
static
bool
isMemberPointer() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Type/TypeBase.hpp>

constexpr
static
bool
isNamed() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Type/TypeBase.hpp>

constexpr
static
bool
isPointer() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Type/TypeBase.hpp>

constexpr
static
bool
isRValueReference() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Type/PointerType.hpp>

Polymorphic<Type> PointeeType = Polymorphic<Type>(AutoType{});

Synopsis

Declared in <mrdocs/Metadata/Type/TypeBase.hpp>

constexpr static
TypeKind kind_id;

A polymorphic value‐type.

Synopsis

Declared in <mrdocs/ADT/Polymorphic.hpp>

template<class T>
class Polymorphic;

Types

Member Functions

Name

Description

Polymorphic [constructor]

Constructors

~Polymorphic [destructor]

Destructor

operator=

Assignment operators

operator*

Dereference operators

operator‐>

Member access operators

valueless_after_move

Friends

Name

Description

mrdocs::swap

mrdocs::nullable_traits

nullable_traits<T> defines how to treat a T as “nullable” without an external engaged bit.

Non-Member Functions

Name

Description

CompareDerived

Compares two polymorphic objects that have visit functions

innerType

Return the inner type.

innerType

Return the inner type.

innermostType

Return the innermost type.

innermostType

Return the innermost type.

operator<=>

Three‐way comparison operator

operator<=>

Three‐way comparison operator

operator<=>

Three‐way comparison operator

operator<=>

Three‐way comparison operator

operator<=>

Three‐way comparison operator

operator==

Equality operator

operator==

Equality operator

operator==

Equality operator

operator==

Equality operator

doc::isEmpty

Determine if the inline is empty

doc::isEmpty

Determine if the inline is empty

doc::ltrim

Removes leading whitespace from the inline element.

doc::ltrim

Removes leading whitespace from the block.

doc::operator<=>

Three‐way comparison operator

doc::operator<=>

Three‐way comparison operator

doc::operator==

Equality operator

doc::operator==

Equality operator

doc::rtrim

Removes trailing whitespace from the block.

doc::rtrim

Removes trailing whitespace from the inline element.

doc::trim

Removes leading and trailing whitespace from the block.

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>

using const_pointer = T const*;

Synopsis

Declared in <mrdocs/ADT/Polymorphic.hpp>

using pointer = T*;

Synopsis

Declared in <mrdocs/ADT/Polymorphic.hpp>

using value_type = T;

Constructors

Synopses

Declared in <mrdocs/ADT/Polymorphic.hpp>

Copy constructor

constexpr
Polymorphic(Polymorphic const& V);

Move constructor

constexpr
Polymorphic(Polymorphic&& V) noexcept;

Forwarding constructor from a derived U.

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>;

In‐place constructor for a specific derived U.

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

Name

Description

ts

Arguments to forward to U's constructor.

Copy constructor

Synopsis

Declared in <mrdocs/ADT/Polymorphic.hpp>

constexpr
Polymorphic(Polymorphic const& V);

Parameters

Name

Description

V

The object to copy construct from

Move constructor

Synopsis

Declared in <mrdocs/ADT/Polymorphic.hpp>

constexpr
Polymorphic(Polymorphic&& V) noexcept;

Parameters

Name

Description

V

The object to move construct from

Forwarding constructor from a derived U.

Synopsis

Declared in <mrdocs/ADT/Polymorphic.hpp>

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

Name

Description

u

The object to move construct from

In‐place constructor for a specific derived U.

Synopsis

Declared in <mrdocs/ADT/Polymorphic.hpp>

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

Name

Description

ts

Arguments to forward to U's constructor.

Destructor

Synopsis

Declared in <mrdocs/ADT/Polymorphic.hpp>

constexpr
~Polymorphic();

Assignment operators

Synopses

Declared in <mrdocs/ADT/Polymorphic.hpp>

Copy assignment operator

constexpr
Polymorphic&
operator=(Polymorphic const& V);

Move assignment operator

constexpr
Polymorphic&
operator=(Polymorphic&& V) noexcept;

Copy assignment operator

Synopsis

Declared in <mrdocs/ADT/Polymorphic.hpp>

constexpr
Polymorphic&
operator=(Polymorphic const& V);

Return Value

Reference to the current object

Parameters

Name

Description

V

The object to copy assign from

Move assignment operator

Synopsis

Declared in <mrdocs/ADT/Polymorphic.hpp>

constexpr
Polymorphic&
operator=(Polymorphic&& V) noexcept;

Return Value

Reference to the current object

Parameters

Name

Description

V

The object to move assign from

Dereference operators

Synopses

Declared in <mrdocs/ADT/Polymorphic.hpp>

[[nodiscard]]
constexpr
T&
operator*() noexcept;
[[nodiscard]]
constexpr
T const&
operator*() const noexcept;

Synopsis

Declared in <mrdocs/ADT/Polymorphic.hpp>

[[nodiscard]]
constexpr
T&
operator*() noexcept;

Synopsis

Declared in <mrdocs/ADT/Polymorphic.hpp>

[[nodiscard]]
constexpr
T const&
operator*() const noexcept;

Member access operators

Synopses

Declared in <mrdocs/ADT/Polymorphic.hpp>

[[nodiscard]]
constexpr
pointer
operator‐>() noexcept;
[[nodiscard]]
constexpr
const_pointer
operator‐>() const noexcept;

Synopsis

Declared in <mrdocs/ADT/Polymorphic.hpp>

[[nodiscard]]
constexpr
pointer
operator‐>() noexcept;

Synopsis

Declared in <mrdocs/ADT/Polymorphic.hpp>

[[nodiscard]]
constexpr
const_pointer
operator‐>() const noexcept;

Synopsis

Declared in <mrdocs/ADT/Polymorphic.hpp>

constexpr
bool
valueless_after_move() const noexcept;

Synopsis

Declared in <mrdocs/Metadata/Type/RValueReferenceType.hpp>

struct RValueReferenceType final
    : TypeCommonBase<TypeKind::RValueReference>

Base Classes

Member Functions

Name

Description

operator<=>

Three‐way comparison operators

Static Member Functions

Data Members

Static Data Members

Name

kind_id

Non-Member Functions

Name

Description

innerType

Return the inner type.

innerType

Return the inner type.

innerTypePtr

Return the inner type.

innerTypePtr

Return the inner type.

Three‐way comparison operators

Synopses

Declared in <mrdocs/Metadata/Type/RValueReferenceType.hpp>

Three‐way comparison operator

std::strong_ordering
operator<=>(RValueReferenceType const& rhs) const;

Three‐way comparison operator

constexpr
auto
operator<=>(TypeCommonBase<mrdocs::TypeKind::RValueReference> const& rhs) const = default;

Three‐way comparison operator

Synopsis

Declared in <mrdocs/Metadata/Type/RValueReferenceType.hpp>

std::strong_ordering
operator<=>(RValueReferenceType const& rhs) const;

Return Value

The relative order of the objects

Parameters

Name

Description

rhs

The right operand

Three‐way comparison operator

Synopsis

Declared in <mrdocs/Metadata/Type/TypeBase.hpp>

constexpr
auto
operator<=>(TypeCommonBase<mrdocs::TypeKind::RValueReference> const& rhs) const = default;

Return Value

The relative order of the objects

Parameters

Name

Description

rhs

The right operand

Synopsis

Declared in <mrdocs/Metadata/Type/TypeBase.hpp>

constexpr
static
bool
isArray() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Type/TypeBase.hpp>

constexpr
static
bool
isAuto() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Type/TypeBase.hpp>

constexpr
static
bool
isDecltype() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Type/TypeBase.hpp>

constexpr
static
bool
isFunction() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Type/TypeBase.hpp>

constexpr
static
bool
isLValueReference() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Type/TypeBase.hpp>

constexpr
static
bool
isMemberPointer() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Type/TypeBase.hpp>

constexpr
static
bool
isNamed() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Type/TypeBase.hpp>

constexpr
static
bool
isPointer() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Type/TypeBase.hpp>

constexpr
static
bool
isRValueReference() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Type/RValueReferenceType.hpp>

Polymorphic<Type> PointeeType = Polymorphic<Type>(AutoType{});

Synopsis

Declared in <mrdocs/Metadata/Type/TypeBase.hpp>

constexpr static
TypeKind kind_id;

Range to help range‐for loops identify first and last.

Synopsis

Declared in <mrdocs/Support/RangeFor.hpp>

template<class Container>
class RangeFor;

Types

Member Functions

Name

Description

RangeFor [constructor]

Construct from Container

begin

end

Synopsis

Declared in <mrdocs/Support/RangeFor.hpp>

using const_pointer = value_type const*;

Synopsis

Declared in <mrdocs/Support/RangeFor.hpp>

using const_reference = value_type const&;

Synopsis

Declared in <mrdocs/Support/RangeFor.hpp>

using difference_type = std::ptrdiff_t;

Synopsis

Declared in <mrdocs/Support/RangeFor.hpp>

using pointer = value_type*;

Synopsis

Declared in <mrdocs/Support/RangeFor.hpp>

using reference = value_type&;

Synopsis

Declared in <mrdocs/Support/RangeFor.hpp>

using size_type = std::size_t;

Synopsis

Declared in <mrdocs/Support/RangeFor.hpp>

class iterator;

Types

Member Functions

Name

Description

iterator [constructor]

Constructors

operator=

Copy assignment operator

operator*

operator++

Increment operators

operator‐>

operator==

Equality operator

operator!=

Inequality operator

Friends

Name

Description

mrdocs::RangeFor::value_type

mrdocs::RangeFor

Range to help range‐for loops identify first and last.

Synopsis

Declared in <mrdocs/Support/RangeFor.hpp>

using iterator_category = std::iterator_traits<Container::iterator>::iterator_category;

Synopsis

Declared in <mrdocs/Support/RangeFor.hpp>

using pointer = void;

Synopsis

Declared in <mrdocs/Support/RangeFor.hpp>

using reference = value_type;

Synopsis

Declared in <mrdocs/Support/RangeFor.hpp>

using size_type = std::size_t;

Synopsis

Declared in <mrdocs/Support/RangeFor.hpp>

using value_type = RangeFor<Container>::value_type;

Constructors

Synopses

Declared in <mrdocs/Support/RangeFor.hpp>

Default constructor

iterator() = default;

Copy constructor

iterator(iterator const& other) = default;

Default constructor

Synopsis

Declared in <mrdocs/Support/RangeFor.hpp>

iterator() = default;

Copy constructor

Synopsis

Declared in <mrdocs/Support/RangeFor.hpp>

iterator(iterator const& other) = default;

Parameters

Name

Description

other

The object to copy construct from

Copy assignment operator

Synopsis

Declared in <mrdocs/Support/RangeFor.hpp>

iterator&
operator=(iterator const& other) = default;

Return Value

Reference to the current object

Parameters

Name

Description

other

The object to copy assign from

Synopsis

Declared in <mrdocs/Support/RangeFor.hpp>

reference
operator*() const noexcept;

Increment operators

Synopses

Declared in <mrdocs/Support/RangeFor.hpp>

Increment operator

iterator&
operator++() noexcept;

Increment operator

iterator
operator++(int) noexcept;

Increment operator

Synopsis

Declared in <mrdocs/Support/RangeFor.hpp>

iterator&
operator++() noexcept;

Return Value

Reference to the current object

Increment operator

Synopsis

Declared in <mrdocs/Support/RangeFor.hpp>

iterator
operator++(int) noexcept;

Return Value

Another instance of the object

Synopsis

Declared in <mrdocs/Support/RangeFor.hpp>

reference
operator‐>() const noexcept;

Equality operator

Synopsis

Declared in <mrdocs/Support/RangeFor.hpp>

bool
operator==(iterator const& it) const noexcept;

Return Value

true if the objects are equal, false otherwise

Parameters

Name

Description

it

The right operand

Inequality operator

Synopsis

Declared in <mrdocs/Support/RangeFor.hpp>

bool
operator!=(iterator const& it) const noexcept;

Return Value

true if the objects are not equal, false otherwise

Parameters

Name

Description

it

The right operand

Synopsis

Declared in <mrdocs/Support/RangeFor.hpp>

struct value_type;

Member Functions

Name

Description

operator‐>

Member access operator

Data Members

Name

first

last

value

Member access operator

Synopsis

Declared in <mrdocs/Support/RangeFor.hpp>

value_type const*
operator‐>() const noexcept;

Return Value

Pointer to the current object

Synopsis

Declared in <mrdocs/Support/RangeFor.hpp>

bool const first;

Synopsis

Declared in <mrdocs/Support/RangeFor.hpp>

bool const last;

Synopsis

Declared in <mrdocs/Support/RangeFor.hpp>

Container::value_type const& value;

Construct from Container

Synopsis

Declared in <mrdocs/Support/RangeFor.hpp>

explicit
RangeFor(Container const& C) noexcept;

Parameters

Name

Description

C

The object to copy construct from

Synopsis

Declared in <mrdocs/Support/RangeFor.hpp>

iterator
begin() const noexcept;

Synopsis

Declared in <mrdocs/Support/RangeFor.hpp>

iterator
end() const noexcept;

The aggregated interface for a given struct, class, or union.

Synopsis

Declared in <mrdocs/Metadata/Symbol/RecordInterface.hpp>

class RecordInterface;

Data Members

Name

Description

Private

The aggregated private interfaces.

Protected

The aggregated protected interfaces.

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>

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>

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>

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>

struct RecordSymbol final
    : SymbolCommonBase<SymbolKind::Record>

Base Classes

Name

Description

SymbolCommonBase<SymbolKind::Record>

Base class for providing variant discriminator functions.

Member Functions

Name

Description

RecordSymbol [constructor]

Construct from SymbolID

operator<=>

Three‐way comparison operators

Static Member Functions

Data Members

Name

Description

Bases

List of immediate bases.

Derived

List of derived classes

Friends

List of friends.

Interface

Lists of members.

IsFinal

IsFinalDestructor

IsTypeDef

KeyKind

Kind of record this is (class, struct, or union).

Template

When present, this record is a template or specialization.

Static Data Members

Name

kind_id

Non-Member Functions

Name

Description

merge

Merges two Symbol objects.

Construct from SymbolID

Synopsis

Declared in <mrdocs/Metadata/Symbol/Record.hpp>

explicit
RecordSymbol(SymbolID const& ID) noexcept;

Parameters

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

std::strong_ordering
operator<=>(RecordSymbol const& other) const;

Three‐way comparison operator

auto
operator<=>(SymbolCommonBase<mrdocs::SymbolKind::Record> const& rhs) const = default;

Three‐way comparison operator

Synopsis

Declared in <mrdocs/Metadata/Symbol/Record.hpp>

std::strong_ordering
operator<=>(RecordSymbol const& other) const;

Return Value

The relative order of the objects

Parameters

Name

Description

other

The right operand

Three‐way comparison operator

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolBase.hpp>

auto
operator<=>(SymbolCommonBase<mrdocs::SymbolKind::Record> const& rhs) const = default;

Return Value

The relative order of the objects

Parameters

Name

Description

rhs

The right operand

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolNodes.inc>

constexpr
static
bool
isConcept() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolNodes.inc>

constexpr
static
bool
isEnum() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolNodes.inc>

constexpr
static
bool
isEnumConstant() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolNodes.inc>

constexpr
static
bool
isFunction() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolNodes.inc>

constexpr
static
bool
isGuide() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolNodes.inc>

constexpr
static
bool
isNamespace() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolNodes.inc>

constexpr
static
bool
isNamespaceAlias() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolNodes.inc>

constexpr
static
bool
isOverloads() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolNodes.inc>

constexpr
static
bool
isRecord() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolNodes.inc>

constexpr
static
bool
isTypedef() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolNodes.inc>

constexpr
static
bool
isUsing() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolNodes.inc>

constexpr
static
bool
isVariable() noexcept;

List of immediate bases.

Synopsis

Declared in <mrdocs/Metadata/Symbol/Record.hpp>

std::vector<BaseInfo> Bases;

List of derived classes

Synopsis

Declared in <mrdocs/Metadata/Symbol/Record.hpp>

std::vector<SymbolID> Derived;

List of friends.

Synopsis

Declared in <mrdocs/Metadata/Symbol/Record.hpp>

std::vector<FriendInfo> Friends;

Lists of members.

Synopsis

Declared in <mrdocs/Metadata/Symbol/Record.hpp>

RecordInterface Interface;

Synopsis

Declared in <mrdocs/Metadata/Symbol/Record.hpp>

bool IsFinal = false;

Synopsis

Declared in <mrdocs/Metadata/Symbol/Record.hpp>

bool IsFinalDestructor = false;

Synopsis

Declared in <mrdocs/Metadata/Symbol/Record.hpp>

bool IsTypeDef = false;

Kind of record this is (class, struct, or union).

Synopsis

Declared in <mrdocs/Metadata/Symbol/Record.hpp>

RecordKeyKind KeyKind = RecordKeyKind::Struct;

When present, this record is a template or specialization.

Synopsis

Declared in <mrdocs/Metadata/Symbol/Record.hpp>

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolBase.hpp>

constexpr static
SymbolKind kind_id;

A group of members that have the same access specifier.

Synopsis

Declared in <mrdocs/Metadata/Symbol/RecordTranche.hpp>

struct RecordTranche;

Data Members

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>

std::vector<SymbolID> Concepts;

Synopsis

Declared in <mrdocs/Metadata/Symbol/RecordTranche.hpp>

std::vector<SymbolID> Enums;

Synopsis

Declared in <mrdocs/Metadata/Symbol/RecordTranche.hpp>

std::vector<SymbolID> Functions;

Synopsis

Declared in <mrdocs/Metadata/Symbol/RecordTranche.hpp>

std::vector<SymbolID> Guides;

Synopsis

Declared in <mrdocs/Metadata/Symbol/RecordTranche.hpp>

std::vector<SymbolID> NamespaceAliases;

Synopsis

Declared in <mrdocs/Metadata/Symbol/RecordTranche.hpp>

std::vector<SymbolID> Records;

Synopsis

Declared in <mrdocs/Metadata/Symbol/RecordTranche.hpp>

std::vector<SymbolID> StaticFunctions;

Synopsis

Declared in <mrdocs/Metadata/Symbol/RecordTranche.hpp>

std::vector<SymbolID> StaticVariables;

Synopsis

Declared in <mrdocs/Metadata/Symbol/RecordTranche.hpp>

std::vector<SymbolID> Typedefs;

Synopsis

Declared in <mrdocs/Metadata/Symbol/RecordTranche.hpp>

std::vector<SymbolID> Usings;

Synopsis

Declared in <mrdocs/Metadata/Symbol/RecordTranche.hpp>

std::vector<SymbolID> Variables;

Reference directories used to resolve paths

Synopsis

Declared in <mrdocs/Config/ReferenceDirectories.hpp>

struct ReferenceDirectories;

Data Members

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>

std::string cwd;

Synopsis

Declared in <mrdocs/Config/ReferenceDirectories.hpp>

std::string mrdocsRoot;

Synopsis

Declared in <mrdocs/Support/ScopeExit.hpp>

template<class F>
class ScopeExit;

Member Functions

Name

Description

ScopeExit [constructor]

Construct from F

~ScopeExit [destructor]

Destructor

dismiss

Construct from F

Synopsis

Declared in <mrdocs/Support/ScopeExit.hpp>

explicit
ScopeExit(F onExitScope);

Parameters

Name

Description

onExitScope

The object to construct from

Destructor

Synopsis

Declared in <mrdocs/Support/ScopeExit.hpp>

~ScopeExit();

Synopsis

Declared in <mrdocs/Support/ScopeExit.hpp>

void
dismiss();

Synopsis

Declared in <mrdocs/Support/ScopeExit.hpp>

template<class T>
class ScopeExitRestore;

Member Functions

Name

Description

ScopeExitRestore [constructor]

Constructors

~ScopeExitRestore [destructor]

Destructor

dismiss

Constructors

Synopses

Declared in <mrdocs/Support/ScopeExit.hpp>

Restore ref to its previous value when the scope ends

explicit
ScopeExitRestore(T& ref);

Temporarily set ref to next and restore it when the scope ends

template<std::convertible_to<T> T2>
explicit
ScopeExitRestore(
    T& ref,
    T2 next);

Restore ref to its previous value when the scope ends

Synopsis

Declared in <mrdocs/Support/ScopeExit.hpp>

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

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>

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

Name

Description

ref

The object to copy construct from

Destructor

Synopsis

Declared in <mrdocs/Support/ScopeExit.hpp>

~ScopeExitRestore();

Synopsis

Declared in <mrdocs/Support/ScopeExit.hpp>

void
dismiss();

Stores source information for a declaration.

Synopsis

Declared in <mrdocs/Metadata/Symbol/Source.hpp>

struct SourceInfo;

Member Functions

Name

Description

SourceInfo [constructor]

Default constructor

~SourceInfo [destructor] [virtual]

Destructor

operator<=>

Three‐way comparison operator

Data Members

Name

Description

DefLoc

Location where the entity was defined

Loc

Locations where the entity was declared.

Default constructor

Synopsis

Declared in <mrdocs/Metadata/Symbol/Source.hpp>

constexpr
SourceInfo() = default;

Destructor

Synopsis

Declared in <mrdocs/Metadata/Symbol/Source.hpp>

constexpr
virtual
~SourceInfo() = default;

Three‐way comparison operator

Synopsis

Declared in <mrdocs/Metadata/Symbol/Source.hpp>

constexpr
auto
operator<=>(SourceInfo const& rhs) const = default;

Return Value

The relative order of the objects

Parameters

Name

Description

rhs

The right operand

Location where the entity was defined

Synopsis

Declared in <mrdocs/Metadata/Symbol/Source.hpp>

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>

std::vector<Location> Loc;

Description

This does not include the definition.

A source location with filename prettification.

Synopsis

Declared in <mrdocs/Support/Error.hpp>

class SourceLocation;

Member Functions

Name

Description

SourceLocation [constructor]

Construct from source_location

column

file_name

function_name

line

Construct from source_location

Synopsis

Declared in <mrdocs/Support/Error.hpp>

SourceLocation(std::source_location const& loc) noexcept;

Parameters

Name

Description

loc

The object to copy construct from

Synopsis

Declared in <mrdocs/Support/Error.hpp>

uint_least32_t
column() const noexcept;

Synopsis

Declared in <mrdocs/Support/Error.hpp>

std::string_view
file_name() const noexcept;

Synopsis

Declared in <mrdocs/Support/Error.hpp>

std::string_view
function_name() const noexcept;

Synopsis

Declared in <mrdocs/Support/Error.hpp>

uint_least32_t
line() const noexcept;

Represents a (possibly qualified) symbol name with template arguments.

Synopsis

Declared in <mrdocs/Metadata/Name/SpecializationName.hpp>

struct SpecializationName final
    : Name

Base Classes

Name

Description

Name

Represents a name for a named Type

Member Functions

Name

Description

SpecializationName [constructor]

Default constructor

asName

operator==

Equality operator

operator<=>

Three‐way comparison operators

Data Members

Name

Description

Identifier

The unqualified name.

Kind

The kind of name this is.

Prefix

The parent name info, if any.

TemplateArgs

The template arguments.

id

The SymbolID of the named symbol, if it exists.

specializationID

The SymbolID of the named symbol, if it exists.

Default constructor

Synopsis

Declared in <mrdocs/Metadata/Name/SpecializationName.hpp>

constexpr
SpecializationName() noexcept;

Three‐way comparison operators

Synopses

Declared in <mrdocs/Metadata/Name/NameBase.hpp>

Three‐way comparison operator

auto
operator<=>(SpecializationName const& other) const;

Three‐way comparison operator

std::strong_ordering
operator<=>(Name const& other) const;

Three‐way comparison operator

Synopsis

Declared in <mrdocs/Metadata/Name/SpecializationName.hpp>

auto
operator<=>(SpecializationName const& other) const;

Return Value

The relative order of the objects

Parameters

Name

Description

other

The right operand

Three‐way comparison operator

Synopsis

Declared in <mrdocs/Metadata/Name/NameBase.hpp>

std::strong_ordering
operator<=>(Name const& other) const;

Return Value

The relative order of the objects

Parameters

Name

Description

other

The right operand

The template arguments.

Synopsis

Declared in <mrdocs/Metadata/Name/SpecializationName.hpp>

std::vector<Polymorphic<TArg>> TemplateArgs;

The SymbolID of the named symbol, if it exists.

Synopsis

Declared in <mrdocs/Metadata/Name/SpecializationName.hpp>

SymbolID specializationID = = SymbolID::invalid;

Synopsis

Declared in <mrdocs/Support/SplitLines.hpp>

struct SplitLinesAdaptor;

Member Functions

Name

Description

operator()

Function call operators

Friends

Name

Description

mrdocs::operator|

Function call operators

Synopses

Declared in <mrdocs/Support/SplitLines.hpp>

constexpr
auto
operator()(std::string_view sv) const;
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>

constexpr
auto
operator()(std::string_view sv) const;

Synopsis

Declared in <mrdocs/Support/SplitLines.hpp>

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>

struct SplitLinesView
    : std::ranges::view_interface<SplitLinesView>

Base Classes

Name

Description

std::ranges::view_interface<SplitLinesView>

Types

Name

Iterator

Member Functions

Name

Description

SplitLinesView [constructor]

Constructors

back

begin

data

empty

end

front

operator[]

Subscript operators

size

operator bool

Conversion operators

Data Members

Name

sv_

Synopsis

Declared in <mrdocs/Support/SplitLines.hpp>

struct Iterator;

Types

Member Functions

Name

Description

Iterator [constructor]

Constructors

findBreak

operator*

operator++

Increment operators

Data Members

Friends

Name

Description

mrdocs::operator==

Equality operator

Synopsis

Declared in <mrdocs/Support/SplitLines.hpp>

using difference_type = std::ptrdiff_t;

Synopsis

Declared in <mrdocs/Support/SplitLines.hpp>

using value_type = std::string_view;

Constructors

Synopses

Declared in <mrdocs/Support/SplitLines.hpp>

Default constructor

constexpr
Iterator() = default;
constexpr
explicit
Iterator(
    std::string_view s,
    bool begin);

Default constructor

Synopsis

Declared in <mrdocs/Support/SplitLines.hpp>

constexpr
Iterator() = default;

Synopsis

Declared in <mrdocs/Support/SplitLines.hpp>

constexpr
explicit
Iterator(
    std::string_view s,
    bool begin);

Synopsis

Declared in <mrdocs/Support/SplitLines.hpp>

constexpr
std::size_t
findBreak(std::size_t from) const noexcept;

Synopsis

Declared in <mrdocs/Support/SplitLines.hpp>

constexpr
value_type
operator*() const noexcept;

Increment operators

Synopses

Declared in <mrdocs/Support/SplitLines.hpp>

Increment operator

constexpr
Iterator&
operator++() noexcept;
constexpr
void
operator++(int);

Increment operator

Synopsis

Declared in <mrdocs/Support/SplitLines.hpp>

constexpr
Iterator&
operator++() noexcept;

Return Value

Reference to the current object

Synopsis

Declared in <mrdocs/Support/SplitLines.hpp>

constexpr
void
operator++(int);

Synopsis

Declared in <mrdocs/Support/SplitLines.hpp>

bool atEnd = false;

Synopsis

Declared in <mrdocs/Support/SplitLines.hpp>

std::size_t cur = 0;

Synopsis

Declared in <mrdocs/Support/SplitLines.hpp>

std::size_t nextBreak = 0;

Synopsis

Declared in <mrdocs/Support/SplitLines.hpp>

std::string_view sv = {};

Constructors

Synopses

Declared in <mrdocs/Support/SplitLines.hpp>

Default constructor

constexpr
SplitLinesView() = default;

Construct from string_view

constexpr
explicit
SplitLinesView(std::string_view sv);

Default constructor

Synopsis

Declared in <mrdocs/Support/SplitLines.hpp>

constexpr
SplitLinesView() = default;

Construct from string_view

Synopsis

Declared in <mrdocs/Support/SplitLines.hpp>

constexpr
explicit
SplitLinesView(std::string_view sv);

Parameters

Name

Description

sv

The object to construct from

Synopses

Declared in <__ranges/view_interface.h>

template<class _D2 = SplitLinesView>
[[__exclude_from_explicit_instantiation__, __abi_tag__]]
constexpr
decltype(auto)
back()
requires bidirectional_range<_D2> && common_range<_D2>;
template<class _D2 = SplitLinesView>
[[__exclude_from_explicit_instantiation__, __abi_tag__]]
constexpr
decltype(auto)
back() const
requires bidirectional_range<const _D2> && common_range<const _D2>;

Synopsis

Declared in <__ranges/view_interface.h>

template<class _D2 = 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>

template<class _D2 = 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>

constexpr
Iterator
begin() const noexcept;

Synopses

Declared in <__ranges/view_interface.h>

template<class _D2 = SplitLinesView>
[[__exclude_from_explicit_instantiation__, __abi_tag__]]
constexpr
auto
data()
requires contiguous_iterator<iterator_t<_D2>>;
template<class _D2 = SplitLinesView>
[[__exclude_from_explicit_instantiation__, __abi_tag__]]
constexpr
auto
data() const
requires range<const _D2> && contiguous_iterator<iterator_t<const _D2>>;

Synopsis

Declared in <__ranges/view_interface.h>

template<class _D2 = SplitLinesView>
[[__exclude_from_explicit_instantiation__, __abi_tag__]]
constexpr
auto
data()
requires contiguous_iterator<iterator_t<_D2>>;

Synopsis

Declared in <__ranges/view_interface.h>

template<class _D2 = 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>

template<class _D2 = SplitLinesView>
[[nodiscard, __exclude_from_explicit_instantiation__, __abi_tag__]]
constexpr
bool
empty()
requires sized_range<_D2> || forward_range<_D2>;
template<class _D2 = SplitLinesView>
[[nodiscard, __exclude_from_explicit_instantiation__, __abi_tag__]]
constexpr
bool
empty() const
requires sized_range<const _D2> || forward_range<const _D2>;

Synopsis

Declared in <__ranges/view_interface.h>

template<class _D2 = 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>

template<class _D2 = 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>

constexpr
std::default_sentinel_t
end() const noexcept;

Synopses

Declared in <__ranges/view_interface.h>

template<class _D2 = SplitLinesView>
[[__exclude_from_explicit_instantiation__, __abi_tag__]]
constexpr
decltype(auto)
front()
requires forward_range<_D2>;
template<class _D2 = SplitLinesView>
[[__exclude_from_explicit_instantiation__, __abi_tag__]]
constexpr
decltype(auto)
front() const
requires forward_range<const _D2>;

Synopsis

Declared in <__ranges/view_interface.h>

template<class _D2 = SplitLinesView>
[[__exclude_from_explicit_instantiation__, __abi_tag__]]
constexpr
decltype(auto)
front()
requires forward_range<_D2>;

Synopsis

Declared in <__ranges/view_interface.h>

template<class _D2 = 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>

template<random_access_range _RARange = SplitLinesView>
[[__exclude_from_explicit_instantiation__, __abi_tag__]]
constexpr
decltype(auto)
operator[](range_difference_t<_RARange> __index);
template<random_access_range _RARange = SplitLinesView const>
[[__exclude_from_explicit_instantiation__, __abi_tag__]]
constexpr
decltype(auto)
operator[](range_difference_t<_RARange> __index) const;

Synopsis

Declared in <__ranges/view_interface.h>

template<random_access_range _RARange = SplitLinesView>
[[__exclude_from_explicit_instantiation__, __abi_tag__]]
constexpr
decltype(auto)
operator[](range_difference_t<_RARange> __index);

Synopsis

Declared in <__ranges/view_interface.h>

template<random_access_range _RARange = 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>

template<class _D2 = SplitLinesView>
[[__exclude_from_explicit_instantiation__, __abi_tag__]]
constexpr
auto
size()
requires forward_range<_D2> && sized_sentinel_for<sentinel_t<_D2>, iterator_t<_D2>>;
template<class _D2 = 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>>;

Synopsis

Declared in <__ranges/view_interface.h>

template<class _D2 = 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>

template<class _D2 = 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

template<class _D2 = SplitLinesView>
[[__exclude_from_explicit_instantiation__, __abi_tag__]]
constexpr
explicit
operator bool()
requires requires(_D2& __t) { ranges::empty(__t); };

Conversion to bool

template<class _D2 = SplitLinesView>
[[__exclude_from_explicit_instantiation__, __abi_tag__]]
constexpr
explicit
operator bool() const
requires requires(const _D2& __t) { ranges::empty(__t); };

Conversion to bool

Synopsis

Declared in <__ranges/view_interface.h>

template<class _D2 = 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>

template<class _D2 = 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>

std::string_view sv_;

Synopsis

Declared in <mrdocs/ADT/UnorderedStringMap.hpp>

struct StringHash;

Types

Member Functions

Name

Description

operator()

Function call operators

Synopsis

Declared in <mrdocs/ADT/UnorderedStringMap.hpp>

using hash_type = std::hash<std::string_view>;

Synopsis

Declared in <mrdocs/ADT/UnorderedStringMap.hpp>

using is_transparent = void;

Function call operators

Synopses

Declared in <mrdocs/ADT/UnorderedStringMap.hpp>

std::size_t
operator()(std::string_view str) const;
std::size_t
operator()(std::string const& str) const;
std::size_t
operator()(char const* str) const;

Synopsis

Declared in <mrdocs/ADT/UnorderedStringMap.hpp>

std::size_t
operator()(std::string_view str) const;

Synopsis

Declared in <mrdocs/ADT/UnorderedStringMap.hpp>

std::size_t
operator()(std::string const& str) const;

Synopsis

Declared in <mrdocs/ADT/UnorderedStringMap.hpp>

std::size_t
operator()(char const* str) const;

Base class with common properties of all symbols

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolBase.hpp>

struct Symbol;

Member Functions

Name

Description

~Symbol [destructor] [virtual]

Destructor

asInfo

operator<=>

Three‐way comparison operator

Data Members

Name

Description

Access

Declaration access.

Extraction

Determine why a symbol is extracted.

Kind

Kind of declaration.

Loc

The source location information.

Name

The unqualified name.

Parent

The parent symbol, if any.

doc

The extracted documentation for this declaration.

id

The unique identifier for this symbol.

Protected Member Functions

Name

Description

Symbol [constructor]

Constructors

Non-Member Functions

Name

Description

merge

Merges two Symbol objects.

Derived Classes

Name

Description

SymbolCommonBase

Base class for providing variant discriminator functions.

Destructor

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolBase.hpp>

constexpr
virtual
~Symbol() = default;

Synopses

Declared in <mrdocs/Metadata/Symbol/SymbolBase.hpp>

constexpr
Symbol const&
asInfo() const noexcept;
constexpr
Symbol&
asInfo() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolBase.hpp>

constexpr
Symbol const&
asInfo() const noexcept;

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolBase.hpp>

constexpr
Symbol&
asInfo() noexcept;

Three‐way comparison operator

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolBase.hpp>

auto
operator<=>(Symbol const& rhs) const = default;

Return Value

The relative order of the objects

Parameters

Name

Description

rhs

The right operand

Declaration access.

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolBase.hpp>

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>

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>

SymbolKind Kind = SymbolKind::None;

The source location information.

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolBase.hpp>

SourceInfo Loc;

The unqualified name.

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolBase.hpp>

std::string Name;

The parent symbol, if any.

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolBase.hpp>

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>

The unique identifier for this symbol.

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolBase.hpp>

SymbolID id;

Constructors

Synopses

Declared in <mrdocs/Metadata/Symbol/SymbolBase.hpp>

Default constructor

constexpr
Symbol() = default;

Copy constructor

constexpr
Symbol(Symbol const& Other) = default;

Move constructor.

constexpr
Symbol(Symbol&& Other) = default;

Construct an Symbol.

explicit
Symbol(
    SymbolKind const kind,
    SymbolID const& ID) noexcept;

Parameters

Name

Description

kind

The kind of symbol

ID

The unique identifier for this symbol

Default constructor

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolBase.hpp>

constexpr
Symbol() = default;

Copy constructor

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolBase.hpp>

constexpr
Symbol(Symbol const& Other) = default;

Parameters

Name

Description

Other

The object to copy construct from

Move constructor.

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolBase.hpp>

constexpr
Symbol(Symbol&& Other) = default;

Parameters

Name

Description

Other

The object to move construct from

Construct an Symbol.

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolBase.hpp>

explicit
Symbol(
    SymbolKind const kind,
    SymbolID const& ID) noexcept;

Parameters

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>

template<SymbolKind K>
struct SymbolCommonBase
    : Symbol

Base Classes

Name

Description

Symbol

Base class with common properties of all symbols

Member Functions

Name

Description

asInfo

operator<=>

Three‐way comparison operators

Data Members

Name

Description

Access

Declaration access.

Extraction

Determine why a symbol is extracted.

Kind

Kind of declaration.

Loc

The source location information.

Name

The unqualified name.

Parent

The parent symbol, if any.

doc

The extracted documentation for this declaration.

id

The unique identifier for this symbol.

Static Data Members

Name

Description

kind_id

The variant discriminator constant of the most‐derived class.

Protected Member Functions

Name

Description

SymbolCommonBase [constructor]

Constructors

Non-Member Functions

Name

Description

merge

Merges two Symbol objects.

Derived Classes

Name

Description

ConceptSymbol

Info for concepts.

EnumConstantSymbol

Info for enum constants.

EnumSymbol

FunctionSymbol

GuideSymbol

Info for deduction guides.

NamespaceAliasSymbol

Info for namespace aliases.

NamespaceSymbol

Describes a namespace.

OverloadsSymbol

Represents a set of function overloads.

RecordSymbol

Metadata for struct, class, or union.

TypedefSymbol

UsingSymbol

Info for using declarations.

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

auto
operator<=>(SymbolCommonBase const& rhs) const = default;

Three‐way comparison operator

auto
operator<=>(Symbol const& rhs) const = default;

Three‐way comparison operator

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolBase.hpp>

auto
operator<=>(SymbolCommonBase const& rhs) const = default;

Return Value

The relative order of the objects

Parameters

Name

Description

rhs

The right operand

Three‐way comparison operator

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolBase.hpp>

auto
operator<=>(Symbol const& rhs) const = default;

Return Value

The relative order of the objects

Parameters

Name

Description

rhs

The right operand

The variant discriminator constant of the most‐derived class.

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolBase.hpp>

inline constexpr static
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

SymbolCommonBase() = default;

Construct from SymbolID

constexpr
explicit
SymbolCommonBase(SymbolID const& ID);

Default constructor

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolBase.hpp>

SymbolCommonBase() = default;

Construct from SymbolID

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolBase.hpp>

constexpr
explicit
SymbolCommonBase(SymbolID const& ID);

Parameters

Name

Description

ID

The object to copy construct from

A glob pattern matcher for C++ symbols

Synopsis

Declared in <mrdocs/Support/Glob.hpp>

class SymbolGlobPattern;

Member Functions

Name

Description

SymbolGlobPattern [constructor]

Construct an empty SymbolGlobPattern.

isLiteral

Checks if the glob pattern is a literal string.

match

Matches the given string against the glob pattern.

matchPatternPrefix

Matches the start of a given string against the glob pattern.

pattern

Returns the glob pattern.

Static Member Functions

Name

Description

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.

constexpr
SymbolGlobPattern() = default;

Construct an empty SymbolGlobPattern.

explicit
SymbolGlobPattern(GlobPattern glob);

Construct an empty SymbolGlobPattern.

Synopsis

Declared in <mrdocs/Support/Glob.hpp>

constexpr
SymbolGlobPattern() = default;

Description

An empty SymbolGlobPattern will never match any string.

Construct an empty SymbolGlobPattern.

Synopsis

Declared in <mrdocs/Support/Glob.hpp>

explicit
SymbolGlobPattern(GlobPattern glob);

Description

An empty SymbolGlobPattern will never match any string.

Parameters

Name

Description

glob

The object to construct from

Checks if the glob pattern is a literal string.

Synopsis

Declared in <mrdocs/Support/Glob.hpp>

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>

bool
match(std::string_view const str) const;

Return Value

true if the string matches the pattern, false otherwise.

Parameters

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>

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

Name

Description

prefix

The string to match against the pattern.

Returns the glob pattern.

Synopsis

Declared in <mrdocs/Support/Glob.hpp>

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.

static
Expected<SymbolGlobPattern>
create(std::string_view const pattern);

Constructs a SymbolGlobPattern with the given pattern.

static
Expected<SymbolGlobPattern>
create(
    std::string_view const pattern,
    Optional<std::size_t> maxSubGlobs);

Parameters

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>

static
Expected<SymbolGlobPattern>
create(std::string_view const pattern);

Return Value

A container holding an error or a value.

Parameters

Name

Description

pattern

The glob pattern to use for matching.

Constructs a SymbolGlobPattern with the given pattern.

Synopsis

Declared in <mrdocs/Support/Glob.hpp>

static
Expected<SymbolGlobPattern>
create(
    std::string_view const pattern,
    Optional<std::size_t> maxSubGlobs);

Return Value

A container holding an error or a value.

Parameters

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>

class SymbolID;

Types

Name

value_type

Member Functions

Name

Description

SymbolID [constructor]

Construct a SymbolID from a null‐terminated string.

begin

Return an iterator to the first byte of the SymbolID.

data

Return the raw data for this SymbolID.

end

Return an iterator to one past the last byte of the SymbolID.

size

Return the size of the SymbolID.

operator std::string_view

Return a string view of the SymbolID.

operator bool

Return true if this is a valid SymbolID.

operator==

Compare two SymbolIDs for equality.

operator<=>

Compare two SymbolIDs with strong ordering.

Static Member Functions

Name

Description

createFromString

Construct a SymbolID by hashing a string

Static Data Members

Name

Description

global

Symbol ID of the global namespace.

invalid

Non-Member Functions

Name

Description

getParents

Return a list of the parent symbols of the specified Symbol.

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>

using value_type = uint8_t;

Construct a SymbolID from a null‐terminated string.

Synopses

Declared in <mrdocs/Metadata/Symbol/SymbolID.hpp>

Default constructor

constexpr
SymbolID() = default;

Construct a SymbolID from a null‐terminated string.

template<std::convertible_to<value_type> Char>
constexpr
SymbolID(Char const* src);

Parameters

Name

Description

src

The string to construct from.

Default constructor

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolID.hpp>

constexpr
SymbolID() = default;

Construct a SymbolID from a null‐terminated string.

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolID.hpp>

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

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>

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>

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>

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>

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>

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>

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>

constexpr
bool
operator==(SymbolID const& other) const noexcept = default;

Return Value

true if the objects are equal, false otherwise

Parameters

Name

Description

other

The right operand

Compare two SymbolIDs with strong ordering.

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolID.hpp>

auto
operator<=>(SymbolID const& other) const noexcept;

Return Value

The relative order of the objects

Parameters

Name

Description

other

The right operand

Construct a SymbolID by hashing a string

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolID.hpp>

static
SymbolID
createFromString(std::string_view input);

Return Value

The SymbolID created by hashing the string.

Parameters

Name

Description

input

The string to hash.

Symbol ID of the global namespace.

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolID.hpp>

inline constexpr static
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>

inline constexpr static
SymbolID invalid = SymbolID();

Synopsis

Declared in <mrdocs/Metadata/TArg/TArgBase.hpp>

struct TArg;

Member Functions

Name

Description

~TArg [destructor] [virtual]

Destructor

asTArg

operator<=>

Three‐way comparison operator

Data Members

Name

Description

IsPackExpansion

Whether this template argument is a parameter expansion.

Kind

The kind of template argument this is.

Protected Member Functions

Name

Description

TArg [constructor]

Constructors

Derived Classes

Name

Description

TArgCommonBase

Destructor

Synopsis

Declared in <mrdocs/Metadata/TArg/TArgBase.hpp>

constexpr
virtual
~TArg() = default;

Synopses

Declared in <mrdocs/Metadata/TArg/TArgBase.hpp>

constexpr
TArg const&
asTArg() const noexcept;
constexpr
TArg&
asTArg() noexcept;

Synopsis

Declared in <mrdocs/Metadata/TArg/TArgBase.hpp>

constexpr
TArg const&
asTArg() const noexcept;

Synopsis

Declared in <mrdocs/Metadata/TArg/TArgBase.hpp>

constexpr
TArg&
asTArg() noexcept;

Three‐way comparison operator

Synopsis

Declared in <mrdocs/Metadata/TArg/TArgBase.hpp>

constexpr
auto
operator<=>(TArg const& rhs) const = default;

Return Value

The relative order of the objects

Parameters

Name

Description

rhs

The right operand

Whether this template argument is a parameter expansion.

Synopsis

Declared in <mrdocs/Metadata/TArg/TArgBase.hpp>

bool IsPackExpansion = false;

The kind of template argument this is.

Synopsis

Declared in <mrdocs/Metadata/TArg/TArgBase.hpp>

TArgKind Kind = TArgKind::Type;

Constructors

Synopses

Declared in <mrdocs/Metadata/TArg/TArgBase.hpp>

Default constructor

constexpr
TArg() noexcept = default;

Construct from TArgKind

constexpr
TArg(TArgKind kind) noexcept;

Default constructor

Synopsis

Declared in <mrdocs/Metadata/TArg/TArgBase.hpp>

constexpr
TArg() noexcept = default;

Construct from TArgKind

Synopsis

Declared in <mrdocs/Metadata/TArg/TArgBase.hpp>

constexpr
TArg(TArgKind kind) noexcept;

Parameters

Name

Description

kind

The object to construct from

Synopsis

Declared in <mrdocs/Metadata/TArg/TArgBase.hpp>

template<TArgKind K>
struct TArgCommonBase
    : TArg

Base Classes

Name

Description

TArg

Member Functions

Name

Description

asTArg

operator<=>

Three‐way comparison operator

Static Member Functions

Data Members

Name

Description

IsPackExpansion

Whether this template argument is a parameter expansion.

Kind

The kind of template argument this is.

Static Data Members

Name

kind_id

Protected Member Functions

Name

Description

TArgCommonBase [constructor]

Default constructor

Derived Classes

Synopsis

Declared in <mrdocs/Metadata/TArg/TArgBase.hpp>

constexpr
static
bool
isConstant() noexcept;

Synopsis

Declared in <mrdocs/Metadata/TArg/TArgBase.hpp>

constexpr
static
bool
isTemplate() noexcept;

Synopsis

Declared in <mrdocs/Metadata/TArg/TArgBase.hpp>

constexpr
static
bool
isType() noexcept;

Synopsis

Declared in <mrdocs/Metadata/TArg/TArgBase.hpp>

inline constexpr static
TArgKind kind_id = K;

Default constructor

Synopsis

Declared in <mrdocs/Metadata/TArg/TArgBase.hpp>

constexpr
TArgCommonBase() noexcept;

Synopsis

Declared in <mrdocs/Metadata/TParam/TParamBase.hpp>

struct TParam;

Member Functions

Name

Description

~TParam [destructor] [virtual]

Destructor

asTParam

operator<=>

Three‐way comparison operator

Data Members

Name

Description

Default

The default template argument, if any

IsParameterPack

Whether this template parameter is a parameter pack

Kind

The kind of template parameter this is

Name

The template parameters name, if any

Protected Member Functions

Name

Description

TParam [constructor]

Constructors

Derived Classes

Name

Description

TParamCommonBase

Destructor

Synopsis

Declared in <mrdocs/Metadata/TParam/TParamBase.hpp>

constexpr
virtual
~TParam() = default;

Synopses

Declared in <mrdocs/Metadata/TParam/TParamBase.hpp>

constexpr
TParam const&
asTParam() const noexcept;
constexpr
TParam&
asTParam() noexcept;

Synopsis

Declared in <mrdocs/Metadata/TParam/TParamBase.hpp>

constexpr
TParam const&
asTParam() const noexcept;

Synopsis

Declared in <mrdocs/Metadata/TParam/TParamBase.hpp>

constexpr
TParam&
asTParam() noexcept;

Three‐way comparison operator

Synopsis

Declared in <mrdocs/Metadata/TParam/TParamBase.hpp>

std::strong_ordering
operator<=>(TParam const& rhs) const;

Return Value

The relative order of the objects

Parameters

Name

Description

rhs

The right operand

The default template argument, if any

Synopsis

Declared in <mrdocs/Metadata/TParam/TParamBase.hpp>

Optional<Polymorphic<TArg>> Default = std::nullopt;

Whether this template parameter is a parameter pack

Synopsis

Declared in <mrdocs/Metadata/TParam/TParamBase.hpp>

bool IsParameterPack = false;

The kind of template parameter this is

Synopsis

Declared in <mrdocs/Metadata/TParam/TParamBase.hpp>

TParamKind Kind = TParamKind::Type;

The template parameters name, if any

Synopsis

Declared in <mrdocs/Metadata/TParam/TParamBase.hpp>

std::string Name;

Constructors

Synopses

Declared in <mrdocs/Metadata/TParam/TParamBase.hpp>

Default constructor

constexpr
TParam() noexcept = default;

Construct from TParamKind

constexpr
TParam(TParamKind kind) noexcept;

Default constructor

Synopsis

Declared in <mrdocs/Metadata/TParam/TParamBase.hpp>

constexpr
TParam() noexcept = default;

Construct from TParamKind

Synopsis

Declared in <mrdocs/Metadata/TParam/TParamBase.hpp>

constexpr
TParam(TParamKind kind) noexcept;

Parameters

Name

Description

kind

The object to construct from

Synopsis

Declared in <mrdocs/Metadata/TParam/TParamBase.hpp>

template<TParamKind K>
struct TParamCommonBase
    : TParam

Base Classes

Name

Description

TParam

Member Functions

Name

Description

asTParam

operator<=>

Three‐way comparison operators

Static Member Functions

Data Members

Name

Description

Default

The default template argument, if any

IsParameterPack

Whether this template parameter is a parameter pack

Kind

The kind of template parameter this is

Name

The template parameters name, if any

Static Data Members

Name

kind_id

Protected Member Functions

Name

Description

TParamCommonBase [constructor]

Default constructor

Derived Classes

Name

Description

ConstantTParam

A constant template parameter

TemplateTParam

TypeTParam

Three‐way comparison operators

Synopses

Declared in <mrdocs/Metadata/TParam/TParamBase.hpp>

Three‐way comparison operator

auto
operator<=>(TParamCommonBase const& rhs) const = default;

Three‐way comparison operator

std::strong_ordering
operator<=>(TParam const& rhs) const;

Three‐way comparison operator

Synopsis

Declared in <mrdocs/Metadata/TParam/TParamBase.hpp>

auto
operator<=>(TParamCommonBase const& rhs) const = default;

Return Value

The relative order of the objects

Parameters

Name

Description

rhs

The right operand

Three‐way comparison operator

Synopsis

Declared in <mrdocs/Metadata/TParam/TParamBase.hpp>

std::strong_ordering
operator<=>(TParam const& rhs) const;

Return Value

The relative order of the objects

Parameters

Name

Description

rhs

The right operand

Synopsis

Declared in <mrdocs/Metadata/TParam/TParamBase.hpp>

constexpr
static
bool
isConstant() noexcept;

Synopsis

Declared in <mrdocs/Metadata/TParam/TParamBase.hpp>

constexpr
static
bool
isTemplate() noexcept;

Synopsis

Declared in <mrdocs/Metadata/TParam/TParamBase.hpp>

constexpr
static
bool
isType() noexcept;

Synopsis

Declared in <mrdocs/Metadata/TParam/TParamBase.hpp>

inline constexpr static
TParamKind kind_id = K;

Default constructor

Synopsis

Declared in <mrdocs/Metadata/TParam/TParamBase.hpp>

constexpr
TParamCommonBase() noexcept;

A subset of possible work in a thread pool.

Synopsis

Declared in <mrdocs/Support/ThreadPool.hpp>

class TaskGroup;

Member Functions

Name

Description

TaskGroup [constructor]

Constructor.

~TaskGroup [destructor]

Destructor.

async

Submit work to be executed.

wait

Block until all work has completed.

Constructor.

Synopsis

Declared in <mrdocs/Support/ThreadPool.hpp>

explicit
TaskGroup(ThreadPool& threadPool);

Parameters

Name

Description

threadPool

The object to copy construct from

Destructor.

Synopsis

Declared in <mrdocs/Support/ThreadPool.hpp>

~TaskGroup();

Submit work to be executed.

Synopsis

Declared in <mrdocs/Support/ThreadPool.hpp>

template<class F>
void
async(F&& f);

Description

The signature of the submitted function object should be void(void).

Parameters

Name

Description

f

The function object to execute.

Block until all work has completed.

Synopsis

Declared in <mrdocs/Support/ThreadPool.hpp>

[[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>

struct TemplateInfo final

Member Functions

Name

Description

specializationKind

operator<=>

Three‐way comparison operator

Data Members

Name

Description

Args

Params

Primary

Primary template ID for partial and explicit specializations.

Requires

The requires‐clause for the template parameter list, if any.

Synopsis

Declared in <mrdocs/Metadata/Template.hpp>

TemplateSpecKind
specializationKind() const noexcept;

Three‐way comparison operator

Synopsis

Declared in <mrdocs/Metadata/Template.hpp>

std::strong_ordering
operator<=>(TemplateInfo const& other) const;

Return Value

The relative order of the objects

Parameters

Name

Description

other

The right operand

Synopsis

Declared in <mrdocs/Metadata/Template.hpp>

std::vector<Polymorphic<TArg>> Args;

Synopsis

Declared in <mrdocs/Metadata/Template.hpp>

std::vector<Polymorphic<TParam>> Params;

Primary template ID for partial and explicit specializations.

Synopsis

Declared in <mrdocs/Metadata/Template.hpp>

SymbolID Primary = = SymbolID::invalid;

The requires‐clause for the template parameter list, if any.

Synopsis

Declared in <mrdocs/Metadata/Template.hpp>

ExprInfo Requires;

Synopsis

Declared in <mrdocs/Metadata/TArg/TemplateTArg.hpp>

struct TemplateTArg final
    : TArgCommonBase<TArgKind::Template>

Base Classes

Member Functions

Name

Description

operator<=>

Three‐way comparison operator

Static Member Functions

Data Members

Name

Description

Name

Name of the referenced template.

Template

SymbolID of the referenced template.

Static Data Members

Name

kind_id

Three‐way comparison operator

Synopsis

Declared in <mrdocs/Metadata/TArg/TemplateTArg.hpp>

auto
operator<=>(TemplateTArg const& rhs) const = default;

Return Value

The relative order of the objects

Parameters

Name

Description

rhs

The right operand

Synopsis

Declared in <mrdocs/Metadata/TArg/TArgBase.hpp>

constexpr
static
bool
isConstant() noexcept;

Synopsis

Declared in <mrdocs/Metadata/TArg/TArgBase.hpp>

constexpr
static
bool
isTemplate() noexcept;

Synopsis

Declared in <mrdocs/Metadata/TArg/TArgBase.hpp>

constexpr
static
bool
isType() noexcept;

Name of the referenced template.

Synopsis

Declared in <mrdocs/Metadata/TArg/TemplateTArg.hpp>

std::string Name;

SymbolID of the referenced template.

Synopsis

Declared in <mrdocs/Metadata/TArg/TemplateTArg.hpp>

SymbolID Template;

Synopsis

Declared in <mrdocs/Metadata/TArg/TArgBase.hpp>

constexpr static
TArgKind kind_id;

Synopsis

Declared in <mrdocs/Metadata/TParam/TemplateTParam.hpp>

struct TemplateTParam final
    : TParamCommonBase<TParamKind::Template>

Base Classes

Member Functions

Name

Description

operator<=>

Three‐way comparison operators

Static Member Functions

Data Members

Name

Description

Params

Template parameters for the template‐template parameter

Static Data Members

Name

kind_id

Three‐way comparison operators

Synopses

Declared in <mrdocs/Metadata/TParam/TemplateTParam.hpp>

Three‐way comparison operator

std::strong_ordering
operator<=>(TemplateTParam const& other) const;

Three‐way comparison operator

Three‐way comparison operator

Synopsis

Declared in <mrdocs/Metadata/TParam/TemplateTParam.hpp>

std::strong_ordering
operator<=>(TemplateTParam const& other) const;

Return Value

The relative order of the objects

Parameters

Name

Description

other

The right operand

Three‐way comparison operator

Synopsis

Declared in <mrdocs/Metadata/TParam/TParamBase.hpp>

auto
operator<=>(TParamCommonBase<mrdocs::TParamKind::Template> const& rhs) const = default;

Return Value

The relative order of the objects

Parameters

Name

Description

rhs

The right operand

Synopsis

Declared in <mrdocs/Metadata/TParam/TParamBase.hpp>

constexpr
static
bool
isConstant() noexcept;

Synopsis

Declared in <mrdocs/Metadata/TParam/TParamBase.hpp>

constexpr
static
bool
isTemplate() noexcept;

Synopsis

Declared in <mrdocs/Metadata/TParam/TParamBase.hpp>

constexpr
static
bool
isType() noexcept;

Template parameters for the template‐template parameter

Synopsis

Declared in <mrdocs/Metadata/TParam/TemplateTParam.hpp>

std::vector<Polymorphic<TParam>> Params;

Synopsis

Declared in <mrdocs/Metadata/TParam/TParamBase.hpp>

constexpr static
TParamKind kind_id;

A pool of threads for executing work concurrently.

Synopsis

Declared in <mrdocs/Support/ThreadPool.hpp>

class ThreadPool;

Types

Member Functions

Name

Description

ThreadPool [constructor]

Constructor.

~ThreadPool [destructor]

Destructor.

async

Submit work to be executed.

forEach

Invoke a function object for each element of a range.

getThreadCount

Return the number of threads in the pool.

wait

Block until all work has completed.

Friends

Name

Description

mrdocs::TaskGroup

A subset of possible work in a thread pool.

Synopsis

Declared in <mrdocs/Support/ThreadPool.hpp>

template<class T>
using arg_t = arg_ty<T>::type;

Synopsis

Declared in <mrdocs/Support/ThreadPool.hpp>

template<class T>
struct arg_ty;

Types

Name

type

Synopsis

Declared in <mrdocs/Support/ThreadPool.hpp>

using type = T;

Synopsis

Declared in <mrdocs/Support/ThreadPool.hpp>

template<class T>
struct arg_ty<T&>;

Types

Name

type

Synopsis

Declared in <mrdocs/Support/ThreadPool.hpp>

using type = std::conditional_t<std::is_const_v<T>, T, T&>;

Constructor.

Synopses

Declared in <mrdocs/Support/ThreadPool.hpp>

Constructor.

explicit
ThreadPool();

Constructor.

explicit
ThreadPool(unsigned int concurrency);

Constructor.

Synopsis

Declared in <mrdocs/Support/ThreadPool.hpp>

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>

explicit
ThreadPool(unsigned int concurrency);

Parameters

Name

Description

concurrency

The value to construct from

Destructor.

Synopsis

Declared in <mrdocs/Support/ThreadPool.hpp>

~ThreadPool();

Submit work to be executed.

Synopsis

Declared in <mrdocs/Support/ThreadPool.hpp>

template<class F>
void
async(F&& f);

Description

The signature of the submitted function object should be void(void).

Parameters

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>

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

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>

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>

void
wait();

A possibly qualified type.

Synopsis

Declared in <mrdocs/Metadata/Type/TypeBase.hpp>

struct Type;

Member Functions

Name

Description

asType

namedSymbol

Return the symbol named by this type.

operator<=>

Three‐way comparison operator

Data Members

Name

Description

Constraints

The constraints associated with the type

IsConst

The const qualifier

IsPackExpansion

Whether this is the pattern of a pack expansion.

IsVolatile

The volatile qualifier

Kind

The kind of Type this is

Protected Member Functions

Name

Description

Type [constructor]

Construct from TypeKind

~Type [destructor] [virtual]

Destructor

Non-Member Functions

Name

Description

innerType

Return the inner type.

innerType

Return the inner type.

innerTypePtr

Return the inner type.

innerTypePtr

Return the inner type.

Derived Classes

Name

Description

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>

constexpr
Type const&
asType() const noexcept;
constexpr
Type&
asType() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Type/TypeBase.hpp>

constexpr
Type const&
asType() const noexcept;

Synopsis

Declared in <mrdocs/Metadata/Type/TypeBase.hpp>

constexpr
Type&
asType() noexcept;

Return the symbol named by this type.

Synopsis

Declared in <mrdocs/Metadata/Type/TypeBase.hpp>

SymbolID
namedSymbol() const noexcept;

Return Value

the symbol named by this type.

Three‐way comparison operator

Synopsis

Declared in <mrdocs/Metadata/Type/TypeBase.hpp>

constexpr
auto
operator<=>(Type const& rhs) const = default;

Return Value

The relative order of the objects

Parameters

Name

Description

rhs

The right operand

The constraints associated with the type

Synopsis

Declared in <mrdocs/Metadata/Type/TypeBase.hpp>

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>

bool IsConst = false;

Whether this is the pattern of a pack expansion.

Synopsis

Declared in <mrdocs/Metadata/Type/TypeBase.hpp>

bool IsPackExpansion = false;

The volatile qualifier

Synopsis

Declared in <mrdocs/Metadata/Type/TypeBase.hpp>

bool IsVolatile = false;

The kind of Type this is

Synopsis

Declared in <mrdocs/Metadata/Type/TypeBase.hpp>

TypeKind Kind;

Construct from TypeKind

Synopsis

Declared in <mrdocs/Metadata/Type/TypeBase.hpp>

constexpr
Type(TypeKind kind) noexcept;

Parameters

Name

Description

kind

The object to construct from

Destructor

Synopsis

Declared in <mrdocs/Metadata/Type/TypeBase.hpp>

constexpr
virtual
~Type() = default;

Synopsis

Declared in <mrdocs/Metadata/Type/TypeBase.hpp>

template<TypeKind K>
struct TypeCommonBase
    : Type

Base Classes

Name

Description

Type

A possibly qualified type.

Member Functions

Name

Description

asType

namedSymbol

Return the symbol named by this type.

operator<=>

Three‐way comparison operators

Static Member Functions

Data Members

Name

Description

Constraints

The constraints associated with the type

IsConst

The const qualifier

IsPackExpansion

Whether this is the pattern of a pack expansion.

IsVolatile

The volatile qualifier

Kind

The kind of Type this is

Static Data Members

Name

kind_id

Protected Member Functions

Name

Description

TypeCommonBase [constructor]

Default constructor

Non-Member Functions

Name

Description

innerType

Return the inner type.

innerType

Return the inner type.

innerTypePtr

Return the inner type.

innerTypePtr

Return the inner type.

Derived Classes

Synopses

Declared in <mrdocs/Metadata/Type/TypeBase.hpp>

Three‐way comparison operator

auto
operator<=>(TypeCommonBase const& rhs) const = default;

Three‐way comparison operator

constexpr
auto
operator<=>(Type const& rhs) const = default;

Three‐way comparison operator

Synopsis

Declared in <mrdocs/Metadata/Type/TypeBase.hpp>

auto
operator<=>(TypeCommonBase const& rhs) const = default;

Return Value

The relative order of the objects

Parameters

Name

Description

rhs

The right operand

Three‐way comparison operator

Synopsis

Declared in <mrdocs/Metadata/Type/TypeBase.hpp>

constexpr
auto
operator<=>(Type const& rhs) const = default;

Return Value

The relative order of the objects

Parameters

Name

Description

rhs

The right operand

Synopsis

Declared in <mrdocs/Metadata/Type/TypeBase.hpp>

constexpr
static
bool
isArray() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Type/TypeBase.hpp>

constexpr
static
bool
isAuto() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Type/TypeBase.hpp>

constexpr
static
bool
isDecltype() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Type/TypeBase.hpp>

constexpr
static
bool
isFunction() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Type/TypeBase.hpp>

constexpr
static
bool
isLValueReference() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Type/TypeBase.hpp>

constexpr
static
bool
isMemberPointer() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Type/TypeBase.hpp>

constexpr
static
bool
isNamed() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Type/TypeBase.hpp>

constexpr
static
bool
isPointer() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Type/TypeBase.hpp>

constexpr
static
bool
isRValueReference() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Type/TypeBase.hpp>

inline constexpr static
TypeKind kind_id = K;

Default constructor

Synopsis

Declared in <mrdocs/Metadata/Type/TypeBase.hpp>

constexpr
TypeCommonBase() noexcept;

Synopsis

Declared in <mrdocs/Metadata/TArg/TypeTArg.hpp>

struct TypeTArg final
    : TArgCommonBase<TArgKind::Type>

Base Classes

Member Functions

Name

Description

operator<=>

Three‐way comparison operator

Static Member Functions

Data Members

Name

Description

Type

Template argument type.

Static Data Members

Name

kind_id

Three‐way comparison operator

Synopsis

Declared in <mrdocs/Metadata/TArg/TypeTArg.hpp>

auto
operator<=>(TypeTArg const& rhs) const = default;

Return Value

The relative order of the objects

Parameters

Name

Description

rhs

The right operand

Synopsis

Declared in <mrdocs/Metadata/TArg/TArgBase.hpp>

constexpr
static
bool
isConstant() noexcept;

Synopsis

Declared in <mrdocs/Metadata/TArg/TArgBase.hpp>

constexpr
static
bool
isTemplate() noexcept;

Synopsis

Declared in <mrdocs/Metadata/TArg/TArgBase.hpp>

constexpr
static
bool
isType() noexcept;

Template argument type.

Synopsis

Declared in <mrdocs/Metadata/TArg/TypeTArg.hpp>

Polymorphic<Type> Type = Polymorphic<struct Type>(AutoType{});

Synopsis

Declared in <mrdocs/Metadata/TArg/TArgBase.hpp>

constexpr static
TArgKind kind_id;

Synopsis

Declared in <mrdocs/Metadata/TParam/TypeTParam.hpp>

struct TypeTParam final
    : TParamCommonBase<TParamKind::Type>

Base Classes

Member Functions

Name

Description

operator<=>

Three‐way comparison operators

Static Member Functions

Data Members

Name

Description

Constraint

The type‐constraint for the parameter, if any.

KeyKind

Keyword (class/typename) the parameter uses

Static Data Members

Name

kind_id

Three‐way comparison operators

Synopses

Declared in <mrdocs/Metadata/TParam/TypeTParam.hpp>

Three‐way comparison operator

std::strong_ordering
operator<=>(TypeTParam const& rhs) const;

Three‐way comparison operator

auto
operator<=>(TParamCommonBase<mrdocs::TParamKind::Type> const& rhs) const = default;

Three‐way comparison operator

Synopsis

Declared in <mrdocs/Metadata/TParam/TypeTParam.hpp>

std::strong_ordering
operator<=>(TypeTParam const& rhs) const;

Return Value

The relative order of the objects

Parameters

Name

Description

rhs

The right operand

Three‐way comparison operator

Synopsis

Declared in <mrdocs/Metadata/TParam/TParamBase.hpp>

auto
operator<=>(TParamCommonBase<mrdocs::TParamKind::Type> const& rhs) const = default;

Return Value

The relative order of the objects

Parameters

Name

Description

rhs

The right operand

Synopsis

Declared in <mrdocs/Metadata/TParam/TParamBase.hpp>

constexpr
static
bool
isConstant() noexcept;

Synopsis

Declared in <mrdocs/Metadata/TParam/TParamBase.hpp>

constexpr
static
bool
isTemplate() noexcept;

Synopsis

Declared in <mrdocs/Metadata/TParam/TParamBase.hpp>

constexpr
static
bool
isType() noexcept;

The type‐constraint for the parameter, if any.

Synopsis

Declared in <mrdocs/Metadata/TParam/TypeTParam.hpp>

Optional<Polymorphic<Name>> Constraint = std::nullopt;

Keyword (class/typename) the parameter uses

Synopsis

Declared in <mrdocs/Metadata/TParam/TypeTParam.hpp>

TParamKeyKind KeyKind = TParamKeyKind::Class;

Synopsis

Declared in <mrdocs/Metadata/TParam/TParamBase.hpp>

constexpr static
TParamKind kind_id;

Synopsis

Declared in <mrdocs/Metadata/Symbol/Typedef.hpp>

struct TypedefSymbol final
    : SymbolCommonBase<SymbolKind::Typedef>

Base Classes

Name

Description

SymbolCommonBase<SymbolKind::Typedef>

Base class for providing variant discriminator functions.

Member Functions

Name

Description

TypedefSymbol [constructor]

Construct from SymbolID

operator<=>

Three‐way comparison operators

Static Member Functions

Data Members

Name

Description

IsUsing

Indicates if this is a new C++ "using"‐style typedef

Template

Type

Static Data Members

Name

kind_id

Non-Member Functions

Name

Description

merge

Merges two Symbol objects.

Construct from SymbolID

Synopsis

Declared in <mrdocs/Metadata/Symbol/Typedef.hpp>

explicit
TypedefSymbol(SymbolID ID) noexcept;

Parameters

Name

Description

ID

The object to construct from

Three‐way comparison operators

Synopses

Declared in <mrdocs/Metadata/Symbol/Typedef.hpp>

Three‐way comparison operator

std::strong_ordering
operator<=>(TypedefSymbol const& other) const;

Three‐way comparison operator

Three‐way comparison operator

Synopsis

Declared in <mrdocs/Metadata/Symbol/Typedef.hpp>

std::strong_ordering
operator<=>(TypedefSymbol const& other) const;

Return Value

The relative order of the objects

Parameters

Name

Description

other

The right operand

Three‐way comparison operator

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolBase.hpp>

auto
operator<=>(SymbolCommonBase<mrdocs::SymbolKind::Typedef> const& rhs) const = default;

Return Value

The relative order of the objects

Parameters

Name

Description

rhs

The right operand

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolNodes.inc>

constexpr
static
bool
isConcept() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolNodes.inc>

constexpr
static
bool
isEnum() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolNodes.inc>

constexpr
static
bool
isEnumConstant() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolNodes.inc>

constexpr
static
bool
isFunction() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolNodes.inc>

constexpr
static
bool
isGuide() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolNodes.inc>

constexpr
static
bool
isNamespace() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolNodes.inc>

constexpr
static
bool
isNamespaceAlias() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolNodes.inc>

constexpr
static
bool
isOverloads() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolNodes.inc>

constexpr
static
bool
isRecord() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolNodes.inc>

constexpr
static
bool
isTypedef() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolNodes.inc>

constexpr
static
bool
isUsing() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolNodes.inc>

constexpr
static
bool
isVariable() noexcept;

Indicates if this is a new C++ "using"‐style typedef

Synopsis

Declared in <mrdocs/Metadata/Symbol/Typedef.hpp>

bool IsUsing = false;

Description

using MyVector = std::vector<int>

False means it's a C‐style typedef:

typedef std::vector<int> MyVector;

Synopsis

Declared in <mrdocs/Metadata/Symbol/Typedef.hpp>

Synopsis

Declared in <mrdocs/Metadata/Symbol/Typedef.hpp>

Polymorphic<Type> Type = Polymorphic<struct Type>(NamedType{});

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolBase.hpp>

constexpr static
SymbolKind kind_id;

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

template<class E>
class Unexpected;

Member Functions

Name

Description

Unexpected [constructor]

Constructors

operator=

Assignment operators

error

swap

Friends

Name

Description

mrdocs::swap

mrdocs::operator==

Equality operator

Constructors

Synopses

Declared in <mrdocs/Support/Expected.hpp>

Copy constructor

constexpr
Unexpected(Unexpected const& other) = default;

Move constructor

constexpr
Unexpected(Unexpected&& other) = default;

Construct from Er

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>);
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...>);
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...>);

Copy constructor

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

constexpr
Unexpected(Unexpected const& other) = default;

Parameters

Name

Description

other

The object to copy construct from

Move constructor

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

constexpr
Unexpected(Unexpected&& other) = default;

Parameters

Name

Description

other

The object to move construct from

Construct from Er

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

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

Name

Description

e

The object to move construct from

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

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>

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

constexpr
Unexpected&
operator=(Unexpected const& other) = default;

Move assignment operator

constexpr
Unexpected&
operator=(Unexpected&& other) = default;

Copy assignment operator

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

constexpr
Unexpected&
operator=(Unexpected const& other) = default;

Return Value

Reference to the current object

Parameters

Name

Description

other

The object to copy assign from

Move assignment operator

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

constexpr
Unexpected&
operator=(Unexpected&& other) = default;

Return Value

Reference to the current object

Parameters

Name

Description

other

The object to move assign from

Synopses

Declared in <mrdocs/Support/Expected.hpp>

[[nodiscard]]
constexpr
E const&
error() const & noexcept;
[[nodiscard]]
constexpr
E&
error() & noexcept;
[[nodiscard]]
constexpr
E const&&
error() const && noexcept;
[[nodiscard]]
constexpr
E&&
error() && noexcept;

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

[[nodiscard]]
constexpr
E const&
error() const & noexcept;

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

[[nodiscard]]
constexpr
E&
error() & noexcept;

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

[[nodiscard]]
constexpr
E const&&
error() const && noexcept;

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

[[nodiscard]]
constexpr
E&&
error() && noexcept;

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

constexpr
void
swap(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>

struct UsingSymbol final
    : SymbolCommonBase<SymbolKind::Using>

Base Classes

Name

Description

SymbolCommonBase<SymbolKind::Using>

Base class for providing variant discriminator functions.

Member Functions

Name

Description

UsingSymbol [constructor]

Construct from SymbolID

operator<=>

Three‐way comparison operator

Static Member Functions

Data Members

Name

Description

Class

The using declaration.

IntroducedName

The symbol being introduced.

ShadowDeclarations

The shadow declarations.

Static Data Members

Name

kind_id

Non-Member Functions

Name

Description

merge

Merges two Symbol objects.

Description

For instance, the following code:

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>

explicit
UsingSymbol(SymbolID ID) noexcept;

Parameters

Name

Description

ID

The object to construct from

Three‐way comparison operator

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolBase.hpp>

auto
operator<=>(SymbolCommonBase<mrdocs::SymbolKind::Using> const& rhs) const = default;

Return Value

The relative order of the objects

Parameters

Name

Description

rhs

The right operand

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolNodes.inc>

constexpr
static
bool
isConcept() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolNodes.inc>

constexpr
static
bool
isEnum() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolNodes.inc>

constexpr
static
bool
isEnumConstant() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolNodes.inc>

constexpr
static
bool
isFunction() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolNodes.inc>

constexpr
static
bool
isGuide() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolNodes.inc>

constexpr
static
bool
isNamespace() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolNodes.inc>

constexpr
static
bool
isNamespaceAlias() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolNodes.inc>

constexpr
static
bool
isOverloads() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolNodes.inc>

constexpr
static
bool
isRecord() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolNodes.inc>

constexpr
static
bool
isTypedef() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolNodes.inc>

constexpr
static
bool
isUsing() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolNodes.inc>

constexpr
static
bool
isVariable() noexcept;

The using declaration.

Synopsis

Declared in <mrdocs/Metadata/Symbol/Using.hpp>

UsingClass Class = UsingClass::Normal;

The symbol being introduced.

Synopsis

Declared in <mrdocs/Metadata/Symbol/Using.hpp>

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>

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>

constexpr static
SymbolKind kind_id;

A variable.

Synopsis

Declared in <mrdocs/Metadata/Symbol/Variable.hpp>

struct VariableSymbol final
    : SymbolCommonBase<SymbolKind::Variable>

Base Classes

Name

Description

SymbolCommonBase<SymbolKind::Variable>

Base class for providing variant discriminator functions.

Member Functions

Name

Description

VariableSymbol [constructor]

Construct from SymbolID

operator<=>

Three‐way comparison operators

Static Member Functions

Data Members

Name

Description

Attributes

BitfieldWidth

The width of the bitfield

HasNoUniqueAddress

Initializer

The default member initializer, if any.

IsBitfield

Whether the field is a bitfield

IsConstexpr

IsConstinit

IsDeprecated

IsInline

IsMaybeUnused

IsMutable

Whether the field is declared mutable

IsRecordField

IsThreadLocal

IsVariant

Whether the field is a variant member

StorageClass

Template

The template information, if any.

Type

The type of the variable

Static Data Members

Name

kind_id

Non-Member Functions

Name

Description

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>

explicit
VariableSymbol(SymbolID const& ID) noexcept;

Parameters

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

std::strong_ordering
operator<=>(VariableSymbol const& other) const;

Three‐way comparison operator

Three‐way comparison operator

Synopsis

Declared in <mrdocs/Metadata/Symbol/Variable.hpp>

std::strong_ordering
operator<=>(VariableSymbol const& other) const;

Return Value

The relative order of the objects

Parameters

Name

Description

other

The right operand

Three‐way comparison operator

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolBase.hpp>

auto
operator<=>(SymbolCommonBase<mrdocs::SymbolKind::Variable> const& rhs) const = default;

Return Value

The relative order of the objects

Parameters

Name

Description

rhs

The right operand

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolNodes.inc>

constexpr
static
bool
isConcept() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolNodes.inc>

constexpr
static
bool
isEnum() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolNodes.inc>

constexpr
static
bool
isEnumConstant() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolNodes.inc>

constexpr
static
bool
isFunction() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolNodes.inc>

constexpr
static
bool
isGuide() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolNodes.inc>

constexpr
static
bool
isNamespace() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolNodes.inc>

constexpr
static
bool
isNamespaceAlias() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolNodes.inc>

constexpr
static
bool
isOverloads() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolNodes.inc>

constexpr
static
bool
isRecord() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolNodes.inc>

constexpr
static
bool
isTypedef() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolNodes.inc>

constexpr
static
bool
isUsing() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolNodes.inc>

constexpr
static
bool
isVariable() noexcept;

Synopsis

Declared in <mrdocs/Metadata/Symbol/Variable.hpp>

std::vector<std::string> Attributes;

The width of the bitfield

Synopsis

Declared in <mrdocs/Metadata/Symbol/Variable.hpp>

Synopsis

Declared in <mrdocs/Metadata/Symbol/Variable.hpp>

bool HasNoUniqueAddress = false;

The default member initializer, if any.

Synopsis

Declared in <mrdocs/Metadata/Symbol/Variable.hpp>

ExprInfo Initializer;

Whether the field is a bitfield

Synopsis

Declared in <mrdocs/Metadata/Symbol/Variable.hpp>

bool IsBitfield = false;

Synopsis

Declared in <mrdocs/Metadata/Symbol/Variable.hpp>

bool IsConstexpr = false;

Synopsis

Declared in <mrdocs/Metadata/Symbol/Variable.hpp>

bool IsConstinit = false;

Synopsis

Declared in <mrdocs/Metadata/Symbol/Variable.hpp>

bool IsDeprecated = false;

Synopsis

Declared in <mrdocs/Metadata/Symbol/Variable.hpp>

bool IsInline = false;

Synopsis

Declared in <mrdocs/Metadata/Symbol/Variable.hpp>

bool IsMaybeUnused = false;

Whether the field is declared mutable

Synopsis

Declared in <mrdocs/Metadata/Symbol/Variable.hpp>

bool IsMutable = false;

Synopsis

Declared in <mrdocs/Metadata/Symbol/Variable.hpp>

bool IsRecordField = false;

Synopsis

Declared in <mrdocs/Metadata/Symbol/Variable.hpp>

bool IsThreadLocal = false;

Whether the field is a variant member

Synopsis

Declared in <mrdocs/Metadata/Symbol/Variable.hpp>

bool IsVariant = false;

Synopsis

Declared in <mrdocs/Metadata/Symbol/Variable.hpp>

StorageClassKind StorageClass = StorageClassKind::None;

The template information, if any.

Synopsis

Declared in <mrdocs/Metadata/Symbol/Variable.hpp>

The type of the variable

Synopsis

Declared in <mrdocs/Metadata/Symbol/Variable.hpp>

Polymorphic<Type> Type = Polymorphic<struct Type>(NamedType{});

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolBase.hpp>

constexpr static
SymbolKind kind_id;

A visitor for a type

Synopsis

Declared in <mrdocs/Support/Visitor.hpp>

template<
    typename Base,
    typename Fn,
    typename... Args>
class Visitor;

Member Functions

Name

Description

Visitor [constructor]

Constructor

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

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>

Visitor(
    Base&& obj,
    Fn&& fn,
    Args...&&... args);

Parameters

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>

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

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>

template<class F>
class YCombinator;

Member Functions

Name

Description

YCombinator [constructor]

Constructs a YCombinator from the given callable.

operator()

Function call operators

Non-Member Functions

Name

Description

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

Name

Description

F

The callable to wrap.

Constructs a YCombinator from the given callable.

Synopsis

Declared in <mrdocs/ADT/Overload.hpp>

constexpr
explicit
YCombinator(F f) noexcept(std::is_nothrow_move_constructible_v<F>);

Parameters

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.

template<class... Args>
constexpr
decltype(auto)
operator()(Args...&&... args) &;

Const lvalue overload of operator().

template<class... Args>
constexpr
decltype(auto)
operator()(Args...&&... args) const &;

Rvalue overload of operator().

template<class... Args>
constexpr
decltype(auto)
operator()(Args...&&... args) &&;

Const rvalue overload of operator().

template<class... Args>
constexpr
decltype(auto)
operator()(Args...&&... args) const &&;

Return Value

Whatever the callable returns.

Parameters

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>

template<class... Args>
constexpr
decltype(auto)
operator()(Args...&&... args) &;

Return Value

Whatever the callable returns.

Parameters

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>

template<class... Args>
constexpr
decltype(auto)
operator()(Args...&&... args) const &;

Parameters

Name

Description

args

The right operand

Rvalue overload of operator().

Synopsis

Declared in <mrdocs/ADT/Overload.hpp>

template<class... Args>
constexpr
decltype(auto)
operator()(Args...&&... args) &&;

Parameters

Name

Description

args

The right operand

Const rvalue overload of operator().

Synopsis

Declared in <mrdocs/ADT/Overload.hpp>

template<class... Args>
constexpr
decltype(auto)
operator()(Args...&&... args) const &&;

Parameters

Name

Description

args

The right operand

Synopsis

Declared in <mrdocs/Support/TypeTraits.hpp>

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

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

Name

Description

add_cv_from

Synopsis

Declared in <mrdocs/Support/TypeTraits.hpp>

template<
    typename From,
    typename To>
struct add_cv_from
    : add_const_from<From, add_volatile_from_t<From, To>>

Base Classes

Synopsis

Declared in <mrdocs/Support/TypeTraits.hpp>

template<
    typename From,
    typename To>
struct add_cvref_from
    : add_reference_from<From, add_cv_from_t<From, To>>

Base Classes

Synopsis

Declared in <mrdocs/Support/TypeTraits.hpp>

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

Name

Description

std::conditional<std::is_lvalue_reference_v<From>, std::add_lvalue_reference_t<To>, To>

Derived Classes

Name

Description

add_reference_from

Synopsis

Declared in <mrdocs/Support/TypeTraits.hpp>

template<
    typename From,
    typename To>
struct add_reference_from
    : add_lvalue_reference_from<From, add_rvalue_reference_from_t<From, To>>

Base Classes

Derived Classes

Name

Description

add_cvref_from

Synopsis

Declared in <mrdocs/Support/TypeTraits.hpp>

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

Name

Description

std::conditional<std::is_rvalue_reference_v<From>, std::add_rvalue_reference_t<To>, To>

Synopsis

Declared in <mrdocs/Support/TypeTraits.hpp>

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

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>

template<class>
class any_callable;

Description

Usage:

any_callable<void(void)> f;

Synopsis

Declared in <mrdocs/Support/any_callable.hpp>

template<
    class R,
    class... Args>
class any_callable<R(Args...)>;

Member Functions

Name

Description

any_callable [constructor] [deleted]

Constructors

operator()

Constructors

Synopses

Declared in <mrdocs/Support/any_callable.hpp>

Default constructor

any_callable() = delete;

Construct from Callable

template<class Callable>
requires std::is_invocable_r_v<R, Callable, Args...>
any_callable(Callable&& f);

Default constructor

Synopsis

Declared in <mrdocs/Support/any_callable.hpp>

any_callable() = delete;

Construct from Callable

Synopsis

Declared in <mrdocs/Support/any_callable.hpp>

template<class Callable>
requires std::is_invocable_r_v<R, Callable, Args...>
any_callable(Callable&& f);

Parameters

Name

Description

f

The object to move construct from

Synopsis

Declared in <mrdocs/Support/any_callable.hpp>

R
operator()(Args...&&... args) const;

Synopsis

Declared in <mrdocs/Support/TypeTraits.hpp>

template<
    typename T,
    typename U>
struct make_dependent;

Types

Name

type

Synopsis

Declared in <mrdocs/Support/TypeTraits.hpp>

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>

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>

template<>
struct nullable_traits<Location>;

Static Member Functions

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>

constexpr
static
bool
is_null(Location const& v) noexcept;

Synopsis

Declared in <mrdocs/Metadata/Symbol/Location.hpp>

constexpr
static
void
make_null(Location& v) noexcept;

Synopsis

Declared in <mrdocs/Metadata/Symbol/Location.hpp>

constexpr
static
Location
null() noexcept;

nullable_traits for types with a sentinel.

Synopsis

Declared in <mrdocs/ADT/Nullable.hpp>

template<class T>
requires (!HasSentinel<T> && ClearableContainerLike<T>)
struct nullable_traits<T>;

Static Member Functions

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>

constexpr
static
bool
is_null(T const& v) noexcept(noexcept(v.empty()));

Synopsis

Declared in <mrdocs/ADT/Nullable.hpp>

constexpr
static
void
make_null(T& v) noexcept(noexcept(v.clear()));

Synopsis

Declared in <mrdocs/ADT/Nullable.hpp>

constexpr
static
T
null() noexcept(std::is_nothrow_default_constructible_v<T>);

nullable_traits for Polymorphic<T>.

Synopsis

Declared in <mrdocs/ADT/Polymorphic.hpp>

template<class T>
struct nullable_traits<Polymorphic<T>>;

Static Member Functions

Description

Only this friend specialization can create/reset the null state.

Synopsis

Declared in <mrdocs/ADT/Polymorphic.hpp>

constexpr
static
bool
is_null(Polymorphic<T> const& v) noexcept;

Synopsis

Declared in <mrdocs/ADT/Polymorphic.hpp>

constexpr
static
void
make_null(Polymorphic<T>& v) noexcept;

Synopsis

Declared in <mrdocs/ADT/Polymorphic.hpp>

constexpr
static
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>

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>

template<>
struct sentinel_traits<std::nullptr_t>;

Static Member Functions

Synopsis

Declared in <mrdocs/ADT/Nullable.hpp>

constexpr
static
bool
is_sentinel(std::nullptr_t) noexcept;

Synopsis

Declared in <mrdocs/ADT/Nullable.hpp>

constexpr
static
std::nullptr_t
sentinel() noexcept;

sentinel_traits specialization for unsigned integral types.

Synopsis

Declared in <mrdocs/ADT/Nullable.hpp>

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 sentinel_traits<T>;

Static Member Functions

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>

constexpr
static
bool
is_sentinel(T v) noexcept;

Synopsis

Declared in <mrdocs/ADT/Nullable.hpp>

constexpr
static
T
sentinel() noexcept;

sentinel_traits specialization for raw pointers.

Synopsis

Declared in <mrdocs/ADT/Nullable.hpp>

template<class T>
struct sentinel_traits<T*>;

Static Member Functions

Description

Uses nullptr as the sentinel value.

Synopsis

Declared in <mrdocs/ADT/Nullable.hpp>

constexpr
static
bool
is_sentinel(T const* p) noexcept;

Synopsis

Declared in <mrdocs/ADT/Nullable.hpp>

constexpr
static
T*
sentinel() noexcept;

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

struct unexpect_t;

Member Functions

Name

Description

unexpect_t [constructor]

Default constructor

Default constructor

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

constexpr
explicit
unexpect_t() = default;

A scoped guard which unlocks a mutex.

Synopsis

Declared in <mrdocs/Support/unlock_guard.hpp>

class unlock_guard;

Member Functions

Name

Description

unlock_guard [constructor]

Constructor.

~unlock_guard [destructor]

Destructor.

Constructor.

Synopsis

Declared in <mrdocs/Support/unlock_guard.hpp>

explicit
unlock_guard(std::mutex& m);

Parameters

Name

Description

m

The object to copy construct from

Destructor.

Synopsis

Declared in <mrdocs/Support/unlock_guard.hpp>

~unlock_guard();

Access specifier.

Synopsis

Declared in <mrdocs/Metadata/Specifiers/AccessKind.hpp>

enum class AccessKind : int;

Members

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>

enum class AutoKind : int;

Members

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>

enum class ConstexprKind : int;

Members

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>

enum class ExplicitKind : int;

Members

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>

enum class ExtractionMode : int;

Members

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

Name

Description

leastSpecific

Compare ExtractionModes and returns the least specific

mostSpecific

Compare ExtractionModes and returns the most specific

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>

enum class FileKind : int;

Members

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>

enum class FunctionClass : int;

Members

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>

enum class FundamentalTypeKind : int;

Members

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

Name

Description

makeChar

Apply the "char" specifier to the type

makeLong

Apply the "long" specifier to the type

makeShort

Apply the "short" specifier to the type

makeSigned

Apply the "signed" specifier to the type

makeUnsigned

Apply the "unsigned" specifier to the type

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>

enum class ListKind : int;

Members

Name

Unordered

Ordered

Synopsis

Declared in <mrdocs/Metadata/Name/NameKind.hpp>

enum class NameKind : int;

Exception specification kinds

Synopsis

Declared in <mrdocs/Metadata/Specifiers/NoexceptKind.hpp>

enum class NoexceptKind : int;

Members

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>

enum class OperatorKind : int;

Members

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

Name

Description

getOperatorKind

Return the short name of an operator as a string.

getOperatorKindFromSuffix

Return the short name of an operator as a string.

getOperatorName

Return the name of an operator as a string.

getOperatorReadableName

Return the human‐readable name of the operator

getSafeOperatorName

Return the safe name of an operator as a string.

getShortOperatorName

Return the short name of an operator as a string.

isBinaryOperator

Determines whether the operator is potentially binary.

isUnaryOperator

Determines whether the operator is potentially unary.

Type qualifiers

Synopsis

Declared in <mrdocs/Metadata/Type/QualifierKind.hpp>

enum QualifierKind;

Members

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>

enum class RecordKeyKind : int;

Members

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>

enum class ReferenceKind : int;

Members

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>

enum class StorageClassKind : int;

Members

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>

enum class SymbolKind : int;

Members

Name

Description

None

Kind is not specified.

Non-Member Functions

Name

Description

toString

Return the name of the SymbolKind as a string.

The kind of template argument.

Synopsis

Declared in <mrdocs/Metadata/TArg/TArgKind.hpp>

enum class TArgKind : int;

The keyword a template parameter was declared with

Synopsis

Declared in <mrdocs/Metadata/TParam/TParamKeyKind.hpp>

enum class TParamKeyKind : int;

Members

Name

Description

Class

Class keyword

Typename

Typename keyword

Synopsis

Declared in <mrdocs/Metadata/TParam/TParamKind.hpp>

enum class TParamKind : int;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/TableAlignmentKind.hpp>

enum class TableAlignmentKind : int;

Members

Name

None

Left

Center

Right

The kind of template or specialization.

Synopsis

Declared in <mrdocs/Metadata/Template.hpp>

enum class TemplateSpecKind : int;

Members

Name

Description

Primary

Primary template

Explicit

Full template specialization

Partial

Partial template specialization

Synopsis

Declared in <mrdocs/Metadata/Type/TypeKind.hpp>

enum class TypeKind : int;

The class of using declaration.

Synopsis

Declared in <mrdocs/Metadata/Symbol/Using.hpp>

enum class UsingClass : int;

Members

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

template<class Base>
requires (!detail::IsPolymorphic<Base>) && detail::CanVisitCompare<Base>
auto
CompareDerived(
    Base const& lhs,
    Base const& rhs);

Compares two polymorphic objects that have visit functions

template<class Base>
requires detail::CanVisitCompare<Base>
auto
CompareDerived(
    Polymorphic<Base> const& lhs,
    Polymorphic<Base> const& rhs);

Return Value

true if the two Polymorphic objects are equal, otherwise false.

Template Parameters

Name

Description

Base

The type of the Polymorphic.

Parameters

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>

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

Name

Description

Base

The type of the Polymorphic.

Parameters

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>

template<class Base>
requires detail::CanVisitCompare<Base>
auto
CompareDerived(
    Polymorphic<Base> const& lhs,
    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

Name

Description

Base

The type of the Polymorphic.

Parameters

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.

std::string
HTMLEscape(std::string_view str);

HTML escapes the specified string

void
HTMLEscape(
    OutputRef& out,
    std::string_view str);

Return Value

The escaped string.

Parameters

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>

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

Name

Description

str

The string to escape.

HTML escapes the specified string

Synopsis

Declared in <mrdocs/Support/Handlebars.hpp>

void
HTMLEscape(
    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

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>

void
addMember(
    OverloadsSymbol& I,
    FunctionSymbol const& Member);

Synopses

Declared in <mrdocs/Metadata/Symbol/Enum.hpp>

auto&
allMembers(EnumSymbol const& T);
auto
allMembers(NamespaceSymbol const& T);
auto
allMembers(NamespaceTranche const& T);
auto&
allMembers(OverloadsSymbol const& T);
auto
allMembers(RecordInterface const& T);
auto
allMembers(RecordSymbol const& T);
auto
allMembers(RecordTranche const& T);

Synopsis

Declared in <mrdocs/Metadata/Symbol/Enum.hpp>

auto&
allMembers(EnumSymbol const& T);

Synopsis

Declared in <mrdocs/Metadata/Symbol/Namespace.hpp>

auto
allMembers(NamespaceSymbol const& T);

Synopsis

Declared in <mrdocs/Metadata/Symbol/Namespace.hpp>

auto
allMembers(NamespaceTranche const& T);

Synopsis

Declared in <mrdocs/Metadata/Symbol/Overloads.hpp>

auto&
allMembers(OverloadsSymbol const& T);

Synopsis

Declared in <mrdocs/Metadata/Symbol/RecordInterface.hpp>

auto
allMembers(RecordInterface const& T);

Synopsis

Declared in <mrdocs/Metadata/Symbol/Record.hpp>

auto
allMembers(RecordSymbol const& T);

Synopsis

Declared in <mrdocs/Metadata/Symbol/RecordTranche.hpp>

auto
allMembers(RecordTranche const& T);

Synopsis

Declared in <mrdocs/Support/Assert.hpp>

void
assert_failed(
    char const* msg,
    char const* file,
    uint_least32_t line);

Synopsis

Declared in <mrdocs/Metadata/DocComment.hpp>

template<
    DocCommentNodeTraversable T,
    class F>
void
bottomUpTraverse(
    T& node,
    F&& func);

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolBase.hpp>

bool
canMerge(
    Symbol const& I,
    Symbol const& Other);

Synopses

Declared in <mrdocs/ADT/Polymorphic.hpp>

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(Polymorphic<From>& p);
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(Polymorphic<From> const& p);

Synopsis

Declared in <mrdocs/ADT/Polymorphic.hpp>

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(Polymorphic<From>& p);

Synopsis

Declared in <mrdocs/ADT/Polymorphic.hpp>

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(Polymorphic<From> const& p);

Synopses

Declared in <mrdocs/ADT/Polymorphic.hpp>

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(Polymorphic<From>* pp);
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(Polymorphic<From> const* pp);

Synopsis

Declared in <mrdocs/ADT/Polymorphic.hpp>

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(Polymorphic<From>* pp);

Synopsis

Declared in <mrdocs/ADT/Polymorphic.hpp>

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(Polymorphic<From> const* pp);

Return the result of comparing s0 to s1.

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolID.hpp>

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

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.

template<
    class T,
    class U>
requires std::equality_comparable_with<T, U>
bool
contains(
    std::initializer_list<T> const& range,
    U const& el);

Determine if a range contains a specific element.

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

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>

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

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>

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

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.

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);

Determine if a range contains any of the specified elements.

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

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>

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

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>

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

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>

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

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.

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);

Determine if a range contains at least N instances of any of the specified elements.

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

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>

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

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>

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

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>

consteval
std::underlying_type_t<SymbolKind>
countSymbolKind();

Create child data objects.

Synopses

Declared in <mrdocs/Support/Handlebars.hpp>

Create child data objects.

dom::Object
createFrame(
    dom::Object const& child,
    dom::Object const& parent);

Return Value

The overlay object

Parameters

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>

dom::Object
createFrame(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

Name

Description

parent

The underlying frame object

See Also

https://mustache.github.io/mustache.5.html#Sections

Synopsis

Declared in <mrdocs/Support/Handlebars.hpp>

dom::Object
createFrame(dom::Value const& parent);

Synopsis

Declared in <mrdocs/Support/Handlebars.hpp>

dom::Object
createFrame(
    dom::Object const& child,
    dom::Object const& parent);

Synopses

Declared in <mrdocs/ADT/Polymorphic.hpp>

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(Polymorphic<From>& p) noexcept;
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(Polymorphic<From> const& p) noexcept;

Synopsis

Declared in <mrdocs/ADT/Polymorphic.hpp>

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(Polymorphic<From>& p) noexcept;

Synopsis

Declared in <mrdocs/ADT/Polymorphic.hpp>

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(Polymorphic<From> const& p) noexcept;

Synopses

Declared in <mrdocs/ADT/Polymorphic.hpp>

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(Polymorphic<From>* pp) noexcept;
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(Polymorphic<From> const* pp) noexcept;

Synopsis

Declared in <mrdocs/ADT/Polymorphic.hpp>

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(Polymorphic<From>* pp) noexcept;

Synopsis

Declared in <mrdocs/ADT/Polymorphic.hpp>

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(Polymorphic<From> const* pp) noexcept;

Determine if a string ends with one of the specified characters

Synopsis

Declared in <mrdocs/Support/String.hpp>

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

Name

Description

s

The string to check.

chars

The characters to check for.

Synopsis

Declared in <mrdocs/Support/Handlebars.hpp>

void
escapeExpression(
    OutputRef out,
    std::string_view str,
    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>

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

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.

Expected<void>
forEachFile(
    std::string_view dirPath,
    bool recursive,
    AnyFileVisitor& visitor);

Visit each file in a directory.

template<class Visitor>
Expected<void>
forEachFile(
    std::string_view dirPath,
    bool recursive,
    Visitor&& visitor);

Return Value

An error if any occurred.

Parameters

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>

Expected<void>
forEachFile(
    std::string_view dirPath,
    bool recursive,
    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

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>

template<class Visitor>
Expected<void>
forEachFile(
    std::string_view dirPath,
    bool recursive,
    Visitor&& visitor);

Return Value

An error if any occurred.

Parameters

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>

template<class... Args>
Error
formatError(
    FormatString<Args...> fs,
    Args...&&... args);

Return Value

a formatted error.

Parameters

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>

bool
fromString(
    std::string_view str,
    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

Name

Description

str

The string to convert

kind [out]

The resulting FundamentalTypeKind

Synopsis

Declared in <mrdocs/Metadata/Symbol/Record.hpp>

constexpr
std::string_view
getDefaultAccessString(RecordKeyKind const& kind) noexcept;

Return a reference to the global Generators instance.

Synopsis

Declared in <mrdocs/Generators.hpp>

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>

OperatorKind
getOperatorKind(std::string_view name) noexcept;

Return Value

The OperatorKind, or OperatorKind::None if not recognized.

Parameters

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>

OperatorKind
getOperatorKindFromSuffix(std::string_view suffix) noexcept;

Return Value

The OperatorKind, or OperatorKind::None if not recognized.

Parameters

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>

std::string_view
getOperatorName(
    OperatorKind kind,
    bool include_keyword = false) noexcept;

Return Value

the name of an operator as a string.

Parameters

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>

Optional<std::string_view>
getOperatorReadableName(
    OperatorKind kind,
    int nParams);

Return Value

The readable name, or nullopt if the operator is not recognized.

Parameters

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.

std::vector<SymbolID>
getParents(
    Corpus const& C,
    Symbol const& I);

Return a list of the parent symbols of the specified Info.

dom::Array
getParents(
    DomCorpus const& C,
    Symbol const& I);

Return a list of the parent symbols of the specified Symbol.

Synopsis

Declared in <mrdocs/Corpus.hpp>

std::vector<SymbolID>
getParents(
    Corpus const& C,
    Symbol const& I);

Return Value

a list of the parent symbols of the specified Symbol.

Parameters

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>

dom::Array
getParents(
    DomCorpus const& C,
    Symbol const& I);

Return Value

a list of the parent symbols of the specified Info.

Parameters

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>

Optional<Location>
getPrimaryLocation(
    SourceInfo const& I,
    bool preferDefinition);

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolBase.hpp>

Optional<Location>
getPrimaryLocation(Symbol const& I);

Synopsis

Declared in <mrdocs/Metadata/Symbol/Source.hpp>

Optional<Location>
getPrimaryLocation(
    SourceInfo const& I,
    bool preferDefinition);

Return the safe name of an operator as a string.

Synopsis

Declared in <mrdocs/Metadata/Specifiers/OperatorKind.hpp>

std::string_view
getSafeOperatorName(
    OperatorKind kind,
    bool include_keyword = false) noexcept;

Return Value

the safe name of an operator as a string.

Parameters

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>

std::string_view
getShortOperatorName(OperatorKind kind) noexcept;

Return Value

the short name of an operator as a string.

Parameters

Name

Description

kind

Operator kinds

Return the full path for single page output.

Synopsis

Declared in <mrdocs/Generator.hpp>

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

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.

Return the inner type.

Return the inner type.

Synopsis

Declared in <mrdocs/Metadata/Type.hpp>

Optional<Polymorphic<Type>&>
innerType(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

Name

Description

TI

A possibly qualified type.

Return the inner type.

Synopsis

Declared in <mrdocs/Metadata/Type.hpp>

Optional<Polymorphic<Type> const&>
innerType(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

Name

Description

TI

A possibly qualified type.

Return the inner type.

Synopses

Declared in <mrdocs/Metadata/Type.hpp>

Return the inner type.

Type*
innerTypePtr(Type& TI) noexcept;

Return the inner type.

Type const*
innerTypePtr(Type const& TI) noexcept;

Return the inner type.

Synopsis

Declared in <mrdocs/Metadata/Type.hpp>

Type*
innerTypePtr(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

Name

Description

TI

A possibly qualified type.

Return the inner type.

Synopsis

Declared in <mrdocs/Metadata/Type.hpp>

Type const*
innerTypePtr(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

Name

Description

TI

A possibly qualified type.

Return the innermost type.

Synopses

Declared in <mrdocs/Metadata/Type.hpp>

Return the innermost type.

Return the innermost type.

Polymorphic<Type> const&
innermostType(Polymorphic<Type> const& TI) noexcept;

Return the innermost type.

Synopsis

Declared in <mrdocs/Metadata/Type.hpp>

Polymorphic<Type>&
innermostType(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

Name

Description

TI

A polymorphic value‐type.

Return the innermost type.

Synopsis

Declared in <mrdocs/Metadata/Type.hpp>

Polymorphic<Type> const&
innermostType(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

Name

Description

TI

A polymorphic value‐type.

Synopses

Declared in <mrdocs/Support/String.hpp>

constexpr
bool
isAlphaNumeric(std::string_view const s) noexcept;
constexpr
bool
isAlphaNumeric(char const c) noexcept;

Synopsis

Declared in <mrdocs/Support/String.hpp>

constexpr
bool
isAlphaNumeric(std::string_view const s) noexcept;

Synopsis

Declared in <mrdocs/Support/String.hpp>

constexpr
bool
isAlphaNumeric(char const c) noexcept;

Synopses

Declared in <mrdocs/Support/String.hpp>

constexpr
bool
isAlphabetic(std::string_view const s) noexcept;
constexpr
bool
isAlphabetic(char const c) noexcept;

Synopsis

Declared in <mrdocs/Support/String.hpp>

constexpr
bool
isAlphabetic(std::string_view const s) noexcept;

Synopsis

Declared in <mrdocs/Support/String.hpp>

constexpr
bool
isAlphabetic(char const c) noexcept;

Determines whether the operator is potentially binary.

Synopsis

Declared in <mrdocs/Metadata/Specifiers/OperatorKind.hpp>

bool
isBinaryOperator(OperatorKind kind) noexcept;

Return Value

whether the operator is potentially binary.

Parameters

Name

Description

kind

Operator kinds

Synopses

Declared in <mrdocs/Support/String.hpp>

constexpr
bool
isDigit(std::string_view const s) noexcept;
constexpr
bool
isDigit(char const c) noexcept;

Synopsis

Declared in <mrdocs/Support/String.hpp>

constexpr
bool
isDigit(std::string_view const s) noexcept;

Synopsis

Declared in <mrdocs/Support/String.hpp>

constexpr
bool
isDigit(char const c) noexcept;

Determine if a value is empty

Synopsis

Declared in <mrdocs/Support/Handlebars.hpp>

bool
isEmpty(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

Name

Description

arg

The value to test

See Also

https://mustache.github.io/mustache.5.html#Sections

Synopses

Declared in <mrdocs/Support/String.hpp>

constexpr
bool
isLowerCase(std::string_view const s) noexcept;
constexpr
bool
isLowerCase(char const c) noexcept;

Synopsis

Declared in <mrdocs/Support/String.hpp>

constexpr
bool
isLowerCase(std::string_view const s) noexcept;

Synopsis

Declared in <mrdocs/Support/String.hpp>

constexpr
bool
isLowerCase(char const c) noexcept;

Determines whether the operator is potentially unary.

Synopsis

Declared in <mrdocs/Metadata/Specifiers/OperatorKind.hpp>

bool
isUnaryOperator(OperatorKind kind) noexcept;

Return Value

whether the operator is potentially unary.

Parameters

Name

Description

kind

Operator kinds

Synopses

Declared in <mrdocs/Support/String.hpp>

constexpr
bool
isUpperCase(std::string_view const s) noexcept;
constexpr
bool
isUpperCase(char const c) noexcept;

Synopsis

Declared in <mrdocs/Support/String.hpp>

constexpr
bool
isUpperCase(std::string_view const s) noexcept;

Synopsis

Declared in <mrdocs/Support/String.hpp>

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.

constexpr
bool
isWhitespace(std::string_view s) noexcept;
constexpr
bool
isWhitespace(char c) 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

Name

Description

s

The string to check.

Determine if a string is only whitespace.

Synopsis

Declared in <mrdocs/Support/String.hpp>

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

Name

Description

s

The string to check.

Synopsis

Declared in <mrdocs/Support/String.hpp>

constexpr
bool
isWhitespace(char c) noexcept;

is_null helper that uses nullable_traits<T> if available.

Synopsis

Declared in <mrdocs/ADT/Nullable.hpp>

template<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

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.

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);

Determine if an element is equal to any of the elements in the specified range.

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

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>

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

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>

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

Name

Description

el

The element to search for.

range

The range to search.

Synopsis

Declared in <mrdocs/ADT/Polymorphic.hpp>

template<
    class To,
    class From>
requires ( std::derived_from<std::remove_cvref_t<To>, std::remove_cvref_t<From>> )
[[nodiscard]]
bool
isa(Polymorphic<From> const& p) noexcept;

Synopsis

Declared in <mrdocs/ADT/Polymorphic.hpp>

template<
    class To,
    class From>
requires ( std::derived_from<std::remove_cvref_t<To>, std::remove_cvref_t<From>> )
[[nodiscard]]
bool
isa_or_null(Polymorphic<From> const* pp) noexcept;

Compare ExtractionModes and returns the least specific

Synopsis

Declared in <mrdocs/Metadata/Symbol/ExtractionMode.hpp>

constexpr
ExtractionMode
leastSpecific(
    ExtractionMode const a,
    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

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.

constexpr
std::string_view
ltrim(std::string_view const s) noexcept;

Return the substring without leading specified characters.

constexpr
std::string_view
ltrim(
    std::string_view const s,
    std::string_view const chars) noexcept;

Return Value

The modified string.

Parameters

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>

constexpr
std::string_view
ltrim(std::string_view const s) noexcept;

Return Value

The modified string.

Parameters

Name

Description

s

The string to trim.

Return the substring without leading specified characters.

Synopsis

Declared in <mrdocs/Support/String.hpp>

constexpr
std::string_view
ltrim(
    std::string_view const s,
    std::string_view const chars) noexcept;

Return Value

The modified string.

Parameters

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>

bool
makeChar(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

Name

Description

kind [in]

The type to modify

Apply the "long" specifier to the type

Synopsis

Declared in <mrdocs/Metadata/Type/FundamentalTypeKind.hpp>

bool
makeLong(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

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>

template<class... Ts>
[[nodiscard]]
constexpr
Overload<std::decay_t<Ts>...>
makeOverload(Ts...&&... xs) noexceptstd::is_nothrow_constructible_v<std::decay_t<Ts>, Ts &&> && ...;

Description

Prefer this over constructing Overload directly when you need perfect forwarding and decayed storage.

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

Name

Description

xs

The callables to combine.

Apply the "short" specifier to the type

Synopsis

Declared in <mrdocs/Metadata/Type/FundamentalTypeKind.hpp>

bool
makeShort(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

Name

Description

kind [in]

The type to modify

Apply the "signed" specifier to the type

Synopsis

Declared in <mrdocs/Metadata/Type/FundamentalTypeKind.hpp>

bool
makeSigned(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

Name

Description

kind [in]

The type to modify

Apply the "unsigned" specifier to the type

Synopsis

Declared in <mrdocs/Metadata/Type/FundamentalTypeKind.hpp>

bool
makeUnsigned(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

Name

Description

kind [in]

The type to modify

Make a visitor for a base type

Synopsis

Declared in <mrdocs/Support/Visitor.hpp>

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

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>

template<
    class T,
    std::size_t N>
constexpr
ArrayView<T>
make_array_view(T const(& arr)[]) noexcept;
template<class T>
constexpr
ArrayView<T>
make_array_view(
    T const* data,
    std::size_t count) noexcept;

Synopsis

Declared in <mrdocs/ADT/ArrayView.hpp>

template<
    class T,
    std::size_t N>
constexpr
ArrayView<T>
make_array_view(T const(& arr)[]) noexcept;

Synopsis

Declared in <mrdocs/ADT/ArrayView.hpp>

template<class T>
constexpr
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>

template<has_nullable_traits_v T>
void
make_null(T& v) noexcept(noexcept(nullable_traits<T>::make_null(v)));

Parameters

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>

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.

std::variant<int, std::string> 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

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>

void
merge(
    ConceptSymbol& I,
    ConceptSymbol&& Other);
void
merge(
    DocComment& I,
    DocComment&& other);
void
merge(
    EnumSymbol& I,
    EnumSymbol&& Other);
void
merge(
    ExprInfo& I,
    ExprInfo&& Other);
void
merge(
    FriendInfo& I,
    FriendInfo&& Other);
void
merge(
    FunctionSymbol& I,
    FunctionSymbol&& Other);
void
merge(
    GuideSymbol& I,
    GuideSymbol&& Other);
void
merge(
    NamespaceSymbol& I,
    NamespaceSymbol&& Other);
void
merge(
    OverloadsSymbol& I,
    OverloadsSymbol&& Other);
void
merge(
    Param& I,
    Param&& Other);
void
merge(
    RecordInterface& I,
    RecordInterface&& Other);
void
merge(
    RecordSymbol& I,
    RecordSymbol&& Other);
void
merge(
    RecordTranche& I,
    RecordTranche&& Other);
void
merge(
    SourceInfo& I,
    SourceInfo const& Other);
void
merge(
    SourceInfo& I,
    SourceInfo&& Other);

Merges two Symbol objects.

void
merge(
    Symbol& I,
    Symbol&& Other);
void
merge(
    TemplateInfo& I,
    TemplateInfo&& Other);
void
merge(
    TypedefSymbol& I,
    TypedefSymbol&& Other);
void
merge(
    UsingSymbol& I,
    UsingSymbol&& Other);
void
merge(
    VariableSymbol& I,
    VariableSymbol&& Other);

Merges two Symbol objects according to the behavior of the derived class.

template<polymorphic_storage_for<Symbol> SymbolTy>
void
merge(
    SymbolTy& I,
    SymbolTy&& Other);
template<class T>
static
void
merge(
    ConstantExprInfo<T>& I,
    ConstantExprInfo<T>&& Other);

Parameters

Name

Description

I

The Symbol object to merge into.

Other

The Symbol object to merge from.

Synopsis

Declared in <mrdocs/Metadata/Symbol/Concept.hpp>

void
merge(
    ConceptSymbol& I,
    ConceptSymbol&& Other);

Synopsis

Declared in <mrdocs/Metadata/DocComment.hpp>

void
merge(
    DocComment& I,
    DocComment&& other);

Synopsis

Declared in <mrdocs/Metadata/Symbol/EnumConstant.hpp>

void
merge(
    EnumConstantSymbol& I,
    EnumConstantSymbol&& Other);

Synopsis

Declared in <mrdocs/Metadata/Symbol/Enum.hpp>

void
merge(
    EnumSymbol& I,
    EnumSymbol&& Other);

Synopsis

Declared in <mrdocs/Metadata/Expression.hpp>

void
merge(
    ExprInfo& I,
    ExprInfo&& Other);

Synopsis

Declared in <mrdocs/Metadata/Symbol/Friend.hpp>

void
merge(
    FriendInfo& I,
    FriendInfo&& Other);

Synopsis

Declared in <mrdocs/Metadata/Symbol/Function.hpp>

void
merge(
    FunctionSymbol& I,
    FunctionSymbol&& Other);

Synopsis

Declared in <mrdocs/Metadata/Symbol/Guide.hpp>

void
merge(
    GuideSymbol& I,
    GuideSymbol&& Other);

Synopsis

Declared in <mrdocs/Metadata/Symbol/NamespaceAlias.hpp>

void
merge(
    NamespaceAliasSymbol& I,
    NamespaceAliasSymbol&& Other);

Synopsis

Declared in <mrdocs/Metadata/Symbol/Namespace.hpp>

void
merge(
    NamespaceSymbol& I,
    NamespaceSymbol&& Other);

Synopsis

Declared in <mrdocs/Metadata/Symbol/Namespace.hpp>

void
merge(
    NamespaceTranche& I,
    NamespaceTranche&& Other);

Synopsis

Declared in <mrdocs/Metadata/Symbol/Overloads.hpp>

void
merge(
    OverloadsSymbol& I,
    OverloadsSymbol&& Other);

Synopsis

Declared in <mrdocs/Metadata/Symbol/Param.hpp>

void
merge(
    Param& I,
    Param&& Other);

Synopsis

Declared in <mrdocs/Metadata/Symbol/RecordInterface.hpp>

void
merge(
    RecordInterface& I,
    RecordInterface&& Other);

Synopsis

Declared in <mrdocs/Metadata/Symbol/Record.hpp>

void
merge(
    RecordSymbol& I,
    RecordSymbol&& Other);

Synopsis

Declared in <mrdocs/Metadata/Symbol/RecordTranche.hpp>

void
merge(
    RecordTranche& I,
    RecordTranche&& Other);

Synopsis

Declared in <mrdocs/Metadata/Symbol/Source.hpp>

void
merge(
    SourceInfo& I,
    SourceInfo const& Other);

Synopsis

Declared in <mrdocs/Metadata/Symbol/Source.hpp>

void
merge(
    SourceInfo& I,
    SourceInfo&& Other);

Merges two Symbol objects.

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolBase.hpp>

void
merge(
    Symbol& I,
    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

Name

Description

I

The Symbol object to merge into.

Other

The Symbol object to merge from.

Synopsis

Declared in <mrdocs/Metadata/Template.hpp>

void
merge(
    TemplateInfo& I,
    TemplateInfo&& Other);

Synopsis

Declared in <mrdocs/Metadata/Symbol/Typedef.hpp>

void
merge(
    TypedefSymbol& I,
    TypedefSymbol&& Other);

Synopsis

Declared in <mrdocs/Metadata/Symbol/Using.hpp>

void
merge(
    UsingSymbol& I,
    UsingSymbol&& Other);

Synopsis

Declared in <mrdocs/Metadata/Symbol/Variable.hpp>

void
merge(
    VariableSymbol& I,
    VariableSymbol&& Other);

Merges two Symbol objects according to the behavior of the derived class.

Synopsis

Declared in <mrdocs/Metadata/Symbol.hpp>

template<polymorphic_storage_for<Symbol> SymbolTy>
void
merge(
    SymbolTy& I,
    SymbolTy&& Other);

Parameters

Name

Description

I

The Symbol object to merge into.

Other

The Symbol object to merge from.

Synopsis

Declared in <mrdocs/Metadata/Expression.hpp>

template<class T>
static
void
merge(
    ConstantExprInfo<T>& I,
    ConstantExprInfo<T>&& Other);

Compare ExtractionModes and returns the most specific

Synopsis

Declared in <mrdocs/Metadata/Symbol/ExtractionMode.hpp>

constexpr
ExtractionMode
mostSpecific(
    ExtractionMode const a,
    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

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>

template<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>

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,
    SplitLinesAdaptor const& a);

Determine if one function would override the other

Synopsis

Declared in <mrdocs/Metadata/Symbol/Function.hpp>

bool
overrides(
    FunctionSymbol const& base,
    FunctionSymbol const& derived);

Return Value

if one function would override the other

Parameters

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

template<HasParse T>
Expected<T>
parse(std::string_view sv);

Parse a string view

template<HasParse T>
ParseResult
parse(
    std::string_view sv,
    T& value);

Parameters

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>

template<HasParse T>
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

Name

Description

sv

The string view to parse

Parse a string view

Synopsis

Declared in <mrdocs/Support/Parse.hpp>

template<HasParse T>
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

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>

std::string
reindentCode(
    std::string_view code,
    std::size_t indent = 0);

Return Value

The modified code block.

Parameters

Name

Description

code

The code block to unindent.

Return the substring without leading and trailing horizontal whitespace.

Synopsis

Declared in <mrdocs/Support/String.hpp>

void
replace(
    std::string& s,
    std::string_view from,
    std::string_view to);

Return Value

The modified string.

Parameters

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.

constexpr
std::string_view
rtrim(std::string_view const s) noexcept;

Return the substring without trailing specified characters.

constexpr
std::string_view
rtrim(
    std::string_view const s,
    std::string_view const chars) noexcept;

Return Value

The modified string.

Parameters

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>

constexpr
std::string_view
rtrim(std::string_view const s) noexcept;

Return Value

The modified string.

Parameters

Name

Description

s

The string to trim.

Return the substring without trailing specified characters.

Synopsis

Declared in <mrdocs/Support/String.hpp>

constexpr
std::string_view
rtrim(
    std::string_view const s,
    std::string_view const chars) noexcept;

Return Value

The modified string.

Parameters

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.

Value
safeString(std::string_view str);
template<std::convertible_to<std::string_view> SV>
dom::Value
safeString(SV const& str);

Return Value

The safe string wrapper

Parameters

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>

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

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>

dom::Value
safeString(dom::Value const& str);

Synopsis

Declared in <mrdocs/Dom/Value.hpp>

template<std::convertible_to<std::string_view> SV>
dom::Value
safeString(SV const& str);

Determine if a string starts with one of the specified characters

Synopsis

Declared in <mrdocs/Support/String.hpp>

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

Name

Description

s

The string to check.

chars

The characters to check for.

Synopses

Declared in <mrdocs/ADT/Optional.hpp>

constexpr
void
swap(
    Error& lhs,
    Error& rhs) noexcept;
constexpr
void
swap(
    Expected& a,
    Expected& b) noexcept(noexcept(a.swap(b)))
requires requires { a.swap(b); };
constexpr
void
swap(
    Expected& x,
    Expected& y) noexcept(noexcept(x.swap(y)))
requires requires { x.swap(y); };
constexpr
void
swap(
    Polymorphic& lhs,
    Polymorphic& rhs) noexcept;
constexpr
void
swap(
    Unexpected& x,
    Unexpected& y) noexcept(noexcept(x.swap(y)))
requires std::is_swappable_v<E>;
template<class T>
constexpr
void
swap(
    Optional<T&>& a,
    Optional<T&>& b) noexcept;

Synopsis

Declared in <mrdocs/Support/Error.hpp>

constexpr
void
swap(
    Error& lhs,
    Error& rhs) noexcept;

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

constexpr
void
swap(
    Expected& a,
    Expected& b) noexcept(noexcept(a.swap(b)))
requires requires { a.swap(b); };

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

constexpr
void
swap(
    Expected& x,
    Expected& y) noexcept(noexcept(x.swap(y)))
requires requires { x.swap(y); };

Synopsis

Declared in <mrdocs/ADT/Polymorphic.hpp>

constexpr
void
swap(
    Polymorphic& lhs,
    Polymorphic& rhs) noexcept;

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

constexpr
void
swap(
    Unexpected& x,
    Unexpected& y) noexcept(noexcept(x.swap(y)))
requires std::is_swappable_v<E>;

Synopsis

Declared in <mrdocs/ADT/Optional.hpp>

template<class T>
constexpr
void
swap(
    Optional<T&>& a,
    Optional<T&>& b) noexcept;

tag_invoke overloads

Synopses

Declared in <mrdocs/Metadata/Symbol/Param.hpp>

Return the SymbolKind from a dom::Value string.

Return the ReferenceKind as a dom::Value string.

Return the UsingClass as a dom::Value string.

Return the AccessKind as a dom::Value string.

Return the ConstexprKind as a dom::Value string.

Return the FunctionClass from a dom::Value string.

Return the StorageClassKind as a dom::Value string.

Return the SymbolKind from a dom::Value string.

Return the ExplicitInfo as a dom::Value string.

Convert SymbolID to dom::Value string in the DOM using toBase16

void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    BaseInfo const& I,
    DomCorpus const* domCorpus);

Map the ConceptSymbol to a dom::Value object.

void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    ConceptSymbol const& I,
    DomCorpus const* domCorpus);

Return the DocComment as a dom::Value object.

void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    DocComment const& I,
    DomCorpus const* domCorpus);

Map the EnumConstantSymbol to a dom::Value object.

void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    EnumConstantSymbol const& I,
    DomCorpus const* domCorpus);

Map the EnumSymbol to a dom::Value object.

void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    EnumSymbol const& I,
    DomCorpus const* domCorpus);

Map the FriendInfo to a dom::Value object.

void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    FriendInfo const& I,
    DomCorpus const* domCorpus);

Map the FunctionSymbol to a dom::Value object.

void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    FunctionSymbol const& I,
    DomCorpus const* domCorpus);

Map the GuideSymbol to a dom::Value object.

void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    GuideSymbol const& I,
    DomCorpus const* domCorpus);
void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    Name const& I,
    DomCorpus const* domCorpus);

Map the NamespaceAliasSymbol to a dom::Value object.

void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    NamespaceAliasSymbol const& I,
    DomCorpus const* domCorpus);

Map the NamespaceSymbol to a dom::Value object.

void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    NamespaceSymbol const& I,
    DomCorpus const* domCorpus);

Map the NamespaceTranche to a dom::Value object.

void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    NamespaceTranche const& I,
    DomCorpus const* domCorpus);

Map the OverloadsSymbol to a dom::Value object.

void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    OverloadsSymbol const& I,
    DomCorpus const* domCorpus);

Return the Param as a dom::Value object.

void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    Param const& p,
    DomCorpus const* domCorpus);

Map the RecordInterface to a dom::Value object.

void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    RecordInterface const& I,
    DomCorpus const* domCorpus);

Map the RecordSymbol to a dom::Value object.

void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    RecordSymbol const& I,
    DomCorpus const* domCorpus);

Map the RecordTranche to a dom::Value object.

void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    RecordTranche const& I,
    DomCorpus const* domCorpus);

Return the Symbol as a dom::Value object.

void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    Symbol const& I,
    DomCorpus const* domCorpus);

Convert SymbolID to dom::Value object in the DOM using Corpus

void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    SymbolID const& id,
    DomCorpus const* domCorpus);
void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    TArg const& I,
    DomCorpus const* domCorpus);
void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    TParam const& I,
    DomCorpus const* domCorpus);
void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    TemplateInfo const& I,
    DomCorpus const* domCorpus);
void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    Type const& I,
    DomCorpus const* domCorpus);

Map the TypedefSymbol to a dom::Value object.

void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    TypedefSymbol const& I,
    DomCorpus const* domCorpus);

Map the UsingSymbol to a dom::Value object.

void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    UsingSymbol const& I,
    DomCorpus const* domCorpus);

Map the VariableSymbol to a dom::Value object.

void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    VariableSymbol const& I,
    DomCorpus const* domCorpus);
void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    Optional<TemplateInfo> const& I,
    DomCorpus const* domCorpus);
void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    Polymorphic<Name> const& I,
    DomCorpus const* domCorpus);
void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    Polymorphic<TArg> const& I,
    DomCorpus const* domCorpus);
void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    Polymorphic<TParam> const& I,
    DomCorpus const* domCorpus);
void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    Polymorphic<Type> const& I,
    DomCorpus const* domCorpus);

Convert SymbolID pointers to dom::Value or null.

void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    std::unique_ptr<SymbolID> const& t,
    DomCorpus const* domCorpus);

Map the DocComment to a dom::Object.

template<class IO>
void
tag_invoke(
    dom::LazyObjectMapTag,
    IO& io,
    DocComment const& I,
    DomCorpus const* domCorpus);

Map a NamespaceTranche to a dom::Object.

template<class IO>
void
tag_invoke(
    dom::LazyObjectMapTag,
    IO& io,
    NamespaceTranche const& I,
    DomCorpus const* domCorpus);

Map a RecordInterface to a dom::Object.

template<class IO>
void
tag_invoke(
    dom::LazyObjectMapTag,
    IO& io,
    RecordInterface const& I,
    DomCorpus const*);

Map a RecordTranche to a dom::Object.

template<class IO>
void
tag_invoke(
    dom::LazyObjectMapTag,
    IO& io,
    RecordTranche const& I,
    DomCorpus const* domCorpus);

Map the Symbol to a dom::Object.

template<class IO>
void
tag_invoke(
    dom::LazyObjectMapTag,
    IO& io,
    Symbol const& I,
    DomCorpus const* domCorpus);

Map a ConceptSymbol to a dom::Object.

template<class IO>
void
tag_invoke(
    dom::LazyObjectMapTag t,
    IO& io,
    ConceptSymbol const& I,
    DomCorpus const* domCorpus);

Map a EnumConstantSymbol to a dom::Object.

template<class IO>
void
tag_invoke(
    dom::LazyObjectMapTag t,
    IO& io,
    EnumConstantSymbol const& I,
    DomCorpus const* domCorpus);

Map a EnumSymbol to a dom::Object.

template<class IO>
void
tag_invoke(
    dom::LazyObjectMapTag t,
    IO& io,
    EnumSymbol const& I,
    DomCorpus const* domCorpus);

Map a FriendInfo to a dom::Object.

template<class IO>
void
tag_invoke(
    dom::LazyObjectMapTag t,
    IO& io,
    FriendInfo const& I,
    DomCorpus const* domCorpus);

Map a FunctionSymbol to a dom::Object.

template<class IO>
void
tag_invoke(
    dom::LazyObjectMapTag t,
    IO& io,
    FunctionSymbol const& I,
    DomCorpus const* domCorpus);

Map a GuideSymbol to a dom::Object.

template<class IO>
void
tag_invoke(
    dom::LazyObjectMapTag t,
    IO& io,
    GuideSymbol const& I,
    DomCorpus const* domCorpus);

Map a NamespaceAliasSymbol to a dom::Object.

template<class IO>
void
tag_invoke(
    dom::LazyObjectMapTag t,
    IO& io,
    NamespaceAliasSymbol const& I,
    DomCorpus const* domCorpus);

Map a NamespaceSymbol to a dom::Object.

template<class IO>
void
tag_invoke(
    dom::LazyObjectMapTag t,
    IO& io,
    NamespaceSymbol const& I,
    DomCorpus const* domCorpus);

Map a OverloadsSymbol to a dom::Object.

template<class IO>
void
tag_invoke(
    dom::LazyObjectMapTag t,
    IO& io,
    OverloadsSymbol const& I,
    DomCorpus const* domCorpus);

Map a RecordSymbol to a dom::Object.

template<class IO>
void
tag_invoke(
    dom::LazyObjectMapTag t,
    IO& io,
    RecordSymbol const& I,
    DomCorpus const* domCorpus);

Map a TypedefSymbol to a dom::Object.

template<class IO>
void
tag_invoke(
    dom::LazyObjectMapTag t,
    IO& io,
    TypedefSymbol const& I,
    DomCorpus const* domCorpus);

Map a UsingSymbol to a dom::Object.

template<class IO>
void
tag_invoke(
    dom::LazyObjectMapTag t,
    IO& io,
    UsingSymbol const& I,
    DomCorpus const* domCorpus);

Map a VariableSymbol to a dom::Object.

template<class IO>
void
tag_invoke(
    dom::LazyObjectMapTag t,
    IO& io,
    VariableSymbol const& I,
    DomCorpus const* domCorpus);

Map the Polymorphic Symbol to a dom::Object.

template<
    class IO,
    polymorphic_storage_for<Symbol> PolymorphicSymbol>
requires std::derived_from<PolymorphicSymbol, Symbol>
void
tag_invoke(
    dom::LazyObjectMapTag,
    IO& io,
    PolymorphicSymbol const& I,
    DomCorpus const* domCorpus);

Parameters

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>

void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    AutoKind kind);

Return the SymbolKind from a dom::Value string.

Synopsis

Declared in <mrdocs/Metadata/Symbol/ExtractionMode.hpp>

void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    ExtractionMode kind);

Parameters

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>

void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    FileKind kind);

Synopsis

Declared in <mrdocs/Metadata/Specifiers/OperatorKind.hpp>

void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    OperatorKind kind);

Synopsis

Declared in <mrdocs/Metadata/Type/QualifierKind.hpp>

void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    QualifierKind kind);

Synopsis

Declared in <mrdocs/Metadata/Symbol/RecordKeyKind.hpp>

void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    RecordKeyKind kind);

Return the ReferenceKind as a dom::Value string.

Synopsis

Declared in <mrdocs/Metadata/Specifiers/ReferenceKind.hpp>

void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    ReferenceKind kind);

Parameters

Name

Description

v

A variant container for any kind of Dom value.

kind

Reference type kinds

Synopsis

Declared in <mrdocs/Metadata/TArg/TArgKind.hpp>

void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    TArgKind kind);

Synopsis

Declared in <mrdocs/Metadata/TParam/TParamKeyKind.hpp>

void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    TParamKeyKind kind);

Synopsis

Declared in <mrdocs/Metadata/Type/TypeKind.hpp>

void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    TypeKind kind);

Return the UsingClass as a dom::Value string.

Synopsis

Declared in <mrdocs/Metadata/Symbol/Using.hpp>

void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    UsingClass kind);

Parameters

Name

Description

v

The output value.

kind

The UsingClass to convert.

Return the AccessKind as a dom::Value string.

Synopsis

Declared in <mrdocs/Metadata/Specifiers/AccessKind.hpp>

void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    AccessKind const kind);

Parameters

Name

Description

v

A variant container for any kind of Dom value.

kind

Access specifier.

Return the ConstexprKind as a dom::Value string.

Synopsis

Declared in <mrdocs/Metadata/Specifiers/ConstexprKind.hpp>

void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    ConstexprKind const kind);

Parameters

Name

Description

v

A variant container for any kind of Dom value.

kind

constexpr/`consteval` specifier kinds

Return the FunctionClass from a dom::Value string.

Synopsis

Declared in <mrdocs/Metadata/Symbol/FunctionClass.hpp>

void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    FunctionClass const kind);

Parameters

Name

Description

v

A variant container for any kind of Dom value.

kind

Function classifications

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/ListKind.hpp>

void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    ListKind const kind);

Synopsis

Declared in <mrdocs/Metadata/Name/NameKind.hpp>

void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    NameKind const kind);

Return the StorageClassKind as a dom::Value string.

Synopsis

Declared in <mrdocs/Metadata/Specifiers/StorageClassKind.hpp>

void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    StorageClassKind const kind);

Parameters

Name

Description

v

A variant container for any kind of Dom value.

kind

Storage class kinds

Return the SymbolKind from a dom::Value string.

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolKind.hpp>

void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    SymbolKind const kind);

Parameters

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>

void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    TableAlignmentKind const kind);

Return the ExplicitInfo as a dom::Value string.

Synopsis

Declared in <mrdocs/Metadata/Specifiers/ExplicitInfo.hpp>

void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    ExplicitInfo const& I);

Parameters

Name

Description

v

The output parameter to receive the dom::Value.

I

The ExplicitInfo to convert.

Synopsis

Declared in <mrdocs/Metadata/Symbol/Location.hpp>

void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    Location const& loc);

Synopsis

Declared in <mrdocs/Metadata/Specifiers/NoexceptInfo.hpp>

void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    NoexceptInfo const& info);

Synopsis

Declared in <mrdocs/Metadata/Symbol/Source.hpp>

void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    SourceInfo const& I);

Convert SymbolID to dom::Value string in the DOM using toBase16

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolID.hpp>

void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    SymbolID const& id);

Parameters

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>

void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    BaseInfo const& I,
    DomCorpus const* domCorpus);

Map the ConceptSymbol to a dom::Value object.

Synopsis

Declared in <mrdocs/Metadata/Symbol/Concept.hpp>

void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    ConceptSymbol const& I,
    DomCorpus const* domCorpus);

Parameters

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 DocComment as a dom::Value object.

Synopsis

Declared in <mrdocs/Metadata/DocComment.hpp>

void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    DocComment const& I,
    DomCorpus const* domCorpus);

Parameters

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 dom::Value object.

Synopsis

Declared in <mrdocs/Metadata/Symbol/EnumConstant.hpp>

void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    EnumConstantSymbol const& I,
    DomCorpus const* domCorpus);

Parameters

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 dom::Value object.

Synopsis

Declared in <mrdocs/Metadata/Symbol/Enum.hpp>

void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    EnumSymbol const& I,
    DomCorpus const* domCorpus);

Parameters

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 dom::Value object.

Synopsis

Declared in <mrdocs/Metadata/Symbol/Friend.hpp>

void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    FriendInfo const& I,
    DomCorpus const* domCorpus);

Parameters

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 dom::Value object.

Synopsis

Declared in <mrdocs/Metadata/Symbol/Function.hpp>

void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    FunctionSymbol const& I,
    DomCorpus const* domCorpus);

Parameters

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 dom::Value object.

Synopsis

Declared in <mrdocs/Metadata/Symbol/Guide.hpp>

void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    GuideSymbol const& I,
    DomCorpus const* domCorpus);

Parameters

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>

void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    Name const& I,
    DomCorpus const* domCorpus);

Map the NamespaceAliasSymbol to a dom::Value object.

Synopsis

Declared in <mrdocs/Metadata/Symbol/NamespaceAlias.hpp>

void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    NamespaceAliasSymbol const& I,
    DomCorpus const* domCorpus);

Parameters

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 dom::Value object.

Synopsis

Declared in <mrdocs/Metadata/Symbol/Namespace.hpp>

void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    NamespaceSymbol const& I,
    DomCorpus const* domCorpus);

Parameters

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 dom::Value object.

Synopsis

Declared in <mrdocs/Metadata/Symbol/Namespace.hpp>

void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    NamespaceTranche const& I,
    DomCorpus const* domCorpus);

Parameters

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 dom::Value object.

Synopsis

Declared in <mrdocs/Metadata/Symbol/Overloads.hpp>

void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    OverloadsSymbol const& I,
    DomCorpus const* domCorpus);

Parameters

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 dom::Value object.

Synopsis

Declared in <mrdocs/Metadata/Symbol/Param.hpp>

void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    Param const& p,
    DomCorpus const* domCorpus);

Parameters

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 dom::Value object.

Synopsis

Declared in <mrdocs/Metadata/Symbol/RecordInterface.hpp>

void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    RecordInterface const& I,
    DomCorpus const* domCorpus);

Parameters

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 dom::Value object.

Synopsis

Declared in <mrdocs/Metadata/Symbol/Record.hpp>

void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    RecordSymbol const& I,
    DomCorpus const* domCorpus);

Parameters

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 dom::Value object.

Synopsis

Declared in <mrdocs/Metadata/Symbol/RecordTranche.hpp>

void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    RecordTranche const& I,
    DomCorpus const* domCorpus);

Parameters

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 dom::Value object.

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolBase.hpp>

void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    Symbol const& I,
    DomCorpus const* domCorpus);

Parameters

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>

void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    SymbolID const& id,
    DomCorpus const* domCorpus);

Parameters

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>

void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    TArg const& I,
    DomCorpus const* domCorpus);

Synopsis

Declared in <mrdocs/Metadata/TParam/TParamBase.hpp>

void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    TParam const& I,
    DomCorpus const* domCorpus);

Synopsis

Declared in <mrdocs/Metadata/Template.hpp>

void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    TemplateInfo const& I,
    DomCorpus const* domCorpus);

Synopsis

Declared in <mrdocs/Metadata/Type/TypeBase.hpp>

void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    Type const& I,
    DomCorpus const* domCorpus);

Map the TypedefSymbol to a dom::Value object.

Synopsis

Declared in <mrdocs/Metadata/Symbol/Typedef.hpp>

void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    TypedefSymbol const& I,
    DomCorpus const* domCorpus);

Parameters

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 dom::Value object.

Synopsis

Declared in <mrdocs/Metadata/Symbol/Using.hpp>

void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    UsingSymbol const& I,
    DomCorpus const* domCorpus);

Parameters

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 dom::Value object.

Synopsis

Declared in <mrdocs/Metadata/Symbol/Variable.hpp>

void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    VariableSymbol const& I,
    DomCorpus const* domCorpus);

Parameters

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>

void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    Optional<TemplateInfo> const& I,
    DomCorpus const* domCorpus);

Synopsis

Declared in <mrdocs/Metadata/Name.hpp>

void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    Optional<Polymorphic<Name>> const& I,
    DomCorpus const* domCorpus);

Synopsis

Declared in <mrdocs/Metadata/Type.hpp>

void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    Optional<Polymorphic<Type>> const& I,
    DomCorpus const* domCorpus);

Synopsis

Declared in <mrdocs/Metadata/Name.hpp>

void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    Polymorphic<Name> const& I,
    DomCorpus const* domCorpus);

Synopsis

Declared in <mrdocs/Metadata/TArg.hpp>

void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    Polymorphic<TArg> const& I,
    DomCorpus const* domCorpus);

Synopsis

Declared in <mrdocs/Metadata/TParam.hpp>

void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    Polymorphic<TParam> const& I,
    DomCorpus const* domCorpus);

Synopsis

Declared in <mrdocs/Metadata/Type.hpp>

void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    Polymorphic<Type> const& I,
    DomCorpus const* domCorpus);

Convert SymbolID pointers to dom::Value or null.

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolID.hpp>

void
tag_invoke(
    dom::ValueFromTag,
    dom::Value& v,
    std::unique_ptr<SymbolID> const& t,
    DomCorpus const* domCorpus);

Parameters

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 DocComment to a dom::Object.

Synopsis

Declared in <mrdocs/Metadata/DocComment.hpp>

template<class IO>
void
tag_invoke(
    dom::LazyObjectMapTag,
    IO& io,
    DocComment const& I,
    DomCorpus const* domCorpus);

Parameters

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>

template<class IO>
void
tag_invoke(
    dom::LazyObjectMapTag,
    IO& io,
    NamespaceTranche const& I,
    DomCorpus const* domCorpus);

Parameters

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>

template<class IO>
void
tag_invoke(
    dom::LazyObjectMapTag,
    IO& io,
    RecordInterface const& I,
    DomCorpus const*);

Parameters

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>

template<class IO>
void
tag_invoke(
    dom::LazyObjectMapTag,
    IO& io,
    RecordTranche const& I,
    DomCorpus const* domCorpus);

Parameters

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 dom::Object.

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolBase.hpp>

template<class IO>
void
tag_invoke(
    dom::LazyObjectMapTag,
    IO& io,
    Symbol const& I,
    DomCorpus const* domCorpus);

Parameters

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>

template<class IO>
void
tag_invoke(
    dom::LazyObjectMapTag t,
    IO& io,
    ConceptSymbol const& I,
    DomCorpus const* domCorpus);

Parameters

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>

template<class IO>
void
tag_invoke(
    dom::LazyObjectMapTag t,
    IO& io,
    EnumConstantSymbol const& I,
    DomCorpus const* domCorpus);

Parameters

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>

template<class IO>
void
tag_invoke(
    dom::LazyObjectMapTag t,
    IO& io,
    EnumSymbol const& I,
    DomCorpus const* domCorpus);

Parameters

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>

template<class IO>
void
tag_invoke(
    dom::LazyObjectMapTag t,
    IO& io,
    FriendInfo const& I,
    DomCorpus const* domCorpus);

Parameters

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>

template<class IO>
void
tag_invoke(
    dom::LazyObjectMapTag t,
    IO& io,
    FunctionSymbol const& I,
    DomCorpus const* domCorpus);

Parameters

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>

template<class IO>
void
tag_invoke(
    dom::LazyObjectMapTag t,
    IO& io,
    GuideSymbol const& I,
    DomCorpus const* domCorpus);

Parameters

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>

template<class IO>
void
tag_invoke(
    dom::LazyObjectMapTag t,
    IO& io,
    NamespaceAliasSymbol const& I,
    DomCorpus const* domCorpus);

Parameters

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>

template<class IO>
void
tag_invoke(
    dom::LazyObjectMapTag t,
    IO& io,
    NamespaceSymbol const& I,
    DomCorpus const* domCorpus);

Parameters

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>

template<class IO>
void
tag_invoke(
    dom::LazyObjectMapTag t,
    IO& io,
    OverloadsSymbol const& I,
    DomCorpus const* domCorpus);

Parameters

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>

template<class IO>
void
tag_invoke(
    dom::LazyObjectMapTag t,
    IO& io,
    RecordSymbol const& I,
    DomCorpus const* domCorpus);

Parameters

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>

template<class IO>
void
tag_invoke(
    dom::LazyObjectMapTag t,
    IO& io,
    TypedefSymbol const& I,
    DomCorpus const* domCorpus);

Parameters

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>

template<class IO>
void
tag_invoke(
    dom::LazyObjectMapTag t,
    IO& io,
    UsingSymbol const& I,
    DomCorpus const* domCorpus);

Parameters

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>

template<class IO>
void
tag_invoke(
    dom::LazyObjectMapTag t,
    IO& io,
    VariableSymbol const& I,
    DomCorpus const* domCorpus);

Parameters

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 dom::Object.

Synopsis

Declared in <mrdocs/Metadata/Symbol.hpp>

template<
    class IO,
    polymorphic_storage_for<Symbol> PolymorphicSymbol>
requires std::derived_from<PolymorphicSymbol, Symbol>
void
tag_invoke(
    dom::LazyObjectMapTag,
    IO& io,
    PolymorphicSymbol const& I,
    DomCorpus const* domCorpus);

Parameters

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>

std::string
toBase16Str(SymbolID const& id);

Return Value

The base16 string representation of the SymbolID.

Parameters

Name

Description

id

The SymbolID to convert.

Synopsis

Declared in <mrdocs/Support/String.hpp>

constexpr
std::string
toCamelCase(std::string_view const input);

Synopsis

Declared in <mrdocs/Support/String.hpp>

constexpr
std::string
toKebabCase(std::string_view const input);

Synopses

Declared in <mrdocs/Support/String.hpp>

constexpr
std::string
toLowerCase(std::string_view const s) noexcept;
constexpr
char
toLowerCase(char const c) noexcept;

Synopsis

Declared in <mrdocs/Support/String.hpp>

constexpr
std::string
toLowerCase(std::string_view const s) noexcept;

Synopsis

Declared in <mrdocs/Support/String.hpp>

constexpr
char
toLowerCase(char const c) noexcept;

Synopsis

Declared in <mrdocs/Support/String.hpp>

constexpr
std::string
toPascalCase(std::string_view const input);

Synopsis

Declared in <mrdocs/Support/String.hpp>

constexpr
std::string
toSnakeCase(std::string_view const input);

toString overloads

Synopses

Declared in <mrdocs/Metadata/Specifiers/ExplicitInfo.hpp>

dom::String
toString(AccessKind kind) noexcept;
dom::String
toString(AutoKind kind) noexcept;

Return the name of the SymbolKind as a string.

constexpr
std::string_view
toString(ExtractionMode kind) noexcept;
std::string_view
toString(FileKind kind);

Convert a FundamentalTypeKind to a string.

std::string_view
toString(FundamentalTypeKind kind) noexcept;
dom::String
toString(ListKind kind) noexcept;
dom::String
toString(NameKind kind) noexcept;

Return the name of the SymbolKind as a string.

dom::String
toString(SymbolKind kind) noexcept;
std::string_view
toString(TArgKind kind) noexcept;
std::string_view
toString(TParamKeyKind kind) noexcept;
std::string_view
toString(TParamKind kind) noexcept;
std::string_view
toString(TemplateSpecKind kind);
dom::String
toString(TypeKind kind) noexcept;
std::string
toString(Name const& N);
std::string
toString(TArg const& arg) noexcept;
std::string
toString(
    Type const& T,
    std::string_view Name = "");

Convert ExplicitInfo to a string.

dom::String
toString(
    ExplicitInfo const& info,
    bool resolved = false,
    bool implicit = false);

Convert NoexceptInfo to a string.

dom::String
toString(
    NoexceptInfo const& info,
    bool resolved = false,
    bool implicit = false);

Return Value

  • The string representation of the kind

  • The string representation of the explicit‐specifier.

  • The string representation of the noexcept‐specifier.

Parameters

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>

dom::String
toString(AccessKind kind) noexcept;

Synopsis

Declared in <mrdocs/Metadata/Type/AutoKind.hpp>

dom::String
toString(AutoKind kind) noexcept;

Synopsis

Declared in <mrdocs/Metadata/Specifiers/ConstexprKind.hpp>

dom::String
toString(ConstexprKind kind) noexcept;

Synopsis

Declared in <mrdocs/Metadata/Specifiers/ExplicitKind.hpp>

dom::String
toString(ExplicitKind kind) noexcept;

Return the name of the SymbolKind as a string.

Synopsis

Declared in <mrdocs/Metadata/Symbol/ExtractionMode.hpp>

constexpr
std::string_view
toString(ExtractionMode kind) noexcept;

Return Value

the name of the SymbolKind as a string.

Parameters

Name

Description

kind

Determine why a symbol is extracted

Synopsis

Declared in <mrdocs/Metadata/Symbol/FileKind.hpp>

std::string_view
toString(FileKind kind);

Synopsis

Declared in <mrdocs/Metadata/Symbol/FunctionClass.hpp>

dom::String
toString(FunctionClass kind) noexcept;

Convert a FundamentalTypeKind to a string.

Synopsis

Declared in <mrdocs/Metadata/Type/FundamentalTypeKind.hpp>

std::string_view
toString(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

Name

Description

kind

Categorically describes a fundamental type.

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/ListKind.hpp>

dom::String
toString(ListKind kind) noexcept;

Synopsis

Declared in <mrdocs/Metadata/Name/NameKind.hpp>

dom::String
toString(NameKind kind) noexcept;

Synopsis

Declared in <mrdocs/Metadata/Specifiers/NoexceptKind.hpp>

dom::String
toString(NoexceptKind kind) noexcept;

Synopsis

Declared in <mrdocs/Metadata/Type/QualifierKind.hpp>

dom::String
toString(QualifierKind kind) noexcept;

Synopsis

Declared in <mrdocs/Metadata/Symbol/RecordKeyKind.hpp>

dom::String
toString(RecordKeyKind kind) noexcept;

Synopsis

Declared in <mrdocs/Metadata/Specifiers/ReferenceKind.hpp>

dom::String
toString(ReferenceKind kind) noexcept;

Synopsis

Declared in <mrdocs/Metadata/Specifiers/StorageClassKind.hpp>

dom::String
toString(StorageClassKind kind) noexcept;

Return the name of the SymbolKind as a string.

Synopsis

Declared in <mrdocs/Metadata/Symbol/SymbolKind.hpp>

dom::String
toString(SymbolKind kind) noexcept;

Return Value

the name of the SymbolKind as a string.

Parameters

Name

Description

kind

Info variant discriminator

Synopsis

Declared in <mrdocs/Metadata/TArg/TArgKind.hpp>

std::string_view
toString(TArgKind kind) noexcept;

Synopsis

Declared in <mrdocs/Metadata/TParam/TParamKeyKind.hpp>

std::string_view
toString(TParamKeyKind kind) noexcept;

Synopsis

Declared in <mrdocs/Metadata/TParam/TParamKind.hpp>

std::string_view
toString(TParamKind kind) noexcept;

Synopsis

Declared in <mrdocs/Metadata/DocComment/Block/TableAlignmentKind.hpp>

dom::String
toString(TableAlignmentKind kind) noexcept;

Synopsis

Declared in <mrdocs/Metadata/Template.hpp>

std::string_view
toString(TemplateSpecKind kind);

Synopsis

Declared in <mrdocs/Metadata/Type/TypeKind.hpp>

dom::String
toString(TypeKind kind) noexcept;

Synopsis

Declared in <mrdocs/Metadata/Name/NameBase.hpp>

std::string
toString(Name const& N);

Synopsis

Declared in <mrdocs/Metadata/TArg/TArgBase.hpp>

std::string
toString(TArg const& arg) noexcept;

Synopsis

Declared in <mrdocs/Metadata/Type.hpp>

std::string
toString(
    Type const& T,
    std::string_view Name = "");

Convert ExplicitInfo to a string.

Synopsis

Declared in <mrdocs/Metadata/Specifiers/ExplicitInfo.hpp>

dom::String
toString(
    ExplicitInfo const& info,
    bool resolved = false,
    bool implicit = false);

Return Value

The string representation of the explicit‐specifier.

Parameters

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>

dom::String
toString(
    NoexceptInfo const& info,
    bool resolved = false,
    bool implicit = false);

Return Value

The string representation of the noexcept‐specifier.

Parameters

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>

constexpr
std::string
toUpperCase(std::string_view const s) noexcept;
constexpr
char
toUpperCase(char const c) noexcept;

Synopsis

Declared in <mrdocs/Support/String.hpp>

constexpr
std::string
toUpperCase(std::string_view const s) noexcept;

Synopsis

Declared in <mrdocs/Support/String.hpp>

constexpr
char
toUpperCase(char const c) noexcept;

Return the value as its underlying type.

Synopsis

Declared in <mrdocs/Support/TypeTraits.hpp>

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

Name

Description

value

The enum value to convert

Synopsis

Declared in <mrdocs/Metadata/DocComment.hpp>

template<
    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.

constexpr
std::string_view
trim(std::string_view const s) noexcept;

Return the substring without leading and trailing specified characters.

constexpr
std::string_view
trim(
    std::string_view const s,
    std::string_view const chars) noexcept;

Return Value

The modified string.

Parameters

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>

constexpr
std::string_view
trim(std::string_view const s) noexcept;

Return Value

The modified string.

Parameters

Name

Description

s

The string to trim.

Return the substring without leading and trailing specified characters.

Synopsis

Declared in <mrdocs/Support/String.hpp>

constexpr
std::string_view
trim(
    std::string_view const s,
    std::string_view const chars) noexcept;

Return Value

The modified string.

Parameters

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>

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

template<
    std::derived_from<Symbol> TypeTy,
    class F,
    class... Args>
constexpr
decltype(auto)
visit(
    TypeTy& I,
    F&& f,
    Args...&&... args);

Return Value

The result of calling the function object with the derived type

Parameters

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>

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>

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

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>

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.

std::variant<int, double, std::string> 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

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>

template<class F>
[[nodiscard]]
constexpr
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

Name

Description

f

The callable to wrap.

Write to output

Synopses

Declared in <mrdocs/Support/Handlebars.hpp>

Write to output

template<class T>
requires std::formattable<T, char>
OutputRef&
operator<<(
    OutputRef& os,
    T v);

Write to output

OutputRef&
operator<<(
    OutputRef& os,
    char const* c);

Write to output

OutputRef&
operator<<(
    OutputRef& os,
    char c);

Write to output

OutputRef&
operator<<(
    OutputRef& os,
    std::string_view sv);

Return Value

A reference to this object

Parameters

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>

template<class T>
requires std::formattable<T, char>
OutputRef&
operator<<(
    OutputRef& os,
    T v);

Return Value

A reference to this object

Parameters

Name

Description

os

The output stream reference

v

The character to write

Write to output

Synopsis

Declared in <mrdocs/Support/Handlebars.hpp>

OutputRef&
operator<<(
    OutputRef& os,
    char const* c);

Return Value

A reference to this object

Parameters

Name

Description

os

The output stream reference

c

The string to write

Write to output

Synopsis

Declared in <mrdocs/Support/Handlebars.hpp>

OutputRef&
operator<<(
    OutputRef& os,
    char c);

Return Value

A reference to this object

Parameters

Name

Description

os

The output stream reference

c

The character to write

Write to output

Synopsis

Declared in <mrdocs/Support/Handlebars.hpp>

OutputRef&
operator<<(
    OutputRef& os,
    std::string_view sv);

Return Value

A reference to this object

Parameters

Name

Description

os

The output stream reference

sv

The string to write

Equality operators

Synopses

Declared in <mrdocs/ADT/Optional.hpp>

Equality operator

template<
    class U,
    class E2>
requires std::is_void_v<U>
constexpr
bool
operator==(
    Expected const& x,
    Expected<U, E2> const& y) noexcept(noexcept(bool(x.error() == y.error())));

Equality operator

constexpr
bool
operator==(
    Iterator const& it,
    std::default_sentinel_t rhs) noexcept;

Equality operator

constexpr
bool
operator==(
    ParseResult const& lhs,
    ParseResult const& rhs) = default;

Equality operator

Equality operator

bool
operator==(
    Polymorphic<TParam> const& lhs,
    Polymorphic<TParam> const& rhs);

Equality operator

bool
operator==(
    Polymorphic<Name> const& lhs,
    Polymorphic<Name> const& rhs);

Equality operator

Equality operator

bool
operator==(
    Polymorphic<Type> const& lhs,
    Polymorphic<Type> const& rhs);

Equality operator

template<
    class U,
    class E2>
constexpr
bool
operator==(
    Expected const& x,
    Expected<U, E2> const& y) noexcept(noexcept(bool(*x == *y)) && noexcept(bool(x.error() == y.error())))
requires (!std::is_void_v<U>);

Equality operator

template<class U>
constexpr
bool
operator==(
    Expected const& x,
    U const& v) noexcept(noexcept(bool(*x == v)));

Equality operator

template<class E2>
constexpr
bool
operator==(
    Expected const& x,
    Unexpected<E2> const& e) noexcept(noexcept(bool(x.error() == e.error())));

Equality operator

constexpr
bool
operator==(
    ArrayView a,
    ArrayView b) noexcept
requires requires (const T& x, const T& y) { { x == y } ‐> std::convertible_to<bool>; };

Equality operator

template<
    class U,
    class E2>
requires (!std::is_void_v<U>)
constexpr
bool
operator==(
    Expected const& x,
    Expected<U, E2> const& y) noexcept(noexcept(bool(*x == *y)) && noexcept(bool(x.error() == y.error())));

Equality operator

template<class U>
constexpr
bool
operator==(
    Expected const& x,
    U const& v) noexcept(noexcept(bool(*x == v)));

Equality operator

template<class E2>
constexpr
bool
operator==(
    Expected const& x,
    Unexpected<E2> const& e) noexcept(noexcept(bool(x.error() == e.error())));

Equality operator

template<class Er>
[[nodiscard]]
constexpr
bool
operator==(
    Unexpected const& x,
    Unexpected<Er> const& y);

Equality operator

template<class Base>
requires detail::CanVisitCompare<Base>
bool
operator==(
    Polymorphic<Base> const& lhs,
    Polymorphic<Base> const& rhs);

Compares a value to an engaged Optional for equality. Returns true if the Optional is engaged and its value equals lhs.

template<
    typename T,
    typename U>
requires (!detail::isOptionalV<T>)
constexpr
/* implementation-defined */
operator==(
    T const& lhs,
    Optional<U> const& rhs);

Compares an engaged Optional to a value for equality. Returns true if the Optional is engaged and its value equals rhs.

template<
    typename T,
    typename U>
requires (!detail::isOptionalV<U>)
constexpr
/* implementation-defined */
operator==(
    Optional<T> const& lhs,
    U const& rhs);

Checks if the Optional is disengaged (equal to std::nullopt). Returns true if the Optional does not contain a value.

template<typename T>
[[nodiscard]]
constexpr
bool
operator==(
    Optional<T> const& lhs,
    std::nullopt_t rhs) noexcept;

Compares two Optional values for equality. Returns true if both are engaged and their contained values are equal, or both are disengaged.

template<
    typename T,
    typename U>
constexpr
/* implementation-defined */
operator==(
    Optional<T> const& lhs,
    Optional<U> const& rhs);

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>

template<
    class U,
    class E2>
requires std::is_void_v<U>
constexpr
bool
operator==(
    Expected const& x,
    Expected<U, E2> const& y) noexcept(noexcept(bool(x.error() == y.error())));

Return Value

true if the objects are equal, false otherwise

Parameters

Name

Description

x

The left operand

y

The right operand

Equality operator

Synopsis

Declared in <mrdocs/Support/SplitLines.hpp>

constexpr
bool
operator==(
    Iterator const& it,
    std::default_sentinel_t rhs) noexcept;

Return Value

true if the objects are equal, false otherwise

Parameters

Name

Description

it

The left operand

rhs

The right operand

Equality operator

Synopsis

Declared in <mrdocs/Support/Parse.hpp>

constexpr
bool
operator==(
    ParseResult const& lhs,
    ParseResult const& rhs) = default;

Return Value

true if the objects are equal, false otherwise

Parameters

Name

Description

lhs

The left operand

rhs

The right operand

Equality operator

Synopsis

Declared in <mrdocs/Metadata/Template.hpp>

bool
operator==(
    Optional<TemplateInfo> const& lhs,
    Optional<TemplateInfo> const& rhs);

Return Value

true if the objects are equal, false otherwise

Parameters

Name

Description

lhs

The left operand

rhs

The right operand

Equality operator

Synopsis

Declared in <mrdocs/Metadata/TParam.hpp>

bool
operator==(
    Polymorphic<TParam> const& lhs,
    Polymorphic<TParam> const& rhs);

Return Value

true if the objects are equal, false otherwise

Parameters

Name

Description

lhs

The left operand

rhs

The right operand

Equality operator

Synopsis

Declared in <mrdocs/Metadata/Name.hpp>

bool
operator==(
    Polymorphic<Name> const& lhs,
    Polymorphic<Name> const& rhs);

Return Value

true if the objects are equal, false otherwise

Parameters

Name

Description

lhs

The left operand

rhs

The right operand

Equality operator

Synopsis

Declared in <mrdocs/Metadata/Type.hpp>

bool
operator==(
    Optional<Polymorphic<Type>> const& lhs,
    Optional<Polymorphic<Type>> const& rhs);

Return Value

true if the objects are equal, false otherwise

Parameters

Name

Description

lhs

The left operand

rhs

The right operand

Equality operator

Synopsis

Declared in <mrdocs/Metadata/Type.hpp>

bool
operator==(
    Polymorphic<Type> const& lhs,
    Polymorphic<Type> const& rhs);

Return Value

true if the objects are equal, false otherwise

Parameters

Name

Description

lhs

The left operand

rhs

The right operand

Equality operator

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

template<
    class U,
    class E2>
constexpr
bool
operator==(
    Expected const& x,
    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

Name

Description

x

The left operand

y

The right operand

Equality operator

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

template<class U>
constexpr
bool
operator==(
    Expected const& x,
    U const& v) noexcept(noexcept(bool(*x == v)));

Return Value

true if the objects are equal, false otherwise

Parameters

Name

Description

x

The left operand

v

The right operand

Equality operator

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

template<class E2>
constexpr
bool
operator==(
    Expected const& x,
    Unexpected<E2> const& e) noexcept(noexcept(bool(x.error() == e.error())));

Return Value

true if the objects are equal, false otherwise

Parameters

Name

Description

x

The left operand

e

The right operand

Equality operator

Synopsis

Declared in <mrdocs/ADT/ArrayView.hpp>

constexpr
bool
operator==(
    ArrayView a,
    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

Name

Description

a

The left operand

b

The right operand

Equality operator

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

template<
    class U,
    class E2>
requires (!std::is_void_v<U>)
constexpr
bool
operator==(
    Expected const& x,
    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

Name

Description

x

The left operand

y

The right operand

Equality operator

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

template<class U>
constexpr
bool
operator==(
    Expected const& x,
    U const& v) noexcept(noexcept(bool(*x == v)));

Return Value

true if the objects are equal, false otherwise

Parameters

Name

Description

x

The left operand

v

The right operand

Equality operator

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

template<class E2>
constexpr
bool
operator==(
    Expected const& x,
    Unexpected<E2> const& e) noexcept(noexcept(bool(x.error() == e.error())));

Return Value

true if the objects are equal, false otherwise

Parameters

Name

Description

x

The left operand

e

The right operand

Equality operator

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

template<class Er>
[[nodiscard]]
constexpr
bool
operator==(
    Unexpected const& x,
    Unexpected<Er> const& y);

Return Value

true if the objects are equal, false otherwise

Parameters

Name

Description

x

The left operand

y

The right operand

Equality operator

Synopsis

Declared in <mrdocs/ADT/Polymorphic.hpp>

template<class Base>
requires detail::CanVisitCompare<Base>
bool
operator==(
    Polymorphic<Base> const& lhs,
    Polymorphic<Base> const& rhs);

Return Value

true if the objects are equal, false otherwise

Parameters

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>

template<
    typename T,
    typename U>
requires (!detail::isOptionalV<T>)
constexpr
/* implementation-defined */
operator==(
    T const& lhs,
    Optional<U> const& rhs);

Return Value

true if the optional is engaged and equal to lhs; otherwise, false.

Parameters

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>

template<
    typename T,
    typename U>
requires (!detail::isOptionalV<U>)
constexpr
/* implementation-defined */
operator==(
    Optional<T> const& lhs,
    U const& rhs);

Return Value

true if the optional is engaged and equal to rhs; otherwise, false.

Parameters

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>

template<typename T>
[[nodiscard]]
constexpr
bool
operator==(
    Optional<T> const& lhs,
    std::nullopt_t rhs) noexcept;

Return Value

true if the optional is disengaged; otherwise, false.

Parameters

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>

template<
    typename T,
    typename U>
constexpr
/* implementation-defined */
operator==(
    Optional<T> const& lhs,
    Optional<U> const& rhs);

Return Value

true if both optionals are engaged and equal, or both are disengaged; otherwise, false.

Parameters

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.

template<
    typename T,
    typename U>
constexpr
/* implementation-defined */
operator!=(
    Optional<T> const& lhs,
    Optional<U> const& rhs);

Compares an Optional to a value for inequality. Returns true if the Optional is disengaged or its value does not equal rhs.

template<
    typename T,
    typename U>
requires (!detail::isOptionalV<U>)
constexpr
/* implementation-defined */
operator!=(
    Optional<T> const& lhs,
    U const& rhs);

Compares a value to an Optional for inequality. Returns true if the Optional is disengaged or its value does not equal lhs.

template<
    typename T,
    typename U>
requires (!detail::isOptionalV<T>)
constexpr
/* implementation-defined */
operator!=(
    T const& lhs,
    Optional<U> const& rhs);

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>

template<
    typename T,
    typename U>
constexpr
/* implementation-defined */
operator!=(
    Optional<T> const& lhs,
    Optional<U> const& rhs);

Return Value

true if the optionals differ in engagement or value; otherwise, false.

Parameters

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>

template<
    typename T,
    typename U>
requires (!detail::isOptionalV<U>)
constexpr
/* implementation-defined */
operator!=(
    Optional<T> const& lhs,
    U const& rhs);

Return Value

true if the optional is disengaged or not equal to rhs; otherwise, false.

Parameters

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>

template<
    typename T,
    typename U>
requires (!detail::isOptionalV<T>)
constexpr
/* implementation-defined */
operator!=(
    T const& lhs,
    Optional<U> const& rhs);

Return Value

true if the optional is disengaged or not equal to lhs; otherwise, false.

Parameters

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.

template<
    typename T,
    typename U>
constexpr
/* implementation-defined */
operator<(
    Optional<T> const& lhs,
    Optional<U> const& rhs);

Checks if the Optional is less than a value. Returns true if the Optional is disengaged or its value is less than rhs.

template<
    typename T,
    typename U>
requires (!detail::isOptionalV<U>)
[[nodiscard]]
constexpr
/* implementation-defined */
operator<(
    Optional<T> const& lhs,
    U const& rhs);

Checks if a value is less than an engaged Optional. Returns true if the Optional is engaged and lhs is less than its value.

template<
    typename T,
    typename U>
requires (!detail::isOptionalV<T>)
[[nodiscard]]
constexpr
/* implementation-defined */
operator<(
    T const& lhs,
    Optional<U> const& rhs);

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>

template<
    typename T,
    typename U>
constexpr
/* implementation-defined */
operator<(
    Optional<T> const& lhs,
    Optional<U> const& rhs);

Return Value

true if lhs is less than rhs according to the described rules; otherwise, false.

Parameters

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>

template<
    typename T,
    typename U>
requires (!detail::isOptionalV<U>)
[[nodiscard]]
constexpr
/* implementation-defined */
operator<(
    Optional<T> const& lhs,
    U const& rhs);

Return Value

true if the optional is disengaged or less than rhs; otherwise, false.

Parameters

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>

template<
    typename T,
    typename U>
requires (!detail::isOptionalV<T>)
[[nodiscard]]
constexpr
/* implementation-defined */
operator<(
    T const& lhs,
    Optional<U> const& rhs);

Return Value

true if the optional is engaged and lhs is less than its value; otherwise, false.

Parameters

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.

template<
    typename T,
    typename U>
constexpr
/* implementation-defined */
operator<=(
    Optional<T> const& lhs,
    Optional<U> const& rhs);

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.

template<
    typename T,
    typename U>
requires (!detail::isOptionalV<U>)
constexpr
/* implementation-defined */
operator<=(
    Optional<T> const& lhs,
    U const& rhs);

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.

template<
    typename T,
    typename U>
requires (!detail::isOptionalV<T>)
constexpr
/* implementation-defined */
operator<=(
    T const& lhs,
    Optional<U> const& rhs);

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>

template<
    typename T,
    typename U>
constexpr
/* implementation-defined */
operator<=(
    Optional<T> const& lhs,
    Optional<U> const& rhs);

Return Value

true if lhs is less than or equal to rhs according to the described rules; otherwise, false.

Parameters

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>

template<
    typename T,
    typename U>
requires (!detail::isOptionalV<U>)
constexpr
/* implementation-defined */
operator<=(
    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

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>

template<
    typename T,
    typename U>
requires (!detail::isOptionalV<T>)
constexpr
/* implementation-defined */
operator<=(
    T const& lhs,
    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

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.

template<
    typename T,
    typename U>
constexpr
/* implementation-defined */
operator>(
    Optional<T> const& lhs,
    Optional<U> const& rhs);

Checks if the Optional is greater than a value. Returns true if the Optional is engaged and its value is greater than rhs.

template<
    typename T,
    typename U>
requires (!detail::isOptionalV<U>)
constexpr
/* implementation-defined */
operator>(
    Optional<T> const& lhs,
    U const& rhs);

Checks if a value is greater than an Optional. Returns true if the Optional is disengaged or lhs is greater than its value.

template<
    typename T,
    typename U>
requires (!detail::isOptionalV<T>)
constexpr
/* implementation-defined */
operator>(
    T const& lhs,
    Optional<U> const& rhs);

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>

template<
    typename T,
    typename U>
constexpr
/* implementation-defined */
operator>(
    Optional<T> const& lhs,
    Optional<U> const& rhs);

Return Value

true if lhs is greater than rhs according to the described rules; otherwise, false.

Parameters

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>

template<
    typename T,
    typename U>
requires (!detail::isOptionalV<U>)
constexpr
/* implementation-defined */
operator>(
    Optional<T> const& lhs,
    U const& rhs);

Return Value

true if the optional is engaged and greater than rhs; otherwise, false.

Parameters

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>

template<
    typename T,
    typename U>
requires (!detail::isOptionalV<T>)
constexpr
/* implementation-defined */
operator>(
    T const& lhs,
    Optional<U> const& rhs);

Return Value

true if the optional is disengaged or lhs is greater than its value; otherwise, false.

Parameters

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.

template<
    typename T,
    typename U>
constexpr
/* implementation-defined */
operator>=(
    Optional<T> const& lhs,
    Optional<U> const& rhs);

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.

template<
    typename T,
    typename U>
requires (!detail::isOptionalV<U>)
constexpr
/* implementation-defined */
operator>=(
    Optional<T> const& lhs,
    U const& rhs);

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.

template<
    typename T,
    typename U>
requires (!detail::isOptionalV<T>)
constexpr
/* implementation-defined */
operator>=(
    T const& lhs,
    Optional<U> const& rhs);

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>

template<
    typename T,
    typename U>
constexpr
/* implementation-defined */
operator>=(
    Optional<T> const& lhs,
    Optional<U> const& rhs);

Return Value

true if lhs is greater than or equal to rhs according to the described rules; otherwise, false.

Parameters

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>

template<
    typename T,
    typename U>
requires (!detail::isOptionalV<U>)
constexpr
/* implementation-defined */
operator>=(
    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

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>

template<
    typename T,
    typename U>
requires (!detail::isOptionalV<T>)
constexpr
/* implementation-defined */
operator>=(
    T const& lhs,
    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

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

constexpr
auto
operator<=>(
    ArrayView a,
    ArrayView b) noexcept
requires requires (const T& x, const T& y) { x <=> y; };

Performs a three‐way comparison between two Optional values. If both are engaged, compares their contained values; otherwise, compares engagement state.

template<
    typename T,
    std::three_way_comparable_with<T> U>
[[nodiscard]]
constexpr
std::compare_three_way_result_t<T, U>
operator<=>(
    Optional<T> const& x,
    Optional<U> const& y);

Performs a three‐way comparison between an Optional and std::nullopt. Returns std::strong_ordering::greater if engaged, std::strong_ordering::equal if disengaged.

template<typename T>
[[nodiscard]]
constexpr
std::strong_ordering
operator<=>(
    Optional<T> const& x,
    std::nullopt_t rhs) noexcept;

Performs a three‐way comparison between an Optional and a value. If the Optional is engaged, compares its value to v; otherwise, returns less.

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<=>(
    Optional<T> const& x,
    U const& v);

Three‐way comparison operator

template<class Base>
requires detail::CanVisitCompare<Base>
auto
operator<=>(
    Polymorphic<Base> const& lhs,
    Polymorphic<Base> const& rhs);

Three‐way comparison operator

std::strong_ordering
operator<=>(
    Polymorphic<Type> const& lhs,
    Polymorphic<Type> const& rhs);

Three‐way comparison operator

std::strong_ordering
operator<=>(
    Optional<Polymorphic<Type>> const& lhs,
    Optional<Polymorphic<Type>> const& rhs);

Three‐way comparison operator

std::strong_ordering
operator<=>(
    Polymorphic<TArg> const& lhs,
    Polymorphic<TArg> const& rhs);

Three‐way comparison operator

std::strong_ordering
operator<=>(
    Polymorphic<Name> const& lhs,
    Polymorphic<Name> const& rhs);

Three‐way comparison operator

std::strong_ordering
operator<=>(
    Polymorphic<TParam> const& lhs,
    Polymorphic<TParam> const& rhs);

Three‐way comparison operator

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>

constexpr
auto
operator<=>(
    ArrayView a,
    ArrayView b) noexcept
requires requires (const T& x, const T& y) { x <=> y; };

Return Value

The relative order of the objects

Parameters

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>

template<
    typename T,
    std::three_way_comparable_with<T> U>
[[nodiscard]]
constexpr
std::compare_three_way_result_t<T, U>
operator<=>(
    Optional<T> const& x,
    Optional<U> const& y);

Return Value

The result of the three‐way comparison between the optionals or their values.

Parameters

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>

template<typename T>
[[nodiscard]]
constexpr
std::strong_ordering
operator<=>(
    Optional<T> const& x,
    std::nullopt_t rhs) noexcept;

Return Value

The result of the three‐way comparison with std::nullopt.

Parameters

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>

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<=>(
    Optional<T> const& x,
    U const& v);

Return Value

The result of the three‐way comparison with the value.

Parameters

Name

Description

x

The left operand

v

The right operand

Three‐way comparison operator

Synopsis

Declared in <mrdocs/ADT/Polymorphic.hpp>

template<class Base>
requires detail::CanVisitCompare<Base>
auto
operator<=>(
    Polymorphic<Base> const& lhs,
    Polymorphic<Base> const& rhs);

Return Value

The relative order of the objects

Parameters

Name

Description

lhs

The left operand

rhs

The right operand

Three‐way comparison operator

Synopsis

Declared in <mrdocs/Metadata/Type.hpp>

std::strong_ordering
operator<=>(
    Polymorphic<Type> const& lhs,
    Polymorphic<Type> const& rhs);

Return Value

The relative order of the objects

Parameters

Name

Description

lhs

The left operand

rhs

The right operand

Three‐way comparison operator

Synopsis

Declared in <mrdocs/Metadata/Type.hpp>

std::strong_ordering
operator<=>(
    Optional<Polymorphic<Type>> const& lhs,
    Optional<Polymorphic<Type>> const& rhs);

Return Value

The relative order of the objects

Parameters

Name

Description

lhs

The left operand

rhs

The right operand

Three‐way comparison operator

Synopsis

Declared in <mrdocs/Metadata/TArg.hpp>

std::strong_ordering
operator<=>(
    Polymorphic<TArg> const& lhs,
    Polymorphic<TArg> const& rhs);

Return Value

The relative order of the objects

Parameters

Name

Description

lhs

The left operand

rhs

The right operand

Three‐way comparison operator

Synopsis

Declared in <mrdocs/Metadata/Name.hpp>

std::strong_ordering
operator<=>(
    Polymorphic<Name> const& lhs,
    Polymorphic<Name> const& rhs);

Return Value

The relative order of the objects

Parameters

Name

Description

lhs

The left operand

rhs

The right operand

Three‐way comparison operator

Synopsis

Declared in <mrdocs/Metadata/TParam.hpp>

std::strong_ordering
operator<=>(
    Polymorphic<TParam> const& lhs,
    Polymorphic<TParam> const& rhs);

Return Value

The relative order of the objects

Parameters

Name

Description

lhs

The left operand

rhs

The right operand

Three‐way comparison operator

Synopsis

Declared in <mrdocs/Metadata/Template.hpp>

auto
operator<=>(
    Optional<TemplateInfo> const& lhs,
    Optional<TemplateInfo> const& rhs);

Return Value

The relative order of the objects

Parameters

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>

inline constexpr SplitLinesAdaptor splitLines = {};

Description

This is a convenience function for creating a SplitLinesView.

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

inline constexpr unexpect_t unexpect = unexpect{};

Internal concept that matches “empty‐clear default‐constructible” types.

Synopsis

Declared in <mrdocs/ADT/Nullable.hpp>

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>

template<class T>
concept DocCommentNode = std::derived_from<T, doc::Block> || std::derived_from<T, doc::Inline>;

Synopsis

Declared in <mrdocs/Metadata/DocComment.hpp>

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>

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:

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>

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>

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>

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>

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>

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>

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>

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>

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>

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>

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>

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>

template<
    class T,
    std::size_t N>
ArrayView<T>(T const(&)[]) → ArrayView<T>;

Synopsis

Declared in <mrdocs/ADT/ArrayView.hpp>

template<class T>
ArrayView<T>(
    T const*,
    std::size_t) → ArrayView<T>;

Class template argument deduction guide for Overload.

Synopsis

Declared in <mrdocs/ADT/Overload.hpp>

template<class... Ts>
Overload<Ts...>(Ts...) → Overload<Ts...>;

Description

Allows writing Overload{lambda1, lambda2, ...} without specifying template parameters.

Synopsis

Declared in <mrdocs/Support/RangeFor.hpp>

template<class Container>
RangeFor<Container>(Container const&) → RangeFor<Container>;

Synopsis

Declared in <mrdocs/Support/ScopeExit.hpp>

template<class F>
ScopeExit<F>(F) → ScopeExit<F>;

Synopsis

Declared in <mrdocs/Support/ScopeExit.hpp>

template<class T>
ScopeExitRestore<T>(T&) → ScopeExitRestore<T>;

Synopsis

Declared in <mrdocs/Support/ScopeExit.hpp>

template<
    class T,
    std::convertible_to<T> T2>
ScopeExitRestore<T>(
    T&,
    T2) → ScopeExitRestore<T>;

Synopsis

Declared in <mrdocs/Support/Expected.hpp>

template<class E>
Unexpected<E>(E) → Unexpected<E>;

Synopsis

Declared in <mrdocs/Support/source_location.hpp>

using std::source_location;

Created with MrDocs