| Name | Description |
|---|---|
mrdocs | Core MrDocs support utilities. |
Core MrDocs support utilities.
| Name | Description |
|---|---|
doc | Doc-comment enums and helpers that describe admonition kinds. |
dom | Objects representing JSON-like values. |
files | Filesystem helpers (join, temp, canonicalize) used throughout MrDocs. |
helpers | Handlebars helper registry for templates. |
js | JavaScript interop helpers for the embedded runtime. |
lua | Lua interop helpers for the optional scripting/backend integration. |
report | Reporting utilities (messages, statistics, sinks). |
| Name | Description |
|---|---|
AnyFileVisitor | Polymorphic visitor for files discovered during traversal. |
ArrayType | C++ array type (bounded or unbounded). |
ArrayView | A non-owning, read-only view over a contiguous array of T. |
AutoType | Represents auto or decltype(auto) placeholder type. |
BadExpectedAccess | Base class for accessing an empty Expected. |
BadExpectedAccess<void> | Exception thrown when reading the value of an empty Expected. |
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 | Non-type template argument. |
ConstantTParam | A constant template parameter |
Corpus | The collection of declarations in extracted form. |
DecltypeType | decltype(expr) type wrapper. |
DocComment | A processed documentation comment attached to a declaration. |
DomCorpus | Front-end factory for producing Dom nodes. |
EnumConstantSymbol | Info for enum constants. |
EnumSymbol | Metadata for an enumeration declaration. |
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 | Base class that owns a pool of execution agents and a shared work queue. |
Expected | A container holding an error or a value. |
Expected<T, E> | Expected specialization for void values. Holds either success (no payload) or an unexpected error E. |
Expected<T&, E> | Expected specialization for lvalue references. Holds either a bound reference to T or an unexpected error 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 | Metadata for a function or method. |
FunctionType | Function type with parameters, qualifiers, and noexcept info. |
Generator | Base class for documentation generators. |
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 | An lvalue reference type. |
Location | Source location of a symbol or entity. |
MemberPointerType | Pointer-to-member type (object or function). |
Name | Represents a name for a named Type |
NamedType | A type identified by name (possibly fundamental). |
NamespaceAliasSymbol | Info for namespace aliases. |
NamespaceSymbol | Describes a namespace and its members. |
NamespaceTranche | Buckets the members that appear inside a namespace. |
NoexceptInfo | Captures a noexcept specification and its evaluated form. |
Optional | A compact optional that automatically uses nullable_traits<T> when available. |
Optional<T&> | Optional reference wrapper that never owns storage. |
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 | Pointer type wrapper. |
Polymorphic | A polymorphic value-type. |
RValueReferenceType | An rvalue reference type. |
RangeFor | Range adapter to expose first/last flags inside range-for loops. |
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 | Execute a callable when the enclosing scope exits unless dismissed. |
ScopeExitRestore | RAII helper that restores a referenced value on scope exit. |
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 | Range adaptor that constructs a SplitLinesView. |
SplitLinesView | A lazy input range of std::string_view lines split on all known line breaks. |
StringHash | Transparent hash functor for string-like keys. |
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 | Base class for any template argument. |
TArgCommonBase | CRTP base that fixes the argument kind. |
TParam | Base class for a template parameter declaration. |
TParamCommonBase | CRTP base that fixes the parameter kind. |
TaskGroup | A subset of possible work in a thread pool. |
TemplateInfo | Information about templates and specializations thereof. |
TemplateTArg | Template template argument. |
TemplateTParam | Template template parameter. |
ThreadPool | A pool of threads for executing work concurrently. |
Type | A possibly qualified type. |
TypeCommonBase | CRTP base that ties a concrete type to a fixed TypeKind. |
TypeTArg | Type template argument. |
TypeTParam | Type template parameter. |
TypedefSymbol | Info for typedef and using declarations. |
Unexpected | Holds an unexpected error value for Expected. |
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 | Propagate const qualification from From to To, keeping references. |
add_cv_from | Propagate both const and volatile qualifiers from From to To. |
add_cvref_from | Propagate cv-qualification and reference category from From to To. |
add_lvalue_reference_from | Propagate lvalue-reference from From to To if present. |
add_reference_from | Propagate reference qualification from From to To. |
add_rvalue_reference_from | Propagate rvalue-reference from From to To if present. |
add_volatile_from | Propagate volatile qualification from From to To, keeping references. |
any_callable | A movable, type-erased function object. |
any_callable<R(Args...)> | Type-erased callable wrapper for signature R(Args...). |
make_dependent | Dependent alias of T, useful for delaying instantiation. |
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 | Tag type used to select unexpected construction. |
unlock_guard | A scoped guard which unlocks a mutex. |
UnorderedStringMap | unordered_map keyed by std::string with transparent hashing. |
UnorderedStringMultiMap | unordered_multimap keyed by std::string with transparent hashing. |
add_const_from_t | Alias for add_const_from<From, To>::type. |
add_cv_from_t | Alias for add_cv_from<From, To>::type. |
add_cvref_from_t | Alias for add_cvref_from<From, To>::type. |
add_lvalue_reference_from_t | Alias for add_lvalue_reference_from<From, To>::type. |
add_reference_from_t | Alias for add_reference_from<From, To>::type. |
add_rvalue_reference_from_t | Alias for add_rvalue_reference_from<From, To>::type. |
add_volatile_from_t | Alias for add_volatile_from<From, To>::type. |
make_dependent_t | Alias for make_dependent<T, U>::type. |
| 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 | Classifies where a file originates from. |
FunctionClass | Function classifications |
FundamentalTypeKind | Categorically describes a fundamental type. |
ListKind | Classification of list ordering. |
NameKind | Kinds of names that appear in type and symbol metadata. |
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 | Discriminates the different template parameter categories. |
TableAlignmentKind | Horizontal alignment for table columns. |
TemplateSpecKind | The kind of template or specialization. |
TypeKind | Variants of C++ types captured in metadata. |
UsingClass | The class of using declaration. |
| Name | Description |
|---|---|
CompareDerived | Compares two polymorphic objects that have visit functions |
HTMLEscape | HTMLEscape overloads |
addMember | Append a new function overload to the set. |
allMembers | allMembers overloads |
assert_failed | Handler invoked when MRDOCS_ASSERT fails. |
bottomUpTraverse | Traverse a DocComment tree bottom-up (post-order). |
canMerge | Check whether two symbols may be merged. |
cast | cast overloads |
cast_or_null | cast_or_null overloads |
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 | Count the number of SymbolKind enumerators. |
createFrame | Create child data objects. |
dyn_cast | dyn_cast overloads |
dyn_cast_or_null | dyn_cast_or_null overloads |
endsWithOneOf | Determine if a string ends with one of the specified characters |
escapeExpression | |
findGenerator | Find a generator by its id. |
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 | Return the default accessibility for a record key kind. |
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 | getPrimaryLocation overloads |
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 | innermostType overloads |
installGenerator | Install a custom generator. |
isAlphaNumeric | isAlphaNumeric overloads |
isAlphabetic | isAlphabetic overloads |
isBinaryOperator | Determines whether the operator is potentially binary. |
isDigit | isDigit overloads |
isEmpty | Determine if a value is empty |
isLowerCase | isLowerCase overloads |
isUnaryOperator | Determines whether the operator is potentially unary. |
isUpperCase | isUpperCase overloads |
isWhitespace | isWhitespace overloads |
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 | Return true if the polymorphic object holds a value of type To. |
isa_or_null | Return true if pointer is non-null and referent is of type To. |
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_array_view overloads |
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| | Pipe a contiguous character range into the adaptor. |
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 | safeString overloads |
startsWithOneOf | Determine if a string starts with one of the specified characters |
swap | swap overloads |
tag_invoke | tag_invoke overloads |
toBase16Str | Convert a SymbolID to a string |
toCamelCase | Convert a string to camelCase using ASCII letter rules. |
toKebabCase | Convert a string to kebab-case using ASCII letter rules. |
toLowerCase | toLowerCase overloads |
toPascalCase | Convert a string to PascalCase using ASCII letter rules. |
toSnakeCase | Convert a string to snake_case using ASCII letter rules. |
toString | toString overloads |
toUpperCase | toUpperCase overloads |
to_underlying | Return the value as its underlying type. |
topDownTraverse | Traverse a DocComment tree top-down (pre-order). |
trim | trim overloads |
visit | visit overloads |
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 |
| Name | Description |
|---|---|
splitLines | Split a string view into lines, recognizing all common line breaks |
unexpect | Tag object to request unexpected construction. |
| Name | Description |
|---|---|
ClearableContainerLike | Internal concept that matches “empty-clear default-constructible” types. |
DocCommentNode | Concept to check if a type represents a DocComment node. |
DocCommentNodeTraversable | Types that can be traversed by DocComment helpers. |
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 concept 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 | Like reference_converts_from_temporary_v, but for construction. |
reference_converts_from_temporary_v | True when binding To from From would require a temporary conversion. |
tuple_like | Concept to check if a type is tuple-like |
| Name | Description |
|---|---|
ArrayView<T> | Deduce ArrayView element type from C-style array. |
ArrayView<T> | Deduce ArrayView element type from pointer and count. |
Overload<Ts...> | Class template argument deduction guide for Overload. |
RangeFor<Container> | Deduction guide for RangeFor. |
ScopeExit<F> | Deduction guide for ScopeExit. |
ScopeExitRestore<T> | Deduction guide for ScopeExitRestore taking a reference. |
ScopeExitRestore<T> | Deduction guide for ScopeExitRestore taking a reference and new value. |
Unexpected<E> | Deduction guide for Unexpected, forwarding the error type. |
| Name | Description |
|---|---|
source_location | Alias to std::source_location when available. |
Doc-comment enums and helpers that describe admonition kinds.
| 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 | A composite block that stores a sequence of child blocks. |
BriefBlock | The brief description |
CodeBlock | Preformatted source code. |
CodeInline | Inline code (monospaced) used for short snippets within text. |
CopyDetailsInline | Documentation copied from another symbol. |
DefinitionListBlock | A list of terms paired with definitions. |
DefinitionListItem | An item in a definition list |
EmphInline | Emphasized text (typically rendered in italics). |
FootnoteDefinitionBlock | Text defining the content of a footnote reference. |
FootnoteReferenceInline | A reference to a symbol. |
HeadingBlock | A manually specified section heading. |
HighlightInline | Highlighted text span used to call out important words. |
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 ListBlock |
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 | Text describing conditions guaranteed on successful exit. |
PreconditionBlock | Text describing required conditions before entry. |
QuoteBlock | A quoted block of text. |
ReferenceInline | A reference to a symbol. |
ReturnsBlock | Documentation for a function return type |
SeeBlock | A |
SoftBreakInline | A line break that may render as a space |
StrikethroughInline | Strikethrough span to show removed or deprecated text. |
StrongInline | Strong emphasis span (typically rendered in bold). |
SubscriptInline | Subscript text fragment (lowered baseline). |
SuperscriptInline | Superscript text fragment (raised baseline). |
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 | A horizontal thematic break separating sections. |
ThrowsBlock | Documentation for a function exception clause |
| Name | Description |
|---|---|
AdmonitionKind | An admonishment style. |
BlockKind | Enumerates the different kinds of DocComment blocks. |
InlineKind | Enumerates the different kinds of inline nodes. |
ParamDirection | Parameter pass direction. |
Parts | Which parts of the documentation to copy. |
| Name | Description |
|---|---|
getAsPlainText | getAsPlainText overloads |
isBlockCommand | Return true if the given block kind represents a command block. |
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 delegates to the three-way comparison. |
operator<=> | Three-way comparison operators |
Objects representing JSON-like values.
| Name | Description |
|---|---|
JSON | JSON serialization helpers for DOM values. |
| Name | Description |
|---|---|
Array | An array of values |
ArrayImpl | Abstract array interface. |
DefaultArrayImpl | The default array implementation. |
DefaultFunctionImpl | Function implementation that wraps a fixed-arity callable. |
DefaultObjectImpl | The default Object implementation. |
Function | Value-semantic wrapper over a callable exposed to the DOM layer. |
FunctionImpl | Value-semantic wrapper over a callable exposed to the DOM layer. |
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 | UTF-8 string value used by the DOM. |
Value | A variant container for any kind of Dom value. |
ValueFromTag | Customization point tag. |
VariadicFunctionImpl | Function implementation that forwards the entire Array to a callable. |
function_traits | Helper traits to extract return and argument types from callables. |
function_traits<F> | Traits specialization for functors/lambdas. |
function_traits<R(*)(Args...)> | Traits specialization for function pointers. |
function_traits<R(Args...)> | Traits specialization for free functions. |
function_traits<R const volatile(C::*)(Args...)> | Traits specialization for member functions. |
| Name | Description |
|---|---|
Kind | The type of data in a Value. |
| 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 | Create a Function from a fixed-arity invocable. |
makeVariadicInvocable | Create a Function that receives the argument Array directly. |
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 |
| 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 | Concept selecting callables convertible to dom::Value. |
has_function_args_for_default_function_impl | Concept requiring all arguments be convertible to dom::Value. |
has_function_traits | Concept true when function_traits is defined for F. |
has_function_traits_for_default_function_impl | Concept combining argument and return constraints for default wrapper. |
has_invoke_expected_result_convertible_to_dom_value | Concept true when F returns Expected<dom::Value> or Expected<void>. |
has_invoke_result_convertible_to_dom_value | Concept true when F returns a dom::Value or void. |
has_invoke_result_for_default_function_impl | Concept enabling default function wrapper for supported return types. |
JSON serialization helpers for DOM values.
| Name | Description |
|---|---|
stringify | Stringify a value as JSON |
Filesystem helpers (join, temp, canonicalize) used throughout MrDocs.
| Name | Description |
|---|---|
FileType | The type of a file. |
| Name | Description |
|---|---|
appendPath | appendPath overloads |
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. |
Handlebars helper registry for templates.
| 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 |
JavaScript interop helpers for the embedded runtime.
| Name | Description |
|---|---|
Array | Lightweight handle to a JavaScript array. |
Boolean | Boolean wrapper for JavaScript values. |
Context | An isolated JavaScript interpreter instance. |
Object | Object wrapper for JavaScript values. |
Scope | A JavaScript scope for value lifetime management. |
String | String wrapper for JavaScript values. |
Value | An ECMAScript value. |
| Name | Description |
|---|---|
Type | Types of values. |
| 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. |
Lua interop helpers for the optional scripting/backend integration.
| Name | Description |
|---|---|
Access | Internal tag granting access to lua internals. |
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 | Stack scope guard for Lua calls. |
String | A Lua string. |
Table | A Lua table. |
Value | A Lua value. |
zstring | A null-terminated string. |
FunctionPtr | Pointer to a Lua-callable function returning Value. |
| Name | Description |
|---|---|
Type | Types of values. |
Reporting utilities (messages, statistics, sinks).
| Name | Description |
|---|---|
Located | Parameter type that adds a source location to a value. |
Results | Provides statistics on the number of reported messages. |
| Name | Description |
|---|---|
Level | Severity levels attached to reported messags. |
| Name | Description |
|---|---|
debug | Emit a debug-level diagnostic for troubleshooting. |
error | Emit an error that indicates failure but allows continuation. |
fatal | Emit a fatal error and mark the report as the highest severity. |
getMinimumLevel | Get the minimum threshold level for reporting. |
info | Emit an informational message for users. |
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 | Emit a trace-level diagnostic (verbose, off by default). |
warn | Emit a warning that does not stop execution. |
| Name | Description |
|---|---|
results | Holds current statistics on reported messages. |
Core MrDocs support utilities.
The public mrdocs namespace here centralizes assert/assume hooks so we can swap behavior (terminate, throw, debugbreak) in one place without leaking platform specifics into the rest of the codebase.
Doc-comment enums and helpers that describe admonition kinds.
Reporting utilities (messages, statistics, sinks).
The report namespace owns severity enums, message structs, and output sinks so tooling and libraries emit diagnostics in a uniform, testable format regardless of UI.
| Name | Description |
|---|---|
doc | Doc-comment enums and helpers that describe admonition kinds. |
dom | Objects representing JSON-like values. |
files | Filesystem helpers (join, temp, canonicalize) used throughout MrDocs. |
helpers | Handlebars helper registry for templates. |
js | JavaScript interop helpers for the embedded runtime. |
lua | Lua interop helpers for the optional scripting/backend integration. |
report | Reporting utilities (messages, statistics, sinks). |
| Name | Description |
|---|---|
AnyFileVisitor | Polymorphic visitor for files discovered during traversal. |
ArrayType | C++ array type (bounded or unbounded). |
ArrayView | A non-owning, read-only view over a contiguous array of T. |
AutoType | Represents auto or decltype(auto) placeholder type. |
BadExpectedAccess | Base class for accessing an empty Expected. |
BadExpectedAccess<void> | Exception thrown when reading the value of an empty Expected. |
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 | Non-type template argument. |
ConstantTParam | A constant template parameter |
Corpus | The collection of declarations in extracted form. |
DecltypeType | decltype(expr) type wrapper. |
DocComment | A processed documentation comment attached to a declaration. |
DomCorpus | Front-end factory for producing Dom nodes. |
EnumConstantSymbol | Info for enum constants. |
EnumSymbol | Metadata for an enumeration declaration. |
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 | Base class that owns a pool of execution agents and a shared work queue. |
Expected | A container holding an error or a value. |
Expected<T, E> | Expected specialization for void values. Holds either success (no payload) or an unexpected error E. |
Expected<T&, E> | Expected specialization for lvalue references. Holds either a bound reference to T or an unexpected error 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 | Metadata for a function or method. |
FunctionType | Function type with parameters, qualifiers, and noexcept info. |
Generator | Base class for documentation generators. |
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 | An lvalue reference type. |
Location | Source location of a symbol or entity. |
MemberPointerType | Pointer-to-member type (object or function). |
Name | Represents a name for a named Type |
NamedType | A type identified by name (possibly fundamental). |
NamespaceAliasSymbol | Info for namespace aliases. |
NamespaceSymbol | Describes a namespace and its members. |
NamespaceTranche | Buckets the members that appear inside a namespace. |
NoexceptInfo | Captures a noexcept specification and its evaluated form. |
Optional | A compact optional that automatically uses nullable_traits<T> when available. |
Optional<T&> | Optional reference wrapper that never owns storage. |
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 | Pointer type wrapper. |
Polymorphic | A polymorphic value-type. |
RValueReferenceType | An rvalue reference type. |
RangeFor | Range adapter to expose first/last flags inside range-for loops. |
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 | Execute a callable when the enclosing scope exits unless dismissed. |
ScopeExitRestore | RAII helper that restores a referenced value on scope exit. |
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 | Range adaptor that constructs a SplitLinesView. |
SplitLinesView | A lazy input range of std::string_view lines split on all known line breaks. |
StringHash | Transparent hash functor for string-like keys. |
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 | Base class for any template argument. |
TArgCommonBase | CRTP base that fixes the argument kind. |
TParam | Base class for a template parameter declaration. |
TParamCommonBase | CRTP base that fixes the parameter kind. |
TaskGroup | A subset of possible work in a thread pool. |
TemplateInfo | Information about templates and specializations thereof. |
TemplateTArg | Template template argument. |
TemplateTParam | Template template parameter. |
ThreadPool | A pool of threads for executing work concurrently. |
Type | A possibly qualified type. |
TypeCommonBase | CRTP base that ties a concrete type to a fixed TypeKind. |
TypeTArg | Type template argument. |
TypeTParam | Type template parameter. |
TypedefSymbol | Info for typedef and using declarations. |
Unexpected | Holds an unexpected error value for Expected. |
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 | Propagate const qualification from From to To, keeping references. |
add_cv_from | Propagate both const and volatile qualifiers from From to To. |
add_cvref_from | Propagate cv-qualification and reference category from From to To. |
add_lvalue_reference_from | Propagate lvalue-reference from From to To if present. |
add_reference_from | Propagate reference qualification from From to To. |
add_rvalue_reference_from | Propagate rvalue-reference from From to To if present. |
add_volatile_from | Propagate volatile qualification from From to To, keeping references. |
any_callable | A movable, type-erased function object. |
any_callable<R(Args...)> | Type-erased callable wrapper for signature R(Args...). |
make_dependent | Dependent alias of T, useful for delaying instantiation. |
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 | Tag type used to select unexpected construction. |
unlock_guard | A scoped guard which unlocks a mutex. |
UnorderedStringMap | unordered_map keyed by std::string with transparent hashing. |
UnorderedStringMultiMap | unordered_multimap keyed by std::string with transparent hashing. |
add_const_from_t | Alias for add_const_from<From, To>::type. |
add_cv_from_t | Alias for add_cv_from<From, To>::type. |
add_cvref_from_t | Alias for add_cvref_from<From, To>::type. |
add_lvalue_reference_from_t | Alias for add_lvalue_reference_from<From, To>::type. |
add_reference_from_t | Alias for add_reference_from<From, To>::type. |
add_rvalue_reference_from_t | Alias for add_rvalue_reference_from<From, To>::type. |
add_volatile_from_t | Alias for add_volatile_from<From, To>::type. |
make_dependent_t | Alias for make_dependent<T, U>::type. |
| 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 | Classifies where a file originates from. |
FunctionClass | Function classifications |
FundamentalTypeKind | Categorically describes a fundamental type. |
ListKind | Classification of list ordering. |
NameKind | Kinds of names that appear in type and symbol metadata. |
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 | Discriminates the different template parameter categories. |
TableAlignmentKind | Horizontal alignment for table columns. |
TemplateSpecKind | The kind of template or specialization. |
TypeKind | Variants of C++ types captured in metadata. |
UsingClass | The class of using declaration. |
| Name | Description |
|---|---|
CompareDerived | Compares two polymorphic objects that have visit functions |
HTMLEscape | HTMLEscape overloads |
addMember | Append a new function overload to the set. |
allMembers | allMembers overloads |
assert_failed | Handler invoked when MRDOCS_ASSERT fails. |
bottomUpTraverse | Traverse a DocComment tree bottom-up (post-order). |
canMerge | Check whether two symbols may be merged. |
cast | cast overloads |
cast_or_null | cast_or_null overloads |
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 | Count the number of SymbolKind enumerators. |
createFrame | Create child data objects. |
dyn_cast | dyn_cast overloads |
dyn_cast_or_null | dyn_cast_or_null overloads |
endsWithOneOf | Determine if a string ends with one of the specified characters |
escapeExpression | |
findGenerator | Find a generator by its id. |
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 | Return the default accessibility for a record key kind. |
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 | getPrimaryLocation overloads |
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 | innermostType overloads |
installGenerator | Install a custom generator. |
isAlphaNumeric | isAlphaNumeric overloads |
isAlphabetic | isAlphabetic overloads |
isBinaryOperator | Determines whether the operator is potentially binary. |
isDigit | isDigit overloads |
isEmpty | Determine if a value is empty |
isLowerCase | isLowerCase overloads |
isUnaryOperator | Determines whether the operator is potentially unary. |
isUpperCase | isUpperCase overloads |
isWhitespace | isWhitespace overloads |
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 | Return true if the polymorphic object holds a value of type To. |
isa_or_null | Return true if pointer is non-null and referent is of type To. |
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_array_view overloads |
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| | Pipe a contiguous character range into the adaptor. |
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 | safeString overloads |
startsWithOneOf | Determine if a string starts with one of the specified characters |
swap | swap overloads |
tag_invoke | tag_invoke overloads |
toBase16Str | Convert a SymbolID to a string |
toCamelCase | Convert a string to camelCase using ASCII letter rules. |
toKebabCase | Convert a string to kebab-case using ASCII letter rules. |
toLowerCase | toLowerCase overloads |
toPascalCase | Convert a string to PascalCase using ASCII letter rules. |
toSnakeCase | Convert a string to snake_case using ASCII letter rules. |
toString | toString overloads |
toUpperCase | toUpperCase overloads |
to_underlying | Return the value as its underlying type. |
topDownTraverse | Traverse a DocComment tree top-down (pre-order). |
trim | trim overloads |
visit | visit overloads |
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 |
| Name | Description |
|---|---|
splitLines | Split a string view into lines, recognizing all common line breaks |
unexpect | Tag object to request unexpected construction. |
| Name | Description |
|---|---|
ClearableContainerLike | Internal concept that matches “empty-clear default-constructible” types. |
DocCommentNode | Concept to check if a type represents a DocComment node. |
DocCommentNodeTraversable | Types that can be traversed by DocComment helpers. |
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 concept 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 | Like reference_converts_from_temporary_v, but for construction. |
reference_converts_from_temporary_v | True when binding To from From would require a temporary conversion. |
tuple_like | Concept to check if a type is tuple-like |
| Name | Description |
|---|---|
ArrayView<T> | Deduce ArrayView element type from C-style array. |
ArrayView<T> | Deduce ArrayView element type from pointer and count. |
Overload<Ts...> | Class template argument deduction guide for Overload. |
RangeFor<Container> | Deduction guide for RangeFor. |
ScopeExit<F> | Deduction guide for ScopeExit. |
ScopeExitRestore<T> | Deduction guide for ScopeExitRestore taking a reference. |
ScopeExitRestore<T> | Deduction guide for ScopeExitRestore taking a reference and new value. |
Unexpected<E> | Deduction guide for Unexpected, forwarding the error type. |
| Name | Description |
|---|---|
source_location | Alias to std::source_location when available. |
Doc-comment enums and helpers that describe admonition kinds.
| 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 | A composite block that stores a sequence of child blocks. |
BriefBlock | The brief description |
CodeBlock | Preformatted source code. |
CodeInline | Inline code (monospaced) used for short snippets within text. |
CopyDetailsInline | Documentation copied from another symbol. |
DefinitionListBlock | A list of terms paired with definitions. |
DefinitionListItem | An item in a definition list |
EmphInline | Emphasized text (typically rendered in italics). |
FootnoteDefinitionBlock | Text defining the content of a footnote reference. |
FootnoteReferenceInline | A reference to a symbol. |
HeadingBlock | A manually specified section heading. |
HighlightInline | Highlighted text span used to call out important words. |
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 ListBlock |
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 | Text describing conditions guaranteed on successful exit. |
PreconditionBlock | Text describing required conditions before entry. |
QuoteBlock | A quoted block of text. |
ReferenceInline | A reference to a symbol. |
ReturnsBlock | Documentation for a function return type |
SeeBlock | A |
SoftBreakInline | A line break that may render as a space |
StrikethroughInline | Strikethrough span to show removed or deprecated text. |
StrongInline | Strong emphasis span (typically rendered in bold). |
SubscriptInline | Subscript text fragment (lowered baseline). |
SuperscriptInline | Superscript text fragment (raised baseline). |
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 | A horizontal thematic break separating sections. |
ThrowsBlock | Documentation for a function exception clause |
| Name | Description |
|---|---|
AdmonitionKind | An admonishment style. |
BlockKind | Enumerates the different kinds of DocComment blocks. |
InlineKind | Enumerates the different kinds of inline nodes. |
ParamDirection | Parameter pass direction. |
Parts | Which parts of the documentation to copy. |
| Name | Description |
|---|---|
getAsPlainText | getAsPlainText overloads |
isBlockCommand | Return true if the given block kind represents a command block. |
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 delegates to the three-way comparison. |
operator<=> | Three-way comparison operators |
A block for side-notes like tips, warnings, notes
<mrdocs/Metadata/DocComment/Block/AdmonitionBlock.hpp>struct AdmonitionBlock final
: BlockCommonBase<BlockKind::Admonition>
, BlockContainer
This paragraph represents an admonition, such as a note, tip, important, caution, or warning.
Syntax:
@note text
| Name | Description |
|---|---|
BlockCommonBase<BlockKind::Admonition> | Base class for providing variant discriminator functions. |
BlockContainer | A composite block that stores a sequence of child blocks. |
| Name | Description |
|---|---|
AdmonitionBlock [constructor] | Construct an admonition with the given kind. |
asBlockContainer | asBlockContainer overloads |
operator== | Equality operators |
operator<=> | Three-way comparison operators |
| Name | Description |
|---|---|
Title | Optional title for the admonition |
admonish | The kind of admonition |
blocks | Child blocks contained within this composite block. |
| Name |
|---|
kind_id |
| 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 |
Construct an admonition with the given kind.
<mrdocs/Metadata/DocComment/Block/AdmonitionBlock.hpp>explicit
AdmonitionBlock(AdmonitionKind const admonish_ = AdmonitionKind::none) noexcept;
| Name | Description |
|---|---|
| admonish_ | The object to construct from |
Equality operators
<mrdocs/Metadata/DocComment/Block/AdmonitionBlock.hpp>Equality compares the admonition contents.
constexpr
bool
operator==(AdmonitionBlock const& rhs) const noexcept = default;
» more...
Equality compares the stored child blocks.
constexpr
bool
operator==(BlockContainer const& rhs) const = default;
» more...
Equality compares the admonition contents.
<mrdocs/Metadata/DocComment/Block/AdmonitionBlock.hpp>constexpr
bool
operator==(AdmonitionBlock const& rhs) const noexcept = default;
true if the objects are equal, false otherwise
| Name | Description |
|---|---|
| rhs | The right operand |
Equality compares the stored child blocks.
<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>constexpr
bool
operator==(BlockContainer const& rhs) const = default;
true if the objects are equal, false otherwise
| Name | Description |
|---|---|
| rhs | The right operand |
Three-way comparison operators
<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>Compare admonitions by kind, title, and contents.
auto
operator<=>(AdmonitionBlock const& rhs) const = default;
» more...
Three-way comparison operator
constexpr
auto
operator<=>(BlockCommonBase<mrdocs::doc::BlockKind::Admonition> const& rhs) const = default;
» more...
Order containers lexicographically by their children.
std::strong_ordering
operator<=>(BlockContainer const& rhs) const;
» more...
Compare admonitions by kind, title, and contents.
<mrdocs/Metadata/DocComment/Block/AdmonitionBlock.hpp>auto
operator<=>(AdmonitionBlock const& rhs) const = default;
| Name | Description |
|---|---|
| rhs | The right operand |
Three-way comparison operator
<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>constexpr
auto
operator<=>(BlockCommonBase<mrdocs::doc::BlockKind::Admonition> const& rhs) const = default;
| Name | Description |
|---|---|
| rhs | The right operand |
Order containers lexicographically by their children.
<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>std::strong_ordering
operator<=>(BlockContainer const& rhs) const;
| Name | Description |
|---|---|
| rhs | The right operand |
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isAdmonition() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isBrief() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isCode() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isDefinitionList() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isFootnoteDefinition() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isHeading() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isList() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isMath() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isParagraph() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>constexpr
static
bool
isParam() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>constexpr
static
bool
isPostcondition() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>constexpr
static
bool
isPrecondition() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isQuote() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>constexpr
static
bool
isReturns() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>constexpr
static
bool
isSee() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>constexpr
static
bool
isTParam() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isTable() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isThematicBreak() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>constexpr
static
bool
isThrows() noexcept;
Optional title for the admonition
<mrdocs/Metadata/DocComment/Block/AdmonitionBlock.hpp>Optional<Polymorphic<Inline>> Title;
The kind of admonition
<mrdocs/Metadata/DocComment/Block/AdmonitionBlock.hpp>AdmonitionKind admonish;
This is typically a string in other implementations.
<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>constexpr static
BlockKind kind_id;
A piece of block content
<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>struct Block;
The top level is a list of blocks.
There are two types of blocks: headings and paragraphs.
| Name | Description |
|---|---|
~Block [destructor] [virtual] | Virtual to allow deleting through a base pointer. |
asBlock | asBlock overloads |
operator== | Equality compares the block contents. |
operator<=> | Three-way comparison on the block contents. |
| Name | Description |
|---|---|
Kind | Discriminator identifying which concrete block this instance holds. |
| Name | Description |
|---|---|
Block [constructor] | Constructors |
| 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. |
| Name | Description |
|---|---|
BlockCommonBase
| Base class for providing variant discriminator functions. |
Virtual to allow deleting through a base pointer.
<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>constexpr
virtual
~Block() = default;
asBlock overloads
<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>View this object as a Block reference.
constexpr
Block const&
asBlock() const noexcept;
» more...
View this object as a mutable Block reference.
constexpr
Block&
asBlock() noexcept;
» more...
View this object as a Block reference.
<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>constexpr
Block const&
asBlock() const noexcept;
View this object as a mutable Block reference.
<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>constexpr
Block&
asBlock() noexcept;
Equality compares the block contents.
<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>constexpr
bool
operator==(Block const& other) const noexcept = default;
true if the objects are equal, false otherwise
| Name | Description |
|---|---|
| other | The right operand |
Three-way comparison on the block contents.
<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>constexpr
auto
operator<=>(Block const& other) const = default;
| Name | Description |
|---|---|
| other | The right operand |
Discriminator identifying which concrete block this instance holds.
<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>BlockKind Kind = BlockKind::Paragraph;
Constructors
<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>Default-construct a paragraph block.
constexpr
Block() = default;
» more...
Construct a block with the specified discriminant.
explicit
Block(BlockKind const kind_) noexcept;
» more...
Default-construct a paragraph block.
<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>constexpr
Block() = default;
Construct a block with the specified discriminant.
<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>explicit
Block(BlockKind const kind_) noexcept;
| Name | Description |
|---|---|
| kind_ | The object to construct from |
Base class for providing variant discriminator functions.
<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>template<BlockKind K>
struct BlockCommonBase
: Block
This offers functions that return a boolean at compile-time, indicating if the most-derived class is a certain type.
| Name | Description |
|---|---|
Block | A piece of block content |
| Name | Description |
|---|---|
~BlockCommonBase [destructor] [virtual] | Virtual to keep dynamic dispatch working for block hierarchies. |
asBlock | asBlock overloads |
operator== | Equality compares the block contents. |
operator<=> | Three-way comparison operators |
| Name | Description |
|---|---|
Kind | Discriminator identifying which concrete block this instance holds. |
| Name | Description |
|---|---|
kind_id | The variant discriminator constant of the most-derived class. |
| Name | Description |
|---|---|
BlockCommonBase [constructor] | Construct with the fixed block kind. |
| 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. |
| Name | Description |
|---|---|
AdmonitionBlock
| A block for side-notes like tips, warnings, notes |
BriefBlock
| The brief description |
CodeBlock
| Preformatted source code. |
DefinitionListBlock
| A list of terms paired with definitions. |
FootnoteDefinitionBlock
| Text defining the content of a footnote reference. |
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
| Text describing conditions guaranteed on successful exit. |
PreconditionBlock
| Text describing required conditions before entry. |
QuoteBlock
| A quoted block of text. |
ReturnsBlock
| Documentation for a function return type |
SeeBlock
| A |
TParamBlock
| Documentation for a template parameter |
TableBlock
| A table block |
ThematicBreakBlock
| A horizontal thematic break separating sections. |
ThrowsBlock
| Documentation for a function exception clause |
Virtual to keep dynamic dispatch working for block hierarchies.
<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>virtual
~BlockCommonBase() override = default;
Three-way comparison operators
<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>Compare two blocks that share the same kind_id.
auto
operator<=>(BlockCommonBase const& rhs) const = default;
» more...
Three-way comparison on the block contents.
constexpr
auto
operator<=>(Block const& other) const = default;
» more...
Compare two blocks that share the same kind_id.
<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>auto
operator<=>(BlockCommonBase const& rhs) const = default;
| Name | Description |
|---|---|
| rhs | The right operand |
Three-way comparison on the block contents.
<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>constexpr
auto
operator<=>(Block const& other) const = default;
| Name | Description |
|---|---|
| other | The right operand |
The variant discriminator constant of the most-derived class.
<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>inline constexpr static
BlockKind kind_id = K;
It only distinguishes from Block::kind in that it is a constant.
Construct with the fixed block kind.
<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>constexpr
explicit
BlockCommonBase();
A composite block that stores a sequence of child blocks.
<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>struct BlockContainer;
| Name | Description |
|---|---|
asBlockContainer | asBlockContainer overloads |
operator== | Equality compares the stored child blocks. |
operator<=> | Order containers lexicographically by their children. |
| Name | Description |
|---|---|
blocks | Child blocks contained within this composite block. |
| 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 |
| Name | Description |
|---|---|
AdmonitionBlock
| A block for side-notes like tips, warnings, notes |
DefinitionListItem
| An item in a definition list |
FootnoteDefinitionBlock
| Text defining the content of a footnote reference. |
ListItem
| An item in a ListBlock |
QuoteBlock
| A quoted block of text. |
asBlockContainer overloads
<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>Access the container as a mutable view.
BlockContainer&
asBlockContainer();
» more...
Access the container as a const view.
BlockContainer const&
asBlockContainer() const;
» more...
Access the container as a mutable view.
<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>BlockContainer&
asBlockContainer();
Access the container as a const view.
<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>BlockContainer const&
asBlockContainer() const;
Equality compares the stored child blocks.
<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>constexpr
bool
operator==(BlockContainer const& rhs) const = default;
true if the objects are equal, false otherwise
| Name | Description |
|---|---|
| rhs | The right operand |
Order containers lexicographically by their children.
<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>std::strong_ordering
operator<=>(BlockContainer const& rhs) const;
| Name | Description |
|---|---|
| rhs | The right operand |
Child blocks contained within this composite block.
<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>std::vector<Polymorphic<Block>> blocks;
The brief description
<mrdocs/Metadata/DocComment/Block/BriefBlock.hpp>struct BriefBlock final
: BlockCommonBase<BlockKind::Brief>
, InlineContainer
Syntax:
@brief summary
| Name | Description |
|---|---|
BlockCommonBase<BlockKind::Brief> | Base class for providing variant discriminator functions. |
InlineContainer | An internal node in the inline element tree. |
| Name | Description |
|---|---|
BriefBlock [constructor] | Constructors |
operator= | Assignment operators |
append | append overloads |
asInlineContainer | Return this container as a base-class reference. |
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 in-place. |
empty | Determine if there are no inline children. |
end | End iterator forwarding to children. |
erase | Erase inline children. |
front | Get the first inline child. |
insert | Insert inline children. |
operator+= | Addition assignment operators |
size | Get the number of inline children. |
operator== | Equality compares child sequences. |
operator<=> | Three-way comparison operators |
| Name | Description |
|---|---|
children | Child inline elements contained here. |
copiedFrom | Names of declarations whose brief text was reused. |
| Name |
|---|
kind_id |
| Name | Description |
|---|---|
BriefBlock | Inherit inline container constructors. |
operator= | Reuse inline container assignment operators. |
| 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
<mrdocs/Metadata/DocComment/Block/BriefBlock.hpp>Create an empty brief.
constexpr
BriefBlock() = default;
» more...
Copy-construct from another brief.
constexpr
BriefBlock(BriefBlock const& other) = default;
» more...
Create an empty brief.
<mrdocs/Metadata/DocComment/Block/BriefBlock.hpp>constexpr
BriefBlock() = default;
Copy-construct from another brief.
<mrdocs/Metadata/DocComment/Block/BriefBlock.hpp>constexpr
BriefBlock(BriefBlock const& other) = default;
| Name | Description |
|---|---|
| other | The object to copy construct from |
Assignment operators
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>Copy-assign another brief.
constexpr
BriefBlock&
operator=(BriefBlock const& other) = default;
» more...
Copy-assign child nodes.
constexpr
InlineContainer&
operator=(InlineContainer const& other) = default;
» more...
Move-assign child nodes.
constexpr
InlineContainer&
operator=(InlineContainer&& other) noexcept = default;
» more...
Assign an InlineContainer with a single TextInline child.
InlineContainer&
operator=(std::string_view text);
» more...
Copy-assign another brief.
<mrdocs/Metadata/DocComment/Block/BriefBlock.hpp>constexpr
BriefBlock&
operator=(BriefBlock const& other) = default;
| Name | Description |
|---|---|
| other | The object to copy assign from |
Copy-assign child nodes.
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>constexpr
InlineContainer&
operator=(InlineContainer const& other) = default;
| Name | Description |
|---|---|
| other | The object to copy assign from |
Move-assign child nodes.
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>constexpr
InlineContainer&
operator=(InlineContainer&& other) noexcept = default;
| Name | Description |
|---|---|
| other | The object to move assign from |
Assign an InlineContainer with a single TextInline child.
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>InlineContainer&
operator=(std::string_view text);
| Name | Description |
|---|---|
| text | The object to assign from |
Three-way comparison operators
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>Compare briefs by inline content and provenance.
auto
operator<=>(BriefBlock const& rhs) const = default;
» more...
Three-way comparison operator
constexpr
auto
operator<=>(BlockCommonBase<mrdocs::doc::BlockKind::Brief> const& rhs) const = default;
» more...
Compare two InlineContainers.
std::strong_ordering
operator<=>(InlineContainer const& rhs) const;
» more...
Compare briefs by inline content and provenance.
<mrdocs/Metadata/DocComment/Block/BriefBlock.hpp>auto
operator<=>(BriefBlock const& rhs) const = default;
| Name | Description |
|---|---|
| rhs | The right operand |
Three-way comparison operator
<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>constexpr
auto
operator<=>(BlockCommonBase<mrdocs::doc::BlockKind::Brief> const& rhs) const = default;
| Name | Description |
|---|---|
| rhs | The right operand |
Compare two InlineContainers.
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>std::strong_ordering
operator<=>(InlineContainer const& rhs) const;
| Name | Description |
|---|---|
| rhs | The right operand |
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isAdmonition() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isBrief() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isCode() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isDefinitionList() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isFootnoteDefinition() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isHeading() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isList() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isMath() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isParagraph() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>constexpr
static
bool
isParam() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>constexpr
static
bool
isPostcondition() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>constexpr
static
bool
isPrecondition() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isQuote() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>constexpr
static
bool
isReturns() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>constexpr
static
bool
isSee() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>constexpr
static
bool
isTParam() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isTable() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isThematicBreak() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>constexpr
static
bool
isThrows() noexcept;
Names of declarations whose brief text was reused.
<mrdocs/Metadata/DocComment/Block/BriefBlock.hpp>std::vector<std::string> copiedFrom;
<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>constexpr static
BlockKind kind_id;
Inherit inline container constructors.
<mrdocs/Metadata/DocComment/Block/BriefBlock.hpp>using InlineContainer::BriefBlock;
| 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-construct child nodes. |
| mrdocs::doc::InlineContainer::InlineContainer | Copy-construct all child nodes. |
Reuse inline container assignment operators.
<mrdocs/Metadata/DocComment/Block/BriefBlock.hpp>using InlineContainer::operator=;
| Name | Description |
|---|---|
| mrdocs::doc::InlineContainer::operator= | Assign an InlineContainer with a single TextInline child. |
| mrdocs::doc::InlineContainer::operator= | Move-assign child nodes. |
| mrdocs::doc::InlineContainer::operator= | Copy-assign child nodes. |
Preformatted source code.
<mrdocs/Metadata/DocComment/Block/CodeBlock.hpp>struct CodeBlock final
: BlockCommonBase<BlockKind::Code>
| Name | Description |
|---|---|
BlockCommonBase<BlockKind::Code> | Base class for providing variant discriminator functions. |
| Name | Description |
|---|---|
CodeBlock [constructor] | Construct an empty code block. |
operator== | Equality compares literal and info string. |
operator<=> | Compare code blocks by literal and info string. |
| Name | Description |
|---|---|
info | Fence info string, e.g. "cpp" |
literal | Raw code text inside the fenced block. |
| Name |
|---|
kind_id |
| 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. |
Construct an empty code block.
<mrdocs/Metadata/DocComment/Block/CodeBlock.hpp>constexpr
CodeBlock() noexcept = default;
Equality compares literal and info string.
<mrdocs/Metadata/DocComment/Block/CodeBlock.hpp>constexpr
bool
operator==(CodeBlock const& rhs) const noexcept = default;
true if the objects are equal, false otherwise
| Name | Description |
|---|---|
| rhs | The right operand |
Compare code blocks by literal and info string.
<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>Compare code blocks by literal and info string.
constexpr
auto
operator<=>(CodeBlock const& rhs) const = default;
» more...
Three-way comparison operator
constexpr
auto
operator<=>(BlockCommonBase<mrdocs::doc::BlockKind::Code> const& rhs) const = default;
» more...
Compare code blocks by literal and info string.
<mrdocs/Metadata/DocComment/Block/CodeBlock.hpp>constexpr
auto
operator<=>(CodeBlock const& rhs) const = default;
| Name | Description |
|---|---|
| rhs | The right operand |
Three-way comparison operator
<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>constexpr
auto
operator<=>(BlockCommonBase<mrdocs::doc::BlockKind::Code> const& rhs) const = default;
| Name | Description |
|---|---|
| rhs | The right operand |
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isAdmonition() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isBrief() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isCode() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isDefinitionList() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isFootnoteDefinition() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isHeading() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isList() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isMath() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isParagraph() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>constexpr
static
bool
isParam() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>constexpr
static
bool
isPostcondition() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>constexpr
static
bool
isPrecondition() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isQuote() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>constexpr
static
bool
isReturns() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>constexpr
static
bool
isSee() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>constexpr
static
bool
isTParam() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isTable() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isThematicBreak() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>constexpr
static
bool
isThrows() noexcept;
Fence info string, e.g. "cpp"
<mrdocs/Metadata/DocComment/Block/CodeBlock.hpp>std::string info;
Raw code text inside the fenced block.
<mrdocs/Metadata/DocComment/Block/CodeBlock.hpp>std::string literal;
<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>constexpr static
BlockKind kind_id;
Inline code (monospaced) used for short snippets within text.
<mrdocs/Metadata/DocComment/Inline/CodeInline.hpp>struct CodeInline final
: InlineCommonBase<InlineKind::Code>
, InlineContainer
Syntax:
@c inline_code
or
`inline_code`
| Name | Description |
|---|---|
InlineCommonBase<InlineKind::Code> | Base class for providing variant discriminator functions. |
InlineContainer | An internal node in the inline element tree. |
| Name | Description |
|---|---|
operator= | Assignment operators |
append | append overloads |
asInlineContainer | Return this container as a base-class reference. |
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 in-place. |
empty | Determine if there are no inline children. |
end | End iterator forwarding to children. |
erase | Erase inline children. |
front | Get the first inline child. |
insert | Insert inline children. |
operator+= | Addition assignment operators |
size | Get the number of inline children. |
operator== | Equality operators |
operator<=> | Three-way comparison operators |
| Name |
|---|
isCode |
isCopyDetails |
isEmph |
isFootnoteReference |
isHighlight |
isImage |
isLineBreak |
isLink |
isMath |
isReference |
isSoftBreak |
isStrikethrough |
isStrong |
isSubscript |
isSuperscript |
isText |
| Name | Description |
|---|---|
children | Child inline elements contained here. |
| Name |
|---|
kind_id |
| Name | Description |
|---|---|
CodeInline | Inherit inline container constructors. |
| 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. |
Equality operators
<mrdocs/Metadata/DocComment/Inline/CodeInline.hpp>Equality compares inline content.
constexpr
bool
operator==(CodeInline const& rhs) const noexcept = default;
» more...
Equality compares child sequences.
constexpr
bool
operator==(InlineContainer const& rhs) const = default;
» more...
Equality compares inline content.
<mrdocs/Metadata/DocComment/Inline/CodeInline.hpp>constexpr
bool
operator==(CodeInline const& rhs) const noexcept = default;
true if the objects are equal, false otherwise
| Name | Description |
|---|---|
| rhs | The right operand |
Equality compares child sequences.
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>constexpr
bool
operator==(InlineContainer const& rhs) const = default;
true if the objects are equal, false otherwise
| Name | Description |
|---|---|
| rhs | The right operand |
Three-way comparison operators
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>Order inline code by literal content.
auto
operator<=>(CodeInline const& rhs) const = default;
» more...
Three-way comparison operator
constexpr
auto
operator<=>(InlineCommonBase<mrdocs::doc::InlineKind::Code> const& rhs) const = default;
» more...
Compare two InlineContainers.
std::strong_ordering
operator<=>(InlineContainer const& rhs) const;
» more...
Order inline code by literal content.
<mrdocs/Metadata/DocComment/Inline/CodeInline.hpp>auto
operator<=>(CodeInline const& rhs) const = default;
| Name | Description |
|---|---|
| rhs | The right operand |
Three-way comparison operator
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>constexpr
auto
operator<=>(InlineCommonBase<mrdocs::doc::InlineKind::Code> const& rhs) const = default;
| Name | Description |
|---|---|
| rhs | The right operand |
Compare two InlineContainers.
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>std::strong_ordering
operator<=>(InlineContainer const& rhs) const;
| Name | Description |
|---|---|
| rhs | The right operand |
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isCode() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isCopyDetails() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isEmph() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isFootnoteReference() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isHighlight() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isImage() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isLineBreak() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isLink() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isMath() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isReference() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isSoftBreak() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isStrikethrough() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isStrong() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isSubscript() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isSuperscript() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isText() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>constexpr static
InlineKind kind_id;
Inherit inline container constructors.
<mrdocs/Metadata/DocComment/Inline/CodeInline.hpp>using InlineContainer::CodeInline;
| 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-construct child nodes. |
| mrdocs::doc::InlineContainer::InlineContainer | Copy-construct all child nodes. |
Documentation copied from another symbol.
<mrdocs/Metadata/DocComment/Inline/CopyDetailsInline.hpp>struct CopyDetailsInline final
: InlineCommonBase<InlineKind::CopyDetails>
Syntax:
@copydetails other_symbol
| Name | Description |
|---|---|
InlineCommonBase<InlineKind::CopyDetails> | Base class for providing variant discriminator functions. |
| Name | Description |
|---|---|
CopyDetailsInline [constructor] | Construct with optional text payload. |
operator== | Equality compares text and symbol id. |
operator<=> | Order copy directives by text and symbol id. |
| Name |
|---|
isCode |
isCopyDetails |
isEmph |
isFootnoteReference |
isHighlight |
isImage |
isLineBreak |
isLink |
isMath |
isReference |
isSoftBreak |
isStrikethrough |
isStrong |
isSubscript |
isSuperscript |
isText |
| Name | Description |
|---|---|
id | Symbol to copy details from. |
string | Element to copy the details from |
| Name |
|---|
kind_id |
| 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 with optional text payload.
<mrdocs/Metadata/DocComment/Inline/CopyDetailsInline.hpp>CopyDetailsInline(std::string string_ = std::string()) noexcept;
| Name | Description |
|---|---|
| string_ | The object to construct from |
Equality compares text and symbol id.
<mrdocs/Metadata/DocComment/Inline/CopyDetailsInline.hpp>constexpr
bool
operator==(CopyDetailsInline const& rhs) const noexcept = default;
true if the objects are equal, false otherwise
| Name | Description |
|---|---|
| rhs | The right operand |
Order copy directives by text and symbol id.
<mrdocs/Metadata/DocComment/Inline/CopyDetailsInline.hpp>Order copy directives by text and symbol id.
auto
operator<=>(CopyDetailsInline const& rhs) const = default;
» more...
Three-way comparison operator
constexpr
auto
operator<=>(InlineCommonBase<mrdocs::doc::InlineKind::CopyDetails> const& rhs) const = default;
» more...
Order copy directives by text and symbol id.
<mrdocs/Metadata/DocComment/Inline/CopyDetailsInline.hpp>auto
operator<=>(CopyDetailsInline const& rhs) const = default;
| Name | Description |
|---|---|
| rhs | The right operand |
Three-way comparison operator
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>constexpr
auto
operator<=>(InlineCommonBase<mrdocs::doc::InlineKind::CopyDetails> const& rhs) const = default;
| Name | Description |
|---|---|
| rhs | The right operand |
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isCode() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isCopyDetails() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isEmph() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isFootnoteReference() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isHighlight() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isImage() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isLineBreak() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isLink() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isMath() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isReference() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isSoftBreak() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isStrikethrough() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isStrong() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isSubscript() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isSuperscript() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isText() noexcept;
Symbol to copy details from.
<mrdocs/Metadata/DocComment/Inline/CopyDetailsInline.hpp>SymbolID id = = SymbolID::invalid;
Element to copy the details from
<mrdocs/Metadata/DocComment/Inline/CopyDetailsInline.hpp>std::string string;
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>constexpr static
InlineKind kind_id;
A list of terms paired with definitions.
<mrdocs/Metadata/DocComment/Block/DefinitionListBlock.hpp>struct DefinitionListBlock final
: BlockCommonBase<BlockKind::List>
Syntax:
Markdown
: A lightweight markup language
: Created by John Gruber in 2004
HTML
: A standard markup language used to create web pages
: Used for structuring content on the internet
In HTML, it looks like:
<dl>
<dt>First Term</dt>
<dd>This is the definition of the first term.</dd>
<dt>Second Term</dt>
<dd>This is one definition of the second term. </dd>
<dd>This is another definition of the second term.</dd>
</dl>
| Name | Description |
|---|---|
BlockCommonBase<BlockKind::List> | Base class for providing variant discriminator functions. |
| Name | Description |
|---|---|
operator== | Equality compares the contained items. |
operator<=> | Order items and their definitions lexicographically. |
| Name | Description |
|---|---|
items | Sequence of definition list items. |
| Name |
|---|
kind_id |
| 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 compares the contained items.
<mrdocs/Metadata/DocComment/Block/DefinitionListBlock.hpp>constexpr
bool
operator==(DefinitionListBlock const& rhs) const noexcept = default;
true if the objects are equal, false otherwise
| Name | Description |
|---|---|
| rhs | The right operand |
Order items and their definitions lexicographically.
<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>Order items and their definitions lexicographically.
auto
operator<=>(DefinitionListBlock const& other) const;
» more...
Three-way comparison operator
constexpr
auto
operator<=>(BlockCommonBase<mrdocs::doc::BlockKind::List> const& rhs) const = default;
» more...
Order items and their definitions lexicographically.
<mrdocs/Metadata/DocComment/Block/DefinitionListBlock.hpp>auto
operator<=>(DefinitionListBlock const& other) const;
| Name | Description |
|---|---|
| other | The right operand |
Three-way comparison operator
<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>constexpr
auto
operator<=>(BlockCommonBase<mrdocs::doc::BlockKind::List> const& rhs) const = default;
| Name | Description |
|---|---|
| rhs | The right operand |
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isAdmonition() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isBrief() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isCode() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isDefinitionList() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isFootnoteDefinition() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isHeading() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isList() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isMath() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isParagraph() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>constexpr
static
bool
isParam() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>constexpr
static
bool
isPostcondition() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>constexpr
static
bool
isPrecondition() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isQuote() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>constexpr
static
bool
isReturns() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>constexpr
static
bool
isSee() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>constexpr
static
bool
isTParam() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isTable() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isThematicBreak() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>constexpr
static
bool
isThrows() noexcept;
Sequence of definition list items.
<mrdocs/Metadata/DocComment/Block/DefinitionListBlock.hpp>std::vector<DefinitionListItem> items;
<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>constexpr static
BlockKind kind_id;
An item in a definition list
<mrdocs/Metadata/DocComment/Block/DefinitionListItem.hpp>struct DefinitionListItem final
: BlockContainer
| Name | Description |
|---|---|
BlockContainer | A composite block that stores a sequence of child blocks. |
| Name | Description |
|---|---|
asBlockContainer | asBlockContainer overloads |
operator== | Equality operators |
operator<=> | Three-way comparison operators |
| Name | Description |
|---|---|
blocks | Child blocks contained within this composite block. |
term | The term being defined. |
| 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
<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>Equality compares term and definitions.
constexpr
bool
operator==(DefinitionListItem const& rhs) const noexcept = default;
» more...
Equality compares the stored child blocks.
constexpr
bool
operator==(BlockContainer const& rhs) const = default;
» more...
Equality compares term and definitions.
<mrdocs/Metadata/DocComment/Block/DefinitionListItem.hpp>constexpr
bool
operator==(DefinitionListItem const& rhs) const noexcept = default;
true if the objects are equal, false otherwise
| Name | Description |
|---|---|
| rhs | The right operand |
Equality compares the stored child blocks.
<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>constexpr
bool
operator==(BlockContainer const& rhs) const = default;
true if the objects are equal, false otherwise
| Name | Description |
|---|---|
| rhs | The right operand |
Three-way comparison operators
<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>Compare items by term and definition blocks.
auto
operator<=>(DefinitionListItem const& rhs) const = default;
» more...
Order containers lexicographically by their children.
std::strong_ordering
operator<=>(BlockContainer const& rhs) const;
» more...
Compare items by term and definition blocks.
<mrdocs/Metadata/DocComment/Block/DefinitionListItem.hpp>auto
operator<=>(DefinitionListItem const& rhs) const = default;
| Name | Description |
|---|---|
| rhs | The right operand |
Order containers lexicographically by their children.
<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>std::strong_ordering
operator<=>(BlockContainer const& rhs) const;
| Name | Description |
|---|---|
| rhs | The right operand |
The term being defined.
<mrdocs/Metadata/DocComment/Block/DefinitionListItem.hpp>InlineContainer term;
Emphasized text (typically rendered in italics).
<mrdocs/Metadata/DocComment/Inline/EmphInline.hpp>struct EmphInline final
: InlineCommonBase<InlineKind::Emph>
, InlineContainer
Syntax:
@e emphasized or *italic text* or _italic text_
| Name | Description |
|---|---|
InlineCommonBase<InlineKind::Emph> | Base class for providing variant discriminator functions. |
InlineContainer | An internal node in the inline element tree. |
| Name | Description |
|---|---|
operator= | Assignment operators |
append | append overloads |
asInlineContainer | Return this container as a base-class reference. |
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 in-place. |
empty | Determine if there are no inline children. |
end | End iterator forwarding to children. |
erase | Erase inline children. |
front | Get the first inline child. |
insert | Insert inline children. |
operator+= | Addition assignment operators |
size | Get the number of inline children. |
operator== | Equality operators |
operator<=> | Three-way comparison operators |
| Name |
|---|
isCode |
isCopyDetails |
isEmph |
isFootnoteReference |
isHighlight |
isImage |
isLineBreak |
isLink |
isMath |
isReference |
isSoftBreak |
isStrikethrough |
isStrong |
isSubscript |
isSuperscript |
isText |
| Name | Description |
|---|---|
children | Child inline elements contained here. |
| Name |
|---|
kind_id |
| Name | Description |
|---|---|
EmphInline | Inherit inline container constructors. |
| 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. |
Equality operators
<mrdocs/Metadata/DocComment/Inline/EmphInline.hpp>Equality compares contained text.
constexpr
bool
operator==(EmphInline const& rhs) const noexcept = default;
» more...
Equality compares child sequences.
constexpr
bool
operator==(InlineContainer const& rhs) const = default;
» more...
Equality compares contained text.
<mrdocs/Metadata/DocComment/Inline/EmphInline.hpp>constexpr
bool
operator==(EmphInline const& rhs) const noexcept = default;
true if the objects are equal, false otherwise
| Name | Description |
|---|---|
| rhs | The right operand |
Equality compares child sequences.
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>constexpr
bool
operator==(InlineContainer const& rhs) const = default;
true if the objects are equal, false otherwise
| Name | Description |
|---|---|
| rhs | The right operand |
Three-way comparison operators
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>Order emphasis spans by their contents.
auto
operator<=>(EmphInline const& rhs) const = default;
» more...
Three-way comparison operator
constexpr
auto
operator<=>(InlineCommonBase<mrdocs::doc::InlineKind::Emph> const& rhs) const = default;
» more...
Compare two InlineContainers.
std::strong_ordering
operator<=>(InlineContainer const& rhs) const;
» more...
Order emphasis spans by their contents.
<mrdocs/Metadata/DocComment/Inline/EmphInline.hpp>auto
operator<=>(EmphInline const& rhs) const = default;
| Name | Description |
|---|---|
| rhs | The right operand |
Three-way comparison operator
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>constexpr
auto
operator<=>(InlineCommonBase<mrdocs::doc::InlineKind::Emph> const& rhs) const = default;
| Name | Description |
|---|---|
| rhs | The right operand |
Compare two InlineContainers.
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>std::strong_ordering
operator<=>(InlineContainer const& rhs) const;
| Name | Description |
|---|---|
| rhs | The right operand |
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isCode() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isCopyDetails() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isEmph() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isFootnoteReference() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isHighlight() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isImage() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isLineBreak() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isLink() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isMath() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isReference() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isSoftBreak() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isStrikethrough() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isStrong() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isSubscript() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isSuperscript() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isText() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>constexpr static
InlineKind kind_id;
Inherit inline container constructors.
<mrdocs/Metadata/DocComment/Inline/EmphInline.hpp>using InlineContainer::EmphInline;
| 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-construct child nodes. |
| mrdocs::doc::InlineContainer::InlineContainer | Copy-construct all child nodes. |
Text defining the content of a footnote reference.
<mrdocs/Metadata/DocComment/Block/FootnoteDefinitionBlock.hpp>struct FootnoteDefinitionBlock final
: BlockCommonBase<BlockKind::FootnoteDefinition>
, BlockContainer
Syntax:
This is a sentence with a footnote[^1].
[^1]: This is the content of the footnote. It can also have multiple paragraphs.
Here is the second paragraph, which needs to be indented.
| Name | Description |
|---|---|
BlockCommonBase<BlockKind::FootnoteDefinition> | Base class for providing variant discriminator functions. |
BlockContainer | A composite block that stores a sequence of child blocks. |
| Name | Description |
|---|---|
FootnoteDefinitionBlock [constructor] | Construct an empty footnote definition. |
asBlockContainer | asBlockContainer overloads |
operator== | Equality operators |
operator<=> | Three-way comparison operators |
| Name | Description |
|---|---|
blocks | Child blocks contained within this composite block. |
label | Footnote label identifier. |
| Name |
|---|
kind_id |
| 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 |
Construct an empty footnote definition.
<mrdocs/Metadata/DocComment/Block/FootnoteDefinitionBlock.hpp>constexpr
FootnoteDefinitionBlock() noexcept = default;
Equality operators
<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>Equality compares label and block content.
constexpr
bool
operator==(FootnoteDefinitionBlock const& rhs) const noexcept = default;
» more...
Equality compares the stored child blocks.
constexpr
bool
operator==(BlockContainer const& rhs) const = default;
» more...
Equality compares label and block content.
<mrdocs/Metadata/DocComment/Block/FootnoteDefinitionBlock.hpp>constexpr
bool
operator==(FootnoteDefinitionBlock const& rhs) const noexcept = default;
true if the objects are equal, false otherwise
| Name | Description |
|---|---|
| rhs | The right operand |
Equality compares the stored child blocks.
<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>constexpr
bool
operator==(BlockContainer const& rhs) const = default;
true if the objects are equal, false otherwise
| Name | Description |
|---|---|
| rhs | The right operand |
Three-way comparison operators
<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>Compare definitions by label and block content.
auto
operator<=>(FootnoteDefinitionBlock const& rhs) const = default;
» more...
Three-way comparison operator
constexpr
auto
operator<=>(BlockCommonBase<mrdocs::doc::BlockKind::FootnoteDefinition> const& rhs) const = default;
» more...
Order containers lexicographically by their children.
std::strong_ordering
operator<=>(BlockContainer const& rhs) const;
» more...
Compare definitions by label and block content.
<mrdocs/Metadata/DocComment/Block/FootnoteDefinitionBlock.hpp>auto
operator<=>(FootnoteDefinitionBlock const& rhs) const = default;
| Name | Description |
|---|---|
| rhs | The right operand |
Three-way comparison operator
<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>constexpr
auto
operator<=>(BlockCommonBase<mrdocs::doc::BlockKind::FootnoteDefinition> const& rhs) const = default;
| Name | Description |
|---|---|
| rhs | The right operand |
Order containers lexicographically by their children.
<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>std::strong_ordering
operator<=>(BlockContainer const& rhs) const;
| Name | Description |
|---|---|
| rhs | The right operand |
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isAdmonition() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isBrief() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isCode() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isDefinitionList() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isFootnoteDefinition() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isHeading() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isList() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isMath() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isParagraph() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>constexpr
static
bool
isParam() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>constexpr
static
bool
isPostcondition() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>constexpr
static
bool
isPrecondition() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isQuote() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>constexpr
static
bool
isReturns() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>constexpr
static
bool
isSee() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>constexpr
static
bool
isTParam() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isTable() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isThematicBreak() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>constexpr
static
bool
isThrows() noexcept;
Footnote label identifier.
<mrdocs/Metadata/DocComment/Block/FootnoteDefinitionBlock.hpp>std::string label;
<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>constexpr static
BlockKind kind_id;
A reference to a symbol.
<mrdocs/Metadata/DocComment/Inline/FootnoteReferenceInline.hpp>struct FootnoteReferenceInline
: InlineCommonBase<InlineKind::FootnoteReference>
In markdown, this is represented as "[]".
Syntax:
[^footnote-id]
| Name | Description |
|---|---|
InlineCommonBase<InlineKind::FootnoteReference> | Base class for providing variant discriminator functions. |
| Name | Description |
|---|---|
operator== | Equality compares labels. |
operator<=> | Order references by their label. |
| Name |
|---|
isCode |
isCopyDetails |
isEmph |
isFootnoteReference |
isHighlight |
isImage |
isLineBreak |
isLink |
isMath |
isReference |
isSoftBreak |
isStrikethrough |
isStrong |
isSubscript |
isSuperscript |
isText |
| Name | Description |
|---|---|
label | Footnote label that the reference points to. |
| Name |
|---|
kind_id |
| Name | Description |
|---|---|
getAsPlainText | Get the plain text representation of an inline element tree. |
getAsPlainText | Get the plain text representation of an inline element tree. |
Equality compares labels.
<mrdocs/Metadata/DocComment/Inline/FootnoteReferenceInline.hpp>constexpr
bool
operator==(FootnoteReferenceInline const& rhs) const noexcept = default;
true if the objects are equal, false otherwise
| Name | Description |
|---|---|
| rhs | The right operand |
Order references by their label.
<mrdocs/Metadata/DocComment/Inline/FootnoteReferenceInline.hpp>Order references by their label.
constexpr
auto
operator<=>(FootnoteReferenceInline const& rhs) const = default;
» more...
Three-way comparison operator
constexpr
auto
operator<=>(InlineCommonBase<mrdocs::doc::InlineKind::FootnoteReference> const& rhs) const = default;
» more...
Order references by their label.
<mrdocs/Metadata/DocComment/Inline/FootnoteReferenceInline.hpp>constexpr
auto
operator<=>(FootnoteReferenceInline const& rhs) const = default;
| Name | Description |
|---|---|
| rhs | The right operand |
Three-way comparison operator
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>constexpr
auto
operator<=>(InlineCommonBase<mrdocs::doc::InlineKind::FootnoteReference> const& rhs) const = default;
| Name | Description |
|---|---|
| rhs | The right operand |
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isCode() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isCopyDetails() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isEmph() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isFootnoteReference() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isHighlight() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isImage() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isLineBreak() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isLink() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isMath() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isReference() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isSoftBreak() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isStrikethrough() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isStrong() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isSubscript() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isSuperscript() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isText() noexcept;
Footnote label that the reference points to.
<mrdocs/Metadata/DocComment/Inline/FootnoteReferenceInline.hpp>std::string label;
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>constexpr static
InlineKind kind_id;
A manually specified section heading.
<mrdocs/Metadata/DocComment/Block/HeadingBlock.hpp>struct HeadingBlock final
: BlockCommonBase<BlockKind::Heading>
, InlineContainer
Syntax:
@par Heading
or in Markdown:
# Heading 1
## Heading 2
### Heading 3
#### Heading 4
##### Heading 5
###### Heading 6
| Name | Description |
|---|---|
BlockCommonBase<BlockKind::Heading> | Base class for providing variant discriminator functions. |
InlineContainer | An internal node in the inline element tree. |
| Name | Description |
|---|---|
operator= | Assignment operators |
append | append overloads |
asInlineContainer | Return this container as a base-class reference. |
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 in-place. |
empty | Determine if there are no inline children. |
end | End iterator forwarding to children. |
erase | Erase inline children. |
front | Get the first inline child. |
insert | Insert inline children. |
operator+= | Addition assignment operators |
size | Get the number of inline children. |
operator== | Equality operators |
operator<=> | Three-way comparison operators |
| Name | Description |
|---|---|
children | Child inline elements contained here. |
level | Heading depth (1..6). |
| Name |
|---|
kind_id |
| Name | Description |
|---|---|
HeadingBlock | Inherit inline container constructors. |
| 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. |
Equality operators
<mrdocs/Metadata/DocComment/Block/HeadingBlock.hpp>Equality compares level and inline content.
constexpr
bool
operator==(HeadingBlock const& rhs) const noexcept = default;
» more...
Equality compares child sequences.
constexpr
bool
operator==(InlineContainer const& rhs) const = default;
» more...
Equality compares level and inline content.
<mrdocs/Metadata/DocComment/Block/HeadingBlock.hpp>constexpr
bool
operator==(HeadingBlock const& rhs) const noexcept = default;
true if the objects are equal, false otherwise
| Name | Description |
|---|---|
| rhs | The right operand |
Equality compares child sequences.
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>constexpr
bool
operator==(InlineContainer const& rhs) const = default;
true if the objects are equal, false otherwise
| Name | Description |
|---|---|
| rhs | The right operand |
Three-way comparison operators
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>Order headings by level and inline content.
auto
operator<=>(HeadingBlock const& rhs) const = default;
» more...
Three-way comparison operator
constexpr
auto
operator<=>(BlockCommonBase<mrdocs::doc::BlockKind::Heading> const& rhs) const = default;
» more...
Compare two InlineContainers.
std::strong_ordering
operator<=>(InlineContainer const& rhs) const;
» more...
Order headings by level and inline content.
<mrdocs/Metadata/DocComment/Block/HeadingBlock.hpp>auto
operator<=>(HeadingBlock const& rhs) const = default;
| Name | Description |
|---|---|
| rhs | The right operand |
Three-way comparison operator
<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>constexpr
auto
operator<=>(BlockCommonBase<mrdocs::doc::BlockKind::Heading> const& rhs) const = default;
| Name | Description |
|---|---|
| rhs | The right operand |
Compare two InlineContainers.
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>std::strong_ordering
operator<=>(InlineContainer const& rhs) const;
| Name | Description |
|---|---|
| rhs | The right operand |
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isAdmonition() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isBrief() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isCode() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isDefinitionList() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isFootnoteDefinition() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isHeading() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isList() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isMath() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isParagraph() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>constexpr
static
bool
isParam() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>constexpr
static
bool
isPostcondition() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>constexpr
static
bool
isPrecondition() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isQuote() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>constexpr
static
bool
isReturns() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>constexpr
static
bool
isSee() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>constexpr
static
bool
isTParam() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isTable() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isThematicBreak() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>constexpr
static
bool
isThrows() noexcept;
Heading depth (1..6).
<mrdocs/Metadata/DocComment/Block/HeadingBlock.hpp>unsigned int level = 1;
<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>constexpr static
BlockKind kind_id;
Inherit inline container constructors.
<mrdocs/Metadata/DocComment/Block/HeadingBlock.hpp>using InlineContainer::HeadingBlock;
| 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-construct child nodes. |
| mrdocs::doc::InlineContainer::InlineContainer | Copy-construct all child nodes. |
Highlighted text span used to call out important words.
<mrdocs/Metadata/DocComment/Inline/HighlightInline.hpp>struct HighlightInline final
: InlineCommonBase<InlineKind::Highlight>
, InlineContainer
Syntax:
==highlight== or <mark>highlighted</mark>
| Name | Description |
|---|---|
InlineCommonBase<InlineKind::Highlight> | Base class for providing variant discriminator functions. |
InlineContainer | An internal node in the inline element tree. |
| Name | Description |
|---|---|
operator= | Assignment operators |
append | append overloads |
asInlineContainer | Return this container as a base-class reference. |
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 in-place. |
empty | Determine if there are no inline children. |
end | End iterator forwarding to children. |
erase | Erase inline children. |
front | Get the first inline child. |
insert | Insert inline children. |
operator+= | Addition assignment operators |
size | Get the number of inline children. |
operator== | Equality operators |
operator<=> | Three-way comparison operators |
| Name |
|---|
isCode |
isCopyDetails |
isEmph |
isFootnoteReference |
isHighlight |
isImage |
isLineBreak |
isLink |
isMath |
isReference |
isSoftBreak |
isStrikethrough |
isStrong |
isSubscript |
isSuperscript |
isText |
| Name | Description |
|---|---|
children | Child inline elements contained here. |
| Name |
|---|
kind_id |
| 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. |
Equality operators
<mrdocs/Metadata/DocComment/Inline/HighlightInline.hpp>Equality compares inline content.
constexpr
bool
operator==(HighlightInline const& rhs) const noexcept = default;
» more...
Equality compares child sequences.
constexpr
bool
operator==(InlineContainer const& rhs) const = default;
» more...
Equality compares inline content.
<mrdocs/Metadata/DocComment/Inline/HighlightInline.hpp>constexpr
bool
operator==(HighlightInline const& rhs) const noexcept = default;
true if the objects are equal, false otherwise
| Name | Description |
|---|---|
| rhs | The right operand |
Equality compares child sequences.
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>constexpr
bool
operator==(InlineContainer const& rhs) const = default;
true if the objects are equal, false otherwise
| Name | Description |
|---|---|
| rhs | The right operand |
Three-way comparison operators
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>Order highlights by their inline content.
auto
operator<=>(HighlightInline const& rhs) const = default;
» more...
Three-way comparison operator
constexpr
auto
operator<=>(InlineCommonBase<mrdocs::doc::InlineKind::Highlight> const& rhs) const = default;
» more...
Compare two InlineContainers.
std::strong_ordering
operator<=>(InlineContainer const& rhs) const;
» more...
Order highlights by their inline content.
<mrdocs/Metadata/DocComment/Inline/HighlightInline.hpp>auto
operator<=>(HighlightInline const& rhs) const = default;
| Name | Description |
|---|---|
| rhs | The right operand |
Three-way comparison operator
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>constexpr
auto
operator<=>(InlineCommonBase<mrdocs::doc::InlineKind::Highlight> const& rhs) const = default;
| Name | Description |
|---|---|
| rhs | The right operand |
Compare two InlineContainers.
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>std::strong_ordering
operator<=>(InlineContainer const& rhs) const;
| Name | Description |
|---|---|
| rhs | The right operand |
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isCode() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isCopyDetails() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isEmph() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isFootnoteReference() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isHighlight() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isImage() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isLineBreak() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isLink() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isMath() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isReference() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isSoftBreak() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isStrikethrough() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isStrong() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isSubscript() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isSuperscript() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isText() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>constexpr static
InlineKind kind_id;
An image.
<mrdocs/Metadata/DocComment/Inline/ImageInline.hpp>struct ImageInline final
: InlineCommonBase<InlineKind::Image>
, InlineContainer
Syntax:
@image html path/to/img "alt text"
or

| Name | Description |
|---|---|
InlineCommonBase<InlineKind::Image> | Base class for providing variant discriminator functions. |
InlineContainer | An internal node in the inline element tree. |
| Name | Description |
|---|---|
operator= | Assignment operators |
append | append overloads |
asInlineContainer | Return this container as a base-class reference. |
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 in-place. |
empty | Determine if there are no inline children. |
end | End iterator forwarding to children. |
erase | Erase inline children. |
front | Get the first inline child. |
insert | Insert inline children. |
operator+= | Addition assignment operators |
size | Get the number of inline children. |
operator== | Equality operators |
operator<=> | Three-way comparison operators |
| Name |
|---|
isCode |
isCopyDetails |
isEmph |
isFootnoteReference |
isHighlight |
isImage |
isLineBreak |
isLink |
isMath |
isReference |
isSoftBreak |
isStrikethrough |
isStrong |
isSubscript |
isSuperscript |
isText |
| Name | Description |
|---|---|
alt | Alternate text when the image cannot be shown. |
children | Child inline elements contained here. |
src | Image source URL or path. |
| Name |
|---|
kind_id |
| 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. |
Equality operators
<mrdocs/Metadata/DocComment/Inline/ImageInline.hpp>Equality compares source, alt text, and contents.
constexpr
bool
operator==(ImageInline const& rhs) const noexcept = default;
» more...
Equality compares child sequences.
constexpr
bool
operator==(InlineContainer const& rhs) const = default;
» more...
Equality compares source, alt text, and contents.
<mrdocs/Metadata/DocComment/Inline/ImageInline.hpp>constexpr
bool
operator==(ImageInline const& rhs) const noexcept = default;
true if the objects are equal, false otherwise
| Name | Description |
|---|---|
| rhs | The right operand |
Equality compares child sequences.
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>constexpr
bool
operator==(InlineContainer const& rhs) const = default;
true if the objects are equal, false otherwise
| Name | Description |
|---|---|
| rhs | The right operand |
Three-way comparison operators
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>Order images by source, alt text, and inline children.
auto
operator<=>(ImageInline const& rhs) const = default;
» more...
Three-way comparison operator
constexpr
auto
operator<=>(InlineCommonBase<mrdocs::doc::InlineKind::Image> const& rhs) const = default;
» more...
Compare two InlineContainers.
std::strong_ordering
operator<=>(InlineContainer const& rhs) const;
» more...
Order images by source, alt text, and inline children.
<mrdocs/Metadata/DocComment/Inline/ImageInline.hpp>auto
operator<=>(ImageInline const& rhs) const = default;
| Name | Description |
|---|---|
| rhs | The right operand |
Three-way comparison operator
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>constexpr
auto
operator<=>(InlineCommonBase<mrdocs::doc::InlineKind::Image> const& rhs) const = default;
| Name | Description |
|---|---|
| rhs | The right operand |
Compare two InlineContainers.
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>std::strong_ordering
operator<=>(InlineContainer const& rhs) const;
| Name | Description |
|---|---|
| rhs | The right operand |
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isCode() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isCopyDetails() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isEmph() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isFootnoteReference() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isHighlight() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isImage() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isLineBreak() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isLink() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isMath() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isReference() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isSoftBreak() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isStrikethrough() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isStrong() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isSubscript() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isSuperscript() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isText() noexcept;
Alternate text when the image cannot be shown.
<mrdocs/Metadata/DocComment/Inline/ImageInline.hpp>std::string alt;
Image source URL or path.
<mrdocs/Metadata/DocComment/Inline/ImageInline.hpp>std::string src;
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>constexpr static
InlineKind kind_id;
A Node containing a string of text.
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>struct Inline;
There will be no newlines in the text. Otherwise, this would be represented as multiple text nodes within a Paragraph node.
| Name | Description |
|---|---|
~Inline [destructor] [virtual] | Virtual destructor to enable polymorphic deletion. |
asInline | asInline overloads |
operator== | Equality compares active kind and stored data. |
operator<=> | Three-way comparison by active inline kind and data. |
| Name | Description |
|---|---|
Kind | Discriminator identifying which inline variant is active. |
| Name | Description |
|---|---|
Inline [constructor] | Constructors |
| Name | Description |
|---|---|
getAsPlainText | Get the plain text representation of an inline element tree. |
getAsPlainText | Get the plain text representation of an inline element tree. |
| Name | Description |
|---|---|
InlineCommonBase
| Base class for providing variant discriminator functions. |
Virtual destructor to enable polymorphic deletion.
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>constexpr
virtual
~Inline() = default;
asInline overloads
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>View as const Inline reference.
constexpr
Inline const&
asInline() const noexcept;
» more...
View as mutable Inline reference.
constexpr
Inline&
asInline() noexcept;
» more...
View as const Inline reference.
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>constexpr
Inline const&
asInline() const noexcept;
View as mutable Inline reference.
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>constexpr
Inline&
asInline() noexcept;
Equality compares active kind and stored data.
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>constexpr
bool
operator==(Inline const& rhs) const noexcept = default;
true if the objects are equal, false otherwise
| Name | Description |
|---|---|
| rhs | The right operand |
Three-way comparison by active inline kind and data.
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>constexpr
auto
operator<=>(Inline const& rhs) const = default;
| Name | Description |
|---|---|
| rhs | The right operand |
Discriminator identifying which inline variant is active.
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>InlineKind Kind = InlineKind::Text;
Constructors
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>Default-construct a text inline.
constexpr
Inline() noexcept = default;
» more...
Construct with a specific inline kind.
Inline(InlineKind kind_);
» more...
Default-construct a text inline.
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>constexpr
Inline() noexcept = default;
Construct with a specific inline kind.
| Name | Description |
|---|---|
| kind_ | The object to construct from |
Base class for providing variant discriminator functions.
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>template<InlineKind K>
struct InlineCommonBase
: Inline
This offers functions that return a boolean at compile-time, indicating if the most-derived class is a certain type.
| Name | Description |
|---|---|
Inline | A Node containing a string of text. |
| Name | Description |
|---|---|
~InlineCommonBase [destructor] [virtual] | Virtual destructor to preserve polymorphic cleanup. |
asInline | asInline overloads |
operator== | Equality compares active kind and stored data. |
operator<=> | Three-way comparison operators |
| Name | Description |
|---|---|
Kind | Discriminator identifying which inline variant is active. |
| Name | Description |
|---|---|
kind_id | The variant discriminator constant of the most-derived class. |
| Name | Description |
|---|---|
InlineCommonBase [constructor] | Default-construct with the fixed inline kind. |
| Name | Description |
|---|---|
getAsPlainText | Get the plain text representation of an inline element tree. |
getAsPlainText | Get the plain text representation of an inline element tree. |
| Name | Description |
|---|---|
CodeInline
| Inline code (monospaced) used for short snippets within text. |
CopyDetailsInline
| Documentation copied from another symbol. |
EmphInline
| Emphasized text (typically rendered in italics). |
FootnoteReferenceInline
| A reference to a symbol. |
HighlightInline
| Highlighted text span used to call out important words. |
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 a space |
StrikethroughInline
| Strikethrough span to show removed or deprecated text. |
StrongInline
| Strong emphasis span (typically rendered in bold). |
SubscriptInline
| Subscript text fragment (lowered baseline). |
SuperscriptInline
| Superscript text fragment (raised baseline). |
TextInline
| A Node containing a string of text. |
Virtual destructor to preserve polymorphic cleanup.
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>virtual
~InlineCommonBase() override = default;
Three-way comparison operators
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>Three-way comparison forwards to the underlying inline.
auto
operator<=>(InlineCommonBase const& rhs) const = default;
» more...
Three-way comparison by active inline kind and data.
constexpr
auto
operator<=>(Inline const& rhs) const = default;
» more...
Three-way comparison forwards to the underlying inline.
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>auto
operator<=>(InlineCommonBase const& rhs) const = default;
| Name | Description |
|---|---|
| rhs | The right operand |
Three-way comparison by active inline kind and data.
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>constexpr
auto
operator<=>(Inline const& rhs) const = default;
| Name | Description |
|---|---|
| rhs | The right operand |
The variant discriminator constant of the most-derived class.
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>inline constexpr static
InlineKind kind_id = K;
It only distinguishes from Inline::kind in that it is a constant.
Default-construct with the fixed inline kind.
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>constexpr
explicit
InlineCommonBase();
An internal node in the inline element tree.
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>struct InlineContainer;
| Name | Description |
|---|---|
InlineContainer [constructor] | Constructors |
~InlineContainer [destructor] [virtual] | Virtual destructor for derived containers. |
operator= | Assignment operators |
append | append overloads |
asInlineContainer | Return this container as a base-class reference. |
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 in-place. |
empty | Determine if there are no inline children. |
end | End iterator forwarding to children. |
erase | Erase inline children. |
front | Get the first inline child. |
insert | Insert inline children. |
operator+= | Addition assignment operators |
size | Get the number of inline children. |
operator== | Equality compares child sequences. |
operator<=> | Compare two InlineContainers. |
| Name | Description |
|---|---|
children | Child inline elements contained here. |
| 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. |
| Name | Description |
|---|---|
BriefBlock
| The brief description |
CodeInline
| Inline code (monospaced) used for short snippets within text. |
EmphInline
| Emphasized text (typically rendered in italics). |
HeadingBlock
| A manually specified section heading. |
HighlightInline
| Highlighted text span used to call out important words. |
ImageInline
| An image. |
LinkInline
| A hyperlink. |
ParagraphBlock
| A sequence of text nodes. |
ParamBlock
| Documentation for a function parameter |
PostconditionBlock
| Text describing conditions guaranteed on successful exit. |
PreconditionBlock
| Text describing required conditions before entry. |
ReturnsBlock
| Documentation for a function return type |
SeeBlock
| A |
StrikethroughInline
| Strikethrough span to show removed or deprecated text. |
StrongInline
| Strong emphasis span (typically rendered in bold). |
SubscriptInline
| Subscript text fragment (lowered baseline). |
SuperscriptInline
| Superscript text fragment (raised baseline). |
TParamBlock
| Documentation for a template parameter |
TableCell
| A cell in a table |
ThrowsBlock
| Documentation for a function exception clause |
Constructors
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>Default-construct an empty container.
constexpr
InlineContainer() = default;
» more...
Copy-construct all child nodes.
constexpr
InlineContainer(InlineContainer const& other) = default;
» more...
Move-construct child nodes.
constexpr
InlineContainer(InlineContainer&& other) noexcept = default;
» more...
Construct an InlineContainer with a single TextInline child.
explicit
InlineContainer(std::string_view text);
» more...
Construct an InlineContainer with a single TextInline child.
explicit
InlineContainer(std::string const& text);
» more...
Construct an InlineContainer with a single TextInline child.
explicit
InlineContainer(std::string&& text);
» more...
Construct an InlineContainer with a single TextInline child.
explicit
InlineContainer(char const* text);
» more...
Default-construct an empty container.
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>constexpr
InlineContainer() = default;
Copy-construct all child nodes.
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>constexpr
InlineContainer(InlineContainer const& other) = default;
| Name | Description |
|---|---|
| other | The object to copy construct from |
Move-construct child nodes.
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>constexpr
InlineContainer(InlineContainer&& other) noexcept = default;
| Name | Description |
|---|---|
| other | The object to move construct from |
Construct an InlineContainer with a single TextInline child.
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>explicit
InlineContainer(std::string_view text);
| Name | Description |
|---|---|
| text | The object to construct from |
Construct an InlineContainer with a single TextInline child.
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>explicit
InlineContainer(std::string const& text);
| Name | Description |
|---|---|
| text | The object to copy construct from |
Construct an InlineContainer with a single TextInline child.
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>explicit
InlineContainer(std::string&& text);
| Name | Description |
|---|---|
| text | The object to move construct from |
Construct an InlineContainer with a single TextInline child.
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>explicit
InlineContainer(char const* text);
| Name | Description |
|---|---|
| text | The value to construct from |
Virtual destructor for derived containers.
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>constexpr
virtual
~InlineContainer() = default;
Assignment operators
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>Copy-assign child nodes.
constexpr
InlineContainer&
operator=(InlineContainer const& other) = default;
» more...
Move-assign child nodes.
constexpr
InlineContainer&
operator=(InlineContainer&& other) noexcept = default;
» more...
Assign an InlineContainer with a single TextInline child.
InlineContainer&
operator=(std::string_view text);
» more...
Copy-assign child nodes.
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>constexpr
InlineContainer&
operator=(InlineContainer const& other) = default;
| Name | Description |
|---|---|
| other | The object to copy assign from |
Move-assign child nodes.
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>constexpr
InlineContainer&
operator=(InlineContainer&& other) noexcept = default;
| Name | Description |
|---|---|
| other | The object to move assign from |
Assign an InlineContainer with a single TextInline child.
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>InlineContainer&
operator=(std::string_view text);
| Name | Description |
|---|---|
| text | The object to assign from |
append overloads
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>Append a TextInline child.
InlineContainer&
append(std::string_view text);
» more...
Append a child of the specified type.
template<
std::derived_from<Inline> InlineTy,
class... Args>
InlineContainer&
append(Args&&... args);
» more...
| Name | Description |
|---|---|
| InlineTy | The Inline-derived type to add. |
| Name | Description |
|---|---|
| text | The text to append. |
| args | Constructor arguments forwarded to the child. |
Append a TextInline child.
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>InlineContainer&
append(std::string_view text);
| Name | Description |
|---|---|
| text | The text to append. |
Append a child of the specified type.
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>template<
std::derived_from<Inline> InlineTy,
class... Args>
InlineContainer&
append(Args&&... args);
| Name | Description |
|---|---|
| InlineTy | The Inline-derived type to add. |
| Name | Description |
|---|---|
| args | Constructor arguments forwarded to the child. |
Return this container as a base-class reference.
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>Return this container as a base-class reference.
InlineContainer&
asInlineContainer();
» more...
Return this container as a base-class reference.
InlineContainer const&
asInlineContainer() const;
» more...
Return this container as a base-class reference.
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>InlineContainer&
asInlineContainer();
Return this container as a base-class reference.
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>InlineContainer const&
asInlineContainer() const;
Get the last inline child.
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>Get the last inline child.
Polymorphic<Inline> const&
back() const;
» more...
Get the last inline child.
Polymorphic<Inline>&
back();
» more...
Get the last inline child.
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>Polymorphic<Inline> const&
back() const;
Get the last inline child.
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>Polymorphic<Inline>&
back();
Begin iterator forwarding to children.
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>decltype(auto)
begin(this auto&& self) noexcept;
| Name | Description |
|---|---|
| self | The container instance. |
Clear all inline children.
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>void
clear();
Append a child of the specified type in-place.
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>template<
std::derived_from<Inline> InlineTy,
class... Args>
InlineContainer&
emplace_back(Args&&... args);
| Name | Description |
|---|---|
| InlineTy | The Inline-derived type to emplace. |
| Name | Description |
|---|---|
| args | Constructor arguments forwarded to the child. |
Determine if there are no inline children.
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>bool
empty() const noexcept;
End iterator forwarding to children.
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>decltype(auto)
end(this auto&& self) noexcept;
| Name | Description |
|---|---|
| self | The container instance. |
Erase inline children.
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>decltype(auto)
erase(this
auto&& self,
auto&&... args);
erase.
| Name | Description |
|---|---|
| self | The container instance. |
| args | Arguments forwarded to std::vector::erase. |
Get the first inline child.
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>Get the first inline child.
Polymorphic<Inline> const&
front() const;
» more...
Get the first inline child.
Polymorphic<Inline>&
front();
» more...
Get the first inline child.
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>Polymorphic<Inline> const&
front() const;
Get the first inline child.
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>Polymorphic<Inline>&
front();
Insert inline children.
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>decltype(auto)
insert(this
auto&& self,
auto&&... args);
insert.
| Name | Description |
|---|---|
| self | The container instance. |
| args | Arguments forwarded to std::vector::insert. |
Addition assignment operators
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>Append a TextInline child.
InlineContainer&
operator+=(std::string_view text);
» more...
Append an inline child.
template<std::derived_from<Inline> InlineTy>
InlineContainer&
operator+=(InlineTy&& inlineChild);
» more...
Append a TextInline child.
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>InlineContainer&
operator+=(std::string_view text);
| Name | Description |
|---|---|
| text | The right operand |
Append an inline child.
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>template<std::derived_from<Inline> InlineTy>
InlineContainer&
operator+=(InlineTy&& inlineChild);
| Name | Description |
|---|---|
| inlineChild | The right operand |
Get the number of inline children.
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>std::size_t
size() const noexcept;
Equality compares child sequences.
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>constexpr
bool
operator==(InlineContainer const& rhs) const = default;
true if the objects are equal, false otherwise
| Name | Description |
|---|---|
| rhs | The right operand |
Compare two InlineContainers.
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>std::strong_ordering
operator<=>(InlineContainer const& rhs) const;
| Name | Description |
|---|---|
| rhs | The right operand |
Child inline elements contained here.
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>std::vector<Polymorphic<Inline>> children;
A leaf node that stores a string of text.
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>struct InlineTextLeaf;
| Name | Description |
|---|---|
InlineTextLeaf [constructor] | Constructors |
operator== | Equality compares literal text. |
operator<=> | Order text leaves lexicographically by content. |
| Name | Description |
|---|---|
literal | Raw literal text stored in this leaf node. |
Constructors
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>Construct from a string view.
explicit
InlineTextLeaf(std::string_view literal_);
» more...
Construct from a string copy.
explicit
InlineTextLeaf(std::string const& literal_);
» more...
Construct by moving a string.
explicit
InlineTextLeaf(std::string&& literal_) noexcept;
» more...
Construct from a string view.
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>explicit
InlineTextLeaf(std::string_view literal_);
| Name | Description |
|---|---|
| literal_ | The object to construct from |
Construct from a string copy.
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>explicit
InlineTextLeaf(std::string const& literal_);
| Name | Description |
|---|---|
| literal_ | The object to copy construct from |
Construct by moving a string.
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>explicit
InlineTextLeaf(std::string&& literal_) noexcept;
| Name | Description |
|---|---|
| literal_ | The object to move construct from |
Equality compares literal text.
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>constexpr
bool
operator==(InlineTextLeaf const& rhs) const noexcept = default;
true if the objects are equal, false otherwise
| Name | Description |
|---|---|
| rhs | The right operand |
Order text leaves lexicographically by content.
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>constexpr
auto
operator<=>(InlineTextLeaf const& rhs) const = default;
| Name | Description |
|---|---|
| rhs | The right operand |
Raw literal text stored in this leaf node.
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>std::string literal;
A hard line break that renders as ""
<mrdocs/Metadata/DocComment/Inline/LineBreakInline.hpp>struct LineBreakInline
: InlineCommonBase<InlineKind::LineBreak>
Syntax:
first line\
second line
or
first line<br>second line
| Name | Description |
|---|---|
InlineCommonBase<InlineKind::LineBreak> | Base class for providing variant discriminator functions. |
| Name | Description |
|---|---|
LineBreakInline [constructor] | Construct a line break node. |
~LineBreakInline [destructor] [virtual] | Virtual destructor for the inline hierarchy. |
operator== | Equality compares line breaks (trivial). |
operator<=> | Order line breaks (trivial). |
| Name |
|---|
isCode |
isCopyDetails |
isEmph |
isFootnoteReference |
isHighlight |
isImage |
isLineBreak |
isLink |
isMath |
isReference |
isSoftBreak |
isStrikethrough |
isStrong |
isSubscript |
isSuperscript |
isText |
| Name |
|---|
kind_id |
| 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 a line break node.
<mrdocs/Metadata/DocComment/Inline/LineBreakInline.hpp>constexpr
LineBreakInline() noexcept = default;
Virtual destructor for the inline hierarchy.
<mrdocs/Metadata/DocComment/Inline/LineBreakInline.hpp>constexpr
virtual
~LineBreakInline() override = default;
Equality compares line breaks (trivial).
<mrdocs/Metadata/DocComment/Inline/LineBreakInline.hpp>constexpr
bool
operator==(LineBreakInline const& rhs) const noexcept = default;
true if the objects are equal, false otherwise
| Name | Description |
|---|---|
| rhs | The right operand |
Order line breaks (trivial).
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>Order line breaks (trivial).
constexpr
auto
operator<=>(LineBreakInline const& rhs) const = default;
» more...
Three-way comparison operator
constexpr
auto
operator<=>(InlineCommonBase<mrdocs::doc::InlineKind::LineBreak> const& rhs) const = default;
» more...
Order line breaks (trivial).
<mrdocs/Metadata/DocComment/Inline/LineBreakInline.hpp>constexpr
auto
operator<=>(LineBreakInline const& rhs) const = default;
| Name | Description |
|---|---|
| rhs | The right operand |
Three-way comparison operator
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>constexpr
auto
operator<=>(InlineCommonBase<mrdocs::doc::InlineKind::LineBreak> const& rhs) const = default;
| Name | Description |
|---|---|
| rhs | The right operand |
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isCode() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isCopyDetails() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isEmph() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isFootnoteReference() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isHighlight() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isImage() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isLineBreak() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isLink() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isMath() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isReference() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isSoftBreak() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isStrikethrough() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isStrong() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isSubscript() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isSuperscript() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isText() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>constexpr static
InlineKind kind_id;
A hyperlink.
<mrdocs/Metadata/DocComment/Inline/LinkInline.hpp>struct LinkInline final
: InlineCommonBase<InlineKind::Link>
, InlineContainer
Syntax:
@link https://example.com label @endlink
Or with markdown syntax:
[link text](URL)
[link text](URL "title")
Or:
<a href="https://www.example.com">Visit Example.com</a>
| Name | Description |
|---|---|
InlineCommonBase<InlineKind::Link> | Base class for providing variant discriminator functions. |
InlineContainer | An internal node in the inline element tree. |
| Name | Description |
|---|---|
LinkInline [constructor] | Constructors |
operator= | Assignment operators |
append | append overloads |
asInlineContainer | Return this container as a base-class reference. |
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 in-place. |
empty | Determine if there are no inline children. |
end | End iterator forwarding to children. |
erase | Erase inline children. |
front | Get the first inline child. |
insert | Insert inline children. |
operator+= | Addition assignment operators |
size | Get the number of inline children. |
operator== | Equality operators |
operator<=> | Three-way comparison operators |
| Name |
|---|
isCode |
isCopyDetails |
isEmph |
isFootnoteReference |
isHighlight |
isImage |
isLineBreak |
isLink |
isMath |
isReference |
isSoftBreak |
isStrikethrough |
isStrong |
isSubscript |
isSuperscript |
isText |
| Name | Description |
|---|---|
children | Child inline elements contained here. |
href | Destination of the hyperlink. |
| Name |
|---|
kind_id |
| 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
<mrdocs/Metadata/DocComment/Inline/LinkInline.hpp>Construct an empty link.
constexpr
LinkInline() = default;
» more...
Construct a link with display text and target.
LinkInline(
std::string_view text,
std::string_view href);
» more...
| Name | Description |
|---|---|
| text | Link text to display. |
| href | Destination URI. |
Construct an empty link.
<mrdocs/Metadata/DocComment/Inline/LinkInline.hpp>constexpr
LinkInline() = default;
Construct a link with display text and target.
<mrdocs/Metadata/DocComment/Inline/LinkInline.hpp>LinkInline(
std::string_view text,
std::string_view href);
| Name | Description |
|---|---|
| text | Link text to display. |
| href | Destination URI. |
Equality operators
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>Equality compares href and child content.
constexpr
bool
operator==(LinkInline const& rhs) const noexcept = default;
» more...
Equality compares child sequences.
constexpr
bool
operator==(InlineContainer const& rhs) const = default;
» more...
Equality compares href and child content.
<mrdocs/Metadata/DocComment/Inline/LinkInline.hpp>constexpr
bool
operator==(LinkInline const& rhs) const noexcept = default;
true if the objects are equal, false otherwise
| Name | Description |
|---|---|
| rhs | The right operand |
Equality compares child sequences.
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>constexpr
bool
operator==(InlineContainer const& rhs) const = default;
true if the objects are equal, false otherwise
| Name | Description |
|---|---|
| rhs | The right operand |
Three-way comparison operators
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>Order links by href and child content.
auto
operator<=>(LinkInline const& rhs) const = default;
» more...
Three-way comparison operator
constexpr
auto
operator<=>(InlineCommonBase<mrdocs::doc::InlineKind::Link> const& rhs) const = default;
» more...
Compare two InlineContainers.
std::strong_ordering
operator<=>(InlineContainer const& rhs) const;
» more...
Order links by href and child content.
<mrdocs/Metadata/DocComment/Inline/LinkInline.hpp>auto
operator<=>(LinkInline const& rhs) const = default;
| Name | Description |
|---|---|
| rhs | The right operand |
Three-way comparison operator
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>constexpr
auto
operator<=>(InlineCommonBase<mrdocs::doc::InlineKind::Link> const& rhs) const = default;
| Name | Description |
|---|---|
| rhs | The right operand |
Compare two InlineContainers.
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>std::strong_ordering
operator<=>(InlineContainer const& rhs) const;
| Name | Description |
|---|---|
| rhs | The right operand |
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isCode() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isCopyDetails() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isEmph() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isFootnoteReference() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isHighlight() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isImage() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isLineBreak() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isLink() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isMath() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isReference() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isSoftBreak() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isStrikethrough() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isStrong() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isSubscript() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isSuperscript() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isText() noexcept;
Destination of the hyperlink.
<mrdocs/Metadata/DocComment/Inline/LinkInline.hpp>std::string href;
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>constexpr static
InlineKind kind_id;
A list of list items
<mrdocs/Metadata/DocComment/Block/ListBlock.hpp>struct ListBlock final
: BlockCommonBase<BlockKind::List>
Syntax:
- item one
- item two
Unordered list:
- Item 1
- Item 2
- Nested item 2.1
- Nested item 2.2
Item 3
+ Item 4
Ordered list:
1. First item
2. Second item
1. Nested ordered item 2.1
2. Nested ordered item 2.2
3. Third item
Task lists (Checklists):
- [x] Completed task
- [ ] Pending task
- [x] Another completed task
Definition Lists (DefinitionListBlock)
Term 1
: Definition of Term 1
Term 2
: Definition of Term 2
: Another definition for Term 2
| Name | Description |
|---|---|
BlockCommonBase<BlockKind::List> | Base class for providing variant discriminator functions. |
| Name | Description |
|---|---|
operator== | Equality compares the list style and items. |
operator<=> | Order lists by item content and list style. |
| Name | Description |
|---|---|
items | Items contained in the list. |
listKind | Display style for the list. |
| Name |
|---|
kind_id |
| 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 compares the list style and items.
<mrdocs/Metadata/DocComment/Block/ListBlock.hpp>constexpr
bool
operator==(ListBlock const& rhs) const noexcept = default;
true if the objects are equal, false otherwise
| Name | Description |
|---|---|
| rhs | The right operand |
Order lists by item content and list style.
<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>Order lists by item content and list style.
auto
operator<=>(ListBlock const& other) const;
» more...
Three-way comparison operator
constexpr
auto
operator<=>(BlockCommonBase<mrdocs::doc::BlockKind::List> const& rhs) const = default;
» more...
Order lists by item content and list style.
<mrdocs/Metadata/DocComment/Block/ListBlock.hpp>auto
operator<=>(ListBlock const& other) const;
| Name | Description |
|---|---|
| other | The right operand |
Three-way comparison operator
<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>constexpr
auto
operator<=>(BlockCommonBase<mrdocs::doc::BlockKind::List> const& rhs) const = default;
| Name | Description |
|---|---|
| rhs | The right operand |
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isAdmonition() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isBrief() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isCode() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isDefinitionList() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isFootnoteDefinition() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isHeading() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isList() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isMath() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isParagraph() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>constexpr
static
bool
isParam() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>constexpr
static
bool
isPostcondition() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>constexpr
static
bool
isPrecondition() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isQuote() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>constexpr
static
bool
isReturns() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>constexpr
static
bool
isSee() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>constexpr
static
bool
isTParam() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isTable() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isThematicBreak() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>constexpr
static
bool
isThrows() noexcept;
Items contained in the list.
<mrdocs/Metadata/DocComment/Block/ListBlock.hpp>std::vector<ListItem> items;
Display style for the list.
<mrdocs/Metadata/DocComment/Block/ListBlock.hpp>ListKind listKind = ListKind::Unordered;
<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>constexpr static
BlockKind kind_id;
An item in a ListBlock
<mrdocs/Metadata/DocComment/Block/ListItem.hpp>struct ListItem final
: BlockContainer
| Name | Description |
|---|---|
BlockContainer | A composite block that stores a sequence of child blocks. |
| Name | Description |
|---|---|
asBlockContainer | asBlockContainer overloads |
operator== | Equality operators |
operator<=> | Three-way comparison operators |
| Name | Description |
|---|---|
blocks | Child blocks contained within this composite block. |
| 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
<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>Equality compares contained blocks.
constexpr
bool
operator==(ListItem const& rhs) const noexcept = default;
» more...
Equality compares the stored child blocks.
constexpr
bool
operator==(BlockContainer const& rhs) const = default;
» more...
Equality compares contained blocks.
<mrdocs/Metadata/DocComment/Block/ListItem.hpp>constexpr
bool
operator==(ListItem const& rhs) const noexcept = default;
true if the objects are equal, false otherwise
| Name | Description |
|---|---|
| rhs | The right operand |
Equality compares the stored child blocks.
<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>constexpr
bool
operator==(BlockContainer const& rhs) const = default;
true if the objects are equal, false otherwise
| Name | Description |
|---|---|
| rhs | The right operand |
Three-way comparison operators
<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>Order list items by their child blocks.
auto
operator<=>(ListItem const& rhs) const = default;
» more...
Order containers lexicographically by their children.
std::strong_ordering
operator<=>(BlockContainer const& rhs) const;
» more...
Order list items by their child blocks.
<mrdocs/Metadata/DocComment/Block/ListItem.hpp>auto
operator<=>(ListItem const& rhs) const = default;
| Name | Description |
|---|---|
| rhs | The right operand |
Order containers lexicographically by their children.
<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>std::strong_ordering
operator<=>(BlockContainer const& rhs) const;
| Name | Description |
|---|---|
| rhs | The right operand |
A block of LaTeX math
<mrdocs/Metadata/DocComment/Block/MathBlock.hpp>struct MathBlock final
: BlockCommonBase<BlockKind::Math>
A block of LaTeX math, typically between … or fenced with "math".
On a new line:
$$ \int_{-\infty}^{\infty} e^{-x^2} dx = \sqrt{\pi} $$
Or as a code block:
```math
\int_{-\infty}^{\infty} e^{-x^2} dx = \sqrt{\pi}
```
| Name | Description |
|---|---|
BlockCommonBase<BlockKind::Math> | Base class for providing variant discriminator functions. |
| Name | Description |
|---|---|
MathBlock [constructor] | Copy-construct a math block. |
operator= | Copy-assign a math block. |
operator<=> | Compare math blocks by literal content. |
| Name | Description |
|---|---|
literal | Raw TeX math source |
| Name |
|---|
kind_id |
| 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-construct a math block.
<mrdocs/Metadata/DocComment/Block/MathBlock.hpp>constexpr
MathBlock(MathBlock const& other) = default;
| Name | Description |
|---|---|
| other | The object to copy construct from |
Copy-assign a math block.
<mrdocs/Metadata/DocComment/Block/MathBlock.hpp>constexpr
MathBlock&
operator=(MathBlock const& other) = default;
| Name | Description |
|---|---|
| other | The object to copy assign from |
Compare math blocks by literal content.
<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>Compare math blocks by literal content.
constexpr
auto
operator<=>(MathBlock const& rhs) const = default;
» more...
Three-way comparison operator
constexpr
auto
operator<=>(BlockCommonBase<mrdocs::doc::BlockKind::Math> const& rhs) const = default;
» more...
Compare math blocks by literal content.
<mrdocs/Metadata/DocComment/Block/MathBlock.hpp>constexpr
auto
operator<=>(MathBlock const& rhs) const = default;
| Name | Description |
|---|---|
| rhs | The right operand |
Three-way comparison operator
<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>constexpr
auto
operator<=>(BlockCommonBase<mrdocs::doc::BlockKind::Math> const& rhs) const = default;
| Name | Description |
|---|---|
| rhs | The right operand |
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isAdmonition() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isBrief() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isCode() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isDefinitionList() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isFootnoteDefinition() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isHeading() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isList() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isMath() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isParagraph() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>constexpr
static
bool
isParam() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>constexpr
static
bool
isPostcondition() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>constexpr
static
bool
isPrecondition() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isQuote() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>constexpr
static
bool
isReturns() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>constexpr
static
bool
isSee() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>constexpr
static
bool
isTParam() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isTable() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isThematicBreak() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>constexpr
static
bool
isThrows() noexcept;
Raw TeX math source
<mrdocs/Metadata/DocComment/Block/MathBlock.hpp>std::string literal;
<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>constexpr static
BlockKind kind_id;
An inline LaTeX math expression
<mrdocs/Metadata/DocComment/Inline/MathInline.hpp>struct MathInline
: InlineCommonBase<InlineKind::Math>
Inline LaTeX math, typically between ….
Syntax:
$2 + 2 = 4$ or $x_{i+1}^2$
| Name | Description |
|---|---|
InlineCommonBase<InlineKind::Math> | Base class for providing variant discriminator functions. |
| Name | Description |
|---|---|
MathInline [constructor] | Constructors |
~MathInline [destructor] [virtual] | Virtual destructor for inline hierarchy. |
operator== | Equality compares literal content. |
operator<=> | Order math spans by their literal content. |
| Name |
|---|
isCode |
isCopyDetails |
isEmph |
isFootnoteReference |
isHighlight |
isImage |
isLineBreak |
isLink |
isMath |
isReference |
isSoftBreak |
isStrikethrough |
isStrong |
isSubscript |
isSuperscript |
isText |
| Name | Description |
|---|---|
literal | Raw LaTeX/TeX math content. |
| Name |
|---|
kind_id |
| Name | Description |
|---|---|
getAsPlainText | Get the plain text representation of an inline element tree. |
getAsPlainText | Get the plain text representation of an inline element tree. |
Constructors
<mrdocs/Metadata/DocComment/Inline/MathInline.hpp>Construct an empty math inline.
constexpr
MathInline() noexcept = default;
» more...
Construct a math inline from source text.
explicit
MathInline(std::string string_) noexcept;
» more...
Construct an empty math inline.
<mrdocs/Metadata/DocComment/Inline/MathInline.hpp>constexpr
MathInline() noexcept = default;
Construct a math inline from source text.
<mrdocs/Metadata/DocComment/Inline/MathInline.hpp>explicit
MathInline(std::string string_) noexcept;
| Name | Description |
|---|---|
| string_ | The object to construct from |
Virtual destructor for inline hierarchy.
<mrdocs/Metadata/DocComment/Inline/MathInline.hpp>constexpr
virtual
~MathInline() override = default;
Equality compares literal content.
<mrdocs/Metadata/DocComment/Inline/MathInline.hpp>constexpr
bool
operator==(MathInline const& rhs) const noexcept = default;
true if the objects are equal, false otherwise
| Name | Description |
|---|---|
| rhs | The right operand |
Order math spans by their literal content.
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>Order math spans by their literal content.
constexpr
auto
operator<=>(MathInline const& rhs) const = default;
» more...
Three-way comparison operator
constexpr
auto
operator<=>(InlineCommonBase<mrdocs::doc::InlineKind::Math> const& rhs) const = default;
» more...
Order math spans by their literal content.
<mrdocs/Metadata/DocComment/Inline/MathInline.hpp>constexpr
auto
operator<=>(MathInline const& rhs) const = default;
| Name | Description |
|---|---|
| rhs | The right operand |
Three-way comparison operator
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>constexpr
auto
operator<=>(InlineCommonBase<mrdocs::doc::InlineKind::Math> const& rhs) const = default;
| Name | Description |
|---|---|
| rhs | The right operand |
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isCode() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isCopyDetails() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isEmph() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isFootnoteReference() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isHighlight() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isImage() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isLineBreak() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isLink() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isMath() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isReference() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isSoftBreak() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isStrikethrough() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isStrong() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isSubscript() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isSuperscript() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isText() noexcept;
Raw LaTeX/TeX math content.
<mrdocs/Metadata/DocComment/Inline/MathInline.hpp>std::string literal;
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>constexpr static
InlineKind kind_id;
A sequence of text nodes.
<mrdocs/Metadata/DocComment/Block/ParagraphBlock.hpp>struct ParagraphBlock
: BlockCommonBase<BlockKind::Paragraph>
, InlineContainer
Syntax:
Plain paragraph text.
Another paragraph.
| Name | Description |
|---|---|
BlockCommonBase<BlockKind::Paragraph> | Base class for providing variant discriminator functions. |
InlineContainer | An internal node in the inline element tree. |
| Name | Description |
|---|---|
ParagraphBlock [constructor] | Construct an empty paragraph. |
~ParagraphBlock [destructor] [virtual] | Virtual destructor for the polymorphic block hierarchy. |
operator= | Assignment operators |
append | append overloads |
asInlineContainer | Return this container as a base-class reference. |
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 in-place. |
empty | Determine if there are no inline children. |
end | End iterator forwarding to children. |
erase | Erase inline children. |
front | Get the first inline child. |
insert | Insert inline children. |
operator+= | Addition assignment operators |
size | Get the number of inline children. |
operator== | Equality compares child sequences. |
operator<=> | Three-way comparison operators |
| Name | Description |
|---|---|
children | Child inline elements contained here. |
| Name |
|---|
kind_id |
| 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. |
Construct an empty paragraph.
<mrdocs/Metadata/DocComment/Block/ParagraphBlock.hpp>constexpr
ParagraphBlock() noexcept = default;
Virtual destructor for the polymorphic block hierarchy.
<mrdocs/Metadata/DocComment/Block/ParagraphBlock.hpp>constexpr
virtual
~ParagraphBlock() override = default;
Three-way comparison operators
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>Compare paragraphs by their inline content.
auto
operator<=>(ParagraphBlock const& rhs) const = default;
» more...
Three-way comparison operator
constexpr
auto
operator<=>(BlockCommonBase<mrdocs::doc::BlockKind::Paragraph> const& rhs) const = default;
» more...
Compare two InlineContainers.
std::strong_ordering
operator<=>(InlineContainer const& rhs) const;
» more...
Compare paragraphs by their inline content.
<mrdocs/Metadata/DocComment/Block/ParagraphBlock.hpp>auto
operator<=>(ParagraphBlock const& rhs) const = default;
| Name | Description |
|---|---|
| rhs | The right operand |
Three-way comparison operator
<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>constexpr
auto
operator<=>(BlockCommonBase<mrdocs::doc::BlockKind::Paragraph> const& rhs) const = default;
| Name | Description |
|---|---|
| rhs | The right operand |
Compare two InlineContainers.
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>std::strong_ordering
operator<=>(InlineContainer const& rhs) const;
| Name | Description |
|---|---|
| rhs | The right operand |
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isAdmonition() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isBrief() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isCode() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isDefinitionList() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isFootnoteDefinition() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isHeading() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isList() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isMath() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isParagraph() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>constexpr
static
bool
isParam() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>constexpr
static
bool
isPostcondition() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>constexpr
static
bool
isPrecondition() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isQuote() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>constexpr
static
bool
isReturns() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>constexpr
static
bool
isSee() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>constexpr
static
bool
isTParam() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isTable() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isThematicBreak() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>constexpr
static
bool
isThrows() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>constexpr static
BlockKind kind_id;
Documentation for a function parameter
<mrdocs/Metadata/DocComment/Block/ParamBlock.hpp>struct ParamBlock final
: BlockCommonBase<BlockKind::Param>
, InlineContainer
Syntax:
@param name description
| Name | Description |
|---|---|
BlockCommonBase<BlockKind::Param> | Base class for providing variant discriminator functions. |
InlineContainer | An internal node in the inline element tree. |
| Name | Description |
|---|---|
ParamBlock [constructor] | Constructors |
operator= | Assignment operators |
append | append overloads |
asInlineContainer | Return this container as a base-class reference. |
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 in-place. |
empty | Determine if there are no inline children. |
end | End iterator forwarding to children. |
erase | Erase inline children. |
front | Get the first inline child. |
insert | Insert inline children. |
operator+= | Addition assignment operators |
size | Get the number of inline children. |
operator== | Equality operators |
operator<=> | Three-way comparison operators |
| Name | Description |
|---|---|
children | Child inline elements contained here. |
direction | Direction (in/out/inout) of the parameter. |
name | Name of the parameter being documented. |
| Name |
|---|
kind_id |
| Name | Description |
|---|---|
ParamBlock | Inherit inline container constructors. |
| 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
<mrdocs/Metadata/DocComment/Block/ParamBlock.hpp>Build from an existing inline container.
ParamBlock(InlineContainer const& other);
» more...
Build from an rvalue inline container.
ParamBlock(InlineContainer&& other) noexcept;
» more...
Construct from name, text, and direction.
ParamBlock(
std::string_view name,
std::string_view text,
ParamDirection direction = ParamDirection::none);
» more...
| Name | Description |
|---|---|
| name | Parameter identifier. |
| text | Description text. |
| direction | Flow direction of the parameter. |
Build from an existing inline container.
<mrdocs/Metadata/DocComment/Block/ParamBlock.hpp>ParamBlock(InlineContainer const& other);
| Name | Description |
|---|---|
| other | The object to copy construct from |
Build from an rvalue inline container.
<mrdocs/Metadata/DocComment/Block/ParamBlock.hpp>ParamBlock(InlineContainer&& other) noexcept;
| Name | Description |
|---|---|
| other | The object to move construct from |
Construct from name, text, and direction.
<mrdocs/Metadata/DocComment/Block/ParamBlock.hpp>ParamBlock(
std::string_view name,
std::string_view text,
ParamDirection direction = ParamDirection::none);
| Name | Description |
|---|---|
| name | Parameter identifier. |
| text | Description text. |
| direction | Flow direction of the parameter. |
Equality operators
<mrdocs/Metadata/DocComment/Block/ParamBlock.hpp>Equality compares name, direction, and text.
constexpr
bool
operator==(ParamBlock const& rhs) const noexcept = default;
» more...
Equality compares child sequences.
constexpr
bool
operator==(InlineContainer const& rhs) const = default;
» more...
Equality compares name, direction, and text.
<mrdocs/Metadata/DocComment/Block/ParamBlock.hpp>constexpr
bool
operator==(ParamBlock const& rhs) const noexcept = default;
true if the objects are equal, false otherwise
| Name | Description |
|---|---|
| rhs | The right operand |
Equality compares child sequences.
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>constexpr
bool
operator==(InlineContainer const& rhs) const = default;
true if the objects are equal, false otherwise
| Name | Description |
|---|---|
| rhs | The right operand |
Three-way comparison operators
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>Order parameter docs by name, direction, and text.
auto
operator<=>(ParamBlock const& rhs) const = default;
» more...
Three-way comparison operator
constexpr
auto
operator<=>(BlockCommonBase<mrdocs::doc::BlockKind::Param> const& rhs) const = default;
» more...
Compare two InlineContainers.
std::strong_ordering
operator<=>(InlineContainer const& rhs) const;
» more...
Order parameter docs by name, direction, and text.
<mrdocs/Metadata/DocComment/Block/ParamBlock.hpp>auto
operator<=>(ParamBlock const& rhs) const = default;
| Name | Description |
|---|---|
| rhs | The right operand |
Three-way comparison operator
<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>constexpr
auto
operator<=>(BlockCommonBase<mrdocs::doc::BlockKind::Param> const& rhs) const = default;
| Name | Description |
|---|---|
| rhs | The right operand |
Compare two InlineContainers.
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>std::strong_ordering
operator<=>(InlineContainer const& rhs) const;
| Name | Description |
|---|---|
| rhs | The right operand |
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isAdmonition() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isBrief() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isCode() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isDefinitionList() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isFootnoteDefinition() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isHeading() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isList() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isMath() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isParagraph() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>constexpr
static
bool
isParam() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>constexpr
static
bool
isPostcondition() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>constexpr
static
bool
isPrecondition() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isQuote() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>constexpr
static
bool
isReturns() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>constexpr
static
bool
isSee() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>constexpr
static
bool
isTParam() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isTable() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isThematicBreak() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>constexpr
static
bool
isThrows() noexcept;
Direction (in/out/inout) of the parameter.
<mrdocs/Metadata/DocComment/Block/ParamBlock.hpp>ParamDirection direction = ParamDirection::none;
Name of the parameter being documented.
<mrdocs/Metadata/DocComment/Block/ParamBlock.hpp>std::string name;
<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>constexpr static
BlockKind kind_id;
Inherit inline container constructors.
<mrdocs/Metadata/DocComment/Block/ParamBlock.hpp>using InlineContainer::ParamBlock;
| 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. |
Text describing conditions guaranteed on successful exit.
<mrdocs/Metadata/DocComment/Block/PostconditionBlock.hpp>struct PostconditionBlock
: BlockCommonBase<BlockKind::Postcondition>
, InlineContainer
Syntax:
@post condition
| Name | Description |
|---|---|
BlockCommonBase<BlockKind::Postcondition> | Base class for providing variant discriminator functions. |
InlineContainer | An internal node in the inline element tree. |
| Name | Description |
|---|---|
operator= | Assignment operators |
append | append overloads |
asInlineContainer | Return this container as a base-class reference. |
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 in-place. |
empty | Determine if there are no inline children. |
end | End iterator forwarding to children. |
erase | Erase inline children. |
front | Get the first inline child. |
insert | Insert inline children. |
operator+= | Addition assignment operators |
size | Get the number of inline children. |
operator== | Equality operators |
operator<=> | Three-way comparison operators |
| Name | Description |
|---|---|
children | Child inline elements contained here. |
| Name |
|---|
kind_id |
| Name | Description |
|---|---|
PostconditionBlock | Inherit inline container constructors. |
| 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. |
Equality operators
<mrdocs/Metadata/DocComment/Block/PostconditionBlock.hpp>Equality compares the inline text.
constexpr
bool
operator==(PostconditionBlock const& rhs) const noexcept = default;
» more...
Equality compares child sequences.
constexpr
bool
operator==(InlineContainer const& rhs) const = default;
» more...
Equality compares the inline text.
<mrdocs/Metadata/DocComment/Block/PostconditionBlock.hpp>constexpr
bool
operator==(PostconditionBlock const& rhs) const noexcept = default;
true if the objects are equal, false otherwise
| Name | Description |
|---|---|
| rhs | The right operand |
Equality compares child sequences.
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>constexpr
bool
operator==(InlineContainer const& rhs) const = default;
true if the objects are equal, false otherwise
| Name | Description |
|---|---|
| rhs | The right operand |
Three-way comparison operators
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>Order postconditions by their inline text.
auto
operator<=>(PostconditionBlock const& rhs) const = default;
» more...
Three-way comparison operator
constexpr
auto
operator<=>(BlockCommonBase<mrdocs::doc::BlockKind::Postcondition> const& rhs) const = default;
» more...
Compare two InlineContainers.
std::strong_ordering
operator<=>(InlineContainer const& rhs) const;
» more...
Order postconditions by their inline text.
<mrdocs/Metadata/DocComment/Block/PostconditionBlock.hpp>auto
operator<=>(PostconditionBlock const& rhs) const = default;
| Name | Description |
|---|---|
| rhs | The right operand |
Three-way comparison operator
<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>constexpr
auto
operator<=>(BlockCommonBase<mrdocs::doc::BlockKind::Postcondition> const& rhs) const = default;
| Name | Description |
|---|---|
| rhs | The right operand |
Compare two InlineContainers.
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>std::strong_ordering
operator<=>(InlineContainer const& rhs) const;
| Name | Description |
|---|---|
| rhs | The right operand |
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isAdmonition() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isBrief() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isCode() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isDefinitionList() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isFootnoteDefinition() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isHeading() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isList() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isMath() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isParagraph() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>constexpr
static
bool
isParam() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>constexpr
static
bool
isPostcondition() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>constexpr
static
bool
isPrecondition() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isQuote() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>constexpr
static
bool
isReturns() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>constexpr
static
bool
isSee() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>constexpr
static
bool
isTParam() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isTable() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isThematicBreak() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>constexpr
static
bool
isThrows() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>constexpr static
BlockKind kind_id;
Inherit inline container constructors.
<mrdocs/Metadata/DocComment/Block/PostconditionBlock.hpp>using InlineContainer::PostconditionBlock;
| 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-construct child nodes. |
| mrdocs::doc::InlineContainer::InlineContainer | Copy-construct all child nodes. |
Text describing required conditions before entry.
<mrdocs/Metadata/DocComment/Block/PreconditionBlock.hpp>struct PreconditionBlock final
: BlockCommonBase<BlockKind::Precondition>
, InlineContainer
Syntax:
@pre condition
| Name | Description |
|---|---|
BlockCommonBase<BlockKind::Precondition> | Base class for providing variant discriminator functions. |
InlineContainer | An internal node in the inline element tree. |
| Name | Description |
|---|---|
operator= | Assignment operators |
append | append overloads |
asInlineContainer | Return this container as a base-class reference. |
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 in-place. |
empty | Determine if there are no inline children. |
end | End iterator forwarding to children. |
erase | Erase inline children. |
front | Get the first inline child. |
insert | Insert inline children. |
operator+= | Addition assignment operators |
size | Get the number of inline children. |
operator== | Equality operators |
operator<=> | Three-way comparison operators |
| Name | Description |
|---|---|
children | Child inline elements contained here. |
| Name |
|---|
kind_id |
| Name | Description |
|---|---|
PreconditionBlock | Inherit inline container constructors. |
| 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. |
Equality operators
<mrdocs/Metadata/DocComment/Block/PreconditionBlock.hpp>Equality compares the inline text.
constexpr
bool
operator==(PreconditionBlock const& rhs) const noexcept = default;
» more...
Equality compares child sequences.
constexpr
bool
operator==(InlineContainer const& rhs) const = default;
» more...
Equality compares the inline text.
<mrdocs/Metadata/DocComment/Block/PreconditionBlock.hpp>constexpr
bool
operator==(PreconditionBlock const& rhs) const noexcept = default;
true if the objects are equal, false otherwise
| Name | Description |
|---|---|
| rhs | The right operand |
Equality compares child sequences.
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>constexpr
bool
operator==(InlineContainer const& rhs) const = default;
true if the objects are equal, false otherwise
| Name | Description |
|---|---|
| rhs | The right operand |
Three-way comparison operators
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>Order preconditions by their inline text.
auto
operator<=>(PreconditionBlock const& rhs) const = default;
» more...
Three-way comparison operator
constexpr
auto
operator<=>(BlockCommonBase<mrdocs::doc::BlockKind::Precondition> const& rhs) const = default;
» more...
Compare two InlineContainers.
std::strong_ordering
operator<=>(InlineContainer const& rhs) const;
» more...
Order preconditions by their inline text.
<mrdocs/Metadata/DocComment/Block/PreconditionBlock.hpp>auto
operator<=>(PreconditionBlock const& rhs) const = default;
| Name | Description |
|---|---|
| rhs | The right operand |
Three-way comparison operator
<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>constexpr
auto
operator<=>(BlockCommonBase<mrdocs::doc::BlockKind::Precondition> const& rhs) const = default;
| Name | Description |
|---|---|
| rhs | The right operand |
Compare two InlineContainers.
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>std::strong_ordering
operator<=>(InlineContainer const& rhs) const;
| Name | Description |
|---|---|
| rhs | The right operand |
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isAdmonition() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isBrief() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isCode() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isDefinitionList() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isFootnoteDefinition() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isHeading() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isList() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isMath() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isParagraph() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>constexpr
static
bool
isParam() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>constexpr
static
bool
isPostcondition() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>constexpr
static
bool
isPrecondition() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isQuote() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>constexpr
static
bool
isReturns() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>constexpr
static
bool
isSee() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>constexpr
static
bool
isTParam() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isTable() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isThematicBreak() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>constexpr
static
bool
isThrows() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>constexpr static
BlockKind kind_id;
Inherit inline container constructors.
<mrdocs/Metadata/DocComment/Block/PreconditionBlock.hpp>using InlineContainer::PreconditionBlock;
| 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-construct child nodes. |
| mrdocs::doc::InlineContainer::InlineContainer | Copy-construct all child nodes. |
A quoted block of text.
<mrdocs/Metadata/DocComment/Block/QuoteBlock.hpp>struct QuoteBlock final
: BlockCommonBase<BlockKind::Quote>
, BlockContainer
Syntax:
> quoted text
Multi-line quotes:
> This is the first line of a multi-line quote.
> This is the second line.
> And this is the third.
Nested quotes:
> This is the outer quote.
>
> > This is a nested quote within the outer quote.
> >
> > > This is a further nested quote.
Quotes with other markdown elements:
> ### Important Note
>
> - This blockquote contains a heading.
> - And a list item.
>
> *Emphasis* and **strong emphasis** also work within blockquotes.
| Name | Description |
|---|---|
BlockCommonBase<BlockKind::Quote> | Base class for providing variant discriminator functions. |
BlockContainer | A composite block that stores a sequence of child blocks. |
| Name | Description |
|---|---|
asBlockContainer | asBlockContainer overloads |
operator== | Equality operators |
operator<=> | Three-way comparison operators |
| Name | Description |
|---|---|
blocks | Child blocks contained within this composite block. |
| Name |
|---|
kind_id |
| 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
<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>Equality compares quoted child content.
constexpr
bool
operator==(QuoteBlock const& rhs) const noexcept = default;
» more...
Equality compares the stored child blocks.
constexpr
bool
operator==(BlockContainer const& rhs) const = default;
» more...
Equality compares quoted child content.
<mrdocs/Metadata/DocComment/Block/QuoteBlock.hpp>constexpr
bool
operator==(QuoteBlock const& rhs) const noexcept = default;
true if the objects are equal, false otherwise
| Name | Description |
|---|---|
| rhs | The right operand |
Equality compares the stored child blocks.
<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>constexpr
bool
operator==(BlockContainer const& rhs) const = default;
true if the objects are equal, false otherwise
| Name | Description |
|---|---|
| rhs | The right operand |
Three-way comparison operators
<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>Order quote blocks by their child content.
auto
operator<=>(QuoteBlock const& rhs) const = default;
» more...
Three-way comparison operator
constexpr
auto
operator<=>(BlockCommonBase<mrdocs::doc::BlockKind::Quote> const& rhs) const = default;
» more...
Order containers lexicographically by their children.
std::strong_ordering
operator<=>(BlockContainer const& rhs) const;
» more...
Order quote blocks by their child content.
<mrdocs/Metadata/DocComment/Block/QuoteBlock.hpp>auto
operator<=>(QuoteBlock const& rhs) const = default;
| Name | Description |
|---|---|
| rhs | The right operand |
Three-way comparison operator
<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>constexpr
auto
operator<=>(BlockCommonBase<mrdocs::doc::BlockKind::Quote> const& rhs) const = default;
| Name | Description |
|---|---|
| rhs | The right operand |
Order containers lexicographically by their children.
<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>std::strong_ordering
operator<=>(BlockContainer const& rhs) const;
| Name | Description |
|---|---|
| rhs | The right operand |
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isAdmonition() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isBrief() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isCode() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isDefinitionList() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isFootnoteDefinition() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isHeading() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isList() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isMath() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isParagraph() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>constexpr
static
bool
isParam() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>constexpr
static
bool
isPostcondition() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>constexpr
static
bool
isPrecondition() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isQuote() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>constexpr
static
bool
isReturns() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>constexpr
static
bool
isSee() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>constexpr
static
bool
isTParam() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isTable() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isThematicBreak() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>constexpr
static
bool
isThrows() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>constexpr static
BlockKind kind_id;
A reference to a symbol.
<mrdocs/Metadata/DocComment/Inline/ReferenceInline.hpp>struct ReferenceInline
: InlineCommonBase<InlineKind::Reference>
Syntax:
@ref target "label"
| Name | Description |
|---|---|
InlineCommonBase<InlineKind::Reference> | Base class for providing variant discriminator functions. |
| Name | Description |
|---|---|
ReferenceInline [constructor] | Construct a reference with optional display text. |
operator== | Equality compares literal and target id. |
operator<=> | Order references by literal and target id. |
| Name |
|---|
isCode |
isCopyDetails |
isEmph |
isFootnoteReference |
isHighlight |
isImage |
isLineBreak |
isLink |
isMath |
isReference |
isSoftBreak |
isStrikethrough |
isStrong |
isSubscript |
isSuperscript |
isText |
| Name | Description |
|---|---|
id | Symbol being referenced. |
literal | Display text of the reference. |
| Name |
|---|
kind_id |
| 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 a reference with optional display text.
<mrdocs/Metadata/DocComment/Inline/ReferenceInline.hpp>explicit
ReferenceInline(std::string str = {}) noexcept;
| Name | Description |
|---|---|
| str | The object to construct from |
Equality compares literal and target id.
<mrdocs/Metadata/DocComment/Inline/ReferenceInline.hpp>constexpr
bool
operator==(ReferenceInline const& rhs) const noexcept = default;
true if the objects are equal, false otherwise
| Name | Description |
|---|---|
| rhs | The right operand |
Order references by literal and target id.
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>Order references by literal and target id.
auto
operator<=>(ReferenceInline const& rhs) const = default;
» more...
Three-way comparison operator
constexpr
auto
operator<=>(InlineCommonBase<mrdocs::doc::InlineKind::Reference> const& rhs) const = default;
» more...
Order references by literal and target id.
<mrdocs/Metadata/DocComment/Inline/ReferenceInline.hpp>auto
operator<=>(ReferenceInline const& rhs) const = default;
| Name | Description |
|---|---|
| rhs | The right operand |
Three-way comparison operator
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>constexpr
auto
operator<=>(InlineCommonBase<mrdocs::doc::InlineKind::Reference> const& rhs) const = default;
| Name | Description |
|---|---|
| rhs | The right operand |
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isCode() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isCopyDetails() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isEmph() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isFootnoteReference() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isHighlight() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isImage() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isLineBreak() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isLink() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isMath() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isReference() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isSoftBreak() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isStrikethrough() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isStrong() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isSubscript() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isSuperscript() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isText() noexcept;
Symbol being referenced.
<mrdocs/Metadata/DocComment/Inline/ReferenceInline.hpp>SymbolID id = = SymbolID::invalid;
Display text of the reference.
<mrdocs/Metadata/DocComment/Inline/ReferenceInline.hpp>std::string literal;
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>constexpr static
InlineKind kind_id;
Documentation for a function return type
<mrdocs/Metadata/DocComment/Block/ReturnsBlock.hpp>struct ReturnsBlock final
: BlockCommonBase<BlockKind::Returns>
, InlineContainer
Syntax:
@return description
| Name | Description |
|---|---|
BlockCommonBase<BlockKind::Returns> | Base class for providing variant discriminator functions. |
InlineContainer | An internal node in the inline element tree. |
| Name | Description |
|---|---|
ReturnsBlock [constructor] | Constructors |
~ReturnsBlock [destructor] [virtual] | Virtual destructor for polymorphic base. |
operator= | Assignment operators |
append | append overloads |
asInlineContainer | Return this container as a base-class reference. |
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 in-place. |
empty | Determine if there are no inline children. |
end | End iterator forwarding to children. |
erase | Erase inline children. |
front | Get the first inline child. |
insert | Insert inline children. |
operator+= | Addition assignment operators |
size | Get the number of inline children. |
operator== | Equality operators |
operator<=> | Three-way comparison operators |
| Name | Description |
|---|---|
children | Child inline elements contained here. |
| Name |
|---|
kind_id |
| Name | Description |
|---|---|
ReturnsBlock | Inherit inline container constructors. |
| 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
<mrdocs/Metadata/DocComment/Block/ReturnsBlock.hpp>Copy constructor.
constexpr
ReturnsBlock(ReturnsBlock const& other) = default;
» more...
Move constructor.
constexpr
ReturnsBlock(ReturnsBlock&& other) noexcept = default;
» more...
Construct from inline content (copy).
ReturnsBlock(InlineContainer const& other);
» more...
Construct from inline content (move).
ReturnsBlock(InlineContainer&& other) noexcept;
» more...
Copy constructor.
<mrdocs/Metadata/DocComment/Block/ReturnsBlock.hpp>constexpr
ReturnsBlock(ReturnsBlock const& other) = default;
| Name | Description |
|---|---|
| other | The object to copy construct from |
Move constructor.
<mrdocs/Metadata/DocComment/Block/ReturnsBlock.hpp>constexpr
ReturnsBlock(ReturnsBlock&& other) noexcept = default;
| Name | Description |
|---|---|
| other | The object to move construct from |
Construct from inline content (copy).
<mrdocs/Metadata/DocComment/Block/ReturnsBlock.hpp>ReturnsBlock(InlineContainer const& other);
| Name | Description |
|---|---|
| other | The object to copy construct from |
Construct from inline content (move).
<mrdocs/Metadata/DocComment/Block/ReturnsBlock.hpp>ReturnsBlock(InlineContainer&& other) noexcept;
| Name | Description |
|---|---|
| other | The object to move construct from |
Virtual destructor for polymorphic base.
<mrdocs/Metadata/DocComment/Block/ReturnsBlock.hpp>constexpr
virtual
~ReturnsBlock() override = default;
Assignment operators
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>Copy-assign child nodes.
constexpr
InlineContainer&
operator=(InlineContainer const& other) = default;
» more...
Copy assignment.
constexpr
ReturnsBlock&
operator=(ReturnsBlock const& other) = default;
» more...
Move-assign child nodes.
constexpr
InlineContainer&
operator=(InlineContainer&& other) noexcept = default;
» more...
Move assignment.
constexpr
ReturnsBlock&
operator=(ReturnsBlock&& other) noexcept = default;
» more...
Assign an InlineContainer with a single TextInline child.
InlineContainer&
operator=(std::string_view text);
» more...
Copy-assign child nodes.
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>constexpr
InlineContainer&
operator=(InlineContainer const& other) = default;
| Name | Description |
|---|---|
| other | The object to copy assign from |
Copy assignment.
<mrdocs/Metadata/DocComment/Block/ReturnsBlock.hpp>constexpr
ReturnsBlock&
operator=(ReturnsBlock const& other) = default;
| Name | Description |
|---|---|
| other | The object to copy assign from |
Move-assign child nodes.
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>constexpr
InlineContainer&
operator=(InlineContainer&& other) noexcept = default;
| Name | Description |
|---|---|
| other | The object to move assign from |
Move assignment.
<mrdocs/Metadata/DocComment/Block/ReturnsBlock.hpp>constexpr
ReturnsBlock&
operator=(ReturnsBlock&& other) noexcept = default;
| Name | Description |
|---|---|
| other | The object to move assign from |
Assign an InlineContainer with a single TextInline child.
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>InlineContainer&
operator=(std::string_view text);
| Name | Description |
|---|---|
| text | The object to assign from |
Equality operators
<mrdocs/Metadata/DocComment/Block/ReturnsBlock.hpp>Equality compares inline content.
constexpr
bool
operator==(ReturnsBlock const& rhs) const noexcept = default;
» more...
Equality compares child sequences.
constexpr
bool
operator==(InlineContainer const& rhs) const = default;
» more...
Equality compares inline content.
<mrdocs/Metadata/DocComment/Block/ReturnsBlock.hpp>constexpr
bool
operator==(ReturnsBlock const& rhs) const noexcept = default;
true if the objects are equal, false otherwise
| Name | Description |
|---|---|
| rhs | The right operand |
Equality compares child sequences.
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>constexpr
bool
operator==(InlineContainer const& rhs) const = default;
true if the objects are equal, false otherwise
| Name | Description |
|---|---|
| rhs | The right operand |
Three-way comparison operators
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>Order return docs by inline content.
auto
operator<=>(ReturnsBlock const& rhs) const = default;
» more...
Three-way comparison operator
constexpr
auto
operator<=>(BlockCommonBase<mrdocs::doc::BlockKind::Returns> const& rhs) const = default;
» more...
Compare two InlineContainers.
std::strong_ordering
operator<=>(InlineContainer const& rhs) const;
» more...
Order return docs by inline content.
<mrdocs/Metadata/DocComment/Block/ReturnsBlock.hpp>auto
operator<=>(ReturnsBlock const& rhs) const = default;
| Name | Description |
|---|---|
| rhs | The right operand |
Three-way comparison operator
<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>constexpr
auto
operator<=>(BlockCommonBase<mrdocs::doc::BlockKind::Returns> const& rhs) const = default;
| Name | Description |
|---|---|
| rhs | The right operand |
Compare two InlineContainers.
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>std::strong_ordering
operator<=>(InlineContainer const& rhs) const;
| Name | Description |
|---|---|
| rhs | The right operand |
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isAdmonition() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isBrief() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isCode() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isDefinitionList() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isFootnoteDefinition() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isHeading() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isList() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isMath() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isParagraph() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>constexpr
static
bool
isParam() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>constexpr
static
bool
isPostcondition() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>constexpr
static
bool
isPrecondition() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isQuote() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>constexpr
static
bool
isReturns() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>constexpr
static
bool
isSee() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>constexpr
static
bool
isTParam() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isTable() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isThematicBreak() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>constexpr
static
bool
isThrows() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>constexpr static
BlockKind kind_id;
Inherit inline container constructors.
<mrdocs/Metadata/DocComment/Block/ReturnsBlock.hpp>using InlineContainer::ReturnsBlock;
| 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
<mrdocs/Metadata/DocComment/Block/SeeBlock.hpp>struct SeeBlock final
: BlockCommonBase<BlockKind::See>
, InlineContainer
Syntax:
@see other_symbol
or
@see AnotherFunction()
@see MyClass::calculateSomething()
@see MyFile.h
@see "The Doxygen Manual"
| Name | Description |
|---|---|
BlockCommonBase<BlockKind::See> | Base class for providing variant discriminator functions. |
InlineContainer | An internal node in the inline element tree. |
| Name | Description |
|---|---|
operator= | Assignment operators |
append | append overloads |
asInlineContainer | Return this container as a base-class reference. |
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 in-place. |
empty | Determine if there are no inline children. |
end | End iterator forwarding to children. |
erase | Erase inline children. |
front | Get the first inline child. |
insert | Insert inline children. |
operator+= | Addition assignment operators |
size | Get the number of inline children. |
operator== | Equality operators |
operator<=> | Three-way comparison operators |
| Name | Description |
|---|---|
children | Child inline elements contained here. |
| Name |
|---|
kind_id |
| Name | Description |
|---|---|
SeeBlock | Inherit inline container constructors. |
| 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. |
paragraph listing related symbols or references.
Equality operators
<mrdocs/Metadata/DocComment/Block/SeeBlock.hpp>Equality compares inline content.
constexpr
bool
operator==(SeeBlock const& rhs) const noexcept = default;
» more...
Equality compares child sequences.
constexpr
bool
operator==(InlineContainer const& rhs) const = default;
» more...
Equality compares inline content.
<mrdocs/Metadata/DocComment/Block/SeeBlock.hpp>constexpr
bool
operator==(SeeBlock const& rhs) const noexcept = default;
true if the objects are equal, false otherwise
| Name | Description |
|---|---|
| rhs | The right operand |
Equality compares child sequences.
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>constexpr
bool
operator==(InlineContainer const& rhs) const = default;
true if the objects are equal, false otherwise
| Name | Description |
|---|---|
| rhs | The right operand |
Three-way comparison operators
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>Order see-also entries by inline content.
auto
operator<=>(SeeBlock const& rhs) const = default;
» more...
Three-way comparison operator
constexpr
auto
operator<=>(BlockCommonBase<mrdocs::doc::BlockKind::See> const& rhs) const = default;
» more...
Compare two InlineContainers.
std::strong_ordering
operator<=>(InlineContainer const& rhs) const;
» more...
Order see-also entries by inline content.
<mrdocs/Metadata/DocComment/Block/SeeBlock.hpp>auto
operator<=>(SeeBlock const& rhs) const = default;
| Name | Description |
|---|---|
| rhs | The right operand |
Three-way comparison operator
<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>constexpr
auto
operator<=>(BlockCommonBase<mrdocs::doc::BlockKind::See> const& rhs) const = default;
| Name | Description |
|---|---|
| rhs | The right operand |
Compare two InlineContainers.
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>std::strong_ordering
operator<=>(InlineContainer const& rhs) const;
| Name | Description |
|---|---|
| rhs | The right operand |
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isAdmonition() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isBrief() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isCode() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isDefinitionList() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isFootnoteDefinition() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isHeading() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isList() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isMath() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isParagraph() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>constexpr
static
bool
isParam() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>constexpr
static
bool
isPostcondition() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>constexpr
static
bool
isPrecondition() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isQuote() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>constexpr
static
bool
isReturns() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>constexpr
static
bool
isSee() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>constexpr
static
bool
isTParam() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isTable() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isThematicBreak() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>constexpr
static
bool
isThrows() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>constexpr static
BlockKind kind_id;
Inherit inline container constructors.
<mrdocs/Metadata/DocComment/Block/SeeBlock.hpp>using InlineContainer::SeeBlock;
| 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-construct child nodes. |
| mrdocs::doc::InlineContainer::InlineContainer | Copy-construct all child nodes. |
A line break that may render as a space
<mrdocs/Metadata/DocComment/Inline/SoftBreakInline.hpp>struct SoftBreakInline
: InlineCommonBase<InlineKind::SoftBreak>
Syntax:
This is the first part of a line,
and this is the continuation on the next line.
Placing a backslash (\) at the end of a line, followed by a new line, can also create a soft line break. This method is often preferred because it is less susceptible to space-trimming issues.
This is the first part of a line,\
and this is the continuation on the next line.
| Name | Description |
|---|---|
InlineCommonBase<InlineKind::SoftBreak> | Base class for providing variant discriminator functions. |
| Name | Description |
|---|---|
SoftBreakInline [constructor] | Construct a soft line break node. |
~SoftBreakInline [destructor] [virtual] | Virtual destructor for inline hierarchy. |
operator== | Equality compares soft breaks (trivial). |
operator<=> | Order soft breaks (trivial). |
| Name |
|---|
isCode |
isCopyDetails |
isEmph |
isFootnoteReference |
isHighlight |
isImage |
isLineBreak |
isLink |
isMath |
isReference |
isSoftBreak |
isStrikethrough |
isStrong |
isSubscript |
isSuperscript |
isText |
| Name |
|---|
kind_id |
| 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 a soft line break node.
<mrdocs/Metadata/DocComment/Inline/SoftBreakInline.hpp>constexpr
SoftBreakInline() noexcept = default;
Virtual destructor for inline hierarchy.
<mrdocs/Metadata/DocComment/Inline/SoftBreakInline.hpp>constexpr
virtual
~SoftBreakInline() override = default;
Equality compares soft breaks (trivial).
<mrdocs/Metadata/DocComment/Inline/SoftBreakInline.hpp>constexpr
bool
operator==(SoftBreakInline const& rhs) const noexcept = default;
true if the objects are equal, false otherwise
| Name | Description |
|---|---|
| rhs | The right operand |
Order soft breaks (trivial).
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>Order soft breaks (trivial).
constexpr
auto
operator<=>(SoftBreakInline const& rhs) const = default;
» more...
Three-way comparison operator
constexpr
auto
operator<=>(InlineCommonBase<mrdocs::doc::InlineKind::SoftBreak> const& rhs) const = default;
» more...
Order soft breaks (trivial).
<mrdocs/Metadata/DocComment/Inline/SoftBreakInline.hpp>constexpr
auto
operator<=>(SoftBreakInline const& rhs) const = default;
| Name | Description |
|---|---|
| rhs | The right operand |
Three-way comparison operator
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>constexpr
auto
operator<=>(InlineCommonBase<mrdocs::doc::InlineKind::SoftBreak> const& rhs) const = default;
| Name | Description |
|---|---|
| rhs | The right operand |
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isCode() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isCopyDetails() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isEmph() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isFootnoteReference() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isHighlight() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isImage() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isLineBreak() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isLink() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isMath() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isReference() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isSoftBreak() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isStrikethrough() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isStrong() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isSubscript() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isSuperscript() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isText() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>constexpr static
InlineKind kind_id;
Strikethrough span to show removed or deprecated text.
<mrdocs/Metadata/DocComment/Inline/StrikethroughInline.hpp>struct StrikethroughInline final
: InlineCommonBase<InlineKind::Strikethrough>
, InlineContainer
Syntax:
~~crossed out~~
When rendered to HTML, the Markdown syntax above typically translates into the del tag, which represents content that has been deleted or is no longer accurate.
<del>This text is struck through.</del>
| Name | Description |
|---|---|
InlineCommonBase<InlineKind::Strikethrough> | Base class for providing variant discriminator functions. |
InlineContainer | An internal node in the inline element tree. |
| Name | Description |
|---|---|
operator= | Assignment operators |
append | append overloads |
asInlineContainer | Return this container as a base-class reference. |
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 in-place. |
empty | Determine if there are no inline children. |
end | End iterator forwarding to children. |
erase | Erase inline children. |
front | Get the first inline child. |
insert | Insert inline children. |
operator+= | Addition assignment operators |
size | Get the number of inline children. |
operator== | Equality operators |
operator<=> | Three-way comparison operators |
| Name |
|---|
isCode |
isCopyDetails |
isEmph |
isFootnoteReference |
isHighlight |
isImage |
isLineBreak |
isLink |
isMath |
isReference |
isSoftBreak |
isStrikethrough |
isStrong |
isSubscript |
isSuperscript |
isText |
| Name | Description |
|---|---|
children | Child inline elements contained here. |
| Name |
|---|
kind_id |
| 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. |
Equality operators
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>Equality compares contained inline children.
constexpr
bool
operator==(StrikethroughInline const& rhs) const noexcept = default;
» more...
Equality compares child sequences.
constexpr
bool
operator==(InlineContainer const& rhs) const = default;
» more...
Equality compares contained inline children.
<mrdocs/Metadata/DocComment/Inline/StrikethroughInline.hpp>constexpr
bool
operator==(StrikethroughInline const& rhs) const noexcept = default;
true if the objects are equal, false otherwise
| Name | Description |
|---|---|
| rhs | The right operand |
Equality compares child sequences.
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>constexpr
bool
operator==(InlineContainer const& rhs) const = default;
true if the objects are equal, false otherwise
| Name | Description |
|---|---|
| rhs | The right operand |
Three-way comparison operators
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>Order strikethrough spans by their children.
auto
operator<=>(StrikethroughInline const& rhs) const = default;
» more...
Three-way comparison operator
constexpr
auto
operator<=>(InlineCommonBase<mrdocs::doc::InlineKind::Strikethrough> const& rhs) const = default;
» more...
Compare two InlineContainers.
std::strong_ordering
operator<=>(InlineContainer const& rhs) const;
» more...
Order strikethrough spans by their children.
<mrdocs/Metadata/DocComment/Inline/StrikethroughInline.hpp>auto
operator<=>(StrikethroughInline const& rhs) const = default;
| Name | Description |
|---|---|
| rhs | The right operand |
Three-way comparison operator
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>constexpr
auto
operator<=>(InlineCommonBase<mrdocs::doc::InlineKind::Strikethrough> const& rhs) const = default;
| Name | Description |
|---|---|
| rhs | The right operand |
Compare two InlineContainers.
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>std::strong_ordering
operator<=>(InlineContainer const& rhs) const;
| Name | Description |
|---|---|
| rhs | The right operand |
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isCode() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isCopyDetails() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isEmph() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isFootnoteReference() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isHighlight() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isImage() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isLineBreak() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isLink() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isMath() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isReference() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isSoftBreak() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isStrikethrough() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isStrong() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isSubscript() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isSuperscript() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isText() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>constexpr static
InlineKind kind_id;
Strong emphasis span (typically rendered in bold).
<mrdocs/Metadata/DocComment/Inline/StrongInline.hpp>struct StrongInline final
: InlineCommonBase<InlineKind::Strong>
, InlineContainer
Syntax:
@b bold
| Name | Description |
|---|---|
InlineCommonBase<InlineKind::Strong> | Base class for providing variant discriminator functions. |
InlineContainer | An internal node in the inline element tree. |
| Name | Description |
|---|---|
operator= | Assignment operators |
append | append overloads |
asInlineContainer | Return this container as a base-class reference. |
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 in-place. |
empty | Determine if there are no inline children. |
end | End iterator forwarding to children. |
erase | Erase inline children. |
front | Get the first inline child. |
insert | Insert inline children. |
operator+= | Addition assignment operators |
size | Get the number of inline children. |
operator== | Equality operators |
operator<=> | Three-way comparison operators |
| Name |
|---|
isCode |
isCopyDetails |
isEmph |
isFootnoteReference |
isHighlight |
isImage |
isLineBreak |
isLink |
isMath |
isReference |
isSoftBreak |
isStrikethrough |
isStrong |
isSubscript |
isSuperscript |
isText |
| Name | Description |
|---|---|
children | Child inline elements contained here. |
| Name |
|---|
kind_id |
| Name | Description |
|---|---|
StrongInline | Inherit text container constructors. |
| 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. |
Equality operators
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>Equality compares contained inline children.
constexpr
bool
operator==(StrongInline const& rhs) const noexcept = default;
» more...
Equality compares child sequences.
constexpr
bool
operator==(InlineContainer const& rhs) const = default;
» more...
Equality compares contained inline children.
<mrdocs/Metadata/DocComment/Inline/StrongInline.hpp>constexpr
bool
operator==(StrongInline const& rhs) const noexcept = default;
true if the objects are equal, false otherwise
| Name | Description |
|---|---|
| rhs | The right operand |
Equality compares child sequences.
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>constexpr
bool
operator==(InlineContainer const& rhs) const = default;
true if the objects are equal, false otherwise
| Name | Description |
|---|---|
| rhs | The right operand |
Three-way comparison operators
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>Order strong spans by their children.
auto
operator<=>(StrongInline const& rhs) const = default;
» more...
Three-way comparison operator
constexpr
auto
operator<=>(InlineCommonBase<mrdocs::doc::InlineKind::Strong> const& rhs) const = default;
» more...
Compare two InlineContainers.
std::strong_ordering
operator<=>(InlineContainer const& rhs) const;
» more...
Order strong spans by their children.
<mrdocs/Metadata/DocComment/Inline/StrongInline.hpp>auto
operator<=>(StrongInline const& rhs) const = default;
| Name | Description |
|---|---|
| rhs | The right operand |
Three-way comparison operator
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>constexpr
auto
operator<=>(InlineCommonBase<mrdocs::doc::InlineKind::Strong> const& rhs) const = default;
| Name | Description |
|---|---|
| rhs | The right operand |
Compare two InlineContainers.
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>std::strong_ordering
operator<=>(InlineContainer const& rhs) const;
| Name | Description |
|---|---|
| rhs | The right operand |
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isCode() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isCopyDetails() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isEmph() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isFootnoteReference() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isHighlight() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isImage() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isLineBreak() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isLink() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isMath() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isReference() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isSoftBreak() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isStrikethrough() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isStrong() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isSubscript() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isSuperscript() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isText() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>constexpr static
InlineKind kind_id;
Inherit text container constructors.
<mrdocs/Metadata/DocComment/Inline/StrongInline.hpp>using InlineContainer::StrongInline;
| 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-construct child nodes. |
| mrdocs::doc::InlineContainer::InlineContainer | Copy-construct all child nodes. |
Subscript text fragment (lowered baseline).
<mrdocs/Metadata/DocComment/Inline/SubscriptInline.hpp>struct SubscriptInline final
: InlineCommonBase<InlineKind::Subscript>
, InlineContainer
Syntax:
H~2~O
| Name | Description |
|---|---|
InlineCommonBase<InlineKind::Subscript> | Base class for providing variant discriminator functions. |
InlineContainer | An internal node in the inline element tree. |
| Name | Description |
|---|---|
operator= | Assignment operators |
append | append overloads |
asInlineContainer | Return this container as a base-class reference. |
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 in-place. |
empty | Determine if there are no inline children. |
end | End iterator forwarding to children. |
erase | Erase inline children. |
front | Get the first inline child. |
insert | Insert inline children. |
operator+= | Addition assignment operators |
size | Get the number of inline children. |
operator== | Equality operators |
operator<=> | Three-way comparison operators |
| Name |
|---|
isCode |
isCopyDetails |
isEmph |
isFootnoteReference |
isHighlight |
isImage |
isLineBreak |
isLink |
isMath |
isReference |
isSoftBreak |
isStrikethrough |
isStrong |
isSubscript |
isSuperscript |
isText |
| Name | Description |
|---|---|
children | Child inline elements contained here. |
| Name |
|---|
kind_id |
| 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. |
Equality operators
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>Equality compares contained inline children.
constexpr
bool
operator==(SubscriptInline const& rhs) const noexcept = default;
» more...
Equality compares child sequences.
constexpr
bool
operator==(InlineContainer const& rhs) const = default;
» more...
Equality compares contained inline children.
<mrdocs/Metadata/DocComment/Inline/SubscriptInline.hpp>constexpr
bool
operator==(SubscriptInline const& rhs) const noexcept = default;
true if the objects are equal, false otherwise
| Name | Description |
|---|---|
| rhs | The right operand |
Equality compares child sequences.
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>constexpr
bool
operator==(InlineContainer const& rhs) const = default;
true if the objects are equal, false otherwise
| Name | Description |
|---|---|
| rhs | The right operand |
Three-way comparison operators
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>Order subscript spans by their children.
auto
operator<=>(SubscriptInline const& rhs) const = default;
» more...
Three-way comparison operator
constexpr
auto
operator<=>(InlineCommonBase<mrdocs::doc::InlineKind::Subscript> const& rhs) const = default;
» more...
Compare two InlineContainers.
std::strong_ordering
operator<=>(InlineContainer const& rhs) const;
» more...
Order subscript spans by their children.
<mrdocs/Metadata/DocComment/Inline/SubscriptInline.hpp>auto
operator<=>(SubscriptInline const& rhs) const = default;
| Name | Description |
|---|---|
| rhs | The right operand |
Three-way comparison operator
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>constexpr
auto
operator<=>(InlineCommonBase<mrdocs::doc::InlineKind::Subscript> const& rhs) const = default;
| Name | Description |
|---|---|
| rhs | The right operand |
Compare two InlineContainers.
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>std::strong_ordering
operator<=>(InlineContainer const& rhs) const;
| Name | Description |
|---|---|
| rhs | The right operand |
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isCode() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isCopyDetails() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isEmph() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isFootnoteReference() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isHighlight() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isImage() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isLineBreak() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isLink() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isMath() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isReference() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isSoftBreak() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isStrikethrough() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isStrong() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isSubscript() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isSuperscript() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isText() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>constexpr static
InlineKind kind_id;
Superscript text fragment (raised baseline).
<mrdocs/Metadata/DocComment/Inline/SuperscriptInline.hpp>struct SuperscriptInline final
: InlineCommonBase<InlineKind::Superscript>
, InlineContainer
Syntax:
x^2^
| Name | Description |
|---|---|
InlineCommonBase<InlineKind::Superscript> | Base class for providing variant discriminator functions. |
InlineContainer | An internal node in the inline element tree. |
| Name | Description |
|---|---|
operator= | Assignment operators |
append | append overloads |
asInlineContainer | Return this container as a base-class reference. |
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 in-place. |
empty | Determine if there are no inline children. |
end | End iterator forwarding to children. |
erase | Erase inline children. |
front | Get the first inline child. |
insert | Insert inline children. |
operator+= | Addition assignment operators |
size | Get the number of inline children. |
operator== | Equality operators |
operator<=> | Three-way comparison operators |
| Name |
|---|
isCode |
isCopyDetails |
isEmph |
isFootnoteReference |
isHighlight |
isImage |
isLineBreak |
isLink |
isMath |
isReference |
isSoftBreak |
isStrikethrough |
isStrong |
isSubscript |
isSuperscript |
isText |
| Name | Description |
|---|---|
children | Child inline elements contained here. |
| Name |
|---|
kind_id |
| 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. |
Equality operators
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>Equality compares contained inline children.
constexpr
bool
operator==(SuperscriptInline const& rhs) const noexcept = default;
» more...
Equality compares child sequences.
constexpr
bool
operator==(InlineContainer const& rhs) const = default;
» more...
Equality compares contained inline children.
<mrdocs/Metadata/DocComment/Inline/SuperscriptInline.hpp>constexpr
bool
operator==(SuperscriptInline const& rhs) const noexcept = default;
true if the objects are equal, false otherwise
| Name | Description |
|---|---|
| rhs | The right operand |
Equality compares child sequences.
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>constexpr
bool
operator==(InlineContainer const& rhs) const = default;
true if the objects are equal, false otherwise
| Name | Description |
|---|---|
| rhs | The right operand |
Three-way comparison operators
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>Order superscript spans by their children.
auto
operator<=>(SuperscriptInline const& rhs) const = default;
» more...
Three-way comparison operator
constexpr
auto
operator<=>(InlineCommonBase<mrdocs::doc::InlineKind::Superscript> const& rhs) const = default;
» more...
Compare two InlineContainers.
std::strong_ordering
operator<=>(InlineContainer const& rhs) const;
» more...
Order superscript spans by their children.
<mrdocs/Metadata/DocComment/Inline/SuperscriptInline.hpp>auto
operator<=>(SuperscriptInline const& rhs) const = default;
| Name | Description |
|---|---|
| rhs | The right operand |
Three-way comparison operator
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>constexpr
auto
operator<=>(InlineCommonBase<mrdocs::doc::InlineKind::Superscript> const& rhs) const = default;
| Name | Description |
|---|---|
| rhs | The right operand |
Compare two InlineContainers.
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>std::strong_ordering
operator<=>(InlineContainer const& rhs) const;
| Name | Description |
|---|---|
| rhs | The right operand |
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isCode() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isCopyDetails() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isEmph() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isFootnoteReference() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isHighlight() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isImage() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isLineBreak() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isLink() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isMath() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isReference() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isSoftBreak() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isStrikethrough() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isStrong() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isSubscript() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isSuperscript() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isText() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>constexpr static
InlineKind kind_id;
Documentation for a template parameter
<mrdocs/Metadata/DocComment/Block/TParamBlock.hpp>struct TParamBlock final
: BlockCommonBase<BlockKind::TParam>
, InlineContainer
Syntax:
@tparam T description
| Name | Description |
|---|---|
BlockCommonBase<BlockKind::TParam> | Base class for providing variant discriminator functions. |
InlineContainer | An internal node in the inline element tree. |
| Name | Description |
|---|---|
operator= | Assignment operators |
append | append overloads |
asInlineContainer | Return this container as a base-class reference. |
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 in-place. |
empty | Determine if there are no inline children. |
end | End iterator forwarding to children. |
erase | Erase inline children. |
front | Get the first inline child. |
insert | Insert inline children. |
operator+= | Addition assignment operators |
size | Get the number of inline children. |
operator== | Equality operators |
operator<=> | Three-way comparison operators |
| Name | Description |
|---|---|
children | Child inline elements contained here. |
name | Template parameter name. |
| Name |
|---|
kind_id |
| Name | Description |
|---|---|
TParamBlock | Inherit inline container constructors. |
| 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. |
Equality operators
<mrdocs/Metadata/DocComment/Block/TParamBlock.hpp>Equality compares name and inline content.
constexpr
bool
operator==(TParamBlock const& rhs) const noexcept = default;
» more...
Equality compares child sequences.
constexpr
bool
operator==(InlineContainer const& rhs) const = default;
» more...
Equality compares name and inline content.
<mrdocs/Metadata/DocComment/Block/TParamBlock.hpp>constexpr
bool
operator==(TParamBlock const& rhs) const noexcept = default;
true if the objects are equal, false otherwise
| Name | Description |
|---|---|
| rhs | The right operand |
Equality compares child sequences.
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>constexpr
bool
operator==(InlineContainer const& rhs) const = default;
true if the objects are equal, false otherwise
| Name | Description |
|---|---|
| rhs | The right operand |
Three-way comparison operators
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>Order template parameter docs by name and text.
auto
operator<=>(TParamBlock const& rhs) const = default;
» more...
Three-way comparison operator
constexpr
auto
operator<=>(BlockCommonBase<mrdocs::doc::BlockKind::TParam> const& rhs) const = default;
» more...
Compare two InlineContainers.
std::strong_ordering
operator<=>(InlineContainer const& rhs) const;
» more...
Order template parameter docs by name and text.
<mrdocs/Metadata/DocComment/Block/TParamBlock.hpp>auto
operator<=>(TParamBlock const& rhs) const = default;
| Name | Description |
|---|---|
| rhs | The right operand |
Three-way comparison operator
<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>constexpr
auto
operator<=>(BlockCommonBase<mrdocs::doc::BlockKind::TParam> const& rhs) const = default;
| Name | Description |
|---|---|
| rhs | The right operand |
Compare two InlineContainers.
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>std::strong_ordering
operator<=>(InlineContainer const& rhs) const;
| Name | Description |
|---|---|
| rhs | The right operand |
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isAdmonition() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isBrief() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isCode() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isDefinitionList() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isFootnoteDefinition() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isHeading() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isList() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isMath() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isParagraph() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>constexpr
static
bool
isParam() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>constexpr
static
bool
isPostcondition() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>constexpr
static
bool
isPrecondition() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isQuote() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>constexpr
static
bool
isReturns() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>constexpr
static
bool
isSee() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>constexpr
static
bool
isTParam() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isTable() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isThematicBreak() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>constexpr
static
bool
isThrows() noexcept;
Template parameter name.
<mrdocs/Metadata/DocComment/Block/TParamBlock.hpp>std::string name;
<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>constexpr static
BlockKind kind_id;
Inherit inline container constructors.
<mrdocs/Metadata/DocComment/Block/TParamBlock.hpp>using InlineContainer::TParamBlock;
| 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-construct child nodes. |
| mrdocs::doc::InlineContainer::InlineContainer | Copy-construct all child nodes. |
A table block
<mrdocs/Metadata/DocComment/Block/TableBlock.hpp>struct TableBlock final
: BlockCommonBase<BlockKind::Table>
Syntax:
| Header 1 | Header 2 | Header 3 |
| :------- | :------: | -------: |
| Left | Center | Right |
| Cell 1A | Cell 1B | Cell 1C |
| Cell 2A | Cell 2B | Cell 2C |
| Name | Description |
|---|---|
BlockCommonBase<BlockKind::Table> | Base class for providing variant discriminator functions. |
| Name | Description |
|---|---|
operator== | Equality compares alignments and rows. |
operator<=> | Order tables by row contents and alignments. |
| Name | Description |
|---|---|
Alignments | Column alignments for each table column. |
items | Rows that make up the table body (header first when present). |
| Name |
|---|
kind_id |
| 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 compares alignments and rows.
<mrdocs/Metadata/DocComment/Block/TableBlock.hpp>constexpr
bool
operator==(TableBlock const& rhs) const noexcept = default;
true if the objects are equal, false otherwise
| Name | Description |
|---|---|
| rhs | The right operand |
Order tables by row contents and alignments.
<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>Order tables by row contents and alignments.
auto
operator<=>(TableBlock const& other) const;
» more...
Three-way comparison operator
constexpr
auto
operator<=>(BlockCommonBase<mrdocs::doc::BlockKind::Table> const& rhs) const = default;
» more...
Order tables by row contents and alignments.
<mrdocs/Metadata/DocComment/Block/TableBlock.hpp>auto
operator<=>(TableBlock const& other) const;
| Name | Description |
|---|---|
| other | The right operand |
Three-way comparison operator
<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>constexpr
auto
operator<=>(BlockCommonBase<mrdocs::doc::BlockKind::Table> const& rhs) const = default;
| Name | Description |
|---|---|
| rhs | The right operand |
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isAdmonition() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isBrief() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isCode() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isDefinitionList() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isFootnoteDefinition() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isHeading() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isList() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isMath() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isParagraph() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>constexpr
static
bool
isParam() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>constexpr
static
bool
isPostcondition() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>constexpr
static
bool
isPrecondition() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isQuote() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>constexpr
static
bool
isReturns() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>constexpr
static
bool
isSee() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>constexpr
static
bool
isTParam() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isTable() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isThematicBreak() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>constexpr
static
bool
isThrows() noexcept;
Column alignments for each table column.
<mrdocs/Metadata/DocComment/Block/TableBlock.hpp>std::vector<TableAlignmentKind> Alignments;
Rows that make up the table body (header first when present).
<mrdocs/Metadata/DocComment/Block/TableBlock.hpp>std::vector<TableRow> items;
<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>constexpr static
BlockKind kind_id;
A cell in a table
<mrdocs/Metadata/DocComment/Block/TableCell.hpp>struct TableCell final
: InlineContainer
| Name | Description |
|---|---|
InlineContainer | An internal node in the inline element tree. |
| Name | Description |
|---|---|
operator= | Assignment operators |
append | append overloads |
asInlineContainer | Return this container as a base-class reference. |
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 in-place. |
empty | Determine if there are no inline children. |
end | End iterator forwarding to children. |
erase | Erase inline children. |
front | Get the first inline child. |
insert | Insert inline children. |
operator+= | Addition assignment operators |
size | Get the number of inline children. |
operator== | Equality operators |
operator<=> | Three-way comparison operators |
| Name | Description |
|---|---|
children | Child inline elements contained here. |
| 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. |
Equality operators
<mrdocs/Metadata/DocComment/Block/TableCell.hpp>Equality compares inline content.
constexpr
bool
operator==(TableCell const& rhs) const noexcept = default;
» more...
Equality compares child sequences.
constexpr
bool
operator==(InlineContainer const& rhs) const = default;
» more...
Equality compares inline content.
<mrdocs/Metadata/DocComment/Block/TableCell.hpp>constexpr
bool
operator==(TableCell const& rhs) const noexcept = default;
true if the objects are equal, false otherwise
| Name | Description |
|---|---|
| rhs | The right operand |
Equality compares child sequences.
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>constexpr
bool
operator==(InlineContainer const& rhs) const = default;
true if the objects are equal, false otherwise
| Name | Description |
|---|---|
| rhs | The right operand |
Three-way comparison operators
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>Order cells by their inline content.
auto
operator<=>(TableCell const& rhs) const = default;
» more...
Compare two InlineContainers.
std::strong_ordering
operator<=>(InlineContainer const& rhs) const;
» more...
Order cells by their inline content.
<mrdocs/Metadata/DocComment/Block/TableCell.hpp>auto
operator<=>(TableCell const& rhs) const = default;
| Name | Description |
|---|---|
| rhs | The right operand |
Compare two InlineContainers.
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>std::strong_ordering
operator<=>(InlineContainer const& rhs) const;
| Name | Description |
|---|---|
| rhs | The right operand |
An item in a list
<mrdocs/Metadata/DocComment/Block/TableRow.hpp>struct TableRow final
| Name | Description |
|---|---|
operator== | Equality compares header flag and cells. |
operator<=> | Order rows by header flag then cell contents. |
| Name | Description |
|---|---|
Cells | Cells contained in the row. |
is_header | True if this row represents a header. |
Equality compares header flag and cells.
<mrdocs/Metadata/DocComment/Block/TableRow.hpp>constexpr
bool
operator==(TableRow const& rhs) const noexcept = default;
true if the objects are equal, false otherwise
| Name | Description |
|---|---|
| rhs | The right operand |
Order rows by header flag then cell contents.
<mrdocs/Metadata/DocComment/Block/TableRow.hpp>constexpr
auto
operator<=>(TableRow const& rhs) const = default;
| Name | Description |
|---|---|
| rhs | The right operand |
Cells contained in the row.
<mrdocs/Metadata/DocComment/Block/TableRow.hpp>std::vector<TableCell> Cells;
True if this row represents a header.
<mrdocs/Metadata/DocComment/Block/TableRow.hpp>bool is_header = false;
A Node containing a string of text.
<mrdocs/Metadata/DocComment/Inline/TextInline.hpp>struct TextInline
: InlineCommonBase<InlineKind::Text>
There will be no newlines in the text. Otherwise, this would be represented as multiple text nodes within a Paragraph node.
Syntax:
plain text
| Name | Description |
|---|---|
InlineCommonBase<InlineKind::Text> | Base class for providing variant discriminator functions. |
| Name | Description |
|---|---|
TextInline [constructor] | Constructors |
~TextInline [destructor] [virtual] | Virtual destructor for the inline hierarchy. |
operator== | Equality compares literal strings. |
operator<=> | Order text nodes lexicographically by their literal. |
| Name |
|---|
isCode |
isCopyDetails |
isEmph |
isFootnoteReference |
isHighlight |
isImage |
isLineBreak |
isLink |
isMath |
isReference |
isSoftBreak |
isStrikethrough |
isStrong |
isSubscript |
isSuperscript |
isText |
| Name | Description |
|---|---|
literal | Plain text carried by this inline node. |
| Name |
|---|
kind_id |
| Name | Description |
|---|---|
getAsPlainText | Get the plain text representation of an inline element tree. |
getAsPlainText | Get the plain text representation of an inline element tree. |
Constructors
<mrdocs/Metadata/DocComment/Inline/TextInline.hpp>Construct an empty text inline.
constexpr
TextInline() noexcept = default;
» more...
Construct from a string view.
explicit
TextInline(std::string_view str) noexcept;
» more...
Construct from a string copy.
explicit
TextInline(std::string const& str) noexcept;
» more...
Construct by moving text storage.
explicit
TextInline(std::string&& str) noexcept;
» more...
Construct from a C string.
explicit
TextInline(char const* str) noexcept;
» more...
Construct an empty text inline.
<mrdocs/Metadata/DocComment/Inline/TextInline.hpp>constexpr
TextInline() noexcept = default;
Construct from a string view.
<mrdocs/Metadata/DocComment/Inline/TextInline.hpp>explicit
TextInline(std::string_view str) noexcept;
| Name | Description |
|---|---|
| str | The object to construct from |
Construct from a string copy.
<mrdocs/Metadata/DocComment/Inline/TextInline.hpp>explicit
TextInline(std::string const& str) noexcept;
| Name | Description |
|---|---|
| str | The object to copy construct from |
Construct by moving text storage.
<mrdocs/Metadata/DocComment/Inline/TextInline.hpp>explicit
TextInline(std::string&& str) noexcept;
| Name | Description |
|---|---|
| str | The object to move construct from |
Construct from a C string.
<mrdocs/Metadata/DocComment/Inline/TextInline.hpp>explicit
TextInline(char const* str) noexcept;
| Name | Description |
|---|---|
| str | The value to construct from |
Virtual destructor for the inline hierarchy.
<mrdocs/Metadata/DocComment/Inline/TextInline.hpp>constexpr
virtual
~TextInline() override = default;
Equality compares literal strings.
<mrdocs/Metadata/DocComment/Inline/TextInline.hpp>constexpr
bool
operator==(TextInline const& rhs) const noexcept = default;
true if the objects are equal, false otherwise
| Name | Description |
|---|---|
| rhs | The right operand |
Order text nodes lexicographically by their literal.
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>Order text nodes lexicographically by their literal.
constexpr
auto
operator<=>(TextInline const& rhs) const = default;
» more...
Three-way comparison operator
constexpr
auto
operator<=>(InlineCommonBase<mrdocs::doc::InlineKind::Text> const& rhs) const = default;
» more...
Order text nodes lexicographically by their literal.
<mrdocs/Metadata/DocComment/Inline/TextInline.hpp>constexpr
auto
operator<=>(TextInline const& rhs) const = default;
| Name | Description |
|---|---|
| rhs | The right operand |
Three-way comparison operator
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>constexpr
auto
operator<=>(InlineCommonBase<mrdocs::doc::InlineKind::Text> const& rhs) const = default;
| Name | Description |
|---|---|
| rhs | The right operand |
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isCode() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isCopyDetails() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isEmph() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isFootnoteReference() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isHighlight() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isImage() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isLineBreak() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isLink() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isMath() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isReference() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isSoftBreak() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isStrikethrough() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isStrong() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isSubscript() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isSuperscript() noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineNodes.inc>constexpr
static
bool
isText() noexcept;
Plain text carried by this inline node.
<mrdocs/Metadata/DocComment/Inline/TextInline.hpp>std::string literal;
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>constexpr static
InlineKind kind_id;
A horizontal thematic break separating sections.
<mrdocs/Metadata/DocComment/Block/ThematicBreakBlock.hpp>struct ThematicBreakBlock final
: BlockCommonBase<BlockKind::ThematicBreak>
Syntax:
---
or
**
or
___
or
- - -
- You can use an asterisk (), dash (-), or underscore (). - There must be at least three characters in a row. - Spaces can be used between the characters, but no other characters. - The thematic break should be on its own line, separated by blank lines above and below. - Thematic breaks can also be used inside lists, but the character used for the break must be different from the list marker.
| Name | Description |
|---|---|
BlockCommonBase<BlockKind::ThematicBreak> | Base class for providing variant discriminator functions. |
| Name | Description |
|---|---|
ThematicBreakBlock [constructor] | Copy constructor. |
operator= | Copy assignment. |
operator<=> | Compare break blocks (trivial as they hold no data). |
| Name |
|---|
kind_id |
| 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.
<mrdocs/Metadata/DocComment/Block/ThematicBreakBlock.hpp>constexpr
ThematicBreakBlock(ThematicBreakBlock const& other) = default;
| Name | Description |
|---|---|
| other | The object to copy construct from |
Copy assignment.
<mrdocs/Metadata/DocComment/Block/ThematicBreakBlock.hpp>constexpr
ThematicBreakBlock&
operator=(ThematicBreakBlock const& other) = default;
| Name | Description |
|---|---|
| other | The object to copy assign from |
Compare break blocks (trivial as they hold no data).
<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>Compare break blocks (trivial as they hold no data).
constexpr
auto
operator<=>(ThematicBreakBlock const& rhs) const = default;
» more...
Three-way comparison operator
constexpr
auto
operator<=>(BlockCommonBase<mrdocs::doc::BlockKind::ThematicBreak> const& rhs) const = default;
» more...
Compare break blocks (trivial as they hold no data).
<mrdocs/Metadata/DocComment/Block/ThematicBreakBlock.hpp>constexpr
auto
operator<=>(ThematicBreakBlock const& rhs) const = default;
| Name | Description |
|---|---|
| rhs | The right operand |
Three-way comparison operator
<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>constexpr
auto
operator<=>(BlockCommonBase<mrdocs::doc::BlockKind::ThematicBreak> const& rhs) const = default;
| Name | Description |
|---|---|
| rhs | The right operand |
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isAdmonition() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isBrief() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isCode() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isDefinitionList() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isFootnoteDefinition() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isHeading() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isList() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isMath() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isParagraph() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>constexpr
static
bool
isParam() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>constexpr
static
bool
isPostcondition() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>constexpr
static
bool
isPrecondition() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isQuote() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>constexpr
static
bool
isReturns() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>constexpr
static
bool
isSee() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>constexpr
static
bool
isTParam() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isTable() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isThematicBreak() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>constexpr
static
bool
isThrows() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>constexpr static
BlockKind kind_id;
Documentation for a function exception clause
<mrdocs/Metadata/DocComment/Block/ThrowsBlock.hpp>struct ThrowsBlock final
: BlockCommonBase<BlockKind::Throws>
, InlineContainer
Syntax:
@throws Type description
| Name | Description |
|---|---|
BlockCommonBase<BlockKind::Throws> | Base class for providing variant discriminator functions. |
InlineContainer | An internal node in the inline element tree. |
| Name | Description |
|---|---|
operator= | Assignment operators |
append | append overloads |
asInlineContainer | Return this container as a base-class reference. |
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 in-place. |
empty | Determine if there are no inline children. |
end | End iterator forwarding to children. |
erase | Erase inline children. |
front | Get the first inline child. |
insert | Insert inline children. |
operator+= | Addition assignment operators |
size | Get the number of inline children. |
operator== | Equality operators |
operator<=> | Three-way comparison operators |
| Name | Description |
|---|---|
children | Child inline elements contained here. |
exception | Exception type being described. |
| Name |
|---|
kind_id |
| Name | Description |
|---|---|
ThrowsBlock | Inherit inline container constructors. |
| 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. |
Equality operators
<mrdocs/Metadata/DocComment/Block/ThrowsBlock.hpp>Equality compares exception and description.
constexpr
bool
operator==(ThrowsBlock const& rhs) const noexcept = default;
» more...
Equality compares child sequences.
constexpr
bool
operator==(InlineContainer const& rhs) const = default;
» more...
Equality compares exception and description.
<mrdocs/Metadata/DocComment/Block/ThrowsBlock.hpp>constexpr
bool
operator==(ThrowsBlock const& rhs) const noexcept = default;
true if the objects are equal, false otherwise
| Name | Description |
|---|---|
| rhs | The right operand |
Equality compares child sequences.
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>constexpr
bool
operator==(InlineContainer const& rhs) const = default;
true if the objects are equal, false otherwise
| Name | Description |
|---|---|
| rhs | The right operand |
Three-way comparison operators
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>Order throw clauses by exception and description.
auto
operator<=>(ThrowsBlock const& rhs) const = default;
» more...
Three-way comparison operator
constexpr
auto
operator<=>(BlockCommonBase<mrdocs::doc::BlockKind::Throws> const& rhs) const = default;
» more...
Compare two InlineContainers.
std::strong_ordering
operator<=>(InlineContainer const& rhs) const;
» more...
Order throw clauses by exception and description.
<mrdocs/Metadata/DocComment/Block/ThrowsBlock.hpp>auto
operator<=>(ThrowsBlock const& rhs) const = default;
| Name | Description |
|---|---|
| rhs | The right operand |
Three-way comparison operator
<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>constexpr
auto
operator<=>(BlockCommonBase<mrdocs::doc::BlockKind::Throws> const& rhs) const = default;
| Name | Description |
|---|---|
| rhs | The right operand |
Compare two InlineContainers.
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>std::strong_ordering
operator<=>(InlineContainer const& rhs) const;
| Name | Description |
|---|---|
| rhs | The right operand |
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isAdmonition() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isBrief() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isCode() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isDefinitionList() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isFootnoteDefinition() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isHeading() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isList() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isMath() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isParagraph() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>constexpr
static
bool
isParam() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>constexpr
static
bool
isPostcondition() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>constexpr
static
bool
isPrecondition() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isQuote() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>constexpr
static
bool
isReturns() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>constexpr
static
bool
isSee() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>constexpr
static
bool
isTParam() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isTable() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockNodes.inc>constexpr
static
bool
isThematicBreak() noexcept;
<mrdocs/Metadata/DocComment/Block/BlockCommandNodes.inc>constexpr
static
bool
isThrows() noexcept;
Exception type being described.
<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>constexpr static
BlockKind kind_id;
Inherit inline container constructors.
<mrdocs/Metadata/DocComment/Block/ThrowsBlock.hpp>using InlineContainer::ThrowsBlock;
| 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-construct child nodes. |
| mrdocs::doc::InlineContainer::InlineContainer | Copy-construct all child nodes. |
An admonishment style.
<mrdocs/Metadata/DocComment/Block/AdmonitionKind.hpp>enum class AdmonitionKind : int;
| 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 |
| Name | Description |
|---|---|
toString | Return the name of the Admonish as a string. |
Enumerates the different kinds of DocComment blocks.
<mrdocs/Metadata/DocComment/Block/BlockKind.hpp>enum class BlockKind : int;
| Name | Description |
|---|---|
isBlockCommand | Return true if the given block kind represents a command block. |
toString | Convert a block kind to its kebab-case string name. |
Enumerates the different kinds of inline nodes.
<mrdocs/Metadata/DocComment/Inline/InlineKind.hpp>enum class InlineKind : int;
| Name | Description |
|---|---|
toString | Convert an inline kind to its kebab-case string. |
Parameter pass direction.
<mrdocs/Metadata/DocComment/Block/ParamDirection.hpp>enum class ParamDirection : int;
| 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 |
| Name | Description |
|---|---|
toString | Return the name of the ParamDirection as a string. |
Which parts of the documentation to copy.
<mrdocs/Metadata/DocComment/Inline/Parts.hpp>enum class Parts : int;
`all`: copy the brief and the description.
`brief`: only copy the brief.
`description`: only copy the description.
| Name | Description |
|---|---|
all | Copy the brief and the description |
brief | Copy the brief |
description | Copy the description |
| Name | Description |
|---|---|
toString | Return the name of the Parts as a string. |
getAsPlainText overloads
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>Get the plain text representation of an inline element tree.
std::string
getAsPlainText(doc::Inline const& in);
» more...
Flatten an InlineContainer to plain text.
std::string
getAsPlainText(doc::InlineContainer const& in);
» more...
Get the plain text representation of an inline element tree.
void
getAsPlainText(
doc::Inline const& in,
std::string& dst);
» more...
Flatten an InlineContainer to plain text.
void
getAsPlainText(
doc::InlineContainer const& in,
std::string& dst);
» more...
| Name | Description |
|---|---|
| in | The input inline element. |
| dst | The output string to append to. |
Get the plain text representation of an inline element tree.
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>std::string
getAsPlainText(doc::Inline const& in);
This strips all formatting and returns just the text content.
| Name | Description |
|---|---|
| in | The input inline element. |
Flatten an InlineContainer to plain text.
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>std::string
getAsPlainText(doc::InlineContainer const& in);
This concatenates all text nodes, ignoring formatting.
| Name | Description |
|---|---|
| in | The InlineContainer to flatten. |
Get the plain text representation of an inline element tree.
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>void
getAsPlainText(
doc::Inline const& in,
std::string& dst);
This strips all formatting and returns just the text content.
| Name | Description |
|---|---|
| in | The input inline element. |
| dst | The output string to append to. |
Flatten an InlineContainer to plain text.
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>void
getAsPlainText(
doc::InlineContainer const& in,
std::string& dst);
This concatenates all text nodes, ignoring formatting.
| Name | Description |
|---|---|
| in | The InlineContainer to flatten. |
| dst | The output string to append to. |
Return true if the given block kind represents a command block.
<mrdocs/Metadata/DocComment/Block/BlockKind.hpp>constexpr
bool
isBlockCommand(BlockKind k) noexcept;
| Name | Description |
|---|---|
| k | Enumerates the different kinds of DocComment blocks. |
Determine if the inline is empty
<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>Determine if the inline is empty
bool
isEmpty(Block const& el);
» more...
Determine if the inline is empty
bool
isEmpty(Polymorphic<Block> const& el);
» more...
Determine if the inline is empty
bool
isEmpty(Polymorphic<Inline> const& el);
» more...
Determine if the inline is empty
<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>bool
isEmpty(Block const& el);
| Name | Description |
|---|---|
| el | A piece of block content |
Determine if the inline is empty
<mrdocs/Metadata/DocComment/Block.hpp>bool
isEmpty(Polymorphic<Block> const& el);
| Name | Description |
|---|---|
| el | A polymorphic value-type. |
Determine if the inline is empty
<mrdocs/Metadata/DocComment/Inline.hpp>bool
isEmpty(Polymorphic<Inline> const& el);
This determines if the inline is considered to have no content for the purposes of trimming.
| Name | Description |
|---|---|
| el | A polymorphic value-type. |
ltrim overloads
<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>Removes leading whitespace from the block.
void
ltrim(Block& el);
» more...
Removes leading whitespace from the first text elements
void
ltrim(BlockContainer& blocks);
» more...
Removes leading whitespace from the first text element in the given InlineContainer.
void
ltrim(InlineContainer& inlines);
» more...
Removes leading whitespace from the block.
void
ltrim(Polymorphic<Block>& el);
» more...
Removes leading whitespace from the inline element.
void
ltrim(Polymorphic<Inline>& el);
» more...
| Name | Description |
|---|---|
| el | The Block to trim. |
| blocks | The BlockContainer to trim. |
| inlines | The InlineContainer to trim. |
Removes leading whitespace from the block.
| Name | Description |
|---|---|
| el | The Block to trim. |
Removes leading whitespace from the first text elements
<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>void
ltrim(BlockContainer& blocks);
| Name | Description |
|---|---|
| blocks | The BlockContainer to trim. |
Removes leading whitespace from the first text element in the given InlineContainer.
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>void
ltrim(InlineContainer& inlines);
| Name | Description |
|---|---|
| inlines | The InlineContainer to trim. |
Removes leading whitespace from the block.
| Name | Description |
|---|---|
| el | The Polymorphic<Block> to trim. |
Removes leading whitespace from the inline element.
| Name | Description |
|---|---|
| el | The Polymorphic<Inline> to trim. |
rtrim overloads
<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>Removes trailing whitespace from the block.
void
rtrim(Block& el);
» more...
Removes trailing whitespace from the last text elements
void
rtrim(BlockContainer& blocks);
» more...
Removes trailing whitespace from the last text element in the given InlineContainer.
void
rtrim(InlineContainer& inlines);
» more...
Removes trailing whitespace from the block.
void
rtrim(Polymorphic<Block>& el);
» more...
Removes trailing whitespace from the inline element.
void
rtrim(Polymorphic<Inline>& el);
» more...
| Name | Description |
|---|---|
| el | The Block to trim. |
| blocks | The BlockContainer to trim. |
| inlines | The InlineContainer to trim. |
Removes trailing whitespace from the block.
| Name | Description |
|---|---|
| el | The Block to trim. |
Removes trailing whitespace from the last text elements
<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>void
rtrim(BlockContainer& blocks);
| Name | Description |
|---|---|
| blocks | The BlockContainer to trim. |
Removes trailing whitespace from the last text element in the given InlineContainer.
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>void
rtrim(InlineContainer& inlines);
| Name | Description |
|---|---|
| inlines | The InlineContainer to trim. |
Removes trailing whitespace from the block.
| Name | Description |
|---|---|
| el | The Polymorphic<Block> to trim. |
Removes trailing whitespace from the inline element.
| Name | Description |
|---|---|
| el | The Polymorphic<Inline> to trim. |
tag_invoke overloads
<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>Return the Admonish from a dom::Value string.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
AdmonitionKind const kind);
» more...
Write a block kind into a DOM value as its string name.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
BlockKind const kind);
» more...
Serialize an inline kind into a DOM value.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
InlineKind const kind);
» more...
Return the ParamDirection from a dom::Value string.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
ParamDirection const kind);
» more...
Return the Parts from a dom::Value string.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
Parts const kind);
» more...
Return the AdmonitionBlock as a dom::Value object.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
AdmonitionBlock const& I,
DomCorpus const* domCorpus);
» more...
Return the Block as a dom::Value object.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
Block const& I,
DomCorpus const* domCorpus);
» more...
Return the block container as a DOM value.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
BlockContainer const& I,
DomCorpus const* domCorpus);
» more...
Return the BriefBlock as a dom::Value object.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
BriefBlock const& I,
DomCorpus const* domCorpus);
» more...
Return the CodeBlock as a dom::Value object.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
CodeBlock const& I,
DomCorpus const* domCorpus);
» more...
Return the CodeInline as a dom::Value object.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
CodeInline const& I,
DomCorpus const* domCorpus);
» more...
Return the CopyDetailsInline as a dom::Value object.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
CopyDetailsInline const& I,
DomCorpus const* domCorpus);
» more...
Convert a definition list block to a DOM value.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
DefinitionListBlock const& I,
DomCorpus const* domCorpus);
» more...
Return the DefinitionListItem as a dom::Value object.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
DefinitionListItem const& I,
DomCorpus const* domCorpus);
» more...
Return the EmphInline as a dom::Value object.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
EmphInline const& I,
DomCorpus const* domCorpus);
» more...
Return the FootnoteDefinitionBlock as a dom::Value object.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
FootnoteDefinitionBlock const& I,
DomCorpus const* domCorpus);
» more...
Return the FootnoteReferenceInline as a dom::Value object.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
FootnoteReferenceInline const& I,
DomCorpus const* domCorpus);
» more...
Return the HeadingBlock as a dom::Value object.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
HeadingBlock const& I,
DomCorpus const* domCorpus);
» more...
Return the HighlightInline as a dom::Value object.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
HighlightInline const& I,
DomCorpus const* domCorpus);
» more...
Return the ImageInline as a dom::Value object.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
ImageInline const& I,
DomCorpus const* domCorpus);
» more...
Return the Inline as a dom::Value object.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
Inline const& I,
DomCorpus const* domCorpus);
» more...
Convert an InlineContainer to a DOM value.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
InlineContainer const& I,
DomCorpus const* domCorpus);
» more...
Return the LineBreakInline as a dom::Value object.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
LineBreakInline const& I,
DomCorpus const* domCorpus);
» more...
Return the LinkInline as a dom::Value object.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
LinkInline const& I,
DomCorpus const* domCorpus);
» more...
Return the ListBlock as a dom::Value object.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
ListBlock const& I,
DomCorpus const* domCorpus);
» more...
Return the ListItem as a dom::Value object.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
ListItem const& I,
DomCorpus const* domCorpus);
» more...
Return the MathBlock as a dom::Value object.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
MathBlock const& I,
DomCorpus const* domCorpus);
» more...
Return the MathInline as a dom::Value object.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
MathInline const& I,
DomCorpus const* domCorpus);
» more...
Return the ParagraphBlock as a dom::Value object.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
ParagraphBlock const& I,
DomCorpus const* domCorpus);
» more...
Return the Param as a dom::Value object.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
ParamBlock const& I,
DomCorpus const* domCorpus);
» more...
Return the PostconditionBlock as a dom::Value object.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
PostconditionBlock const& I,
DomCorpus const* domCorpus);
» more...
Return the PreconditionBlock as a dom::Value object.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
PreconditionBlock const& I,
DomCorpus const* domCorpus);
» more...
Return the QuoteBlock as a dom::Value object.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
QuoteBlock const& I,
DomCorpus const* domCorpus);
» more...
Return the ReferenceInline as a dom::Value object.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
ReferenceInline const& I,
DomCorpus const* domCorpus);
» more...
Return the ReturnsBlock as a dom::Value object.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
ReturnsBlock const& I,
DomCorpus const* domCorpus);
» more...
Return the SeeBlock as a dom::Value object.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
SeeBlock const& I,
DomCorpus const* domCorpus);
» more...
Return the SoftBreakInline as a dom::Value object.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
SoftBreakInline const& I,
DomCorpus const* domCorpus);
» more...
Return the StrikethroughInline as a dom::Value object.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
StrikethroughInline const& I,
DomCorpus const* domCorpus);
» more...
Return the StrongInline as a dom::Value object.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
StrongInline const& I,
DomCorpus const* domCorpus);
» more...
Return the SubscriptInline as a dom::Value object.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
SubscriptInline const& I,
DomCorpus const* domCorpus);
» more...
Return the SuperscriptInline as a dom::Value object.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
SuperscriptInline const& I,
DomCorpus const* domCorpus);
» more...
Return the TParam as a dom::Value object.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
TParamBlock const& I,
DomCorpus const* domCorpus);
» more...
Return the TableBlock as a dom::Value object.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
TableBlock const& I,
DomCorpus const* domCorpus);
» more...
Return the TableCell as a dom::Value object.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
TableCell const& I,
DomCorpus const* domCorpus);
» more...
Return the TableRow as a dom::Value object.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
TableRow const& I,
DomCorpus const* domCorpus);
» more...
Return the TextInline as a dom::Value object.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
TextInline const& I,
DomCorpus const* domCorpus);
» more...
Return the ThematicBreakBlock as a dom::Value object.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
ThematicBreakBlock const& I,
DomCorpus const* domCorpus);
» more...
Return the ThrowsBlock as a dom::Value object.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
ThrowsBlock const& I,
DomCorpus const* domCorpus);
» more...
Map an optional polymorphic block into a DOM value, producing null when empty.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
Optional<Polymorphic<Block>> const& I,
DomCorpus const* domCorpus);
» more...
Map the Polymorphic Block as a dom::Value object.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
Polymorphic<Block> const& I,
DomCorpus const* domCorpus);
» more...
Map an optional brief block to a DOM value, yielding null when absent.
void
tag_invoke(
mrdocs::dom::ValueFromTag,
mrdocs::dom::Value& v,
Optional<BriefBlock> const& I,
DomCorpus const* domCorpus);
» more...
Map the Block to a dom::Object.
template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag,
IO& io,
Block const& I,
DomCorpus const*);
» more...
Map a block container into a lazily-evaluated DOM object.
template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag,
IO& io,
BlockContainer const& I,
DomCorpus const* domCorpus);
» more...
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);
» more...
Map the AdmonitionBlock to a dom::Object.
template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
AdmonitionBlock const& I,
DomCorpus const* domCorpus);
» more...
Map the BriefBlock to a dom::Object.
template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
BriefBlock const& I,
DomCorpus const* domCorpus);
» more...
Map the CodeBlock to a dom::Object.
template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
CodeBlock const& I,
DomCorpus const* domCorpus);
» more...
Map the CodeInline to a dom::Object.
template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
CodeInline const& I,
DomCorpus const* domCorpus);
» more...
Map the CopyDetailsInline to a dom::Object.
template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
CopyDetailsInline const& I,
DomCorpus const* domCorpus);
» more...
Map a definition list block into a DOM object.
template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
DefinitionListBlock const& I,
DomCorpus const* domCorpus);
» more...
Map the DefinitionListItem to a dom::Object.
template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
DefinitionListItem const& I,
DomCorpus const* domCorpus);
» more...
Map the EmphInline to a dom::Object.
template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
EmphInline const& I,
DomCorpus const* domCorpus);
» more...
Map the FootnoteDefinitionBlock to a dom::Object.
template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
FootnoteDefinitionBlock const& I,
DomCorpus const* domCorpus);
» more...
Map the FootnoteReferenceInline to a dom::Object.
template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
FootnoteReferenceInline const& I,
DomCorpus const* domCorpus);
» more...
Map the HeadingBlock to a dom::Object.
template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
HeadingBlock const& I,
DomCorpus const* domCorpus);
» more...
Map the HighlightInline to a dom::Object.
template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
HighlightInline const& I,
DomCorpus const* domCorpus);
» more...
Map the ImageInline to a dom::Object.
template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
ImageInline const& I,
DomCorpus const* domCorpus);
» more...
Map the Inline to a dom::Object.
template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
Inline const& I,
DomCorpus const* domCorpus);
» more...
Map an InlineContainer into a DOM object.
template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
InlineContainer const& I,
DomCorpus const* domCorpus);
» more...
Map the LineBreakInline to a dom::Object.
template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
LineBreakInline const& I,
DomCorpus const* domCorpus);
» more...
Map the LinkInline to a dom::Object.
template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
LinkInline const& I,
DomCorpus const* domCorpus);
» more...
Map the ListBlock to a dom::Object.
template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
ListBlock const& I,
DomCorpus const* domCorpus);
» more...
Map the ListItem to a dom::Object.
template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
ListItem const& I,
DomCorpus const* domCorpus);
» more...
Map the MathBlock to a dom::Object.
template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
MathBlock const& I,
DomCorpus const* domCorpus);
» more...
Map the MathInline to a dom::Object.
template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
MathInline const& I,
DomCorpus const* domCorpus);
» more...
Map the ParagraphBlock to a dom::Object.
template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
ParagraphBlock const& I,
DomCorpus const* domCorpus);
» more...
Map the Param to a dom::Object.
template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
ParamBlock const& I,
DomCorpus const* domCorpus);
» more...
Map the PostconditionBlock to a dom::Object.
template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
PostconditionBlock const& I,
DomCorpus const* domCorpus);
» more...
Map the PreconditionBlock to a dom::Object.
template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
PreconditionBlock const& I,
DomCorpus const* domCorpus);
» more...
Map the QuoteBlock to a dom::Object.
template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
QuoteBlock const& I,
DomCorpus const* domCorpus);
» more...
Map the ReferenceInline to a dom::Object.
template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
ReferenceInline const& I,
DomCorpus const* domCorpus);
» more...
Map the ReturnsBlock to a dom::Object.
template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
ReturnsBlock const& I,
DomCorpus const* domCorpus);
» more...
Map the SeeBlock to a dom::Object.
template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
SeeBlock const& I,
DomCorpus const* domCorpus);
» more...
Map the SoftBreakInline to a dom::Object.
template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
SoftBreakInline const& I,
DomCorpus const* domCorpus);
» more...
Map the StrikethroughInline to a dom::Object.
template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
StrikethroughInline const& I,
DomCorpus const* domCorpus);
» more...
Map the StrongInline to a dom::Object.
template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
StrongInline const& I,
DomCorpus const* domCorpus);
» more...
Map the SubscriptInline to a dom::Object.
template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
SubscriptInline const& I,
DomCorpus const* domCorpus);
» more...
Map the SuperscriptInline to a dom::Object.
template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
SuperscriptInline const& I,
DomCorpus const* domCorpus);
» more...
Map the TParam to a dom::Object.
template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
TParamBlock const& I,
DomCorpus const* domCorpus);
» more...
Map the TableBlock to a dom::Object.
template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
TableBlock const& I,
DomCorpus const* domCorpus);
» more...
Map the TableCell to a dom::Object.
template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
TableCell const& I,
DomCorpus const* domCorpus);
» more...
Map the TableRow to a dom::Object.
template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
TableRow const& I,
DomCorpus const* domCorpus);
» more...
Map the TextInline to a dom::Object.
template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
TextInline const& I,
DomCorpus const* domCorpus);
» more...
Map the ThematicBreakBlock to a dom::Object.
template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
ThematicBreakBlock const& I,
DomCorpus const* domCorpus);
» more...
Map the ThrowsBlock to a dom::Object.
template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
ThrowsBlock const& I,
DomCorpus const* domCorpus);
» more...
Serialize a polymorphic inline node into a DOM value.
template<
class IO,
polymorphic_storage_for<Block> InlineTy>
void
tag_invoke(
dom::ValueFromTag,
IO& io,
InlineTy const& I,
DomCorpus const* domCorpus);
» more...
| Name | Description |
|---|---|
| v | Destination value. |
| kind | Block kind to serialize. |
| I | Block container to convert. |
| domCorpus | Corpus context for lazy references. |
| io | The output object. |
| t | The tag. |
Return the Admonish from a dom::Value string.
<mrdocs/Metadata/DocComment/Block/AdmonitionKind.hpp>void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
AdmonitionKind const kind);
| Name | Description |
|---|---|
| v | A variant container for any kind of Dom value. |
| kind | An admonishment style. |
Write a block kind into a DOM value as its string name.
<mrdocs/Metadata/DocComment/Block/BlockKind.hpp>void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
BlockKind const kind);
| Name | Description |
|---|---|
| v | Destination value. |
| kind | Block kind to serialize. |
Serialize an inline kind into a DOM value.
<mrdocs/Metadata/DocComment/Inline/InlineKind.hpp>void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
InlineKind const kind);
| Name | Description |
|---|---|
| v | Destination DOM value. |
| kind | Kind to serialize. |
Return the ParamDirection from a dom::Value string.
<mrdocs/Metadata/DocComment/Block/ParamDirection.hpp>void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
ParamDirection const kind);
| Name | Description |
|---|---|
| v | A variant container for any kind of Dom value. |
| kind | Parameter pass direction. |
Return the Parts from a dom::Value string.
<mrdocs/Metadata/DocComment/Inline/Parts.hpp>void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
Parts const kind);
| Name | Description |
|---|---|
| v | A variant container for any kind of Dom value. |
| kind | Which parts of the documentation to copy. |
Return the AdmonitionBlock as a dom::Value object.
<mrdocs/Metadata/DocComment/Block/AdmonitionBlock.hpp>void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
AdmonitionBlock const& I,
DomCorpus const* domCorpus);
| 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.
<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
Block const& I,
DomCorpus const* domCorpus);
| 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. |
Return the block container as a DOM value.
<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
BlockContainer const& I,
DomCorpus const* domCorpus);
| Name | Description |
|---|---|
| v | Destination value. |
| I | Block container to convert. |
| domCorpus | Corpus context for lazy references. |
Return the BriefBlock as a dom::Value object.
<mrdocs/Metadata/DocComment/Block/BriefBlock.hpp>void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
BriefBlock const& I,
DomCorpus const* domCorpus);
| 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 CodeBlock as a dom::Value object.
<mrdocs/Metadata/DocComment/Block/CodeBlock.hpp>void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
CodeBlock const& I,
DomCorpus const* domCorpus);
| 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 CodeInline as a dom::Value object.
<mrdocs/Metadata/DocComment/Inline/CodeInline.hpp>void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
CodeInline const& I,
DomCorpus const* domCorpus);
| Name | Description |
|---|---|
| v | A variant container for any kind of Dom value. |
| I | Inline code (monospaced) used for short snippets within text. |
| domCorpus | Front-end factory for producing Dom nodes. |
Return the CopyDetailsInline as a dom::Value object.
<mrdocs/Metadata/DocComment/Inline/CopyDetailsInline.hpp>void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
CopyDetailsInline const& I,
DomCorpus const* domCorpus);
| Name | Description |
|---|---|
| v | The output value. |
| I | The input object. |
| domCorpus | The DOM corpus, or nullptr if not part of a corpus. |
Convert a definition list block to a DOM value.
<mrdocs/Metadata/DocComment/Block/DefinitionListBlock.hpp>void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
DefinitionListBlock const& I,
DomCorpus const* domCorpus);
| Name | Description |
|---|---|
| v | Destination value. |
| I | Block to convert. |
| domCorpus | Corpus context for lazy references. |
Return the DefinitionListItem as a dom::Value object.
<mrdocs/Metadata/DocComment/Block/DefinitionListItem.hpp>void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
DefinitionListItem const& I,
DomCorpus const* domCorpus);
| 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 EmphInline as a dom::Value object.
<mrdocs/Metadata/DocComment/Inline/EmphInline.hpp>void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
EmphInline const& I,
DomCorpus const* domCorpus);
| Name | Description |
|---|---|
| v | A variant container for any kind of Dom value. |
| I | Emphasized text (typically rendered in italics). |
| domCorpus | Front-end factory for producing Dom nodes. |
Return the FootnoteDefinitionBlock as a dom::Value object.
<mrdocs/Metadata/DocComment/Block/FootnoteDefinitionBlock.hpp>void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
FootnoteDefinitionBlock const& I,
DomCorpus const* domCorpus);
| Name | Description |
|---|---|
| v | A variant container for any kind of Dom value. |
| I | Text defining the content of a footnote reference. |
| domCorpus | Front-end factory for producing Dom nodes. |
Return the FootnoteReferenceInline as a dom::Value object.
<mrdocs/Metadata/DocComment/Inline/FootnoteReferenceInline.hpp>void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
FootnoteReferenceInline const& I,
DomCorpus const* domCorpus);
| 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 HeadingBlock as a dom::Value object.
<mrdocs/Metadata/DocComment/Block/HeadingBlock.hpp>void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
HeadingBlock const& I,
DomCorpus const* domCorpus);
| 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 HighlightInline as a dom::Value object.
<mrdocs/Metadata/DocComment/Inline/HighlightInline.hpp>void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
HighlightInline const& I,
DomCorpus const* domCorpus);
| Name | Description |
|---|---|
| v | A variant container for any kind of Dom value. |
| I | Highlighted text span used to call out important words. |
| domCorpus | Front-end factory for producing Dom nodes. |
Return the ImageInline as a dom::Value object.
<mrdocs/Metadata/DocComment/Inline/ImageInline.hpp>void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
ImageInline const& I,
DomCorpus const* domCorpus);
| 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.
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
Inline const& I,
DomCorpus const* domCorpus);
| 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. |
Convert an InlineContainer to a DOM value.
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
InlineContainer const& I,
DomCorpus const* domCorpus);
| Name | Description |
|---|---|
| v | A variant container for any kind of Dom value. |
| I | An internal node in the inline element tree. |
| domCorpus | Front-end factory for producing Dom nodes. |
Return the LineBreakInline as a dom::Value object.
<mrdocs/Metadata/DocComment/Inline/LineBreakInline.hpp>void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
LineBreakInline const& I,
DomCorpus const* domCorpus);
| 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 LinkInline as a dom::Value object.
<mrdocs/Metadata/DocComment/Inline/LinkInline.hpp>void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
LinkInline const& I,
DomCorpus const* domCorpus);
| 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 ListBlock as a dom::Value object.
<mrdocs/Metadata/DocComment/Block/ListBlock.hpp>void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
ListBlock const& I,
DomCorpus const* domCorpus);
| 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.
<mrdocs/Metadata/DocComment/Block/ListItem.hpp>void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
ListItem const& I,
DomCorpus const* domCorpus);
| Name | Description |
|---|---|
| v | A variant container for any kind of Dom value. |
| I | An item in a ListBlock |
| domCorpus | Front-end factory for producing Dom nodes. |
Return the MathBlock as a dom::Value object.
<mrdocs/Metadata/DocComment/Block/MathBlock.hpp>void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
MathBlock const& I,
DomCorpus const* domCorpus);
| 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 MathInline as a dom::Value object.
<mrdocs/Metadata/DocComment/Inline/MathInline.hpp>void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
MathInline const& I,
DomCorpus const* domCorpus);
| 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 ParagraphBlock as a dom::Value object.
<mrdocs/Metadata/DocComment/Block/ParagraphBlock.hpp>void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
ParagraphBlock const& I,
DomCorpus const* domCorpus);
| 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.
<mrdocs/Metadata/DocComment/Block/ParamBlock.hpp>void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
ParamBlock const& I,
DomCorpus const* domCorpus);
| 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 PostconditionBlock as a dom::Value object.
<mrdocs/Metadata/DocComment/Block/PostconditionBlock.hpp>void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
PostconditionBlock const& I,
DomCorpus const* domCorpus);
| 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 PreconditionBlock as a dom::Value object.
<mrdocs/Metadata/DocComment/Block/PreconditionBlock.hpp>void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
PreconditionBlock const& I,
DomCorpus const* domCorpus);
| 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.
<mrdocs/Metadata/DocComment/Block/QuoteBlock.hpp>void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
QuoteBlock const& I,
DomCorpus const* domCorpus);
| Name | Description |
|---|---|
| v | A variant container for any kind of Dom value. |
| I | A quoted block of text. |
| domCorpus | Front-end factory for producing Dom nodes. |
Return the ReferenceInline as a dom::Value object.
<mrdocs/Metadata/DocComment/Inline/ReferenceInline.hpp>void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
ReferenceInline const& I,
DomCorpus const* domCorpus);
| 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 ReturnsBlock as a dom::Value object.
<mrdocs/Metadata/DocComment/Block/ReturnsBlock.hpp>void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
ReturnsBlock const& I,
DomCorpus const* domCorpus);
| 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 SeeBlock as a dom::Value object.
<mrdocs/Metadata/DocComment/Block/SeeBlock.hpp>void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
SeeBlock const& I,
DomCorpus const* domCorpus);
| Name | Description |
|---|---|
| v | A variant container for any kind of Dom value. |
| I | A |
| domCorpus | Front-end factory for producing Dom nodes. |
Return the SoftBreakInline as a dom::Value object.
<mrdocs/Metadata/DocComment/Inline/SoftBreakInline.hpp>void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
SoftBreakInline const& I,
DomCorpus const* domCorpus);
| Name | Description |
|---|---|
| v | A variant container for any kind of Dom value. |
| I | A line break that may render as a space |
| domCorpus | Front-end factory for producing Dom nodes. |
Return the StrikethroughInline as a dom::Value object.
<mrdocs/Metadata/DocComment/Inline/StrikethroughInline.hpp>void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
StrikethroughInline const& I,
DomCorpus const* domCorpus);
| Name | Description |
|---|---|
| v | A variant container for any kind of Dom value. |
| I | Strikethrough span to show removed or deprecated text. |
| domCorpus | Front-end factory for producing Dom nodes. |
Return the StrongInline as a dom::Value object.
<mrdocs/Metadata/DocComment/Inline/StrongInline.hpp>void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
StrongInline const& I,
DomCorpus const* domCorpus);
| Name | Description |
|---|---|
| v | A variant container for any kind of Dom value. |
| I | Strong emphasis span (typically rendered in bold). |
| domCorpus | Front-end factory for producing Dom nodes. |
Return the SubscriptInline as a dom::Value object.
<mrdocs/Metadata/DocComment/Inline/SubscriptInline.hpp>void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
SubscriptInline const& I,
DomCorpus const* domCorpus);
| Name | Description |
|---|---|
| v | A variant container for any kind of Dom value. |
| I | Subscript text fragment (lowered baseline). |
| domCorpus | Front-end factory for producing Dom nodes. |
Return the SuperscriptInline as a dom::Value object.
<mrdocs/Metadata/DocComment/Inline/SuperscriptInline.hpp>void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
SuperscriptInline const& I,
DomCorpus const* domCorpus);
| Name | Description |
|---|---|
| v | A variant container for any kind of Dom value. |
| I | Superscript text fragment (raised baseline). |
| domCorpus | Front-end factory for producing Dom nodes. |
Return the TParam as a dom::Value object.
<mrdocs/Metadata/DocComment/Block/TParamBlock.hpp>void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
TParamBlock const& I,
DomCorpus const* domCorpus);
| 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 TableBlock as a dom::Value object.
<mrdocs/Metadata/DocComment/Block/TableBlock.hpp>void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
TableBlock const& I,
DomCorpus const* domCorpus);
| 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.
<mrdocs/Metadata/DocComment/Block/TableCell.hpp>void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
TableCell const& I,
DomCorpus const* domCorpus);
| 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.
<mrdocs/Metadata/DocComment/Block/TableRow.hpp>void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
TableRow const& I,
DomCorpus const* domCorpus);
| 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 TextInline as a dom::Value object.
<mrdocs/Metadata/DocComment/Inline/TextInline.hpp>void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
TextInline const& I,
DomCorpus const* domCorpus);
| 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 ThematicBreakBlock as a dom::Value object.
<mrdocs/Metadata/DocComment/Block/ThematicBreakBlock.hpp>void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
ThematicBreakBlock const& I,
DomCorpus const* domCorpus);
| Name | Description |
|---|---|
| v | A variant container for any kind of Dom value. |
| I | A horizontal thematic break separating sections. |
| domCorpus | Front-end factory for producing Dom nodes. |
Return the ThrowsBlock as a dom::Value object.
<mrdocs/Metadata/DocComment/Block/ThrowsBlock.hpp>void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
ThrowsBlock const& I,
DomCorpus const* domCorpus);
| Name | Description |
|---|---|
| v | A variant container for any kind of Dom value. |
| I | Documentation for a function exception clause |
| domCorpus | Front-end factory for producing Dom nodes. |
Map an optional polymorphic block into a DOM value, producing null when empty.
<mrdocs/Metadata/DocComment/Block.hpp>void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
Optional<Polymorphic<Block>> const& I,
DomCorpus const* domCorpus);
| Name | Description |
|---|---|
| v | Destination value. |
| I | Optional block to convert. |
| domCorpus | Corpus context for lazy resolution. |
Map the Polymorphic Block as a dom::Value object.
<mrdocs/Metadata/DocComment/Block.hpp>void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
Polymorphic<Block> const& I,
DomCorpus const* domCorpus);
| Name | Description |
|---|---|
| v | The output parameter to receive the dom::Value. |
| I | The polymorphic Block to convert. |
| domCorpus | The DomCorpus used to resolve references. |
Map an optional brief block to a DOM value, yielding null when absent.
<mrdocs/Metadata/DocComment/Block/BriefBlock.hpp>void
tag_invoke(
mrdocs::dom::ValueFromTag,
mrdocs::dom::Value& v,
Optional<BriefBlock> const& I,
DomCorpus const* domCorpus);
| Name | Description |
|---|---|
| v | Destination value. |
| I | Optional brief block to convert. |
| domCorpus | Corpus context for lazy references. |
Map the Block to a dom::Object.
<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag,
IO& io,
Block const& I,
DomCorpus const*);
| Name | Description |
|---|---|
| io | The output object. |
| I | The input object. |
Map a block container into a lazily-evaluated DOM object.
<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag,
IO& io,
BlockContainer const& I,
DomCorpus const* domCorpus);
| Name | Description |
|---|---|
| io | Destination object. |
| I | Block container to convert. |
| domCorpus | Corpus context for lazy references. |
Map the Polymorphic Block to a dom::Object.
<mrdocs/Metadata/DocComment/Block.hpp>template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag,
IO& io,
Polymorphic<Block> const& I,
DomCorpus const* domCorpus);
| 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 AdmonitionBlock to a dom::Object.
<mrdocs/Metadata/DocComment/Block/AdmonitionBlock.hpp>template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
AdmonitionBlock const& I,
DomCorpus const* domCorpus);
| 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 BriefBlock to a dom::Object.
<mrdocs/Metadata/DocComment/Block/BriefBlock.hpp>template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
BriefBlock const& I,
DomCorpus const* domCorpus);
| 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 CodeBlock to a dom::Object.
<mrdocs/Metadata/DocComment/Block/CodeBlock.hpp>template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
CodeBlock const& I,
DomCorpus const* domCorpus);
| 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 CodeInline to a dom::Object.
<mrdocs/Metadata/DocComment/Inline/CodeInline.hpp>template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
CodeInline const& I,
DomCorpus const* domCorpus);
| 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 CopyDetailsInline to a dom::Object.
<mrdocs/Metadata/DocComment/Inline/CopyDetailsInline.hpp>template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
CopyDetailsInline const& I,
DomCorpus const* domCorpus);
| 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 a definition list block into a DOM object.
<mrdocs/Metadata/DocComment/Block/DefinitionListBlock.hpp>template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
DefinitionListBlock const& I,
DomCorpus const* domCorpus);
| Name | Description |
|---|---|
| t | Conversion tag. |
| io | Destination object. |
| I | Block to convert. |
| domCorpus | Corpus context for lazy references. |
Map the DefinitionListItem to a dom::Object.
<mrdocs/Metadata/DocComment/Block/DefinitionListItem.hpp>template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
DefinitionListItem const& I,
DomCorpus const* domCorpus);
| 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 EmphInline to a dom::Object.
<mrdocs/Metadata/DocComment/Inline/EmphInline.hpp>template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
EmphInline const& I,
DomCorpus const* domCorpus);
| 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 FootnoteDefinitionBlock to a dom::Object.
<mrdocs/Metadata/DocComment/Block/FootnoteDefinitionBlock.hpp>template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
FootnoteDefinitionBlock const& I,
DomCorpus const* domCorpus);
| 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 FootnoteReferenceInline to a dom::Object.
<mrdocs/Metadata/DocComment/Inline/FootnoteReferenceInline.hpp>template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
FootnoteReferenceInline const& I,
DomCorpus const* domCorpus);
| 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 HeadingBlock to a dom::Object.
<mrdocs/Metadata/DocComment/Block/HeadingBlock.hpp>template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
HeadingBlock const& I,
DomCorpus const* domCorpus);
| 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 HighlightInline to a dom::Object.
<mrdocs/Metadata/DocComment/Inline/HighlightInline.hpp>template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
HighlightInline const& I,
DomCorpus const* domCorpus);
| 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 ImageInline to a dom::Object.
<mrdocs/Metadata/DocComment/Inline/ImageInline.hpp>template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
ImageInline const& I,
DomCorpus const* domCorpus);
| 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.
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
Inline const& I,
DomCorpus const* domCorpus);
| 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 an InlineContainer into a DOM object.
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
InlineContainer const& I,
DomCorpus const* domCorpus);
| Name | Description |
|---|---|
| t | The mapping tag. |
| io | Output object receiving serialized fields. |
| I | Inline container to serialize. |
| domCorpus | Optional corpus for lazy lookups. |
Map the LineBreakInline to a dom::Object.
<mrdocs/Metadata/DocComment/Inline/LineBreakInline.hpp>template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
LineBreakInline const& I,
DomCorpus const* domCorpus);
| 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 LinkInline to a dom::Object.
<mrdocs/Metadata/DocComment/Inline/LinkInline.hpp>template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
LinkInline const& I,
DomCorpus const* domCorpus);
| 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 ListBlock to a dom::Object.
<mrdocs/Metadata/DocComment/Block/ListBlock.hpp>template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
ListBlock const& I,
DomCorpus const* domCorpus);
| 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.
<mrdocs/Metadata/DocComment/Block/ListItem.hpp>template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
ListItem const& I,
DomCorpus const* domCorpus);
| 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 MathBlock to a dom::Object.
<mrdocs/Metadata/DocComment/Block/MathBlock.hpp>template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
MathBlock const& I,
DomCorpus const* domCorpus);
| 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 MathInline to a dom::Object.
<mrdocs/Metadata/DocComment/Inline/MathInline.hpp>template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
MathInline const& I,
DomCorpus const* domCorpus);
| 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 ParagraphBlock to a dom::Object.
<mrdocs/Metadata/DocComment/Block/ParagraphBlock.hpp>template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
ParagraphBlock const& I,
DomCorpus const* domCorpus);
| 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.
<mrdocs/Metadata/DocComment/Block/ParamBlock.hpp>template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
ParamBlock const& I,
DomCorpus const* domCorpus);
| 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 PostconditionBlock to a dom::Object.
<mrdocs/Metadata/DocComment/Block/PostconditionBlock.hpp>template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
PostconditionBlock const& I,
DomCorpus const* domCorpus);
| 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 PreconditionBlock to a dom::Object.
<mrdocs/Metadata/DocComment/Block/PreconditionBlock.hpp>template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
PreconditionBlock const& I,
DomCorpus const* domCorpus);
| 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.
<mrdocs/Metadata/DocComment/Block/QuoteBlock.hpp>template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
QuoteBlock const& I,
DomCorpus const* domCorpus);
| 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 ReferenceInline to a dom::Object.
<mrdocs/Metadata/DocComment/Inline/ReferenceInline.hpp>template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
ReferenceInline const& I,
DomCorpus const* domCorpus);
| 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 ReturnsBlock to a dom::Object.
<mrdocs/Metadata/DocComment/Block/ReturnsBlock.hpp>template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
ReturnsBlock const& I,
DomCorpus const* domCorpus);
| 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 SeeBlock to a dom::Object.
<mrdocs/Metadata/DocComment/Block/SeeBlock.hpp>template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
SeeBlock const& I,
DomCorpus const* domCorpus);
| 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 SoftBreakInline to a dom::Object.
<mrdocs/Metadata/DocComment/Inline/SoftBreakInline.hpp>template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
SoftBreakInline const& I,
DomCorpus const* domCorpus);
| 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 StrikethroughInline to a dom::Object.
<mrdocs/Metadata/DocComment/Inline/StrikethroughInline.hpp>template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
StrikethroughInline const& I,
DomCorpus const* domCorpus);
| 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 StrongInline to a dom::Object.
<mrdocs/Metadata/DocComment/Inline/StrongInline.hpp>template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
StrongInline const& I,
DomCorpus const* domCorpus);
| 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 SubscriptInline to a dom::Object.
<mrdocs/Metadata/DocComment/Inline/SubscriptInline.hpp>template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
SubscriptInline const& I,
DomCorpus const* domCorpus);
| 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 SuperscriptInline to a dom::Object.
<mrdocs/Metadata/DocComment/Inline/SuperscriptInline.hpp>template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
SuperscriptInline const& I,
DomCorpus const* domCorpus);
| 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.
<mrdocs/Metadata/DocComment/Block/TParamBlock.hpp>template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
TParamBlock const& I,
DomCorpus const* domCorpus);
| 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 TableBlock to a dom::Object.
<mrdocs/Metadata/DocComment/Block/TableBlock.hpp>template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
TableBlock const& I,
DomCorpus const* domCorpus);
| 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.
<mrdocs/Metadata/DocComment/Block/TableCell.hpp>template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
TableCell const& I,
DomCorpus const* domCorpus);
| 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.
<mrdocs/Metadata/DocComment/Block/TableRow.hpp>template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
TableRow const& I,
DomCorpus const* domCorpus);
| 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 TextInline to a dom::Object.
<mrdocs/Metadata/DocComment/Inline/TextInline.hpp>template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
TextInline const& I,
DomCorpus const* domCorpus);
| 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 ThematicBreakBlock to a dom::Object.
<mrdocs/Metadata/DocComment/Block/ThematicBreakBlock.hpp>template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
ThematicBreakBlock const& I,
DomCorpus const* domCorpus);
| 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 ThrowsBlock to a dom::Object.
<mrdocs/Metadata/DocComment/Block/ThrowsBlock.hpp>template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
ThrowsBlock const& I,
DomCorpus const* domCorpus);
| 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. |
Serialize a polymorphic inline node into a DOM value.
<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);
Map the Polymorphic Inline as a dom::Value object.
Convert a polymorphic block storage into a DOM value.
| Name | Description |
|---|---|
| io | Destination value. |
| I | Inline storage to convert. |
| domCorpus | Corpus context for lazy references. |
toString overloads
<mrdocs/Metadata/DocComment/Block/AdmonitionKind.hpp>Return the name of the Admonish as a string.
dom::String
toString(AdmonitionKind kind) noexcept;
» more...
Convert a block kind to its kebab-case string name.
dom::String
toString(BlockKind kind) noexcept;
» more...
Convert an inline kind to its kebab-case string.
dom::String
toString(InlineKind kind) noexcept;
» more...
Return the name of the ParamDirection as a string.
dom::String
toString(ParamDirection kind) noexcept;
» more...
Return the name of the Parts as a string.
dom::String
toString(Parts kind) noexcept;
» more...
Return the name of the Admonish as a string.
<mrdocs/Metadata/DocComment/Block/AdmonitionKind.hpp>dom::String
toString(AdmonitionKind kind) noexcept;
| Name | Description |
|---|---|
| kind | An admonishment style. |
Convert a block kind to its kebab-case string name.
<mrdocs/Metadata/DocComment/Block/BlockKind.hpp>dom::String
toString(BlockKind kind) noexcept;
| Name | Description |
|---|---|
| kind | Enumerates the different kinds of DocComment blocks. |
Convert an inline kind to its kebab-case string.
<mrdocs/Metadata/DocComment/Inline/InlineKind.hpp>dom::String
toString(InlineKind kind) noexcept;
| Name | Description |
|---|---|
| kind | Enumerates the different kinds of inline nodes. |
Return the name of the ParamDirection as a string.
<mrdocs/Metadata/DocComment/Block/ParamDirection.hpp>dom::String
toString(ParamDirection kind) noexcept;
| Name | Description |
|---|---|
| kind | Parameter pass direction. |
Return the name of the Parts as a string.
<mrdocs/Metadata/DocComment/Inline/Parts.hpp>dom::String
toString(Parts kind) noexcept;
| Name | Description |
|---|---|
| kind | Which parts of the documentation to copy. |
Traverse a list of inlines.
<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);
| 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
<mrdocs/Metadata/DocComment/Block.hpp>Removes leading and trailing whitespace from the block.
void
trim(Block& el);
» more...
Removes leading and trailing whitespace from the text elements
void
trim(BlockContainer& blocks);
» more...
Removes leading and trailing whitespace from the text elements in the given InlineContainer.
void
trim(InlineContainer& inlines);
» more...
Removes leading and trailing whitespace from the block.
void
trim(Polymorphic<Block>& el);
» more...
Removes leading and trailing whitespace from the inline element.
void
trim(Polymorphic<Inline>& el);
» more...
| 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.
| Name | Description |
|---|---|
| el | The Block to trim. |
Removes leading and trailing whitespace from the text elements
<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>void
trim(BlockContainer& blocks);
| Name | Description |
|---|---|
| blocks | The BlockContainer to trim. |
Removes leading and trailing whitespace from the text elements in the given InlineContainer.
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>void
trim(InlineContainer& inlines);
| Name | Description |
|---|---|
| inlines | The InlineContainer to trim. |
Removes leading and trailing whitespace from the block.
| Name | Description |
|---|---|
| el | The Polymorphic<Block> to trim. |
Removes leading and trailing whitespace from the inline element.
| Name | Description |
|---|---|
| el | The Polymorphic<Inline> to trim. |
visit overloads
<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);
» more...
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);
» more...
| Name | Description |
|---|---|
| info | 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.
<mrdocs/Metadata/DocComment/Block.hpp>template<
std::derived_from<Block> BlockTy,
class Fn,
class... Args>
decltype(auto)
visit(
BlockTy& info,
Fn&& fn,
Args&&... args);
| Name | Description |
|---|---|
| info | The block to visit. |
| fn | The function to call for each block. |
| args | Additional arguments to pass to the function. |
Visit an inline.
<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);
| 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 delegates to the three-way comparison.
<mrdocs/Metadata/DocComment/Block.hpp>Equality delegates to the three-way comparison.
bool
operator==(
Polymorphic<Inline> const& lhs,
Polymorphic<Inline> const& rhs);
» more...
Equality delegates to the three-way comparison.
bool
operator==(
Polymorphic<Block> const& lhs,
Polymorphic<Block> const& rhs);
» more...
Equality delegates to the three-way comparison.
<mrdocs/Metadata/DocComment/Inline.hpp>bool
operator==(
Polymorphic<Inline> const& lhs,
Polymorphic<Inline> const& rhs);
true if the objects are equal, false otherwise
| Name | Description |
|---|---|
| lhs | The left operand |
| rhs | The right operand |
Equality delegates to the three-way comparison.
<mrdocs/Metadata/DocComment/Block.hpp>bool
operator==(
Polymorphic<Block> const& lhs,
Polymorphic<Block> const& rhs);
true if the objects are equal, false otherwise
| Name | Description |
|---|---|
| lhs | The left operand |
| rhs | The right operand |
Three-way comparison operators
<mrdocs/Metadata/DocComment/Block.hpp>Three-way comparison for polymorphic inline elements.
std::strong_ordering
operator<=>(
Polymorphic<Inline> const& lhs,
Polymorphic<Inline> const& rhs);
» more...
Three-way comparison between polymorphic block wrappers.
std::strong_ordering
operator<=>(
Polymorphic<Block> const& lhs,
Polymorphic<Block> const& rhs);
» more...
Three-way comparison for polymorphic inline elements.
<mrdocs/Metadata/DocComment/Inline.hpp>std::strong_ordering
operator<=>(
Polymorphic<Inline> const& lhs,
Polymorphic<Inline> const& rhs);
| Name | Description |
|---|---|
| lhs | The left operand |
| rhs | The right operand |
Three-way comparison between polymorphic block wrappers.
<mrdocs/Metadata/DocComment/Block.hpp>std::strong_ordering
operator<=>(
Polymorphic<Block> const& lhs,
Polymorphic<Block> const& rhs);
| Name | Description |
|---|---|
| lhs | The left operand |
| rhs | The right operand |
Objects representing JSON-like values.
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";
}
| Name | Description |
|---|---|
JSON | JSON serialization helpers for DOM values. |
| Name | Description |
|---|---|
Array | An array of values |
ArrayImpl | Abstract array interface. |
DefaultArrayImpl | The default array implementation. |
DefaultFunctionImpl | Function implementation that wraps a fixed-arity callable. |
DefaultObjectImpl | The default Object implementation. |
Function | Value-semantic wrapper over a callable exposed to the DOM layer. |
FunctionImpl | Value-semantic wrapper over a callable exposed to the DOM layer. |
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 | UTF-8 string value used by the DOM. |
Value | A variant container for any kind of Dom value. |
ValueFromTag | Customization point tag. |
VariadicFunctionImpl | Function implementation that forwards the entire Array to a callable. |
function_traits | Helper traits to extract return and argument types from callables. |
function_traits<F> | Traits specialization for functors/lambdas. |
function_traits<R(*)(Args...)> | Traits specialization for function pointers. |
function_traits<R(Args...)> | Traits specialization for free functions. |
function_traits<R const volatile(C::*)(Args...)> | Traits specialization for member functions. |
| Name | Description |
|---|---|
Kind | The type of data in a Value. |
| 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 | Create a Function from a fixed-arity invocable. |
makeVariadicInvocable | Create a Function that receives the argument Array directly. |
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 |
| 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 | Concept selecting callables convertible to dom::Value. |
has_function_args_for_default_function_impl | Concept requiring all arguments be convertible to dom::Value. |
has_function_traits | Concept true when function_traits is defined for F. |
has_function_traits_for_default_function_impl | Concept combining argument and return constraints for default wrapper. |
has_invoke_expected_result_convertible_to_dom_value | Concept true when F returns Expected<dom::Value> or Expected<void>. |
has_invoke_result_convertible_to_dom_value | Concept true when F returns a dom::Value or void. |
has_invoke_result_for_default_function_impl | Concept enabling default function wrapper for supported return types. |
JSON serialization helpers for DOM values.
This namespace wraps the platform JSON encoder/decoder behavior we emulate inside MrDocs so generators can round-trip DOM Value objects to text and back with predictable spacing, escaping, and cyclic-detection rules.
| Name | Description |
|---|---|
stringify | Stringify a value as JSON |
Stringify a value as JSON
This function serialized a Value to a string as if JSON.stringify() had been called on it.
Recursive objects are identified.
| Name | Description |
|---|---|
| value | The value to stringify. |
An array of values
<mrdocs/Dom/Array.hpp>class Array final
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.
| 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. |
| 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. |
| Name | Description |
|---|---|
newArray |
Return a new array using a custom implementation. |
toString |
Return a diagnostic string. |
operator<=> |
Compare two arrays for precedence. |
operator== |
Compare two arrays for equality. |
swap |
Swap two arrays. |
operator+ |
|
operator+ |
|
operator+ |
Concatenate two arrays. |
| 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 |
A constant iterator referencing an element in an Array.
A pointer to an element.
A reference to an element.
This is a read-only reference to an element.
A signed integral type.
<mrdocs/Dom/Array.hpp>using difference_type = std::ptrdiff_t;
The implementation type.
<mrdocs/Dom/Array.hpp>using impl_type = std::shared_ptr<ArrayImpl>;
A pointer to an element.
A reference to an element.
This is a read-only reference to an element.
An unsigned integral type used for indexes and sizes.
<mrdocs/Dom/Array.hpp>using size_type = std::size_t;
The type of storage used by the default implementation.
<mrdocs/Dom/Array.hpp>using storage_type = std::vector<value_type>;
The type of an element.
A constant iterator referencing an element in an Array.
<mrdocs/Dom/Array.hpp>class iterator;
| Name | Description |
|---|---|
operator+ |
|
Array |
An array of values |
Constructor.
<mrdocs/Dom/Array.hpp>Constructor.
Array();
» more...
Constructor.
Array(Array const& other);
» more...
Constructor.
Array(Array&& other);
» more...
Constructor.
Array(impl_type impl) noexcept;
» more...
Constructor.
Array(storage_type elements);
» more...
| Name | Description |
|---|---|
| elements | The elements to acquire. |
Constructor.
<mrdocs/Dom/Array.hpp>Array();
Default-constructed arrays refer to a new, empty array which is distinct from every other empty array.
Constructor.
The newly constructed array will contain copies of the scalars in other, and references to its structured data.
| Name | Description |
|---|---|
| other | The object to copy construct from |
Constructor.
Ownership of the contents is transferred to the new object. The moved-from array will behave as if default-constructed.
| Name | Description |
|---|---|
| other | The object to move construct from |
Constructor.
This constructs an array from an existing implementation, with shared ownership. The pointer cannot not be null.
| Name | Description |
|---|---|
| impl | The object to construct from |
Constructor.
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.
| Name | Description |
|---|---|
| elements | The elements to acquire. |
Destructor.
<mrdocs/Dom/Array.hpp>~Array();
Assignment.
<mrdocs/Dom/Array.hpp>Assignment.
constexpr
Array&
operator=(Array const& other) = default;
» more...
Assignment.
Array&
operator=(Array&& other);
» more...
Assignment.
<mrdocs/Dom/Array.hpp>constexpr
Array&
operator=(Array const& other) = default;
This acquires shared ownership of the copied array, and ownership of the previous contents is released.
| Name | Description |
|---|---|
| other | The object to copy assign from |
Assignment.
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.
| Name | Description |
|---|---|
| other | The object to move assign from |
Return the i-th element.
| Name | Thrown on |
|---|---|
Exception |
i >= size() |
| Name | Description |
|---|---|
| i | An unsigned integral type used for indexes and sizes. |
Return the last element.
| Name | Thrown on |
|---|---|
Exception |
empty() |
Return an iterator to the beginning of the range of elements.
Append an element to the end of the array.
<mrdocs/Dom/Array.hpp>template<class... Args>
void
emplace_back(Args&&... args);
If the array is read-only, an exception is thrown.
| Name | Description |
|---|---|
| args | Arguments forwarded to the constructor of Value. |
Return true if the array is empty.
<mrdocs/Dom/Array.hpp>bool
empty() const noexcept;
Return an iterator to the end of the range of elements.
Return the first element.
| Name | Thrown on |
|---|---|
Exception |
empty() |
Return the i-th element, without bounds checking.
| Name | Description |
|---|---|
| i | The zero-based index of the element. |
Return the implementation used by this object.
Append an element to the end of the array.
If the array is read-only, an exception is thrown.
| Name | Description |
|---|---|
| value | The type of an element. |
Set the i-th element, without bounds checking.
| Name | Description |
|---|---|
| i | The zero-based index of the element. |
| v | The value to set. |
Return the number of elements in the array.
Swap two arrays.
| Name | Description |
|---|---|
| other | An array of values |
Return the type key of the implementation.
<mrdocs/Dom/Array.hpp>char const*
type_key() const noexcept;
Abstract array interface.
<mrdocs/Dom/Array.hpp>class ArrayImpl;
This interface is used by Array types.
| Name | Description |
|---|---|
size_type | An unsigned integral type used for indexes and sizes. |
value_type | The type of an element. |
| 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. |
| Name | Description |
|---|---|
DefaultArrayImpl
| The default array implementation. |
LazyArrayImpl
| Lazy array implementation |
LazyArrayImpl
| Lazy array implementation |
An unsigned integral type used for indexes and sizes.
The type of an element.
Destructor.
<mrdocs/Dom/Array.hpp>virtual
~ArrayImpl();
Append an element to the end of the array.
The default implementation throws an exception, making the array effectively read-only.
| Name | Description |
|---|---|
| value | The type of an element. |
Return the i-th element, without bounds checking.
| Name | Description |
|---|---|
| i | An unsigned integral type used for indexes and sizes. |
Set the i-th element, without bounds checking.
| Name | Description |
|---|---|
| index | An unsigned integral type used for indexes and sizes. |
| value | A variant container for any kind of Dom value. |
Return the number of elements in the array.
Return the type key of the implementation.
<mrdocs/Dom/Array.hpp>virtual
char const*
type_key() const noexcept;
The default array implementation.
This implementation is backed by a simple vector and allows appending.
| Name | Description |
|---|---|
ArrayImpl | Abstract array interface. |
| 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. |
| Name | Description |
|---|---|
DefaultArrayImpl [constructor] | Constructors |
emplace_back [virtual] | Append a value to the array. |
get [virtual] | Retrieve an element at the specified index. |
set [virtual] | set overloads |
size [virtual] | Return the number of stored elements. |
type_key [virtual] | Return the type key string for this array. |
An unsigned integral type used for indexes and sizes.
The type of storage used by the default implementation.
The type of an element.
Constructors
<mrdocs/Dom/Array.hpp>Create an empty array implementation.
DefaultArrayImpl();
» more...
Create an array populated with the given elements.
explicit
DefaultArrayImpl(storage_type elements) noexcept;
» more...
| Name | Description |
|---|---|
| elements | Initial contents to take ownership of. |
Create an empty array implementation.
<mrdocs/Dom/Array.hpp>DefaultArrayImpl();
Create an array populated with the given elements.
<mrdocs/Dom/Array.hpp>explicit
DefaultArrayImpl(storage_type elements) noexcept;
| Name | Description |
|---|---|
| elements | Initial contents to take ownership of. |
Append a value to the array.
| Name | Description |
|---|---|
| value | The type of an element. |
Retrieve an element at the specified index.
| Name | Description |
|---|---|
| i | Index of the element to fetch. |
set overloads
<mrdocs/Dom/Array.hpp>Replace the element at the specified index.
virtual
void
set(
size_type i,
Value v) override;
» more...
Set the i-th element, without bounds checking.
virtual
void
set(
size_type index,
Value value);
» more...
| Name | Description |
|---|---|
| i | Index to update. |
| v | New value to store. |
Replace the element at the specified index.
| Name | Description |
|---|---|
| i | Index to update. |
| v | New value to store. |
Set the i-th element, without bounds checking.
| Name | Description |
|---|---|
| index | An unsigned integral type used for indexes and sizes. |
| value | A variant container for any kind of Dom value. |
Return the number of stored elements.
Return the type key string for this array.
<mrdocs/Dom/Array.hpp>virtual
char const*
type_key() const noexcept override;
Function implementation that wraps a fixed-arity callable.
<mrdocs/Dom/Function.hpp>template<class F>
class DefaultFunctionImpl
: public FunctionImpl
| Name | Description |
|---|---|
FunctionImpl | Value-semantic wrapper over a callable exposed to the DOM layer. |
| Name | Description |
|---|---|
args_type | Argument tuple type accepted by the callable. |
return_type | Result type produced by the callable. |
| Name | Description |
|---|---|
DefaultFunctionImpl [constructor] | Construct from any callable convertible to F. |
call [virtual] | Invoke the wrapped callable with the given arguments. |
type_key [virtual] | Return the type key of the implementation. |
Argument tuple type accepted by the callable.
<mrdocs/Dom/Function.hpp>using args_type = function_traits<F>::args_type;
Result type produced by the callable.
<mrdocs/Dom/Function.hpp>using return_type = function_traits<F>::return_type;
Construct from any callable convertible to F.
<mrdocs/Dom/Function.hpp>template<class U>
DefaultFunctionImpl(U&& u);
| Name | Description |
|---|---|
| u | Callable to wrap. |
Invoke the wrapped callable with the given arguments.
<mrdocs/Dom/Function.hpp>virtual
Expected<Value>
call(Array const& args) const override;
| Name | Description |
|---|---|
| args | An array of values |
Return the type key of the implementation.
<mrdocs/Dom/Function.hpp>virtual
char const*
type_key() const noexcept override;
The default Object implementation.
| Name | Description |
|---|---|
ObjectImpl | Abstract object interface. |
| Name | Description |
|---|---|
reference | A reference to an element. |
storage_type | The type of storage used by the default implementation. |
| Name | Description |
|---|---|
DefaultObjectImpl [constructor] | Constructors |
exists [virtual] | Check whether a key exists in the object. |
get [virtual] | Retrieve a value by key. |
set [virtual] | Set a value by key. |
size [virtual] | Return number of elements stored. |
type_key [virtual] | Return the type key of the implementation. |
visit [virtual] | visit overloads |
Constructors
<mrdocs/Dom/Object.hpp>Create an empty object implementation.
DefaultObjectImpl() noexcept;
» more...
Create an object pre-populated with entries.
explicit
DefaultObjectImpl(storage_type entries) noexcept;
» more...
| Name | Description |
|---|---|
| entries | Key/value storage to take ownership of. |
Create an empty object implementation.
<mrdocs/Dom/Object.hpp>DefaultObjectImpl() noexcept;
Create an object pre-populated with entries.
<mrdocs/Dom/Object.hpp>explicit
DefaultObjectImpl(storage_type entries) noexcept;
| Name | Description |
|---|---|
| entries | Key/value storage to take ownership of. |
Check whether a key exists in the object.
<mrdocs/Dom/Object.hpp>virtual
bool
exists(std::string_view key) const override;
| Name | Description |
|---|---|
| key | Key to test. |
Retrieve a value by key.
<mrdocs/Dom/Object.hpp>virtual
Value
get(std::string_view key) const override;
| Name | Description |
|---|---|
| key | Key to search for. |
Set a value by key.
| Name | Description |
|---|---|
| key | Key to set. |
| value | New value. |
Return number of elements stored.
<mrdocs/Dom/Object.hpp>virtual
std::size_t
size() const override;
visit overloads
<mrdocs/Dom/Object.hpp>Invoke the visitor for each key/value pair.
virtual
bool
visit(std::function<bool(String, Value)> fn) const = 0;
» more...
Visit each key/value pair until the visitor returns false.
virtual
bool
visit(std::function<bool(String, Value)> visitor) const override;
» more...
true if the visitor returned true for all elements, otherwise false.| Name | Description |
|---|---|
| fn | The visitor function. |
| visitor | Callback receiving key and value. |
Invoke the visitor for each key/value pair.
<mrdocs/Dom/Object.hpp>virtual
bool
visit(std::function<bool(String, Value)> fn) const = 0;
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.
true if the visitor returned true for all elements, otherwise false.
| Name | Description |
|---|---|
| fn | The visitor function. |
Visit each key/value pair until the visitor returns false.
<mrdocs/Dom/Object.hpp>virtual
bool
visit(std::function<bool(String, Value)> visitor) const override;
| Name | Description |
|---|---|
| visitor | Callback receiving key and value. |
Value-semantic wrapper over a callable exposed to the DOM layer.
<mrdocs/Dom/Function.hpp>class Function;
| Name | Description |
|---|---|
Function [constructor] | Constructors |
~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. |
| Name | Description |
|---|---|
newFunction |
Return a diagnostic string. |
swap |
Swap two objects. |
| Name | Description |
|---|---|
makeInvocable | Create a Function from a fixed-arity invocable. |
makeVariadicInvocable | Create a Function that receives the argument Array directly. |
Constructors
<mrdocs/Dom/Function.hpp>Constructor.
Function() noexcept;
» more...
Constructor.
Function(Function const& other) noexcept;
» more...
Constructor.
Function(Function&& other) noexcept;
» more...
Construct a Function from any supported callable.
template<class F>
requires function_traits_convertible_to_value<std::decay_t<F>>
Function(F const& f);
» more...
| Name | Description |
|---|---|
| f | Callable to wrap. |
Constructor.
<mrdocs/Dom/Function.hpp>Function() noexcept;
A default-constructed function has this equivalent implementation:
Value f()
{
return nullptr;
}
Constructor.
The newly constructed object acquires shared ownership of the function.
| Name | Description |
|---|---|
| other | The object to copy construct from |
Constructor.
Ownership of the function is tranferred. The moved-from object behaves as if default constructed.
| Name | Description |
|---|---|
| other | The object to move construct from |
Construct a Function from any supported callable.
<mrdocs/Dom/Function.hpp>template<class F>
requires function_traits_convertible_to_value<std::decay_t<F>>
Function(F const& f);
| Name | Description |
|---|---|
| f | Callable to wrap. |
Destructor.
<mrdocs/Dom/Function.hpp>~Function();
Assignment.
<mrdocs/Dom/Function.hpp>Assignment.
Function&
operator=(Function const& other) noexcept;
» more...
Assignment.
Function&
operator=(Function&& other) noexcept;
» more...
Assignment.
This acquires shared ownership of the function. Ownership of the previous function is removed.
| Name | Description |
|---|---|
| other | The object to copy assign from |
Assignment.
Ownership of the function is tranferred, and ownership of the previous function is released. The moved-from object behaves as if default constructed.
| Name | Description |
|---|---|
| other | The object to move assign from |
Invoke the function.
| Name | Description |
|---|---|
| args | An array of values |
Return the implementation used by this object.
Invoke the function.
<mrdocs/Dom/Function.hpp>template<class... Args>
Value
operator()(Args&&... args) const;
| Name | Description |
|---|---|
| args | The arguments to the function. |
Swap two objects.
| Name | Description |
|---|---|
| other | The other object. |
Invoke the function.
<mrdocs/Dom/Function.hpp>template<class... Args>
Expected<Value>
try_invoke(Args&&... args) const;
| Name | Description |
|---|---|
| args | The arguments to the function. |
Return the type key.
<mrdocs/Dom/Function.hpp>char const*
type_key() const noexcept;
Value-semantic wrapper over a callable exposed to the DOM layer.
<mrdocs/Dom/Function.hpp>class FunctionImpl;
Abstract base for function implementations.
| Name | Description |
|---|---|
~FunctionImpl [destructor] [virtual] | Destructor. |
call [virtual] | Invoke the function. |
type_key [virtual] | Return the type key of the implementation. |
| Name | Description |
|---|---|
DefaultFunctionImpl
| Function implementation that wraps a fixed-arity callable. |
VariadicFunctionImpl
| Function implementation that forwards the entire Array to a callable. |
Destructor.
<mrdocs/Dom/Function.hpp>constexpr
virtual
~FunctionImpl() = default;
Invoke the function.
<mrdocs/Dom/Function.hpp>virtual
Expected<Value>
call(Array const& args) const = 0;
| Name | Description |
|---|---|
| args | An array of values |
Return the type key of the implementation.
<mrdocs/Dom/Function.hpp>virtual
char const*
type_key() const noexcept;
Lazy array implementation
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.
| Name | Description |
|---|---|
ArrayImpl | Abstract array interface. |
| Name | Description |
|---|---|
size_type | An unsigned integral type used for indexes and sizes. |
value_type | The type of an element. |
| Name | Description |
|---|---|
LazyArrayImpl [constructor] | Constructors |
~LazyArrayImpl [destructor] [virtual] | Virtual destructor. |
emplace_back [virtual] | Append an element to the end of the array. |
get [virtual] | get overloads |
set [virtual] | Set the i-th element, without bounds checking. |
size [virtual] | Return the number of elements, computing it lazily if needed. |
type_key [virtual] | Return the type key of the implementation. |
Constructors
<mrdocs/Dom/LazyArray.hpp>Construct from a range of values.
explicit
LazyArrayImpl(R const& arr);
» more...
Construct from a range and a conversion context.
explicit
LazyArrayImpl(
R const& arr,
Context const& ctx);
» more...
| Name | Description |
|---|---|
| arr | Range to wrap lazily. |
| ctx | Context used to convert elements. |
Construct from a range of values.
<mrdocs/Dom/LazyArray.hpp>explicit
LazyArrayImpl(R const& arr);
| Name | Description |
|---|---|
| arr | The object to copy construct from |
Construct from a range and a conversion context.
<mrdocs/Dom/LazyArray.hpp>explicit
LazyArrayImpl(
R const& arr,
Context const& ctx);
| Name | Description |
|---|---|
| arr | Range to wrap lazily. |
| ctx | Context used to convert elements. |
Virtual destructor.
<mrdocs/Dom/LazyArray.hpp>virtual
~LazyArrayImpl() override = default;
get overloads
<mrdocs/Dom/Array.hpp>Retrieve the element at index i, or nil if out of range.
virtual
dom::Value
get(std::size_t i) const override;
» more...
Return the i-th element, without bounds checking.
virtual
value_type
get(size_type i) const = 0;
» more...
| Name | Description |
|---|---|
| i | Index of the element. |
Retrieve the element at index i, or nil if out of range.
<mrdocs/Dom/LazyArray.hpp>virtual
dom::Value
get(std::size_t i) const override;
| Name | Description |
|---|---|
| i | Index of the element. |
Return the i-th element, without bounds checking.
| Name | Description |
|---|---|
| i | An unsigned integral type used for indexes and sizes. |
Return the number of elements, computing it lazily if needed.
<mrdocs/Dom/LazyArray.hpp>virtual
std::size_t
size() const noexcept override;
Return the type key of the implementation.
<mrdocs/Dom/LazyArray.hpp>virtual
char const*
type_key() const noexcept override;
Lazy array implementation
<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
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.
| Name | Description |
|---|---|
ArrayImpl | Abstract array interface. |
| Name | Description |
|---|---|
size_type | An unsigned integral type used for indexes and sizes. |
value_type | The type of an element. |
| 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. |
Lazy object implementation.
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.
| Name | Description |
|---|---|
ObjectImpl | Abstract object interface. |
| Name | Description |
|---|---|
reference | A reference to an element. |
storage_type | The type of storage used by the default implementation. |
| Name | Description |
|---|---|
LazyObjectImpl [constructor] | Constructors |
~LazyObjectImpl [destructor] [virtual] | 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. |
Constructors
<mrdocs/Dom/LazyObject.hpp>Wrap an object using the default lazy mapping.
explicit
LazyObjectImpl(T const& obj)
requires HasLazyObjectMapWithoutContext<T>;
» more...
Wrap an object using a custom mapping context.
explicit
LazyObjectImpl(
T const& obj,
Context const& context)
requires HasLazyObjectMapWithContext<T, Context>;
» more...
| Name | Description |
|---|---|
| obj | Object providing the data. |
| context | Context that guides the mapping. |
Wrap an object using the default lazy mapping.
<mrdocs/Dom/LazyObject.hpp>explicit
LazyObjectImpl(T const& obj)
requires HasLazyObjectMapWithoutContext<T>;
| Name | Description |
|---|---|
| obj | Object providing the data. |
Wrap an object using a custom mapping context.
<mrdocs/Dom/LazyObject.hpp>explicit
LazyObjectImpl(
T const& obj,
Context const& context)
requires HasLazyObjectMapWithContext<T, Context>;
| Name | Description |
|---|---|
| obj | Object providing the data. |
| context | Context that guides the mapping. |
Virtual destructor.
<mrdocs/Dom/LazyObject.hpp>virtual
~LazyObjectImpl() override = default;
Determine if a key exists.
<mrdocs/Dom/LazyObject.hpp>virtual
bool
exists(std::string_view key) const override;
true if the key exists, otherwise false.
| Name | Description |
|---|---|
| key | The key to check for existence. |
Return the value for the specified key, or null.
<mrdocs/Dom/LazyObject.hpp>virtual
Value
get(std::string_view key) const override;
| Name | Description |
|---|---|
| key | The key. |
Insert or set the given key/value pair.
<mrdocs/Dom/LazyObject.hpp>virtual
void
set(
String key,
Value value) override;
| Name | Description |
|---|---|
| key | The key. |
| value | The value to set. |
Return the number of properties in the object.
<mrdocs/Dom/LazyObject.hpp>virtual
std::size_t
size() const override;
Return the type key of the implementation.
<mrdocs/Dom/LazyObject.hpp>virtual
char const*
type_key() const noexcept override;
Invoke the visitor for each key/value pair.
<mrdocs/Dom/LazyObject.hpp>virtual
bool
visit(std::function<bool(String, Value)> fn) const override;
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.
true if the visitor returned true for all elements, otherwise false.
| Name | Description |
|---|---|
| fn | The visitor function. |
Lazy object implementation.
<mrdocs/Dom/LazyObject.hpp>template<
class T,
class Context = /* implementation-defined */>
requires HasLazyObjectMap<T, Context>
class LazyObjectImpl
: public ObjectImpl
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.
| Name | Description |
|---|---|
ObjectImpl | Abstract object interface. |
| Name | Description |
|---|---|
reference | A reference to an element. |
storage_type | The type of storage used by the default implementation. |
| 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. |
Customization point tag.
<mrdocs/Dom/LazyObject.hpp>struct LazyObjectMapTag;
This tag type is used by the class dom::LazyObjectImpl to select overloads of tag_invoke.
This type is empty; it has no members.
A container of key and value pairs.
<mrdocs/Dom/Object.hpp>class Object final
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.
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.
| 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. |
| 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 |
| Name | Description |
|---|---|
toString |
Return a diagnostic string. |
operator<=> |
Compare two objects for precedence. |
operator== |
Compare two objects for equality. |
swap |
Swap two objects. |
| 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. |
A pointer to an element.
A reference to an element.
This is a read-only reference to an element.
A signed integral type.
<mrdocs/Dom/Object.hpp>using difference_type = std::ptrdiff_t;
The implementation type.
<mrdocs/Dom/Object.hpp>using impl_type = std::shared_ptr<ObjectImpl>;
A pointer to an element.
A reference to an element.
This is a read-only reference to an element.
An unsigned integral type used for indexes and sizes.
<mrdocs/Dom/Object.hpp>using size_type = std::size_t;
The type of storage used by the default implementation.
<mrdocs/Dom/Object.hpp>using storage_type = std::vector<value_type>;
The type of an element.
<mrdocs/Dom/Object.hpp>struct value_type;
Elements of this container are key and value pairs where the key is a string. This type is a copyable, movable value type.
Constructor.
<mrdocs/Dom/Object.hpp>Constructor.
Object();
» more...
Constructor.
Object(Object const& other) noexcept;
» more...
Constructor.
Object(Object&& other);
» more...
Constructor.
explicit
Object(impl_type impl) noexcept;
» more...
Constructor.
explicit
Object(storage_type list);
» more...
| Name | Description |
|---|---|
| list | The initial list of values. |
Constructor.
<mrdocs/Dom/Object.hpp>Object();
Default-constructed objects refer to a new, empty container which is distinct from every other empty container.
Constructor.
The newly constructed object will contain copies of the scalars in other, and references to its structured data.
| Name | Description |
|---|---|
| other | The object to copy construct from |
Constructor.
Ownership of the contents is transferred to the new object. The moved-from object will behave as if default-constructed.
| Name | Description |
|---|---|
| other | The object to move construct from |
Constructor.
This constructs an object from an existing implementation, with shared ownership. The pointer cannot not be null.
| Name | Description |
|---|---|
| impl | The object to construct from |
Constructor.
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.
| Name | Description |
|---|---|
| list | The initial list of values. |
Destructor.
<mrdocs/Dom/Object.hpp>constexpr
~Object() = default;
Assignment.
<mrdocs/Dom/Object.hpp>Assignment.
Object&
operator=(Object const& other) noexcept;
» more...
Assignment.
Object&
operator=(Object&& other);
» more...
Assignment.
Shared ownership and copies of elements in others are acquired by this. Ownership of the previous contents is released.
| Name | Description |
|---|---|
| other | The object to copy assign from |
Assignment.
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.
| Name | Description |
|---|---|
| other | The object to move assign from |
Return the element at a given index.
| Name | Description |
|---|---|
| i | The index. |
Return true if the container is empty.
<mrdocs/Dom/Object.hpp>bool
empty() const;
Return true if a key exists.
<mrdocs/Dom/Object.hpp>bool
exists(std::string_view key) const;
true if the key exists, otherwise false.
| Name | Description |
|---|---|
| key | The key to check for existence. |
Return the element with the specified key
| Name | Description |
|---|---|
| key | The key. |
Return the implementation used by this object.
Set or replace the value for a given key.
This function inserts a new key or changes the value for the existing key if it is already present.
| Name | Description |
|---|---|
| key | The key. |
| value | The value to set. |
Return the number of elements.
<mrdocs/Dom/Object.hpp>std::size_t
size() const;
Swap two objects.
| Name | Description |
|---|---|
| other | A container of key and value pairs. |
Return the type key.
<mrdocs/Dom/Object.hpp>char const*
type_key() const noexcept;
Invoke the visitor for each key/value pair
<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;
» more...
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;
» more...
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;
» more...
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.| Name | Description |
|---|---|
| fn | The visitor function. |
Invoke the visitor for each key/value pair
<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;
The visitor function must return true to continue iteration, or false to stop iteration early.
true if the visitor returned true for all elements, otherwise false.
| Name | Description |
|---|---|
| fn | The visitor function. |
Invoke the visitor for each key/value pair
<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;
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.
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.| Name | Description |
|---|---|
| fn | The visitor function. |
Invoke the visitor for each key/value pair
<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;
| Name | Description |
|---|---|
| fn | The visitor function. |
Abstract object interface.
<mrdocs/Dom/Object.hpp>class ObjectImpl;
This interface is used by Object types.
| Name | Description |
|---|---|
reference | A reference to an element. |
storage_type | The type of storage used by the default implementation. |
| 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. |
| Name | Description |
|---|---|
DefaultObjectImpl
| The default Object implementation. |
LazyObjectImpl
| Lazy object implementation. |
LazyObjectImpl
| Lazy object implementation. |
A reference to an element.
This is a read-only reference to an element.
The type of storage used by the default implementation.
Destructor.
<mrdocs/Dom/Object.hpp>virtual
~ObjectImpl();
Determine if a key exists.
<mrdocs/Dom/Object.hpp>virtual
bool
exists(std::string_view key) const;
true if the key exists, otherwise false.
| Name | Description |
|---|---|
| key | The key to check for existence. |
Return the value for the specified key, or null.
| Name | Description |
|---|---|
| key | The key. |
Insert or set the given key/value pair.
| Name | Description |
|---|---|
| key | The key. |
| value | The value to set. |
Return the number of properties in the object.
<mrdocs/Dom/Object.hpp>virtual
std::size_t
size() const = 0;
Return the type key of the implementation.
<mrdocs/Dom/Object.hpp>virtual
char const*
type_key() const noexcept;
Invoke the visitor for each key/value pair.
<mrdocs/Dom/Object.hpp>virtual
bool
visit(std::function<bool(String, Value)> fn) const = 0;
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.
true if the visitor returned true for all elements, otherwise false.
| Name | Description |
|---|---|
| fn | The visitor function. |
UTF-8 string value used by the DOM.
<mrdocs/Dom/String.hpp>class String final
| 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. |
| Name | Description |
|---|---|
operator+ |
|
operator+ |
|
operator+ |
Concatenate two strings. |
operator<=> |
Return the result of comparing two strings. |
operator!= |
Return the result of comparing two strings. |
operator== |
Return the result of comparing two strings. |
operator<=> |
Return the result of comparing two strings. |
operator!= |
Return the result of comparing two strings. |
operator== |
Return the result of comparing two strings. |
swap |
Swap two strings. |
| Name | Description |
|---|---|
::mrdocs::toString | Convert a function class to string form. |
::mrdocs::toString | Convert an explicit kind to its string form. |
::mrdocs::toString | Convert a reference kind to its string representation. |
::mrdocs::toString | Return the name of the SymbolKind as a string. |
::mrdocs::toString | Convert a NameKind to its string form. |
::mrdocs::toString | Convert a storage class kind to its string form. |
::mrdocs::toString | Convert an alignment enum to its string representation. |
::mrdocs::toString | Convert ExplicitInfo to a string. |
::mrdocs::toString | Convert a noexcept kind to its string form. |
::mrdocs::toString | Convert a cv/ref qualifier kind to its string form. |
::mrdocs::toString | Convert a list kind enum to its string name. |
::mrdocs::toString | Convert access specifier to its string form. |
::mrdocs::toString | Convert NoexceptInfo to a string. |
::mrdocs::toString | Convert a TypeKind to its string representation. |
::mrdocs::toString | Convert the key kind to its canonical string form. |
::mrdocs::toString | Convert an auto-kind to its spelling. |
::mrdocs::toString | Convert a constexpr/consteval specifier kind to a string. |
::mrdocs::doc::toString | Convert an inline kind to its kebab-case 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 | Convert a block kind to its kebab-case string name. |
::mrdocs::doc::toString | Return the name of the ParamDirection as a string. |
Constructor.
<mrdocs/Dom/String.hpp>Constructor.
constexpr
String() noexcept = default;
» more...
Constructor.
String(String const& other) noexcept;
» more...
Constructor.
constexpr
String(String&& other) noexcept;
» more...
Constructor.
String(std::string_view sv);
» more...
Constructor.
template<StringLikeTy StringLike>
String(StringLike const& s);
» more...
Constructor.
template<std::size_t N>
constexpr
String(char const(& str)[]);
» more...
Constructor.
String(
char const* str,
std::size_t len);
» more...
| 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.
<mrdocs/Dom/String.hpp>constexpr
String() noexcept = default;
Default constructed strings have a zero size, and include a null terminator.
Constructor.
The newly constructed string acquries shared ownership of the string referenced by other.
| Name | Description |
|---|---|
| other | The object to copy construct from |
Constructor.
Ownership of the string is transferred to the newly constructed string. The moved-from string behaves as if default constructed.
| Name | Description |
|---|---|
| other | The object to move construct from |
Constructor.
<mrdocs/Dom/String.hpp>String(std::string_view sv);
This function constructs a new string from the buffer pointed to by sv.
| Name | Description |
|---|---|
| sv | The string to construct with. A copy of this string is made. |
Constructor.
<mrdocs/Dom/String.hpp>template<StringLikeTy StringLike>
String(StringLike const& s);
This function constructs a new string from s, which must be convertible to std::string_view.
| Name | Description |
|---|---|
| s | The string to construct with. A copy of this string is made. |
Constructor.
<mrdocs/Dom/String.hpp>template<std::size_t N>
constexpr
String(char const(& str)[]);
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.
| Name | Description |
|---|---|
| str | A null-terminated string. If the string is not null-terminated, the result is undefined. |
Constructor.
<mrdocs/Dom/String.hpp>String(
char const* str,
std::size_t len);
This function constructs a new string from the string pointed to by str of length len.
| Name | Description |
|---|---|
| str | The string to construct with. A copy of this string is made. |
| len | The length of the string. |
Destructor.
<mrdocs/Dom/String.hpp>~String() noexcept;
Assignment.
<mrdocs/Dom/String.hpp>Assignment.
String&
operator=(String const& other) noexcept;
» more...
Assignment.
String&
operator=(String&& other) noexcept;
» more...
Assignment.
This acquires shared ownership of the string referenced by other. Ownership of the previously referenced string is released.
| Name | Description |
|---|---|
| other | The object to copy assign from |
Assignment.
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.
| Name | Description |
|---|---|
| other | The object to move assign from |
Return the string.
<mrdocs/Dom/String.hpp>char const*
c_str() const noexcept;
The pointed-to character buffer returned by this function is always null-terminated.
Return the string.
<mrdocs/Dom/String.hpp>char const*
data() const noexcept;
The pointed-to character buffer returned by this function is always null-terminated.
Return true if the string is empty.
<mrdocs/Dom/String.hpp>bool
empty() const noexcept;
Return the string.
<mrdocs/Dom/String.hpp>std::string_view
get() const noexcept;
Return the size.
<mrdocs/Dom/String.hpp>std::size_t
size() const noexcept;
Return the string.
<mrdocs/Dom/String.hpp>std::string
str() const noexcept;
Swap two strings.
| Name | Description |
|---|---|
| other | The other string. |
Return the string.
<mrdocs/Dom/String.hpp>operator std::string_view() const noexcept;
A variant container for any kind of Dom value.
<mrdocs/Dom/Value.hpp>class Value;
| Name | Description |
|---|---|
Value [constructor] | Constructors |
~Value [destructor] | Destroy the contained value, releasing owned storage. |
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 |
| Name | Description |
|---|---|
arr_ [variant member] | Array payload; shared with lazy arrays. |
b_ [variant member] | Boolean payload when the value kind is Boolean. |
fn_ [variant member] | Callable payload used by template helpers. |
i_ [variant member] | Integer payload when the value kind is Integer. |
obj_ [variant member] | Object payload; shared with lazy objects. |
str_ [variant member] | UTF-8 string or safe-string payload. |
| Name | Description |
|---|---|
toString |
Return value as a string. |
operator&& |
|
operator&& |
|
operator&& |
Return the first dom::Value that is not truthy, or the last one. |
operator|| |
|
operator|| |
|
operator|| |
Return the first dom::Value that is truthy, or the last one. |
operator+ |
|
operator+ |
|
operator+ |
Add or concatenate two values. |
operator<=> |
Three-way comparison operator |
operator<=> |
Three-way comparison operator |
operator<=> |
Compare two values for inequality. |
operator== |
Compare two values for equality. |
swap |
Swap two values. |
safeString |
Create a wrapper for a safe string. |
Object |
A container of key and value pairs. |
Array |
An array of values |
| 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::safeString | Return a DOM string ensuring special characters are escaped. |
::mrdocs::safeString | Mark an existing string-like value as safe to emit without escaping. |
::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
<mrdocs/Dom/Value.hpp>Construct an undefined value.
Value() noexcept;
» more...
Copy-construct from another value.
Value(Value const& other);
» more...
Move-construct from another value, leaving it undefined.
Value(Value&& other) noexcept;
» more...
Construct an array value, taking ownership of the elements.
Value(Array arr) noexcept;
» more...
Construct a function value that can be invoked by templates.
Value(Function fn) noexcept;
» more...
Construct an empty value with the specified kind.
Value(dom::Kind kind) noexcept;
» more...
Construct an object value, taking ownership of the members.
Value(Object obj) noexcept;
» more...
Construct a string or safe-string value, taking ownership.
Value(String str) noexcept;
» more...
Construct an integer value.
Value(int64_t v) noexcept;
» more...
Construct a null value.
Value(std::nullptr_t v) noexcept;
» more...
Construct an array value from raw storage.
Value(Array::storage_type elements);
» more...
Construct a single-character string value.
Value(char c) noexcept;
» more...
Construct a string value from a C string.
Value(char const* s);
» more...
Construct an integer value from a floating-point number by truncation.
template<std::floating_point T>
Value(T v) noexcept;
» more...
Construct an integer value from an integral type other than bool or char.
template<std::integral T>
requires (!std::same_as<T, bool>) &&
(!std::same_as<T, char>)
Value(T v) noexcept;
» more...
Construct a boolean value.
template<std::convertible_to<String> Boolean>
Value(Boolean const& b);
» more...
Construct a function value from a callable object.
template<class F>
requires function_traits_convertible_to_value<F>
Value(F const& f);
» more...
Construct from Optional, using Undefined when empty.
template<class T>
requires std::constructible_from<Value, T>
Value(Optional<T> const& opt);
» more...
Construct from std::optional, using Undefined when empty.
template<class T>
requires std::constructible_from<Value, T>
Value(std::optional<T> const& opt);
» more...
Construct a string value from a string literal.
template<std::size_t N>
Value(char const(& sz)[]);
» more...
Construct an undefined value.
<mrdocs/Dom/Value.hpp>Value() noexcept;
Copy-construct from another value.
| Name | Description |
|---|---|
| other | The object to copy construct from |
Move-construct from another value, leaving it undefined.
| Name | Description |
|---|---|
| other | The object to move construct from |
Construct an array value, taking ownership of the elements.
| Name | Description |
|---|---|
| arr | The object to construct from |
Construct a function value that can be invoked by templates.
| Name | Description |
|---|---|
| fn | The object to construct from |
Construct an empty value with the specified kind.
| Name | Description |
|---|---|
| kind | The object to construct from |
Construct an object value, taking ownership of the members.
| Name | Description |
|---|---|
| obj | The object to construct from |
Construct a string or safe-string value, taking ownership.
| Name | Description |
|---|---|
| str | The object to construct from |
Construct an integer value.
<mrdocs/Dom/Value.hpp>Value(int64_t v) noexcept;
| Name | Description |
|---|---|
| v | The object to construct from |
Construct a null value.
<mrdocs/Dom/Value.hpp>Value(std::nullptr_t v) noexcept;
| Name | Description |
|---|---|
| v | The object to construct from |
Construct an array value from raw storage.
| Name | Description |
|---|---|
| elements | The object to construct from |
Construct a single-character string value.
<mrdocs/Dom/Value.hpp>Value(char c) noexcept;
| Name | Description |
|---|---|
| c | The value to construct from |
Construct a string value from a C string.
<mrdocs/Dom/Value.hpp>Value(char const* s);
| Name | Description |
|---|---|
| s | The value to construct from |
Construct an integer value from a floating-point number by truncation.
<mrdocs/Dom/Value.hpp>template<std::floating_point T>
Value(T v) noexcept;
| Name | Description |
|---|---|
| v | The object to construct from |
Construct an integer value from an integral type other than bool or char.
<mrdocs/Dom/Value.hpp>template<std::integral T>
requires (!std::same_as<T, bool>) &&
(!std::same_as<T, char>)
Value(T v) noexcept;
| Name | Description |
|---|---|
| v | The object to construct from |
Construct a boolean value.
<mrdocs/Dom/Value.hpp>template<std::convertible_to<String> Boolean>
Value(Boolean const& b);
Construct a string value from any String-convertible type.
| Name | Description |
|---|---|
| b | The object to copy construct from |
Construct a function value from a callable object.
<mrdocs/Dom/Value.hpp>template<class F>
requires function_traits_convertible_to_value<F>
Value(F const& f);
| Name | Description |
|---|---|
| f | The object to copy construct from |
Construct from Optional, using Undefined when empty.
<mrdocs/Dom/Value.hpp>template<class T>
requires std::constructible_from<Value, T>
Value(Optional<T> const& opt);
| Name | Description |
|---|---|
| opt | The object to copy construct from |
Construct from std::optional, using Undefined when empty.
<mrdocs/Dom/Value.hpp>template<class T>
requires std::constructible_from<Value, T>
Value(std::optional<T> const& opt);
| Name | Description |
|---|---|
| opt | The object to copy construct from |
Construct a string value from a string literal.
<mrdocs/Dom/Value.hpp>template<std::size_t N>
Value(char const(& sz)[]);
| Name | Description |
|---|---|
| sz | The value to construct from |
Destroy the contained value, releasing owned storage.
<mrdocs/Dom/Value.hpp>~Value();
Assignment operators
<mrdocs/Dom/Value.hpp>Copy-assign from another value, replacing the stored payload.
Value&
operator=(Value const& other);
» more...
Move-assign from another value, leaving it undefined.
Value&
operator=(Value&& other) noexcept;
» more...
Copy-assign from another value, replacing the stored payload.
| Name | Description |
|---|---|
| other | The object to copy assign from |
Move-assign from another value, leaving it undefined.
| Name | Description |
|---|---|
| other | The object to move assign from |
Return if an Array or Object is empty.
<mrdocs/Dom/Value.hpp>bool
empty() const;
Return true if a key exists.
<mrdocs/Dom/Value.hpp>bool
exists(std::string_view key) const;
true if the key exists, otherwise false.
| Name | Description |
|---|---|
| key | The key to check for existence. |
get overloads
<mrdocs/Dom/Value.hpp>Return the element at a given index.
dom::Value
get(std::size_t i) const;
» more...
Return the element for a given key.
dom::Value
get(std::string_view key) const;
» more...
Return the element at a given index or key.
dom::Value
get(dom::Value const& i) const;
» more...
Return the element for a given key.
template<std::convertible_to<std::string_view> S>
dom::Value
get(S const& key) const;
» more...
Kind::Undefined if the key does not exist.Kind::Undefined if the key does not exist.| Name | Description |
|---|---|
| i | The index. |
| key | The key. |
Return the element at a given index.
| Name | Description |
|---|---|
| i | The index. |
Return the element for a given key.
If the Value is not an object, or the key is not found, a Value of type Kind::Undefined is returned.
Kind::Undefined if the key does not exist.
| Name | Description |
|---|---|
| key | The key. |
Return the element at a given index or key.
| Name | Description |
|---|---|
| i | A variant container for any kind of Dom value. |
Return the element for a given key.
<mrdocs/Dom/Value.hpp>template<std::convertible_to<std::string_view> S>
dom::Value
get(S const& key) const;
If the Value is not an object, or the key is not found, a Value of type Kind::Undefined is returned.
Kind::Undefined if the key does not exist.
| Name | Description |
|---|---|
| key | The key. |
Return the array.
<mrdocs/Dom/Value.hpp>Return the array.
Array const&
getArray() const;
» more...
Array&
getArray();
» more...
| Name | Thrown on |
|---|---|
Exception |
! isArray() |
Return the array.
| Name | Thrown on |
|---|---|
Exception |
! isArray() |
Return the underlying boolean value.
<mrdocs/Dom/Value.hpp>bool
getBool() const noexcept;
Behaviour is undefined if !isBoolean()
Return the function.
| Name | Thrown on |
|---|---|
Exception |
! isFunction() |
Return the underlying integer value.
<mrdocs/Dom/Value.hpp>int64_t
getInteger() const noexcept;
Behaviour is undefined if !isInteger()
Return the object.
| Name | Thrown on |
|---|---|
Exception |
! isObject() |
Return the underlying string value.
Behaviour is undefined if !isString()
Return true if this is an array.
<mrdocs/Dom/Value.hpp>bool
isArray() const noexcept;
Return true if this is a boolean.
<mrdocs/Dom/Value.hpp>bool
isBoolean() const noexcept;
Return true if this is a function.
<mrdocs/Dom/Value.hpp>bool
isFunction() const noexcept;
Return true if this is an integer.
<mrdocs/Dom/Value.hpp>bool
isInteger() const noexcept;
Return true if this is null.
<mrdocs/Dom/Value.hpp>bool
isNull() const noexcept;
Return true if this is an object.
<mrdocs/Dom/Value.hpp>bool
isObject() const noexcept;
Return true if this is a safe string.
<mrdocs/Dom/Value.hpp>bool
isSafeString() const noexcept;
Return true if this is a string.
<mrdocs/Dom/Value.hpp>bool
isString() const noexcept;
Determine if a value is truthy
<mrdocs/Dom/Value.hpp>bool
isTruthy() const noexcept;
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.
true if the value is truthy, false otherwise
Return true if this is undefined.
<mrdocs/Dom/Value.hpp>bool
isUndefined() const noexcept;
Return the type of value contained.
Lookup a sequence of keys.
This function is equivalent to calling get multiple times, once for each key in the sequence of dot-separated keys.
Kind::Undefined if any key is not found.
| Name | Description |
|---|---|
| keys | The dot-separated sequence of keys. |
Invoke the function.
<mrdocs/Dom/Value.hpp>template<class... Args>
Value
operator()(Args&&... args) const;
If the Value is not an object, or the key is not found, a Value of type Kind::Undefined is returned.
| Name | Description |
|---|---|
| args | The arguments to the function. |
Set or replace the value for a given key.
| Name | Description |
|---|---|
| key | The key. |
| value | The value to set. |
Return if an Array or Object is empty.
<mrdocs/Dom/Value.hpp>std::size_t
size() const;
Swap two values.
| Name | Description |
|---|---|
| other | A variant container for any kind of Dom value. |
Return the type key of the value.
<mrdocs/Dom/Value.hpp>char const*
type_key() const noexcept;
Return the string.
<mrdocs/Dom/Value.hpp>explicit
operator std::string() const noexcept;
Determine if a value is truthy
<mrdocs/Dom/Value.hpp>explicit
operator bool() const noexcept;
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.
true if the value is truthy, false otherwise
Array payload; shared with lazy arrays.
Boolean payload when the value kind is Boolean.
<mrdocs/Dom/Value.hpp>bool b_ = {false};
Callable payload used by template helpers.
Integer payload when the value kind is Integer.
<mrdocs/Dom/Value.hpp>int64_t i_;
Object payload; shared with lazy objects.
UTF-8 string or safe-string payload.
Customization point tag.
<mrdocs/Dom/Value.hpp>struct ValueFromTag;
This tag type is used by the function dom::ValueFrom to select overloads of tag_invoke.
This type is empty; it has no members.
| Name | Description |
|---|---|
::mrdocs::tag_invoke | Convert a NoexceptInfo to a DOM value. |
::mrdocs::tag_invoke | Serialize a Type into a DOM value. |
::mrdocs::tag_invoke | Map the EnumConstantSymbol to a dom::Value object. |
::mrdocs::tag_invoke | Serialize a polymorphic template argument into a DOM value. |
::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 | Serialize an optional polymorphic name into a DOM value. |
::mrdocs::tag_invoke | Serialize a polymorphic name into a DOM value. |
::mrdocs::tag_invoke | Return the AccessKind as a dom::Value string. |
::mrdocs::tag_invoke | Serialize an optional polymorphic type into a DOM value. |
::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 | Serialize an alignment enum into a DOM value. |
::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 | Serialize a list kind into a DOM value. |
::mrdocs::tag_invoke | Convert SymbolID to dom::Value object in the DOM using Corpus |
::mrdocs::tag_invoke | Serialize template info into a DOM value. |
::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 | Serialize the auto kind into a DOM value. |
::mrdocs::tag_invoke | Map a NameKind into a DOM value. |
::mrdocs::tag_invoke | Serialize a name into a DOM value. |
::mrdocs::tag_invoke | Map the OverloadsSymbol to a dom::Value object. |
::mrdocs::tag_invoke | Serialize source locations into a DOM value. |
::mrdocs::tag_invoke | Serialize a base description into a DOM value. |
::mrdocs::tag_invoke | Return the FunctionClass from a dom::Value string. |
::mrdocs::tag_invoke | Map a TypeKind into a DOM value. |
::mrdocs::tag_invoke | Serialize the argument to a DOM value. |
::mrdocs::tag_invoke | Serialize the keyword kind into a DOM value. |
::mrdocs::tag_invoke | Serialize a template parameter into a DOM value. |
::mrdocs::tag_invoke | Return the Param as a dom::Value object. |
::mrdocs::tag_invoke | Serialize an optional template info into a DOM value. |
::mrdocs::tag_invoke | Serialize a polymorphic type into a DOM value. |
::mrdocs::tag_invoke | Serialize the record key kind into a DOM value. |
::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 | Serialize a template-argument kind into a DOM value. |
::mrdocs::tag_invoke | Map the RecordSymbol to a dom::Value object. |
::mrdocs::tag_invoke | Map an operator kind to a DOM value (its underlying integer). |
::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 | Serialize a location into a DOM value. |
::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 | Map a FileKind into a DOM value. |
::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 a QualifierKind into a DOM value. |
::mrdocs::tag_invoke | Serialize a polymorphic template parameter. |
::mrdocs::tag_invoke | Map the RecordTranche to a dom::Value object. |
::mrdocs::doc::tag_invoke | Return the StrongInline as a dom::Value object. |
::mrdocs::doc::tag_invoke | Return the FootnoteReferenceInline as a dom::Value object. |
::mrdocs::doc::tag_invoke | Return the Parts from a dom::Value string. |
::mrdocs::doc::tag_invoke | Return the TextInline as a dom::Value object. |
::mrdocs::doc::tag_invoke | Return the HeadingBlock as a dom::Value object. |
::mrdocs::doc::tag_invoke | Write a block kind into a DOM value as its string name. |
::mrdocs::doc::tag_invoke | Return the CodeBlock as a dom::Value object. |
::mrdocs::doc::tag_invoke | Return the TableBlock as a dom::Value object. |
::mrdocs::doc::tag_invoke | Convert an InlineContainer to a DOM value. |
::mrdocs::doc::tag_invoke | Return the BriefBlock as a dom::Value object. |
::mrdocs::doc::tag_invoke | Return the PostconditionBlock as a dom::Value object. |
::mrdocs::doc::tag_invoke | Return the LinkInline as a dom::Value object. |
::mrdocs::doc::tag_invoke | Return the MathInline as a dom::Value object. |
::mrdocs::doc::tag_invoke | Return the SeeBlock as a dom::Value object. |
::mrdocs::doc::tag_invoke | Return the Admonish from a dom::Value string. |
::mrdocs::doc::tag_invoke | Return the AdmonitionBlock as a dom::Value object. |
::mrdocs::doc::tag_invoke | Return the SuperscriptInline as a dom::Value object. |
::mrdocs::doc::tag_invoke | Return the PreconditionBlock as a dom::Value object. |
::mrdocs::doc::tag_invoke | Return the Inline as a dom::Value object. |
::mrdocs::doc::tag_invoke | Return the LineBreakInline as a dom::Value object. |
::mrdocs::doc::tag_invoke | Return the EmphInline as a dom::Value object. |
::mrdocs::doc::tag_invoke | Convert a definition list block to a DOM value. |
::mrdocs::doc::tag_invoke | Return the CodeInline as a dom::Value object. |
::mrdocs::doc::tag_invoke | Return the block container as a DOM value. |
::mrdocs::doc::tag_invoke | Return the Block as a dom::Value object. |
::mrdocs::doc::tag_invoke | Return the FootnoteDefinitionBlock as a dom::Value object. |
::mrdocs::doc::tag_invoke | Return the ReturnsBlock as a dom::Value object. |
::mrdocs::doc::tag_invoke | Return the ParagraphBlock as a dom::Value object. |
::mrdocs::doc::tag_invoke | Map an optional brief block to a DOM value, yielding null when absent. |
::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 MathBlock as a dom::Value object. |
::mrdocs::doc::tag_invoke | Return the Param as a dom::Value object. |
::mrdocs::doc::tag_invoke | Map an optional polymorphic block into a DOM value, producing null when empty. |
::mrdocs::doc::tag_invoke | Return the CopyDetailsInline as a dom::Value object. |
::mrdocs::doc::tag_invoke | Return the ReferenceInline as a dom::Value object. |
::mrdocs::doc::tag_invoke | Serialize a polymorphic inline node into a DOM value. |
::mrdocs::doc::tag_invoke | Return the DefinitionListItem as a dom::Value object. |
::mrdocs::doc::tag_invoke | Return the SoftBreakInline as a dom::Value object. |
::mrdocs::doc::tag_invoke | Return the TableCell as a dom::Value object. |
::mrdocs::doc::tag_invoke | Serialize an inline kind into a DOM value. |
::mrdocs::doc::tag_invoke | Return the HighlightInline as a dom::Value object. |
::mrdocs::doc::tag_invoke | Return the QuoteBlock as a dom::Value object. |
::mrdocs::doc::tag_invoke | Return the ListBlock as a dom::Value object. |
::mrdocs::doc::tag_invoke | Return the SubscriptInline as a dom::Value object. |
::mrdocs::doc::tag_invoke | Return the ImageInline as a dom::Value object. |
::mrdocs::doc::tag_invoke | Return the StrikethroughInline as a dom::Value object. |
::mrdocs::doc::tag_invoke | Return the ThematicBreakBlock as a dom::Value object. |
::mrdocs::doc::tag_invoke | Return the ParamDirection from a dom::Value string. |
::mrdocs::doc::tag_invoke | Return the ThrowsBlock as a dom::Value object. |
Function implementation that forwards the entire Array to a callable.
<mrdocs/Dom/Function.hpp>template<class F>
class VariadicFunctionImpl
: public FunctionImpl
| Name | Description |
|---|---|
FunctionImpl | Value-semantic wrapper over a callable exposed to the DOM layer. |
| Name | Description |
|---|---|
args_type | Argument tuple type accepted by the callable. |
return_type | Result type produced by the callable. |
| Name | Description |
|---|---|
VariadicFunctionImpl [constructor] | Construct from any callable convertible to F. |
call [virtual] | Invoke the wrapped callable with the full argument array. |
type_key [virtual] | Return the type key of the implementation. |
Argument tuple type accepted by the callable.
<mrdocs/Dom/Function.hpp>using args_type = function_traits<F>::args_type;
Result type produced by the callable.
<mrdocs/Dom/Function.hpp>using return_type = function_traits<F>::return_type;
Construct from any callable convertible to F.
<mrdocs/Dom/Function.hpp>template<class U>
VariadicFunctionImpl(U&& u);
| Name | Description |
|---|---|
| u | Callable to wrap. |
Invoke the wrapped callable with the full argument array.
<mrdocs/Dom/Function.hpp>virtual
Expected<Value>
call(Array const& args) const override;
| Name | Description |
|---|---|
| args | An array of values |
Return the type key of the implementation.
<mrdocs/Dom/Function.hpp>virtual
char const*
type_key() const noexcept override;
Helper traits to extract return and argument types from callables.
<mrdocs/Dom/Function.hpp>template<typename F>
struct function_traits;
| Name | Description |
|---|---|
function_traits
| Traits specialization for functors/lambdas. |
Traits specialization for functors/lambdas.
<mrdocs/Dom/Function.hpp>template<typename F>
requires requires { &F::operator(); }
struct function_traits<F>
: function_traits<decltype(&F::operator)>
| Name | Description |
|---|---|
function_traits<decltype(&F::operator)> | Helper traits to extract return and argument types from callables. |
Traits specialization for function pointers.
<mrdocs/Dom/Function.hpp>template<
typename R,
typename... Args>
struct function_traits<R(*)(Args...)>;
| Name | Description |
|---|---|
args_type | Tuple of argument types accepted by the callable. |
return_type | Result type of the callable. |
Tuple of argument types accepted by the callable.
<mrdocs/Dom/Function.hpp>using args_type = std::tuple<Args...>;
Result type of the callable.
<mrdocs/Dom/Function.hpp>using return_type = R;
Traits specialization for free functions.
<mrdocs/Dom/Function.hpp>template<
typename R,
typename... Args>
struct function_traits<R(Args...)>;
| Name | Description |
|---|---|
args_type | Tuple of argument types accepted by the callable. |
return_type | Result type of the callable. |
Tuple of argument types accepted by the callable.
<mrdocs/Dom/Function.hpp>using args_type = std::tuple<Args...>;
Result type of the callable.
<mrdocs/Dom/Function.hpp>using return_type = R;
Traits specialization for member functions.
<mrdocs/Dom/Function.hpp>template<
typename C,
typename R,
typename... Args>
struct function_traits<R const volatile(C::*)(Args...)>;
Traits specialization for const member functions.
Traits specialization for volatile member functions.
Traits specialization for const volatile member functions.
| Name | Description |
|---|---|
args_type | Tuple of argument types accepted by the callable. |
return_type | Result type of the callable. |
Tuple of argument types accepted by the callable.
<mrdocs/Dom/Function.hpp>using args_type = std::tuple<Args...>;
Result type of the callable.
<mrdocs/Dom/Function.hpp>using return_type = R;
The type of data in a Value.
<mrdocs/Dom/Kind.hpp>enum class Kind : int;
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
| 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. |
LazyArray overloads
<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);
» more...
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);
» more...
| 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.
<mrdocs/Dom/LazyArray.hpp>template<std::ranges::random_access_range T>
requires HasStandaloneValueFrom<std::ranges::range_value_t<T>>
Array
LazyArray(T const& arr);
| Name | Description |
|---|---|
| arr | The underlying range of elements. |
Return a new dom::Array based on a FromValue context
<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);
| Name | Description |
|---|---|
| arr | The underlying range of elements. |
| ctx | The context used to convert each element to a dom::Value. |
LazyObject overloads
<mrdocs/Dom/LazyObject.hpp>Return a new dom::Object based on a lazy object implementation.
template<HasLazyObjectMapWithoutContext T>
Object
LazyObject(T const& obj);
» more...
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);
» more...
| 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.
<mrdocs/Dom/LazyObject.hpp>template<HasLazyObjectMapWithoutContext T>
Object
LazyObject(T const& obj);
| Name | Description |
|---|---|
| obj | The underlying object. |
Return a new dom::Object based on a transformed lazy array implementation.
<mrdocs/Dom/LazyObject.hpp>template<
class T,
class Context>
requires HasLazyObjectMap<T, Context>
Object
LazyObject(
T const& arr,
Context const& context);
| 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.
<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);
| 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
<mrdocs/Dom/Value.hpp>Convert an object of type T to dom::Value.
template<class T>
requires HasStandaloneValueFrom<T>
Value
ValueFrom(T&& t);
» more...
Convert an object of type T to dom::Value.
template<class T>
requires HasStandaloneValueFrom<T>
void
ValueFrom(
T&& t,
Value& v);
» more...
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);
» more...
Convert an object of type T to dom::Value.
template<
class Context,
HasValueFrom<Context> T>
void
ValueFrom(
T&& t,
Context const& ctx,
Value& v);
» more...
dom::Value out parameter.
| Name | Description |
|---|---|
| T | The type of the object to convert. |
| Context | The type of context passed to the conversion function. |
| Name | Description |
|---|---|
| t | The object to convert. |
| v | dom::Value out parameter. |
| ctx | Context passed to the conversion function. |
dom::ValueFromTag, tag_invoke: A general pattern for supporting customisable functions
dom::ValueFromTag tag_invoke: A general pattern for supporting customisable functions
Convert an object of type T to dom::Value.
<mrdocs/Dom/Value.hpp>template<class T>
requires HasStandaloneValueFrom<T>
Value
ValueFrom(T&& t);
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 );
Strong guarantee.
dom::Value out parameter.
| Name | Description |
|---|---|
| T | The type of the object to convert. |
| Name | Description |
|---|---|
| t | The object to convert. |
Convert an object of type T to dom::Value.
<mrdocs/Dom/Value.hpp>template<class T>
requires HasStandaloneValueFrom<T>
void
ValueFrom(
T&& t,
Value& v);
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 );
Strong guarantee.
| Name | Description |
|---|---|
| T | The type of the object to convert. |
| Name | Description |
|---|---|
| t | The object to convert. |
| v | dom::Value out parameter. |
Convert an object of type T to dom::Value with a context
<mrdocs/Dom/Value.hpp>template<
class T,
class Context>
requires HasValueFrom<T, Context>
Value
ValueFrom(
T&& t,
Context const& ctx);
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 );
Strong guarantee.
dom::Value out parameter.
| Name | Description |
|---|---|
| T | The type of the object to convert. |
| Name | Description |
|---|---|
| t | The object to convert. |
| ctx | Context passed to the conversion function. |
Convert an object of type T to dom::Value.
<mrdocs/Dom/Value.hpp>template<
class Context,
HasValueFrom<Context> T>
void
ValueFrom(
T&& t,
Context const& ctx,
Value& v);
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.
Strong guarantee.
| Name | Description |
|---|---|
| T | The type of the object to convert. |
| Context | The type of context passed to the conversion function. |
| Name | Description |
|---|---|
| t | The object to convert. |
| ctx | Context passed to the conversion function. |
| v | dom::Value out parameter. |
Create a Function from a fixed-arity invocable.
f.
| Name | Description |
|---|---|
| f | Callable to wrap. |
Create a Function that receives the argument Array directly.
<mrdocs/Dom/Function.hpp>template<class F>
requires std::invocable<F, Array const&>
Function
makeVariadicInvocable(F&& f);
| Name | Description |
|---|---|
| f | Callable invoked with the argument array. |
Return a new array using a custom implementation.
<mrdocs/Dom/Array.hpp>template<
class T,
class... Args>
requires std::derived_from<T, ArrayImpl>
Array
newArray(Args&&... args);
Return a new array using a custom implementation.
| Name | Description |
|---|---|
| T | The type of the custom implementation. This must be derived from ArrayImpl. |
| Args | The types of the arguments. |
| Name | Description |
|---|---|
| args | Arguments forwarded to the constructor of T. |
Return a diagnostic string.
<mrdocs/Dom/Function.hpp>template<
class T,
class... Args>
requires std::derived_from<T, FunctionImpl>
Function
newFunction(Args&&... args);
Return a new function using a custom implementation.
| Name | Description |
|---|---|
| args | The arguments to the function. |
Return a new object using a custom implementation.
<mrdocs/Dom/Object.hpp>template<
class T,
class... Args>
requires std::derived_from<T, ObjectImpl>
Object
newObject(Args&&... args);
| Name | Description |
|---|---|
| T | The type of the custom implementation. This must be derived from ObjectImpl. |
| Args | The types of the arguments. |
| Name | Description |
|---|---|
| args | Arguments forwarded to the constructor of T. |
Return the first dom::Value that is not truthy, or the last one.
<mrdocs/Dom/Value.hpp>auto
operator&&(
S const& lhs,
Value const& rhs) noexcept;
» more...
auto
operator&&(
Value const& lhs,
S const& rhs) noexcept;
» more...
Return the first dom::Value that is not truthy, or the last one.
dom::Value
operator&&(
Value const& lhs,
Value const& rhs);
» more...
<mrdocs/Dom/Value.hpp>auto
operator&&(
S const& lhs,
Value const& rhs) noexcept;
<mrdocs/Dom/Value.hpp>auto
operator&&(
Value const& lhs,
S const& rhs) noexcept;
Return the first dom::Value that is not truthy, or the last one.
<mrdocs/Dom/Value.hpp>dom::Value
operator&&(
Value const& lhs,
Value const& rhs);
This function is equivalent to the JavaScript && operator.
| Name | Description |
|---|---|
| lhs | The left operand |
| rhs | The right operand |
Addition operators
<mrdocs/Dom/Array.hpp>iterator
operator+(
difference_type n,
iterator it) noexcept;
» more...
Concatenate two arrays.
Array
operator+(
Array const& lhs,
Array const& rhs);
» more...
auto
operator+(
Array const& lhs,
S const& rhs) noexcept;
» more...
auto
operator+(
S const& lhs,
Array const& rhs) noexcept;
» more...
auto
operator+(
S const& lhs,
String const& rhs) noexcept;
» more...
auto
operator+(
S const& lhs,
Value const& rhs) noexcept;
» more...
auto
operator+(
String const& lhs,
S const& rhs) noexcept;
» more...
Concatenate two strings.
auto
operator+(
String const& lhs,
String const& rhs) noexcept;
» more...
auto
operator+(
Value const& lhs,
S const& rhs) noexcept;
» more...
Add or concatenate two values.
dom::Value
operator+(
Value const& lhs,
Value const& rhs);
» more...
| Name | Description |
|---|---|
| lhs | The left-hand side string. |
| rhs | The right-hand side string. |
Concatenate two arrays.
| Name | Description |
|---|---|
| lhs | The left operand |
| rhs | The right operand |
<mrdocs/Dom/Array.hpp>auto
operator+(
Array const& lhs,
S const& rhs) noexcept;
<mrdocs/Dom/Array.hpp>auto
operator+(
S const& lhs,
Array const& rhs) noexcept;
<mrdocs/Dom/String.hpp>auto
operator+(
S const& lhs,
String const& rhs) noexcept;
<mrdocs/Dom/Value.hpp>auto
operator+(
S const& lhs,
Value const& rhs) noexcept;
<mrdocs/Dom/String.hpp>auto
operator+(
String const& lhs,
S const& rhs) noexcept;
Concatenate two strings.
<mrdocs/Dom/String.hpp>auto
operator+(
String const& lhs,
String const& rhs) noexcept;
| Name | Description |
|---|---|
| lhs | The left-hand side string. |
| rhs | The right-hand side string. |
<mrdocs/Dom/Value.hpp>auto
operator+(
Value const& lhs,
S const& rhs) noexcept;
Add or concatenate two values.
<mrdocs/Dom/Value.hpp>dom::Value
operator+(
Value const& lhs,
Value const& rhs);
| Name | Description |
|---|---|
| lhs | The left operand |
| rhs | The right operand |
Return the first dom::Value that is truthy, or the last one.
<mrdocs/Dom/Value.hpp>auto
operator||(
S const& lhs,
Value const& rhs) noexcept;
» more...
auto
operator||(
Value const& lhs,
S const& rhs) noexcept;
» more...
Return the first dom::Value that is truthy, or the last one.
dom::Value
operator||(
Value const& lhs,
Value const& rhs);
» more...
<mrdocs/Dom/Value.hpp>auto
operator||(
S const& lhs,
Value const& rhs) noexcept;
<mrdocs/Dom/Value.hpp>auto
operator||(
Value const& lhs,
S const& rhs) noexcept;
Return the first dom::Value that is truthy, or the last one.
<mrdocs/Dom/Value.hpp>dom::Value
operator||(
Value const& lhs,
Value const& rhs);
This function is equivalent to the JavaScript || operator.
| Name | Description |
|---|---|
| lhs | The left operand |
| rhs | The right operand |
Return a non-empty string, or a null.
<mrdocs/Dom/Value.hpp>Return a non-empty string, or a null.
Value
stringOrNull(std::string_view s);
» more...
Return a non-empty string, or a null.
Value
stringOrNull(Optional<std::string> s);
» more...
Return a non-empty string, or a null.
Value
stringOrNull(std::string const& s);
» more...
| Name | Description |
|---|---|
| s | The string to check. |
Return a non-empty string, or a null.
| Name | Description |
|---|---|
| s | The string to check. |
Return a non-empty string, or a null.
| Name | Description |
|---|---|
| s | The string to check. |
Return a non-empty string, or a null.
| Name | Description |
|---|---|
| s | The string to check. |
swap overloads
<mrdocs/Dom/Array.hpp>Swap two arrays.
void
swap(
Array& lhs,
Array& rhs) noexcept;
» more...
Swap two objects.
void
swap(
Function& lhs,
Function& rhs) noexcept;
» more...
Swap two objects.
void
swap(
Object& lhs,
Object& rhs) noexcept;
» more...
Swap two strings.
constexpr
void
swap(
String& lhs,
String& rhs) noexcept;
» more...
Swap two values.
void
swap(
Value& v0,
Value& v1) noexcept;
» more...
| Name | Description |
|---|---|
| lhs | The first object. |
| rhs | The second object. |
Swap two arrays.
| Name | Description |
|---|---|
| lhs | An array of values |
| rhs | An array of values |
Swap two objects.
| Name | Description |
|---|---|
| lhs | The first object. |
| rhs | The second object. |
Swap two objects.
| Name | Description |
|---|---|
| lhs | A container of key and value pairs. |
| rhs | A container of key and value pairs. |
Swap two strings.
<mrdocs/Dom/String.hpp>constexpr
void
swap(
String& lhs,
String& rhs) noexcept;
| Name | Description |
|---|---|
| lhs | The first string. |
| rhs | The second string. |
Swap two values.
| Name | Description |
|---|---|
| v0 | A variant container for any kind of Dom value. |
| v1 | A variant container for any kind of Dom value. |
toString overloads
<mrdocs/Dom/Array.hpp>Return a diagnostic string.
std::string
toString(Array const& arr);
» more...
Return a diagnostic string.
std::string
toString(Object const& object);
» more...
Return value as a string.
std::string
toString(Value const& value);
» more...
Return a diagnostic string.
| Name | Description |
|---|---|
| arr | An array of values |
Return a diagnostic string.
| Name | Description |
|---|---|
| object | A container of key and value pairs. |
Return value as a string.
| Name | Description |
|---|---|
| value | A variant container for any kind of Dom value. |
Equality operators
<mrdocs/Dom/Array.hpp>Return the result of comparing two strings.
bool
operator==(
String const& lhs,
String const& rhs) noexcept;
» more...
Return the result of comparing two strings.
bool
operator==(
String const& lhs,
StringLike const& rhs) noexcept;
» more...
Compare two values for equality.
bool
operator==(
Value const& lhs,
Value const& rhs) noexcept;
» more...
Compare two objects for equality.
bool
operator==(
Object const& a,
Object const& b) noexcept;
» more...
Compare two arrays for equality.
bool
operator==(
Array const& lhs,
Array const& rhs) noexcept;
» more...
Return the result of comparing two strings.
<mrdocs/Dom/String.hpp>bool
operator==(
String const& lhs,
String const& rhs) noexcept;
| Name | Description |
|---|---|
| lhs | The left operand |
| rhs | The right operand |
Return the result of comparing two strings.
<mrdocs/Dom/String.hpp>bool
operator==(
String const& lhs,
StringLike const& rhs) noexcept;
| Name | Description |
|---|---|
| lhs | The left operand |
| rhs | The right operand |
Compare two values for equality.
<mrdocs/Dom/Value.hpp>bool
operator==(
Value const& lhs,
Value const& rhs) noexcept;
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.
In JavaScript, this is equivalent to the === operator, which does not perform type conversions.
true if the objects are equal, false otherwise
| Name | Description |
|---|---|
| lhs | The left operand |
| rhs | The right operand |
Compare two objects for equality.
<mrdocs/Dom/Object.hpp>bool
operator==(
Object const& a,
Object const& b) noexcept;
true if the objects are equal, false otherwise
| Name | Description |
|---|---|
| a | The left operand |
| b | The right operand |
Compare two arrays for equality.
<mrdocs/Dom/Array.hpp>bool
operator==(
Array const& lhs,
Array const& rhs) noexcept;
true if the objects are equal, false otherwise
| Name | Description |
|---|---|
| lhs | The left operand |
| rhs | The right operand |
Return the result of comparing two strings.
<mrdocs/Dom/String.hpp>Return the result of comparing two strings.
bool
operator!=(
String const& lhs,
String const& rhs) noexcept;
» more...
Return the result of comparing two strings.
bool
operator!=(
String const& lhs,
StringLike const& rhs) noexcept;
» more...
Return the result of comparing two strings.
<mrdocs/Dom/String.hpp>bool
operator!=(
String const& lhs,
String const& rhs) noexcept;
| Name | Description |
|---|---|
| lhs | The left operand |
| rhs | The right operand |
Return the result of comparing two strings.
<mrdocs/Dom/String.hpp>bool
operator!=(
String const& lhs,
StringLike const& rhs) noexcept;
| Name | Description |
|---|---|
| lhs | The left operand |
| rhs | The right operand |
Three-way comparison operators
<mrdocs/Dom/Array.hpp>Return the result of comparing two strings.
auto
operator<=>(
String const& lhs,
String const& rhs) noexcept;
» more...
Return the result of comparing two strings.
auto
operator<=>(
String const& lhs,
StringLike const& rhs) noexcept;
» more...
Three-way comparison operator
auto
operator<=>(
Value const& lhs,
S const& rhs) noexcept;
» more...
Three-way comparison operator
auto
operator<=>(
S const& lhs,
Value const& rhs) noexcept;
» more...
Compare two values for inequality.
std::strong_ordering
operator<=>(
Value const& lhs,
Value const& rhs) noexcept;
» more...
Compare two objects for precedence.
std::strong_ordering
operator<=>(
Object const& a,
Object const& b) noexcept;
» more...
Compare two arrays for precedence.
std::strong_ordering
operator<=>(
Array const& lhs,
Array const& rhs) noexcept;
» more...
Return the result of comparing two strings.
<mrdocs/Dom/String.hpp>auto
operator<=>(
String const& lhs,
String const& rhs) noexcept;
| Name | Description |
|---|---|
| lhs | The left operand |
| rhs | The right operand |
Return the result of comparing two strings.
<mrdocs/Dom/String.hpp>auto
operator<=>(
String const& lhs,
StringLike const& rhs) noexcept;
| Name | Description |
|---|---|
| lhs | The left operand |
| rhs | The right operand |
Three-way comparison operator
<mrdocs/Dom/Value.hpp>auto
operator<=>(
Value const& lhs,
S const& rhs) noexcept;
| Name | Description |
|---|---|
| lhs | The left operand |
| rhs | The right operand |
Three-way comparison operator
<mrdocs/Dom/Value.hpp>auto
operator<=>(
S const& lhs,
Value const& rhs) noexcept;
| Name | Description |
|---|---|
| lhs | The left operand |
| rhs | The right operand |
Compare two values for inequality.
<mrdocs/Dom/Value.hpp>std::strong_ordering
operator<=>(
Value const& lhs,
Value const& rhs) noexcept;
| Name | Description |
|---|---|
| lhs | The left operand |
| rhs | The right operand |
Compare two objects for precedence.
<mrdocs/Dom/Object.hpp>std::strong_ordering
operator<=>(
Object const& a,
Object const& b) noexcept;
| Name | Description |
|---|---|
| a | The left operand |
| b | The right operand |
Compare two arrays for precedence.
<mrdocs/Dom/Array.hpp>std::strong_ordering
operator<=>(
Array const& lhs,
Array const& rhs) noexcept;
| Name | Description |
|---|---|
| lhs | The left operand |
| rhs | The right operand |
Determine if T can be converted to dom::Value.
<mrdocs/Dom/LazyObject.hpp>template<
class T,
class Context>
concept HasLazyObjectMap = HasLazyObjectMapWithContext<T, Context> ||
HasLazyObjectMapWithoutContext<T>;
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.
<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>;
};
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.
<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>;
};
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.
<mrdocs/Dom/Value.hpp>template<class T>
concept HasStandaloneValueFrom = HasValueFromWithoutContext<T> ||
std::constructible_from<Value, T>;
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.
<mrdocs/Dom/Value.hpp>template<
class T,
class Context>
concept HasValueFrom = HasValueFromWithContext<T, Context> ||
HasValueFromWithoutContext<T> ||
std::constructible_from<Value, T>;
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 converted to a dom::Value with a user-provided conversion.
<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);
};
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.
<mrdocs/Dom/Value.hpp>template<class T>
concept HasValueFromWithoutContext = requires(
Value& v,
T const& t)
{
tag_invoke(ValueFromTag{}, v, t);
};
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.
<mrdocs/Dom/String.hpp>template<class StringTy>
concept StringLikeTy = ! std::is_same_v<StringTy, String> &&
std::convertible_to<StringTy, std::string_view>;
Concept selecting callables convertible to dom::Value.
<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>;
Concept requiring all arguments be convertible to dom::Value.
<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>>()));
Concept true when function_traits is defined for F.
<mrdocs/Dom/Function.hpp>template<typename F>
concept has_function_traits = requires {
typename function_traits<F>::return_type;
typename function_traits<F>::args_type;
};
Concept combining argument and return constraints for default wrapper.
<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>;
Concept true when F returns Expected<dom::Value> or Expected<void>.
<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>);
Concept true when F returns a dom::Value or void.
<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>;
Concept enabling default function wrapper for supported return types.
<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>;
Filesystem helpers (join, temp, canonicalize) used throughout MrDocs.
The files namespace centralizes cross-platform path manipulation so CLI, generators, and tests can share the same normalization and staging logic.
| Name | Description |
|---|---|
FileType | The type of a file. |
| Name | Description |
|---|---|
appendPath | appendPath overloads |
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.
<mrdocs/Support/Path.hpp>enum class FileType : int;
| 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 |
| Name | Description |
|---|---|
getFileType | Return the file type or an error |
appendPath overloads
<mrdocs/Support/Path.hpp>Append a component to a base path using the native separator.
std::string
appendPath(
std::string_view basePath,
std::string_view name);
» more...
Append two components to a base path using the native separator.
std::string
appendPath(
std::string_view basePath,
std::string_view name1,
std::string_view name2);
» more...
Append three components to a base path using the native separator.
std::string
appendPath(
std::string_view basePath,
std::string_view name1,
std::string_view name2,
std::string_view name3);
» more...
Append four components to a base path using the native separator.
std::string
appendPath(
std::string_view basePath,
std::string_view name1,
std::string_view name2,
std::string_view name3,
std::string_view name4);
» more...
| Name | Description |
|---|---|
| basePath | Base path. |
| name | Component to append. |
| name1 | First component to append. |
| name2 | Second component to append. |
| name3 | Third component to append. |
| name4 | Fourth component to append. |
Append a component to a base path using the native separator.
<mrdocs/Support/Path.hpp>std::string
appendPath(
std::string_view basePath,
std::string_view name);
| Name | Description |
|---|---|
| basePath | Base path. |
| name | Component to append. |
Append two components to a base path using the native separator.
<mrdocs/Support/Path.hpp>std::string
appendPath(
std::string_view basePath,
std::string_view name1,
std::string_view name2);
| Name | Description |
|---|---|
| basePath | Base path. |
| name1 | First component to append. |
| name2 | Second component to append. |
Append three components to a base path using the native separator.
<mrdocs/Support/Path.hpp>std::string
appendPath(
std::string_view basePath,
std::string_view name1,
std::string_view name2,
std::string_view name3);
| Name | Description |
|---|---|
| basePath | Base path. |
| name1 | First component to append. |
| name2 | Second component to append. |
| name3 | Third component to append. |
Append four components to a base path using the native separator.
<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);
| Name | Description |
|---|---|
| basePath | Base path. |
| name1 | First component to append. |
| name2 | Second component to append. |
| name3 | Third component to append. |
| name4 | Fourth component to append. |
Create a directory.
<mrdocs/Support/Path.hpp>Expected<void>
createDirectory(std::string_view pathName);
Any missing parent directories will also be created.
| Name | Description |
|---|---|
| pathName | The absolute or relative path to create. |
Determine if a path exists
<mrdocs/Support/Path.hpp>bool
exists(std::string_view pathName);
| Name | Description |
|---|---|
| pathName | The absolute or relative path |
Return the filename part of the path.
<mrdocs/Support/Path.hpp>std::string_view
getFileName(std::string_view pathName);
| Name | Description |
|---|---|
| pathName | The absolute or relative path to the directory or file. |
Return the contents of a file as a string.
<mrdocs/Support/Path.hpp>Expected<std::string>
getFileText(std::string_view pathName);
| Name | Description |
|---|---|
| pathName | The absolute or relative path to the file. |
Return the file type or an error
<mrdocs/Support/Path.hpp>Expected<FileType>
getFileType(std::string_view pathName);
| Name | Description |
|---|---|
| pathName | The absolute or relative path to the file. |
Return the parent directory.
<mrdocs/Support/Path.hpp>Return the parent directory.
std::string
getParentDir(std::string_view pathName);
» more...
Return the parent directory.
std::string
getParentDir(
std::string_view pathName,
unsigned int levels);
» more...
| 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.
<mrdocs/Support/Path.hpp>std::string
getParentDir(std::string_view pathName);
If the parent directory is defined, the returned path will always have a trailing separator.
| Name | Description |
|---|---|
| pathName | The absolute or relative path to the directory or file. |
Return the parent directory.
<mrdocs/Support/Path.hpp>std::string
getParentDir(
std::string_view pathName,
unsigned int levels);
If the parent directory is defined, the returned path will always have a trailing separator.
| 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.
<mrdocs/Support/Path.hpp>std::string_view
getSourceFilename(std::string_view pathName);
| Name | Description |
|---|---|
| pathName | The absolute or relative path to the file. |
Return true if pathName is absolute.
<mrdocs/Support/Path.hpp>bool
isAbsolute(std::string_view pathName) noexcept;
| Name | Description |
|---|---|
| pathName | The absolute or relative path to the directory or file. |
Determine if a path is a directory.
<mrdocs/Support/Path.hpp>bool
isDirectory(std::string_view pathName);
| Name | Description |
|---|---|
| pathName | The absolute or relative path |
Return true if pathName ends in a separator.
<mrdocs/Support/Path.hpp>bool
isDirsy(std::string_view pathName) noexcept;
| Name | Description |
|---|---|
| pathName | The absolute or relative path to the directory or file. |
Determine lexically if a path is a directory.
<mrdocs/Support/Path.hpp>bool
isLexicalDirectory(std::string_view pathName);
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.
| Name | Description |
|---|---|
| pathName | The absolute or relative path |
Check if the path is posix style.
<mrdocs/Support/Path.hpp>bool
isPosixStyle(std::string_view pathName);
| Name | Description |
|---|---|
| pathName | The absolute or relative path to the directory or file. |
Return an absolute path from a possibly relative path.
<mrdocs/Support/Path.hpp>Return an absolute path from a possibly relative path.
Expected<std::string>
makeAbsolute(std::string_view pathName);
» more...
Return an absolute path from a possibly relative path.
std::string
makeAbsolute(
std::string_view pathName,
std::string_view workingDir);
» more...
| 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.
<mrdocs/Support/Path.hpp>Expected<std::string>
makeAbsolute(std::string_view pathName);
Relative paths are resolved against the current working directory of the process.
| Name | Description |
|---|---|
| pathName | The absolute or relative path to the directory or file. |
Return an absolute path from a possibly relative path.
<mrdocs/Support/Path.hpp>std::string
makeAbsolute(
std::string_view pathName,
std::string_view workingDir);
| 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.
<mrdocs/Support/Path.hpp>std::string
makeDirsy(std::string_view pathName);
| Name | Description |
|---|---|
| pathName | The absolute or relative path to the directory or file. |
Convert all backward slashes to forward slashes.
<mrdocs/Support/Path.hpp>std::string
makePosixStyle(std::string_view pathName);
| Name | Description |
|---|---|
| pathName | The absolute or relative path to the directory or file. |
Return a normalized directory.
<mrdocs/Support/Path.hpp>std::string
normalizeDir(std::string_view pathName);
This function returns a new directory path based on applying the changes defined by normalizePath and makeDirsy.
| Name | Description |
|---|---|
| pathName | The relative or absolute path. |
Return a normalized path.
<mrdocs/Support/Path.hpp>std::string
normalizePath(std::string_view pathName);
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
| Name | Description |
|---|---|
| pathName | The relative or absolute path. |
Return an error if pathName is not absolute.
<mrdocs/Support/Path.hpp>Expected<void>
requireAbsolute(std::string_view pathName);
| Name | Description |
|---|---|
| pathName | The absolute or relative path to the directory or file. |
Return an error if the path is not a directory.
<mrdocs/Support/Path.hpp>Expected<void>
requireDirectory(std::string_view pathName);
| Name | Description |
|---|---|
| pathName | The absolute or relative path |
Checks if the given path starts with the specified prefix.
<mrdocs/Support/Path.hpp>bool
startsWith(
std::string_view pathName,
std::string_view prefix);
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 ("").
pathName starts with prefix, false otherwise.
| 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.
<mrdocs/Support/Path.hpp>std::string
withExtension(
std::string_view fileName,
std::string_view ext);
| 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. |
Handlebars helper registry for templates.
Everything under helpers mirrors the runtime helper registry shipped with our bundled Handlebars engine so templates can call the same helpers in both Node-based dev mode and the embedded C++ rendering pipeline.
| 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
The "and" helper returns true if all of the values are truthy.
| Name | Description |
|---|---|
| args | The values to test |
"detag" helper function
The "detag" helper applies the regex expression "<[]+>" to the input to remove all HTML tags.
| Name | Description |
|---|---|
| html | A variant container for any kind of Dom value. |
"eq" helper function
The "eq" helper returns true if all of the values are equal.
| Name | Description |
|---|---|
| args | The values to compare |
"increment" helper function
<mrdocs/Support/Handlebars.hpp>dom::Value
increment_fn(dom::Value const& value);
The "increment" helper adds 1 to the value if it's an integer and converts booleans to true. Other values are returned as-is.
| Name | Description |
|---|---|
| value | A variant container for any kind of Dom value. |
"ne" helper function
The "ne" helper returns true if any of the values are not equal.
| Name | Description |
|---|---|
| args | The values to compare |
"not" helper function
The "not" helper returns true if not all of the values are truthy.
| Name | Description |
|---|---|
| arg | An array of values |
"or" helper function
The "or" helper returns true if any of the values are truthy.
| Name | Description |
|---|---|
| args | An array of values |
Register all the Antora helpers into a Handlebars instance
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.
| Name | Description |
|---|---|
| hbs | The Handlebars instance to register the helpers into |
https://gitlab.com/antora/antora-ui-default/-/tree/master/src/helpers
Register all the built-in helpers into a Handlebars instance
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.
| Name | Description |
|---|---|
| hbs | The Handlebars instance to register the helpers into |
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
<mrdocs/Support/Handlebars.hpp>void
registerConstructorHelpers(Handlebars& hbs);
This function registers a number of common helpers that allows the user to create objects of specific types directly from literals in the template.
| Name | Description |
|---|---|
| hbs | The Handlebars instance to register the helpers into |
Register helpers to manipulate composite data types
<mrdocs/Support/Handlebars.hpp>void
registerContainerHelpers(Handlebars& hbs);
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.
| Name | Description |
|---|---|
| hbs | The Handlebars instance to register the helpers into |
Register logical helpers into a Handlebars instance
This function registers a number of common helpers that perform logical operations.
| Name | Description |
|---|---|
| hbs | The Handlebars instance to register the helpers into |
Register math helpers into a Handlebars instance
This function registers a number of common helpers that perform mathemathical operations.
| Name | Description |
|---|---|
| hbs | The Handlebars instance to register the helpers into |
Register string helpers into a Handlebars instance
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.
| Name | Description |
|---|---|
| hbs | The Handlebars instance to register the helpers into |
Register type helpers into a Handlebars instance
This function registers a number of common helpers that operate on types, such as identity, type checking, and type conversion.
| Name | Description |
|---|---|
| hbs | The Handlebars instance to register the helpers into |
"relativize" helper function
<mrdocs/Support/Handlebars.hpp>dom::Value
relativize_fn(
dom::Value to,
dom::Value from,
dom::Value context);
The "relativize" helper makes the first path relative to the second path.
| 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
<mrdocs/Support/Handlebars.hpp>dom::Value
select_fn(
dom::Value const& condition,
dom::Value const& result_true,
dom::Value const& result_false);
The "select" helper returns the second argument if the first argument is truthy, and the third argument otherwise.
| 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
<mrdocs/Support/Handlebars.hpp>int
year_fn();
The "year" helper returns the current year as an integer.
JavaScript interop helpers for the embedded runtime.
These functions abstract over the embedded JavaScript engine so that scripts and helpers can be bound, invoked, and marshalled without leaking engine-specific types into the rest of the codebase.
## Implementation Notes (for Python/Lua integrations)
The current implementation uses JerryScript with the following design choices:
### Context Isolation Each Context owns an independent JerryScript interpreter with its own 512KB heap. This allows multiple threads to execute JavaScript in parallel by giving each thread its own Context. The JERRY_EXTERNAL_CONTEXT build flag enables this multi-context support.
### Scope and Value Lifetime JerryScript uses heap-based reference counting (not a stack like Lua/Duktape). To provide deterministic cleanup similar to stack-based engines:
- Scope tracks values created within it and releases one reference to each when the scope ends. Values that were copied elsewhere survive; values that remained local are freed. - Value holds its own reference via jerry_value_copy/jerry_value_free. Values can safely outlive their creating Scope if copied.
### Integer Limitations JerryScript only guarantees 32-bit integer precision. Values outside the int32 range (approximately +/-2 billion) are converted to strings when passed to JavaScript to avoid wraparound bugs. When reading values back, integers that fit in int64 are returned as integers; others remain as doubles.
### DOM to JS Conversion Strategy - Objects: Use lazy Proxy wrappers to avoid infinite recursion from circular references (e.g., Handlebars symbol contexts that reference parent symbols). Properties are converted on-demand when accessed. - Arrays: Converted eagerly (snapshot semantics) because they rarely contain circular references. This means JS mutations don't affect the original C++ array and vice versa. - Functions: Wrapped bidirectionally so JS can call C++ functions and C++ can invoke JS functions through dom::Function.
### Thread Safety Each Context has its own mutex serializing operations on that context. Different Contexts can execute in parallel on different threads. Values hold a shared_ptr to their Context, keeping it alive and using the mutex for all JerryScript operations.
### Port Functions JerryScript requires "port functions" for platform-specific operations. We use the default jerry-port library (JERRY_PORT=ON) for most functions (logging, time, fatal errors, etc.), but provide custom implementations of the context management functions: - jerry_port_context_alloc: Allocates context + heap memory - jerry_port_context_free: Frees context memory - jerry_port_context_get: Returns current thread's active context
The default jerry-port context functions use a static global pointer, limiting all threads to a single shared context. When building with JERRY_EXTERNAL_CONTEXT=ON, these functions are excluded from jerry-port (see third-party/patches/jerryscript/CMakeLists.txt), and mrdocs provides TLS-based implementations that allow each thread to have its own active context, enabling parallel JavaScript execution.
| Name | Description |
|---|---|
Array | Lightweight handle to a JavaScript array. |
Boolean | Boolean wrapper for JavaScript values. |
Context | An isolated JavaScript interpreter instance. |
Object | Object wrapper for JavaScript values. |
Scope | A JavaScript scope for value lifetime management. |
String | String wrapper for JavaScript values. |
Value | An ECMAScript value. |
| Name | Description |
|---|---|
Type | Types of values. |
| 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. |
Lightweight handle to a JavaScript array.
<mrdocs/Support/JavaScript.hpp>class Array;
Boolean wrapper for JavaScript values.
<mrdocs/Support/JavaScript.hpp>class Boolean;
An isolated JavaScript interpreter instance.
<mrdocs/Support/JavaScript.hpp>class Context;
Each Context owns an independent JerryScript interpreter with its own 512KB heap. Multiple Contexts can exist simultaneously, allowing parallel JavaScript execution across threads (each thread should use its own Context).
To execute scripts or create values, construct a Scope from the Context. The Scope activates the Context on the current thread and provides methods for script evaluation and value creation.
Contexts can be copied (via copy constructor); copies share the same underlying interpreter and heap. This is useful for passing context references without transferring ownership.
| Name | Description |
|---|---|
Impl | Shared runtime data for a JavaScript context. |
| Name | Description |
|---|---|
Context [constructor] | Constructors |
~Context [destructor] | Destructor. |
operator= [deleted] | Copy assignment (deleted). |
| Name | Description |
|---|---|
Scope |
A JavaScript scope for value lifetime management. |
Value |
An ECMAScript value. |
Scope
Shared runtime data for a JavaScript context.
<mrdocs/Support/JavaScript.hpp>struct Impl;
Constructors
<mrdocs/Support/JavaScript.hpp>Constructor.
Context();
» more...
Copy constructor.
Context(Context const& other) noexcept;
» more...
Constructor.
<mrdocs/Support/JavaScript.hpp>Context();
Creates a new JavaScript interpreter with its own 512KB heap. The interpreter is initialized but inactive until a Scope is created.
Copy constructor.
Creates a new Context that shares the same underlying interpreter. Both Contexts reference the same heap and global object. This is useful for passing Context references without transferring ownership.
Operations on the shared interpreter are serialized by a mutex, so only one thread can execute at a time per interpreter.
| Name | Description |
|---|---|
| other | The object to copy construct from |
Destructor.
<mrdocs/Support/JavaScript.hpp>~Context();
Releases this reference to the interpreter. The underlying JerryScript context is destroyed when the last Context (or Value) referencing it is destroyed.
Copy assignment (deleted).
<mrdocs/Support/JavaScript.hpp>Context&
operator=(Context const& other) = delete;
Copy assignment is deleted to prevent accidental interpreter sharing. Use the copy constructor explicitly if sharing is intended.
| Name | Description |
|---|---|
| other | The object to copy assign from |
Object wrapper for JavaScript values.
<mrdocs/Support/JavaScript.hpp>class Object;
A JavaScript scope for value lifetime management.
<mrdocs/Support/JavaScript.hpp>class Scope;
Scope serves two purposes:
1. Value batch tracking: Tracks JavaScript values created within the scope and releases one reference to each when the scope ends. Values that were copied elsewhere (e.g., returned from functions, stored in containers) survive because they hold their own references. Values that remained local to the scope are freed.
2. Thread safety: Each Scope operation briefly locks the Context's mutex and activates the context (sets TLS). This allows multiple threads to share a Context while serializing access to the interpreter. Values obtained from a Scope can be used from other threads; they will acquire the lock as needed.
This provides deterministic cleanup similar to stack-based engines (Lua, Duktape) while working with JerryScript's reference-counted heap.
Multiple Scopes can exist for the same Context (even in different threads), but operations are serialized by the Context's mutex.
| 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. |
Constructor.
Records the context for this scope. The context's mutex is NOT held for the lifetime of the Scope; instead, each operation locks briefly.
| Name | Description |
|---|---|
| ctx | The context to use. |
Destructor.
<mrdocs/Support/JavaScript.hpp>~Scope();
Releases one reference to each value created within this scope. Values whose reference count drops to zero are freed; values that were copied elsewhere survive.
Compile a script and push results to stack.
<mrdocs/Support/JavaScript.hpp>Expected<Value>
compile_function(std::string_view jsCode);
Coerces provided source into a callable function. First parenthesizes the source to force expression parsing; if that fails, executes the script and returns the first declared function name. Ambiguous sources may run side effects twice (expression attempt + fallback) matching existing behavior.
| Name | Description |
|---|---|
| jsCode | The JavaScript code to compile. |
Compile a script and push results to stack.
<mrdocs/Support/JavaScript.hpp>Expected<Value>
compile_script(std::string_view jsCode);
Wraps arbitrary script text in an IIFE that calls eval when invoked, returning the last expression result. Function declarations are rejected to avoid silent re-declarations. Side effects in the script run at invocation time.
| Name | Description |
|---|---|
| jsCode | The JavaScript code to compile. |
Compile and run a expression.
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.
| Name | Description |
|---|---|
| jsCode | The JavaScript code to execute. |
Return a global object if it exists.
<mrdocs/Support/JavaScript.hpp>Expected<Value>
getGlobal(std::string_view name);
This function returns a Value that represents a global variable in the parent context.
If the variable does not exist, an error is returned.
| Name | Description |
|---|---|
| name | The name of the global variable. |
Return the global object.
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.
Push a new array to the stack
Push a boolean to the stack
| Name | Description |
|---|---|
| value | The boolean value to push. |
Push a double to the stack
| Name | Description |
|---|---|
| value | The double value to push. |
Push an integer to the stack
| Name | Description |
|---|---|
| value | The integer value to push. |
Push a new object to the stack
Push a string to the stack
| Name | Description |
|---|---|
| value | The string value to push. The string is copied to the internal heap. |
Compile and run a script.
<mrdocs/Support/JavaScript.hpp>Expected<void>
script(std::string_view jsCode);
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.
ES module import/export is not enabled; scripts must be self-contained or rely on globals.
It evaluates the ECMAScript source code and converts any internal errors to Error.
| Name | Description |
|---|---|
| jsCode | The JavaScript code to execute. |
Set a global object.
<mrdocs/Support/JavaScript.hpp>void
setGlobal(
std::string_view name,
dom::Value const& value);
| Name | Description |
|---|---|
| name | The name of the global variable. |
| value | The value to set. |
String wrapper for JavaScript values.
<mrdocs/Support/JavaScript.hpp>class String;
An ECMAScript value.
<mrdocs/Support/JavaScript.hpp>class Value;
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.
Generic JavaScript value wrapper.
An ECMAScript value.
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.
| Name | Description |
|---|---|
Value [constructor] | Constructor |
~Value [destructor] | Destructor |
operator= | Assignment operators |
apply | apply overloads |
call | Invoke a function. |
empty | Return if an Array or Object is empty. |
erase | Remove a property from an object if it exists. |
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. |
operator[] | Subscript operators |
set | Set or replace the value for a given key. |
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 |
| Name | Description |
|---|---|
Value [constructor] | Wrap an existing engine value without transferring ownership. |
| Name | Description |
|---|---|
impl_ | Shared lifetime owner for the underlying JavaScript runtime. |
val_ | Opaque engine value handle stored as an integer (engine-specific inside the implementation). |
| Name | Description |
|---|---|
toString |
Return value as a string. |
operator&& |
|
operator&& |
|
operator&& |
Return the first Value that is not truthy, or the last one. |
operator|| |
|
operator|| |
|
operator|| |
Return the first Value that is truthy, or the last one. |
operator<=> |
Compare two values for inequality. |
operator!= |
|
operator!= |
|
operator!= |
Inequality operator |
operator== |
|
operator== |
|
operator== |
Compare two values for equality. |
swap |
Swap two values. |
Scope |
A JavaScript scope for value lifetime management. |
Scope
Type
Constructor
<mrdocs/Support/JavaScript.hpp>Constructor
Value() noexcept;
» more...
Constructor
Value(Value const& other);
» more...
Constructor
Value(Value&& other) noexcept;
» more...
Constructor
<mrdocs/Support/JavaScript.hpp>Value() noexcept;
Constructor
Duplicates the underlying engine handle held by value and shares the same runtime state.
| Name | Description |
|---|---|
| other | The object to copy construct from |
Constructor
The function associates the existing value with this object.
| Name | Description |
|---|---|
| other | The object to move construct from |
Destructor
<mrdocs/Support/JavaScript.hpp>~Value();
Releases the underlying engine handle; lifetime is tied to the shared Context::Impl, not to a stack frame.
Assignment operators
<mrdocs/Support/JavaScript.hpp>Copy assignment.
Value&
operator=(Value const& other);
» more...
Move assignment.
Value&
operator=(Value&& other) noexcept;
» more...
Copy assignment.
Duplicates the underlying engine handle held by value and shares the same runtime state.
| Name | Description |
|---|---|
| other | The object to copy assign from |
Move assignment.
The function associates the existing value with this object.
| Name | Description |
|---|---|
| other | The object to move assign from |
apply overloads
<mrdocs/Support/JavaScript.hpp>Invoke a function with an initializer_list of arguments.
Expected<Value>
apply(std::initializer_list<dom::Value> args) const;
» more...
Invoke a function with a span of arguments.
Expected<Value>
apply(std::span<dom::Value const> args) const;
» more...
| Name | Description |
|---|---|
| args | Arguments to pass to the JavaScript function. |
Invoke a function with an initializer_list of arguments.
<mrdocs/Support/JavaScript.hpp>Expected<Value>
apply(std::initializer_list<dom::Value> args) const;
| Name | Description |
|---|---|
| args | Arguments to pass to the JavaScript function. |
Invoke a function with a span of arguments.
<mrdocs/Support/JavaScript.hpp>Expected<Value>
apply(std::span<dom::Value const> args) const;
| Name | Description |
|---|---|
| args | Arguments to pass to the JavaScript function. |
Invoke a function.
<mrdocs/Support/JavaScript.hpp>template<std::convertible_to<dom::Value>... Args>
Expected<Value>
call(Args&&... args) const;
| Name | Description |
|---|---|
| args | Zero or more arguments to pass to the method. |
Return if an Array or Object is empty.
<mrdocs/Support/JavaScript.hpp>bool
empty() const;
Remove a property from an object if it exists.
<mrdocs/Support/JavaScript.hpp>void
erase(std::string_view key) const;
| Name | Description |
|---|---|
| key | Property name to erase from the current object. |
Return true if a key exists.
<mrdocs/Support/JavaScript.hpp>bool
exists(std::string_view key) const;
true if the key exists, false otherwise.
| Name | Description |
|---|---|
| key | The key to check for. |
get overloads
<mrdocs/Support/JavaScript.hpp>Return the element at a given index.
Value
get(std::size_t i) const;
» more...
Return the element for a given key.
Value
get(std::string_view key) const;
» more...
Return the element at a given index or key.
Value
get(dom::Value const& i) const;
» more...
Return the element for a given key.
template<std::convertible_to<std::string_view> S>
Value
get(S const& key) const;
» more...
Kind::Undefined if the index is out of range.| Name | Description |
|---|---|
| i | The index of the element to return. |
| key | The key to look up. |
Return the element at a given index.
Kind::Undefined if the index is out of range.
| Name | Description |
|---|---|
| i | The index of the element to return. |
Return the element for a given key.
If the Value is not an object, or the key is not found, a Value of type Kind::Undefined is returned.
| Name | Description |
|---|---|
| key | The key to look up. |
Return the element at a given index or key.
| Name | Description |
|---|---|
| i | A variant container for any kind of Dom value. |
Return the element for a given key.
<mrdocs/Support/JavaScript.hpp>template<std::convertible_to<std::string_view> S>
Value
get(S const& key) const;
If the Value is not an object, or the key is not found, a Value of type Kind::Undefined is returned.
| Name | Description |
|---|---|
| key | The key to look up. |
Return the underlying array.
Behaviour is undefined if !isArray()
Return the underlying boolean value.
<mrdocs/Support/JavaScript.hpp>bool
getBool() const noexcept;
Behaviour is undefined if !isBoolean()
Return the value as a dom::Value
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 the underlying double value.
<mrdocs/Support/JavaScript.hpp>double
getDouble() const noexcept;
Behaviour is undefined if !isNumber()
Return the underlying array.
Behaviour is undefined if !isFunction()
Return the underlying integer value.
<mrdocs/Support/JavaScript.hpp>int64_t
getInteger() const noexcept;
Behaviour is undefined if !isNumber()
Return the underlying object.
Behaviour is undefined if !isObject()
Return the underlying string
<mrdocs/Support/JavaScript.hpp>std::string
getString() const;
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.
JerryScript allocates a new buffer for string extraction, so the returned value is an owning std::string rather than a view.
Behaviour is undefined if !isString()
Check if the value is an array.
<mrdocs/Support/JavaScript.hpp>bool
isArray() const noexcept;
true if the value is an array, false otherwise
Check if the value is a boolean.
<mrdocs/Support/JavaScript.hpp>bool
isBoolean() const noexcept;
true if the value is a boolean, false otherwise
Check if the value is a floating point number.
<mrdocs/Support/JavaScript.hpp>bool
isDouble() const noexcept;
true if the value is a number but not an integer, false otherwise
Check if the value is a function.
<mrdocs/Support/JavaScript.hpp>bool
isFunction() const noexcept;
true if the value is a function, false otherwise
Check if the value is an integer number.
<mrdocs/Support/JavaScript.hpp>bool
isInteger() const noexcept;
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().
true if the value is a number with no fractional part, false otherwise
Check if the value is null.
<mrdocs/Support/JavaScript.hpp>bool
isNull() const noexcept;
true if the value is null, false otherwise
Check if the value is a number.
<mrdocs/Support/JavaScript.hpp>bool
isNumber() const noexcept;
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.
true if the value is a number, false otherwise
Check if the value is an object.
<mrdocs/Support/JavaScript.hpp>bool
isObject() const noexcept;
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.
true if the value is an object, false otherwise
Check if the value is a string.
<mrdocs/Support/JavaScript.hpp>bool
isString() const noexcept;
true if the value is a string, false otherwise
Determine if a value is truthy
<mrdocs/Support/JavaScript.hpp>bool
isTruthy() const noexcept;
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.
true if the value is truthy, false otherwise
Check if the value is undefined.
<mrdocs/Support/JavaScript.hpp>bool
isUndefined() const noexcept;
true if the value is undefined, false otherwise
Lookup a sequence of keys.
This function is equivalent to calling get multiple times, once for each key in the sequence of dot-separated keys.
| Name | Description |
|---|---|
| keys | A sequence of keys separated by dots. |
Invoke a function.
<mrdocs/Support/JavaScript.hpp>template<class... Args>
Value
operator()(Args&&... args) const;
| Name | Description |
|---|---|
| args | Zero or more arguments to pass to the method. |
Subscript operators
<mrdocs/Support/JavaScript.hpp>Return the element for an array index.
Value
operator[](std::size_t index) const;
» more...
Return the element for a property name.
Value
operator[](std::string_view key) const;
» more...
| Name | Description |
|---|---|
| index | Zero-based array index to fetch when the value is an array. |
| key | Property name to fetch from the current object. |
Return the element for an array index.
| Name | Description |
|---|---|
| index | Zero-based array index to fetch when the value is an array. |
Return the element for a property name.
| Name | Description |
|---|---|
| key | Property name to fetch from the current object. |
Set or replace the value for a given key.
<mrdocs/Support/JavaScript.hpp>Set or replace the value for a given key.
void
set(
std::string_view key,
Value const& value) const;
» more...
Set or replace the value for a given key.
void
set(
std::string_view key,
dom::Value const& value) const;
» more...
| Name | Description |
|---|---|
| key | The key to set. |
| value | The value to set. |
Set or replace the value for a given key.
<mrdocs/Support/JavaScript.hpp>void
set(
std::string_view key,
Value const& value) const;
| Name | Description |
|---|---|
| key | The key to set. |
| value | The value to set. |
Set or replace the value for a given key.
<mrdocs/Support/JavaScript.hpp>void
set(
std::string_view key,
dom::Value const& value) const;
| Name | Description |
|---|---|
| key | The key to set. |
| value | The value to set. |
Return if an Array or Object is empty.
<mrdocs/Support/JavaScript.hpp>std::size_t
size() const;
Swap two values.
| Name | Description |
|---|---|
| other | An ECMAScript value. |
Return the type of the value.
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 the string.
<mrdocs/Support/JavaScript.hpp>explicit
operator std::string() const noexcept;
Determine if a value is truthy
<mrdocs/Support/JavaScript.hpp>explicit
operator bool() const noexcept;
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.
true if the value is truthy, false otherwise
Wrap an existing engine value without transferring ownership.
<mrdocs/Support/JavaScript.hpp>Value(
uint32_t val,
std::shared_ptr<Context::Impl> impl) noexcept;
| Name | Description |
|---|---|
| val | JerryScript value handle that will be acquired. |
| impl | Shared runtime state that keeps the context alive. |
Shared lifetime owner for the underlying JavaScript runtime.
<mrdocs/Support/JavaScript.hpp>std::shared_ptr<Context::Impl> impl_;
Opaque engine value handle stored as an integer (engine-specific inside the implementation).
<mrdocs/Support/JavaScript.hpp>uint32_t val_;
Types of values.
<mrdocs/Support/JavaScript.hpp>enum class Type : int;
| 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 an object |
function | The value is a function |
array | The value is an array |
Return the first Value that is not truthy, or the last one.
<mrdocs/Support/JavaScript.hpp>auto
operator&&(
S const& lhs,
Value const& rhs) noexcept;
» more...
auto
operator&&(
Value const& lhs,
S const& rhs) noexcept;
» more...
Return the first Value that is not truthy, or the last one.
Value
operator&&(
Value const& lhs,
Value const& rhs);
» more...
<mrdocs/Support/JavaScript.hpp>auto
operator&&(
S const& lhs,
Value const& rhs) noexcept;
<mrdocs/Support/JavaScript.hpp>auto
operator&&(
Value const& lhs,
S const& rhs) noexcept;
Return the first Value that is not truthy, or the last one.
<mrdocs/Support/JavaScript.hpp>Value
operator&&(
Value const& lhs,
Value const& rhs);
This function is equivalent to the JavaScript && operator.
| Name | Description |
|---|---|
| lhs | The left operand |
| rhs | The right operand |
Return the first Value that is truthy, or the last one.
<mrdocs/Support/JavaScript.hpp>auto
operator||(
S const& lhs,
Value const& rhs) noexcept;
» more...
auto
operator||(
Value const& lhs,
S const& rhs) noexcept;
» more...
Return the first Value that is truthy, or the last one.
Value
operator||(
Value const& lhs,
Value const& rhs);
» more...
<mrdocs/Support/JavaScript.hpp>auto
operator||(
S const& lhs,
Value const& rhs) noexcept;
<mrdocs/Support/JavaScript.hpp>auto
operator||(
Value const& lhs,
S const& rhs) noexcept;
Return the first Value that is truthy, or the last one.
<mrdocs/Support/JavaScript.hpp>Value
operator||(
Value const& lhs,
Value const& rhs);
This function is equivalent to the JavaScript || operator.
| Name | Description |
|---|---|
| lhs | The left operand |
| rhs | The right operand |
Register a JavaScript helper function
<mrdocs/Support/JavaScript.hpp>[[nodiscard]]
Expected<void, Error>
registerHelper(
mrdocs::Handlebars& hbs,
std::string_view name,
Context& ctx,
std::string_view script);
This function registers a JavaScript function as a helper function that can be called from Handlebars templates.
The helper source is resolved in the following order:
1. Parenthesized eval - wraps the script in parentheses and evaluates. Handles function declarations without side effects. Example: "function add(a, b) { return a + b; }"
2. Direct eval - evaluates the script as-is. Handles IIFEs and expressions that return functions. Example: "(function(){ return function(x){ return x*2; }; })()"
3. Global lookup - looks up the helper name on the global object. Handles scripts that define globals before returning. Example: "var helper = function(x){ return x; }; helper;"
The resolved function is stored on the shared MrDocsHelpers global object and registered with Handlebars. When invoked, positional arguments are passed to the JavaScript function (the Handlebars options object is stripped to avoid expensive recursive conversion of symbol contexts).
| 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.
| Name | Description |
|---|---|
| v0 | An ECMAScript value. |
| v1 | An ECMAScript value. |
Return value as a string.
This function coerces any value to a string.
| Name | Description |
|---|---|
| value | An ECMAScript value. |
Compare two values for equality.
<mrdocs/Support/JavaScript.hpp>auto
operator==(
Value const& lhs,
S const& rhs) noexcept;
» more...
auto
operator==(
S const& lhs,
Value const& rhs) noexcept;
» more...
Compare two values for equality.
bool
operator==(
Value const& lhs,
Value const& rhs) noexcept;
» more...
<mrdocs/Support/JavaScript.hpp>auto
operator==(
Value const& lhs,
S const& rhs) noexcept;
<mrdocs/Support/JavaScript.hpp>auto
operator==(
S const& lhs,
Value const& rhs) noexcept;
Compare two values for equality.
<mrdocs/Support/JavaScript.hpp>bool
operator==(
Value const& lhs,
Value const& rhs) noexcept;
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.
In JavaScript, this is equivalent to the === operator, which does not perform type conversions.
true if the objects are equal, false otherwise
| Name | Description |
|---|---|
| lhs | The left operand |
| rhs | The right operand |
Inequality operators
<mrdocs/Support/JavaScript.hpp>auto
operator!=(
Value const& lhs,
S const& rhs) noexcept;
» more...
auto
operator!=(
S const& lhs,
Value const& rhs) noexcept;
» more...
Inequality operator
bool
operator!=(
Value const& lhs,
Value const& rhs) noexcept;
» more...
<mrdocs/Support/JavaScript.hpp>auto
operator!=(
Value const& lhs,
S const& rhs) noexcept;
<mrdocs/Support/JavaScript.hpp>auto
operator!=(
S const& lhs,
Value const& rhs) noexcept;
Inequality operator
<mrdocs/Support/JavaScript.hpp>bool
operator!=(
Value const& lhs,
Value const& rhs) noexcept;
true if the objects are not equal, false otherwise
| Name | Description |
|---|---|
| lhs | The left operand |
| rhs | The right operand |
Compare two values for inequality.
<mrdocs/Support/JavaScript.hpp>std::strong_ordering
operator<=>(
Value const& lhs,
Value const& rhs) noexcept;
| Name | Description |
|---|---|
| lhs | The left operand |
| rhs | The right operand |
Lua interop helpers for the optional scripting/backend integration.
This namespace contains glue for pushing/popping values, registering functions, and safely executing snippets so embedders can enable Lua without duplicating binding code.
| Name | Description |
|---|---|
Access | Internal tag granting access to lua internals. |
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 | Stack scope guard for Lua calls. |
String | A Lua string. |
Table | A Lua table. |
Value | A Lua value. |
zstring | A null-terminated string. |
FunctionPtr | Pointer to a Lua-callable function returning Value. |
| Name | Description |
|---|---|
Type | Types of values. |
Pointer to a Lua-callable function returning Value.
Internal tag granting access to lua internals.
<mrdocs/Support/Lua.hpp>struct Access;
A reference to an instance of a Lua interpreter.
<mrdocs/Support/Lua.hpp>class Context;
| Name | Description |
|---|---|
Context [constructor] | Constructor. |
~Context [destructor] | Destructor. |
operator= [deleted] | Copy assignment. |
| Name | Description |
|---|---|
Scope |
Stack scope guard for Lua calls. |
Access |
Internal tag granting access to lua internals. |
Constructor.
<mrdocs/Support/Lua.hpp>Constructor.
Context();
» more...
Constructor.
Context(Context const& other) noexcept;
» more...
Constructor.
<mrdocs/Support/Lua.hpp>Context();
Constructor.
| Name | Description |
|---|---|
| other | The object to copy construct from |
Destructor.
<mrdocs/Support/Lua.hpp>~Context();
Copy assignment.
| Name | Description |
|---|---|
| other | The object to copy assign from |
A Lua function.
| Name | Description |
|---|---|
Value | A Lua value. |
| Name | Description |
|---|---|
Function [constructor] | Construct a function wrapper from an existing value. |
call | Invoke the value as a function. |
displayString | Return a string representation. |
isBoolean | Return true if the value is a boolean. |
isFunction | Return true if the value is a function. |
isNil | Return true if the value is nil. |
isNumber | Return true if the value is numeric. |
isString | Return true if the value is a string. |
isTable | Return true if the value is a table. |
operator() | Invoke the value as a function. |
type | Return the Lua type of this value. |
| Name | Description |
|---|---|
index_ | Stack index where the value is stored. |
scope_ | Scope that owns the stack slot for this value. |
| Name | Description |
|---|---|
Access |
Internal tag granting access to lua internals. |
Construct a function wrapper from an existing value.
| Name | Description |
|---|---|
| value | The object to construct from |
A lazy container to push values to the Lua stack.
<mrdocs/Support/Lua.hpp>class Param;
| Name | Description |
|---|---|
Param [constructor] [deleted] | Constructors |
~Param [destructor] | Destroy the stored value without throwing. |
operator= [deleted] | Deleted copy assignment to avoid double pops. |
| Name | Description |
|---|---|
arr_ [variant member] | Stored array when kind_ == domArray. |
b_ [variant member] | Stored boolean value when kind_ == boolean. |
i_ [variant member] | Stored integer value when kind_ == integer. |
index_ [variant member] | Stack index when kind_ == value. |
obj_ [variant member] | Stored object when kind_ == domObject. |
s_ [variant member] | Stored string view when kind_ == string. |
| Name | Description |
|---|---|
Access |
Internal tag granting access to lua internals. |
Constructors
<mrdocs/Support/Lua.hpp>Deleted copy constructor to avoid double pops.
Param(Param const& other) = delete;
» more...
Construct from a DOM array.
Param(dom::Array arr) noexcept;
» more...
Construct from a DOM object.
Param(dom::Object obj) noexcept;
» more...
Construct an integer parameter.
Param(int64_t value) noexcept;
» more...
Construct a nil parameter.
Param(std::nullptr_t value) noexcept;
» more...
Construct a string parameter (non-owning).
Param(std::string_view s) noexcept;
» more...
Construct from a Lua Value already on the stack.
Param(Value const& value) noexcept;
» more...
Construct from a generic DOM value.
Param(dom::Value const& value) noexcept;
» more...
Construct a string parameter from C-string.
Param(char const* s) noexcept;
» more...
Construct an integral parameter from an enum.
template<class Enum>
requires std::is_enum_v<Enum>
Param(Enum v) noexcept;
» more...
Construct a boolean parameter from a bool-like type.
template<class Boolean>
requires std::is_same_v<Boolean, bool>
Param(Boolean const& b) noexcept;
» more...
Construct a string parameter from a convertible string type.
template<class String>
requires std::is_convertible_v<
String, std::string_view>
Param(String const& s);
» more...
Deleted copy constructor to avoid double pops.
| Name | Description |
|---|---|
| other | The object to copy construct from |
Construct from a DOM array.
| Name | Description |
|---|---|
| arr | The object to construct from |
Construct from a DOM object.
| Name | Description |
|---|---|
| obj | The object to construct from |
Construct an integer parameter.
<mrdocs/Support/Lua.hpp>Param(int64_t value) noexcept;
| Name | Description |
|---|---|
| value | The object to construct from |
Construct a nil parameter.
<mrdocs/Support/Lua.hpp>Param(std::nullptr_t value) noexcept;
| Name | Description |
|---|---|
| value | The object to construct from |
Construct a string parameter (non-owning).
<mrdocs/Support/Lua.hpp>Param(std::string_view s) noexcept;
| Name | Description |
|---|---|
| s | The object to construct from |
Construct from a Lua Value already on the stack.
| Name | Description |
|---|---|
| value | The object to copy construct from |
Construct from a generic DOM value.
| Name | Description |
|---|---|
| value | The object to copy construct from |
Construct a string parameter from C-string.
<mrdocs/Support/Lua.hpp>Param(char const* s) noexcept;
| Name | Description |
|---|---|
| s | The value to construct from |
Construct an integral parameter from an enum.
<mrdocs/Support/Lua.hpp>template<class Enum>
requires std::is_enum_v<Enum>
Param(Enum v) noexcept;
| Name | Description |
|---|---|
| v | The object to construct from |
Construct a boolean parameter from a bool-like type.
<mrdocs/Support/Lua.hpp>template<class Boolean>
requires std::is_same_v<Boolean, bool>
Param(Boolean const& b) noexcept;
| Name | Description |
|---|---|
| b | The object to copy construct from |
Construct a string parameter from a convertible string type.
<mrdocs/Support/Lua.hpp>template<class String>
requires std::is_convertible_v<
String, std::string_view>
Param(String const& s);
| Name | Description |
|---|---|
| s | The object to copy construct from |
Destroy the stored value without throwing.
<mrdocs/Support/Lua.hpp>~Param();
Deleted copy assignment to avoid double pops.
| Name | Description |
|---|---|
| other | The object to copy assign from |
Stored array when kind_ == domArray.
Stored boolean value when kind_ == boolean.
<mrdocs/Support/Lua.hpp>bool b_;
Stored integer value when kind_ == integer.
<mrdocs/Support/Lua.hpp>int i_;
Stack index when kind_ == value.
<mrdocs/Support/Lua.hpp>int index_;
Stored object when kind_ == domObject.
Stored string view when kind_ == string.
<mrdocs/Support/Lua.hpp>std::string_view s_;
Stack scope guard for Lua calls.
<mrdocs/Support/Lua.hpp>class Scope;
Helper that balances the Lua stack for a Context scope.
| Name | Description |
|---|---|
Scope [constructor] | Create a scope that manages Lua stack references. |
~Scope [destructor] | Pop any pending stack references on destruction. |
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. |
| Name | Description |
|---|---|
Access |
Internal tag granting access to lua internals. |
Create a scope that manages Lua stack references.
| Name | Description |
|---|---|
| ctx | Lua context to guard. |
Pop any pending stack references on destruction.
<mrdocs/Support/Lua.hpp>~Scope();
Return a value from the global table if it exists.
<mrdocs/Support/Lua.hpp>Expected<Value>
getGlobal(
std::string_view key,
std::source_location loc = source_location::current());
| Name | Description |
|---|---|
| key | The key to get. |
| loc | The source location of the call site. |
Return the global table.
Load a Lua chunk
<mrdocs/Support/Lua.hpp>Load a Lua chunk
Expected<Function>
loadChunk(
std::string_view luaChunk,
std::source_location loc = source_location::current());
» more...
Load a Lua chunk
Expected<Function>
loadChunk(
std::string_view luaChunk,
zstring chunkName,
std::source_location loc = source_location::current());
» more...
| 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
<mrdocs/Support/Lua.hpp>Expected<Function>
loadChunk(
std::string_view luaChunk,
std::source_location loc = source_location::current());
| Name | Description |
|---|---|
| luaChunk | The Lua chunk to load. |
| loc | The source location of the call site. |
Load a Lua chunk
<mrdocs/Support/Lua.hpp>Expected<Function>
loadChunk(
std::string_view luaChunk,
zstring chunkName,
std::source_location loc = source_location::current());
| 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.
<mrdocs/Support/Lua.hpp>Expected<Function>
loadChunkFromFile(
std::string_view fileName,
std::source_location loc = source_location::current());
| Name | Description |
|---|---|
| fileName | The name of the file to load. |
| loc | The source location of the call site. |
A Lua string.
| Name | Description |
|---|---|
Value | A Lua value. |
| Name | Description |
|---|---|
String [constructor] | Constructors |
call | Invoke the value as a function. |
displayString | Return a string representation. |
get | Retrieve the underlying string view. |
isBoolean | Return true if the value is a boolean. |
isFunction | Return true if the value is a function. |
isNil | Return true if the value is nil. |
isNumber | Return true if the value is numeric. |
isString | Return true if the value is a string. |
isTable | Return true if the value is a table. |
operator() | Invoke the value as a function. |
operator* | Dereference to the underlying string view. |
type | Return the Lua type of this value. |
operator std::string_view | Implicit conversion to string view. |
| Name | Description |
|---|---|
index_ | Stack index where the value is stored. |
scope_ | Scope that owns the stack slot for this value. |
| Name | Description |
|---|---|
Access |
Internal tag granting access to lua internals. |
Constructors
<mrdocs/Support/Lua.hpp>Wrap an existing Lua value as a string.
String(Value value);
» more...
Create a new Lua string from the given view.
explicit
String(std::string_view s);
» more...
Wrap an existing Lua value as a string.
| Name | Description |
|---|---|
| value | The object to construct from |
Create a new Lua string from the given view.
<mrdocs/Support/Lua.hpp>explicit
String(std::string_view s);
| Name | Description |
|---|---|
| s | The object to construct from |
Retrieve the underlying string view.
<mrdocs/Support/Lua.hpp>std::string_view
get() const noexcept;
Dereference to the underlying string view.
<mrdocs/Support/Lua.hpp>std::string_view
operator*() const noexcept;
Implicit conversion to string view.
<mrdocs/Support/Lua.hpp>operator std::string_view() const noexcept;
string_view
A Lua table.
| Name | Description |
|---|---|
Value | A Lua value. |
| Name | Description |
|---|---|
Table [constructor] | Constructors |
call | Invoke the value as a function. |
displayString | Return a string representation. |
get | Retrieve a table entry by key; returns nil if missing. |
isBoolean | Return true if the value is a boolean. |
isFunction | Return true if the value is a function. |
isNil | Return true if the value is nil. |
isNumber | Return true if the value is numeric. |
isString | Return true if the value is a string. |
isTable | Return true if the value is a table. |
operator() | Invoke the value as a function. |
set | Create or replace the value with a key. |
type | Return the Lua type of this value. |
| Name | Description |
|---|---|
index_ | Stack index where the value is stored. |
scope_ | Scope that owns the stack slot for this value. |
| Name | Description |
|---|---|
Access |
Internal tag granting access to lua internals. |
Constructors
<mrdocs/Support/Lua.hpp>Wrap an existing Lua value as a table.
Table(Value value);
» more...
Create an empty table in the given scope.
explicit
Table(Scope& scope);
» more...
Construct a table by copying fields from a DOM object.
Table(
Scope& scope,
dom::Object const& obj);
» more...
Wrap an existing Lua value as a table.
| Name | Description |
|---|---|
| value | The object to construct from |
Create an empty table in the given scope.
| Name | Description |
|---|---|
| scope | The object to copy construct from |
Construct a table by copying fields from a DOM object.
| Name | Description |
|---|---|
| scope | The object to copy construct from |
| obj | A container of key and value pairs. |
Retrieve a table entry by key; returns nil if missing.
| Name | Description |
|---|---|
| key | Table key to look up. |
Create or replace the value with a key.
| Name | Description |
|---|---|
| key | The key to set. |
| value | The value to set. |
A Lua value.
<mrdocs/Support/Lua.hpp>class Value;
| Name | Description |
|---|---|
Value [constructor] | Constructor. |
~Value [destructor] | Destructor. |
call | Invoke the value as a function. |
displayString | Return a string representation. |
isBoolean | Return true if the value is a boolean. |
isFunction | Return true if the value is a function. |
isNil | Return true if the value is nil. |
isNumber | Return true if the value is numeric. |
isString | Return true if the value is a string. |
isTable | Return true if the value is a table. |
operator() | Invoke the value as a function. |
type | Return the Lua type of this value. |
| Name | Description |
|---|---|
Value [constructor] | Create a value referring to a stack slot within a scope. |
| Name | Description |
|---|---|
index_ | Stack index where the value is stored. |
scope_ | Scope that owns the stack slot for this value. |
| Name | Description |
|---|---|
Access |
Internal tag granting access to lua internals. |
Constructor.
<mrdocs/Support/Lua.hpp>Constructor.
Value() noexcept;
» more...
Constructor.
Value(Value const& other);
» more...
Constructor.
Value(Value&& other) noexcept;
» more...
| Name | Description |
|---|---|
| other | The value to copy. |
Constructor.
<mrdocs/Support/Lua.hpp>Value() noexcept;
Default constructed values have no scope or assigned stack index and are equivalent to the value Nil.
Constructor.
The new value will be assigned a new stack index which has the same underlying value as other.
| Name | Description |
|---|---|
| other | The value to copy. |
Constructor.
The newly constructed object will acquire the same stack index, while the moved-from object will become as if default-constructed.
| Name | Description |
|---|---|
| other | The object to move construct from |
Destructor.
<mrdocs/Support/Lua.hpp>~Value();
The Lua value will eventually be removed from the stack.
Invoke the value as a function.
<mrdocs/Support/Lua.hpp>template<class... Args>
Expected<Value>
call(Args&&... args);
If the invocation fails the return value will contain the corresponding error.
| Name | Description |
|---|---|
| args | Zero or more values to pass to the function. |
Return a string representation.
<mrdocs/Support/Lua.hpp>std::string
displayString() const;
This function is used for diagnostics.
Return true if the value is a boolean.
<mrdocs/Support/Lua.hpp>bool
isBoolean() const noexcept;
Return true if the value is a function.
<mrdocs/Support/Lua.hpp>bool
isFunction() const noexcept;
Return true if the value is nil.
<mrdocs/Support/Lua.hpp>bool
isNil() const noexcept;
Return true if the value is numeric.
<mrdocs/Support/Lua.hpp>bool
isNumber() const noexcept;
Return true if the value is a string.
<mrdocs/Support/Lua.hpp>bool
isString() const noexcept;
Return true if the value is a table.
<mrdocs/Support/Lua.hpp>bool
isTable() const noexcept;
Invoke the value as a function.
<mrdocs/Support/Lua.hpp>template<class... Args>
Value
operator()(Args&&... args);
| Name | Description |
|---|---|
| args | Zero or more values to pass to the function. |
Return the Lua type of this value.
Create a value referring to a stack slot within a scope.
| Name | Description |
|---|---|
| position | The value to construct from |
| scope | Stack scope guard for Lua calls. |
Stack index where the value is stored.
<mrdocs/Support/Lua.hpp>int index_;
Scope that owns the stack slot for this value.
A null-terminated string.
<mrdocs/Support/Lua.hpp>class zstring;
| Name | Description |
|---|---|
zstring [constructor] | Constructors |
c_str | Return the underlying C-string pointer. |
Constructors
<mrdocs/Support/Lua.hpp>Construct from string_view (stores an owned copy).
zstring(std::string_view s);
» more...
Construct from std::string without copying.
zstring(std::string const& s);
» more...
Construct from a C-string pointer.
zstring(char const* s) noexcept;
» more...
| Name | Description |
|---|---|
| s | String view to copy. |
Construct from string_view (stores an owned copy).
<mrdocs/Support/Lua.hpp>zstring(std::string_view s);
| Name | Description |
|---|---|
| s | String view to copy. |
Construct from std::string without copying.
<mrdocs/Support/Lua.hpp>zstring(std::string const& s);
| Name | Description |
|---|---|
| s | Source string. |
Construct from a C-string pointer.
<mrdocs/Support/Lua.hpp>zstring(char const* s) noexcept;
| Name | Description |
|---|---|
| s | Null-terminated string. |
Return the underlying C-string pointer.
<mrdocs/Support/Lua.hpp>char const*
c_str() const noexcept;
Types of values.
<mrdocs/Support/Lua.hpp>enum class Type : int;
| 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 |
Reporting utilities (messages, statistics, sinks).
The report namespace owns severity enums, message structs, and output sinks so tooling and libraries emit diagnostics in a uniform, testable format regardless of UI.
| Name | Description |
|---|---|
Located | Parameter type that adds a source location to a value. |
Results | Provides statistics on the number of reported messages. |
| Name | Description |
|---|---|
Level | Severity levels attached to reported messags. |
| Name | Description |
|---|---|
debug | Emit a debug-level diagnostic for troubleshooting. |
error | Emit an error that indicates failure but allows continuation. |
fatal | Emit a fatal error and mark the report as the highest severity. |
getMinimumLevel | Get the minimum threshold level for reporting. |
info | Emit an informational message for users. |
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 | Emit a trace-level diagnostic (verbose, off by default). |
warn | Emit a warning that does not stop execution. |
| Name | Description |
|---|---|
results | Holds current statistics on reported messages. |
Parameter type that adds a source location to a value.
<mrdocs/Support/Report.hpp>template<class T>
struct Located;
| Name | Description |
|---|---|
Located [constructor] | Construct a Located wrapper. |
| Name | Description |
|---|---|
value | Wrapped value. |
where | Source location of the value. |
| Name | Description |
|---|---|
debug | Emit a debug-level diagnostic for troubleshooting. |
error | Emit an error that indicates failure but allows continuation. |
fatal | Emit a fatal error and mark the report as the highest severity. |
info | Emit an informational message for users. |
trace | Emit a trace-level diagnostic (verbose, off by default). |
warn | Emit a warning that does not stop execution. |
Construct a Located wrapper.
<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());
| Name | Description |
|---|---|
| arg | Value to wrap. |
| loc | Source location to associate (defaults to current). |
Wrapped value.
<mrdocs/Support/Report.hpp>T value;
Source location of the value.
<mrdocs/Support/Report.hpp>std::source_location where;
Provides statistics on the number of reported messages.
<mrdocs/Support/Report.hpp>struct Results;
| Name | Description |
|---|---|
debugCount | Number of debug-level messages. |
errorCount | Number of error-level messages. |
fatalCount | Number of fatal-level messages. |
infoCount | Number of info-level messages. |
traceCount | Number of trace-level messages. |
warnCount | Number of warning-level messages. |
Number of debug-level messages.
<mrdocs/Support/Report.hpp>std::size_t debugCount;
Number of error-level messages.
<mrdocs/Support/Report.hpp>std::size_t errorCount;
Number of fatal-level messages.
<mrdocs/Support/Report.hpp>std::size_t fatalCount;
Number of info-level messages.
<mrdocs/Support/Report.hpp>std::size_t infoCount;
Number of trace-level messages.
<mrdocs/Support/Report.hpp>std::size_t traceCount;
Number of warning-level messages.
<mrdocs/Support/Report.hpp>std::size_t warnCount;
Severity levels attached to reported messags.
<mrdocs/Support/Report.hpp>enum class Level : int;
| Name | Description |
|---|---|
trace | Programming trace messages |
debug | Debug messages |
info | Informational messages |
warn | Warning messages |
error | Error messages |
fatal | Fatal error messages |
| Name | Description |
|---|---|
getMinimumLevel | Get the minimum threshold level for reporting. |
log | Format a message to the console. |
print | Report a message to the console. |
setMinimumLevel | Set the minimum threshold level for reporting. |
Emit a debug-level diagnostic for troubleshooting.
<mrdocs/Support/Report.hpp>template<class... Args>
void
debug(
Located<std::string_view> format,
Args&&... args);
| Name | Description |
|---|---|
| format | fmt-style format string. |
| args | Arguments substituted into the format string. |
Emit an error that indicates failure but allows continuation.
<mrdocs/Support/Report.hpp>template<class... Args>
void
error(
Located<std::string_view> format,
Args&&... args);
| Name | Description |
|---|---|
| format | fmt-style format string. |
| args | Arguments substituted into the format string. |
Emit a fatal error and mark the report as the highest severity.
<mrdocs/Support/Report.hpp>template<class... Args>
void
fatal(
Located<std::string_view> format,
Args&&... args);
| Name | Description |
|---|---|
| format | fmt-style format string. |
| args | Arguments substituted into the format string. |
Get the minimum threshold level for reporting.
Emit an informational message for users.
<mrdocs/Support/Report.hpp>template<class... Args>
void
info(
Located<std::string_view> format,
Args&&... args);
| Name | Description |
|---|---|
| format | fmt-style format string. |
| args | Arguments substituted into the format string. |
Format a message to the console.
<mrdocs/Support/Report.hpp>template<class... Args>
void
log(
Level level,
Located<std::string_view> fs,
Args&&... args);
| 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.
<mrdocs/Support/Report.hpp>Report a message to the console.
void
print(std::string const& text);
» more...
Report a message to the console.
void
print(
Level level,
std::string const& text,
std::source_location const* loc = nullptr,
Error const* e = nullptr);
» more...
| 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.
<mrdocs/Support/Report.hpp>void
print(std::string const& text);
| Name | Description |
|---|---|
| text | The message to print. A trailing newline will be added to the message automatically. |
Report a message to the console.
<mrdocs/Support/Report.hpp>void
print(
Level level,
std::string const& text,
std::source_location const* loc = nullptr,
Error const* e = nullptr);
| 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.
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.
| Name | Description |
|---|---|
| level | Severity levels attached to reported messags. |
If true, source location information will be printed with warnings, errors, and fatal messages.
<mrdocs/Support/Report.hpp>void
setSourceLocationWarnings(bool b) noexcept;
| Name | Description |
|---|---|
| b | true to enable source location information, false to disable it. The default value is true. |
Emit a trace-level diagnostic (verbose, off by default).
<mrdocs/Support/Report.hpp>template<class... Args>
void
trace(
Located<std::string_view> format,
Args&&... args);
| Name | Description |
|---|---|
| format | fmt-style format string. |
| args | Arguments substituted into the format string. |
Emit a warning that does not stop execution.
<mrdocs/Support/Report.hpp>template<class... Args>
void
warn(
Located<std::string_view> format,
Args&&... args);
| Name | Description |
|---|---|
| format | fmt-style format string. |
| args | Arguments substituted into the format string. |
Holds current statistics on reported messages.
unordered_map keyed by std::string with transparent hashing.
<mrdocs/ADT/UnorderedStringMap.hpp>template<class T>
using UnorderedStringMap = std::unordered_map<std::string, T, StringHash, std::equal_to>;
unordered_multimap keyed by std::string with transparent hashing.
<mrdocs/ADT/UnorderedStringMap.hpp>template<class T>
using UnorderedStringMultiMap = std::unordered_multimap<std::string, T, StringHash, std::equal_to>;
Alias for add_const_from<From, To>::type.
<mrdocs/Support/TypeTraits.hpp>template<
typename From,
typename To>
using add_const_from_t = add_const_from<From, To>::type;
| Name | Description |
|---|---|
| From | Source type providing const qualifier. |
| To | Destination type to adjust. |
Alias for add_cv_from<From, To>::type.
<mrdocs/Support/TypeTraits.hpp>template<
typename From,
typename To>
using add_cv_from_t = add_cv_from<From, To>::type;
| Name | Description |
|---|---|
| From | Source type providing cv qualifiers. |
| To | Destination type to adjust. |
Alias for add_cvref_from<From, To>::type.
<mrdocs/Support/TypeTraits.hpp>template<
typename From,
typename To>
using add_cvref_from_t = add_cvref_from<From, To>::type;
| Name | Description |
|---|---|
| From | Source type providing cv-ref qualifiers. |
| To | Destination type to adjust. |
Alias for add_lvalue_reference_from<From, To>::type.
<mrdocs/Support/TypeTraits.hpp>template<
typename From,
typename To>
using add_lvalue_reference_from_t = add_lvalue_reference_from<From, To>::type;
| Name | Description |
|---|---|
| From | Source type providing reference qualifier. |
| To | Destination type to adjust. |
Alias for add_reference_from<From, To>::type.
<mrdocs/Support/TypeTraits.hpp>template<
typename From,
typename To>
using add_reference_from_t = add_reference_from<From, To>::type;
| Name | Description |
|---|---|
| From | Source type providing reference qualifier. |
| To | Destination type to adjust. |
Alias for add_rvalue_reference_from<From, To>::type.
<mrdocs/Support/TypeTraits.hpp>template<
typename From,
typename To>
using add_rvalue_reference_from_t = add_rvalue_reference_from<From, To>::type;
| Name | Description |
|---|---|
| From | Source type providing reference qualifier. |
| To | Destination type to adjust. |
Alias for add_volatile_from<From, To>::type.
<mrdocs/Support/TypeTraits.hpp>template<
typename From,
typename To>
using add_volatile_from_t = add_volatile_from<From, To>::type;
| Name | Description |
|---|---|
| From | Source type providing volatile qualifier. |
| To | Destination type to adjust. |
Alias for make_dependent<T, U>::type.
<mrdocs/Support/TypeTraits.hpp>template<
typename T,
typename U>
using make_dependent_t = T;
| Name | Description |
|---|---|
| T | Type to make dependent. |
| U | Dependent parameter. |
Polymorphic visitor for files discovered during traversal.
<mrdocs/Support/Path.hpp>struct AnyFileVisitor;
| Name | Description |
|---|---|
~AnyFileVisitor [destructor] [virtual] | Virtual destructor. |
visitFile [virtual] | Visit a single file path. |
Virtual destructor.
<mrdocs/Support/Path.hpp>virtual
~AnyFileVisitor() = 0;
Visit a single file path.
<mrdocs/Support/Path.hpp>virtual
Expected<void>
visitFile(std::string_view fileName) = 0;
| Name | Description |
|---|---|
| fileName | Path to the file being visited. |
C++ array type (bounded or unbounded).
<mrdocs/Metadata/Type/ArrayType.hpp>struct ArrayType final
: TypeCommonBase<TypeKind::Array>
| Name | Description |
|---|---|
TypeCommonBase<TypeKind::Array> | CRTP base that ties a concrete type to a fixed TypeKind. |
| Name | Description |
|---|---|
operator<=> | Compare arrays by element type and bound. |
| Name |
|---|
isArray |
isAuto |
isDecltype |
isFunction |
isLValueReference |
isMemberPointer |
isNamed |
isPointer |
isRValueReference |
| Name | Description |
|---|---|
Bounds | Optional bound; empty means unknown or dependent. |
ElementType | Element type held by the array. |
| Name |
|---|
kind_id |
| Name | Description |
|---|---|
innerType | Return the inner type. |
innerType | Return the inner type. |
innerTypePtr | Return the inner type. |
innerTypePtr | Return the inner type. |
toString | Render a type to a human-readable string. |
Compare arrays by element type and bound.
<mrdocs/Metadata/Type/ArrayType.hpp>Compare arrays by element type and bound.
std::strong_ordering
operator<=>(ArrayType const& rhs) const;
» more...
Three-way comparison operator
constexpr
auto
operator<=>(TypeCommonBase<mrdocs::TypeKind::Array> const& rhs) const = default;
» more...
Compare arrays by element type and bound.
<mrdocs/Metadata/Type/ArrayType.hpp>std::strong_ordering
operator<=>(ArrayType const& rhs) const;
| Name | Description |
|---|---|
| rhs | The right operand |
Three-way comparison operator
<mrdocs/Metadata/Type/TypeBase.hpp>constexpr
auto
operator<=>(TypeCommonBase<mrdocs::TypeKind::Array> const& rhs) const = default;
| Name | Description |
|---|---|
| rhs | The right operand |
<mrdocs/Metadata/Type/TypeBase.hpp>constexpr
static
bool
isArray() noexcept;
<mrdocs/Metadata/Type/TypeBase.hpp>constexpr
static
bool
isAuto() noexcept;
<mrdocs/Metadata/Type/TypeBase.hpp>constexpr
static
bool
isDecltype() noexcept;
<mrdocs/Metadata/Type/TypeBase.hpp>constexpr
static
bool
isFunction() noexcept;
<mrdocs/Metadata/Type/TypeBase.hpp>constexpr
static
bool
isLValueReference() noexcept;
<mrdocs/Metadata/Type/TypeBase.hpp>constexpr
static
bool
isMemberPointer() noexcept;
<mrdocs/Metadata/Type/TypeBase.hpp>constexpr
static
bool
isNamed() noexcept;
<mrdocs/Metadata/Type/TypeBase.hpp>constexpr
static
bool
isPointer() noexcept;
<mrdocs/Metadata/Type/TypeBase.hpp>constexpr
static
bool
isRValueReference() noexcept;
Optional bound; empty means unknown or dependent.
Element type held by the array.
<mrdocs/Metadata/Type/ArrayType.hpp>Polymorphic<Type> ElementType = Polymorphic<Type>(AutoType{});
A non-owning, read-only view over a contiguous array of T.
<mrdocs/ADT/ArrayView.hpp>template<class T>
class ArrayView;
Similar to std::string_view but for arbitrary element type T.
| Name | Description |
|---|---|
const_iterator | Iterator over elements. |
const_pointer | Pointer to constant element. |
const_reference | Reference to constant element. |
const_reverse_iterator | Const reverse iterator over the view. |
difference_type | Signed iterator difference type. |
iterator | Iterator over elements. |
pointer | Pointer to constant element. |
reference | Reference to constant element. |
reverse_iterator | Reverse iterator over the view. |
size_type | Unsigned size type. |
value_type | Element type referenced by the view. |
| Name | Description |
|---|---|
ArrayView [constructor] | Constructors |
at | Access the element at the specified index with bounds checking. |
back | Return a reference to the last element. |
begin | Return an iterator to the first element. |
cbegin | Return a const iterator to the first element. |
cend | Return a const iterator one past the last element. |
data | Return a pointer to the underlying data. |
drop_back | Return a view with the last n elements removed. |
drop_front | Return a view with the first n elements removed. |
empty | Return true if the view contains no elements. |
end | Return an iterator one past the last element. |
front | Return a reference to the first element. |
length | Return the number of elements in the view. |
operator[] | Access the element at the specified index without bounds checking. |
rbegin | Return a reverse iterator to the last element. |
remove_prefix | Remove n elements from the front of the view. |
remove_suffix | Remove n elements from the back of the view. |
rend | Return a reverse iterator one before the first element. |
size | Return the number of elements in the view. |
slice | Return a subview starting at pos with up to count elements. |
take_back | Return a view containing the last n elements. |
take_front | Return a view containing the first n elements. |
| Name | Description |
|---|---|
npos | Sentinel used by slicing helpers to indicate “until the end”. |
| Name | Description |
|---|---|
operator<=> |
Three-way comparison operator |
operator== |
Equality operator |
| Name | Description |
|---|---|
make_array_view | Create an ArrayView from a C-style array. |
make_array_view | Create an ArrayView from a pointer and count. |
Iterator over elements.
<mrdocs/ADT/ArrayView.hpp>using const_iterator = T const*;
Pointer to constant element.
<mrdocs/ADT/ArrayView.hpp>using const_pointer = T const*;
Reference to constant element.
<mrdocs/ADT/ArrayView.hpp>using const_reference = T const&;
Const reverse iterator over the view.
<mrdocs/ADT/ArrayView.hpp>using const_reverse_iterator = std::reverse_iterator<const_iterator>;
Signed iterator difference type.
<mrdocs/ADT/ArrayView.hpp>using difference_type = std::ptrdiff_t;
Iterator over elements.
<mrdocs/ADT/ArrayView.hpp>using iterator = T const*;
Pointer to constant element.
<mrdocs/ADT/ArrayView.hpp>using pointer = T const*;
Reference to constant element.
<mrdocs/ADT/ArrayView.hpp>using reference = T const&;
Reverse iterator over the view.
<mrdocs/ADT/ArrayView.hpp>using reverse_iterator = std::reverse_iterator<const_iterator>;
Unsigned size type.
<mrdocs/ADT/ArrayView.hpp>using size_type = std::size_t;
Element type referenced by the view.
<mrdocs/ADT/ArrayView.hpp>using value_type = T;
Constructors
<mrdocs/ADT/ArrayView.hpp>Construct an empty view.
constexpr
ArrayView() noexcept = default;
» more...
Construct a view from a C-style array.
template<size_type N>
constexpr
ArrayView(T const(& arr)[]) noexcept;
» more...
Construct a view from a pointer and element count.
constexpr
ArrayView(
T const* data,
size_type count) noexcept;
» more...
Construct a view from a contiguous iterator range of known size.
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;
» more...
| Name | Description |
|---|---|
| arr | The array to view. |
| data | Pointer to the first element. |
| count | Number of elements in the range. |
| first | Iterator to the first element. |
Construct an empty view.
<mrdocs/ADT/ArrayView.hpp>constexpr
ArrayView() noexcept = default;
Construct a view from a C-style array.
<mrdocs/ADT/ArrayView.hpp>template<size_type N>
constexpr
ArrayView(T const(& arr)[]) noexcept;
| Name | Description |
|---|---|
| arr | The array to view. |
Construct a view from a pointer and element count.
<mrdocs/ADT/ArrayView.hpp>constexpr
ArrayView(
T const* data,
size_type count) noexcept;
| Name | Description |
|---|---|
| data | Pointer to the first element. |
| count | Number of elements in the range. |
Construct a view from a contiguous iterator range of known size.
<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;
| Name | Description |
|---|---|
| first | Iterator to the first element. |
| count | Number of elements starting at first. |
Access the element at the specified index with bounds checking.
| Name | Description |
|---|---|
| i | Zero-based index. |
Return a reference to the last element.
Return an iterator to the first element.
Return a const iterator to the first element.
Return a const iterator one past the last element.
Return a pointer to the underlying data.
Return a view with the last n elements removed.
<mrdocs/ADT/ArrayView.hpp>constexpr
ArrayView
drop_back(size_type n) const noexcept;
| Name | Description |
|---|---|
| n | Number of elements to drop from the back. |
Return a view with the first n elements removed.
<mrdocs/ADT/ArrayView.hpp>constexpr
ArrayView
drop_front(size_type n) const noexcept;
| Name | Description |
|---|---|
| n | Number of elements to drop from the front. |
Return true if the view contains no elements.
<mrdocs/ADT/ArrayView.hpp>[[nodiscard]]
constexpr
bool
empty() const noexcept;
true when size is zero, otherwise false.
Return an iterator one past the last element.
Return a reference to the first element.
Return the number of elements in the view.
Access the element at the specified index without bounds checking.
<mrdocs/ADT/ArrayView.hpp>constexpr
const_reference
operator[](size_type i) const noexcept;
| Name | Description |
|---|---|
| i | Zero-based index. |
Return a reverse iterator to the last element.
<mrdocs/ADT/ArrayView.hpp>constexpr
const_reverse_iterator
rbegin() const noexcept;
Remove n elements from the front of the view.
| Name | Description |
|---|---|
| n | Number of elements to drop. |
Remove n elements from the back of the view.
| Name | Description |
|---|---|
| n | Number of elements to drop. |
Return a reverse iterator one before the first element.
<mrdocs/ADT/ArrayView.hpp>constexpr
const_reverse_iterator
rend() const noexcept;
Return the number of elements in the view.
Return a subview starting at pos with up to count elements.
<mrdocs/ADT/ArrayView.hpp>constexpr
ArrayView
slice(
size_type pos,
size_type count = npos) const noexcept;
| Name | Description |
|---|---|
| pos | Starting index within the current view. |
| count | Maximum number of elements to include; use npos for the remainder. |
Return a view containing the last n elements.
<mrdocs/ADT/ArrayView.hpp>constexpr
ArrayView
take_back(size_type n) const noexcept;
n elements (clamped to size).
| Name | Description |
|---|---|
| n | Desired suffix length. |
Return a view containing the first n elements.
<mrdocs/ADT/ArrayView.hpp>constexpr
ArrayView
take_front(size_type n) const noexcept;
n elements (clamped to size).
| Name | Description |
|---|---|
| n | Desired prefix length. |
Sentinel used by slicing helpers to indicate “until the end”.
<mrdocs/ADT/ArrayView.hpp>inline constexpr static
size_type npos = static_cast<size_type>(-1);
Represents auto or decltype(auto) placeholder type.
<mrdocs/Metadata/Type/AutoType.hpp>struct AutoType final
: TypeCommonBase<TypeKind::Auto>
| Name | Description |
|---|---|
TypeCommonBase<TypeKind::Auto> | CRTP base that ties a concrete type to a fixed TypeKind. |
| Name | Description |
|---|---|
operator<=> | Compare auto placeholders by keyword and constraint. |
| Name |
|---|
isArray |
isAuto |
isDecltype |
isFunction |
isLValueReference |
isMemberPointer |
isNamed |
isPointer |
isRValueReference |
| Name | Description |
|---|---|
Constraint | Constraint on the auto type, if any. |
Keyword | Which placeholder keyword appears (auto or decltype(auto)). |
| Name |
|---|
kind_id |
| Name | Description |
|---|---|
innerType | Return the inner type. |
innerType | Return the inner type. |
innerTypePtr | Return the inner type. |
innerTypePtr | Return the inner type. |
toString | Render a type to a human-readable string. |
Compare auto placeholders by keyword and constraint.
<mrdocs/Metadata/Type/AutoType.hpp>Compare auto placeholders by keyword and constraint.
std::strong_ordering
operator<=>(AutoType const& rhs) const;
» more...
Three-way comparison operator
constexpr
auto
operator<=>(TypeCommonBase<mrdocs::TypeKind::Auto> const& rhs) const = default;
» more...
Compare auto placeholders by keyword and constraint.
<mrdocs/Metadata/Type/AutoType.hpp>std::strong_ordering
operator<=>(AutoType const& rhs) const;
| Name | Description |
|---|---|
| rhs | The right operand |
Three-way comparison operator
<mrdocs/Metadata/Type/TypeBase.hpp>constexpr
auto
operator<=>(TypeCommonBase<mrdocs::TypeKind::Auto> const& rhs) const = default;
| Name | Description |
|---|---|
| rhs | The right operand |
<mrdocs/Metadata/Type/TypeBase.hpp>constexpr
static
bool
isArray() noexcept;
<mrdocs/Metadata/Type/TypeBase.hpp>constexpr
static
bool
isAuto() noexcept;
<mrdocs/Metadata/Type/TypeBase.hpp>constexpr
static
bool
isDecltype() noexcept;
<mrdocs/Metadata/Type/TypeBase.hpp>constexpr
static
bool
isFunction() noexcept;
<mrdocs/Metadata/Type/TypeBase.hpp>constexpr
static
bool
isLValueReference() noexcept;
<mrdocs/Metadata/Type/TypeBase.hpp>constexpr
static
bool
isMemberPointer() noexcept;
<mrdocs/Metadata/Type/TypeBase.hpp>constexpr
static
bool
isNamed() noexcept;
<mrdocs/Metadata/Type/TypeBase.hpp>constexpr
static
bool
isPointer() noexcept;
<mrdocs/Metadata/Type/TypeBase.hpp>constexpr
static
bool
isRValueReference() noexcept;
Constraint on the auto type, if any.
<mrdocs/Metadata/Type/AutoType.hpp>Optional<Polymorphic<Name>> Constraint = std::nullopt;
Which placeholder keyword appears (auto or decltype(auto)).
Base class for accessing an empty Expected.
<mrdocs/Support/Expected.hpp>template<class E>
class BadExpectedAccess
: public BadExpectedAccess<void>
Exception thrown when reading the error of an Expected with a value.
| Name | Description |
|---|---|
BadExpectedAccess<void> | Exception thrown when reading the value of an empty Expected. |
| Name | Description |
|---|---|
BadExpectedAccess [constructor] | Construct with the unexpected error value. |
operator= | |
error | error overloads |
what [virtual] | Return a diagnostic string. |
| Name | Description |
|---|---|
operator= | Assignment operators |
Construct with the unexpected error value.
<mrdocs/Support/Expected.hpp>explicit
BadExpectedAccess(E e);
| Name | Description |
|---|---|
| e | The object to construct from |
error overloads
<mrdocs/Support/Expected.hpp>Access the contained error by lvalue reference.
[[nodiscard]]
E&
error() & noexcept;
» more...
Access the contained error by const lvalue reference.
[[nodiscard]]
E const&
error() const & noexcept;
» more...
Access the contained error by rvalue reference.
[[nodiscard]]
E&&
error() && noexcept;
» more...
Access the contained error by const rvalue reference.
[[nodiscard]]
E const&&
error() const && noexcept;
» more...
Access the contained error by lvalue reference.
<mrdocs/Support/Expected.hpp>[[nodiscard]]
E&
error() & noexcept;
Access the contained error by const lvalue reference.
<mrdocs/Support/Expected.hpp>[[nodiscard]]
E const&
error() const & noexcept;
Access the contained error by rvalue reference.
<mrdocs/Support/Expected.hpp>[[nodiscard]]
E&&
error() && noexcept;
Access the contained error by const rvalue reference.
<mrdocs/Support/Expected.hpp>[[nodiscard]]
E const&&
error() const && noexcept;
Exception thrown when reading the value of an empty Expected.
<mrdocs/Support/Expected.hpp>template<>
class BadExpectedAccess<void>
: public std::exception
| Name | Description |
|---|---|
std::exception |
| Name | Description |
|---|---|
operator= | |
what [virtual] | Return a diagnostic string. |
| Name | Description |
|---|---|
BadExpectedAccess [constructor] | Constructors |
~BadExpectedAccess [destructor] [virtual] | Virtual destructor. |
operator= | Assignment operators |
| Name | Description |
|---|---|
BadExpectedAccess
| Base class for accessing an empty Expected. |
<__exception/exception.h>[[__visibility__, __exclude_from_explicit_instantiation__, __abi_tag__]]
constexpr
exception&
operator=(exception const& value) noexcept = default;
Return a diagnostic string.
<mrdocs/Support/Expected.hpp>[[nodiscard]]
virtual
char const*
what() const noexcept override;
Constructors
<mrdocs/Support/Expected.hpp>Default constructor.
constexpr
BadExpectedAccess() noexcept = default;
» more...
Copy constructor.
constexpr
BadExpectedAccess(BadExpectedAccess<void> const& other) = default;
» more...
Move constructor.
constexpr
BadExpectedAccess(BadExpectedAccess<void>&& other) = default;
» more...
Default constructor.
<mrdocs/Support/Expected.hpp>constexpr
BadExpectedAccess() noexcept = default;
Copy constructor.
<mrdocs/Support/Expected.hpp>constexpr
BadExpectedAccess(BadExpectedAccess<void> const& other) = default;
| Name | Description |
|---|---|
| other | The object to copy construct from |
Move constructor.
<mrdocs/Support/Expected.hpp>constexpr
BadExpectedAccess(BadExpectedAccess<void>&& other) = default;
| Name | Description |
|---|---|
| other | The object to move construct from |
Virtual destructor.
<mrdocs/Support/Expected.hpp>constexpr
virtual
~BadExpectedAccess() override = default;
Assignment operators
<mrdocs/Support/Expected.hpp>Copy assignment.
constexpr
BadExpectedAccess<void>&
operator=(BadExpectedAccess<void> const& other) = default;
» more...
Move assignment.
constexpr
BadExpectedAccess<void>&
operator=(BadExpectedAccess<void>&& other) = default;
» more...
Copy assignment.
<mrdocs/Support/Expected.hpp>constexpr
BadExpectedAccess<void>&
operator=(BadExpectedAccess<void> const& other) = default;
| Name | Description |
|---|---|
| other | The object to copy assign from |
Move assignment.
<mrdocs/Support/Expected.hpp>constexpr
BadExpectedAccess<void>&
operator=(BadExpectedAccess<void>&& other) = default;
| Name | Description |
|---|---|
| other | The object to move assign from |
Metadata for a direct base.
<mrdocs/Metadata/Symbol/RecordBase.hpp>struct BaseInfo;
| Name | Description |
|---|---|
BaseInfo [constructor] [deleted] | Constructors |
| Name | Description |
|---|---|
Access | The access specifier for the base. |
IsVirtual | Whether the base is virtual. |
Type | The base type. |
Constructors
<mrdocs/Metadata/Symbol/RecordBase.hpp>Bases must be explicitly described.
BaseInfo() = delete;
» more...
Create a base description.
BaseInfo(
Polymorphic<Type>&& type,
AccessKind const access,
bool const is_virtual);
» more...
| Name | Description |
|---|---|
| type | The base type. |
| access | Declared access specifier. |
| is_virtual | Whether the base is virtual. |
Bases must be explicitly described.
<mrdocs/Metadata/Symbol/RecordBase.hpp>BaseInfo() = delete;
Create a base description.
<mrdocs/Metadata/Symbol/RecordBase.hpp>BaseInfo(
Polymorphic<Type>&& type,
AccessKind const access,
bool const is_virtual);
| Name | Description |
|---|---|
| type | The base type. |
| access | Declared access specifier. |
| is_virtual | Whether the base is virtual. |
The access specifier for the base.
<mrdocs/Metadata/Symbol/RecordBase.hpp>AccessKind Access = AccessKind::Public;
Whether the base is virtual.
<mrdocs/Metadata/Symbol/RecordBase.hpp>bool IsVirtual = false;
The base type.
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.
<mrdocs/Metadata/Symbol/Concept.hpp>struct ConceptSymbol final
: SymbolCommonBase<SymbolKind::Concept>
| Name | Description |
|---|---|
SymbolCommonBase<SymbolKind::Concept> | Base class for providing variant discriminator functions. |
| Name | Description |
|---|---|
ConceptSymbol [constructor] | Construct a concept symbol with its ID. |
operator<=> | Compare concept symbols by base info, template, and constraint. |
| Name |
|---|
isConcept |
isEnum |
isEnumConstant |
isFunction |
isGuide |
isNamespace |
isNamespaceAlias |
isOverloads |
isRecord |
isTypedef |
isUsing |
isVariable |
| Name | Description |
|---|---|
Constraint | The concepts constraint-expression |
Template | The concepts template parameters |
| Name |
|---|
kind_id |
| Name | Description |
|---|---|
canMerge | Check whether two symbols may be merged. |
getPrimaryLocation | Determine a location to use when none is explicitly chosen. |
merge | Merges two Symbol objects. |
merge | Merge another ConceptSymbol into this one. |
Construct a concept symbol with its ID.
<mrdocs/Metadata/Symbol/Concept.hpp>explicit
ConceptSymbol(SymbolID const& ID) noexcept;
| Name | Description |
|---|---|
| ID | The object to copy construct from |
Compare concept symbols by base info, template, and constraint.
<mrdocs/Metadata/Symbol/Concept.hpp>Compare concept symbols by base info, template, and constraint.
std::strong_ordering
operator<=>(ConceptSymbol const& other) const;
» more...
Three-way comparison operator
auto
operator<=>(SymbolCommonBase<mrdocs::SymbolKind::Concept> const& rhs) const = default;
» more...
Compare concept symbols by base info, template, and constraint.
<mrdocs/Metadata/Symbol/Concept.hpp>std::strong_ordering
operator<=>(ConceptSymbol const& other) const;
| Name | Description |
|---|---|
| other | The right operand |
Three-way comparison operator
<mrdocs/Metadata/Symbol/SymbolBase.hpp>auto
operator<=>(SymbolCommonBase<mrdocs::SymbolKind::Concept> const& rhs) const = default;
| Name | Description |
|---|---|
| rhs | The right operand |
<mrdocs/Metadata/Symbol/SymbolNodes.inc>constexpr
static
bool
isConcept() noexcept;
<mrdocs/Metadata/Symbol/SymbolNodes.inc>constexpr
static
bool
isEnum() noexcept;
<mrdocs/Metadata/Symbol/SymbolNodes.inc>constexpr
static
bool
isEnumConstant() noexcept;
<mrdocs/Metadata/Symbol/SymbolNodes.inc>constexpr
static
bool
isFunction() noexcept;
<mrdocs/Metadata/Symbol/SymbolNodes.inc>constexpr
static
bool
isGuide() noexcept;
<mrdocs/Metadata/Symbol/SymbolNodes.inc>constexpr
static
bool
isNamespace() noexcept;
<mrdocs/Metadata/Symbol/SymbolNodes.inc>constexpr
static
bool
isNamespaceAlias() noexcept;
<mrdocs/Metadata/Symbol/SymbolNodes.inc>constexpr
static
bool
isOverloads() noexcept;
<mrdocs/Metadata/Symbol/SymbolNodes.inc>constexpr
static
bool
isRecord() noexcept;
<mrdocs/Metadata/Symbol/SymbolNodes.inc>constexpr
static
bool
isTypedef() noexcept;
<mrdocs/Metadata/Symbol/SymbolNodes.inc>constexpr
static
bool
isUsing() noexcept;
<mrdocs/Metadata/Symbol/SymbolNodes.inc>constexpr
static
bool
isVariable() noexcept;
The concepts constraint-expression
The concepts template parameters
Configuration used to generate the Corpus and Docs
<mrdocs/Config.hpp>class Config;
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.
| Name | Description |
|---|---|
Settings | Settings values used to generate the Corpus and Docs |
| 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. |
| Name | Description |
|---|---|
Config [constructor] | Construct an empty configuration interface. Implementations populate settings in derived classes. |
Settings values used to generate the Corpus and Docs
<mrdocs/Config.hpp>struct Settings
: PublicSettings
| Name | Description |
|---|---|
PublicSettings |
| Name | Description |
|---|---|
OptionProperties | Option validation traits |
| 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 |
| Name | Description |
|---|---|
configDir | Full path to the config file directory |
normalize | Normalize the configuration values with a visitor |
operator-> | Provide pointer-like access to settings fields. |
outputDir | Full path to the output directory |
visit | Visit all options |
| Name | Description |
|---|---|
fromString | |
load | load overloads |
load_file | Loads the public configuration settings from the specified file. |
toString |
| Name | Description |
|---|---|
addons | Path to the Addons directory |
addonsSupplemental | Additional addons layered on top of the base addons |
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. |
copycss | Copy local stylesheets when linking |
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 |
linkcss | Link stylesheets instead of embedding them |
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 |
noDefaultStyles | Disable the bundled default stylesheet |
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 |
stylesdir | Directory for linked stylesheets |
stylesheets | Ordered list of stylesheets to apply to HTML output |
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 |
| Name | Description |
|---|---|
MappingTraits |
Option validation traits
<mrdocs/PublicSettings.hpp>struct OptionProperties;
Enum for "base-member-inheritance" options
<mrdocs/PublicSettings.hpp>enum class BaseMemberInheritance : int;
This enumeration value is valid for the inherit-base-members option
Enum for "generator" options
<mrdocs/PublicSettings.hpp>enum class Generator : int;
This enumeration value is valid for the generator option
Enum for "log-level" options
<mrdocs/PublicSettings.hpp>enum class LogLevel : int;
This enumeration value is valid for the log-level option
Option Type
<mrdocs/PublicSettings.hpp>enum class OptionType : int;
Enum for "sort-symbol-by" options
<mrdocs/PublicSettings.hpp>enum class SortSymbolBy : int;
These enumeration values are valid for the following options:
- sort-members-by - sort-namespace-members-by
Full path to the config file directory
<mrdocs/Config.hpp>std::string
configDir() const;
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.
Normalize the configuration values with a visitor
<mrdocs/Config.hpp>Normalize the configuration values with a visitor
Expected<void>
normalize(ReferenceDirectories const& dirs);
» more...
Normalize the configuration values with a visitor
template<class F>
Expected<void>
normalize(
ReferenceDirectories const& dirs,
F&& f);
» more...
| Name | Description |
|---|---|
| dirs | The reference directories to resolve paths |
| f | The visitor |
Normalize the configuration values with a visitor
<mrdocs/Config.hpp>Expected<void>
normalize(ReferenceDirectories const& dirs);
This function normalizes and validates the configuration values.
| Name | Description |
|---|---|
| dirs | The reference directories to resolve paths |
Normalize the configuration values with a visitor
<mrdocs/PublicSettings.hpp>template<class F>
Expected<void>
normalize(
ReferenceDirectories const& dirs,
F&& f);
This function normalizes and validates the configuration values.
| Name | Description |
|---|---|
| dirs | The reference directories to resolve paths |
| f | The visitor |
Provide pointer-like access to settings fields.
Full path to the output directory
<mrdocs/Config.hpp>std::string
outputDir() const;
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.
Visit all options
<mrdocs/PublicSettings.hpp>Visit all options
template<class F>
void
visit(F&& f);
» more...
Visit all options
template<class F>
void
visit(F&& f) const;
» more...
| Name | Description |
|---|---|
| f | The visitor |
Visit all options
<mrdocs/PublicSettings.hpp>template<class F>
void
visit(F&& f);
| Name | Description |
|---|---|
| f | The visitor |
Visit all options
<mrdocs/PublicSettings.hpp>template<class F>
void
visit(F&& f) const;
| Name | Description |
|---|---|
| f | The visitor |
<mrdocs/PublicSettings.hpp>constexpr
static
bool
fromString(
std::string_view const str,
BaseMemberInheritance& e);
» more...
constexpr
static
bool
fromString(
std::string_view const str,
Generator& e);
» more...
constexpr
static
bool
fromString(
std::string_view const str,
LogLevel& e);
» more...
constexpr
static
bool
fromString(
std::string_view const str,
SortSymbolBy& e);
» more...
<mrdocs/PublicSettings.hpp>constexpr
static
bool
fromString(
std::string_view const str,
BaseMemberInheritance& e);
<mrdocs/PublicSettings.hpp>constexpr
static
bool
fromString(
std::string_view const str,
Generator& e);
<mrdocs/PublicSettings.hpp>constexpr
static
bool
fromString(
std::string_view const str,
LogLevel& e);
<mrdocs/PublicSettings.hpp>constexpr
static
bool
fromString(
std::string_view const str,
SortSymbolBy& e);
load overloads
<mrdocs/PublicSettings.hpp>Load the configuration from a YAML string
static
Expected<void>
load(
PublicSettings& s,
std::string_view configYaml);
» more...
Loads the public configuration settings from the specified YAML file.
static
Expected<void>
load(
Config::Settings& s,
std::string_view configYaml,
ReferenceDirectories const& dirs);
» more...
| 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
<mrdocs/PublicSettings.hpp>static
Expected<void>
load(
PublicSettings& s,
std::string_view configYaml);
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.
| 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.
<mrdocs/Config.hpp>static
Expected<void>
load(
Config::Settings& s,
std::string_view configYaml,
ReferenceDirectories const& dirs);
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.
| 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.
<mrdocs/Config.hpp>static
Expected<void>
load_file(
Config::Settings& s,
std::string_view configPath,
ReferenceDirectories const& dirs);
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.
| 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. |
<mrdocs/PublicSettings.hpp>constexpr
static
std::string_view
toString(BaseMemberInheritance const e);
» more...
constexpr
static
std::string_view
toString(Generator const e);
» more...
constexpr
static
std::string_view
toString(LogLevel const e);
» more...
constexpr
static
std::string_view
toString(SortSymbolBy const e);
» more...
<mrdocs/PublicSettings.hpp>constexpr
static
std::string_view
toString(BaseMemberInheritance const e);
<mrdocs/PublicSettings.hpp>constexpr
static
std::string_view
toString(Generator const e);
<mrdocs/PublicSettings.hpp>constexpr
static
std::string_view
toString(LogLevel const e);
<mrdocs/PublicSettings.hpp>constexpr
static
std::string_view
toString(SortSymbolBy const e);
Path to the Addons directory
<mrdocs/PublicSettings.hpp>std::string addons;
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.
Additional addons layered on top of the base addons
<mrdocs/PublicSettings.hpp>std::vector<std::string> addonsSupplemental;
Optional list of supplemental addons directories that are loaded after the base addons (built-in or replacement).
Files in later supplemental directories override files from earlier ones and from the base addons.
Use this to add or override a few templates/helpers without copying the entire addons tree.
command is required.
<mrdocs/PublicSettings.hpp>bool autoBrief = true;
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
<mrdocs/PublicSettings.hpp>bool autoFunctionMetadata = true;
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
<mrdocs/PublicSettings.hpp>bool autoRelates = true;
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
<mrdocs/PublicSettings.hpp>std::string baseUrl;
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
<mrdocs/PublicSettings.hpp>std::string cmake;
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
<mrdocs/PublicSettings.hpp>std::vector<std::string> cmdLineInputs;
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
<mrdocs/PublicSettings.hpp>std::string compilationDatabase;
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
<mrdocs/PublicSettings.hpp>unsigned int concurrency = 0;
The desired level of concurrency: 0 for hardware-suggested.
Mr.Docs configuration file
<mrdocs/PublicSettings.hpp>std::string config;
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.
<mrdocs/Config.hpp>std::string configYaml;
Copy local stylesheets when linking
<mrdocs/PublicSettings.hpp>bool copycss = true;
When linkcss is true, copy bundled and local stylesheet files into the output under stylesdir.
Remote URLs are not copied.
Set to false to skip copying.
Full path to the current working directory
<mrdocs/Config.hpp>std::string cwdDir = ".";
This string will always be native style and have a trailing directory separator.
Additional defines passed to the compiler
<mrdocs/PublicSettings.hpp>std::vector<std::string> defines;
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
<mrdocs/PublicSettings.hpp>bool embedded = false;
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
<mrdocs/PublicSettings.hpp>std::vector<std::string> exclude;
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
<mrdocs/PublicSettings.hpp>std::vector<PathGlobPattern> excludePatterns;
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
<mrdocs/PublicSettings.hpp>std::vector<SymbolGlobPattern> excludeSymbols;
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
<mrdocs/PublicSettings.hpp>bool extractAll = true;
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
<mrdocs/PublicSettings.hpp>bool extractAnonymousNamespaces = true;
Determine whether symbols in anonymous namespaces should be extracted.
Extraction policy for empty namespaces
<mrdocs/PublicSettings.hpp>bool extractEmptyNamespaces = false;
Determine whether empty namespaces without documentation should be extracted.
Extraction policy for friend functions and classes
<mrdocs/PublicSettings.hpp>bool extractFriends = true;
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
<mrdocs/PublicSettings.hpp>bool extractImplicitSpecializations = true;
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
<mrdocs/PublicSettings.hpp>bool extractLocalClasses = true;
Determine whether records only defined locally in source files should be extracted.
Extraction policy for private class members
<mrdocs/PublicSettings.hpp>bool extractPrivate = false;
Determine whether private class members should be extracted
Extraction policy for private base classes
<mrdocs/PublicSettings.hpp>bool extractPrivateBases = false;
Determine whether private base classes should be extracted
Extraction policy for private virtual methods of a class
<mrdocs/PublicSettings.hpp>bool extractPrivateVirtual = false;
Determine whether private virtual methods of a class should be extracted
Extraction policy for static members of a file
<mrdocs/PublicSettings.hpp>bool extractStatic = false;
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
<mrdocs/PublicSettings.hpp>std::vector<PathGlobPattern> filePatterns;
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
<mrdocs/PublicSettings.hpp>Generator generator = Generator::Adoc;
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
<mrdocs/PublicSettings.hpp>bool globalNamespaceIndex = true;
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
<mrdocs/PublicSettings.hpp>bool ignoreFailures = false;
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
<mrdocs/PublicSettings.hpp>bool ignoreMapErrors = false;
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"
<mrdocs/PublicSettings.hpp>std::vector<SymbolGlobPattern> implementationDefined;
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
<mrdocs/PublicSettings.hpp>std::vector<SymbolGlobPattern> includeSymbols;
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
<mrdocs/PublicSettings.hpp>std::vector<std::string> includes;
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
<mrdocs/PublicSettings.hpp>BaseMemberInheritance inheritBaseMembers = BaseMemberInheritance::CopyDependencies;
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
<mrdocs/PublicSettings.hpp>std::vector<std::string> input;
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
<mrdocs/PublicSettings.hpp>bool legibleNames = true;
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
<mrdocs/PublicSettings.hpp>std::vector<std::string> libcIncludes;
When use-system-libc is disabled, the C standard library headers are available in these paths.
Link stylesheets instead of embedding them
<mrdocs/PublicSettings.hpp>bool linkcss = false;
When set to true, stylesheets are linked with <link> tags instead of being inlined.
Links use stylesdir plus the stylesheet name (e.g.
css/custom.css).
Local styles are copied unless copycss is false; remote URLs are linked as-is.
The minimum reporting level
<mrdocs/PublicSettings.hpp>LogLevel logLevel = LogLevel::Info;
The reporting level determines the amount of information displayed during the generation of the documentation.
Include path prefixes allowed to be missing
<mrdocs/PublicSettings.hpp>std::vector<std::string> missingIncludePrefixes;
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
<mrdocs/PublicSettings.hpp>std::map<std::string, std::string> missingIncludeShims;
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
<mrdocs/Config.hpp>std::string mrdocsRootDir;
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
<mrdocs/PublicSettings.hpp>bool multipage = true;
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.
Disable the bundled default stylesheet
<mrdocs/PublicSettings.hpp>bool noDefaultStyles = false;
When set to true, the bundled stylesheet is not applied.
Combine with an empty stylesheets list to emit no styles at all.
Directory or file for generating output
<mrdocs/PublicSettings.hpp>std::string output;
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
<mrdocs/PublicSettings.hpp>bool overloads = true;
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
<mrdocs/PublicSettings.hpp>bool recursive = true;
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
<mrdocs/PublicSettings.hpp>unsigned int report = -1;
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".
<mrdocs/PublicSettings.hpp>std::vector<SymbolGlobPattern> seeBelow;
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
<mrdocs/PublicSettings.hpp>bool sfinae = true;
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
<mrdocs/PublicSettings.hpp>bool showEnumConstants = false;
When set to true, MrDocs creates a page for each enum constant in the documentation.
Show namespace pages in the documentation
<mrdocs/PublicSettings.hpp>bool showNamespaces = true;
When set to true, MrDocs creates a page for each namespace in the documentation.
Sort the members of a record
<mrdocs/PublicSettings.hpp>bool sortMembers = true;
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
<mrdocs/PublicSettings.hpp>bool sortMembersAssignment1St = true;
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
<mrdocs/PublicSettings.hpp>SortSymbolBy sortMembersBy = SortSymbolBy::Name;
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
<mrdocs/PublicSettings.hpp>bool sortMembersConversionLast = true;
When set to true, conversion operators are sorted last in the list of members of a record or namespace.
Sort constructors first
<mrdocs/PublicSettings.hpp>bool sortMembersCtors1St = true;
When set to true, constructors are sorted first in the list of members of a record.
Sort destructors first
<mrdocs/PublicSettings.hpp>bool sortMembersDtors1St = true;
When set to true, destructors are sorted first in the list of members of a record.
Sort relational operators last
<mrdocs/PublicSettings.hpp>bool sortMembersRelationalLast = true;
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
<mrdocs/PublicSettings.hpp>SortSymbolBy sortNamespaceMembersBy = SortSymbolBy::Name;
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
<mrdocs/PublicSettings.hpp>std::string sourceRoot;
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
<mrdocs/PublicSettings.hpp>std::vector<std::string> stdlibIncludes;
When use-system-stdlib is disabled, the C++ standard library headers are available in these paths.
Directory for linked stylesheets
<mrdocs/PublicSettings.hpp>std::string stylesdir;
Directory used to build the href for linked stylesheets when linkcss is true.
Defaults to css.
The directory is created under the output root when copying local styles (e.g.
css/mrdocs-default.css).
Ordered list of stylesheets to apply to HTML output
<mrdocs/PublicSettings.hpp>std::vector<std::string> stylesheets;
Ordered list of stylesheet names or paths.
If empty, the bundled stylesheet is used.
Entries can be local paths or remote URLs; remote URLs are only linked when linkcss is true.
Inline mode embeds local styles; link mode emits <link> tags for each entry and copies local files.
System include paths
<mrdocs/PublicSettings.hpp>std::vector<std::string> systemIncludes;
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
<mrdocs/PublicSettings.hpp>std::string tagfile;
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
<mrdocs/PublicSettings.hpp>bool useSystemLibc = false;
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
<mrdocs/PublicSettings.hpp>bool useSystemStdlib = false;
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
<mrdocs/PublicSettings.hpp>bool verbose = false;
Verbose output.
When set to true, MrDocs outputs additional information during the generation of the documentation.
Treat warnings as errors
<mrdocs/PublicSettings.hpp>bool warnAsError = false;
When set to true, MrDocs treats warnings as errors and stops the generation of the documentation.
Warn if a documentation reference is broken
<mrdocs/PublicSettings.hpp>bool warnBrokenRef = true;
When set to true, MrDocs outputs a warning message if a reference in the documentation is broken.
Warn if documentation has errors
<mrdocs/PublicSettings.hpp>bool warnIfDocError = true;
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
<mrdocs/PublicSettings.hpp>bool warnIfUndocEnumVal = true;
When set to true, MrDocs outputs a warning message if an enum value is not documented.
Warn if symbols are not documented
<mrdocs/PublicSettings.hpp>bool warnIfUndocumented = true;
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
<mrdocs/PublicSettings.hpp>bool warnNoParamdoc = true;
When set to true, MrDocs outputs a warning message if a named function parameter is not documented.
Warn if documented functions have unnamed parameters
<mrdocs/PublicSettings.hpp>bool warnUnnamedParam = false;
When set to true, MrDocs outputs a warning message if a documented function has a parameter that is not named.
Enable warning messages
<mrdocs/PublicSettings.hpp>bool warnings = true;
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.
<mrdocs/Config.hpp>virtual
~Config() noexcept = 0;
Return a DOM object representing the configuration keys.
The object is invalidated when the configuration is moved or destroyed.
Return the settings used to generate the Corpus and Docs.
Return the settings used to generate the Corpus and Docs.
Return a pool of threads for executing work.
Construct an empty configuration interface. Implementations populate settings in derived classes.
<mrdocs/Config.hpp>Config() noexcept;
Represents an expression with a (possibly known) value
<mrdocs/Metadata/Expression.hpp>template<typename T>
struct ConstantExprInfo
: ExprInfo
| Name | Description |
|---|---|
ExprInfo | Represents an expression |
| Name | Description |
|---|---|
type | The underlying type of the expression |
| Name | Description |
|---|---|
asExpr | View this object as its base expression. |
operator<=> | Three-way comparison operators |
| Name | Description |
|---|---|
Value | The expressions value, if it is known |
Written | The expression, as written |
| Name | Description |
|---|---|
merge | Merge metadata from another expression. |
merge | Merge metadata from another constant expression. |
The underlying type of the expression
<mrdocs/Metadata/Expression.hpp>using type = T;
Three-way comparison operators
<mrdocs/Metadata/Expression.hpp>Order constant expressions by written form and value.
auto
operator<=>(ConstantExprInfo const& rhs) const = default;
» more...
Order expressions by written form.
constexpr
auto
operator<=>(ExprInfo const& rhs) const = default;
» more...
Order constant expressions by written form and value.
<mrdocs/Metadata/Expression.hpp>auto
operator<=>(ConstantExprInfo const& rhs) const = default;
| Name | Description |
|---|---|
| rhs | The right operand |
Order expressions by written form.
<mrdocs/Metadata/Expression.hpp>constexpr
auto
operator<=>(ExprInfo const& rhs) const = default;
| Name | Description |
|---|---|
| rhs | The right operand |
The expressions value, if it is known
The value of an expression will be unknown if it is e.g. dependent on a template parameter
Non-type template argument.
<mrdocs/Metadata/TArg/ConstantTArg.hpp>struct ConstantTArg final
: TArgCommonBase<TArgKind::Constant>
| Name | Description |
|---|---|
TArgCommonBase<TArgKind::Constant> | CRTP base that fixes the argument kind. |
| Name | Description |
|---|---|
operator<=> | Compare constant arguments by expression. |
| Name |
|---|
isConstant |
isTemplate |
isType |
| Name | Description |
|---|---|
Value | Template argument expression. |
| Name |
|---|
kind_id |
| Name | Description |
|---|---|
toString | Convert a template argument to a human-readable string. |
Compare constant arguments by expression.
<mrdocs/Metadata/TArg/ConstantTArg.hpp>constexpr
auto
operator<=>(ConstantTArg const& rhs) const = default;
| Name | Description |
|---|---|
| rhs | The right operand |
<mrdocs/Metadata/TArg/TArgBase.hpp>constexpr
static
bool
isConstant() noexcept;
<mrdocs/Metadata/TArg/TArgBase.hpp>constexpr
static
bool
isTemplate() noexcept;
<mrdocs/Metadata/TArg/TArgBase.hpp>constexpr
static
bool
isType() noexcept;
Template argument expression.
A constant template parameter
<mrdocs/Metadata/TParam/ConstantTParam.hpp>struct ConstantTParam final
: TParamCommonBase<TParamKind::Constant>
Before C++26, constant template parameters were called non-type template parameter in the standard wording. The terminology was changed by P2841R6 / PR#7587.
| Name | Description |
|---|---|
TParamCommonBase<TParamKind::Constant> | CRTP base that fixes the parameter kind. |
| Name | Description |
|---|---|
operator<=> | Compare constant parameters by type and defaults. |
| Name |
|---|
isConstant |
isTemplate |
isType |
| Name | Description |
|---|---|
Type | Type of the non-type template parameter |
| Name |
|---|
kind_id |
Compare constant parameters by type and defaults.
<mrdocs/Metadata/TParam/ConstantTParam.hpp>Compare constant parameters by type and defaults.
std::strong_ordering
operator<=>(ConstantTParam const& rhs) const;
» more...
Three-way comparison operator
auto
operator<=>(TParamCommonBase<mrdocs::TParamKind::Constant> const& rhs) const = default;
» more...
Compare constant parameters by type and defaults.
<mrdocs/Metadata/TParam/ConstantTParam.hpp>std::strong_ordering
operator<=>(ConstantTParam const& rhs) const;
| Name | Description |
|---|---|
| rhs | The right operand |
Three-way comparison operator
<mrdocs/Metadata/TParam/TParamBase.hpp>auto
operator<=>(TParamCommonBase<mrdocs::TParamKind::Constant> const& rhs) const = default;
| Name | Description |
|---|---|
| rhs | The right operand |
<mrdocs/Metadata/TParam/TParamBase.hpp>constexpr
static
bool
isConstant() noexcept;
<mrdocs/Metadata/TParam/TParamBase.hpp>constexpr
static
bool
isTemplate() noexcept;
<mrdocs/Metadata/TParam/TParamBase.hpp>constexpr
static
bool
isType() noexcept;
Type of the non-type template parameter
<mrdocs/Metadata/TParam/ConstantTParam.hpp>Polymorphic<Type> Type = Polymorphic<struct Type>(AutoType{});
The collection of declarations in extracted form.
<mrdocs/Corpus.hpp>class Corpus;
| Name | Description |
|---|---|
TraverseOptions | Options to traverse the members of an Symbol. |
iterator | The iterator type for the index of all symbols. |
| 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 |
| Name | Description |
|---|---|
config | The configuration used to generate this corpus. |
| Name | Description |
|---|---|
Corpus [constructor] | Create a corpus using the provided configuration. |
| Name | Description |
|---|---|
getParents | Return a list of the parent symbols of the specified Symbol. |
Options to traverse the members of an Symbol.
<mrdocs/Corpus.hpp>struct TraverseOptions;
| 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
<mrdocs/Corpus.hpp>bool ordered = false;
Whether to skip inherited members whose parent is not the Symbol
<mrdocs/Corpus.hpp>bool recursive = false;
Whether to skip inherited members whose parent is not the Symbol
<mrdocs/Corpus.hpp>bool skipInherited = false;
The iterator type for the index of all symbols.
<mrdocs/Corpus.hpp>class iterator;
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.
| Name | Description |
|---|---|
const_pointer | Pointer to const value. |
const_reference | Reference to const value. |
difference_type | Signed difference type. |
pointer | Pointer to value. |
reference | Reference to value. |
size_type | Unsigned size type. |
value_type | Value type yielded by the iterator. |
| Name | Description |
|---|---|
iterator [constructor] | Constructors |
operator= | Copy assignment. |
operator* | Dereference to the current symbol. |
operator++ | Increment operators |
operator-> | Pointer-like access to the current symbol. |
operator== | Equality comparison. |
operator!= | Inequality comparison. |
Pointer to const value.
Reference to const value.
Signed difference type.
<mrdocs/Corpus.hpp>using difference_type = std::ptrdiff_t;
Pointer to value.
Reference to value.
Unsigned size type.
<mrdocs/Corpus.hpp>using size_type = std::size_t;
Value type yielded by the iterator.
Constructors
<mrdocs/Corpus.hpp>Default constructor.
constexpr
iterator() = default;
» more...
Copy constructor.
constexpr
iterator(iterator const& other) = default;
» more...
Construct an iterator from corpus storage pointers.
iterator(
Corpus const* corpus,
Symbol const* val,
Symbol const*(* next)(Corpus const*, Symbol const*));
» more...
| Name | Description |
|---|---|
| corpus | The parent corpus. |
| val | The current symbol. |
| next | Function that advances to the next symbol. |
Default constructor.
<mrdocs/Corpus.hpp>constexpr
iterator() = default;
Copy constructor.
| Name | Description |
|---|---|
| other | The object to copy construct from |
Construct an iterator from corpus storage pointers.
<mrdocs/Corpus.hpp>iterator(
Corpus const* corpus,
Symbol const* val,
Symbol const*(* next)(Corpus const*, Symbol const*));
| Name | Description |
|---|---|
| corpus | The parent corpus. |
| val | The current symbol. |
| next | Function that advances to the next symbol. |
Copy assignment.
<mrdocs/Corpus.hpp>constexpr
iterator&
operator=(iterator const& other) = default;
| Name | Description |
|---|---|
| other | The object to copy assign from |
Dereference to the current symbol.
Increment operators
<mrdocs/Corpus.hpp>Pre-increment.
iterator&
operator++() noexcept;
» more...
Post-increment.
iterator
operator++(int dummy) noexcept;
» more...
| Name | Description |
|---|---|
| dummy | Unused postfix increment discriminator. |
Pre-increment.
Post-increment.
| Name | Description |
|---|---|
| dummy | Unused postfix increment discriminator. |
Pointer-like access to the current symbol.
Equality comparison.
true if the objects are equal, false otherwise
| Name | Description |
|---|---|
| other | The right operand |
Inequality comparison.
true if the objects are not equal, false otherwise
| Name | Description |
|---|---|
| other | The right operand |
Destructor.
<mrdocs/Corpus.hpp>virtual
~Corpus() noexcept;
Return the begin iterator for the index of all symbols.
Whether the corpus contains any symbols.
<mrdocs/Corpus.hpp>bool
empty() const noexcept;
Return the end iterator for the index.
Return true if an Symbol with the specified symbol ID exists.
This function uses the find function to locate the Symbol with the specified symbol ID and returns true if it exists, otherwise false.
| Name | Description |
|---|---|
| id | A unique identifier for a symbol. |
Return the Symbol with the matching ID, or nullptr.
<mrdocs/Corpus.hpp>virtual
Symbol const*
find(SymbolID const& id) const noexcept = 0;
| Name | Description |
|---|---|
| id | A unique identifier for a symbol. |
Return the Symbol with the specified symbol ID.
<mrdocs/Corpus.hpp>template<class T = Symbol>
requires std::derived_from<T, Symbol>
T const&
get(SymbolID const& id) const noexcept;
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.
| Name | Description |
|---|---|
| id | A unique identifier for a symbol. |
Return the metadata for the global namespace.
This function is equivalent to calling get with the symbol ID for the global namespace.
lookup overloads
<mrdocs/Corpus.hpp>Return the Symbol for the matching string in the global context.
Expected<Symbol const&>
lookup(std::string_view name) const;
» more...
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;
» more...
traverse to find all matching symbols.| 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.
<mrdocs/Corpus.hpp>Expected<Symbol const&>
lookup(std::string_view name) const;
| Name | Description |
|---|---|
| name | The name of the symbol to look up. |
Return the Symbol for the matching string in a given context.
<mrdocs/Corpus.hpp>virtual
Expected<Symbol const&>
lookup(
SymbolID const& context,
std::string_view name) const = 0;
traverse to find all matching symbols.
| Name | Description |
|---|---|
| context | The context to look up the symbol in. |
| name | The name of the symbol to look up. |
qualifiedName overloads
<mrdocs/Corpus.hpp>Return the fully qualified name of I.
std::string
qualifiedName(Symbol const& I) const;
» more...
Populate temp with the fully qualified name of I.
virtual
void
qualifiedName(
Symbol const& I,
std::string& temp) const = 0;
» more...
Return the qualified name of I relative to context.
std::string
qualifiedName(
Symbol const& I,
SymbolID const& context) const;
» more...
Populate result with a qualified name relative to context. If context contains I, the name is relative; otherwise it is computed from the global namespace.
virtual
void
qualifiedName(
Symbol const& I,
SymbolID const& context,
std::string& result) const = 0;
» more...
| Name | Description |
|---|---|
| I | The Symbol to get the qualified name for. |
| temp | The string to store the result in. |
| context | The context used to qualify the name. |
| result | Output string receiving the name. |
Return the fully qualified name of I.
I.
| Name | Description |
|---|---|
| I | Base class with common properties of all symbols |
Populate temp with the fully qualified name of I.
<mrdocs/Corpus.hpp>virtual
void
qualifiedName(
Symbol const& I,
std::string& temp) const = 0;
| Name | Description |
|---|---|
| I | The Symbol to get the qualified name for. |
| temp | The string to store the result in. |
Return the qualified name of I relative to context.
<mrdocs/Corpus.hpp>std::string
qualifiedName(
Symbol const& I,
SymbolID const& context) const;
I relative to context.
| Name | Description |
|---|---|
| I | Base class with common properties of all symbols |
| context | A unique identifier for a symbol. |
Populate result with a qualified name relative to context. If context contains I, the name is relative; otherwise it is computed from the global namespace.
<mrdocs/Corpus.hpp>virtual
void
qualifiedName(
Symbol const& I,
SymbolID const& context,
std::string& result) const = 0;
| Name | Description |
|---|---|
| I | The Symbol to name. |
| context | The context used to qualify the name. |
| result | Output string receiving the name. |
Visit the members of specified Symbol.
<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;
» more...
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;
» more...
| 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.
<mrdocs/Corpus.hpp>template<
std::derived_from<Symbol> T,
class F,
class... Args>
void
traverse(
T const& I,
F&& f,
Args&&... args) const;
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.
| 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.
<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;
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.
| 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
<mrdocs/Corpus.hpp>template<
range_of<SymbolID> R,
class F,
class... Args>
void
visitIDs(
R&& range,
F&& f,
Args&&... args) const;
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.
| 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.
Create a corpus using the provided configuration.
| Name | Description |
|---|---|
| config_ | The object to copy construct from |
decltype(expr) type wrapper.
<mrdocs/Metadata/Type/DecltypeType.hpp>struct DecltypeType final
: TypeCommonBase<TypeKind::Decltype>
| Name | Description |
|---|---|
TypeCommonBase<TypeKind::Decltype> | CRTP base that ties a concrete type to a fixed TypeKind. |
| Name | Description |
|---|---|
operator<=> | Compare decltype operands. |
| Name |
|---|
isArray |
isAuto |
isDecltype |
isFunction |
isLValueReference |
isMemberPointer |
isNamed |
isPointer |
isRValueReference |
| Name | Description |
|---|---|
Operand | Operand expression for decltype. |
| Name |
|---|
kind_id |
| Name | Description |
|---|---|
innerType | Return the inner type. |
innerType | Return the inner type. |
innerTypePtr | Return the inner type. |
innerTypePtr | Return the inner type. |
toString | Render a type to a human-readable string. |
Compare decltype operands.
<mrdocs/Metadata/Type/DecltypeType.hpp>Compare decltype operands.
constexpr
auto
operator<=>(DecltypeType const& rhs) const = default;
» more...
Three-way comparison operator
constexpr
auto
operator<=>(TypeCommonBase<mrdocs::TypeKind::Decltype> const& rhs) const = default;
» more...
Compare decltype operands.
<mrdocs/Metadata/Type/DecltypeType.hpp>constexpr
auto
operator<=>(DecltypeType const& rhs) const = default;
| Name | Description |
|---|---|
| rhs | The right operand |
Three-way comparison operator
<mrdocs/Metadata/Type/TypeBase.hpp>constexpr
auto
operator<=>(TypeCommonBase<mrdocs::TypeKind::Decltype> const& rhs) const = default;
| Name | Description |
|---|---|
| rhs | The right operand |
<mrdocs/Metadata/Type/TypeBase.hpp>constexpr
static
bool
isArray() noexcept;
<mrdocs/Metadata/Type/TypeBase.hpp>constexpr
static
bool
isAuto() noexcept;
<mrdocs/Metadata/Type/TypeBase.hpp>constexpr
static
bool
isDecltype() noexcept;
<mrdocs/Metadata/Type/TypeBase.hpp>constexpr
static
bool
isFunction() noexcept;
<mrdocs/Metadata/Type/TypeBase.hpp>constexpr
static
bool
isLValueReference() noexcept;
<mrdocs/Metadata/Type/TypeBase.hpp>constexpr
static
bool
isMemberPointer() noexcept;
<mrdocs/Metadata/Type/TypeBase.hpp>constexpr
static
bool
isNamed() noexcept;
<mrdocs/Metadata/Type/TypeBase.hpp>constexpr
static
bool
isPointer() noexcept;
<mrdocs/Metadata/Type/TypeBase.hpp>constexpr
static
bool
isRValueReference() noexcept;
Operand expression for decltype.
A processed documentation comment attached to a declaration.
<mrdocs/Metadata/DocComment.hpp>struct DocComment;
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.
| Name | Description |
|---|---|
DocComment [constructor] | Constructors |
append | Append blocks from another DocComment to this. |
empty | Return true if this is empty |
operator== | Equality compares all stored blocks. |
operator!= | Inequality is the negation of equality. |
operator<=> | Three-way comparison on the rendered block sequence. |
| 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. |
| Name | Description |
|---|---|
merge | Append blocks from other into I, preserving order. |
Constructors
<mrdocs/Metadata/DocComment.hpp>Constructor.
DocComment() noexcept;
» more...
Constructor
explicit
DocComment(std::vector<Polymorphic<doc::Block>> blocks);
» more...
Constructor.
<mrdocs/Metadata/DocComment.hpp>DocComment() noexcept;
Constructor
<mrdocs/Metadata/DocComment.hpp>explicit
DocComment(std::vector<Polymorphic<doc::Block>> blocks);
| Name | Description |
|---|---|
| blocks | The object to construct from |
Append blocks from another DocComment to this.
| Name | Description |
|---|---|
| other | A processed documentation comment attached to a declaration. |
Return true if this is empty
<mrdocs/Metadata/DocComment.hpp>bool
empty() const noexcept;
Equality compares all stored blocks.
<mrdocs/Metadata/DocComment.hpp>constexpr
bool
operator==(DocComment const& rhs) const noexcept = default;
true if the objects are equal, false otherwise
| Name | Description |
|---|---|
| rhs | The right operand |
Inequality is the negation of equality.
<mrdocs/Metadata/DocComment.hpp>bool
operator!=(DocComment const& rhs) const noexcept;
true if the objects are not equal, false otherwise
| Name | Description |
|---|---|
| rhs | The right operand |
Three-way comparison on the rendered block sequence.
<mrdocs/Metadata/DocComment.hpp>auto
operator<=>(DocComment const& other) const noexcept;
| Name | Description |
|---|---|
| other | The right operand |
The list of text blocks.
<mrdocs/Metadata/DocComment.hpp>std::vector<Polymorphic<doc::Block>> Document;
A brief description of the symbol.
The list of exceptions.
<mrdocs/Metadata/DocComment.hpp>std::vector<doc::ThrowsBlock> exceptions;
The list of parameters.
<mrdocs/Metadata/DocComment.hpp>std::vector<doc::ParamBlock> params;
The list of postconditions.
<mrdocs/Metadata/DocComment.hpp>std::vector<doc::PostconditionBlock> postconditions;
The list of preconditions.
<mrdocs/Metadata/DocComment.hpp>std::vector<doc::PreconditionBlock> preconditions;
The list of "related" references.
<mrdocs/Metadata/DocComment.hpp>std::vector<doc::ReferenceInline> related;
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.
<mrdocs/Metadata/DocComment.hpp>std::vector<doc::ReferenceInline> relates;
These references are created with the relates command.
The list of return type descriptions.
<mrdocs/Metadata/DocComment.hpp>std::vector<doc::ReturnsBlock> returns;
Multiple return descriptions are allowed.
The results are concatenated in the order they appear in the source code.
The list of "see also" references.
<mrdocs/Metadata/DocComment.hpp>std::vector<doc::SeeBlock> sees;
The list of template parameters.
<mrdocs/Metadata/DocComment.hpp>std::vector<doc::TParamBlock> tparams;
Front-end factory for producing Dom nodes.
<mrdocs/Metadata/DomCorpus.hpp>class DomCorpus;
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.
| 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. |
| Name | Description |
|---|---|
getParents | Return a list of the parent symbols of the specified Info. |
Constructor.
Ownership of the specified Corpus is not transferred; the caller is responsible for ensuring the lifetime extension of the object.
| Name | Description |
|---|---|
| corpus | The Corpus whose metadata to use. |
Destructor.
<mrdocs/Metadata/DomCorpus.hpp>virtual
~DomCorpus();
Construct a lazy Dom object representing the specified symbol.
<mrdocs/Metadata/DomCorpus.hpp>virtual
dom::Object
construct(Symbol const& I) const;
This function is called internally when a dom::Object representing a symbol needs to be constructed because it was not found in the cache.
| Name | Description |
|---|---|
| I | Base class with common properties of all symbols |
Return a Dom object representing the given symbol.
id is invalid.
| Name | Description |
|---|---|
| id | The id of the symbol to return. |
Returns the Corpus associated with the Dom.
Return a Dom value representing the DocComment.
<mrdocs/Metadata/DomCorpus.hpp>virtual
dom::Value
getDocComment(DocComment const& jd) const;
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.
| Name | Description |
|---|---|
| jd | A processed documentation comment attached to a declaration. |
Returns the Corpus associated with the Dom.
Returns the Corpus associated with the Dom.
Info for enum constants.
<mrdocs/Metadata/Symbol/EnumConstant.hpp>struct EnumConstantSymbol final
: SymbolCommonBase<SymbolKind::EnumConstant>
| Name | Description |
|---|---|
SymbolCommonBase<SymbolKind::EnumConstant> | Base class for providing variant discriminator functions. |
| Name | Description |
|---|---|
EnumConstantSymbol [constructor] | Construct an enum constant with its ID. |
operator<=> | Three-way comparison operator |
| Name |
|---|
isConcept |
isEnum |
isEnumConstant |
isFunction |
isGuide |
isNamespace |
isNamespaceAlias |
isOverloads |
isRecord |
isTypedef |
isUsing |
isVariable |
| Name | Description |
|---|---|
Initializer | The initializer expression, if any |
| Name |
|---|
kind_id |
| Name | Description |
|---|---|
canMerge | Check whether two symbols may be merged. |
getPrimaryLocation | Determine a location to use when none is explicitly chosen. |
merge | Merges two Symbol objects. |
merge | Merge another EnumConstantSymbol into this one. |
Construct an enum constant with its ID.
<mrdocs/Metadata/Symbol/EnumConstant.hpp>explicit
EnumConstantSymbol(SymbolID ID) noexcept;
| Name | Description |
|---|---|
| ID | The object to construct from |
Three-way comparison operator
<mrdocs/Metadata/Symbol/SymbolBase.hpp>auto
operator<=>(SymbolCommonBase<mrdocs::SymbolKind::EnumConstant> const& rhs) const = default;
| Name | Description |
|---|---|
| rhs | The right operand |
<mrdocs/Metadata/Symbol/SymbolNodes.inc>constexpr
static
bool
isConcept() noexcept;
<mrdocs/Metadata/Symbol/SymbolNodes.inc>constexpr
static
bool
isEnum() noexcept;
<mrdocs/Metadata/Symbol/SymbolNodes.inc>constexpr
static
bool
isEnumConstant() noexcept;
<mrdocs/Metadata/Symbol/SymbolNodes.inc>constexpr
static
bool
isFunction() noexcept;
<mrdocs/Metadata/Symbol/SymbolNodes.inc>constexpr
static
bool
isGuide() noexcept;
<mrdocs/Metadata/Symbol/SymbolNodes.inc>constexpr
static
bool
isNamespace() noexcept;
<mrdocs/Metadata/Symbol/SymbolNodes.inc>constexpr
static
bool
isNamespaceAlias() noexcept;
<mrdocs/Metadata/Symbol/SymbolNodes.inc>constexpr
static
bool
isOverloads() noexcept;
<mrdocs/Metadata/Symbol/SymbolNodes.inc>constexpr
static
bool
isRecord() noexcept;
<mrdocs/Metadata/Symbol/SymbolNodes.inc>constexpr
static
bool
isTypedef() noexcept;
<mrdocs/Metadata/Symbol/SymbolNodes.inc>constexpr
static
bool
isUsing() noexcept;
<mrdocs/Metadata/Symbol/SymbolNodes.inc>constexpr
static
bool
isVariable() noexcept;
The initializer expression, if any
<mrdocs/Metadata/Symbol/EnumConstant.hpp>ConstantExprInfo<uint64_t> Initializer;
Metadata for an enumeration declaration.
<mrdocs/Metadata/Symbol/Enum.hpp>struct EnumSymbol final
: SymbolCommonBase<SymbolKind::Enum>
| Name | Description |
|---|---|
SymbolCommonBase<SymbolKind::Enum> | Base class for providing variant discriminator functions. |
| Name | Description |
|---|---|
EnumSymbol [constructor] | Construct an enum symbol with its ID. |
operator<=> | Three-way comparison operator |
| Name |
|---|
isConcept |
isEnum |
isEnumConstant |
isFunction |
isGuide |
isNamespace |
isNamespaceAlias |
isOverloads |
isRecord |
isTypedef |
isUsing |
isVariable |
| 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. |
| Name |
|---|
kind_id |
| Name | Description |
|---|---|
allMembers | Return the list of enum constants for this symbol. |
canMerge | Check whether two symbols may be merged. |
getPrimaryLocation | Determine a location to use when none is explicitly chosen. |
merge | Merges two Symbol objects. |
merge | Merge another EnumSymbol into this one. |
Construct an enum symbol with its ID.
| Name | Description |
|---|---|
| ID | The object to construct from |
Three-way comparison operator
<mrdocs/Metadata/Symbol/SymbolBase.hpp>auto
operator<=>(SymbolCommonBase<mrdocs::SymbolKind::Enum> const& rhs) const = default;
| Name | Description |
|---|---|
| rhs | The right operand |
<mrdocs/Metadata/Symbol/SymbolNodes.inc>constexpr
static
bool
isConcept() noexcept;
<mrdocs/Metadata/Symbol/SymbolNodes.inc>constexpr
static
bool
isEnum() noexcept;
<mrdocs/Metadata/Symbol/SymbolNodes.inc>constexpr
static
bool
isEnumConstant() noexcept;
<mrdocs/Metadata/Symbol/SymbolNodes.inc>constexpr
static
bool
isFunction() noexcept;
<mrdocs/Metadata/Symbol/SymbolNodes.inc>constexpr
static
bool
isGuide() noexcept;
<mrdocs/Metadata/Symbol/SymbolNodes.inc>constexpr
static
bool
isNamespace() noexcept;
<mrdocs/Metadata/Symbol/SymbolNodes.inc>constexpr
static
bool
isNamespaceAlias() noexcept;
<mrdocs/Metadata/Symbol/SymbolNodes.inc>constexpr
static
bool
isOverloads() noexcept;
<mrdocs/Metadata/Symbol/SymbolNodes.inc>constexpr
static
bool
isRecord() noexcept;
<mrdocs/Metadata/Symbol/SymbolNodes.inc>constexpr
static
bool
isTypedef() noexcept;
<mrdocs/Metadata/Symbol/SymbolNodes.inc>constexpr
static
bool
isUsing() noexcept;
<mrdocs/Metadata/Symbol/SymbolNodes.inc>constexpr
static
bool
isVariable() noexcept;
The members of this scope.
<mrdocs/Metadata/Symbol/Enum.hpp>std::vector<SymbolID> Constants;
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).
<mrdocs/Metadata/Symbol/Enum.hpp>bool Scoped = false;
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.
<mrdocs/Metadata/Symbol/Enum.hpp>Optional<Polymorphic<Type>> UnderlyingType = std::nullopt;
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.
Holds the description of an error, or success.
<mrdocs/Support/Error.hpp>class Error final
| 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 | Swap the contents with another error. |
where | Return the location string. |
operator bool | Return true if this holds an error. |
operator== | Return true if this equals rhs. |
| Name | Description |
|---|---|
swap |
| Name | Description |
|---|---|
formatError | Return a formatted error. |
Constructor.
<mrdocs/Support/Error.hpp>Constructor.
constexpr
Error() noexcept = default;
» more...
Constructor.
constexpr
Error(Error const& other) = default;
» more...
Constructor.
constexpr
Error(Error&& other) noexcept = default;
» more...
Constructor.
explicit
Error(std::exception const& ex);
» more...
Constructor.
explicit
Error(
std::string reason,
std::source_location loc = source_location::current());
» more...
Constructor.
explicit
Error(
std::error_code const& ec,
std::source_location loc = source_location::current());
» more...
Constructor.
Error(
std::vector<Error> const& errors,
std::source_location loc = source_location::current());
» more...
| 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.
<mrdocs/Support/Error.hpp>constexpr
Error() noexcept = default;
A default-constructed error is equivalent to success.
Constructor.
| Name | Description |
|---|---|
| other | The object to copy construct from |
Constructor.
| Name | Description |
|---|---|
| other | The object to move construct from |
Constructor.
<mrdocs/Support/Error.hpp>explicit
Error(std::exception const& ex);
The constructed object will always indicate a failure, even if the message in the exception is empty.
| Name | Description |
|---|---|
| ex | The object to copy construct from |
Constructor.
<mrdocs/Support/Error.hpp>explicit
Error(
std::string reason,
std::source_location loc = source_location::current());
| 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.
<mrdocs/Support/Error.hpp>explicit
Error(
std::error_code const& ec,
std::source_location loc = source_location::current());
| Name | Description |
|---|---|
| ec | The error code. |
| loc | The source location where the error occurred. |
Constructor.
<mrdocs/Support/Error.hpp>Error(
std::vector<Error> const& errors,
std::source_location loc = source_location::current());
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.
| Name | Description |
|---|---|
| errors | The list of errors to combine. |
| loc | The source location where the error occurred. |
Assignment operators
<mrdocs/Support/Error.hpp>Assignment.
constexpr
Error&
operator=(Error const& other) = default;
» more...
Constructor.
constexpr
Error&
operator=(Error&& other) noexcept = default;
» more...
Assignment.
<mrdocs/Support/Error.hpp>constexpr
Error&
operator=(Error const& other) = default;
| Name | Description |
|---|---|
| other | The object to copy assign from |
Constructor.
<mrdocs/Support/Error.hpp>constexpr
Error&
operator=(Error&& other) noexcept = default;
| Name | Description |
|---|---|
| other | The object to move assign from |
Throw overloads
<mrdocs/Support/Error.hpp>Throw Exception(*this)
[[noreturn]]
void
Throw() const &;
» more...
Throw Exception(std::move(*this))
[[noreturn]]
void
Throw() &&;
» more...
Throw Exception(*this)
<mrdocs/Support/Error.hpp>[[noreturn]]
void
Throw() const &;
Throw Exception(std::move(*this))
<mrdocs/Support/Error.hpp>[[noreturn]]
void
Throw() &&;
Return true if this holds an error.
<mrdocs/Support/Error.hpp>constexpr
bool
failed() const noexcept;
Return the source location.
<mrdocs/Support/Error.hpp>constexpr
std::source_location const&
location() const noexcept;
Return the error string.
<mrdocs/Support/Error.hpp>constexpr
std::string const&
message() const noexcept;
Return the reason string.
<mrdocs/Support/Error.hpp>constexpr
std::string const&
reason() const noexcept;
Swap the contents with another error.
| Name | Description |
|---|---|
| rhs | Holds the description of an error, or success. |
Return the location string.
<mrdocs/Support/Error.hpp>constexpr
std::string const&
where() const noexcept;
Return true if this holds an error.
<mrdocs/Support/Error.hpp>constexpr
explicit
operator bool() const noexcept;
Return true if this equals rhs.
<mrdocs/Support/Error.hpp>constexpr
bool
operator==(Error const& rhs) const noexcept;
| Name | Description |
|---|---|
| rhs | The right operand |
Type of all exceptions thrown by the API.
<mrdocs/Support/Error.hpp>class Exception final
: public std::exception
| Name | Description |
|---|---|
std::exception |
| Name | Description |
|---|---|
Exception [constructor] | Constructor. |
operator= | |
error | Return the Error stored in the exception. |
what [virtual] | Return a null-terminated error string. |
Constructor.
| Name | Description |
|---|---|
| err | The object to construct from |
<__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.
Return a null-terminated error string.
<mrdocs/Support/Error.hpp>virtual
char const*
what() const noexcept override;
A set of execution agents for performing concurrent work.
<mrdocs/Support/ExecutorGroup.hpp>template<class Agent>
class ExecutorGroup
: public ExecutorGroupBase
| Name | Description |
|---|---|
ExecutorGroupBase | Base class that owns a pool of execution agents and a shared work queue. |
| Name | Description |
|---|---|
arg_t | Argument wrapper propagated from ThreadPool. |
| Name | Description |
|---|---|
ExecutorGroup [constructor] | Construct a new executor group bound to a thread pool. |
async | Submit work to be executed. |
emplace | Construct a new agent in the group. |
wait | Block until all work has completed. |
| Name | Description |
|---|---|
AnyAgent | Type-erased agent holder used by the base class. |
Impl | Opaque implementation shared by all ExecutorGroup instantiations. |
| Name | Description |
|---|---|
post | Queue work to run on the group agents. |
run | Execute queued work until empty. |
| Name | Description |
|---|---|
agents_ | Agents owned by the group. |
impl_ | Opaque implementation pointer shared by all ExecutorGroup instantiations. |
work_ | Pending work posted to the group. |
Construct a new executor group bound to a thread pool.
<mrdocs/Support/ExecutorGroup.hpp>explicit
ExecutorGroup(ThreadPool& threadPool);
| Name | Description |
|---|---|
| threadPool | Pool that owns the worker threads. |
Submit work to be executed.
<mrdocs/Support/ExecutorGroup.hpp>template<
class F,
class... Args>
void
async(
F&& f,
Args&&... args);
The function object must have this equivalent signature:
void( Agent&, Args... );
| Name | Description |
|---|---|
| f | The function to invoke. |
| args | Zero or more arguments to forward to the function. |
Construct a new agent in the group.
<mrdocs/Support/ExecutorGroup.hpp>template<class... Args>
void
emplace(Args&&... args);
The behavior is undefined if there is any outstanding work or busy threads.
| Name | Description |
|---|---|
| args | Zero or more arguments to forward to the agent constructor. |
Base class that owns a pool of execution agents and a shared work queue.
<mrdocs/Support/ExecutorGroup.hpp>class ExecutorGroupBase;
| Name | Description |
|---|---|
arg_t | Argument wrapper propagated from ThreadPool. |
| Name | Description |
|---|---|
ExecutorGroupBase [constructor] | Move-construct from another group. |
~ExecutorGroupBase [destructor] | Destroy the executor group, waiting for outstanding work. |
wait | Block until all work has completed. |
| Name | Description |
|---|---|
AnyAgent | Type-erased agent holder used by the base class. |
Impl | Opaque implementation shared by all ExecutorGroup instantiations. |
| Name | Description |
|---|---|
ExecutorGroupBase [constructor] | Construct with a backing thread pool. |
post | Queue work to run on the group agents. |
run | Execute queued work until empty. |
| Name | Description |
|---|---|
agents_ | Agents owned by the group. |
impl_ | Opaque implementation pointer shared by all ExecutorGroup instantiations. |
work_ | Pending work posted to the group. |
| Name | Description |
|---|---|
ExecutorGroup
| A set of execution agents for performing concurrent work. |
Argument wrapper propagated from ThreadPool.
<mrdocs/Support/ExecutorGroup.hpp>template<class T>
using arg_t = ThreadPool::arg_t<T>;
Move-construct from another group.
<mrdocs/Support/ExecutorGroup.hpp>ExecutorGroupBase(ExecutorGroupBase&& other) noexcept;
| Name | Description |
|---|---|
| other | The object to move construct from |
Destroy the executor group, waiting for outstanding work.
<mrdocs/Support/ExecutorGroup.hpp>~ExecutorGroupBase();
Block until all work has completed.
<mrdocs/Support/ExecutorGroup.hpp>[[nodiscard]]
std::vector<Error>
wait() noexcept;
Type-erased agent holder used by the base class.
<mrdocs/Support/ExecutorGroup.hpp>struct AnyAgent;
| Name | Description |
|---|---|
~AnyAgent [destructor] [virtual] | Virtual destructor to allow deleting through the base pointer. |
get [virtual] | Return a pointer to the stored agent object. |
Virtual destructor to allow deleting through the base pointer.
<mrdocs/Support/ExecutorGroup.hpp>virtual
~AnyAgent() = 0;
Return a pointer to the stored agent object.
<mrdocs/Support/ExecutorGroup.hpp>virtual
void*
get() noexcept = 0;
Opaque implementation shared by all ExecutorGroup instantiations.
<mrdocs/Support/ExecutorGroup.hpp>struct Impl;
Construct with a backing thread pool.
<mrdocs/Support/ExecutorGroup.hpp>explicit
ExecutorGroupBase(ThreadPool& value);
| Name | Description |
|---|---|
| value | The object to copy construct from |
Queue work to run on the group agents.
| Name | Description |
|---|---|
| work | A movable, type-erased function object. |
Execute queued work until empty.
<mrdocs/Support/ExecutorGroup.hpp>void
run(std::unique_lock<std::mutex> lock);
| Name | Description |
|---|---|
| lock | Held lock protecting the work queue. |
Agents owned by the group.
<mrdocs/Support/ExecutorGroup.hpp>std::vector<std::unique_ptr<AnyAgent>> agents_;
Opaque implementation pointer shared by all ExecutorGroup instantiations.
<mrdocs/Support/ExecutorGroup.hpp>std::unique_ptr<Impl> impl_;
Pending work posted to the group.
<mrdocs/Support/ExecutorGroup.hpp>std::deque<any_callable<void(void*)>> work_;
A container holding an error or a value.
<mrdocs/Support/Expected.hpp>template<
class T,
class E = Error>
class Expected;
Monadic result type holding either a value T or an unexpected error E.
| Name | Description |
|---|---|
error_type | Type produced on failure. |
rebind | Rebind to an Expected with a different value type and the same error type. |
unexpected_type | Convenience alias for an Unexpected containing the error type. |
value_type | Type produced on success. |
| Name | Description |
|---|---|
Expected [constructor] | Constructors |
~Expected [destructor] | Destructors |
operator= [deleted] | Assignment operators |
and_then | and_then overloads |
emplace | emplace overloads |
error | Access the stored error; precondition: !has_value(). |
error_or | error_or overloads |
has_value | Return true when the Expected contains a value. |
operator* | Dereference operators |
operator-> | Access value members through pointer syntax. |
or_else | or_else overloads |
swap | Swap the stored state with another Expected. |
transform | transform overloads |
transform_error | transform_error overloads |
value | value overloads |
value_or | value_or overloads |
operator bool | Return true when the Expected contains a value. |
| Name | Description |
|---|---|
unex_ [variant member] | Storage for the unexpected error. |
val_ [variant member] | Storage for the engaged value. |
| Name | Description |
|---|---|
swap |
Swap contents with another Expected. |
operator== |
Equality operator |
operator== |
Equality operator |
operator== |
Equality operator |
Expected |
A container holding an error or a value. |
| 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. |
installGenerator | Install a custom generator. |
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 |
Type produced on failure.
<mrdocs/Support/Expected.hpp>using error_type = E;
Rebind to an Expected with a different value type and the same error type.
<mrdocs/Support/Expected.hpp>template<class U>
using rebind = Expected<U, error_type>;
Convenience alias for an Unexpected containing the error type.
Type produced on success.
<mrdocs/Support/Expected.hpp>using value_type = T;
Constructors
<mrdocs/Support/Expected.hpp>Construct an engaged Expected with a default-initialized value.
constexpr
Expected() noexcept(std::is_nothrow_default_constructible_v<T>)
requires std::is_default_constructible_v<T>;
» more...
Default copy constructor.
Expected(Expected const& other) = default;
» more...
Copy-construct, handling non-trivial alternatives.
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>);
» more...
Construct from another Expected with potentially different types.
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 &>);
» more...
Default move constructor. Default move constructor.
Expected(Expected&& other) = default;
» more...
Move-construct, handling non-trivial alternatives.
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>);
» more...
Move-construct from another Expected with potentially different types.
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>);
» more...
Construct a disengaged Expected from an unexpected error (copy).
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 &>);
» more...
Construct an engaged Expected from a convertible value.
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>);
» more...
Construct a disengaged Expected from an unexpected error (move).
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>);
» more...
Construct an engaged Expected in-place.
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...>);
» more...
Construct a disengaged Expected holding an error.
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...>);
» more...
Construct an engaged Expected from an initializer list.
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...>);
» more...
Construct a disengaged Expected from an initializer list.
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...>);
» more...
| Name | Description |
|---|---|
| args | Arguments forwarded to the value constructor. |
| il | Initializer list forwarded to the value constructor. |
Construct an engaged Expected with a default-initialized value.
<mrdocs/Support/Expected.hpp>constexpr
Expected() noexcept(std::is_nothrow_default_constructible_v<T>)
requires std::is_default_constructible_v<T>;
Default copy constructor.
| Name | Description |
|---|---|
| other | The object to copy construct from |
Copy-construct, handling non-trivial alternatives.
<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>);
Copy-construct from another void Expected.
| Name | Description |
|---|---|
| x | The object to copy construct from |
Construct from another Expected with potentially different types.
<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 &>);
| Name | Description |
|---|---|
| x | The object to copy construct from |
Default move constructor. Default move constructor.
| Name | Description |
|---|---|
| other | The object to move construct from |
Move-construct, handling non-trivial alternatives.
<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>);
Move-construct from another void Expected.
| Name | Description |
|---|---|
| x | The object to move construct from |
Move-construct from another Expected with potentially different types.
<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>);
| Name | Description |
|---|---|
| x | The object to move construct from |
Construct a disengaged Expected from an unexpected error (copy).
<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 &>);
| Name | Description |
|---|---|
| u | The object to copy construct from |
Construct an engaged Expected from a convertible value.
<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>);
| Name | Description |
|---|---|
| v | The object to move construct from |
Construct a disengaged Expected from an unexpected error (move).
<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>);
| Name | Description |
|---|---|
| u | The object to move construct from |
Construct an engaged Expected in-place.
<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...>);
| Name | Description |
|---|---|
| args | Arguments forwarded to the value constructor. |
Construct a disengaged Expected holding an error.
<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...>);
| Name | Description |
|---|---|
| args | Arguments forwarded to the error constructor. |
Construct an engaged Expected from an initializer list.
<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...>);
| Name | Description |
|---|---|
| il | Initializer list forwarded to the value constructor. |
| args | Additional arguments forwarded to the value constructor. |
Construct a disengaged Expected from an initializer list.
<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...>);
| Name | Description |
|---|---|
| il | Initializer list forwarded to the error constructor. |
| args | Additional arguments forwarded to the error constructor. |
Destructors
<mrdocs/Support/Expected.hpp>Defaulted trivial destructor when both alternatives are trivial.
constexpr
~Expected() = default;
» more...
Destroy the active alternative when a non-trivial destructor is required.
constexpr
~Expected()
requires (!std::is_trivially_destructible_v<T>)
|| (!std::is_trivially_destructible_v<E>);
» more...
Defaulted trivial destructor when both alternatives are trivial.
<mrdocs/Support/Expected.hpp>constexpr
~Expected() = default;
Destroy the active alternative when a non-trivial destructor is required.
<mrdocs/Support/Expected.hpp>constexpr
~Expected()
requires (!std::is_trivially_destructible_v<T>)
|| (!std::is_trivially_destructible_v<E>);
Assignment operators
<mrdocs/Support/Expected.hpp>Copy-assign from another Expected.
Expected&
operator=(Expected const& other) = delete;
» more...
Assign from another Expected with compatible value/error types.
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>);
» more...
Move-assign from another Expected with compatible value/error types.
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>);
» more...
Assign a new unexpected error from lvalue.
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);
» more...
Assign a new value, reconstructing if currently disengaged.
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);
» more...
Assign a new unexpected error from rvalue.
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);
» more...
Copy-assign from another Expected.
<mrdocs/Support/Expected.hpp>Expected&
operator=(Expected const& other) = delete;
| Name | Description |
|---|---|
| other | The object to copy assign from |
Assign from another Expected with compatible value/error types.
<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>);
| Name | Description |
|---|---|
| x | The object to copy assign from |
Move-assign from another Expected with compatible value/error types.
<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>);
| Name | Description |
|---|---|
| x | The object to move assign from |
Assign a new unexpected error from lvalue.
<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);
| Name | Description |
|---|---|
| e | The object to copy assign from |
Assign a new value, reconstructing if currently disengaged.
<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);
| Name | Description |
|---|---|
| v | The object to move assign from |
Assign a new unexpected error from rvalue.
<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);
| Name | Description |
|---|---|
| e | The object to move assign from |
and_then overloads
<mrdocs/Support/Expected.hpp>Invoke f when engaged, propagate error otherwise.
template<class Fn>
requires std::is_constructible_v<E, E&>
constexpr
auto
and_then(Fn&& f) &;
» more...
Invoke f when engaged (const lvalue), propagate error otherwise.
template<class Fn>
requires std::is_constructible_v<E, E const&>
constexpr
auto
and_then(Fn&& f) const &;
» more...
Invoke f when engaged (rvalue), propagate error otherwise.
template<class Fn>
requires std::is_constructible_v<E, E>
constexpr
auto
and_then(Fn&& f) &&;
» more...
Invoke f when engaged (const rvalue), propagate error otherwise.
template<class Fn>
requires std::is_constructible_v<E, const E>
constexpr
auto
and_then(Fn&& f) const &&;
» more...
f or this error.
| Name | Description |
|---|---|
| f | Continuation that returns another Expected. |
Invoke f when engaged, propagate error otherwise.
<mrdocs/Support/Expected.hpp>template<class Fn>
requires std::is_constructible_v<E, E&>
constexpr
auto
and_then(Fn&& f) &;
f or this error.
| Name | Description |
|---|---|
| f | Continuation that returns another Expected. |
Invoke f when engaged (const lvalue), propagate error otherwise.
<mrdocs/Support/Expected.hpp>template<class Fn>
requires std::is_constructible_v<E, E const&>
constexpr
auto
and_then(Fn&& f) const &;
f or this error.
| Name | Description |
|---|---|
| f | Continuation that returns another Expected. |
Invoke f when engaged (rvalue), propagate error otherwise.
<mrdocs/Support/Expected.hpp>template<class Fn>
requires std::is_constructible_v<E, E>
constexpr
auto
and_then(Fn&& f) &&;
f or this error.
| Name | Description |
|---|---|
| f | Continuation that returns another Expected. |
Invoke f when engaged (const rvalue), propagate error otherwise.
<mrdocs/Support/Expected.hpp>template<class Fn>
requires std::is_constructible_v<E, const E>
constexpr
auto
and_then(Fn&& f) const &&;
f or this error.
| Name | Description |
|---|---|
| f | Continuation that returns another Expected. |
emplace overloads
<mrdocs/Support/Expected.hpp>Reconstruct the value in-place, discarding any current state.
template<class... Args>
requires std::is_nothrow_constructible_v<T, Args...>
constexpr
T&
emplace(Args&&... args) noexcept;
» more...
Reconstruct the value from an initializer list.
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;
» more...
| Name | Description |
|---|---|
| args | Arguments forwarded to the value constructor. |
| il | Initializer list forwarded to the value constructor. |
Reconstruct the value in-place, discarding any current state.
<mrdocs/Support/Expected.hpp>template<class... Args>
requires std::is_nothrow_constructible_v<T, Args...>
constexpr
T&
emplace(Args&&... args) noexcept;
| Name | Description |
|---|---|
| args | Arguments forwarded to the value constructor. |
Reconstruct the value from an initializer list.
<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;
| Name | Description |
|---|---|
| il | Initializer list forwarded to the value constructor. |
| args | Additional constructor arguments. |
Access the stored error; precondition: !has_value().
<mrdocs/Support/Expected.hpp>Access the stored error; precondition: !has_value().
constexpr
E const&
error() const & noexcept;
» more...
Access the stored error; precondition: !has_value().
constexpr
E&
error() & noexcept;
» more...
Access the stored error; precondition: !has_value().
constexpr
E const&&
error() const && noexcept;
» more...
Access the stored error; precondition: !has_value().
constexpr
E&&
error() && noexcept;
» more...
Access the stored error; precondition: !has_value().
<mrdocs/Support/Expected.hpp>constexpr
E const&
error() const & noexcept;
Access the stored error; precondition: !has_value().
<mrdocs/Support/Expected.hpp>constexpr
E&
error() & noexcept;
Access the stored error; precondition: !has_value().
<mrdocs/Support/Expected.hpp>constexpr
E const&&
error() const && noexcept;
Access the stored error; precondition: !has_value().
<mrdocs/Support/Expected.hpp>constexpr
E&&
error() && noexcept;
error_or overloads
<mrdocs/Support/Expected.hpp>Return the contained error or a fallback copy.
template<class G = E>
constexpr
E
error_or(G&& e) const &;
» more...
Return the contained error or a fallback move.
template<class G = E>
constexpr
E
error_or(G&& e) &&;
» more...
E.
| Name | Description |
|---|---|
| e | Fallback error to use when engaged. |
Return the contained error or a fallback copy.
<mrdocs/Support/Expected.hpp>template<class G = E>
constexpr
E
error_or(G&& e) const &;
E.
| Name | Description |
|---|---|
| e | Fallback error to use when engaged. |
Return the contained error or a fallback move.
<mrdocs/Support/Expected.hpp>template<class G = E>
constexpr
E
error_or(G&& e) &&;
E.
| Name | Description |
|---|---|
| e | Fallback error to use when engaged. |
Return true when the Expected contains a value.
<mrdocs/Support/Expected.hpp>[[nodiscard]]
constexpr
bool
has_value() const noexcept;
Dereference operators
<mrdocs/Support/Expected.hpp>Dereference to a const lvalue value reference.
[[nodiscard]]
constexpr
T const&
operator*() const & noexcept;
» more...
Dereference to an lvalue value reference.
[[nodiscard]]
constexpr
T&
operator*() & noexcept;
» more...
Dereference to a const rvalue value reference.
[[nodiscard]]
constexpr
T const&&
operator*() const && noexcept;
» more...
Dereference to an rvalue value reference.
[[nodiscard]]
constexpr
T&&
operator*() && noexcept;
» more...
Dereference to a const lvalue value reference.
<mrdocs/Support/Expected.hpp>[[nodiscard]]
constexpr
T const&
operator*() const & noexcept;
Dereference to an lvalue value reference.
<mrdocs/Support/Expected.hpp>[[nodiscard]]
constexpr
T&
operator*() & noexcept;
Dereference to a const rvalue value reference.
<mrdocs/Support/Expected.hpp>[[nodiscard]]
constexpr
T const&&
operator*() const && noexcept;
Dereference to an rvalue value reference.
<mrdocs/Support/Expected.hpp>[[nodiscard]]
constexpr
T&&
operator*() && noexcept;
Access value members through pointer syntax.
<mrdocs/Support/Expected.hpp>Access value members through pointer syntax.
[[nodiscard]]
constexpr
T const*
operator->() const noexcept;
» more...
Access value members through pointer syntax.
[[nodiscard]]
constexpr
T*
operator->() noexcept;
» more...
Access value members through pointer syntax.
<mrdocs/Support/Expected.hpp>[[nodiscard]]
constexpr
T const*
operator->() const noexcept;
Access value members through pointer syntax.
<mrdocs/Support/Expected.hpp>[[nodiscard]]
constexpr
T*
operator->() noexcept;
or_else overloads
<mrdocs/Support/Expected.hpp>Invoke f when in error, otherwise return current value.
template<class Fn>
requires std::is_constructible_v<T, T&>
constexpr
auto
or_else(Fn&& f) &;
» more...
Invoke f when in error (const lvalue).
template<class Fn>
requires std::is_constructible_v<T, T const&>
constexpr
auto
or_else(Fn&& f) const &;
» more...
Invoke f when in error (rvalue).
template<class Fn>
requires std::is_constructible_v<T, T>
constexpr
auto
or_else(Fn&& f) &&;
» more...
Invoke f when in error (const rvalue).
template<class Fn>
requires std::is_constructible_v<T, const T>
constexpr
auto
or_else(Fn&& f) const &&;
» more...
f.
| Name | Description |
|---|---|
| f | Recovery function returning an Expected. |
Invoke f when in error, otherwise return current value.
<mrdocs/Support/Expected.hpp>template<class Fn>
requires std::is_constructible_v<T, T&>
constexpr
auto
or_else(Fn&& f) &;
f.
| Name | Description |
|---|---|
| f | Recovery function returning an Expected. |
Invoke f when in error (const lvalue).
<mrdocs/Support/Expected.hpp>template<class Fn>
requires std::is_constructible_v<T, T const&>
constexpr
auto
or_else(Fn&& f) const &;
f.
| Name | Description |
|---|---|
| f | Recovery function returning an Expected. |
Invoke f when in error (rvalue).
<mrdocs/Support/Expected.hpp>template<class Fn>
requires std::is_constructible_v<T, T>
constexpr
auto
or_else(Fn&& f) &&;
f.
| Name | Description |
|---|---|
| f | Recovery function returning an Expected. |
Invoke f when in error (const rvalue).
<mrdocs/Support/Expected.hpp>template<class Fn>
requires std::is_constructible_v<T, const T>
constexpr
auto
or_else(Fn&& f) const &&;
f.
| Name | Description |
|---|---|
| f | Recovery function returning an Expected. |
Swap the stored state with another Expected.
<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>);
| Name | Description |
|---|---|
| x | A container holding an error or a value. |
transform overloads
<mrdocs/Support/Expected.hpp>Map the contained value, propagate error.
template<class Fn>
requires std::is_constructible_v<E, E&>
constexpr
auto
transform(Fn&& f) &;
» more...
Map the contained value (const overload), propagate error.
template<class Fn>
requires std::is_constructible_v<E, E const&>
constexpr
auto
transform(Fn&& f) const &;
» more...
Map the contained value (rvalue), propagate error.
template<class Fn>
requires std::is_constructible_v<E, E>
constexpr
auto
transform(Fn&& f) &&;
» more...
Map the contained value (const rvalue), propagate error.
template<class Fn>
requires std::is_constructible_v<E, const E>
constexpr
auto
transform(Fn&& f) const &&;
» more...
| Name | Description |
|---|---|
| f | Mapping function applied to the value. |
Map the contained value, propagate error.
<mrdocs/Support/Expected.hpp>template<class Fn>
requires std::is_constructible_v<E, E&>
constexpr
auto
transform(Fn&& f) &;
| Name | Description |
|---|---|
| f | Mapping function applied to the value. |
Map the contained value (const overload), propagate error.
<mrdocs/Support/Expected.hpp>template<class Fn>
requires std::is_constructible_v<E, E const&>
constexpr
auto
transform(Fn&& f) const &;
| Name | Description |
|---|---|
| f | Mapping function applied to the value. |
Map the contained value (rvalue), propagate error.
<mrdocs/Support/Expected.hpp>template<class Fn>
requires std::is_constructible_v<E, E>
constexpr
auto
transform(Fn&& f) &&;
| Name | Description |
|---|---|
| f | Mapping function applied to the value. |
Map the contained value (const rvalue), propagate error.
<mrdocs/Support/Expected.hpp>template<class Fn>
requires std::is_constructible_v<E, const E>
constexpr
auto
transform(Fn&& f) const &&;
| Name | Description |
|---|---|
| f | Mapping function applied to the value. |
transform_error overloads
<mrdocs/Support/Expected.hpp>Map the contained error, preserve value.
template<class Fn>
requires std::is_constructible_v<T, T&>
constexpr
auto
transform_error(Fn&& f) &;
» more...
Map the contained error (const lvalue), preserve value.
template<class Fn>
requires std::is_constructible_v<T, T const&>
constexpr
auto
transform_error(Fn&& f) const &;
» more...
Map the contained error (rvalue), preserve value.
template<class Fn>
requires std::is_constructible_v<T, T>
constexpr
auto
transform_error(Fn&& f) &&;
» more...
Map the contained error (const rvalue), preserve value.
template<class Fn>
requires std::is_constructible_v<T, const T>
constexpr
auto
transform_error(Fn&& f) const &&;
» more...
| Name | Description |
|---|---|
| f | Mapping function applied to the error. |
Map the contained error, preserve value.
<mrdocs/Support/Expected.hpp>template<class Fn>
requires std::is_constructible_v<T, T&>
constexpr
auto
transform_error(Fn&& f) &;
| Name | Description |
|---|---|
| f | Mapping function applied to the error. |
Map the contained error (const lvalue), preserve value.
<mrdocs/Support/Expected.hpp>template<class Fn>
requires std::is_constructible_v<T, T const&>
constexpr
auto
transform_error(Fn&& f) const &;
| Name | Description |
|---|---|
| f | Mapping function applied to the error. |
Map the contained error (rvalue), preserve value.
<mrdocs/Support/Expected.hpp>template<class Fn>
requires std::is_constructible_v<T, T>
constexpr
auto
transform_error(Fn&& f) &&;
| Name | Description |
|---|---|
| f | Mapping function applied to the error. |
Map the contained error (const rvalue), preserve value.
<mrdocs/Support/Expected.hpp>template<class Fn>
requires std::is_constructible_v<T, const T>
constexpr
auto
transform_error(Fn&& f) const &&;
| Name | Description |
|---|---|
| f | Mapping function applied to the error. |
value overloads
<mrdocs/Support/Expected.hpp>Access the stored value or throw BadExpectedAccess.
constexpr
T const&
value() const &;
» more...
Access the stored value or throw BadExpectedAccess.
constexpr
T&
value() &;
» more...
Access the stored value or throw BadExpectedAccess (rvalue overload).
constexpr
T const&&
value() const &&;
» more...
Access the stored value or throw BadExpectedAccess (rvalue overload).
constexpr
T&&
value() &&;
» more...
Access the stored value or throw BadExpectedAccess.
<mrdocs/Support/Expected.hpp>constexpr
T const&
value() const &;
Access the stored value or throw BadExpectedAccess.
<mrdocs/Support/Expected.hpp>constexpr
T&
value() &;
Access the stored value or throw BadExpectedAccess (rvalue overload).
<mrdocs/Support/Expected.hpp>constexpr
T const&&
value() const &&;
Access the stored value or throw BadExpectedAccess (rvalue overload).
<mrdocs/Support/Expected.hpp>constexpr
T&&
value() &&;
value_or overloads
<mrdocs/Support/Expected.hpp>Return the contained value or a fallback copy.
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>);
» more...
Return the contained value or a fallback move.
template<class U>
constexpr
T
value_or(U&& v) && noexcept(std::is_nothrow_move_constructible_v<T> && std::is_nothrow_convertible_v<U, T>);
» more...
T.
| Name | Description |
|---|---|
| v | Fallback value to use when disengaged. |
Return the contained value or a fallback copy.
<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>);
T.
| Name | Description |
|---|---|
| v | Fallback value to use when disengaged. |
Return the contained value or a fallback move.
<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>);
T.
| Name | Description |
|---|---|
| v | Fallback value to use when disengaged. |
Return true when the Expected contains a value.
<mrdocs/Support/Expected.hpp>[[nodiscard]]
constexpr
explicit
operator bool() const noexcept;
Storage for the unexpected error.
<mrdocs/Support/Expected.hpp>E unex_;
Storage for the engaged value.
<mrdocs/Support/Expected.hpp>T val_;
Expected specialization for void values. Holds either success (no payload) or an unexpected error E.
<mrdocs/Support/Expected.hpp>template<
class T,
class E>
requires std::is_void_v<T>
class Expected<T, E>;
| Name | Description |
|---|---|
error_type | Error type stored when disengaged. |
rebind | Rebind to another value type with the same error type. |
unexpected_type | Alias for the unexpected wrapper. |
value_type | Value type for this specialization (always void). |
| Name | Description |
|---|---|
Expected [constructor] | Constructors |
~Expected [destructor] | Destructors |
operator= [deleted] | Assignment operators |
and_then | and_then overloads |
emplace | Reset to engaged state (no error). |
error | error overloads |
error_or | error_or overloads |
has_value | Return true when the Expected holds a value. |
operator* | Ensure the Expected is engaged; throws if it holds an error. |
or_else | or_else overloads |
swap | Swap states with another void Expected. |
transform | transform overloads |
transform_error | transform_error overloads |
value | value overloads |
operator bool | Return true when the Expected holds a value. |
| Name | Description |
|---|---|
unex_ [variant member] | Stored unexpected error. |
void_ [variant member] | Placeholder for the engaged state. |
| Name | Description |
|---|---|
swap |
Swap contents with another Expected. |
operator== |
Equality operator |
operator== |
Equality operator |
Expected |
A container holding an error or a value. |
Error type stored when disengaged.
<mrdocs/Support/Expected.hpp>using error_type = E;
Rebind to another value type with the same error type.
<mrdocs/Support/Expected.hpp>template<class U>
using rebind = Expected<U, error_type>;
Alias for the unexpected wrapper.
Value type for this specialization (always void).
<mrdocs/Support/Expected.hpp>using value_type = T;
Constructors
<mrdocs/Support/Expected.hpp>Construct an engaged Expected<void>.
constexpr
Expected() noexcept;
» more...
Default copy constructor.
Expected(Expected const& other) = default;
» more...
Copy-construct with explicit error handling for non-trivial E.
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>);
» more...
Default move constructor.
Expected(Expected&& other) = default;
» more...
Move-construct with explicit error handling for non-trivial E.
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>);
» more...
Construct an engaged Expected with in-place tag.
constexpr
explicit
Expected(std::in_place_t value) noexcept;
» more...
Construct a disengaged Expected from an unexpected error (copy).
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 &>);
» more...
Construct a disengaged Expected from an unexpected error (move).
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>);
» more...
Copy-construct from a compatible Expected carrying void.
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 &>);
» more...
Move-construct from a compatible Expected carrying void.
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>);
» more...
Construct a disengaged Expected from error arguments.
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...>);
» more...
Construct a disengaged Expected from an initializer list of errors.
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...>);
» more...
| Name | Description |
|---|---|
| args | Arguments forwarded to the error constructor. |
| il | Initializer list forwarded to the error constructor. |
Construct an engaged Expected<void>.
<mrdocs/Support/Expected.hpp>constexpr
Expected() noexcept;
Default copy constructor.
| Name | Description |
|---|---|
| other | The object to copy construct from |
Copy-construct with explicit error handling for non-trivial E.
<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>);
| Name | Description |
|---|---|
| x | The object to copy construct from |
Default move constructor.
| Name | Description |
|---|---|
| other | The object to move construct from |
Move-construct with explicit error handling for non-trivial E.
<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>);
| Name | Description |
|---|---|
| x | The object to move construct from |
Construct an engaged Expected with in-place tag.
<mrdocs/Support/Expected.hpp>constexpr
explicit
Expected(std::in_place_t value) noexcept;
| Name | Description |
|---|---|
| value | The object to construct from |
Construct a disengaged Expected from an unexpected error (copy).
<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 &>);
| Name | Description |
|---|---|
| u | The object to copy construct from |
Construct a disengaged Expected from an unexpected error (move).
<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>);
| Name | Description |
|---|---|
| u | The object to move construct from |
Copy-construct from a compatible Expected carrying void.
<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 &>);
| Name | Description |
|---|---|
| x | The object to copy construct from |
Move-construct from a compatible Expected carrying void.
<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>);
| Name | Description |
|---|---|
| x | The object to move construct from |
Construct a disengaged Expected from error arguments.
<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...>);
| Name | Description |
|---|---|
| args | Arguments forwarded to the error constructor. |
Construct a disengaged Expected from an initializer list of errors.
<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...>);
| Name | Description |
|---|---|
| il | Initializer list forwarded to the error constructor. |
| args | Additional arguments forwarded to the error constructor. |
Destructors
<mrdocs/Support/Expected.hpp>Defaulted trivial destructor.
constexpr
~Expected() = default;
» more...
Destroy the stored error when non-trivial.
constexpr
~Expected()
requires (!std::is_trivially_destructible_v<E>);
» more...
Defaulted trivial destructor.
<mrdocs/Support/Expected.hpp>constexpr
~Expected() = default;
Destroy the stored error when non-trivial.
<mrdocs/Support/Expected.hpp>constexpr
~Expected()
requires (!std::is_trivially_destructible_v<E>);
Assignment operators
<mrdocs/Support/Expected.hpp>Copy assignment disabled to keep semantics explicit.
Expected&
operator=(Expected const& other) = delete;
» more...
Copy-assign from another void Expected.
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>;
» more...
Move-assign from another void Expected.
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>;
» more...
Assign a new unexpected error (lvalue).
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);
» more...
Assign a new unexpected error (rvalue).
template<class G>
requires std::is_constructible_v<E, G> &&
std::is_assignable_v<E&, G>
constexpr
Expected&
operator=(Unexpected<G>&& e);
» more...
Copy assignment disabled to keep semantics explicit.
<mrdocs/Support/Expected.hpp>Expected&
operator=(Expected const& other) = delete;
| Name | Description |
|---|---|
| other | The object to copy assign from |
Copy-assign from another void Expected.
<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>;
| Name | Description |
|---|---|
| x | The object to copy assign from |
Move-assign from another void Expected.
<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>;
| Name | Description |
|---|---|
| x | The object to move assign from |
Assign a new unexpected error (lvalue).
<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);
| Name | Description |
|---|---|
| e | The object to copy assign from |
Assign a new unexpected error (rvalue).
<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);
| Name | Description |
|---|---|
| e | The object to move assign from |
and_then overloads
<mrdocs/Support/Expected.hpp>Invoke f when engaged, propagate error otherwise.
template<class Fn>
requires std::is_constructible_v<E, E&>
constexpr
auto
and_then(Fn&& f) &;
» more...
Invoke f when engaged (const lvalue), propagate error otherwise.
template<class Fn>
requires std::is_constructible_v<E, E const&>
constexpr
auto
and_then(Fn&& f) const &;
» more...
Invoke f when engaged (rvalue), propagate error otherwise.
template<class Fn>
requires std::is_constructible_v<E, E>
constexpr
auto
and_then(Fn&& f) &&;
» more...
Invoke f when engaged (const rvalue), propagate error otherwise.
template<class Fn>
requires std::is_constructible_v<E, const E>
constexpr
auto
and_then(Fn&& f) const &&;
» more...
f or this error.
| Name | Description |
|---|---|
| f | Continuation returning another Expected. |
Invoke f when engaged, propagate error otherwise.
<mrdocs/Support/Expected.hpp>template<class Fn>
requires std::is_constructible_v<E, E&>
constexpr
auto
and_then(Fn&& f) &;
f or this error.
| Name | Description |
|---|---|
| f | Continuation returning another Expected. |
Invoke f when engaged (const lvalue), propagate error otherwise.
<mrdocs/Support/Expected.hpp>template<class Fn>
requires std::is_constructible_v<E, E const&>
constexpr
auto
and_then(Fn&& f) const &;
f or this error.
| Name | Description |
|---|---|
| f | Continuation returning another Expected. |
Invoke f when engaged (rvalue), propagate error otherwise.
<mrdocs/Support/Expected.hpp>template<class Fn>
requires std::is_constructible_v<E, E>
constexpr
auto
and_then(Fn&& f) &&;
f or this error.
| Name | Description |
|---|---|
| f | Continuation returning another Expected. |
Invoke f when engaged (const rvalue), propagate error otherwise.
<mrdocs/Support/Expected.hpp>template<class Fn>
requires std::is_constructible_v<E, const E>
constexpr
auto
and_then(Fn&& f) const &&;
f or this error.
| Name | Description |
|---|---|
| f | Continuation returning another Expected. |
Reset to engaged state (no error).
<mrdocs/Support/Expected.hpp>constexpr
void
emplace() noexcept;
error overloads
<mrdocs/Support/Expected.hpp>Return a const reference to the contained error; precondition: disengaged.
constexpr
E const&
error() const & noexcept;
» more...
Return a reference to the contained error; precondition: disengaged.
constexpr
E&
error() & noexcept;
» more...
Return an rvalue reference to the contained error; precondition: disengaged.
constexpr
E const&&
error() const && noexcept;
» more...
Return an rvalue reference to the contained error; precondition: disengaged.
constexpr
E&&
error() && noexcept;
» more...
Return a const reference to the contained error; precondition: disengaged.
<mrdocs/Support/Expected.hpp>constexpr
E const&
error() const & noexcept;
Return a reference to the contained error; precondition: disengaged.
<mrdocs/Support/Expected.hpp>constexpr
E&
error() & noexcept;
Return an rvalue reference to the contained error; precondition: disengaged.
<mrdocs/Support/Expected.hpp>constexpr
E const&&
error() const && noexcept;
Return an rvalue reference to the contained error; precondition: disengaged.
<mrdocs/Support/Expected.hpp>constexpr
E&&
error() && noexcept;
error_or overloads
<mrdocs/Support/Expected.hpp>Return the error or a fallback copy.
template<class G = E>
constexpr
E
error_or(G&& e) const &;
» more...
Return the error or a fallback move.
template<class G = E>
constexpr
E
error_or(G&& e) &&;
» more...
E.
| Name | Description |
|---|---|
| e | Fallback to return if engaged. |
Return the error or a fallback copy.
<mrdocs/Support/Expected.hpp>template<class G = E>
constexpr
E
error_or(G&& e) const &;
E.
| Name | Description |
|---|---|
| e | Fallback to return if engaged. |
Return the error or a fallback move.
<mrdocs/Support/Expected.hpp>template<class G = E>
constexpr
E
error_or(G&& e) &&;
E.
| Name | Description |
|---|---|
| e | Fallback to return if engaged. |
Return true when the Expected holds a value.
<mrdocs/Support/Expected.hpp>[[nodiscard]]
constexpr
bool
has_value() const noexcept;
Ensure the Expected is engaged; throws if it holds an error.
<mrdocs/Support/Expected.hpp>constexpr
void
operator*() const noexcept;
or_else overloads
<mrdocs/Support/Expected.hpp>Invoke f when in error, otherwise return current value.
template<class Fn>
constexpr
auto
or_else(Fn&& f) &;
» more...
Invoke f when in error (const lvalue), otherwise return current value.
template<class Fn>
constexpr
auto
or_else(Fn&& f) const &;
» more...
Invoke f when in error (rvalue), otherwise return current value.
template<class Fn>
constexpr
auto
or_else(Fn&& f) &&;
» more...
Invoke f when in error (const rvalue), otherwise return current value.
template<class Fn>
constexpr
auto
or_else(Fn&& f) const &&;
» more...
f.
| Name | Description |
|---|---|
| f | Recovery function returning an Expected. |
Invoke f when in error, otherwise return current value.
<mrdocs/Support/Expected.hpp>template<class Fn>
constexpr
auto
or_else(Fn&& f) &;
f.
| Name | Description |
|---|---|
| f | Recovery function returning an Expected. |
Invoke f when in error (const lvalue), otherwise return current value.
<mrdocs/Support/Expected.hpp>template<class Fn>
constexpr
auto
or_else(Fn&& f) const &;
f.
| Name | Description |
|---|---|
| f | Recovery function returning an Expected. |
Invoke f when in error (rvalue), otherwise return current value.
<mrdocs/Support/Expected.hpp>template<class Fn>
constexpr
auto
or_else(Fn&& f) &&;
f.
| Name | Description |
|---|---|
| f | Recovery function returning an Expected. |
Invoke f when in error (const rvalue), otherwise return current value.
<mrdocs/Support/Expected.hpp>template<class Fn>
constexpr
auto
or_else(Fn&& f) const &&;
f.
| Name | Description |
|---|---|
| f | Recovery function returning an Expected. |
Swap states with another void Expected.
<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>;
| Name | Description |
|---|---|
| x | Other instance to exchange with. |
transform overloads
<mrdocs/Support/Expected.hpp>Transform the contained error type when engaged (lvalue).
template<class Fn>
requires std::is_constructible_v<E, E&>
constexpr
auto
transform(Fn&& f) &;
» more...
Transform the contained error type when engaged (const lvalue).
template<class Fn>
requires std::is_constructible_v<E, E const&>
constexpr
auto
transform(Fn&& f) const &;
» more...
Transform the contained error type when engaged (rvalue).
template<class Fn>
requires std::is_constructible_v<E, E>
constexpr
auto
transform(Fn&& f) &&;
» more...
Transform the contained error type when engaged (const rvalue).
template<class Fn>
requires std::is_constructible_v<E, const E>
constexpr
auto
transform(Fn&& f) const &&;
» more...
f or the existing error.
| Name | Description |
|---|---|
| f | Transformation to apply. |
Transform the contained error type when engaged (lvalue).
<mrdocs/Support/Expected.hpp>template<class Fn>
requires std::is_constructible_v<E, E&>
constexpr
auto
transform(Fn&& f) &;
f or the existing error.
| Name | Description |
|---|---|
| f | Transformation to apply. |
Transform the contained error type when engaged (const lvalue).
<mrdocs/Support/Expected.hpp>template<class Fn>
requires std::is_constructible_v<E, E const&>
constexpr
auto
transform(Fn&& f) const &;
f or the existing error.
| Name | Description |
|---|---|
| f | Transformation to apply. |
Transform the contained error type when engaged (rvalue).
<mrdocs/Support/Expected.hpp>template<class Fn>
requires std::is_constructible_v<E, E>
constexpr
auto
transform(Fn&& f) &&;
f or the existing error.
| Name | Description |
|---|---|
| f | Transformation to apply. |
Transform the contained error type when engaged (const rvalue).
<mrdocs/Support/Expected.hpp>template<class Fn>
requires std::is_constructible_v<E, const E>
constexpr
auto
transform(Fn&& f) const &&;
f or the existing error.
| Name | Description |
|---|---|
| f | Transformation to apply. |
transform_error overloads
<mrdocs/Support/Expected.hpp>Transform the stored error value when disengaged.
template<class Fn>
constexpr
auto
transform_error(Fn&& f) &;
» more...
Transform the stored error value when disengaged (const lvalue).
template<class Fn>
constexpr
auto
transform_error(Fn&& f) const &;
» more...
Transform the stored error value when disengaged (rvalue).
template<class Fn>
constexpr
auto
transform_error(Fn&& f) &&;
» more...
Transform the stored error value when disengaged (const rvalue).
template<class Fn>
constexpr
auto
transform_error(Fn&& f) const &&;
» more...
| Name | Description |
|---|---|
| f | Transformation to apply. |
Transform the stored error value when disengaged.
<mrdocs/Support/Expected.hpp>template<class Fn>
constexpr
auto
transform_error(Fn&& f) &;
| Name | Description |
|---|---|
| f | Transformation to apply. |
Transform the stored error value when disengaged (const lvalue).
<mrdocs/Support/Expected.hpp>template<class Fn>
constexpr
auto
transform_error(Fn&& f) const &;
| Name | Description |
|---|---|
| f | Transformation to apply. |
Transform the stored error value when disengaged (rvalue).
<mrdocs/Support/Expected.hpp>template<class Fn>
constexpr
auto
transform_error(Fn&& f) &&;
| Name | Description |
|---|---|
| f | Transformation to apply. |
Transform the stored error value when disengaged (const rvalue).
<mrdocs/Support/Expected.hpp>template<class Fn>
constexpr
auto
transform_error(Fn&& f) const &&;
| Name | Description |
|---|---|
| f | Transformation to apply. |
value overloads
<mrdocs/Support/Expected.hpp>Ensure the Expected is engaged; throws BadExpectedAccess if not.
constexpr
void
value() const &;
» more...
Ensure the Expected is engaged; throws BadExpectedAccess if not (rvalue overload).
constexpr
void
value() &&;
» more...
Ensure the Expected is engaged; throws BadExpectedAccess if not.
<mrdocs/Support/Expected.hpp>constexpr
void
value() const &;
Ensure the Expected is engaged; throws BadExpectedAccess if not (rvalue overload).
<mrdocs/Support/Expected.hpp>constexpr
void
value() &&;
Return true when the Expected holds a value.
<mrdocs/Support/Expected.hpp>[[nodiscard]]
constexpr
explicit
operator bool() const noexcept;
Stored unexpected error.
<mrdocs/Support/Expected.hpp>E unex_;
Placeholder for the engaged state.
<mrdocs/Support/Expected.hpp>engaged_state void_;
Expected specialization for lvalue references. Holds either a bound reference to T or an unexpected error E.
<mrdocs/Support/Expected.hpp>template<
class T,
class E>
class Expected<T&, E>;
| Name | Description |
|---|---|
error_type | Error type carried when disengaged. |
rebind | Rebind the reference to another value type while keeping E. |
unexpected_type | Convenience alias for the unexpected wrapper. |
value_type | Referenced value type. |
| Name | Description |
|---|---|
Expected [constructor] | Constructors |
~Expected [destructor] | Destroy the held error when disengaged. |
operator= | Assignment operators |
and_then | and_then overloads |
emplace | emplace overloads |
error | error overloads |
error_or | error_or overloads |
has_value | Check whether the Expected currently contains a reference. |
operator* | Dereference operators |
operator-> | Access the bound reference pointer; undefined if disengaged. |
or_else | or_else overloads |
swap | Swap state with another reference Expected. |
transform | transform overloads |
transform_error | transform_error overloads |
value | value overloads |
value_or | value_or overloads |
operator bool | Return true when a reference is bound. |
| Name | Description |
|---|---|
p_ [variant member] | Pointer to the referenced value when engaged. |
unex_ [variant member] | Stored unexpected error when disengaged. |
| Name | Description |
|---|---|
operator== |
Equality operator |
operator== |
Equality operator |
operator== |
Equality operator |
swap |
Error type carried when disengaged.
<mrdocs/Support/Expected.hpp>using error_type = E;
Rebind the reference to another value type while keeping E.
<mrdocs/Support/Expected.hpp>template<class U>
using rebind = Expected<U, error_type>;
Convenience alias for the unexpected wrapper.
Referenced value type.
<mrdocs/Support/Expected.hpp>using value_type = T&;
Constructors
<mrdocs/Support/Expected.hpp>Construct a disengaged Expected with no bound reference.
constexpr
Expected() noexcept;
» more...
Copy-construct from another reference Expected.
constexpr
Expected(Expected const& other) = default;
» more...
Move-construct from another reference Expected.
constexpr
Expected(Expected&& other) = default;
» more...
Bind to an lvalue result, marking the expected engaged.
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 &>);
» more...
Bind to the result stored inside another Expected value.
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>);
» more...
Copy-construct from another reference 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>);
» more...
Construct from an unexpected error (copy).
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 &>);
» more...
Deleted: binding a reference Expected from a temporary would dangle.
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&& u) = delete;
» more...
Deleted: rebinding from a temporary Expected<U, E> would dangle.
template<class U>
constexpr
Expected(Expected<U, E>&& value) = delete;
» more...
Move-construct from another reference 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>);
» more...
Construct from an unexpected error (move).
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>);
» more...
Invoke a factory to obtain the bound reference in-place.
template<class Fn>
constexpr
explicit
Expected(
/* implementation-defined */ tag,
Fn&& fn);
» more...
Bind in-place to an existing lvalue.
template<class U>
requires ok_bind_v<U&>
constexpr
explicit
Expected(
std::in_place_t tag,
U& u) noexcept;
» more...
Construct an unexpected state by invoking a factory.
template<class Fn>
constexpr
explicit
Expected(
/* implementation-defined */ tag,
Fn&& fn);
» more...
Construct a disengaged Expected from error arguments.
template<class... Args>
requires std::is_constructible_v<E, Args...>
constexpr
explicit
Expected(
unexpect_t tag,
Args&&... args) noexcept(std::is_nothrow_constructible_v<E, Args...>);
» more...
Construct a disengaged Expected from an initializer list.
template<
class U,
class... Args>
requires std::is_constructible_v<E, std::initializer_list<U>&, Args...>
constexpr
explicit
Expected(
unexpect_t tag,
std::initializer_list<U> il,
Args&&... args) noexcept(std::is_nothrow_constructible_v<E, std::initializer_list<U> &, Args...>);
» more...
| Name | Description |
|---|---|
| other | Source instance providing the lvalue. |
| u | Unexpected wrapper to copy. |
| fn | Callable that returns a bindable lvalue. |
| tag | Tag selecting in-place construction. |
| args | Arguments forwarded to the error constructor. |
| il | Initializer list forwarded to the error constructor. |
Construct a disengaged Expected with no bound reference.
<mrdocs/Support/Expected.hpp>constexpr
Expected() noexcept;
Copy-construct from another reference Expected.
<mrdocs/Support/Expected.hpp>constexpr
Expected(Expected const& other) = default;
| Name | Description |
|---|---|
| other | The object to copy construct from |
Move-construct from another reference Expected.
| Name | Description |
|---|---|
| other | The object to move construct from |
Bind to an lvalue result, marking the expected engaged.
<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 &>);
| Name | Description |
|---|---|
| u | The object to copy construct from |
Bind to the result stored inside another Expected value.
<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>);
| Name | Description |
|---|---|
| other | Source instance providing the lvalue. |
Copy-construct from another reference Expected.
<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>);
| Name | Description |
|---|---|
| other | Source instance to bind to. |
Construct from an unexpected error (copy).
<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 &>);
| Name | Description |
|---|---|
| u | Unexpected wrapper to copy. |
Deleted: binding a reference Expected from a temporary would dangle.
<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&& u) = delete;
| Name | Description |
|---|---|
| u | Temporary value (deleted). |
Deleted: rebinding from a temporary Expected<U, E> would dangle.
<mrdocs/Support/Expected.hpp>template<class U>
constexpr
Expected(Expected<U, E>&& value) = delete;
| Name | Description |
|---|---|
| value | The object to move construct from |
Move-construct from another reference Expected.
<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>);
| Name | Description |
|---|---|
| other | Source instance to bind to. |
Construct from an unexpected error (move).
<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>);
| Name | Description |
|---|---|
| u | Unexpected wrapper to move from. |
Invoke a factory to obtain the bound reference in-place.
<mrdocs/Support/Expected.hpp>template<class Fn>
constexpr
explicit
Expected(
/* implementation-defined */ tag,
Fn&& fn);
| Name | Description |
|---|---|
| fn | Callable that returns a bindable lvalue. |
| tag | The object to construct from |
Bind in-place to an existing lvalue.
<mrdocs/Support/Expected.hpp>template<class U>
requires ok_bind_v<U&>
constexpr
explicit
Expected(
std::in_place_t tag,
U& u) noexcept;
| Name | Description |
|---|---|
| tag | Tag selecting in-place construction. |
| u | Lvalue to bind this Expected to. |
Construct an unexpected state by invoking a factory.
<mrdocs/Support/Expected.hpp>template<class Fn>
constexpr
explicit
Expected(
/* implementation-defined */ tag,
Fn&& fn);
| Name | Description |
|---|---|
| fn | Callable that produces an error value. |
| tag | The object to construct from |
Construct a disengaged Expected from error arguments.
<mrdocs/Support/Expected.hpp>template<class... Args>
requires std::is_constructible_v<E, Args...>
constexpr
explicit
Expected(
unexpect_t tag,
Args&&... args) noexcept(std::is_nothrow_constructible_v<E, Args...>);
| Name | Description |
|---|---|
| tag | Tag selecting unexpected construction. |
| args | Arguments forwarded to the error constructor. |
Construct a disengaged Expected from an initializer list.
<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 tag,
std::initializer_list<U> il,
Args&&... args) noexcept(std::is_nothrow_constructible_v<E, std::initializer_list<U> &, Args...>);
| Name | Description |
|---|---|
| tag | Tag selecting unexpected construction. |
| il | Initializer list forwarded to the error constructor. |
| args | Additional arguments forwarded to the error constructor. |
Destroy the held error when disengaged.
<mrdocs/Support/Expected.hpp>constexpr
~Expected();
Assignment operators
<mrdocs/Support/Expected.hpp>Copy-assign, rebinding or copying the error.
constexpr
Expected&
operator=(Expected const& other) = default;
» more...
Move-assign, rebinding or moving the error.
constexpr
Expected&
operator=(Expected&& other) = default;
» more...
Assign a new binding from an lvalue.
template<class U>
requires ok_bind_v<U&>
constexpr
Expected&
operator=(U& u) noexcept(std::is_nothrow_constructible_v<R, U &>);
» more...
Bind to the value contained in another Expected instance.
template<class U>
requires detail::ok_bind_ref_v<R, U&>
constexpr
Expected&
operator=(Expected<U, E>& other);
» more...
Assign from another reference Expected (copy).
template<class U>
requires detail::ok_bind_ref_v<R, U&>
constexpr
Expected&
operator=(Expected<U&, E> const& other);
» more...
Replace the stored state with an unexpected error (copy).
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);
» more...
Deleted: rebinding from a temporary would dangle.
template<class U>
requires (!ok_bind_v<U &&>)
constexpr
Expected&
operator=(U&& u) = delete;
» more...
Deleted: cannot bind to a temporary Expected holding a value.
template<class U>
constexpr
Expected&
operator=(Expected<U, E>&& value) = delete;
» more...
Assign from another reference Expected (move).
template<class U>
requires detail::ok_bind_ref_v<R, U&>
constexpr
Expected&
operator=(Expected<U&, E>&& other);
» more...
Replace the stored state with an unexpected error (move).
template<class G>
requires std::is_constructible_v<E, G> && std::is_assignable_v<E&, G>
constexpr
Expected&
operator=(Unexpected<G>&& e);
» more...
| Name | Description |
|---|---|
| other | Source lvalue Expected to bind to. |
| e | Unexpected wrapper to copy from. |
| u | Temporary value (deleted). |
Copy-assign, rebinding or copying the error.
<mrdocs/Support/Expected.hpp>constexpr
Expected&
operator=(Expected const& other) = default;
| Name | Description |
|---|---|
| other | The object to copy assign from |
Move-assign, rebinding or moving the error.
<mrdocs/Support/Expected.hpp>constexpr
Expected&
operator=(Expected&& other) = default;
| Name | Description |
|---|---|
| other | The object to move assign from |
Assign a new binding from an lvalue.
<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 &>);
| Name | Description |
|---|---|
| u | The object to copy assign from |
Bind to the value contained in another Expected instance.
<mrdocs/Support/Expected.hpp>template<class U>
requires detail::ok_bind_ref_v<R, U&>
constexpr
Expected&
operator=(Expected<U, E>& other);
| Name | Description |
|---|---|
| other | Source lvalue Expected to bind to. |
Assign from another reference Expected (copy).
<mrdocs/Support/Expected.hpp>template<class U>
requires detail::ok_bind_ref_v<R, U&>
constexpr
Expected&
operator=(Expected<U&, E> const& other);
| Name | Description |
|---|---|
| other | Source instance to bind to or copy error from. |
Replace the stored state with an unexpected error (copy).
<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);
| Name | Description |
|---|---|
| e | Unexpected wrapper to copy from. |
Deleted: rebinding from a temporary would dangle.
<mrdocs/Support/Expected.hpp>template<class U>
requires (!ok_bind_v<U &&>)
constexpr
Expected&
operator=(U&& u) = delete;
| Name | Description |
|---|---|
| u | Temporary value (deleted). |
Deleted: cannot bind to a temporary Expected holding a value.
<mrdocs/Support/Expected.hpp>template<class U>
constexpr
Expected&
operator=(Expected<U, E>&& value) = delete;
| Name | Description |
|---|---|
| value | The object to move assign from |
Assign from another reference Expected (move).
<mrdocs/Support/Expected.hpp>template<class U>
requires detail::ok_bind_ref_v<R, U&>
constexpr
Expected&
operator=(Expected<U&, E>&& other);
| Name | Description |
|---|---|
| other | Source instance to bind to or move error from. |
Replace the stored state with an unexpected error (move).
<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);
| Name | Description |
|---|---|
| e | Unexpected wrapper to move from. |
and_then overloads
<mrdocs/Support/Expected.hpp>Invoke f with the bound reference when engaged.
template<class Fn>
constexpr
auto
and_then(Fn&& f) &;
» more...
Invoke f with the bound reference when engaged (const lvalue).
template<class Fn>
constexpr
auto
and_then(Fn&& f) const &;
» more...
Invoke f with the bound reference when engaged (rvalue).
template<class Fn>
constexpr
auto
and_then(Fn&& f) &&;
» more...
Invoke f with the bound reference when engaged (const rvalue).
template<class Fn>
constexpr
auto
and_then(Fn&& f) const &&;
» more...
f or current error.
| Name | Description |
|---|---|
| f | Continuation producing another Expected. |
Invoke f with the bound reference when engaged.
<mrdocs/Support/Expected.hpp>template<class Fn>
constexpr
auto
and_then(Fn&& f) &;
f or current error.
| Name | Description |
|---|---|
| f | Continuation producing another Expected. |
Invoke f with the bound reference when engaged (const lvalue).
<mrdocs/Support/Expected.hpp>template<class Fn>
constexpr
auto
and_then(Fn&& f) const &;
f or current error.
| Name | Description |
|---|---|
| f | Continuation producing another Expected. |
Invoke f with the bound reference when engaged (rvalue).
<mrdocs/Support/Expected.hpp>template<class Fn>
constexpr
auto
and_then(Fn&& f) &&;
f or current error.
| Name | Description |
|---|---|
| f | Continuation producing another Expected. |
Invoke f with the bound reference when engaged (const rvalue).
<mrdocs/Support/Expected.hpp>template<class Fn>
constexpr
auto
and_then(Fn&& f) const &&;
f or current error.
| Name | Description |
|---|---|
| f | Continuation producing another Expected. |
emplace overloads
<mrdocs/Support/Expected.hpp>Rebind to a new lvalue, returning the stored reference.
template<class U>
requires ok_bind_v<U&>
constexpr
T&
emplace(U& u) noexcept;
» more...
Deleted: cannot bind reference Expected to a temporary.
template<class U>
requires (!ok_bind_v<U &&>)
constexpr
T&
emplace(U&& u) = delete;
» more...
| Name | Description |
|---|---|
| u | Reference to bind to. |
Rebind to a new lvalue, returning the stored reference.
<mrdocs/Support/Expected.hpp>template<class U>
requires ok_bind_v<U&>
constexpr
T&
emplace(U& u) noexcept;
| Name | Description |
|---|---|
| u | Reference to bind to. |
Deleted: cannot bind reference Expected to a temporary.
<mrdocs/Support/Expected.hpp>template<class U>
requires (!ok_bind_v<U &&>)
constexpr
T&
emplace(U&& u) = delete;
error overloads
<mrdocs/Support/Expected.hpp>Access the stored error; requires disengaged state.
[[nodiscard]]
constexpr
E&
error() & noexcept;
» more...
Access the stored error (const lvalue).
[[nodiscard]]
constexpr
E const&
error() const & noexcept;
» more...
Access the stored error (rvalue).
[[nodiscard]]
constexpr
E&&
error() && noexcept;
» more...
Access the stored error (const rvalue).
[[nodiscard]]
constexpr
E const&&
error() const && noexcept;
» more...
Access the stored error; requires disengaged state.
<mrdocs/Support/Expected.hpp>[[nodiscard]]
constexpr
E&
error() & noexcept;
Access the stored error (const lvalue).
<mrdocs/Support/Expected.hpp>[[nodiscard]]
constexpr
E const&
error() const & noexcept;
Access the stored error (rvalue).
<mrdocs/Support/Expected.hpp>[[nodiscard]]
constexpr
E&&
error() && noexcept;
Access the stored error (const rvalue).
<mrdocs/Support/Expected.hpp>[[nodiscard]]
constexpr
E const&&
error() const && noexcept;
error_or overloads
<mrdocs/Support/Expected.hpp>Return the stored error or the provided fallback (copy).
template<class G = E>
constexpr
E
error_or(G&& g) const &;
» more...
Return the stored error or the provided fallback (move).
template<class G = E>
constexpr
E
error_or(G&& g) &&;
» more...
| Name | Description |
|---|---|
| g | Fallback error to return when engaged. |
Return the stored error or the provided fallback (copy).
<mrdocs/Support/Expected.hpp>template<class G = E>
constexpr
E
error_or(G&& g) const &;
| Name | Description |
|---|---|
| g | Fallback error to return when engaged. |
Return the stored error or the provided fallback (move).
<mrdocs/Support/Expected.hpp>template<class G = E>
constexpr
E
error_or(G&& g) &&;
| Name | Description |
|---|---|
| g | Fallback error to move when engaged. |
Check whether the Expected currently contains a reference.
<mrdocs/Support/Expected.hpp>[[nodiscard]]
constexpr
bool
has_value() const noexcept;
true if a reference is bound.
Dereference operators
<mrdocs/Support/Expected.hpp>Dereference the bound reference.
[[nodiscard]]
constexpr
T&
operator*() & noexcept;
» more...
Dereference the bound reference (const).
[[nodiscard]]
constexpr
T const&
operator*() const & noexcept;
» more...
Dereference the bound reference, preserving value category.
[[nodiscard]]
constexpr
T&&
operator*() && noexcept;
» more...
Dereference the bound reference, preserving value category (const rvalue).
[[nodiscard]]
constexpr
T const&&
operator*() const && noexcept;
» more...
Dereference the bound reference.
<mrdocs/Support/Expected.hpp>[[nodiscard]]
constexpr
T&
operator*() & noexcept;
Dereference the bound reference (const).
<mrdocs/Support/Expected.hpp>[[nodiscard]]
constexpr
T const&
operator*() const & noexcept;
Dereference the bound reference, preserving value category.
<mrdocs/Support/Expected.hpp>[[nodiscard]]
constexpr
T&&
operator*() && noexcept;
Dereference the bound reference, preserving value category (const rvalue).
<mrdocs/Support/Expected.hpp>[[nodiscard]]
constexpr
T const&&
operator*() const && noexcept;
Access the bound reference pointer; undefined if disengaged.
<mrdocs/Support/Expected.hpp>Access the bound reference pointer; undefined if disengaged.
[[nodiscard]]
constexpr
T*
operator->() noexcept;
» more...
Access the bound reference pointer; undefined if disengaged.
[[nodiscard]]
constexpr
T const*
operator->() const noexcept;
» more...
Access the bound reference pointer; undefined if disengaged.
<mrdocs/Support/Expected.hpp>[[nodiscard]]
constexpr
T*
operator->() noexcept;
Access the bound reference pointer; undefined if disengaged.
<mrdocs/Support/Expected.hpp>[[nodiscard]]
constexpr
T const*
operator->() const noexcept;
or_else overloads
<mrdocs/Support/Expected.hpp>Recover with f if disengaged, otherwise return this value.
template<class Fn>
constexpr
Expected
or_else(Fn&& f) &;
» more...
Recover with f if disengaged (const lvalue).
template<class Fn>
constexpr
Expected
or_else(Fn&& f) const &;
» more...
Recover with f if disengaged (rvalue).
template<class Fn>
constexpr
Expected
or_else(Fn&& f) &&;
» more...
Recover with f if disengaged (const rvalue).
template<class Fn>
constexpr
Expected
or_else(Fn&& f) const &&;
» more...
| Name | Description |
|---|---|
| f | Recovery function returning an Expected. |
Recover with f if disengaged, otherwise return this value.
<mrdocs/Support/Expected.hpp>template<class Fn>
constexpr
Expected
or_else(Fn&& f) &;
T or an unexpected error E.
| Name | Description |
|---|---|
| f | Recovery function returning an Expected. |
Recover with f if disengaged (const lvalue).
<mrdocs/Support/Expected.hpp>template<class Fn>
constexpr
Expected
or_else(Fn&& f) const &;
T or an unexpected error E.
| Name | Description |
|---|---|
| f | Recovery function returning an Expected. |
Recover with f if disengaged (rvalue).
<mrdocs/Support/Expected.hpp>template<class Fn>
constexpr
Expected
or_else(Fn&& f) &&;
T or an unexpected error E.
| Name | Description |
|---|---|
| f | Recovery function returning an Expected. |
Recover with f if disengaged (const rvalue).
<mrdocs/Support/Expected.hpp>template<class Fn>
constexpr
Expected
or_else(Fn&& f) const &&;
T or an unexpected error E.
| Name | Description |
|---|---|
| f | Recovery function returning an Expected. |
Swap state with another reference Expected.
<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>;
| Name | Description |
|---|---|
| x | Other instance to exchange with. |
transform overloads
<mrdocs/Support/Expected.hpp>Transform the bound value when engaged.
template<class Fn>
constexpr
auto
transform(Fn&& f) &;
» more...
Transform the bound value when engaged (const lvalue).
template<class Fn>
constexpr
auto
transform(Fn&& f) const &;
» more...
Transform the bound value when engaged (rvalue).
template<class Fn>
constexpr
auto
transform(Fn&& f) &&;
» more...
Transform the bound value when engaged (const rvalue).
template<class Fn>
constexpr
auto
transform(Fn&& f) const &&;
» more...
| Name | Description |
|---|---|
| f | Transformation applied to the bound reference. |
Transform the bound value when engaged.
<mrdocs/Support/Expected.hpp>template<class Fn>
constexpr
auto
transform(Fn&& f) &;
| Name | Description |
|---|---|
| f | Transformation applied to the bound reference. |
Transform the bound value when engaged (const lvalue).
<mrdocs/Support/Expected.hpp>template<class Fn>
constexpr
auto
transform(Fn&& f) const &;
| Name | Description |
|---|---|
| f | Transformation applied to the bound reference. |
Transform the bound value when engaged (rvalue).
<mrdocs/Support/Expected.hpp>template<class Fn>
constexpr
auto
transform(Fn&& f) &&;
| Name | Description |
|---|---|
| f | Transformation applied to the bound reference. |
Transform the bound value when engaged (const rvalue).
<mrdocs/Support/Expected.hpp>template<class Fn>
constexpr
auto
transform(Fn&& f) const &&;
| Name | Description |
|---|---|
| f | Transformation applied to the bound reference. |
transform_error overloads
<mrdocs/Support/Expected.hpp>Transform the stored error when disengaged.
template<class Fn>
constexpr
auto
transform_error(Fn&& f) &;
» more...
Transform the stored error when disengaged (const lvalue).
template<class Fn>
constexpr
auto
transform_error(Fn&& f) const &;
» more...
Transform the stored error when disengaged (rvalue).
template<class Fn>
constexpr
auto
transform_error(Fn&& f) &&;
» more...
Transform the stored error when disengaged (const rvalue).
template<class Fn>
constexpr
auto
transform_error(Fn&& f) const &&;
» more...
| Name | Description |
|---|---|
| f | Transformation applied to the error. |
Transform the stored error when disengaged.
<mrdocs/Support/Expected.hpp>template<class Fn>
constexpr
auto
transform_error(Fn&& f) &;
| Name | Description |
|---|---|
| f | Transformation applied to the error. |
Transform the stored error when disengaged (const lvalue).
<mrdocs/Support/Expected.hpp>template<class Fn>
constexpr
auto
transform_error(Fn&& f) const &;
| Name | Description |
|---|---|
| f | Transformation applied to the error. |
Transform the stored error when disengaged (rvalue).
<mrdocs/Support/Expected.hpp>template<class Fn>
constexpr
auto
transform_error(Fn&& f) &&;
| Name | Description |
|---|---|
| f | Transformation applied to the error. |
Transform the stored error when disengaged (const rvalue).
<mrdocs/Support/Expected.hpp>template<class Fn>
constexpr
auto
transform_error(Fn&& f) const &&;
| Name | Description |
|---|---|
| f | Transformation applied to the error. |
value overloads
<mrdocs/Support/Expected.hpp>Return the bound reference or throw on disengaged state.
constexpr
T&
value() &;
» more...
Return the bound reference or throw on disengaged state (const lvalue).
constexpr
T const&
value() const &;
» more...
Return the bound reference or throw on disengaged state (rvalue).
constexpr
T&&
value() &&;
» more...
Return the bound reference or throw on disengaged state (const rvalue).
constexpr
T const&&
value() const &&;
» more...
Return the bound reference or throw on disengaged state.
<mrdocs/Support/Expected.hpp>constexpr
T&
value() &;
Return the bound reference or throw on disengaged state (const lvalue).
<mrdocs/Support/Expected.hpp>constexpr
T const&
value() const &;
Return the bound reference or throw on disengaged state (rvalue).
<mrdocs/Support/Expected.hpp>constexpr
T&&
value() &&;
Return the bound reference or throw on disengaged state (const rvalue).
<mrdocs/Support/Expected.hpp>constexpr
T const&&
value() const &&;
value_or overloads
<mrdocs/Support/Expected.hpp>Return the bound value or a fallback copy when disengaged.
template<class U>
constexpr
std::remove_reference_t<T>
value_or(U&& u) const &;
» more...
Return the bound value or a fallback move when disengaged.
template<class U>
constexpr
std::remove_reference_t<T>
value_or(U&& u) &&;
» more...
| Name | Description |
|---|---|
| u | Fallback value to return if no reference is bound. |
Return the bound value or a fallback copy when disengaged.
<mrdocs/Support/Expected.hpp>template<class U>
constexpr
std::remove_reference_t<T>
value_or(U&& u) const &;
| Name | Description |
|---|---|
| u | Fallback value to return if no reference is bound. |
Return the bound value or a fallback move when disengaged.
<mrdocs/Support/Expected.hpp>template<class U>
constexpr
std::remove_reference_t<T>
value_or(U&& u) &&;
| Name | Description |
|---|---|
| u | Fallback value to move if no reference is bound. |
Return true when a reference is bound.
<mrdocs/Support/Expected.hpp>[[nodiscard]]
constexpr
explicit
operator bool() const noexcept;
Pointer to the referenced value when engaged.
<mrdocs/Support/Expected.hpp>T* p_;
Stored unexpected error when disengaged.
<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.
<mrdocs/Metadata/Specifiers/ExplicitInfo.hpp>struct ExplicitInfo;
| Name | Description |
|---|---|
operator<=> | Compare explicit-specifier info. |
| Name | Description |
|---|---|
Implicit | Whether an explicit-specifier was user-written. |
Kind | The evaluated exception specification. |
Operand | The operand of the explicit-specifier, if any. |
| Name | Description |
|---|---|
toString | Convert ExplicitInfo to a string. |
Compare explicit-specifier info.
<mrdocs/Metadata/Specifiers/ExplicitInfo.hpp>constexpr
auto
operator<=>(ExplicitInfo const& rhs) const = default;
| Name | Description |
|---|---|
| rhs | The right operand |
Whether an explicit-specifier was user-written.
<mrdocs/Metadata/Specifiers/ExplicitInfo.hpp>bool Implicit = true;
The evaluated exception specification.
<mrdocs/Metadata/Specifiers/ExplicitInfo.hpp>ExplicitKind Kind = ExplicitKind::False;
The operand of the explicit-specifier, if any.
<mrdocs/Metadata/Specifiers/ExplicitInfo.hpp>std::string Operand;
Represents an expression
<mrdocs/Metadata/Expression.hpp>struct ExprInfo;
| Name | Description |
|---|---|
asExpr | View this object as its base expression. |
operator<=> | Order expressions by written form. |
| Name | Description |
|---|---|
Written | The expression, as written |
| Name | Description |
|---|---|
merge | Merge metadata from another expression. |
| Name | Description |
|---|---|
ConstantExprInfo
| Represents an expression with a (possibly known) value |
View this object as its base expression.
<mrdocs/Metadata/Expression.hpp>View this object as its base expression.
ExprInfo&
asExpr() noexcept;
» more...
View this object as its base expression.
ExprInfo const&
asExpr() const noexcept;
» more...
View this object as its base expression.
View this object as its base expression.
Order expressions by written form.
<mrdocs/Metadata/Expression.hpp>constexpr
auto
operator<=>(ExprInfo const& rhs) const = default;
| Name | Description |
|---|---|
| rhs | The right operand |
The expression, as written
<mrdocs/Metadata/Expression.hpp>std::string Written;
A format string with source location.
<mrdocs/Support/Error.hpp>template<class... Args>
struct FormatString;
| Name | Description |
|---|---|
FormatString [constructor] | Capture a format string and its originating location. |
| Name | Description |
|---|---|
fs | Format string view. |
loc | Originating source location for diagnostics. |
| Name | Description |
|---|---|
formatError | Return a formatted error. |
Capture a format string and its originating location.
<mrdocs/Support/Error.hpp>template<class T>
FormatString(
T const& fs_,
std::source_location loc_ = source_location::current());
| Name | Description |
|---|---|
| fs_ | The format string to copy. |
| loc_ | Source location where formatting is requested. |
Format string view.
<mrdocs/Support/Error.hpp>std::string_view fs;
Originating source location for diagnostics.
<mrdocs/Support/Error.hpp>std::source_location loc;
Info for friend declarations.
<mrdocs/Metadata/Symbol/Friend.hpp>struct FriendInfo final
- 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.
| Name | Description |
|---|---|
Type | Befriended type. |
id | Befriended symbol. |
| Name | Description |
|---|---|
merge | Merge another FriendInfo into this one. |
Befriended type.
<mrdocs/Metadata/Symbol/Friend.hpp>Optional<Polymorphic<Type>> Type = std::nullopt;
This member is nullable and only used when befriending a type.
Befriended symbol.
Metadata for a function or method.
<mrdocs/Metadata/Symbol/Function.hpp>struct FunctionSymbol final
: SymbolCommonBase<SymbolKind::Function>
| Name | Description |
|---|---|
SymbolCommonBase<SymbolKind::Function> | Base class for providing variant discriminator functions. |
| Name | Description |
|---|---|
FunctionSymbol [constructor] | Construct a function symbol with its ID. |
operator<=> | Compare functions by signature, qualifiers, and metadata. |
| Name |
|---|
isConcept |
isEnum |
isEnumConstant |
isFunction |
isGuide |
isNamespace |
isNamespaceAlias |
isOverloads |
isRecord |
isTypedef |
isUsing |
isVariable |
| Name | Description |
|---|---|
Attributes | Collected attributes attached to the declaration. |
Class | The class of function this is |
Constexpr | constexpr/consteval specifier. |
Explicit | explicit-specifier information. |
HasOverrideAttr | True when annotated with override. |
HasTrailingReturn | True when using a trailing return type. |
IsConst | True when qualified const. |
IsDefaulted | True when this declaration is implicitly defaulted. |
IsDeleted | True when this declaration is deleted. |
IsDeletedAsWritten | True when deleted as written (vs deduced). |
IsExplicitObjectMemberFunction | True when explicit object parameter syntax is used. |
IsExplicitlyDefaulted | True when explicitly defaulted with = default. |
IsFinal | True when final-qualified. |
IsNoReturn | True when marked [[noreturn]]or equivalent. |
IsNodiscard | True when declared [[nodiscard]]. |
IsPure | True when the function is pure virtual. |
IsRecordMethod | True when this is a non-static member function. |
IsVariadic | True when the function is variadic. |
IsVirtual | True when declared virtual (after overrides). |
IsVirtualAsWritten | True when explicitly written virtual. |
IsVolatile | True when qualified volatile. |
Noexcept | Exception specification for the function. |
OverloadedOperator | Overloaded operator kind, if any. |
Params | List of parameters. |
RefQualifier | Reference qualifier on the member function, if any. |
Requires | Constrained requires-clause if present. |
ReturnType | Info about the return type of this function. |
StorageClass | Storage class specifier. |
Template | When present, this function is a template or specialization. |
| Name |
|---|
kind_id |
| Name | Description |
|---|---|
canMerge | Check whether two symbols may be merged. |
getPrimaryLocation | Determine a location to use when none is explicitly chosen. |
merge | Merges two Symbol objects. |
merge | Merge metadata from another function symbol. |
overrides | Determine if one function would override the other |
Construct a function symbol with its ID.
<mrdocs/Metadata/Symbol/Function.hpp>explicit
FunctionSymbol(SymbolID const& ID) noexcept;
| Name | Description |
|---|---|
| ID | The object to copy construct from |
Compare functions by signature, qualifiers, and metadata.
<mrdocs/Metadata/Symbol/Function.hpp>Compare functions by signature, qualifiers, and metadata.
std::strong_ordering
operator<=>(FunctionSymbol const& other) const;
» more...
Three-way comparison operator
auto
operator<=>(SymbolCommonBase<mrdocs::SymbolKind::Function> const& rhs) const = default;
» more...
Compare functions by signature, qualifiers, and metadata.
<mrdocs/Metadata/Symbol/Function.hpp>std::strong_ordering
operator<=>(FunctionSymbol const& other) const;
| Name | Description |
|---|---|
| other | The right operand |
Three-way comparison operator
<mrdocs/Metadata/Symbol/SymbolBase.hpp>auto
operator<=>(SymbolCommonBase<mrdocs::SymbolKind::Function> const& rhs) const = default;
| Name | Description |
|---|---|
| rhs | The right operand |
<mrdocs/Metadata/Symbol/SymbolNodes.inc>constexpr
static
bool
isConcept() noexcept;
<mrdocs/Metadata/Symbol/SymbolNodes.inc>constexpr
static
bool
isEnum() noexcept;
<mrdocs/Metadata/Symbol/SymbolNodes.inc>constexpr
static
bool
isEnumConstant() noexcept;
<mrdocs/Metadata/Symbol/SymbolNodes.inc>constexpr
static
bool
isFunction() noexcept;
<mrdocs/Metadata/Symbol/SymbolNodes.inc>constexpr
static
bool
isGuide() noexcept;
<mrdocs/Metadata/Symbol/SymbolNodes.inc>constexpr
static
bool
isNamespace() noexcept;
<mrdocs/Metadata/Symbol/SymbolNodes.inc>constexpr
static
bool
isNamespaceAlias() noexcept;
<mrdocs/Metadata/Symbol/SymbolNodes.inc>constexpr
static
bool
isOverloads() noexcept;
<mrdocs/Metadata/Symbol/SymbolNodes.inc>constexpr
static
bool
isRecord() noexcept;
<mrdocs/Metadata/Symbol/SymbolNodes.inc>constexpr
static
bool
isTypedef() noexcept;
<mrdocs/Metadata/Symbol/SymbolNodes.inc>constexpr
static
bool
isUsing() noexcept;
<mrdocs/Metadata/Symbol/SymbolNodes.inc>constexpr
static
bool
isVariable() noexcept;
Collected attributes attached to the declaration.
<mrdocs/Metadata/Symbol/Function.hpp>std::vector<std::string> Attributes;
The class of function this is
<mrdocs/Metadata/Symbol/Function.hpp>FunctionClass Class = FunctionClass::Normal;
constexpr/consteval specifier.
<mrdocs/Metadata/Symbol/Function.hpp>ConstexprKind Constexpr = ConstexprKind::None;
explicit-specifier information.
True when annotated with override.
<mrdocs/Metadata/Symbol/Function.hpp>bool HasOverrideAttr = false;
True when using a trailing return type.
<mrdocs/Metadata/Symbol/Function.hpp>bool HasTrailingReturn = false;
True when qualified const.
<mrdocs/Metadata/Symbol/Function.hpp>bool IsConst = false;
True when this declaration is implicitly defaulted.
<mrdocs/Metadata/Symbol/Function.hpp>bool IsDefaulted = false;
True when this declaration is deleted.
<mrdocs/Metadata/Symbol/Function.hpp>bool IsDeleted = false;
True when deleted as written (vs deduced).
<mrdocs/Metadata/Symbol/Function.hpp>bool IsDeletedAsWritten = false;
True when explicit object parameter syntax is used.
<mrdocs/Metadata/Symbol/Function.hpp>bool IsExplicitObjectMemberFunction = false;
True when explicitly defaulted with = default.
<mrdocs/Metadata/Symbol/Function.hpp>bool IsExplicitlyDefaulted = false;
True when final-qualified.
<mrdocs/Metadata/Symbol/Function.hpp>bool IsFinal = false;
True when marked [[noreturn]]or equivalent.
<mrdocs/Metadata/Symbol/Function.hpp>bool IsNoReturn = false;
True when declared [[nodiscard]].
<mrdocs/Metadata/Symbol/Function.hpp>bool IsNodiscard = false;
True when the function is pure virtual.
<mrdocs/Metadata/Symbol/Function.hpp>bool IsPure = false;
True when this is a non-static member function.
<mrdocs/Metadata/Symbol/Function.hpp>bool IsRecordMethod = false;
True when the function is variadic.
<mrdocs/Metadata/Symbol/Function.hpp>bool IsVariadic = false;
True when declared virtual (after overrides).
<mrdocs/Metadata/Symbol/Function.hpp>bool IsVirtual = false;
True when explicitly written virtual.
<mrdocs/Metadata/Symbol/Function.hpp>bool IsVirtualAsWritten = false;
True when qualified volatile.
<mrdocs/Metadata/Symbol/Function.hpp>bool IsVolatile = false;
Exception specification for the function.
Overloaded operator kind, if any.
<mrdocs/Metadata/Symbol/Function.hpp>OperatorKind OverloadedOperator = OperatorKind::None;
List of parameters.
<mrdocs/Metadata/Symbol/Function.hpp>std::vector<Param> Params;
Reference qualifier on the member function, if any.
<mrdocs/Metadata/Symbol/Function.hpp>ReferenceKind RefQualifier = ReferenceKind::None;
Constrained requires-clause if present.
Info about the return type of this function.
<mrdocs/Metadata/Symbol/Function.hpp>Polymorphic<Type> ReturnType = Polymorphic<Type>(AutoType{});
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.
Storage class specifier.
<mrdocs/Metadata/Symbol/Function.hpp>StorageClassKind StorageClass = StorageClassKind::None;
When present, this function is a template or specialization.
Function type with parameters, qualifiers, and noexcept info.
<mrdocs/Metadata/Type/FunctionType.hpp>struct FunctionType final
: TypeCommonBase<TypeKind::Function>
| Name | Description |
|---|---|
TypeCommonBase<TypeKind::Function> | CRTP base that ties a concrete type to a fixed TypeKind. |
| Name | Description |
|---|---|
operator<=> | Compare function types by return, params, and qualifiers. |
| Name |
|---|
isArray |
isAuto |
isDecltype |
isFunction |
isLValueReference |
isMemberPointer |
isNamed |
isPointer |
isRValueReference |
| Name | Description |
|---|---|
ExceptionSpec | Exception specification information. |
IsVariadic | True when this function type is variadic. |
ParamTypes | Parameter types in declaration order. |
RefQualifier | Reference qualifier (if present). |
ReturnType | Return type, defaults to auto when unknown. |
| Name |
|---|
kind_id |
| Name | Description |
|---|---|
innerType | Return the inner type. |
innerType | Return the inner type. |
innerTypePtr | Return the inner type. |
innerTypePtr | Return the inner type. |
toString | Render a type to a human-readable string. |
Compare function types by return, params, and qualifiers.
<mrdocs/Metadata/Type/FunctionType.hpp>Compare function types by return, params, and qualifiers.
std::strong_ordering
operator<=>(FunctionType const& rhs) const;
» more...
Three-way comparison operator
constexpr
auto
operator<=>(TypeCommonBase<mrdocs::TypeKind::Function> const& rhs) const = default;
» more...
Compare function types by return, params, and qualifiers.
<mrdocs/Metadata/Type/FunctionType.hpp>std::strong_ordering
operator<=>(FunctionType const& rhs) const;
| Name | Description |
|---|---|
| rhs | The right operand |
Three-way comparison operator
<mrdocs/Metadata/Type/TypeBase.hpp>constexpr
auto
operator<=>(TypeCommonBase<mrdocs::TypeKind::Function> const& rhs) const = default;
| Name | Description |
|---|---|
| rhs | The right operand |
<mrdocs/Metadata/Type/TypeBase.hpp>constexpr
static
bool
isArray() noexcept;
<mrdocs/Metadata/Type/TypeBase.hpp>constexpr
static
bool
isAuto() noexcept;
<mrdocs/Metadata/Type/TypeBase.hpp>constexpr
static
bool
isDecltype() noexcept;
<mrdocs/Metadata/Type/TypeBase.hpp>constexpr
static
bool
isFunction() noexcept;
<mrdocs/Metadata/Type/TypeBase.hpp>constexpr
static
bool
isLValueReference() noexcept;
<mrdocs/Metadata/Type/TypeBase.hpp>constexpr
static
bool
isMemberPointer() noexcept;
<mrdocs/Metadata/Type/TypeBase.hpp>constexpr
static
bool
isNamed() noexcept;
<mrdocs/Metadata/Type/TypeBase.hpp>constexpr
static
bool
isPointer() noexcept;
<mrdocs/Metadata/Type/TypeBase.hpp>constexpr
static
bool
isRValueReference() noexcept;
Exception specification information.
True when this function type is variadic.
<mrdocs/Metadata/Type/FunctionType.hpp>bool IsVariadic = false;
Parameter types in declaration order.
<mrdocs/Metadata/Type/FunctionType.hpp>std::vector<Polymorphic<Type>> ParamTypes;
Reference qualifier (if present).
<mrdocs/Metadata/Type/FunctionType.hpp>ReferenceKind RefQualifier = ReferenceKind::None;
Return type, defaults to auto when unknown.
<mrdocs/Metadata/Type/FunctionType.hpp>Polymorphic<Type> ReturnType = Polymorphic<Type>(AutoType{});
Base class for documentation generators.
<mrdocs/Generator.hpp>class Generator;
| 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. |
| Name | Description |
|---|---|
findGenerator | Find a generator by its id. |
Destructor.
<mrdocs/Generator.hpp>virtual
~Generator() noexcept;
Build reference documentation for the corpus.
<mrdocs/Generator.hpp>Build reference documentation for the corpus.
Expected<void>
build(Corpus const& corpus) const;
» more...
Build reference documentation for the corpus.
virtual
Expected<void>
build(
std::string_view outputPath,
Corpus const& corpus) const;
» more...
| 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.
This function invokes the generator to emit the documentation using the corpus configuration options to determine the output location.
| Name | Description |
|---|---|
| corpus | The symbols to emit. The generator may modify the contents of the object before returning. |
Build reference documentation for the corpus.
<mrdocs/Generator.hpp>virtual
Expected<void>
build(
std::string_view outputPath,
Corpus const& corpus) const;
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.
| 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
<mrdocs/Generator.hpp>Build the reference as a single page to a file.
Expected<void>
buildOne(
std::string_view fileName,
Corpus const& corpus) const;
» more...
Build reference documentation for the corpus.
virtual
Expected<void>
buildOne(
std::ostream& os,
Corpus const& corpus) const = 0;
» more...
| 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.
<mrdocs/Generator.hpp>Expected<void>
buildOne(
std::string_view fileName,
Corpus const& corpus) const;
Different `corpus` object: may be called concurrently.
Same `corpus` object: may not be called concurrently.
| 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.
<mrdocs/Generator.hpp>virtual
Expected<void>
buildOne(
std::ostream& os,
Corpus const& corpus) const = 0;
This function invokes the generator to emit the full documentation to an output stream, as a single entity.
Different `corpus` object: may be called concurrently.
Same `corpus` object: may not be called concurrently.
| Name | Description |
|---|---|
| os | The stream to write to. |
| corpus | The metadata to emit. |
Build the reference as a single page to a string.
<mrdocs/Generator.hpp>Expected<void>
buildOneString(
std::string& dest,
Corpus const& corpus) const;
| 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.
<mrdocs/Generator.hpp>virtual
std::string_view
displayName() const noexcept = 0;
Return the extension or tag of the generator.
<mrdocs/Generator.hpp>virtual
std::string_view
fileExtension() const noexcept = 0;
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 the symbolic name of the generator.
<mrdocs/Generator.hpp>virtual
std::string_view
id() const noexcept = 0;
This is a short, unique string which identifies the generator in command line options and in configuration files.
A glob pattern matcher
<mrdocs/Support/Glob.hpp>class GlobPattern;
"*" 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.
| 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. |
| Name | Description |
|---|---|
create | create overloads |
Constructors
<mrdocs/Support/Glob.hpp>Construct an empty GlobPattern.
GlobPattern();
» more...
Copy constructor
GlobPattern(GlobPattern const& other);
» more...
Move constructor
GlobPattern(GlobPattern&& other) noexcept;
» more...
Construct an empty GlobPattern.
<mrdocs/Support/Glob.hpp>GlobPattern();
An empty GlobPattern will never match any string.
Copy constructor
| Name | Description |
|---|---|
| other | The object to copy construct from |
Move constructor
| Name | Description |
|---|---|
| other | The object to move construct from |
Destructor
<mrdocs/Support/Glob.hpp>~GlobPattern();
Assignment operators
<mrdocs/Support/Glob.hpp>Copy assignment
GlobPattern&
operator=(GlobPattern const& other);
» more...
Move assignment
GlobPattern&
operator=(GlobPattern&& other) noexcept;
» more...
Copy assignment
| Name | Description |
|---|---|
| other | The object to copy assign from |
Move assignment
<mrdocs/Support/Glob.hpp>GlobPattern&
operator=(GlobPattern&& other) noexcept;
| Name | Description |
|---|---|
| other | The object to move assign from |
Checks if the glob pattern is a literal string.
<mrdocs/Support/Glob.hpp>bool
isLiteral() const;
This function determines if the glob pattern does not contain any special characters. In other words, it matches a single string.
Matches the given string against the glob pattern.
<mrdocs/Support/Glob.hpp>bool
match(
std::string_view str,
char delimiter) const;
| 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.
<mrdocs/Support/Glob.hpp>bool
matchPatternPrefix(
std::string_view prefix,
char delimiter) const;
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.
| Name | Description |
|---|---|
| prefix | The string to match against the pattern. |
| delimiter | The character that * does not match. |
Returns the glob pattern.
<mrdocs/Support/Glob.hpp>std::string_view
pattern() const;
create overloads
<mrdocs/Support/Glob.hpp>Create a glob pattern without limiting subpattern count.
static
Expected<GlobPattern>
create(std::string_view pattern);
» more...
Constructs a GlobPattern with the given pattern.
static
Expected<GlobPattern>
create(
std::string_view pattern,
Optional<std::size_t> maxSubGlobs);
» more...
| Name | Description |
|---|---|
| pattern | Glob expression to compile. |
| 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. |
Create a glob pattern without limiting subpattern count.
<mrdocs/Support/Glob.hpp>static
Expected<GlobPattern>
create(std::string_view pattern);
| Name | Description |
|---|---|
| pattern | Glob expression to compile. |
Constructs a GlobPattern with the given pattern.
<mrdocs/Support/Glob.hpp>static
Expected<GlobPattern>
create(
std::string_view pattern,
Optional<std::size_t> maxSubGlobs);
| 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.
<mrdocs/Metadata/Symbol/Guide.hpp>struct GuideSymbol final
: SymbolCommonBase<SymbolKind::Guide>
| Name | Description |
|---|---|
SymbolCommonBase<SymbolKind::Guide> | Base class for providing variant discriminator functions. |
| Name | Description |
|---|---|
GuideSymbol [constructor] | Construct a deduction guide symbol with its ID. |
operator<=> | Compare guides by params/deduced/template/explicit. |
| Name |
|---|
isConcept |
isEnum |
isEnumConstant |
isFunction |
isGuide |
isNamespace |
isNamespaceAlias |
isOverloads |
isRecord |
isTypedef |
isUsing |
isVariable |
| 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. |
| Name |
|---|
kind_id |
| Name | Description |
|---|---|
canMerge | Check whether two symbols may be merged. |
getPrimaryLocation | Determine a location to use when none is explicitly chosen. |
merge | Merge another GuideSymbol into this one. |
merge | Merges two Symbol objects. |
Construct a deduction guide symbol with its ID.
| Name | Description |
|---|---|
| ID | The object to construct from |
Compare guides by params/deduced/template/explicit.
<mrdocs/Metadata/Symbol/Guide.hpp>Compare guides by params/deduced/template/explicit.
std::strong_ordering
operator<=>(GuideSymbol const& other) const;
» more...
Three-way comparison operator
auto
operator<=>(SymbolCommonBase<mrdocs::SymbolKind::Guide> const& rhs) const = default;
» more...
Compare guides by params/deduced/template/explicit.
<mrdocs/Metadata/Symbol/Guide.hpp>std::strong_ordering
operator<=>(GuideSymbol const& other) const;
| Name | Description |
|---|---|
| other | The right operand |
Three-way comparison operator
<mrdocs/Metadata/Symbol/SymbolBase.hpp>auto
operator<=>(SymbolCommonBase<mrdocs::SymbolKind::Guide> const& rhs) const = default;
| Name | Description |
|---|---|
| rhs | The right operand |
<mrdocs/Metadata/Symbol/SymbolNodes.inc>constexpr
static
bool
isConcept() noexcept;
<mrdocs/Metadata/Symbol/SymbolNodes.inc>constexpr
static
bool
isEnum() noexcept;
<mrdocs/Metadata/Symbol/SymbolNodes.inc>constexpr
static
bool
isEnumConstant() noexcept;
<mrdocs/Metadata/Symbol/SymbolNodes.inc>constexpr
static
bool
isFunction() noexcept;
<mrdocs/Metadata/Symbol/SymbolNodes.inc>constexpr
static
bool
isGuide() noexcept;
<mrdocs/Metadata/Symbol/SymbolNodes.inc>constexpr
static
bool
isNamespace() noexcept;
<mrdocs/Metadata/Symbol/SymbolNodes.inc>constexpr
static
bool
isNamespaceAlias() noexcept;
<mrdocs/Metadata/Symbol/SymbolNodes.inc>constexpr
static
bool
isOverloads() noexcept;
<mrdocs/Metadata/Symbol/SymbolNodes.inc>constexpr
static
bool
isRecord() noexcept;
<mrdocs/Metadata/Symbol/SymbolNodes.inc>constexpr
static
bool
isTypedef() noexcept;
<mrdocs/Metadata/Symbol/SymbolNodes.inc>constexpr
static
bool
isUsing() noexcept;
<mrdocs/Metadata/Symbol/SymbolNodes.inc>constexpr
static
bool
isVariable() noexcept;
The pattern for the deduced specialization.
<mrdocs/Metadata/Symbol/Guide.hpp>Polymorphic<Type> Deduced = Polymorphic<Type>(AutoType{});
This is always a SpecializationType.
The explicit-specifier, if any.
The parameters of the deduction guide.
<mrdocs/Metadata/Symbol/Guide.hpp>std::vector<Param> Params;
Template head, if any.
A handlebars environment
<mrdocs/Support/Handlebars.hpp>class Handlebars;
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.
| Name | Description |
|---|---|
Tag | Internal representation of a parsed Handlebars tag. |
| 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 |
| 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 |
https://handlebarsjs.com/
Internal representation of a parsed Handlebars tag.
<mrdocs/Support/Handlebars.hpp>struct Tag;
Construct a handlebars environment
<mrdocs/Support/Handlebars.hpp>Handlebars();
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.
helpers::registerBuiltinHelpers
Register a helper accessible by any template in the environment.
<mrdocs/Support/Handlebars.hpp>void
registerHelper(
std::string_view name,
dom::Function const& helper);
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.
| Name | Description |
|---|---|
| name | The name of the helper in the handlebars template |
| helper | The helper function |
https://handlebarsjs.com/guide/expressions.html
https://handlebarsjs.com/guide/block-helpers.html
https://handlebarsjs.com/guide/builtin-helpers.html
Register a logger
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.
| Name | Description |
|---|---|
| fn | The logger function |
Register a partial
<mrdocs/Support/Handlebars.hpp>void
registerPartial(
std::string_view name,
std::string_view text);
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>
| Name | Description |
|---|---|
| name | The name of the partial |
| text | The content of the partial |
https://handlebarsjs.com/guide/partials.html
Render a handlebars template
<mrdocs/Support/Handlebars.hpp>std::string
render(std::string_view templateText) const;
» more...
std::string
render(
std::string_view templateText,
dom::Value const& context) const;
» more...
Render a handlebars template
std::string
render(
std::string_view templateText,
dom::Value const& context,
HandlebarsOptions const& options) const;
» more...
| Name | Description |
|---|---|
| templateText | The handlebars template text |
| context | The data to render |
| options | The options to use |
<mrdocs/Support/Handlebars.hpp>std::string
render(std::string_view templateText) const;
<mrdocs/Support/Handlebars.hpp>std::string
render(
std::string_view templateText,
dom::Value const& context) const;
Render a handlebars template
<mrdocs/Support/Handlebars.hpp>std::string
render(
std::string_view templateText,
dom::Value const& context,
HandlebarsOptions const& options) const;
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.
| Name | Description |
|---|---|
| templateText | The handlebars template text |
| context | The data to render |
| options | The options to use |
Render a handlebars template
<mrdocs/Support/Handlebars.hpp>void
render_to(
OutputRef& out,
std::string_view templateText) const;
» more...
void
render_to(
OutputRef& out,
std::string_view templateText,
dom::Value const& context) const;
» more...
Render a handlebars template
void
render_to(
OutputRef& out,
std::string_view templateText,
dom::Value const& context,
HandlebarsOptions const& options) const;
» more...
| Name | Description |
|---|---|
| out | The output stream reference |
| templateText | The handlebars template text |
| context | The data to render |
| options | The options to use |
<mrdocs/Support/Handlebars.hpp>void
render_to(
OutputRef& out,
std::string_view templateText) const;
<mrdocs/Support/Handlebars.hpp>void
render_to(
OutputRef& out,
std::string_view templateText,
dom::Value const& context) const;
Render a handlebars template
<mrdocs/Support/Handlebars.hpp>void
render_to(
OutputRef& out,
std::string_view templateText,
dom::Value const& context,
HandlebarsOptions const& options) const;
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.
| Name | Description |
|---|---|
| out | The output stream reference |
| templateText | The handlebars template text |
| context | The data to render |
| options | The options to use |
Render a handlebars template
<mrdocs/Support/Handlebars.hpp>Expected<std::string, HandlebarsError>
try_render(std::string_view templateText) const;
» more...
Expected<std::string, HandlebarsError>
try_render(
std::string_view templateText,
dom::Value const& context) const;
» more...
Render a handlebars template
Expected<std::string, HandlebarsError>
try_render(
std::string_view templateText,
dom::Value const& context,
HandlebarsOptions const& options) const;
» more...
| Name | Description |
|---|---|
| templateText | The handlebars template text |
| context | The data to render |
| options | The options to use |
<mrdocs/Support/Handlebars.hpp>Expected<std::string, HandlebarsError>
try_render(std::string_view templateText) const;
<mrdocs/Support/Handlebars.hpp>Expected<std::string, HandlebarsError>
try_render(
std::string_view templateText,
dom::Value const& context) const;
Render a handlebars template
<mrdocs/Support/Handlebars.hpp>Expected<std::string, HandlebarsError>
try_render(
std::string_view templateText,
dom::Value const& context,
HandlebarsOptions const& options) const;
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.
| Name | Description |
|---|---|
| templateText | The handlebars template text |
| context | The data to render |
| options | The options to use |
Render a handlebars template
<mrdocs/Support/Handlebars.hpp>Expected<void, HandlebarsError>
try_render_to(
OutputRef& out,
std::string_view templateText) const;
» more...
Expected<void, HandlebarsError>
try_render_to(
OutputRef& out,
std::string_view templateText,
dom::Value const& context) const;
» more...
Render a handlebars template
Expected<void, HandlebarsError>
try_render_to(
OutputRef& out,
std::string_view templateText,
dom::Value const& context,
HandlebarsOptions const& options) const;
» more...
| Name | Description |
|---|---|
| out | The output stream reference |
| templateText | The handlebars template text |
| context | The data to render |
| options | The options to use |
<mrdocs/Support/Handlebars.hpp>Expected<void, HandlebarsError>
try_render_to(
OutputRef& out,
std::string_view templateText) const;
<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
<mrdocs/Support/Handlebars.hpp>Expected<void, HandlebarsError>
try_render_to(
OutputRef& out,
std::string_view templateText,
dom::Value const& context,
HandlebarsOptions const& options) const;
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.
| Name | Description |
|---|---|
| out | The output stream reference |
| templateText | The handlebars template text |
| context | The data to render |
| options | The options to use |
Unregister a helper
<mrdocs/Support/Handlebars.hpp>void
unregisterHelper(std::string_view name);
This function unregisters a helper with the handlebars environment.
| Name | Description |
|---|---|
| name | The name of the helper |
Unregister a partial
<mrdocs/Support/Handlebars.hpp>void
unregisterPartial(std::string_view name);
This function unregisters a partial with the handlebars environment.
| Name | Description |
|---|---|
| name | The name of the partial |
An error thrown or returned by Handlebars
<mrdocs/Support/Handlebars.hpp>struct HandlebarsError
: std::runtime_error
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.
| Name | Description |
|---|---|
std::runtime_error |
| Name | Description |
|---|---|
HandlebarsError [constructor] | Constructors |
operator= | |
what [virtual] |
| Name | Description |
|---|---|
column | Column of the error in the template. |
line | Line number in the template where the error occurred. |
pos | Absolute character position of the error. |
Constructors
<mrdocs/Support/Handlebars.hpp>Construct an error with a message.
HandlebarsError(std::string_view msg);
» more...
Construct an error with location information.
HandlebarsError(
std::string_view msg,
std::size_t line_,
std::size_t column_,
std::size_t pos_);
» more...
| Name | Description |
|---|---|
| msg | Description of the failure. |
| line_ | Line number where it occurred. |
| column_ | Column number where it occurred. |
| pos_ | Absolute character position. |
Construct an error with a message.
<mrdocs/Support/Handlebars.hpp>HandlebarsError(std::string_view msg);
| Name | Description |
|---|---|
| msg | Description of the failure. |
Construct an error with location information.
<mrdocs/Support/Handlebars.hpp>HandlebarsError(
std::string_view msg,
std::size_t line_,
std::size_t column_,
std::size_t pos_);
| Name | Description |
|---|---|
| msg | Description of the failure. |
| line_ | Line number where it occurred. |
| column_ | Column number where it occurred. |
| pos_ | Absolute character position. |
<stdexcept>runtime_error&
operator=(runtime_error const& value) noexcept;
<stdexcept>virtual
char const*
what() const noexcept override;
Column of the error in the template.
<mrdocs/Support/Handlebars.hpp>std::size_t column = static_cast<std::size_t>(-1);
Line number in the template where the error occurred.
<mrdocs/Support/Handlebars.hpp>std::size_t line = static_cast<std::size_t>(-1);
Absolute character position of the error.
<mrdocs/Support/Handlebars.hpp>std::size_t pos = static_cast<std::size_t>(-1);
Options for handlebars
<mrdocs/Support/Handlebars.hpp>struct HandlebarsOptions;
This struct is analogous to the Handlebars.compile options.
| 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 |
https://handlebarsjs.com/api-reference/compilation.html
Removes object existence checks when traversing paths
<mrdocs/Support/Handlebars.hpp>bool assumeObjects = false;
This is a subset of strict mode that generates optimized templates when the data inputs are known to be safe.
Enable recursive field lookup
<mrdocs/Support/Handlebars.hpp>bool compat = false;
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
This variable can be used to pass in an object to define custom private variables.
Function to escape entities
<mrdocs/Support/Handlebars.hpp>std::function<void(OutputRef&, std::string_view)> escapeFunction = static_cast<void(*)(OutputRef&, std::string_view)>(HTMLEscape);
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
<mrdocs/Support/Handlebars.hpp>bool explicitPartialContext = false;
When enabled, partials that are not passed a context value will execute against an empty object.
Disables standalone tag removal when set to true
<mrdocs/Support/Handlebars.hpp>bool ignoreStandalone = false;
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
<mrdocs/Support/Handlebars.hpp>bool noEscape = false;
Disable the auto-indent feature
<mrdocs/Support/Handlebars.hpp>bool preventIndent = false;
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
<mrdocs/Support/Handlebars.hpp>bool strict = false;
Run in strict mode. In this mode, templates will throw rather than silently ignore missing fields.
Enable tracking of ids
<mrdocs/Support/Handlebars.hpp>bool trackIds = false;
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
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.
| Name | Description |
|---|---|
Name | Represents a name for a named Type |
| Name | Description |
|---|---|
IdentifierName [constructor] | Default-construct an identifier with kind Identifier. |
asName | asName overloads |
operator== | Equality compares all fields. |
operator<=> | Three-way comparison operators |
| 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. |
| Name | Description |
|---|---|
toString | Convert the name to a human-readable string. |
Default-construct an identifier with kind Identifier.
<mrdocs/Metadata/Name/IdentifierName.hpp>constexpr
IdentifierName() noexcept;
Three-way comparison operators
<mrdocs/Metadata/Name/NameBase.hpp>Compare identifiers by their base name state.
auto
operator<=>(IdentifierName const& other) const;
» more...
Order names by kind, identifier, id, and prefix.
std::strong_ordering
operator<=>(Name const& other) const;
» more...
Compare identifiers by their base name state.
<mrdocs/Metadata/Name/IdentifierName.hpp>auto
operator<=>(IdentifierName const& other) const;
| Name | Description |
|---|---|
| other | The right operand |
Order names by kind, identifier, id, and prefix.
<mrdocs/Metadata/Name/NameBase.hpp>std::strong_ordering
operator<=>(Name const& other) const;
| Name | Description |
|---|---|
| other | The right operand |
An lvalue reference type.
<mrdocs/Metadata/Type/LValueReferenceType.hpp>struct LValueReferenceType final
: TypeCommonBase<TypeKind::LValueReference>
| Name | Description |
|---|---|
TypeCommonBase<TypeKind::LValueReference> | CRTP base that ties a concrete type to a fixed TypeKind. |
| Name | Description |
|---|---|
operator<=> | Compare references by pointee type. |
| Name |
|---|
isArray |
isAuto |
isDecltype |
isFunction |
isLValueReference |
isMemberPointer |
isNamed |
isPointer |
isRValueReference |
| Name | Description |
|---|---|
PointeeType | The referenced type. |
| Name |
|---|
kind_id |
| Name | Description |
|---|---|
innerType | Return the inner type. |
innerType | Return the inner type. |
innerTypePtr | Return the inner type. |
innerTypePtr | Return the inner type. |
toString | Render a type to a human-readable string. |
Compare references by pointee type.
<mrdocs/Metadata/Type/LValueReferenceType.hpp>Compare references by pointee type.
std::strong_ordering
operator<=>(LValueReferenceType const& rhs) const;
» more...
Three-way comparison operator
constexpr
auto
operator<=>(TypeCommonBase<mrdocs::TypeKind::LValueReference> const& rhs) const = default;
» more...
Compare references by pointee type.
<mrdocs/Metadata/Type/LValueReferenceType.hpp>std::strong_ordering
operator<=>(LValueReferenceType const& rhs) const;
| Name | Description |
|---|---|
| rhs | The right operand |
Three-way comparison operator
<mrdocs/Metadata/Type/TypeBase.hpp>constexpr
auto
operator<=>(TypeCommonBase<mrdocs::TypeKind::LValueReference> const& rhs) const = default;
| Name | Description |
|---|---|
| rhs | The right operand |
<mrdocs/Metadata/Type/TypeBase.hpp>constexpr
static
bool
isArray() noexcept;
<mrdocs/Metadata/Type/TypeBase.hpp>constexpr
static
bool
isAuto() noexcept;
<mrdocs/Metadata/Type/TypeBase.hpp>constexpr
static
bool
isDecltype() noexcept;
<mrdocs/Metadata/Type/TypeBase.hpp>constexpr
static
bool
isFunction() noexcept;
<mrdocs/Metadata/Type/TypeBase.hpp>constexpr
static
bool
isLValueReference() noexcept;
<mrdocs/Metadata/Type/TypeBase.hpp>constexpr
static
bool
isMemberPointer() noexcept;
<mrdocs/Metadata/Type/TypeBase.hpp>constexpr
static
bool
isNamed() noexcept;
<mrdocs/Metadata/Type/TypeBase.hpp>constexpr
static
bool
isPointer() noexcept;
<mrdocs/Metadata/Type/TypeBase.hpp>constexpr
static
bool
isRValueReference() noexcept;
The referenced type.
<mrdocs/Metadata/Type/LValueReferenceType.hpp>Polymorphic<Type> PointeeType = Polymorphic<Type>(AutoType{});
Source location of a symbol or entity.
<mrdocs/Metadata/Symbol/Location.hpp>struct Location;
| Name | Description |
|---|---|
Location [constructor] | Construct a location with optional fields. |
operator<=> | Compare locations by file paths and coordinates. |
| 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 |
| Name | Description |
|---|---|
getPrimaryLocation | Determine a location to use when none is explicitly chosen. |
getPrimaryLocation | Choose the best location to display for a symbol. |
Construct a location with optional fields.
<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);
| Name | Description |
|---|---|
| full_path | Absolute path to the file on disk. |
| short_path | Repository- or search-root relative path, may be empty. |
| source_path | Path relative to the documented source root. |
| line | Line number within the file. |
| col | Column number within the line. |
| documented | Whether the location already carries user documentation. |
Compare locations by file paths and coordinates.
<mrdocs/Metadata/Symbol/Location.hpp>constexpr
auto
operator<=>(Location const& rhs) const = default;
| Name | Description |
|---|---|
| rhs | The right operand |
Column number within the line
<mrdocs/Metadata/Symbol/Location.hpp>unsigned int ColumnNumber = 0;
Whether this location has documentation.
<mrdocs/Metadata/Symbol/Location.hpp>bool Documented = false;
The full file path
<mrdocs/Metadata/Symbol/Location.hpp>std::string FullPath;
Line number within the file
<mrdocs/Metadata/Symbol/Location.hpp>unsigned int LineNumber = 0;
The file path relative to one of the search directories
<mrdocs/Metadata/Symbol/Location.hpp>std::string ShortPath;
The file path relative to the source-root directory
<mrdocs/Metadata/Symbol/Location.hpp>std::string SourcePath;
Pointer-to-member type (object or function).
<mrdocs/Metadata/Type/MemberPointerType.hpp>struct MemberPointerType final
: TypeCommonBase<TypeKind::MemberPointer>
| Name | Description |
|---|---|
TypeCommonBase<TypeKind::MemberPointer> | CRTP base that ties a concrete type to a fixed TypeKind. |
| Name | Description |
|---|---|
operator<=> | Compare member pointers by parent and pointee. |
| Name |
|---|
isArray |
isAuto |
isDecltype |
isFunction |
isLValueReference |
isMemberPointer |
isNamed |
isPointer |
isRValueReference |
| Name | Description |
|---|---|
ParentType | Containing class type. |
PointeeType | Pointee type being referenced. |
| Name |
|---|
kind_id |
| Name | Description |
|---|---|
innerType | Return the inner type. |
innerType | Return the inner type. |
innerTypePtr | Return the inner type. |
innerTypePtr | Return the inner type. |
toString | Render a type to a human-readable string. |
Compare member pointers by parent and pointee.
<mrdocs/Metadata/Type/MemberPointerType.hpp>Compare member pointers by parent and pointee.
std::strong_ordering
operator<=>(MemberPointerType const& rhs) const;
» more...
Three-way comparison operator
constexpr
auto
operator<=>(TypeCommonBase<mrdocs::TypeKind::MemberPointer> const& rhs) const = default;
» more...
Compare member pointers by parent and pointee.
<mrdocs/Metadata/Type/MemberPointerType.hpp>std::strong_ordering
operator<=>(MemberPointerType const& rhs) const;
| Name | Description |
|---|---|
| rhs | The right operand |
Three-way comparison operator
<mrdocs/Metadata/Type/TypeBase.hpp>constexpr
auto
operator<=>(TypeCommonBase<mrdocs::TypeKind::MemberPointer> const& rhs) const = default;
| Name | Description |
|---|---|
| rhs | The right operand |
<mrdocs/Metadata/Type/TypeBase.hpp>constexpr
static
bool
isArray() noexcept;
<mrdocs/Metadata/Type/TypeBase.hpp>constexpr
static
bool
isAuto() noexcept;
<mrdocs/Metadata/Type/TypeBase.hpp>constexpr
static
bool
isDecltype() noexcept;
<mrdocs/Metadata/Type/TypeBase.hpp>constexpr
static
bool
isFunction() noexcept;
<mrdocs/Metadata/Type/TypeBase.hpp>constexpr
static
bool
isLValueReference() noexcept;
<mrdocs/Metadata/Type/TypeBase.hpp>constexpr
static
bool
isMemberPointer() noexcept;
<mrdocs/Metadata/Type/TypeBase.hpp>constexpr
static
bool
isNamed() noexcept;
<mrdocs/Metadata/Type/TypeBase.hpp>constexpr
static
bool
isPointer() noexcept;
<mrdocs/Metadata/Type/TypeBase.hpp>constexpr
static
bool
isRValueReference() noexcept;
Containing class type.
<mrdocs/Metadata/Type/MemberPointerType.hpp>Polymorphic<Type> ParentType = Polymorphic<Type>(AutoType{});
Pointee type being referenced.
<mrdocs/Metadata/Type/MemberPointerType.hpp>Polymorphic<Type> PointeeType = Polymorphic<Type>(AutoType{});
Represents a name for a named Type
<mrdocs/Metadata/Name/NameBase.hpp>struct Name;
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.
| Name | Description |
|---|---|
~Name [destructor] [virtual] | Virtual destructor for polymorphic cleanup. |
asName | asName overloads |
operator== | Equality compares all fields. |
operator<=> | Order names by kind, identifier, id, and prefix. |
| 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. |
| Name | Description |
|---|---|
Name [constructor] | Constructors |
| Name | Description |
|---|---|
toString | Convert the name to a human-readable string. |
| Name | Description |
|---|---|
IdentifierName
| Represents an identifier |
SpecializationName
| Represents a (possibly qualified) symbol name with template arguments. |
Virtual destructor for polymorphic cleanup.
<mrdocs/Metadata/Name/NameBase.hpp>constexpr
virtual
~Name() = default;
asName overloads
<mrdocs/Metadata/Name/NameBase.hpp>View as a const Name reference.
constexpr
Name const&
asName() const noexcept;
» more...
View as a mutable Name reference.
constexpr
Name&
asName() noexcept;
» more...
View as a const Name reference.
<mrdocs/Metadata/Name/NameBase.hpp>constexpr
Name const&
asName() const noexcept;
Type
View as a mutable Name reference.
Type
Equality compares all fields.
true if the objects are equal, false otherwise
| Name | Description |
|---|---|
| other | The right operand |
Order names by kind, identifier, id, and prefix.
<mrdocs/Metadata/Name/NameBase.hpp>std::strong_ordering
operator<=>(Name const& other) const;
| Name | Description |
|---|---|
| other | The right operand |
The unqualified name.
<mrdocs/Metadata/Name/NameBase.hpp>std::string Identifier;
The kind of name this is.
The parent name info, if any.
<mrdocs/Metadata/Name/NameBase.hpp>Optional<Polymorphic<Name>> Prefix = std::nullopt;
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.
Constructors
<mrdocs/Metadata/Name/NameBase.hpp>Construct an identifier name.
constexpr
Name() noexcept;
» more...
Construct with an explicit name kind.
constexpr
explicit
Name(NameKind const kind) noexcept;
» more...
Construct an identifier name.
<mrdocs/Metadata/Name/NameBase.hpp>constexpr
Name() noexcept;
Construct with an explicit name kind.
<mrdocs/Metadata/Name/NameBase.hpp>constexpr
explicit
Name(NameKind const kind) noexcept;
| Name | Description |
|---|---|
| kind | The object to construct from |
A type identified by name (possibly fundamental).
<mrdocs/Metadata/Type/NamedType.hpp>struct NamedType final
: TypeCommonBase<TypeKind::Named>
| Name | Description |
|---|---|
TypeCommonBase<TypeKind::Named> | CRTP base that ties a concrete type to a fixed TypeKind. |
| Name | Description |
|---|---|
operator<=> | Compare named types by name and fundamental kind. |
| Name |
|---|
isArray |
isAuto |
isDecltype |
isFunction |
isLValueReference |
isMemberPointer |
isNamed |
isPointer |
isRValueReference |
| Name | Description |
|---|---|
FundamentalType | Fundamental kind if this named type is a built-in. |
Name | The name of the type (identifier or specialization). |
| Name |
|---|
kind_id |
| Name | Description |
|---|---|
innerType | Return the inner type. |
innerType | Return the inner type. |
innerTypePtr | Return the inner type. |
innerTypePtr | Return the inner type. |
toString | Render a type to a human-readable string. |
Compare named types by name and fundamental kind.
<mrdocs/Metadata/Type/NamedType.hpp>Compare named types by name and fundamental kind.
std::strong_ordering
operator<=>(NamedType const& other) const;
» more...
Three-way comparison operator
constexpr
auto
operator<=>(TypeCommonBase<mrdocs::TypeKind::Named> const& rhs) const = default;
» more...
Compare named types by name and fundamental kind.
<mrdocs/Metadata/Type/NamedType.hpp>std::strong_ordering
operator<=>(NamedType const& other) const;
| Name | Description |
|---|---|
| other | The right operand |
Three-way comparison operator
<mrdocs/Metadata/Type/TypeBase.hpp>constexpr
auto
operator<=>(TypeCommonBase<mrdocs::TypeKind::Named> const& rhs) const = default;
| Name | Description |
|---|---|
| rhs | The right operand |
<mrdocs/Metadata/Type/TypeBase.hpp>constexpr
static
bool
isArray() noexcept;
<mrdocs/Metadata/Type/TypeBase.hpp>constexpr
static
bool
isAuto() noexcept;
<mrdocs/Metadata/Type/TypeBase.hpp>constexpr
static
bool
isDecltype() noexcept;
<mrdocs/Metadata/Type/TypeBase.hpp>constexpr
static
bool
isFunction() noexcept;
<mrdocs/Metadata/Type/TypeBase.hpp>constexpr
static
bool
isLValueReference() noexcept;
<mrdocs/Metadata/Type/TypeBase.hpp>constexpr
static
bool
isMemberPointer() noexcept;
<mrdocs/Metadata/Type/TypeBase.hpp>constexpr
static
bool
isNamed() noexcept;
<mrdocs/Metadata/Type/TypeBase.hpp>constexpr
static
bool
isPointer() noexcept;
<mrdocs/Metadata/Type/TypeBase.hpp>constexpr
static
bool
isRValueReference() noexcept;
Fundamental kind if this named type is a built-in.
<mrdocs/Metadata/Type/NamedType.hpp>Optional<FundamentalTypeKind> FundamentalType;
The name of the type (identifier or specialization).
<mrdocs/Metadata/Type/NamedType.hpp>Polymorphic<Name> Name = Polymorphic<struct Name>(std::in_place_type<IdentifierName>);
Info for namespace aliases.
<mrdocs/Metadata/Symbol/NamespaceAlias.hpp>struct NamespaceAliasSymbol final
: SymbolCommonBase<SymbolKind::NamespaceAlias>
| Name | Description |
|---|---|
SymbolCommonBase<SymbolKind::NamespaceAlias> | Base class for providing variant discriminator functions. |
| Name | Description |
|---|---|
NamespaceAliasSymbol [constructor] | Create an alias symbol bound to an ID. |
operator<=> | Three-way comparison operator |
| Name |
|---|
isConcept |
isEnum |
isEnumConstant |
isFunction |
isGuide |
isNamespace |
isNamespaceAlias |
isOverloads |
isRecord |
isTypedef |
isUsing |
isVariable |
| Name | Description |
|---|---|
AliasedSymbol | The aliased symbol. |
| Name |
|---|
kind_id |
| Name | Description |
|---|---|
canMerge | Check whether two symbols may be merged. |
getPrimaryLocation | Determine a location to use when none is explicitly chosen. |
merge | Merges two Symbol objects. |
merge | Merge two alias symbols, preferring existing fields when present. |
Create an alias symbol bound to an ID.
<mrdocs/Metadata/Symbol/NamespaceAlias.hpp>explicit
NamespaceAliasSymbol(SymbolID const& ID) noexcept;
| Name | Description |
|---|---|
| ID | The object to copy construct from |
Three-way comparison operator
<mrdocs/Metadata/Symbol/SymbolBase.hpp>auto
operator<=>(SymbolCommonBase<mrdocs::SymbolKind::NamespaceAlias> const& rhs) const = default;
| Name | Description |
|---|---|
| rhs | The right operand |
<mrdocs/Metadata/Symbol/SymbolNodes.inc>constexpr
static
bool
isConcept() noexcept;
<mrdocs/Metadata/Symbol/SymbolNodes.inc>constexpr
static
bool
isEnum() noexcept;
<mrdocs/Metadata/Symbol/SymbolNodes.inc>constexpr
static
bool
isEnumConstant() noexcept;
<mrdocs/Metadata/Symbol/SymbolNodes.inc>constexpr
static
bool
isFunction() noexcept;
<mrdocs/Metadata/Symbol/SymbolNodes.inc>constexpr
static
bool
isGuide() noexcept;
<mrdocs/Metadata/Symbol/SymbolNodes.inc>constexpr
static
bool
isNamespace() noexcept;
<mrdocs/Metadata/Symbol/SymbolNodes.inc>constexpr
static
bool
isNamespaceAlias() noexcept;
<mrdocs/Metadata/Symbol/SymbolNodes.inc>constexpr
static
bool
isOverloads() noexcept;
<mrdocs/Metadata/Symbol/SymbolNodes.inc>constexpr
static
bool
isRecord() noexcept;
<mrdocs/Metadata/Symbol/SymbolNodes.inc>constexpr
static
bool
isTypedef() noexcept;
<mrdocs/Metadata/Symbol/SymbolNodes.inc>constexpr
static
bool
isUsing() noexcept;
<mrdocs/Metadata/Symbol/SymbolNodes.inc>constexpr
static
bool
isVariable() noexcept;
The aliased symbol.
This is another namespace that might or might not be in the same project.
Describes a namespace and its members.
<mrdocs/Metadata/Symbol/Namespace.hpp>struct NamespaceSymbol final
: SymbolCommonBase<SymbolKind::Namespace>
| Name | Description |
|---|---|
SymbolCommonBase<SymbolKind::Namespace> | Base class for providing variant discriminator functions. |
| Name | Description |
|---|---|
NamespaceSymbol [constructor] | Create a namespace symbol bound to an ID. |
operator<=> | Compare namespaces by attributes and member lists. |
| Name |
|---|
isConcept |
isEnum |
isEnumConstant |
isFunction |
isGuide |
isNamespace |
isNamespaceAlias |
isOverloads |
isRecord |
isTypedef |
isUsing |
isVariable |
| Name | Description |
|---|---|
IsAnonymous | Whether this represents an unnamed namespace. |
IsInline | Whether this declaration is inline. |
Members | The members of this namespace. |
UsingDirectives | Namespaces nominated by using-directives. |
| Name |
|---|
kind_id |
| Name | Description |
|---|---|
allMembers | View all members of the namespace across tranches. |
canMerge | Check whether two symbols may be merged. |
getPrimaryLocation | Determine a location to use when none is explicitly chosen. |
merge | Merges two Symbol objects. |
merge | Merge two namespaces, keeping existing members stable. |
Create a namespace symbol bound to an ID.
<mrdocs/Metadata/Symbol/Namespace.hpp>explicit
NamespaceSymbol(SymbolID const& ID) noexcept;
| Name | Description |
|---|---|
| ID | The object to copy construct from |
Compare namespaces by attributes and member lists.
<mrdocs/Metadata/Symbol/Namespace.hpp>Compare namespaces by attributes and member lists.
std::strong_ordering
operator<=>(NamespaceSymbol const& rhs) const;
» more...
Three-way comparison operator
auto
operator<=>(SymbolCommonBase<mrdocs::SymbolKind::Namespace> const& rhs) const = default;
» more...
Compare namespaces by attributes and member lists.
<mrdocs/Metadata/Symbol/Namespace.hpp>std::strong_ordering
operator<=>(NamespaceSymbol const& rhs) const;
| Name | Description |
|---|---|
| rhs | The right operand |
Three-way comparison operator
<mrdocs/Metadata/Symbol/SymbolBase.hpp>auto
operator<=>(SymbolCommonBase<mrdocs::SymbolKind::Namespace> const& rhs) const = default;
| Name | Description |
|---|---|
| rhs | The right operand |
<mrdocs/Metadata/Symbol/SymbolNodes.inc>constexpr
static
bool
isConcept() noexcept;
<mrdocs/Metadata/Symbol/SymbolNodes.inc>constexpr
static
bool
isEnum() noexcept;
<mrdocs/Metadata/Symbol/SymbolNodes.inc>constexpr
static
bool
isEnumConstant() noexcept;
<mrdocs/Metadata/Symbol/SymbolNodes.inc>constexpr
static
bool
isFunction() noexcept;
<mrdocs/Metadata/Symbol/SymbolNodes.inc>constexpr
static
bool
isGuide() noexcept;
<mrdocs/Metadata/Symbol/SymbolNodes.inc>constexpr
static
bool
isNamespace() noexcept;
<mrdocs/Metadata/Symbol/SymbolNodes.inc>constexpr
static
bool
isNamespaceAlias() noexcept;
<mrdocs/Metadata/Symbol/SymbolNodes.inc>constexpr
static
bool
isOverloads() noexcept;
<mrdocs/Metadata/Symbol/SymbolNodes.inc>constexpr
static
bool
isRecord() noexcept;
<mrdocs/Metadata/Symbol/SymbolNodes.inc>constexpr
static
bool
isTypedef() noexcept;
<mrdocs/Metadata/Symbol/SymbolNodes.inc>constexpr
static
bool
isUsing() noexcept;
<mrdocs/Metadata/Symbol/SymbolNodes.inc>constexpr
static
bool
isVariable() noexcept;
Whether this represents an unnamed namespace.
<mrdocs/Metadata/Symbol/Namespace.hpp>bool IsAnonymous = false;
Whether this declaration is inline.
<mrdocs/Metadata/Symbol/Namespace.hpp>bool IsInline = false;
The members of this namespace.
Namespaces nominated by using-directives.
<mrdocs/Metadata/Symbol/Namespace.hpp>std::vector<Name> UsingDirectives;
Buckets the members that appear inside a namespace.
<mrdocs/Metadata/Symbol/Namespace.hpp>struct NamespaceTranche;
| Name | Description |
|---|---|
operator<=> | Compare tranches field-by-field. |
| Name | Description |
|---|---|
Concepts | Concepts. |
Enums | Enumerations. |
Functions | Functions and overload sets. |
Guides | Deduction guides. |
NamespaceAliases | Namespace aliases declared here. |
Namespaces | Nested namespaces. |
Records | Record types (classes/structs). |
Typedefs | Typedef or using declarations. |
Usings | Using-declarations that introduce members. |
Variables | Variables. |
| Name | Description |
|---|---|
allMembers | Join all tranche member lists into a single view. |
merge | Merge two tranches, appending members from the right-hand side. |
Compare tranches field-by-field.
<mrdocs/Metadata/Symbol/Namespace.hpp>constexpr
auto
operator<=>(NamespaceTranche const& rhs) const = default;
| Name | Description |
|---|---|
| rhs | The right operand |
Concepts.
<mrdocs/Metadata/Symbol/Namespace.hpp>std::vector<SymbolID> Concepts;
Enumerations.
<mrdocs/Metadata/Symbol/Namespace.hpp>std::vector<SymbolID> Enums;
Functions and overload sets.
<mrdocs/Metadata/Symbol/Namespace.hpp>std::vector<SymbolID> Functions;
Deduction guides.
<mrdocs/Metadata/Symbol/Namespace.hpp>std::vector<SymbolID> Guides;
Namespace aliases declared here.
<mrdocs/Metadata/Symbol/Namespace.hpp>std::vector<SymbolID> NamespaceAliases;
Nested namespaces.
<mrdocs/Metadata/Symbol/Namespace.hpp>std::vector<SymbolID> Namespaces;
Record types (classes/structs).
<mrdocs/Metadata/Symbol/Namespace.hpp>std::vector<SymbolID> Records;
Typedef or using declarations.
<mrdocs/Metadata/Symbol/Namespace.hpp>std::vector<SymbolID> Typedefs;
Using-declarations that introduce members.
<mrdocs/Metadata/Symbol/Namespace.hpp>std::vector<SymbolID> Usings;
Variables.
<mrdocs/Metadata/Symbol/Namespace.hpp>std::vector<SymbolID> Variables;
Captures a noexcept specification and its evaluated form.
<mrdocs/Metadata/Specifiers/NoexceptInfo.hpp>struct NoexceptInfo;
| Name | Description |
|---|---|
operator<=> | Compare noexcept-specifier info. |
| Name | Description |
|---|---|
Implicit | Whether a noexcept-specifier was user-written. |
Kind | The evaluated exception specification. |
Operand | The operand of the noexcept-specifier, if any. |
| Name | Description |
|---|---|
toString | Convert NoexceptInfo to a string. |
Compare noexcept-specifier info.
<mrdocs/Metadata/Specifiers/NoexceptInfo.hpp>constexpr
auto
operator<=>(NoexceptInfo const& rhs) const = default;
| Name | Description |
|---|---|
| rhs | The right operand |
Whether a noexcept-specifier was user-written.
<mrdocs/Metadata/Specifiers/NoexceptInfo.hpp>bool Implicit = true;
The evaluated exception specification.
<mrdocs/Metadata/Specifiers/NoexceptInfo.hpp>NoexceptKind Kind = NoexceptKind::False;
The operand of the noexcept-specifier, if any.
<mrdocs/Metadata/Specifiers/NoexceptInfo.hpp>std::string Operand;
A compact optional that automatically uses nullable_traits<T> when available.
<mrdocs/ADT/Optional.hpp>template<class T>
class Optional;
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.
| Name | Description |
|---|---|
value_type | Value type stored by this Optional. |
| 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. |
| Name | Description |
|---|---|
is_inlined | Determine if the value is inlined via nullable traits. |
| Name | Description |
|---|---|
getOperatorReadableName | Return the human-readable name of the operator |
getPrimaryLocation | Determine a location to use when none is explicitly chosen. |
getPrimaryLocation | Choose the best location to display for a symbol. |
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<=> | Compare optional polymorphic types, treating disengaged as less. |
operator<=> | Compare optional template infos, treating disengaged as ordered before engaged. |
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 helper for optional template info. |
operator== | Equality helper for optional polymorphic types. |
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. |
swap | Swap two Optional references. |
dom::stringOrNull | Return a non-empty string, or a null. |
Value type stored by this Optional.
<mrdocs/ADT/Optional.hpp>using value_type = T;
Constructors
<mrdocs/ADT/Optional.hpp>Default-constructs to the “null” state.
constexpr
Optional() noexcept(default_ctor_noex_());
» more...
Copy constructor
constexpr
Optional(Optional const& other) = default;
» more...
Construct from another Optional with a convertible contained value.
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 &>);
» more...
Move constructor
constexpr
Optional(Optional&& other) = default;
» more...
Construct from another Optional rvalue with a convertible value.
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>);
» more...
Construct from std::nullopt
constexpr
Optional(std::nullopt_t value) noexcept(default_ctor_noex_());
» more...
Construct from std::optional lvalue with convertible value.
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 &>);
» more...
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>);
» more...
Construct from std::optional rvalue with convertible value.
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>);
» more...
In-place construct the contained value.
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...>);
» more...
In-place construct the contained value from an initializer list.
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...>);
» more...
| Name | Description |
|---|---|
| t | Source optional. |
| u | The value to store. It must be convertible to T. |
| args | Arguments forwarded to T's constructor. |
| il | Initializer list forwarded to T's constructor. |
Default-constructs to the “null” state.
<mrdocs/ADT/Optional.hpp>constexpr
Optional() noexcept(default_ctor_noex_());
Copy constructor
| Name | Description |
|---|---|
| other | The object to copy construct from |
Construct from another Optional with a convertible contained value.
<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 &>);
| Name | Description |
|---|---|
| t | Source optional. |
Move constructor
| Name | Description |
|---|---|
| other | The object to move construct from |
Construct from another Optional rvalue with a convertible value.
<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>);
| Name | Description |
|---|---|
| t | Source optional. |
Construct from std::nullopt
<mrdocs/ADT/Optional.hpp>constexpr
Optional(std::nullopt_t value) noexcept(default_ctor_noex_());
| Name | Description |
|---|---|
| value | The object to construct from |
Construct from std::optional lvalue with convertible value.
<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 &>);
| Name | Description |
|---|---|
| t | Source optional. |
Construct from a value.
<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>);
| Name | Description |
|---|---|
| u | The value to store. It must be convertible to T. |
Construct from std::optional rvalue with convertible value.
<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>);
| Name | Description |
|---|---|
| t | Source optional. |
In-place construct the contained value.
<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...>);
| Name | Description |
|---|---|
| args | Arguments forwarded to T's constructor. |
In-place construct the contained value from an initializer list.
<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...>);
| Name | Description |
|---|---|
| il | Initializer list forwarded to T's constructor. |
| args | Additional arguments forwarded to T's constructor. |
Assignment operators
<mrdocs/ADT/Optional.hpp>Copy assignment.
constexpr
Optional&
operator=(Optional const& other) = default;
» more...
Assign from another Optional with convertible contained value.
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 &>);
» more...
Move assignment.
constexpr
Optional&
operator=(Optional&& other) = default;
» more...
Assign from another Optional rvalue with convertible contained value.
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>);
» more...
Reset to disengaged state from nullptr tag.
constexpr
Optional&
operator=(std::nullptr_t value) noexcept(reset_noex_());
» more...
Assign from std::optional lvalue with convertible value.
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=(std::optional<U> const& u) noexcept(std::is_nothrow_constructible_v<T, const U &> && std::is_nothrow_assignable_v<T &, const U &>);
» more...
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>);
» more...
Assign from std::optional rvalue with convertible value.
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=(std::optional<U>&& u) noexcept(std::is_nothrow_constructible_v<T, U> && std::is_nothrow_assignable_v<T &, U>);
» more...
| Name | Description |
|---|---|
| u | Source optional. |
Copy assignment.
<mrdocs/ADT/Optional.hpp>constexpr
Optional&
operator=(Optional const& other) = default;
| Name | Description |
|---|---|
| other | The object to copy assign from |
Assign from another Optional with convertible contained value.
<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 &>);
| Name | Description |
|---|---|
| u | Source optional. |
Move assignment.
<mrdocs/ADT/Optional.hpp>constexpr
Optional&
operator=(Optional&& other) = default;
| Name | Description |
|---|---|
| other | The object to move assign from |
Assign from another Optional rvalue with convertible contained value.
<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>);
| Name | Description |
|---|---|
| u | Source optional. |
Reset to disengaged state from nullptr tag.
<mrdocs/ADT/Optional.hpp>constexpr
Optional&
operator=(std::nullptr_t value) noexcept(reset_noex_());
| Name | Description |
|---|---|
| value | The object to assign from |
Assign from std::optional lvalue with convertible value.
<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=(std::optional<U> const& u) noexcept(std::is_nothrow_constructible_v<T, const U &> && std::is_nothrow_assignable_v<T &, const U &>);
| Name | Description |
|---|---|
| u | Source optional. |
Assign from a value.
<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>);
| Name | Description |
|---|---|
| u | The value to store. It must be convertible to T. |
Assign from std::optional rvalue with convertible value.
<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=(std::optional<U>&& u) noexcept(std::is_nothrow_constructible_v<T, U> && std::is_nothrow_assignable_v<T &, U>);
| Name | Description |
|---|---|
| u | Source optional. |
In-place construct a new value, replacing any existing one.
<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...>);
| Name | Description |
|---|---|
| args | The arguments to forward to T's constructor. |
True if engaged (contains a value).
<mrdocs/ADT/Optional.hpp>constexpr
bool
has_value() const noexcept(has_value_noex_());
true if the optional contains a value.
Dereference-like access.
<mrdocs/ADT/Optional.hpp>Dereference-like access.
constexpr
value_type&
operator*() noexcept;
» more...
Dereference-like access.
constexpr
value_type const&
operator*() const noexcept;
» more...
Dereference-like access.
Dereference-like access.
<mrdocs/ADT/Optional.hpp>constexpr
value_type const&
operator*() const noexcept;
Pointer-like access.
<mrdocs/ADT/Optional.hpp>Pointer-like access.
constexpr
value_type*
operator->() noexcept;
» more...
Pointer-like access.
constexpr
value_type const*
operator->() const noexcept;
» more...
Pointer-like access.
Pointer-like access.
<mrdocs/ADT/Optional.hpp>constexpr
value_type const*
operator->() const noexcept;
Reset to the null state. *
<mrdocs/ADT/Optional.hpp>constexpr
void
reset() noexcept(reset_noex_());
Value access. Preconditions: has_value() is true.
<mrdocs/ADT/Optional.hpp>Value access. Preconditions: has_value() is true.
constexpr
value_type&
value() & noexcept;
» more...
Value access. Preconditions: has_value() is true.
constexpr
value_type const&
value() const & noexcept;
» more...
Value access. Preconditions: has_value() is true.
constexpr
value_type&&
value() && noexcept;
» more...
Value access. Preconditions: has_value() is true.
constexpr
value_type const&&
value() const && noexcept;
» more...
Value access. Preconditions: has_value() is true.
Value access. Preconditions: has_value() is true.
<mrdocs/ADT/Optional.hpp>constexpr
value_type const&
value() const & noexcept;
Value access. Preconditions: has_value() is true.
Value access. Preconditions: has_value() is true.
<mrdocs/ADT/Optional.hpp>constexpr
value_type const&&
value() const && noexcept;
Contextual bool.
<mrdocs/ADT/Optional.hpp>constexpr
explicit
operator bool() const noexcept(noexcept(this->has_value()));
bool
Determine if the value is inlined via nullable traits.
<mrdocs/ADT/Optional.hpp>constexpr
static
bool
is_inlined() noexcept;
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.
true if the optional uses nullable_traits<T> for storage.
Optional reference wrapper that never owns storage.
Stores a pointer to an externally owned object; the disengaged state is nullptr.
| Name | Description |
|---|---|
value_type | Referenced value type. |
| Name | Description |
|---|---|
Optional [constructor] | Constructors |
operator= | Assignment operators |
emplace | Bind to a new referenced value. |
has_value | Check whether the optional holds a reference. |
operator* | Dereference the referenced object. |
operator-> | Return pointer to the referenced object. |
reset | Disengage the optional. |
swap | Exchange the contained value with another Optional. |
value | value overloads |
operator bool | Return true when the optional holds a reference. |
| Name | Description |
|---|---|
is_inlined | Return true because Optional<T&> never allocates storage. |
Referenced value type.
<mrdocs/ADT/Optional.hpp>using value_type = T;
Constructors
<mrdocs/ADT/Optional.hpp>Construct an empty optional reference.
constexpr
Optional() noexcept = default;
» more...
Copy constructor.
constexpr
Optional(Optional const& other) noexcept = default;
» more...
Move constructor.
constexpr
Optional(Optional&& other) noexcept = default;
» more...
Construct disengaged from std::nullopt.
constexpr
Optional(std::nullopt_t value) noexcept;
» more...
Construct from another Optional holding a related reference.
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 &>);
» more...
Construct from std::optional lvalue.
template<class U>
requires ok_bind_v<U&>
constexpr
Optional(std::optional<U>& o) noexcept(std::is_nothrow_constructible_v<T &, U &>);
» more...
Construct from a const Optional holding a related reference.
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 &>);
» more...
Construct from const std::optional lvalue.
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 &>);
» more...
Bind to a referenceable object.
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>);
» more...
| Name | Description |
|---|---|
| rhs | Optional to bind to if engaged. |
| o | Source optional to bind if engaged. |
| u | Object to bind to. |
Construct an empty optional reference.
<mrdocs/ADT/Optional.hpp>constexpr
Optional() noexcept = default;
Copy constructor.
<mrdocs/ADT/Optional.hpp>constexpr
Optional(Optional const& other) noexcept = default;
| Name | Description |
|---|---|
| other | The object to copy construct from |
Move constructor.
<mrdocs/ADT/Optional.hpp>constexpr
Optional(Optional&& other) noexcept = default;
| Name | Description |
|---|---|
| other | The object to move construct from |
Construct disengaged from std::nullopt.
<mrdocs/ADT/Optional.hpp>constexpr
Optional(std::nullopt_t value) noexcept;
| Name | Description |
|---|---|
| value | The object to construct from |
Construct from another Optional holding a related reference.
<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 &>);
| Name | Description |
|---|---|
| rhs | Optional to bind to if engaged. |
Construct from std::optional lvalue.
<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 &>);
| Name | Description |
|---|---|
| o | Source optional to bind if engaged. |
Construct from a const Optional holding a related reference.
<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 &>);
| Name | Description |
|---|---|
| rhs | Optional to bind to if engaged. |
Construct from const std::optional lvalue.
<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 &>);
| Name | Description |
|---|---|
| o | Source optional to bind if engaged. |
Bind to a referenceable object.
<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>);
| Name | Description |
|---|---|
| u | Object to bind to. |
Assignment operators
<mrdocs/ADT/Optional.hpp>Copy assignment.
constexpr
Optional&
operator=(Optional const& other) noexcept = default;
» more...
Move assignment.
constexpr
Optional&
operator=(Optional&& other) noexcept = default;
» more...
Reset from std::nullopt.
constexpr
Optional&
operator=(std::nullopt_t value) noexcept;
» more...
Assign from another Optional reference.
template<class U>
requires ok_bind_v<U&>
constexpr
Optional&
operator=(Optional<U>& rhs) noexcept(std::is_nothrow_constructible_v<T &, U &>);
» more...
Assign from a const Optional reference.
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 &>);
» more...
Assign from a referenceable value.
template<class U>
requires ok_bind_v<U>
constexpr
Optional&
operator=(U&& u) noexcept(std::is_nothrow_constructible_v<T &, U>);
» more...
Assign from a movable Optional reference.
template<class U>
requires ok_bind_v<U>
constexpr
Optional&
operator=(Optional<U>&& rhs) noexcept(std::is_nothrow_constructible_v<T &, U>);
» more...
| Name | Description |
|---|---|
| rhs | Source optional. |
| u | Reference to bind. |
Copy assignment.
<mrdocs/ADT/Optional.hpp>constexpr
Optional&
operator=(Optional const& other) noexcept = default;
| Name | Description |
|---|---|
| other | The object to copy assign from |
Move assignment.
<mrdocs/ADT/Optional.hpp>constexpr
Optional&
operator=(Optional&& other) noexcept = default;
| Name | Description |
|---|---|
| other | The object to move assign from |
Reset from std::nullopt.
<mrdocs/ADT/Optional.hpp>constexpr
Optional&
operator=(std::nullopt_t value) noexcept;
| Name | Description |
|---|---|
| value | The object to assign from |
Assign from another Optional reference.
<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 &>);
| Name | Description |
|---|---|
| rhs | Source optional. |
Assign from a const Optional reference.
<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 &>);
| Name | Description |
|---|---|
| rhs | Source optional. |
Assign from a referenceable value.
<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>);
| Name | Description |
|---|---|
| u | Reference to bind. |
Assign from a movable Optional reference.
<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>);
| Name | Description |
|---|---|
| rhs | Source optional. |
Bind to a new referenced value.
<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>);
| Name | Description |
|---|---|
| u | Referenceable value to bind. |
Check whether the optional holds a reference.
<mrdocs/ADT/Optional.hpp>constexpr
bool
has_value() const noexcept;
true if engaged.
Dereference the referenced object.
<mrdocs/ADT/Optional.hpp>Dereference the referenced object.
constexpr
value_type&
operator*() noexcept;
» more...
Dereference the referenced object.
constexpr
value_type const&
operator*() const noexcept;
» more...
Dereference the referenced object.
Dereference the referenced object.
<mrdocs/ADT/Optional.hpp>constexpr
value_type const&
operator*() const noexcept;
Return pointer to the referenced object.
<mrdocs/ADT/Optional.hpp>Return pointer to the referenced object.
constexpr
value_type*
operator->() noexcept;
» more...
Return pointer to the referenced object.
constexpr
value_type const*
operator->() const noexcept;
» more...
Return pointer to the referenced object.
Return pointer to the referenced object.
<mrdocs/ADT/Optional.hpp>constexpr
value_type const*
operator->() const noexcept;
Disengage the optional.
<mrdocs/ADT/Optional.hpp>constexpr
void
reset() noexcept;
Exchange the contained value with another Optional.
| Name | Description |
|---|---|
| other | Optional to swap with. |
value overloads
<mrdocs/ADT/Optional.hpp>Access the referenced object.
constexpr
value_type&
value() & noexcept;
» more...
Access the referenced object.
constexpr
value_type const&
value() const & noexcept;
» more...
Access the referenced object (rvalue overload).
constexpr
value_type&
value() && noexcept;
» more...
Access the referenced object (const rvalue overload).
constexpr
value_type const&
value() const && noexcept;
» more...
Access the referenced object.
Access the referenced object.
<mrdocs/ADT/Optional.hpp>constexpr
value_type const&
value() const & noexcept;
Access the referenced object (rvalue overload).
Access the referenced object (const rvalue overload).
<mrdocs/ADT/Optional.hpp>constexpr
value_type const&
value() const && noexcept;
Return true when the optional holds a reference.
<mrdocs/ADT/Optional.hpp>constexpr
explicit
operator bool() const noexcept;
Return true because Optional<T&> never allocates storage.
<mrdocs/ADT/Optional.hpp>constexpr
static
bool
is_inlined() noexcept;
Reference to output stream used by handlebars
<mrdocs/Support/Handlebars.hpp>class OutputRef;
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.
| Name | Description |
|---|---|
OutputRef [constructor] | Constructors |
getIndent | Return the current indentation level. |
setIndent | Set the indentation level applied to writes. |
| Name | Description |
|---|---|
operator<< |
Write to output |
operator<< |
Write to output |
operator<< |
Write to output |
operator<< |
Write to output |
Handlebars |
A handlebars environment |
| Name | Description |
|---|---|
HTMLEscape | HTML escapes the specified string |
Constructors
<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);
» more...
Constructor for llvm::raw_string_ostream output
template</* implementation-defined */ Os>
requires std::is_convertible_v<Os*, std::ostream*>
OutputRef(Os& os);
» more...
Constructor for std::string output
template</* implementation-defined */ St>
requires std::same_as<typename St::value_type, char>
OutputRef(St& st);
» more...
| Name | Description |
|---|---|
| os | The output stream to write to |
| st | The string to append to |
Constructor for std::ostream& output
<mrdocs/Support/Handlebars.hpp>template</* implementation-defined */ Os>
requires std::is_convertible_v<Os*, std::ostream*> &&
(!detail::StdLHROStreamable<Os>)
OutputRef(Os& os);
| Name | Description |
|---|---|
| os | The output stream to write to |
Constructor for llvm::raw_string_ostream output
<mrdocs/Support/Handlebars.hpp>template</* implementation-defined */ Os>
requires std::is_convertible_v<Os*, std::ostream*>
OutputRef(Os& os);
| Name | Description |
|---|---|
| os | The output stream to write to |
Constructor for std::string output
<mrdocs/Support/Handlebars.hpp>template</* implementation-defined */ St>
requires std::same_as<typename St::value_type, char>
OutputRef(St& st);
| Name | Description |
|---|---|
| st | The string to append to |
Return the current indentation level.
<mrdocs/Support/Handlebars.hpp>std::size_t
getIndent() const noexcept;
Set the indentation level applied to writes.
<mrdocs/Support/Handlebars.hpp>void
setIndent(std::size_t indent);
| Name | Description |
|---|---|
| indent | Number of spaces to indent. |
Combines multiple callable types into a single overloaded function object.
<mrdocs/ADT/Overload.hpp>template<class... Ts>
struct Overload
: Ts...
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
| Name | Description |
|---|---|
Ts... |
| Name | Description |
|---|---|
Overload [constructor] | Constructs an Overload from the given callables. |
| Name | Description |
|---|---|
makeOverload | Factory function that creates an Overload from the given callables. |
| Name | Description |
|---|---|
| Ts | The callable types to combine (lambdas, function objects, etc.) |
Constructs an Overload from the given callables.
<mrdocs/ADT/Overload.hpp>constexpr
explicit
Overload(Ts... xs) noexcept((std::is_nothrow_move_constructible_v<Ts> && ...));
| Name | Description |
|---|---|
| xs | The callables to store. |
Represents a set of function overloads.
<mrdocs/Metadata/Symbol/Overloads.hpp>struct OverloadsSymbol final
: SymbolCommonBase<SymbolKind::Overloads>
| Name | Description |
|---|---|
SymbolCommonBase<SymbolKind::Overloads> | Base class for providing variant discriminator functions. |
| Name | Description |
|---|---|
OverloadsSymbol [constructor] | Constructors |
operator<=> | Three-way comparison operator |
| Name |
|---|
isConcept |
isEnum |
isEnumConstant |
isFunction |
isGuide |
isNamespace |
isNamespaceAlias |
isOverloads |
isRecord |
isTypedef |
isUsing |
isVariable |
| 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. |
| Name |
|---|
kind_id |
| Name | Description |
|---|---|
addMember | Append a new function overload to the set. |
allMembers | Access the list of overload members. |
canMerge | Check whether two symbols may be merged. |
getPrimaryLocation | Determine a location to use when none is explicitly chosen. |
merge | Merges two Symbol objects. |
merge | Merge overload sets, preserving ordering in Members. |
Constructors
<mrdocs/Metadata/Symbol/Overloads.hpp>Create an empty overload set for the given ID.
explicit
OverloadsSymbol(SymbolID const& ID) noexcept;
» more...
Create an overload set under the given parent and name.
explicit
OverloadsSymbol(
SymbolID const& Parent,
std::string_view Name,
AccessKind Access,
bool isStatic) noexcept;
» more...
| Name | Description |
|---|---|
| Parent | Owning symbol ID. |
| Name | Unqualified name shared by the overloads. |
| Access | Access specifier when the overloads are members. |
| isStatic | Whether the overload set refers to static functions. |
Create an empty overload set for the given ID.
<mrdocs/Metadata/Symbol/Overloads.hpp>explicit
OverloadsSymbol(SymbolID const& ID) noexcept;
| Name | Description |
|---|---|
| ID | The object to copy construct from |
Create an overload set under the given parent and name.
<mrdocs/Metadata/Symbol/Overloads.hpp>explicit
OverloadsSymbol(
SymbolID const& Parent,
std::string_view Name,
AccessKind Access,
bool isStatic) noexcept;
| Name | Description |
|---|---|
| Parent | Owning symbol ID. |
| Name | Unqualified name shared by the overloads. |
| Access | Access specifier when the overloads are members. |
| isStatic | Whether the overload set refers to static functions. |
Three-way comparison operator
<mrdocs/Metadata/Symbol/SymbolBase.hpp>auto
operator<=>(SymbolCommonBase<mrdocs::SymbolKind::Overloads> const& rhs) const = default;
| Name | Description |
|---|---|
| rhs | The right operand |
<mrdocs/Metadata/Symbol/SymbolNodes.inc>constexpr
static
bool
isConcept() noexcept;
<mrdocs/Metadata/Symbol/SymbolNodes.inc>constexpr
static
bool
isEnum() noexcept;
<mrdocs/Metadata/Symbol/SymbolNodes.inc>constexpr
static
bool
isEnumConstant() noexcept;
<mrdocs/Metadata/Symbol/SymbolNodes.inc>constexpr
static
bool
isFunction() noexcept;
<mrdocs/Metadata/Symbol/SymbolNodes.inc>constexpr
static
bool
isGuide() noexcept;
<mrdocs/Metadata/Symbol/SymbolNodes.inc>constexpr
static
bool
isNamespace() noexcept;
<mrdocs/Metadata/Symbol/SymbolNodes.inc>constexpr
static
bool
isNamespaceAlias() noexcept;
<mrdocs/Metadata/Symbol/SymbolNodes.inc>constexpr
static
bool
isOverloads() noexcept;
<mrdocs/Metadata/Symbol/SymbolNodes.inc>constexpr
static
bool
isRecord() noexcept;
<mrdocs/Metadata/Symbol/SymbolNodes.inc>constexpr
static
bool
isTypedef() noexcept;
<mrdocs/Metadata/Symbol/SymbolNodes.inc>constexpr
static
bool
isUsing() noexcept;
<mrdocs/Metadata/Symbol/SymbolNodes.inc>constexpr
static
bool
isVariable() noexcept;
The class of the functions.
<mrdocs/Metadata/Symbol/Overloads.hpp>FunctionClass Class = FunctionClass::Normal;
The members of the overload set.
<mrdocs/Metadata/Symbol/Overloads.hpp>std::vector<SymbolID> Members;
The overloaded operator, if any.
<mrdocs/Metadata/Symbol/Overloads.hpp>OperatorKind OverloadedOperator = OperatorKind::None;
Info about the return type of these function overloads.
<mrdocs/Metadata/Symbol/Overloads.hpp>Polymorphic<Type> ReturnType = Polymorphic<Type>(AutoType{});
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.
Represents a single function parameter
<mrdocs/Metadata/Symbol/Param.hpp>struct Param final
| Name | Description |
|---|---|
Param [constructor] | Constructors |
operator<=> | Compare parameters by type, name, and default. |
| Name | Description |
|---|---|
Default | The default argument for this parameter, if any |
Name | The parameter name. |
Type | The type of this parameter |
| Name | Description |
|---|---|
merge | Merge two parameters, filling missing pieces from Other. |
Constructors
<mrdocs/Metadata/Symbol/Param.hpp>Create an empty parameter with an auto type.
constexpr
Param() = default;
» more...
Construct a parameter with type, name, and default expression.
Param(
Polymorphic<Type>&& type,
std::string&& name,
std::string&& def_arg);
» more...
| Name | Description |
|---|---|
| type | Parameter type. |
| name | Parameter identifier. |
| def_arg | Default argument expression, if present. |
Create an empty parameter with an auto type.
<mrdocs/Metadata/Symbol/Param.hpp>constexpr
Param() = default;
Construct a parameter with type, name, and default expression.
<mrdocs/Metadata/Symbol/Param.hpp>Param(
Polymorphic<Type>&& type,
std::string&& name,
std::string&& def_arg);
| Name | Description |
|---|---|
| type | Parameter type. |
| name | Parameter identifier. |
| def_arg | Default argument expression, if present. |
Compare parameters by type, name, and default.
<mrdocs/Metadata/Symbol/Param.hpp>auto
operator<=>(Param const& rhs) const = default;
| Name | Description |
|---|---|
| rhs | The right operand |
The default argument for this parameter, if any
The parameter name.
The type of this parameter
<mrdocs/Metadata/Symbol/Param.hpp>Polymorphic<Type> Type = Polymorphic<struct Type>(AutoType{});
The result of a parse operation.
<mrdocs/Support/Parse.hpp>struct ParseResult;
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.
| Name | Description |
|---|---|
operator bool | Return true if parsing succeeded. |
| Name | Description |
|---|---|
ec | Error status for the parse operation. |
ptr | Pointer to the first unparsed character. |
| Name | Description |
|---|---|
operator== |
Equality operator |
| Name | Description |
|---|---|
parse | Parse a string view |
Return true if parsing succeeded.
<mrdocs/Support/Parse.hpp>constexpr
explicit
operator bool() const noexcept;
true when ec is not a failure.
Error status for the parse operation.
Pointer to the first unparsed character.
<mrdocs/Support/Parse.hpp>char const* ptr;
A glob pattern matcher for paths
<mrdocs/Support/Glob.hpp>class PathGlobPattern;
A glob pattern matcher where "*" does not match path separators. The pattern "**" can be used to match any number of path separators.
| 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. |
| Name | Description |
|---|---|
create | Constructs a PathGlobPattern with the given pattern. |
Construct an empty PathGlobPattern.
<mrdocs/Support/Glob.hpp>Construct an empty PathGlobPattern.
constexpr
PathGlobPattern() = default;
» more...
Construct an empty PathGlobPattern.
explicit
PathGlobPattern(GlobPattern glob);
» more...
Construct an empty PathGlobPattern.
<mrdocs/Support/Glob.hpp>constexpr
PathGlobPattern() = default;
An empty PathGlobPattern will never match any string.
Construct an empty PathGlobPattern.
An empty PathGlobPattern will never match any string.
| Name | Description |
|---|---|
| glob | The object to construct from |
Checks if the glob pattern is a literal string.
<mrdocs/Support/Glob.hpp>bool
isLiteral() const;
This function determines if the glob pattern does not contain any special characters. In other words, it matches a single string.
Matches the given string against the glob pattern.
<mrdocs/Support/Glob.hpp>bool
match(std::string_view const str) const;
| Name | Description |
|---|---|
| str | The string to match against the pattern. |
Matches the start of a given string against the glob pattern.
<mrdocs/Support/Glob.hpp>bool
matchPatternPrefix(std::string_view prefix) const;
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.
| Name | Description |
|---|---|
| prefix | The string to match against the pattern. |
Returns the glob pattern.
<mrdocs/Support/Glob.hpp>std::string_view
pattern() const;
Constructs a PathGlobPattern with the given pattern.
<mrdocs/Support/Glob.hpp>Constructs a PathGlobPattern with the given pattern.
static
Expected<PathGlobPattern>
create(std::string_view const pattern);
» more...
Constructs a PathGlobPattern with the given pattern.
static
Expected<PathGlobPattern>
create(
std::string_view const pattern,
Optional<std::size_t> maxSubGlobs);
» more...
| Name | Description |
|---|---|
| pattern | The glob pattern to use for matching. |
| maxSubGlobs | The maximum number of subpatterns allowed. |
Constructs a PathGlobPattern with the given pattern.
<mrdocs/Support/Glob.hpp>static
Expected<PathGlobPattern>
create(std::string_view const pattern);
| Name | Description |
|---|---|
| pattern | The glob pattern to use for matching. |
Constructs a PathGlobPattern with the given pattern.
<mrdocs/Support/Glob.hpp>static
Expected<PathGlobPattern>
create(
std::string_view const pattern,
Optional<std::size_t> maxSubGlobs);
| Name | Description |
|---|---|
| pattern | The glob pattern to use for matching. |
| maxSubGlobs | The maximum number of subpatterns allowed. |
Pointer type wrapper.
<mrdocs/Metadata/Type/PointerType.hpp>struct PointerType final
: TypeCommonBase<TypeKind::Pointer>
| Name | Description |
|---|---|
TypeCommonBase<TypeKind::Pointer> | CRTP base that ties a concrete type to a fixed TypeKind. |
| Name | Description |
|---|---|
operator<=> | Compare pointer types by pointee. |
| Name |
|---|
isArray |
isAuto |
isDecltype |
isFunction |
isLValueReference |
isMemberPointer |
isNamed |
isPointer |
isRValueReference |
| Name | Description |
|---|---|
PointeeType | The pointee type, defaults to auto when unknown. |
| Name |
|---|
kind_id |
| Name | Description |
|---|---|
innerType | Return the inner type. |
innerType | Return the inner type. |
innerTypePtr | Return the inner type. |
innerTypePtr | Return the inner type. |
toString | Render a type to a human-readable string. |
Compare pointer types by pointee.
<mrdocs/Metadata/Type/PointerType.hpp>Compare pointer types by pointee.
std::strong_ordering
operator<=>(PointerType const& rhs) const;
» more...
Three-way comparison operator
constexpr
auto
operator<=>(TypeCommonBase<mrdocs::TypeKind::Pointer> const& rhs) const = default;
» more...
Compare pointer types by pointee.
<mrdocs/Metadata/Type/PointerType.hpp>std::strong_ordering
operator<=>(PointerType const& rhs) const;
| Name | Description |
|---|---|
| rhs | The right operand |
Three-way comparison operator
<mrdocs/Metadata/Type/TypeBase.hpp>constexpr
auto
operator<=>(TypeCommonBase<mrdocs::TypeKind::Pointer> const& rhs) const = default;
| Name | Description |
|---|---|
| rhs | The right operand |
<mrdocs/Metadata/Type/TypeBase.hpp>constexpr
static
bool
isArray() noexcept;
<mrdocs/Metadata/Type/TypeBase.hpp>constexpr
static
bool
isAuto() noexcept;
<mrdocs/Metadata/Type/TypeBase.hpp>constexpr
static
bool
isDecltype() noexcept;
<mrdocs/Metadata/Type/TypeBase.hpp>constexpr
static
bool
isFunction() noexcept;
<mrdocs/Metadata/Type/TypeBase.hpp>constexpr
static
bool
isLValueReference() noexcept;
<mrdocs/Metadata/Type/TypeBase.hpp>constexpr
static
bool
isMemberPointer() noexcept;
<mrdocs/Metadata/Type/TypeBase.hpp>constexpr
static
bool
isNamed() noexcept;
<mrdocs/Metadata/Type/TypeBase.hpp>constexpr
static
bool
isPointer() noexcept;
<mrdocs/Metadata/Type/TypeBase.hpp>constexpr
static
bool
isRValueReference() noexcept;
The pointee type, defaults to auto when unknown.
<mrdocs/Metadata/Type/PointerType.hpp>Polymorphic<Type> PointeeType = Polymorphic<Type>(AutoType{});
A polymorphic value-type.
<mrdocs/ADT/Polymorphic.hpp>template<class T>
class Polymorphic;
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.
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.
| Name | Description |
|---|---|
const_pointer | Const pointer to the held object. |
pointer | Mutable pointer to the held object. |
value_type | Base value type. |
| Name | Description |
|---|---|
Polymorphic [constructor] | Constructors |
~Polymorphic [destructor] | Destructor. |
operator= | Assignment operators |
operator* | Dereference operators |
operator-> | Member access operators |
valueless_after_move | Return true if the object has been moved-from and is disengaged. |
| Name | Description |
|---|---|
swap |
|
nullable_traits |
nullable_traits<T> defines how to treat a T as “nullable” without an external engaged bit. |
| Name | Description |
|---|---|
CompareDerived | Compares two polymorphic objects that have visit functions |
cast | Dynamic cast returning const reference; asserts on failure. |
cast | Dynamic cast returning reference; asserts on failure. |
cast_or_null | Dynamic cast pointer; returns nullptr when pp is null. |
cast_or_null | Dynamic cast pointer; returns nullptr when pp is null (const). |
dyn_cast | Dynamic cast returning pointer or nullptr. |
dyn_cast | Dynamic cast returning pointer or nullptr (const overload). |
dyn_cast_or_null | Dynamic cast if pointer is non-null and engaged, else nullptr. |
dyn_cast_or_null | Dynamic cast if pointer is non-null and engaged, else nullptr (const). |
innerType | Return the inner type. |
innerType | Return the inner type. |
innermostType | Return the innermost type (mutable overload). |
innermostType | Return the innermost type. |
isa | Return true if the polymorphic object holds a value of type To. |
isa_or_null | Return true if pointer is non-null and referent is of type To. |
operator<=> | Compare polymorphic template arguments. |
operator<=> | Three-way comparison for polymorphic Name variants. |
operator<=> | Compare polymorphic template parameters. |
operator<=> | Three-way comparison of two polymorphic objects. |
operator<=> | Compare two polymorphic types for ordering. |
operator== | Equality helper for polymorphic types. |
operator== | Equality comparison of two polymorphic objects. |
operator== | Equality compare two polymorphic names. |
operator== | Equality helper for polymorphic template parameters. |
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 between polymorphic block wrappers. |
doc::operator<=> | Three-way comparison for polymorphic inline elements. |
doc::operator== | Equality delegates to the three-way comparison. |
doc::operator== | Equality delegates to the three-way comparison. |
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. |
Const pointer to the held object.
<mrdocs/ADT/Polymorphic.hpp>using const_pointer = T const*;
Mutable pointer to the held object.
<mrdocs/ADT/Polymorphic.hpp>using pointer = T*;
Base value type.
<mrdocs/ADT/Polymorphic.hpp>using value_type = T;
Constructors
<mrdocs/ADT/Polymorphic.hpp>Copy constructor.
constexpr
Polymorphic(Polymorphic const& V);
» more...
Move constructor.
constexpr
Polymorphic(Polymorphic&& V) noexcept;
» more...
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>;
» more...
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>;
» more...
| Name | Description |
|---|---|
| V | Source object. |
| ts | Arguments to forward to U's constructor. |
Copy constructor.
| Name | Description |
|---|---|
| V | Source object. |
Move constructor.
| Name | Description |
|---|---|
| V | Source object (emptied on return). |
Forwarding constructor from a derived U.
<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>;
| Name | Description |
|---|---|
| u | The object to move construct from |
In-place constructor for a specific derived U.
<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>;
| Name | Description |
|---|---|
| ts | Arguments to forward to U's constructor. |
Destructor.
<mrdocs/ADT/Polymorphic.hpp>constexpr
~Polymorphic();
Assignment operators
<mrdocs/ADT/Polymorphic.hpp>Copy assignment.
constexpr
Polymorphic&
operator=(Polymorphic const& V);
» more...
Move assignment.
constexpr
Polymorphic&
operator=(Polymorphic&& V) noexcept;
» more...
| Name | Description |
|---|---|
| V | Source object. |
Copy assignment.
<mrdocs/ADT/Polymorphic.hpp>constexpr
Polymorphic&
operator=(Polymorphic const& V);
| Name | Description |
|---|---|
| V | Source object. |
Move assignment.
<mrdocs/ADT/Polymorphic.hpp>constexpr
Polymorphic&
operator=(Polymorphic&& V) noexcept;
| Name | Description |
|---|---|
| V | Source object (emptied on return). |
Dereference operators
<mrdocs/ADT/Polymorphic.hpp>Dereference to the held object.
[[nodiscard]]
constexpr
T&
operator*() noexcept;
» more...
Dereference to the held object (const).
[[nodiscard]]
constexpr
T const&
operator*() const noexcept;
» more...
Dereference to the held object.
<mrdocs/ADT/Polymorphic.hpp>[[nodiscard]]
constexpr
T&
operator*() noexcept;
Dereference to the held object (const).
<mrdocs/ADT/Polymorphic.hpp>[[nodiscard]]
constexpr
T const&
operator*() const noexcept;
Member access operators
<mrdocs/ADT/Polymorphic.hpp>Pointer-like access to the held object.
[[nodiscard]]
constexpr
pointer
operator->() noexcept;
» more...
Pointer-like access to the held object (const).
[[nodiscard]]
constexpr
const_pointer
operator->() const noexcept;
» more...
Pointer-like access to the held object.
<mrdocs/ADT/Polymorphic.hpp>[[nodiscard]]
constexpr
pointer
operator->() noexcept;
Pointer-like access to the held object (const).
<mrdocs/ADT/Polymorphic.hpp>[[nodiscard]]
constexpr
const_pointer
operator->() const noexcept;
Return true if the object has been moved-from and is disengaged.
<mrdocs/ADT/Polymorphic.hpp>constexpr
bool
valueless_after_move() const noexcept;
true when empty.
An rvalue reference type.
<mrdocs/Metadata/Type/RValueReferenceType.hpp>struct RValueReferenceType final
: TypeCommonBase<TypeKind::RValueReference>
| Name | Description |
|---|---|
TypeCommonBase<TypeKind::RValueReference> | CRTP base that ties a concrete type to a fixed TypeKind. |
| Name | Description |
|---|---|
operator<=> | Compare rvalue references by pointee. |
| Name |
|---|
isArray |
isAuto |
isDecltype |
isFunction |
isLValueReference |
isMemberPointer |
isNamed |
isPointer |
isRValueReference |
| Name | Description |
|---|---|
PointeeType | The referenced type, defaults to auto when unknown. |
| Name |
|---|
kind_id |
| Name | Description |
|---|---|
innerType | Return the inner type. |
innerType | Return the inner type. |
innerTypePtr | Return the inner type. |
innerTypePtr | Return the inner type. |
toString | Render a type to a human-readable string. |
Compare rvalue references by pointee.
<mrdocs/Metadata/Type/RValueReferenceType.hpp>Compare rvalue references by pointee.
std::strong_ordering
operator<=>(RValueReferenceType const& rhs) const;
» more...
Three-way comparison operator
constexpr
auto
operator<=>(TypeCommonBase<mrdocs::TypeKind::RValueReference> const& rhs) const = default;
» more...
Compare rvalue references by pointee.
<mrdocs/Metadata/Type/RValueReferenceType.hpp>std::strong_ordering
operator<=>(RValueReferenceType const& rhs) const;
| Name | Description |
|---|---|
| rhs | The right operand |
Three-way comparison operator
<mrdocs/Metadata/Type/TypeBase.hpp>constexpr
auto
operator<=>(TypeCommonBase<mrdocs::TypeKind::RValueReference> const& rhs) const = default;
| Name | Description |
|---|---|
| rhs | The right operand |
<mrdocs/Metadata/Type/TypeBase.hpp>constexpr
static
bool
isArray() noexcept;
<mrdocs/Metadata/Type/TypeBase.hpp>constexpr
static
bool
isAuto() noexcept;
<mrdocs/Metadata/Type/TypeBase.hpp>constexpr
static
bool
isDecltype() noexcept;
<mrdocs/Metadata/Type/TypeBase.hpp>constexpr
static
bool
isFunction() noexcept;
<mrdocs/Metadata/Type/TypeBase.hpp>constexpr
static
bool
isLValueReference() noexcept;
<mrdocs/Metadata/Type/TypeBase.hpp>constexpr
static
bool
isMemberPointer() noexcept;
<mrdocs/Metadata/Type/TypeBase.hpp>constexpr
static
bool
isNamed() noexcept;
<mrdocs/Metadata/Type/TypeBase.hpp>constexpr
static
bool
isPointer() noexcept;
<mrdocs/Metadata/Type/TypeBase.hpp>constexpr
static
bool
isRValueReference() noexcept;
The referenced type, defaults to auto when unknown.
<mrdocs/Metadata/Type/RValueReferenceType.hpp>Polymorphic<Type> PointeeType = Polymorphic<Type>(AutoType{});
Range adapter to expose first/last flags inside range-for loops.
<mrdocs/Support/RangeFor.hpp>template<class Container>
class RangeFor;
| Name | Description |
|---|---|
iterator | Iterator yielding RangeFor::value_type proxies with first/last flags. |
value_type | Proxy describing an element plus first/last flags. |
const_pointer | Pointer to const proxy. |
const_reference | Reference to const proxy. |
difference_type | Signed distance type. |
pointer | Pointer to proxy. |
reference | Reference to proxy. |
size_type | Unsigned size type. |
| Name | Description |
|---|---|
RangeFor [constructor] | Construct a range wrapper over a container. |
begin | Iterator to first element. |
end | Iterator past the last element. |
Pointer to const proxy.
Reference to const proxy.
Signed distance type.
<mrdocs/Support/RangeFor.hpp>using difference_type = std::ptrdiff_t;
Pointer to proxy.
Reference to proxy.
Unsigned size type.
<mrdocs/Support/RangeFor.hpp>using size_type = std::size_t;
Iterator yielding RangeFor::value_type proxies with first/last flags.
<mrdocs/Support/RangeFor.hpp>class iterator;
| Name | Description |
|---|---|
iterator_category | Iterator category forwarded from container. |
pointer | Pointer type (unused). |
reference | Reference type. |
size_type | Size type alias. |
value_type | Proxy value type. |
| Name | Description |
|---|---|
iterator [constructor] | Constructors |
operator= | Copy assignment. |
operator* | Dereference to proxy value. |
operator++ | Increment operators |
operator-> | Return proxy for current element. |
operator== | Equality comparison. |
operator!= | Inequality comparison. |
| Name | Description |
|---|---|
value_type |
Proxy describing an element plus first/last flags. |
RangeFor |
Range adapter to expose first/last flags inside range-for loops. |
Iterator category forwarded from container.
<mrdocs/Support/RangeFor.hpp>using iterator_category = std::iterator_traits<Container::iterator>::iterator_category;
Pointer type (unused).
<mrdocs/Support/RangeFor.hpp>using pointer = void;
Reference type.
Size type alias.
<mrdocs/Support/RangeFor.hpp>using size_type = std::size_t;
Proxy value type.
<mrdocs/Support/RangeFor.hpp>using value_type = RangeFor<Container>::value_type;
Constructors
<mrdocs/Support/RangeFor.hpp>Default constructor.
iterator() = default;
» more...
Copy constructor.
iterator(iterator const& other) = default;
» more...
Default constructor.
<mrdocs/Support/RangeFor.hpp>iterator() = default;
Copy constructor.
| Name | Description |
|---|---|
| other | The object to copy construct from |
Copy assignment.
<mrdocs/Support/RangeFor.hpp>iterator&
operator=(iterator const& other) = default;
| Name | Description |
|---|---|
| other | The object to copy assign from |
Dereference to proxy value.
Increment operators
<mrdocs/Support/RangeFor.hpp>Pre-increment.
iterator&
operator++() noexcept;
» more...
Post-increment.
iterator
operator++(int unused) noexcept;
» more...
| Name | Description |
|---|---|
| unused | Dummy parameter for postfix form. |
Pre-increment.
Post-increment.
| Name | Description |
|---|---|
| unused | Dummy parameter for postfix form. |
Return proxy for current element.
Equality comparison.
<mrdocs/Support/RangeFor.hpp>bool
operator==(iterator const& it) const noexcept;
true if the objects are equal, false otherwise
| Name | Description |
|---|---|
| it | The right operand |
Inequality comparison.
<mrdocs/Support/RangeFor.hpp>bool
operator!=(iterator const& it) const noexcept;
true if the objects are not equal, false otherwise
| Name | Description |
|---|---|
| it | The right operand |
Proxy describing an element plus first/last flags.
<mrdocs/Support/RangeFor.hpp>struct value_type;
Reference to current element.
| Name | Description |
|---|---|
operator-> | Access members through pointer syntax. |
| Name | Description |
|---|---|
first | True if this element is the first in the range. |
last | True if this element is the last in the range. |
value | The contained value. |
Access members through pointer syntax.
True if this element is the first in the range.
<mrdocs/Support/RangeFor.hpp>bool const first;
True if this element is the last in the range.
<mrdocs/Support/RangeFor.hpp>bool const last;
The contained value.
<mrdocs/Support/RangeFor.hpp>Container::value_type const& value;
Construct a range wrapper over a container.
<mrdocs/Support/RangeFor.hpp>explicit
RangeFor(Container const& C) noexcept;
| Name | Description |
|---|---|
| C | Container to iterate. |
Iterator to first element.
Iterator past the last element.
The aggregated interface for a given struct, class, or union.
<mrdocs/Metadata/Symbol/RecordInterface.hpp>class RecordInterface;
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.
| Name | Description |
|---|---|
Private | The aggregated private interfaces. |
Protected | The aggregated protected interfaces. |
Public | The aggregated public interfaces. |
| Name | Description |
|---|---|
allMembers | Flatten all public/protected/private members. |
merge | Merge two interfaces, combining matching tranches. |
The aggregated private interfaces.
This tranche contains all private members of a record or namespace.
The aggregated protected interfaces.
This tranche contains all protected members of a record or namespace.
The aggregated public interfaces.
This tranche contains all public members of a record or namespace.
Metadata for struct, class, or union.
<mrdocs/Metadata/Symbol/Record.hpp>struct RecordSymbol final
: SymbolCommonBase<SymbolKind::Record>
| Name | Description |
|---|---|
SymbolCommonBase<SymbolKind::Record> | Base class for providing variant discriminator functions. |
| Name | Description |
|---|---|
RecordSymbol [constructor] | Create a record symbol bound to an ID. |
operator<=> | Compare records including bases, members, and flags. |
| Name |
|---|
isConcept |
isEnum |
isEnumConstant |
isFunction |
isGuide |
isNamespace |
isNamespaceAlias |
isOverloads |
isRecord |
isTypedef |
isUsing |
isVariable |
| Name | Description |
|---|---|
Bases | List of immediate bases. |
Derived | List of derived classes |
Friends | List of friends. |
Interface | Lists of members. |
IsFinal | Whether the class is marked final. |
IsFinalDestructor | Whether the destructor is marked final. |
IsTypeDef | Whether the record originated from a typedef-style declaration. |
KeyKind | Kind of record this is (class, struct, or union). |
Template | When present, this record is a template or specialization. |
| Name |
|---|
kind_id |
| Name | Description |
|---|---|
allMembers | View all record members across access levels. |
canMerge | Check whether two symbols may be merged. |
getPrimaryLocation | Determine a location to use when none is explicitly chosen. |
merge | Merges two Symbol objects. |
merge | Merge metadata from another record of the same identity. |
Create a record symbol bound to an ID.
<mrdocs/Metadata/Symbol/Record.hpp>explicit
RecordSymbol(SymbolID const& ID) noexcept;
| Name | Description |
|---|---|
| ID | The object to copy construct from |
Compare records including bases, members, and flags.
<mrdocs/Metadata/Symbol/Record.hpp>Compare records including bases, members, and flags.
std::strong_ordering
operator<=>(RecordSymbol const& other) const;
» more...
Three-way comparison operator
auto
operator<=>(SymbolCommonBase<mrdocs::SymbolKind::Record> const& rhs) const = default;
» more...
Compare records including bases, members, and flags.
<mrdocs/Metadata/Symbol/Record.hpp>std::strong_ordering
operator<=>(RecordSymbol const& other) const;
| Name | Description |
|---|---|
| other | The right operand |
Three-way comparison operator
<mrdocs/Metadata/Symbol/SymbolBase.hpp>auto
operator<=>(SymbolCommonBase<mrdocs::SymbolKind::Record> const& rhs) const = default;
| Name | Description |
|---|---|
| rhs | The right operand |
<mrdocs/Metadata/Symbol/SymbolNodes.inc>constexpr
static
bool
isConcept() noexcept;
<mrdocs/Metadata/Symbol/SymbolNodes.inc>constexpr
static
bool
isEnum() noexcept;
<mrdocs/Metadata/Symbol/SymbolNodes.inc>constexpr
static
bool
isEnumConstant() noexcept;
<mrdocs/Metadata/Symbol/SymbolNodes.inc>constexpr
static
bool
isFunction() noexcept;
<mrdocs/Metadata/Symbol/SymbolNodes.inc>constexpr
static
bool
isGuide() noexcept;
<mrdocs/Metadata/Symbol/SymbolNodes.inc>constexpr
static
bool
isNamespace() noexcept;
<mrdocs/Metadata/Symbol/SymbolNodes.inc>constexpr
static
bool
isNamespaceAlias() noexcept;
<mrdocs/Metadata/Symbol/SymbolNodes.inc>constexpr
static
bool
isOverloads() noexcept;
<mrdocs/Metadata/Symbol/SymbolNodes.inc>constexpr
static
bool
isRecord() noexcept;
<mrdocs/Metadata/Symbol/SymbolNodes.inc>constexpr
static
bool
isTypedef() noexcept;
<mrdocs/Metadata/Symbol/SymbolNodes.inc>constexpr
static
bool
isUsing() noexcept;
<mrdocs/Metadata/Symbol/SymbolNodes.inc>constexpr
static
bool
isVariable() noexcept;
List of immediate bases.
<mrdocs/Metadata/Symbol/Record.hpp>std::vector<BaseInfo> Bases;
List of derived classes
<mrdocs/Metadata/Symbol/Record.hpp>std::vector<SymbolID> Derived;
List of friends.
<mrdocs/Metadata/Symbol/Record.hpp>std::vector<FriendInfo> Friends;
Lists of members.
Whether the class is marked final.
<mrdocs/Metadata/Symbol/Record.hpp>bool IsFinal = false;
Whether the destructor is marked final.
<mrdocs/Metadata/Symbol/Record.hpp>bool IsFinalDestructor = false;
Whether the record originated from a typedef-style declaration.
<mrdocs/Metadata/Symbol/Record.hpp>bool IsTypeDef = false;
Things like anonymous structs in a typedef:
typedef struct { ... } foo_t;
are converted into records with the typedef as the Name + this flag set.
Alias-declarations are not yet distinguished here.
Kind of record this is (class, struct, or union).
<mrdocs/Metadata/Symbol/Record.hpp>RecordKeyKind KeyKind = RecordKeyKind::Struct;
When present, this record is a template or specialization.
A group of members that have the same access specifier.
<mrdocs/Metadata/Symbol/RecordTranche.hpp>struct RecordTranche;
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.
| Name | Description |
|---|---|
Concepts | Member concepts. |
Enums | Enumerations. |
Functions | Member functions. |
Guides | Deduction guides in the class scope. |
NamespaceAliases | Namespace aliases declared with this access. |
Records | Nested records. |
StaticFunctions | Static member functions. |
StaticVariables | Static data members. |
Typedefs | Typedefs and using aliases. |
Usings | Using-declarations that pull members into the class. |
Variables | Data members. |
| Name | Description |
|---|---|
allMembers | Join every member list into a single view. |
merge | Merge two tranches with the same access level. |
Member concepts.
<mrdocs/Metadata/Symbol/RecordTranche.hpp>std::vector<SymbolID> Concepts;
Enumerations.
<mrdocs/Metadata/Symbol/RecordTranche.hpp>std::vector<SymbolID> Enums;
Member functions.
<mrdocs/Metadata/Symbol/RecordTranche.hpp>std::vector<SymbolID> Functions;
Deduction guides in the class scope.
<mrdocs/Metadata/Symbol/RecordTranche.hpp>std::vector<SymbolID> Guides;
Namespace aliases declared with this access.
<mrdocs/Metadata/Symbol/RecordTranche.hpp>std::vector<SymbolID> NamespaceAliases;
Nested records.
<mrdocs/Metadata/Symbol/RecordTranche.hpp>std::vector<SymbolID> Records;
Static member functions.
<mrdocs/Metadata/Symbol/RecordTranche.hpp>std::vector<SymbolID> StaticFunctions;
Static data members.
<mrdocs/Metadata/Symbol/RecordTranche.hpp>std::vector<SymbolID> StaticVariables;
Typedefs and using aliases.
<mrdocs/Metadata/Symbol/RecordTranche.hpp>std::vector<SymbolID> Typedefs;
Using-declarations that pull members into the class.
<mrdocs/Metadata/Symbol/RecordTranche.hpp>std::vector<SymbolID> Usings;
Data members.
<mrdocs/Metadata/Symbol/RecordTranche.hpp>std::vector<SymbolID> Variables;
Reference directories used to resolve paths
<mrdocs/Config/ReferenceDirectories.hpp>struct ReferenceDirectories;
These are the main reference directories used to resolve paths in the application.
All other reference directories come directly from the configuration file.
| Name | Description |
|---|---|
cwd | Absolute path to the current working directory. |
mrdocsRoot | Absolute path to the MrDocs repository root. |
Absolute path to the current working directory.
<mrdocs/Config/ReferenceDirectories.hpp>std::string cwd;
Absolute path to the MrDocs repository root.
<mrdocs/Config/ReferenceDirectories.hpp>std::string mrdocsRoot;
Execute a callable when the enclosing scope exits unless dismissed.
<mrdocs/Support/ScopeExit.hpp>template<class F>
class ScopeExit;
| Name | Description |
|---|---|
ScopeExit [constructor] | Construct with a callable to invoke on scope exit. |
~ScopeExit [destructor] | Invoke the stored callable if the guard was not dismissed. |
dismiss | Prevent the callable from running on destruction. |
Construct with a callable to invoke on scope exit.
<mrdocs/Support/ScopeExit.hpp>explicit
ScopeExit(F onExitScope);
| Name | Description |
|---|---|
| onExitScope | Callable executed unless dismissed. |
Invoke the stored callable if the guard was not dismissed.
<mrdocs/Support/ScopeExit.hpp>~ScopeExit();
Prevent the callable from running on destruction.
<mrdocs/Support/ScopeExit.hpp>void
dismiss();
RAII helper that restores a referenced value on scope exit.
<mrdocs/Support/ScopeExit.hpp>template<class T>
class ScopeExitRestore;
| Name | Description |
|---|---|
ScopeExitRestore [constructor] | Constructors |
~ScopeExitRestore [destructor] | Restore the previous value unless dismissed. |
dismiss | Prevent restoration on destruction. |
Constructors
<mrdocs/Support/ScopeExit.hpp>Restore ref to its previous value when the scope ends
explicit
ScopeExitRestore(T& ref);
» more...
Temporarily set ref to next and restore it when the scope ends
template<std::convertible_to<T> T2>
explicit
ScopeExitRestore(
T& ref,
T2 next);
» more...
| Name | Description |
|---|---|
| ref | The variable to modify and eventually restore. |
| next | The temporary value assigned to ref for the scope. |
Restore ref to its previous value when the scope ends
<mrdocs/Support/ScopeExit.hpp>explicit
ScopeExitRestore(T& ref);
Store the current value of ref and restore it when this object goes out of scope, unless dismiss() is called.
| Name | Description |
|---|---|
| ref | The object to copy construct from |
Temporarily set ref to next and restore it when the scope ends
<mrdocs/Support/ScopeExit.hpp>template<std::convertible_to<T> T2>
explicit
ScopeExitRestore(
T& ref,
T2 next);
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.
| Name | Description |
|---|---|
| ref | The variable to modify and eventually restore. |
| next | The temporary value assigned to ref for the scope. |
Restore the previous value unless dismissed.
<mrdocs/Support/ScopeExit.hpp>~ScopeExitRestore();
Prevent restoration on destruction.
<mrdocs/Support/ScopeExit.hpp>void
dismiss();
Stores source information for a declaration.
<mrdocs/Metadata/Symbol/Source.hpp>struct SourceInfo;
| Name | Description |
|---|---|
SourceInfo [constructor] | Construct with no locations. |
~SourceInfo [destructor] [virtual] | Polymorphic base needs a virtual destructor. |
operator<=> | Compare sources by definition and declaration locations. |
| Name | Description |
|---|---|
DefLoc | Location where the entity was defined |
Loc | Locations where the entity was declared. |
| Name | Description |
|---|---|
getPrimaryLocation | Choose the best location to display for a symbol. |
merge | Merge, transferring ownership from the right-hand side. |
merge | Merge the location sets, preferring existing def/primary. |
Construct with no locations.
<mrdocs/Metadata/Symbol/Source.hpp>constexpr
SourceInfo() = default;
Polymorphic base needs a virtual destructor.
<mrdocs/Metadata/Symbol/Source.hpp>constexpr
virtual
~SourceInfo() = default;
Compare sources by definition and declaration locations.
<mrdocs/Metadata/Symbol/Source.hpp>constexpr
auto
operator<=>(SourceInfo const& rhs) const = default;
| Name | Description |
|---|---|
| rhs | The right operand |
Location where the entity was defined
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.
<mrdocs/Metadata/Symbol/Source.hpp>std::vector<Location> Loc;
This does not include the definition.
A source location with filename prettification.
<mrdocs/Support/Error.hpp>class SourceLocation;
| Name | Description |
|---|---|
SourceLocation [constructor] | Build a location wrapper from a source_location. |
column | Column number (1-based) within the file. |
file_name | File name associated with the location. |
function_name | Function name captured at the location. |
line | Line number (1-based) within the file. |
Build a location wrapper from a source_location.
<mrdocs/Support/Error.hpp>SourceLocation(std::source_location const& loc) noexcept;
| Name | Description |
|---|---|
| loc | The object to copy construct from |
Column number (1-based) within the file.
<mrdocs/Support/Error.hpp>uint_least32_t
column() const noexcept;
File name associated with the location.
<mrdocs/Support/Error.hpp>std::string_view
file_name() const noexcept;
Function name captured at the location.
<mrdocs/Support/Error.hpp>std::string_view
function_name() const noexcept;
Line number (1-based) within the file.
<mrdocs/Support/Error.hpp>uint_least32_t
line() const noexcept;
Represents a (possibly qualified) symbol name with template arguments.
<mrdocs/Metadata/Name/SpecializationName.hpp>struct SpecializationName final
: Name
| Name | Description |
|---|---|
Name | Represents a name for a named Type |
| Name | Description |
|---|---|
SpecializationName [constructor] | Construct an empty specialization name. |
asName | asName overloads |
operator== | Equality compares all fields. |
operator<=> | Three-way comparison operators |
| 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. |
| Name | Description |
|---|---|
toString | Convert the name to a human-readable string. |
Construct an empty specialization name.
<mrdocs/Metadata/Name/SpecializationName.hpp>constexpr
SpecializationName() noexcept;
Three-way comparison operators
<mrdocs/Metadata/Name/NameBase.hpp>Compare specialization names by base name and template arguments.
auto
operator<=>(SpecializationName const& other) const;
» more...
Order names by kind, identifier, id, and prefix.
std::strong_ordering
operator<=>(Name const& other) const;
» more...
Compare specialization names by base name and template arguments.
<mrdocs/Metadata/Name/SpecializationName.hpp>auto
operator<=>(SpecializationName const& other) const;
| Name | Description |
|---|---|
| other | The right operand |
Order names by kind, identifier, id, and prefix.
<mrdocs/Metadata/Name/NameBase.hpp>std::strong_ordering
operator<=>(Name const& other) const;
| Name | Description |
|---|---|
| other | The right operand |
The template arguments.
<mrdocs/Metadata/Name/SpecializationName.hpp>std::vector<Polymorphic<TArg>> TemplateArgs;
The SymbolID of the named symbol, if it exists.
<mrdocs/Metadata/Name/SpecializationName.hpp>SymbolID specializationID = = SymbolID::invalid;
Range adaptor that constructs a SplitLinesView.
<mrdocs/Support/SplitLines.hpp>struct SplitLinesAdaptor;
| Name | Description |
|---|---|
operator() | Function call operators |
| Name | Description |
|---|---|
operator| |
Pipe a contiguous character range into the adaptor. |
Function call operators
<mrdocs/Support/SplitLines.hpp>Split a string view into lines.
constexpr
auto
operator()(std::string_view sv) const;
» more...
Split any contiguous character range into lines.
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;
» more...
sv.| Name | Description |
|---|---|
| sv | Source string. |
| r | Range of characters. |
Split a string view into lines.
<mrdocs/Support/SplitLines.hpp>constexpr
auto
operator()(std::string_view sv) const;
sv.
| Name | Description |
|---|---|
| sv | Source string. |
Split any contiguous character range into lines.
<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;
| Name | Description |
|---|---|
| r | Range of characters. |
A lazy input range of std::string_view lines split on all known line breaks.
<mrdocs/Support/SplitLines.hpp>struct SplitLinesView
: std::ranges::view_interface<SplitLinesView>
| Name | Description |
|---|---|
std::ranges::view_interface<SplitLinesView> |
| Name | Description |
|---|---|
Iterator | Iterator over lines produced by SplitLinesView. |
| Name | Description |
|---|---|
SplitLinesView [constructor] | Constructors |
back | |
begin | Return an iterator to the first line. |
data | |
empty | |
end | Return the end sentinel for the view. |
front | |
operator[] | Subscript operators |
size | |
operator bool | Conversion operators |
| Name | Description |
|---|---|
sv_ | Underlying string to split. |
Iterator over lines produced by SplitLinesView.
<mrdocs/Support/SplitLines.hpp>struct Iterator;
| Name | Description |
|---|---|
difference_type | Signed distance type for the iterator. |
value_type | Line view type exposed by the iterator. |
| Name | Description |
|---|---|
Iterator [constructor] | Constructors |
findBreak | Compute the next line break position. |
operator* | Return the current line segment. |
operator++ | Increment operators |
| Name | Description |
|---|---|
atEnd | Flag indicating the end iterator. |
cur | Start of the current line. |
nextBreak | Index of the next break delimiter or npos. |
sv | Reference to the source string. |
| Name | Description |
|---|---|
operator== |
Equality operator |
Signed distance type for the iterator.
<mrdocs/Support/SplitLines.hpp>using difference_type = std::ptrdiff_t;
Line view type exposed by the iterator.
<mrdocs/Support/SplitLines.hpp>using value_type = std::string_view;
Constructors
<mrdocs/Support/SplitLines.hpp>Construct an end iterator.
constexpr
Iterator() = default;
» more...
Construct a begin or end iterator.
constexpr
explicit
Iterator(
std::string_view s,
bool begin);
» more...
| Name | Description |
|---|---|
| s | Source string. |
| begin | If true, position at the first line; otherwise create end iterator. |
Construct an end iterator.
<mrdocs/Support/SplitLines.hpp>constexpr
Iterator() = default;
Construct a begin or end iterator.
<mrdocs/Support/SplitLines.hpp>constexpr
explicit
Iterator(
std::string_view s,
bool begin);
| Name | Description |
|---|---|
| s | Source string. |
| begin | If true, position at the first line; otherwise create end iterator. |
Compute the next line break position.
<mrdocs/Support/SplitLines.hpp>constexpr
std::size_t
findBreak(std::size_t from) const noexcept;
| Name | Description |
|---|---|
| from | Index to start searching. |
Return the current line segment.
<mrdocs/Support/SplitLines.hpp>constexpr
value_type
operator*() const noexcept;
Increment operators
<mrdocs/Support/SplitLines.hpp>Advance to the next line.
constexpr
Iterator&
operator++() noexcept;
» more...
Advance to the next line (post-increment).
constexpr
void
operator++(int unused);
» more...
| Name | Description |
|---|---|
| unused | Dummy parameter for postfix form. |
Advance to the next line.
Advance to the next line (post-increment).
<mrdocs/Support/SplitLines.hpp>constexpr
void
operator++(int unused);
| Name | Description |
|---|---|
| unused | Dummy parameter for postfix form. |
Flag indicating the end iterator.
<mrdocs/Support/SplitLines.hpp>bool atEnd = false;
Start of the current line.
<mrdocs/Support/SplitLines.hpp>std::size_t cur = 0;
Index of the next break delimiter or npos.
<mrdocs/Support/SplitLines.hpp>std::size_t nextBreak = 0;
Reference to the source string.
<mrdocs/Support/SplitLines.hpp>std::string_view sv = {};
Constructors
<mrdocs/Support/SplitLines.hpp>Construct an empty view.
constexpr
SplitLinesView() = default;
» more...
Construct a view over sv.
constexpr
explicit
SplitLinesView(std::string_view sv);
» more...
| Name | Description |
|---|---|
| sv | String to split into lines. |
Construct an empty view.
<mrdocs/Support/SplitLines.hpp>constexpr
SplitLinesView() = default;
Construct a view over sv.
<mrdocs/Support/SplitLines.hpp>constexpr
explicit
SplitLinesView(std::string_view sv);
| Name | Description |
|---|---|
| sv | String to split into lines. |
<__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>;
» more...
template<class _D2 = SplitLinesView>
[[__exclude_from_explicit_instantiation__, __abi_tag__]]
constexpr
decltype(auto)
back() const
requires bidirectional_range<const _D2> && common_range<const _D2>;
» more...
<__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>;
<__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>;
Return an iterator to the first line.
<__ranges/view_interface.h>template<class _D2 = SplitLinesView>
[[__exclude_from_explicit_instantiation__, __abi_tag__]]
constexpr
auto
data()
requires contiguous_iterator<iterator_t<_D2>>;
» more...
template<class _D2 = SplitLinesView>
[[__exclude_from_explicit_instantiation__, __abi_tag__]]
constexpr
auto
data() const
requires range<const _D2> && contiguous_iterator<iterator_t<const _D2>>;
» more...
<__ranges/view_interface.h>template<class _D2 = SplitLinesView>
[[__exclude_from_explicit_instantiation__, __abi_tag__]]
constexpr
auto
data()
requires contiguous_iterator<iterator_t<_D2>>;
<__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>>;
<__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>;
» more...
template<class _D2 = SplitLinesView>
[[nodiscard, __exclude_from_explicit_instantiation__, __abi_tag__]]
constexpr
bool
empty() const
requires sized_range<const _D2> || forward_range<const _D2>;
» more...
<__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>;
<__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>;
Return the end sentinel for the view.
<mrdocs/Support/SplitLines.hpp>constexpr
std::default_sentinel_t
end() const noexcept;
<__ranges/view_interface.h>template<class _D2 = SplitLinesView>
[[__exclude_from_explicit_instantiation__, __abi_tag__]]
constexpr
decltype(auto)
front()
requires forward_range<_D2>;
» more...
template<class _D2 = SplitLinesView>
[[__exclude_from_explicit_instantiation__, __abi_tag__]]
constexpr
decltype(auto)
front() const
requires forward_range<const _D2>;
» more...
<__ranges/view_interface.h>template<class _D2 = SplitLinesView>
[[__exclude_from_explicit_instantiation__, __abi_tag__]]
constexpr
decltype(auto)
front()
requires forward_range<_D2>;
<__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
<__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);
» more...
template<random_access_range _RARange = SplitLinesView const>
[[__exclude_from_explicit_instantiation__, __abi_tag__]]
constexpr
decltype(auto)
operator[](range_difference_t<_RARange> __index) const;
» more...
<__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);
<__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;
<__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>>;
» more...
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>>;
» more...
<__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>>;
<__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
<__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); };
» more...
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); };
» more...
Conversion to bool
<__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); };
bool
Conversion to bool
<__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); };
bool
Underlying string to split.
<mrdocs/Support/SplitLines.hpp>std::string_view sv_;
Transparent hash functor for string-like keys.
<mrdocs/ADT/UnorderedStringMap.hpp>struct StringHash;
| Name | Description |
|---|---|
hash_type | Underlying hash implementation. |
is_transparent | Marker for heterogeneous lookup. |
| Name | Description |
|---|---|
operator() | Function call operators |
Underlying hash implementation.
<mrdocs/ADT/UnorderedStringMap.hpp>using hash_type = std::hash<std::string_view>;
Marker for heterogeneous lookup.
<mrdocs/ADT/UnorderedStringMap.hpp>using is_transparent = void;
Function call operators
<mrdocs/ADT/UnorderedStringMap.hpp>Hash string_view input.
std::size_t
operator()(std::string_view str) const;
» more...
Hash std::string input.
std::size_t
operator()(std::string const& str) const;
» more...
Hash C-string input.
std::size_t
operator()(char const* str) const;
» more...
Hash string_view input.
<mrdocs/ADT/UnorderedStringMap.hpp>std::size_t
operator()(std::string_view str) const;
| Name | Description |
|---|---|
| str | The right operand |
Hash std::string input.
<mrdocs/ADT/UnorderedStringMap.hpp>std::size_t
operator()(std::string const& str) const;
| Name | Description |
|---|---|
| str | The right operand |
Hash C-string input.
<mrdocs/ADT/UnorderedStringMap.hpp>std::size_t
operator()(char const* str) const;
| Name | Description |
|---|---|
| str | The right operand |
Base class with common properties of all symbols
<mrdocs/Metadata/Symbol/SymbolBase.hpp>struct Symbol;
| Name | Description |
|---|---|
~Symbol [destructor] [virtual] | Polymorphic base needs a virtual destructor. |
asInfo | asInfo overloads |
operator<=> | Compare symbols by structural fields. |
| Name | Description |
|---|---|
Access | Declaration access. |
Extraction | Determine why a symbol is extracted. |
IsCopyFromInherited | Whether this a copy of an inherited method, as produced when inherit-base-members is not never. |
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. |
| Name | Description |
|---|---|
Symbol [constructor] | Constructors |
| Name | Description |
|---|---|
canMerge | Check whether two symbols may be merged. |
getPrimaryLocation | Determine a location to use when none is explicitly chosen. |
merge | Merges two Symbol objects. |
| Name | Description |
|---|---|
SymbolCommonBase
| Base class for providing variant discriminator functions. |
Polymorphic base needs a virtual destructor.
<mrdocs/Metadata/Symbol/SymbolBase.hpp>constexpr
virtual
~Symbol() = default;
asInfo overloads
<mrdocs/Metadata/Symbol/SymbolBase.hpp>View this instance as a const Symbol reference.
constexpr
Symbol const&
asInfo() const noexcept;
» more...
View this instance as a mutable Symbol reference.
constexpr
Symbol&
asInfo() noexcept;
» more...
View this instance as a const Symbol reference.
<mrdocs/Metadata/Symbol/SymbolBase.hpp>constexpr
Symbol const&
asInfo() const noexcept;
View this instance as a mutable Symbol reference.
Compare symbols by structural fields.
<mrdocs/Metadata/Symbol/SymbolBase.hpp>auto
operator<=>(Symbol const& rhs) const = default;
| Name | Description |
|---|---|
| rhs | The right operand |
Declaration access.
Class members use:
`AccessKind::Public`,
`AccessKind::Protected`, and
`AccessKind::Private`.
Namespace members use AccessKind::None.
Determine why a symbol is extracted.
<mrdocs/Metadata/Symbol/SymbolBase.hpp>ExtractionMode Extraction = ExtractionMode::Dependency;
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.
Whether this a copy of an inherited method, as produced when inherit-base-members is not never.
<mrdocs/Metadata/Symbol/SymbolBase.hpp>bool IsCopyFromInherited = false;
Kind of declaration.
The source location information.
The unqualified name.
<mrdocs/Metadata/Symbol/SymbolBase.hpp>std::string Name;
The parent symbol, if any.
This is the parent namespace or record where the symbol is defined.
The extracted documentation for this declaration.
The unique identifier for this symbol.
Constructors
<mrdocs/Metadata/Symbol/SymbolBase.hpp>Default constructor for derived types.
constexpr
Symbol() = default;
» more...
Copy constructor.
constexpr
Symbol(Symbol const& Other) = default;
» more...
Move constructor.
constexpr
Symbol(Symbol&& Other) = default;
» more...
Construct a Symbol.
explicit
Symbol(
SymbolKind const kind,
SymbolID const& ID) noexcept;
» more...
| Name | Description |
|---|---|
| kind | The kind of symbol |
| ID | The unique identifier for this symbol |
Default constructor for derived types.
<mrdocs/Metadata/Symbol/SymbolBase.hpp>constexpr
Symbol() = default;
Copy constructor.
<mrdocs/Metadata/Symbol/SymbolBase.hpp>constexpr
Symbol(Symbol const& Other) = default;
| Name | Description |
|---|---|
| Other | The object to copy construct from |
Move constructor.
<mrdocs/Metadata/Symbol/SymbolBase.hpp>constexpr
Symbol(Symbol&& Other) = default;
| Name | Description |
|---|---|
| Other | The object to move construct from |
Construct a Symbol.
<mrdocs/Metadata/Symbol/SymbolBase.hpp>explicit
Symbol(
SymbolKind const kind,
SymbolID const& ID) noexcept;
| Name | Description |
|---|---|
| kind | The kind of symbol |
| ID | The unique identifier for this symbol |
Base class for providing variant discriminator functions.
<mrdocs/Metadata/Symbol/SymbolBase.hpp>template<SymbolKind K>
struct SymbolCommonBase
: Symbol
This offers functions that return a boolean at compile-time, indicating if the most-derived class is a certain type.
| Name | Description |
|---|---|
Symbol | Base class with common properties of all symbols |
| Name | Description |
|---|---|
asInfo | asInfo overloads |
operator<=> | Three-way comparison operators |
| Name | Description |
|---|---|
Access | Declaration access. |
Extraction | Determine why a symbol is extracted. |
IsCopyFromInherited | Whether this a copy of an inherited method, as produced when inherit-base-members is not never. |
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. |
| Name | Description |
|---|---|
kind_id | The variant discriminator constant of the most-derived class. |
| Name | Description |
|---|---|
SymbolCommonBase [constructor] | Constructors |
| Name | Description |
|---|---|
canMerge | Check whether two symbols may be merged. |
getPrimaryLocation | Determine a location to use when none is explicitly chosen. |
merge | Merges two Symbol objects. |
| Name | Description |
|---|---|
ConceptSymbol
| Info for concepts. |
EnumConstantSymbol
| Info for enum constants. |
EnumSymbol
| Metadata for an enumeration declaration. |
FunctionSymbol
| Metadata for a function or method. |
GuideSymbol
| Info for deduction guides. |
NamespaceAliasSymbol
| Info for namespace aliases. |
NamespaceSymbol
| Describes a namespace and its members. |
OverloadsSymbol
| Represents a set of function overloads. |
RecordSymbol
| Metadata for struct, class, or union. |
TypedefSymbol
| Info for typedef and using declarations. |
UsingSymbol
| Info for using declarations. |
VariableSymbol
| A variable. |
Three-way comparison operators
<mrdocs/Metadata/Symbol/SymbolBase.hpp>Compare symbols that share the same kind.
auto
operator<=>(SymbolCommonBase const& rhs) const = default;
» more...
Compare symbols by structural fields.
auto
operator<=>(Symbol const& rhs) const = default;
» more...
Compare symbols that share the same kind.
<mrdocs/Metadata/Symbol/SymbolBase.hpp>auto
operator<=>(SymbolCommonBase const& rhs) const = default;
| Name | Description |
|---|---|
| rhs | The right operand |
Compare symbols by structural fields.
<mrdocs/Metadata/Symbol/SymbolBase.hpp>auto
operator<=>(Symbol const& rhs) const = default;
| Name | Description |
|---|---|
| rhs | The right operand |
The variant discriminator constant of the most-derived class.
<mrdocs/Metadata/Symbol/SymbolBase.hpp>inline constexpr static
SymbolKind kind_id = K;
It only distinguishes from Symbol::kind in that it is a constant.
Constructors
<mrdocs/Metadata/Symbol/SymbolBase.hpp>Default constructor.
SymbolCommonBase() = default;
» more...
Construct bound to an ID.
constexpr
explicit
SymbolCommonBase(SymbolID const& ID);
» more...
Default constructor.
<mrdocs/Metadata/Symbol/SymbolBase.hpp>SymbolCommonBase() = default;
Construct bound to an ID.
<mrdocs/Metadata/Symbol/SymbolBase.hpp>constexpr
explicit
SymbolCommonBase(SymbolID const& ID);
| Name | Description |
|---|---|
| ID | The object to copy construct from |
A glob pattern matcher for C++ symbols
<mrdocs/Support/Glob.hpp>class SymbolGlobPattern;
A glob pattern matcher where "*" does not match "::". The pattern "**" can be used to match any number of "::".
| 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. |
| Name | Description |
|---|---|
create | Constructs a SymbolGlobPattern with the given pattern. |
Construct an empty SymbolGlobPattern.
<mrdocs/Support/Glob.hpp>Construct an empty SymbolGlobPattern.
constexpr
SymbolGlobPattern() = default;
» more...
Construct an empty SymbolGlobPattern.
explicit
SymbolGlobPattern(GlobPattern glob);
» more...
Construct an empty SymbolGlobPattern.
<mrdocs/Support/Glob.hpp>constexpr
SymbolGlobPattern() = default;
An empty SymbolGlobPattern will never match any string.
Construct an empty SymbolGlobPattern.
An empty SymbolGlobPattern will never match any string.
| Name | Description |
|---|---|
| glob | The object to construct from |
Checks if the glob pattern is a literal string.
<mrdocs/Support/Glob.hpp>bool
isLiteral() const;
This function determines if the glob pattern does not contain any special characters. In other words, it matches a single string.
Matches the given string against the glob pattern.
<mrdocs/Support/Glob.hpp>bool
match(std::string_view const str) const;
| Name | Description |
|---|---|
| str | The string to match against the pattern. |
Matches the start of a given string against the glob pattern.
<mrdocs/Support/Glob.hpp>bool
matchPatternPrefix(std::string_view prefix) const;
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.
| Name | Description |
|---|---|
| prefix | The string to match against the pattern. |
Returns the glob pattern.
<mrdocs/Support/Glob.hpp>std::string_view
pattern() const;
Constructs a SymbolGlobPattern with the given pattern.
<mrdocs/Support/Glob.hpp>Constructs a SymbolGlobPattern with the given pattern.
static
Expected<SymbolGlobPattern>
create(std::string_view const pattern);
» more...
Constructs a SymbolGlobPattern with the given pattern.
static
Expected<SymbolGlobPattern>
create(
std::string_view const pattern,
Optional<std::size_t> maxSubGlobs);
» more...
| Name | Description |
|---|---|
| pattern | The glob pattern to use for matching. |
| maxSubGlobs | The maximum number of subpatterns allowed. |
Constructs a SymbolGlobPattern with the given pattern.
<mrdocs/Support/Glob.hpp>static
Expected<SymbolGlobPattern>
create(std::string_view const pattern);
| Name | Description |
|---|---|
| pattern | The glob pattern to use for matching. |
Constructs a SymbolGlobPattern with the given pattern.
<mrdocs/Support/Glob.hpp>static
Expected<SymbolGlobPattern>
create(
std::string_view const pattern,
Optional<std::size_t> maxSubGlobs);
| Name | Description |
|---|---|
| pattern | The glob pattern to use for matching. |
| maxSubGlobs | The maximum number of subpatterns allowed. |
A unique identifier for a symbol.
<mrdocs/Metadata/Symbol/SymbolID.hpp>class SymbolID;
This is calculated as the SHA1 digest of the USR. A USRs is a string that provides an unambiguous reference to a symbol.
| Name | Description |
|---|---|
value_type | Underlying byte storage. |
| Name | Description |
|---|---|
SymbolID [constructor] | Constructors |
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. |
| Name | Description |
|---|---|
createFromString | Construct a SymbolID by hashing a string |
| Name | Description |
|---|---|
global | Sentinel ID representing the global namespace. |
invalid | Sentinel ID used to represent “no symbol.” |
| Name | Description |
|---|---|
getParents | Return a list of the parent symbols of the specified Symbol. |
toBase16Str | Convert a SymbolID to a string |
Underlying byte storage.
<mrdocs/Metadata/Symbol/SymbolID.hpp>using value_type = uint8_t;
Constructors
<mrdocs/Metadata/Symbol/SymbolID.hpp>Construct a zero-initialized identifier.
constexpr
SymbolID() = default;
» more...
Construct a SymbolID from a null-terminated string.
template<std::convertible_to<value_type> Char>
constexpr
SymbolID(Char const* src);
» more...
| Name | Description |
|---|---|
| src | The string to construct from. |
Construct a zero-initialized identifier.
<mrdocs/Metadata/Symbol/SymbolID.hpp>constexpr
SymbolID() = default;
Construct a SymbolID from a null-terminated string.
<mrdocs/Metadata/Symbol/SymbolID.hpp>template<std::convertible_to<value_type> Char>
constexpr
SymbolID(Char const* src);
This function constructs a SymbolID from a string. The string must be exactly 20 characters long.
| Name | Description |
|---|---|
| src | The string to construct from. |
Return an iterator to the first byte of the SymbolID.
<mrdocs/Metadata/Symbol/SymbolID.hpp>constexpr
auto
begin() const noexcept;
Return the raw data for this SymbolID.
<mrdocs/Metadata/Symbol/SymbolID.hpp>constexpr
auto
data() const noexcept;
Return an iterator to one past the last byte of the SymbolID.
<mrdocs/Metadata/Symbol/SymbolID.hpp>constexpr
auto
end() const noexcept;
Return the size of the SymbolID.
<mrdocs/Metadata/Symbol/SymbolID.hpp>constexpr
std::size_t
size() const noexcept;
The size of a SymbolID is always 20.
Return a string view of the SymbolID.
<mrdocs/Metadata/Symbol/SymbolID.hpp>operator std::string_view() const noexcept;
Return true if this is a valid SymbolID.
<mrdocs/Metadata/Symbol/SymbolID.hpp>explicit
operator bool() const noexcept;
Compare two SymbolIDs for equality.
<mrdocs/Metadata/Symbol/SymbolID.hpp>constexpr
bool
operator==(SymbolID const& other) const noexcept = default;
true if the objects are equal, false otherwise
| Name | Description |
|---|---|
| other | The right operand |
Compare two SymbolIDs with strong ordering.
<mrdocs/Metadata/Symbol/SymbolID.hpp>auto
operator<=>(SymbolID const& other) const noexcept;
| Name | Description |
|---|---|
| other | The right operand |
Construct a SymbolID by hashing a string
<mrdocs/Metadata/Symbol/SymbolID.hpp>static
SymbolID
createFromString(std::string_view input);
| Name | Description |
|---|---|
| input | The string to hash. |
Sentinel ID representing the global namespace.
<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";
Symbol ID of the global namespace.
Sentinel ID used to represent “no symbol.”
<mrdocs/Metadata/Symbol/SymbolID.hpp>inline constexpr static
SymbolID invalid = SymbolID();
Base class for any template argument.
<mrdocs/Metadata/TArg/TArgBase.hpp>struct TArg;
| Name | Description |
|---|---|
~TArg [destructor] [virtual] | Polymorphic base needs a virtual destructor. |
asTArg | asTArg overloads |
operator<=> | Compare arguments by stored data. |
| Name | Description |
|---|---|
IsPackExpansion | Whether this template argument is a parameter expansion. |
Kind | The kind of template argument this is. |
| Name | Description |
|---|---|
TArg [constructor] | Constructors |
| Name | Description |
|---|---|
toString | Convert a template argument to a human-readable string. |
| Name | Description |
|---|---|
TArgCommonBase
| CRTP base that fixes the argument kind. |
Polymorphic base needs a virtual destructor.
<mrdocs/Metadata/TArg/TArgBase.hpp>constexpr
virtual
~TArg() = default;
asTArg overloads
<mrdocs/Metadata/TArg/TArgBase.hpp>View this object as a TArg reference.
constexpr
TArg const&
asTArg() const noexcept;
» more...
View this object as a mutable TArg reference.
constexpr
TArg&
asTArg() noexcept;
» more...
View this object as a TArg reference.
<mrdocs/Metadata/TArg/TArgBase.hpp>constexpr
TArg const&
asTArg() const noexcept;
View this object as a mutable TArg reference.
Compare arguments by stored data.
<mrdocs/Metadata/TArg/TArgBase.hpp>constexpr
auto
operator<=>(TArg const& rhs) const = default;
| Name | Description |
|---|---|
| rhs | The right operand |
Whether this template argument is a parameter expansion.
<mrdocs/Metadata/TArg/TArgBase.hpp>bool IsPackExpansion = false;
The kind of template argument this is.
Constructors
<mrdocs/Metadata/TArg/TArgBase.hpp>Defaulted base constructor.
constexpr
TArg() noexcept = default;
» more...
Construct with a specific argument kind.
constexpr
TArg(TArgKind kind) noexcept;
» more...
Defaulted base constructor.
<mrdocs/Metadata/TArg/TArgBase.hpp>constexpr
TArg() noexcept = default;
Construct with a specific argument kind.
| Name | Description |
|---|---|
| kind | The object to construct from |
CRTP base that fixes the argument kind.
<mrdocs/Metadata/TArg/TArgBase.hpp>template<TArgKind K>
struct TArgCommonBase
: TArg
| Name | Description |
|---|---|
TArg | Base class for any template argument. |
| Name | Description |
|---|---|
asTArg | asTArg overloads |
operator<=> | Compare arguments by stored data. |
| Name | Description |
|---|---|
isConstant | Test whether the kind is a non-type constant argument. |
isTemplate | Test whether the kind is a template argument. |
isType | Test whether the kind is a type argument. |
| Name | Description |
|---|---|
IsPackExpansion | Whether this template argument is a parameter expansion. |
Kind | The kind of template argument this is. |
| Name | Description |
|---|---|
kind_id | Static discriminator for the concrete argument. |
| Name | Description |
|---|---|
TArgCommonBase [constructor] | Construct with the fixed kind. |
| Name | Description |
|---|---|
toString | Convert a template argument to a human-readable string. |
| Name | Description |
|---|---|
ConstantTArg
| Non-type template argument. |
TemplateTArg
| Template template argument. |
TypeTArg
| Type template argument. |
Test whether the kind is a non-type constant argument.
<mrdocs/Metadata/TArg/TArgBase.hpp>constexpr
static
bool
isConstant() noexcept;
true if kind_id equals TypeKind::Constant.
Test whether the kind is a template argument.
<mrdocs/Metadata/TArg/TArgBase.hpp>constexpr
static
bool
isTemplate() noexcept;
true if kind_id equals TypeKind::Template.
Test whether the kind is a type argument.
<mrdocs/Metadata/TArg/TArgBase.hpp>constexpr
static
bool
isType() noexcept;
true if kind_id equals TypeKind::Type.
Static discriminator for the concrete argument.
<mrdocs/Metadata/TArg/TArgBase.hpp>inline constexpr static
TArgKind kind_id = K;
Construct with the fixed kind.
<mrdocs/Metadata/TArg/TArgBase.hpp>constexpr
TArgCommonBase() noexcept;
Base class for a template parameter declaration.
<mrdocs/Metadata/TParam/TParamBase.hpp>struct TParam;
| Name | Description |
|---|---|
~TParam [destructor] [virtual] | Polymorphic base needs a virtual destructor. |
asTParam | asTParam overloads |
operator<=> | Compare parameters by kind, name, pack flag, and default. |
| 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 |
| Name | Description |
|---|---|
TParam [constructor] | Constructors |
| Name | Description |
|---|---|
TParamCommonBase
| CRTP base that fixes the parameter kind. |
Polymorphic base needs a virtual destructor.
<mrdocs/Metadata/TParam/TParamBase.hpp>constexpr
virtual
~TParam() = default;
asTParam overloads
<mrdocs/Metadata/TParam/TParamBase.hpp>View this object as a TParam reference.
constexpr
TParam const&
asTParam() const noexcept;
» more...
View this object as a mutable TParam reference.
constexpr
TParam&
asTParam() noexcept;
» more...
View this object as a TParam reference.
<mrdocs/Metadata/TParam/TParamBase.hpp>constexpr
TParam const&
asTParam() const noexcept;
View this object as a mutable TParam reference.
Compare parameters by kind, name, pack flag, and default.
<mrdocs/Metadata/TParam/TParamBase.hpp>std::strong_ordering
operator<=>(TParam const& rhs) const;
| Name | Description |
|---|---|
| rhs | The right operand |
The default template argument, if any
<mrdocs/Metadata/TParam/TParamBase.hpp>Optional<Polymorphic<TArg>> Default = std::nullopt;
Whether this template parameter is a parameter pack
<mrdocs/Metadata/TParam/TParamBase.hpp>bool IsParameterPack = false;
The kind of template parameter this is
The template parameters name, if any
<mrdocs/Metadata/TParam/TParamBase.hpp>std::string Name;
Constructors
<mrdocs/Metadata/TParam/TParamBase.hpp>Defaulted base constructor.
constexpr
TParam() noexcept = default;
» more...
Construct with a fixed parameter kind.
constexpr
TParam(TParamKind kind) noexcept;
» more...
Defaulted base constructor.
<mrdocs/Metadata/TParam/TParamBase.hpp>constexpr
TParam() noexcept = default;
Construct with a fixed parameter kind.
<mrdocs/Metadata/TParam/TParamBase.hpp>constexpr
TParam(TParamKind kind) noexcept;
| Name | Description |
|---|---|
| kind | The object to construct from |
CRTP base that fixes the parameter kind.
<mrdocs/Metadata/TParam/TParamBase.hpp>template<TParamKind K>
struct TParamCommonBase
: TParam
| Name | Description |
|---|---|
TParam | Base class for a template parameter declaration. |
| Name | Description |
|---|---|
asTParam | asTParam overloads |
operator<=> | Three-way comparison operators |
| Name | Description |
|---|---|
isConstant | True if the parameter is a non-type parameter. |
isTemplate | True if the parameter is a template template parameter. |
isType | True if the parameter is a type parameter. |
| 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 |
| Name | Description |
|---|---|
kind_id | Static discriminator for the concrete parameter. |
| Name | Description |
|---|---|
TParamCommonBase [constructor] | Construct with the fixed kind. |
| Name | Description |
|---|---|
ConstantTParam
| A constant template parameter |
TemplateTParam
| Template template parameter. |
TypeTParam
| Type template parameter. |
Three-way comparison operators
<mrdocs/Metadata/TParam/TParamBase.hpp>Compare parameters by their fields.
auto
operator<=>(TParamCommonBase const& rhs) const = default;
» more...
Compare parameters by kind, name, pack flag, and default.
std::strong_ordering
operator<=>(TParam const& rhs) const;
» more...
Compare parameters by their fields.
<mrdocs/Metadata/TParam/TParamBase.hpp>auto
operator<=>(TParamCommonBase const& rhs) const = default;
| Name | Description |
|---|---|
| rhs | The right operand |
Compare parameters by kind, name, pack flag, and default.
<mrdocs/Metadata/TParam/TParamBase.hpp>std::strong_ordering
operator<=>(TParam const& rhs) const;
| Name | Description |
|---|---|
| rhs | The right operand |
True if the parameter is a non-type parameter.
<mrdocs/Metadata/TParam/TParamBase.hpp>constexpr
static
bool
isConstant() noexcept;
true when kind_id equals TParamKind::Constant.
True if the parameter is a template template parameter.
<mrdocs/Metadata/TParam/TParamBase.hpp>constexpr
static
bool
isTemplate() noexcept;
true when kind_id equals TParamKind::Template.
True if the parameter is a type parameter.
<mrdocs/Metadata/TParam/TParamBase.hpp>constexpr
static
bool
isType() noexcept;
true when kind_id equals TParamKind::Type.
Static discriminator for the concrete parameter.
<mrdocs/Metadata/TParam/TParamBase.hpp>inline constexpr static
TParamKind kind_id = K;
Construct with the fixed kind.
<mrdocs/Metadata/TParam/TParamBase.hpp>constexpr
TParamCommonBase() noexcept;
A subset of possible work in a thread pool.
<mrdocs/Support/ThreadPool.hpp>class TaskGroup;
| Name | Description |
|---|---|
TaskGroup [constructor] | Constructor. |
~TaskGroup [destructor] | Destructor. |
async | Submit work to be executed. |
wait | Block until all work has completed. |
Constructor.
| Name | Description |
|---|---|
| threadPool | The object to copy construct from |
Destructor.
<mrdocs/Support/ThreadPool.hpp>~TaskGroup();
Submit work to be executed.
<mrdocs/Support/ThreadPool.hpp>template<class F>
void
async(F&& f);
The signature of the submitted function object should be void(void).
| Name | Description |
|---|---|
| f | The function object to execute. |
Block until all work has completed.
<mrdocs/Support/ThreadPool.hpp>[[nodiscard]]
std::vector<Error>
wait();
Information about templates and specializations thereof.
<mrdocs/Metadata/Template.hpp>struct TemplateInfo final
| Name | Description |
|---|---|
specializationKind | Deduce which specialization category this info represents. |
operator<=> | Compare templates by parameters, arguments, and primary. |
| Name | Description |
|---|---|
Args | Bound arguments for specializations. |
Params | Template parameter list. |
Primary | Primary template ID for partial and explicit specializations. |
Requires | The requires-clause for the template parameter list, if any. |
| Name | Description |
|---|---|
merge | Merge partial template info, filling missing pieces. |
Deduce which specialization category this info represents.
<mrdocs/Metadata/Template.hpp>TemplateSpecKind
specializationKind() const noexcept;
Compare templates by parameters, arguments, and primary.
<mrdocs/Metadata/Template.hpp>std::strong_ordering
operator<=>(TemplateInfo const& other) const;
| Name | Description |
|---|---|
| other | The right operand |
Bound arguments for specializations.
<mrdocs/Metadata/Template.hpp>std::vector<Polymorphic<TArg>> Args;
Template parameter list.
<mrdocs/Metadata/Template.hpp>std::vector<Polymorphic<TParam>> Params;
Primary template ID for partial and explicit specializations.
The requires-clause for the template parameter list, if any.
Template template argument.
<mrdocs/Metadata/TArg/TemplateTArg.hpp>struct TemplateTArg final
: TArgCommonBase<TArgKind::Template>
| Name | Description |
|---|---|
TArgCommonBase<TArgKind::Template> | CRTP base that fixes the argument kind. |
| Name | Description |
|---|---|
operator<=> | Compare template arguments by referenced template. |
| Name |
|---|
isConstant |
isTemplate |
isType |
| Name | Description |
|---|---|
Name | Name of the referenced template. |
Template | SymbolID of the referenced template. |
| Name |
|---|
kind_id |
| Name | Description |
|---|---|
toString | Convert a template argument to a human-readable string. |
Compare template arguments by referenced template.
<mrdocs/Metadata/TArg/TemplateTArg.hpp>auto
operator<=>(TemplateTArg const& rhs) const = default;
| Name | Description |
|---|---|
| rhs | The right operand |
<mrdocs/Metadata/TArg/TArgBase.hpp>constexpr
static
bool
isConstant() noexcept;
<mrdocs/Metadata/TArg/TArgBase.hpp>constexpr
static
bool
isTemplate() noexcept;
<mrdocs/Metadata/TArg/TArgBase.hpp>constexpr
static
bool
isType() noexcept;
Name of the referenced template.
<mrdocs/Metadata/TArg/TemplateTArg.hpp>std::string Name;
SymbolID of the referenced template.
Template template parameter.
<mrdocs/Metadata/TParam/TemplateTParam.hpp>struct TemplateTParam final
: TParamCommonBase<TParamKind::Template>
| Name | Description |
|---|---|
TParamCommonBase<TParamKind::Template> | CRTP base that fixes the parameter kind. |
| Name | Description |
|---|---|
operator<=> | Compare template parameters including inner parameter lists. |
| Name |
|---|
isConstant |
isTemplate |
isType |
| Name | Description |
|---|---|
Params | Template parameters for the template-template parameter |
| Name |
|---|
kind_id |
Compare template parameters including inner parameter lists.
<mrdocs/Metadata/TParam/TemplateTParam.hpp>Compare template parameters including inner parameter lists.
std::strong_ordering
operator<=>(TemplateTParam const& other) const;
» more...
Three-way comparison operator
auto
operator<=>(TParamCommonBase<mrdocs::TParamKind::Template> const& rhs) const = default;
» more...
Compare template parameters including inner parameter lists.
<mrdocs/Metadata/TParam/TemplateTParam.hpp>std::strong_ordering
operator<=>(TemplateTParam const& other) const;
| Name | Description |
|---|---|
| other | The right operand |
Three-way comparison operator
<mrdocs/Metadata/TParam/TParamBase.hpp>auto
operator<=>(TParamCommonBase<mrdocs::TParamKind::Template> const& rhs) const = default;
| Name | Description |
|---|---|
| rhs | The right operand |
<mrdocs/Metadata/TParam/TParamBase.hpp>constexpr
static
bool
isConstant() noexcept;
<mrdocs/Metadata/TParam/TParamBase.hpp>constexpr
static
bool
isTemplate() noexcept;
<mrdocs/Metadata/TParam/TParamBase.hpp>constexpr
static
bool
isType() noexcept;
Template parameters for the template-template parameter
<mrdocs/Metadata/TParam/TemplateTParam.hpp>std::vector<Polymorphic<TParam>> Params;
A pool of threads for executing work concurrently.
<mrdocs/Support/ThreadPool.hpp>class ThreadPool;
| Name | Description |
|---|---|
arg_ty | Helper that preserves lvalue-ref and constness for references. |
arg_ty<T&> | Alias returning the preserved argument type. |
arg_t | Helper that forwards argument qualifiers. |
| 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. |
| Name | Description |
|---|---|
TaskGroup |
A subset of possible work in a thread pool. |
Helper that forwards argument qualifiers.
<mrdocs/Support/ThreadPool.hpp>template<class T>
using arg_t = arg_ty<T>::type;
Helper that preserves lvalue-ref and constness for references.
<mrdocs/Support/ThreadPool.hpp>template<class T>
struct arg_ty;
| Name | Description |
|---|---|
type | Resulting adjusted type. |
Resulting adjusted type.
<mrdocs/Support/ThreadPool.hpp>using type = T;
Alias returning the preserved argument type.
| Name | Description |
|---|---|
type | Resulting adjusted type. |
| Name | Description |
|---|---|
| T | Original argument type. |
Resulting adjusted type.
<mrdocs/Support/ThreadPool.hpp>using type = std::conditional_t<std::is_const_v<T>, T, T&>;
Constructor.
<mrdocs/Support/ThreadPool.hpp>Constructor.
explicit
ThreadPool();
» more...
Constructor.
explicit
ThreadPool(unsigned int concurrency);
» more...
Constructor.
<mrdocs/Support/ThreadPool.hpp>explicit
ThreadPool();
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.
<mrdocs/Support/ThreadPool.hpp>explicit
ThreadPool(unsigned int concurrency);
| Name | Description |
|---|---|
| concurrency | The value to construct from |
Destructor.
<mrdocs/Support/ThreadPool.hpp>~ThreadPool();
Submit work to be executed.
<mrdocs/Support/ThreadPool.hpp>template<class F>
void
async(F&& f);
The signature of the submitted function object should be void(void).
| Name | Description |
|---|---|
| f | The function object to execute. |
Invoke a function object for each element of a range.
<mrdocs/Support/ThreadPool.hpp>template<
class Range,
class F>
[[nodiscard]]
std::vector<Error>
forEach(
Range&& range,
F const& f);
| Name | Description |
|---|---|
| range | The range of elements to process. |
| f | The function object to invoke. |
Return the number of threads in the pool.
<mrdocs/Support/ThreadPool.hpp>unsigned int
getThreadCount() const noexcept;
Block until all work has completed.
<mrdocs/Support/ThreadPool.hpp>void
wait();
A possibly qualified type.
<mrdocs/Metadata/Type/TypeBase.hpp>struct Type;
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.
| Name | Description |
|---|---|
asType | asType overloads |
namedSymbol | Return the symbol named by this type. |
operator<=> | Three-way comparison by kind, qualifiers, and concrete data. |
| 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 |
| Name | Description |
|---|---|
Type [constructor] | Construct with a concrete type kind. |
~Type [destructor] [virtual] | Virtual destructor for polymorphic base. |
| Name | Description |
|---|---|
innerType | Return the inner type. |
innerType | Return the inner type. |
innerTypePtr | Return the inner type. |
innerTypePtr | Return the inner type. |
toString | Render a type to a human-readable string. |
| Name | Description |
|---|---|
TypeCommonBase
| CRTP base that ties a concrete type to a fixed TypeKind. |
asType overloads
<mrdocs/Metadata/Type/TypeBase.hpp>View as const Type.
constexpr
Type const&
asType() const noexcept;
» more...
View as mutable Type.
constexpr
Type&
asType() noexcept;
» more...
View as const Type.
<mrdocs/Metadata/Type/TypeBase.hpp>constexpr
Type const&
asType() const noexcept;
View as mutable Type.
Return the symbol named by this type.
Three-way comparison by kind, qualifiers, and concrete data.
<mrdocs/Metadata/Type/TypeBase.hpp>constexpr
auto
operator<=>(Type const& rhs) const = default;
| Name | Description |
|---|---|
| rhs | The right operand |
The constraints associated with the type
<mrdocs/Metadata/Type/TypeBase.hpp>std::vector<ExprInfo> Constraints;
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
<mrdocs/Metadata/Type/TypeBase.hpp>bool IsConst = false;
Whether this is the pattern of a pack expansion.
<mrdocs/Metadata/Type/TypeBase.hpp>bool IsPackExpansion = false;
The volatile qualifier
<mrdocs/Metadata/Type/TypeBase.hpp>bool IsVolatile = false;
The kind of Type this is
Construct with a concrete type kind.
| Name | Description |
|---|---|
| kind | The object to construct from |
Virtual destructor for polymorphic base.
<mrdocs/Metadata/Type/TypeBase.hpp>constexpr
virtual
~Type() = default;
CRTP base that ties a concrete type to a fixed TypeKind.
<mrdocs/Metadata/Type/TypeBase.hpp>template<TypeKind K>
struct TypeCommonBase
: Type
| Name | Description |
|---|---|
Type | A possibly qualified type. |
| Name | Description |
|---|---|
asType | asType overloads |
namedSymbol | Return the symbol named by this type. |
operator<=> | Three-way comparison operators |
| Name | Description |
|---|---|
isArray | True when this is an array type. |
isAuto | True when this concrete kind is auto. |
isDecltype | True when this concrete kind is decltype. |
isFunction | True when this is a function type. |
isLValueReference | True when this is an lvalue reference. |
isMemberPointer | True when this is a member pointer. |
isNamed | True when this concrete kind is a named type. |
isPointer | True when this is a pointer type. |
isRValueReference | True when this is an rvalue reference. |
| 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 |
| Name | Description |
|---|---|
kind_id | Static discriminator for the concrete type. |
| Name | Description |
|---|---|
TypeCommonBase [constructor] | Construct the base with the fixed kind. |
| Name | Description |
|---|---|
innerType | Return the inner type. |
innerType | Return the inner type. |
innerTypePtr | Return the inner type. |
innerTypePtr | Return the inner type. |
toString | Render a type to a human-readable string. |
| Name | Description |
|---|---|
ArrayType
| C++ array type (bounded or unbounded). |
AutoType
| Represents auto or decltype(auto) placeholder type. |
DecltypeType
| decltype(expr) type wrapper. |
FunctionType
| Function type with parameters, qualifiers, and noexcept info. |
LValueReferenceType
| An lvalue reference type. |
MemberPointerType
| Pointer-to-member type (object or function). |
NamedType
| A type identified by name (possibly fundamental). |
PointerType
| Pointer type wrapper. |
RValueReferenceType
| An rvalue reference type. |
Three-way comparison operators
<mrdocs/Metadata/Type/TypeBase.hpp>Compare type bases by kind-specific payload.
auto
operator<=>(TypeCommonBase const& rhs) const = default;
» more...
Three-way comparison by kind, qualifiers, and concrete data.
constexpr
auto
operator<=>(Type const& rhs) const = default;
» more...
Compare type bases by kind-specific payload.
<mrdocs/Metadata/Type/TypeBase.hpp>auto
operator<=>(TypeCommonBase const& rhs) const = default;
| Name | Description |
|---|---|
| rhs | The right operand |
Three-way comparison by kind, qualifiers, and concrete data.
<mrdocs/Metadata/Type/TypeBase.hpp>constexpr
auto
operator<=>(Type const& rhs) const = default;
| Name | Description |
|---|---|
| rhs | The right operand |
True when this is an array type.
<mrdocs/Metadata/Type/TypeBase.hpp>constexpr
static
bool
isArray() noexcept;
true if kind_id is TypeKind::Array.
True when this concrete kind is auto.
<mrdocs/Metadata/Type/TypeBase.hpp>constexpr
static
bool
isAuto() noexcept;
true if kind_id is TypeKind::Auto.
True when this concrete kind is decltype.
<mrdocs/Metadata/Type/TypeBase.hpp>constexpr
static
bool
isDecltype() noexcept;
true if kind_id is TypeKind::Decltype.
True when this is a function type.
<mrdocs/Metadata/Type/TypeBase.hpp>constexpr
static
bool
isFunction() noexcept;
true if kind_id is TypeKind::Function.
True when this is an lvalue reference.
<mrdocs/Metadata/Type/TypeBase.hpp>constexpr
static
bool
isLValueReference() noexcept;
true if kind_id is TypeKind::LValueReference.
True when this is a member pointer.
<mrdocs/Metadata/Type/TypeBase.hpp>constexpr
static
bool
isMemberPointer() noexcept;
true if kind_id is TypeKind::MemberPointer.
True when this concrete kind is a named type.
<mrdocs/Metadata/Type/TypeBase.hpp>constexpr
static
bool
isNamed() noexcept;
true if kind_id is TypeKind::Named.
True when this is a pointer type.
<mrdocs/Metadata/Type/TypeBase.hpp>constexpr
static
bool
isPointer() noexcept;
true if kind_id is TypeKind::Pointer.
True when this is an rvalue reference.
<mrdocs/Metadata/Type/TypeBase.hpp>constexpr
static
bool
isRValueReference() noexcept;
true if kind_id is TypeKind::RValueReference.
Static discriminator for the concrete type.
<mrdocs/Metadata/Type/TypeBase.hpp>inline constexpr static
TypeKind kind_id = K;
Construct the base with the fixed kind.
<mrdocs/Metadata/Type/TypeBase.hpp>constexpr
TypeCommonBase() noexcept;
Type template argument.
<mrdocs/Metadata/TArg/TypeTArg.hpp>struct TypeTArg final
: TArgCommonBase<TArgKind::Type>
| Name | Description |
|---|---|
TArgCommonBase<TArgKind::Type> | CRTP base that fixes the argument kind. |
| Name | Description |
|---|---|
operator<=> | Compare type arguments by referenced type. |
| Name |
|---|
isConstant |
isTemplate |
isType |
| Name | Description |
|---|---|
Type | Template argument type. |
| Name |
|---|
kind_id |
| Name | Description |
|---|---|
toString | Convert a template argument to a human-readable string. |
Compare type arguments by referenced type.
<mrdocs/Metadata/TArg/TypeTArg.hpp>auto
operator<=>(TypeTArg const& rhs) const = default;
| Name | Description |
|---|---|
| rhs | The right operand |
<mrdocs/Metadata/TArg/TArgBase.hpp>constexpr
static
bool
isConstant() noexcept;
<mrdocs/Metadata/TArg/TArgBase.hpp>constexpr
static
bool
isTemplate() noexcept;
<mrdocs/Metadata/TArg/TArgBase.hpp>constexpr
static
bool
isType() noexcept;
Template argument type.
<mrdocs/Metadata/TArg/TypeTArg.hpp>Polymorphic<Type> Type = Polymorphic<struct Type>(AutoType{});
Type template parameter.
<mrdocs/Metadata/TParam/TypeTParam.hpp>struct TypeTParam final
: TParamCommonBase<TParamKind::Type>
| Name | Description |
|---|---|
TParamCommonBase<TParamKind::Type> | CRTP base that fixes the parameter kind. |
| Name | Description |
|---|---|
operator<=> | Compare type parameters by keyword and constraint. |
| Name |
|---|
isConstant |
isTemplate |
isType |
| Name | Description |
|---|---|
Constraint | The type-constraint for the parameter, if any. |
KeyKind | Keyword (class/typename) the parameter uses |
| Name |
|---|
kind_id |
Compare type parameters by keyword and constraint.
<mrdocs/Metadata/TParam/TypeTParam.hpp>Compare type parameters by keyword and constraint.
std::strong_ordering
operator<=>(TypeTParam const& rhs) const;
» more...
Three-way comparison operator
auto
operator<=>(TParamCommonBase<mrdocs::TParamKind::Type> const& rhs) const = default;
» more...
Compare type parameters by keyword and constraint.
<mrdocs/Metadata/TParam/TypeTParam.hpp>std::strong_ordering
operator<=>(TypeTParam const& rhs) const;
| Name | Description |
|---|---|
| rhs | The right operand |
Three-way comparison operator
<mrdocs/Metadata/TParam/TParamBase.hpp>auto
operator<=>(TParamCommonBase<mrdocs::TParamKind::Type> const& rhs) const = default;
| Name | Description |
|---|---|
| rhs | The right operand |
<mrdocs/Metadata/TParam/TParamBase.hpp>constexpr
static
bool
isConstant() noexcept;
<mrdocs/Metadata/TParam/TParamBase.hpp>constexpr
static
bool
isTemplate() noexcept;
<mrdocs/Metadata/TParam/TParamBase.hpp>constexpr
static
bool
isType() noexcept;
The type-constraint for the parameter, if any.
<mrdocs/Metadata/TParam/TypeTParam.hpp>Optional<Polymorphic<Name>> Constraint = std::nullopt;
Keyword (class/typename) the parameter uses
<mrdocs/Metadata/TParam/TypeTParam.hpp>TParamKeyKind KeyKind = TParamKeyKind::Class;
Info for typedef and using declarations.
<mrdocs/Metadata/Symbol/Typedef.hpp>struct TypedefSymbol final
: SymbolCommonBase<SymbolKind::Typedef>
| Name | Description |
|---|---|
SymbolCommonBase<SymbolKind::Typedef> | Base class for providing variant discriminator functions. |
| Name | Description |
|---|---|
TypedefSymbol [constructor] | Create a typedef symbol bound to an ID. |
operator<=> | Compare typedef symbols, including alias target and template. |
| Name |
|---|
isConcept |
isEnum |
isEnumConstant |
isFunction |
isGuide |
isNamespace |
isNamespaceAlias |
isOverloads |
isRecord |
isTypedef |
isUsing |
isVariable |
| Name | Description |
|---|---|
IsUsing | Indicates if this is a new C++ "using"-style typedef |
Template | Template information when the alias is templated. |
Type | The aliased type. |
| Name |
|---|
kind_id |
| Name | Description |
|---|---|
canMerge | Check whether two symbols may be merged. |
getPrimaryLocation | Determine a location to use when none is explicitly chosen. |
merge | Merges two Symbol objects. |
merge | Merge typedef symbols, keeping existing info when present. |
Create a typedef symbol bound to an ID.
<mrdocs/Metadata/Symbol/Typedef.hpp>explicit
TypedefSymbol(SymbolID ID) noexcept;
| Name | Description |
|---|---|
| ID | The object to construct from |
Compare typedef symbols, including alias target and template.
<mrdocs/Metadata/Symbol/Typedef.hpp>Compare typedef symbols, including alias target and template.
std::strong_ordering
operator<=>(TypedefSymbol const& other) const;
» more...
Three-way comparison operator
auto
operator<=>(SymbolCommonBase<mrdocs::SymbolKind::Typedef> const& rhs) const = default;
» more...
Compare typedef symbols, including alias target and template.
<mrdocs/Metadata/Symbol/Typedef.hpp>std::strong_ordering
operator<=>(TypedefSymbol const& other) const;
| Name | Description |
|---|---|
| other | The right operand |
Three-way comparison operator
<mrdocs/Metadata/Symbol/SymbolBase.hpp>auto
operator<=>(SymbolCommonBase<mrdocs::SymbolKind::Typedef> const& rhs) const = default;
| Name | Description |
|---|---|
| rhs | The right operand |
<mrdocs/Metadata/Symbol/SymbolNodes.inc>constexpr
static
bool
isConcept() noexcept;
<mrdocs/Metadata/Symbol/SymbolNodes.inc>constexpr
static
bool
isEnum() noexcept;
<mrdocs/Metadata/Symbol/SymbolNodes.inc>constexpr
static
bool
isEnumConstant() noexcept;
<mrdocs/Metadata/Symbol/SymbolNodes.inc>constexpr
static
bool
isFunction() noexcept;
<mrdocs/Metadata/Symbol/SymbolNodes.inc>constexpr
static
bool
isGuide() noexcept;
<mrdocs/Metadata/Symbol/SymbolNodes.inc>constexpr
static
bool
isNamespace() noexcept;
<mrdocs/Metadata/Symbol/SymbolNodes.inc>constexpr
static
bool
isNamespaceAlias() noexcept;
<mrdocs/Metadata/Symbol/SymbolNodes.inc>constexpr
static
bool
isOverloads() noexcept;
<mrdocs/Metadata/Symbol/SymbolNodes.inc>constexpr
static
bool
isRecord() noexcept;
<mrdocs/Metadata/Symbol/SymbolNodes.inc>constexpr
static
bool
isTypedef() noexcept;
<mrdocs/Metadata/Symbol/SymbolNodes.inc>constexpr
static
bool
isUsing() noexcept;
<mrdocs/Metadata/Symbol/SymbolNodes.inc>constexpr
static
bool
isVariable() noexcept;
Indicates if this is a new C++ "using"-style typedef
<mrdocs/Metadata/Symbol/Typedef.hpp>bool IsUsing = false;
using MyVector = std::vector<int>
False means it's a C-style typedef:
typedef std::vector<int> MyVector;
Template information when the alias is templated.
The aliased type.
<mrdocs/Metadata/Symbol/Typedef.hpp>Polymorphic<Type> Type = Polymorphic<struct Type>(NamedType{});
Holds an unexpected error value for Expected.
<mrdocs/Support/Expected.hpp>template<class E>
class Unexpected;
| Name | Description |
|---|---|
Unexpected [constructor] | Constructors |
operator= | Assignment operators |
error | error overloads |
swap | Swap the contained error with another instance. |
| Name | Description |
|---|---|
swap |
|
operator== |
Equality operator |
Constructors
<mrdocs/Support/Expected.hpp>Copy constructor.
constexpr
Unexpected(Unexpected const& other) = default;
» more...
Move constructor.
constexpr
Unexpected(Unexpected&& other) = default;
» more...
Construct from an error value convertible to E.
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>);
» more...
In-place construct the error value with arguments.
template<class... Args>
requires std::is_constructible_v<E, Args...>
constexpr
explicit
Unexpected(
std::in_place_t in_place,
Args&&... args) noexcept(std::is_nothrow_constructible_v<E, Args...>);
» more...
In-place construct the error value from an initializer list.
template<
class U,
class... Args>
requires std::is_constructible_v<E, std::initializer_list<U>&, Args...>
constexpr
explicit
Unexpected(
std::in_place_t in_place,
std::initializer_list<U> il,
Args&&... args) noexcept(std::is_nothrow_constructible_v<E, std::initializer_list<U> &, Args...>);
» more...
| Name | Description |
|---|---|
| e | Error value to store. |
| in_place | Tag selecting in-place construction. |
| args | Arguments forwarded to E's constructor. |
| il | Initializer list for the error. |
Copy constructor.
<mrdocs/Support/Expected.hpp>constexpr
Unexpected(Unexpected const& other) = default;
| Name | Description |
|---|---|
| other | The object to copy construct from |
Move constructor.
<mrdocs/Support/Expected.hpp>constexpr
Unexpected(Unexpected&& other) = default;
| Name | Description |
|---|---|
| other | The object to move construct from |
Construct from an error value convertible to E.
<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>);
| Name | Description |
|---|---|
| e | Error value to store. |
In-place construct the error value with arguments.
<mrdocs/Support/Expected.hpp>template<class... Args>
requires std::is_constructible_v<E, Args...>
constexpr
explicit
Unexpected(
std::in_place_t in_place,
Args&&... args) noexcept(std::is_nothrow_constructible_v<E, Args...>);
| Name | Description |
|---|---|
| in_place | Tag selecting in-place construction. |
| args | Arguments forwarded to E's constructor. |
In-place construct the error value from an initializer list.
<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 in_place,
std::initializer_list<U> il,
Args&&... args) noexcept(std::is_nothrow_constructible_v<E, std::initializer_list<U> &, Args...>);
| Name | Description |
|---|---|
| in_place | Tag selecting in-place construction. |
| il | Initializer list for the error. |
| args | Additional constructor arguments. |
Assignment operators
<mrdocs/Support/Expected.hpp>Copy assignment.
constexpr
Unexpected&
operator=(Unexpected const& other) = default;
» more...
Move assignment.
constexpr
Unexpected&
operator=(Unexpected&& other) = default;
» more...
Copy assignment.
<mrdocs/Support/Expected.hpp>constexpr
Unexpected&
operator=(Unexpected const& other) = default;
| Name | Description |
|---|---|
| other | The object to copy assign from |
Move assignment.
<mrdocs/Support/Expected.hpp>constexpr
Unexpected&
operator=(Unexpected&& other) = default;
| Name | Description |
|---|---|
| other | The object to move assign from |
error overloads
<mrdocs/Support/Expected.hpp>Return a const reference to the stored error.
[[nodiscard]]
constexpr
E const&
error() const & noexcept;
» more...
Return a reference to the stored error.
[[nodiscard]]
constexpr
E&
error() & noexcept;
» more...
Return a const rvalue reference to the stored error.
[[nodiscard]]
constexpr
E const&&
error() const && noexcept;
» more...
Return a rvalue reference to the stored error.
[[nodiscard]]
constexpr
E&&
error() && noexcept;
» more...
E.E.E.E.Return a const reference to the stored error.
<mrdocs/Support/Expected.hpp>[[nodiscard]]
constexpr
E const&
error() const & noexcept;
E.
Return a reference to the stored error.
<mrdocs/Support/Expected.hpp>[[nodiscard]]
constexpr
E&
error() & noexcept;
E.
Return a const rvalue reference to the stored error.
<mrdocs/Support/Expected.hpp>[[nodiscard]]
constexpr
E const&&
error() const && noexcept;
E.
Return a rvalue reference to the stored error.
<mrdocs/Support/Expected.hpp>[[nodiscard]]
constexpr
E&&
error() && noexcept;
E.
Swap the contained error with another instance.
<mrdocs/Support/Expected.hpp>constexpr
void
swap(Unexpected& other) noexcept(std::is_nothrow_swappable_v<E>)
requires std::is_swappable_v<E>;
| Name | Description |
|---|---|
| other | Holds an unexpected error value for Expected. |
Info for using declarations.
<mrdocs/Metadata/Symbol/Using.hpp>struct UsingSymbol final
: SymbolCommonBase<SymbolKind::Using>
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.
| Name | Description |
|---|---|
SymbolCommonBase<SymbolKind::Using> | Base class for providing variant discriminator functions. |
| Name | Description |
|---|---|
UsingSymbol [constructor] | Create a using-declaration symbol bound to an ID. |
operator<=> | Three-way comparison operator |
| Name |
|---|
isConcept |
isEnum |
isEnumConstant |
isFunction |
isGuide |
isNamespace |
isNamespaceAlias |
isOverloads |
isRecord |
isTypedef |
isUsing |
isVariable |
| Name | Description |
|---|---|
Class | The using declaration. |
IntroducedName | The symbol being introduced. |
ShadowDeclarations | The shadow declarations. |
| Name |
|---|
kind_id |
| Name | Description |
|---|---|
allMembers | Access declarations introduced by this using-declaration. |
canMerge | Check whether two symbols may be merged. |
getPrimaryLocation | Determine a location to use when none is explicitly chosen. |
merge | Merges two Symbol objects. |
merge | Merge two using-declarations with the same identity. |
Create a using-declaration symbol bound to an ID.
| Name | Description |
|---|---|
| ID | The object to construct from |
Three-way comparison operator
<mrdocs/Metadata/Symbol/SymbolBase.hpp>auto
operator<=>(SymbolCommonBase<mrdocs::SymbolKind::Using> const& rhs) const = default;
| Name | Description |
|---|---|
| rhs | The right operand |
<mrdocs/Metadata/Symbol/SymbolNodes.inc>constexpr
static
bool
isConcept() noexcept;
<mrdocs/Metadata/Symbol/SymbolNodes.inc>constexpr
static
bool
isEnum() noexcept;
<mrdocs/Metadata/Symbol/SymbolNodes.inc>constexpr
static
bool
isEnumConstant() noexcept;
<mrdocs/Metadata/Symbol/SymbolNodes.inc>constexpr
static
bool
isFunction() noexcept;
<mrdocs/Metadata/Symbol/SymbolNodes.inc>constexpr
static
bool
isGuide() noexcept;
<mrdocs/Metadata/Symbol/SymbolNodes.inc>constexpr
static
bool
isNamespace() noexcept;
<mrdocs/Metadata/Symbol/SymbolNodes.inc>constexpr
static
bool
isNamespaceAlias() noexcept;
<mrdocs/Metadata/Symbol/SymbolNodes.inc>constexpr
static
bool
isOverloads() noexcept;
<mrdocs/Metadata/Symbol/SymbolNodes.inc>constexpr
static
bool
isRecord() noexcept;
<mrdocs/Metadata/Symbol/SymbolNodes.inc>constexpr
static
bool
isTypedef() noexcept;
<mrdocs/Metadata/Symbol/SymbolNodes.inc>constexpr
static
bool
isUsing() noexcept;
<mrdocs/Metadata/Symbol/SymbolNodes.inc>constexpr
static
bool
isVariable() noexcept;
The using declaration.
The symbol being introduced.
<mrdocs/Metadata/Symbol/Using.hpp>Polymorphic<Name> IntroducedName = Polymorphic<struct Name>(std::in_place_type<IdentifierName>);
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.
<mrdocs/Metadata/Symbol/Using.hpp>std::vector<SymbolID> ShadowDeclarations;
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.
A variable.
<mrdocs/Metadata/Symbol/Variable.hpp>struct VariableSymbol final
: SymbolCommonBase<SymbolKind::Variable>
This includes variables at namespace or record scope.
| Name | Description |
|---|---|
SymbolCommonBase<SymbolKind::Variable> | Base class for providing variant discriminator functions. |
| Name | Description |
|---|---|
VariableSymbol [constructor] | Create a variable symbol bound to an ID. |
operator<=> | Compare variables by type, flags, and initializer. |
| Name |
|---|
isConcept |
isEnum |
isEnumConstant |
isFunction |
isGuide |
isNamespace |
isNamespaceAlias |
isOverloads |
isRecord |
isTypedef |
isUsing |
isVariable |
| Name | Description |
|---|---|
Attributes | Raw attribute spellings attached to the variable. |
BitfieldWidth | The width of the bitfield |
HasNoUniqueAddress | Whether the variable uses [[no_unique_address]]. |
Initializer | The default member initializer, if any. |
IsBitfield | Whether the field is a bitfield |
IsConstexpr | Whether the variable is constexpr. |
IsConstinit | Whether the variable is constinit. |
IsDeprecated | Whether the variable is marked deprecated. |
IsInline | Whether the variable is declared inline. |
IsMaybeUnused | Whether the variable carries [[maybe_unused]]. |
IsMutable | Whether the field is declared mutable |
IsRecordField | True if this variable is a data member of a record. |
IsThreadLocal | Whether the variable is thread_local. |
IsVariant | Whether the field is a variant member |
StorageClass | Storage class specifier applied to the variable. |
Template | The template information, if any. |
Type | The type of the variable |
| Name |
|---|
kind_id |
| Name | Description |
|---|---|
canMerge | Check whether two symbols may be merged. |
getPrimaryLocation | Determine a location to use when none is explicitly chosen. |
merge | Merges two Symbol objects. |
merge | Merge variable metadata, preserving existing values when set. |
Create a variable symbol bound to an ID.
<mrdocs/Metadata/Symbol/Variable.hpp>explicit
VariableSymbol(SymbolID const& ID) noexcept;
| Name | Description |
|---|---|
| ID | The object to copy construct from |
Compare variables by type, flags, and initializer.
<mrdocs/Metadata/Symbol/Variable.hpp>Compare variables by type, flags, and initializer.
std::strong_ordering
operator<=>(VariableSymbol const& other) const;
» more...
Three-way comparison operator
auto
operator<=>(SymbolCommonBase<mrdocs::SymbolKind::Variable> const& rhs) const = default;
» more...
Compare variables by type, flags, and initializer.
<mrdocs/Metadata/Symbol/Variable.hpp>std::strong_ordering
operator<=>(VariableSymbol const& other) const;
| Name | Description |
|---|---|
| other | The right operand |
Three-way comparison operator
<mrdocs/Metadata/Symbol/SymbolBase.hpp>auto
operator<=>(SymbolCommonBase<mrdocs::SymbolKind::Variable> const& rhs) const = default;
| Name | Description |
|---|---|
| rhs | The right operand |
<mrdocs/Metadata/Symbol/SymbolNodes.inc>constexpr
static
bool
isConcept() noexcept;
<mrdocs/Metadata/Symbol/SymbolNodes.inc>constexpr
static
bool
isEnum() noexcept;
<mrdocs/Metadata/Symbol/SymbolNodes.inc>constexpr
static
bool
isEnumConstant() noexcept;
<mrdocs/Metadata/Symbol/SymbolNodes.inc>constexpr
static
bool
isFunction() noexcept;
<mrdocs/Metadata/Symbol/SymbolNodes.inc>constexpr
static
bool
isGuide() noexcept;
<mrdocs/Metadata/Symbol/SymbolNodes.inc>constexpr
static
bool
isNamespace() noexcept;
<mrdocs/Metadata/Symbol/SymbolNodes.inc>constexpr
static
bool
isNamespaceAlias() noexcept;
<mrdocs/Metadata/Symbol/SymbolNodes.inc>constexpr
static
bool
isOverloads() noexcept;
<mrdocs/Metadata/Symbol/SymbolNodes.inc>constexpr
static
bool
isRecord() noexcept;
<mrdocs/Metadata/Symbol/SymbolNodes.inc>constexpr
static
bool
isTypedef() noexcept;
<mrdocs/Metadata/Symbol/SymbolNodes.inc>constexpr
static
bool
isUsing() noexcept;
<mrdocs/Metadata/Symbol/SymbolNodes.inc>constexpr
static
bool
isVariable() noexcept;
Raw attribute spellings attached to the variable.
<mrdocs/Metadata/Symbol/Variable.hpp>std::vector<std::string> Attributes;
The width of the bitfield
<mrdocs/Metadata/Symbol/Variable.hpp>ConstantExprInfo<uint64_t> BitfieldWidth;
Whether the variable uses [[no_unique_address]].
<mrdocs/Metadata/Symbol/Variable.hpp>bool HasNoUniqueAddress = false;
The default member initializer, if any.
Whether the field is a bitfield
<mrdocs/Metadata/Symbol/Variable.hpp>bool IsBitfield = false;
Whether the variable is constexpr.
<mrdocs/Metadata/Symbol/Variable.hpp>bool IsConstexpr = false;
Whether the variable is constinit.
<mrdocs/Metadata/Symbol/Variable.hpp>bool IsConstinit = false;
Whether the variable is marked deprecated.
<mrdocs/Metadata/Symbol/Variable.hpp>bool IsDeprecated = false;
Whether the variable is declared inline.
<mrdocs/Metadata/Symbol/Variable.hpp>bool IsInline = false;
Whether the variable carries [[maybe_unused]].
<mrdocs/Metadata/Symbol/Variable.hpp>bool IsMaybeUnused = false;
Whether the field is declared mutable
<mrdocs/Metadata/Symbol/Variable.hpp>bool IsMutable = false;
True if this variable is a data member of a record.
<mrdocs/Metadata/Symbol/Variable.hpp>bool IsRecordField = false;
Whether the variable is thread_local.
<mrdocs/Metadata/Symbol/Variable.hpp>bool IsThreadLocal = false;
Whether the field is a variant member
<mrdocs/Metadata/Symbol/Variable.hpp>bool IsVariant = false;
Storage class specifier applied to the variable.
<mrdocs/Metadata/Symbol/Variable.hpp>StorageClassKind StorageClass = StorageClassKind::None;
The template information, if any.
The type of the variable
<mrdocs/Metadata/Symbol/Variable.hpp>Polymorphic<Type> Type = Polymorphic<struct Type>(NamedType{});
A visitor for a type
<mrdocs/Support/Visitor.hpp>template<
typename Base,
typename Fn,
typename... Args>
class Visitor;
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.
| Name | Description |
|---|---|
Visitor [constructor] | Constructor |
visit | Visit a derived type |
| Name | Description |
|---|---|
| Base | The base type of the object |
| Fn | The function object type |
| Args | The argument types |
Constructor
<mrdocs/Support/Visitor.hpp>Visitor(
Base&& obj,
Fn&& fn,
Args&&... args);
| 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
<mrdocs/Support/Visitor.hpp>template<std::derived_from<std::remove_cvref_t<Base>> Derived>
decltype(auto)
visit();
This method calls the function object with the derived type as the first argument, followed by the arguments passed to the constructor.
| Name | Description |
|---|---|
| Derived | The derived type to visit |
Enables recursive lambdas by passing a self-reference as the first argument.
<mrdocs/ADT/Overload.hpp>template<class F>
class YCombinator;
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);
| Name | Description |
|---|---|
YCombinator [constructor] | Constructs a YCombinator from the given callable. |
operator() | Function call operators |
| Name | Description |
|---|---|
yCombinator | Factory that creates a YCombinator from a callable. |
| Name | Description |
|---|---|
| F | The callable to wrap. |
Constructs a YCombinator from the given callable.
<mrdocs/ADT/Overload.hpp>constexpr
explicit
YCombinator(F f) noexcept(std::is_nothrow_move_constructible_v<F>);
| Name | Description |
|---|---|
| f | The callable to store. |
Function call operators
<mrdocs/ADT/Overload.hpp>Invokes the stored callable, passing *this as the first parameter.
template<class... Args>
constexpr
decltype(auto)
operator()(Args&&... args) &;
» more...
Const lvalue overload of operator().
template<class... Args>
constexpr
decltype(auto)
operator()(Args&&... args) const &;
» more...
Rvalue overload of operator().
template<class... Args>
constexpr
decltype(auto)
operator()(Args&&... args) &&;
» more...
Const rvalue overload of operator().
template<class... Args>
constexpr
decltype(auto)
operator()(Args&&... args) const &&;
» more...
| Name | Description |
|---|---|
| args | The arguments to forward to the callable after the self reference. |
Invokes the stored callable, passing *this as the first parameter.
<mrdocs/ADT/Overload.hpp>template<class... Args>
constexpr
decltype(auto)
operator()(Args&&... args) &;
| Name | Description |
|---|---|
| args | The arguments to forward to the callable after the self reference. |
Const lvalue overload of operator().
<mrdocs/ADT/Overload.hpp>template<class... Args>
constexpr
decltype(auto)
operator()(Args&&... args) const &;
| Name | Description |
|---|---|
| args | The arguments to forward to the callable after the self reference. |
Rvalue overload of operator().
<mrdocs/ADT/Overload.hpp>template<class... Args>
constexpr
decltype(auto)
operator()(Args&&... args) &&;
| Name | Description |
|---|---|
| args | The arguments to forward to the callable after the self reference. |
Const rvalue overload of operator().
<mrdocs/ADT/Overload.hpp>template<class... Args>
constexpr
decltype(auto)
operator()(Args&&... args) const &&;
| Name | Description |
|---|---|
| args | The arguments to forward to the callable after the self reference. |
Propagate const qualification from From to To, keeping references.
<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>
| 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> |
| Name | Description |
|---|---|
add_cv_from
| Propagate both const and volatile qualifiers from From to To. |
Propagate both const and volatile qualifiers from From to To.
<mrdocs/Support/TypeTraits.hpp>template<
typename From,
typename To>
struct add_cv_from
: add_const_from<From, add_volatile_from_t<From, To>>
| Name | Description |
|---|---|
add_const_from<From, add_volatile_from_t<From, To>> | Propagate const qualification from From to To, keeping references. |
Propagate cv-qualification and reference category from From to To.
<mrdocs/Support/TypeTraits.hpp>template<
typename From,
typename To>
struct add_cvref_from
: add_reference_from<From, add_cv_from_t<From, To>>
| Name | Description |
|---|---|
add_reference_from<From, add_cv_from_t<From, To>> | Propagate reference qualification from From to To. |
Propagate lvalue-reference from From to To if present.
<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>
| Name | Description |
|---|---|
std::conditional<std::is_lvalue_reference_v<From>, std::add_lvalue_reference_t<To>, To> |
| Name | Description |
|---|---|
add_reference_from
| Propagate reference qualification from From to To. |
Propagate reference qualification from From to To.
<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>>
| Name | Description |
|---|---|
add_lvalue_reference_from<From, add_rvalue_reference_from_t<From, To>> | Propagate lvalue-reference from From to To if present. |
| Name | Description |
|---|---|
add_cvref_from
| Propagate cv-qualification and reference category from From to To. |
Propagate rvalue-reference from From to To if present.
<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>
| Name | Description |
|---|---|
std::conditional<std::is_rvalue_reference_v<From>, std::add_rvalue_reference_t<To>, To> |
Propagate volatile qualification from From to To, keeping references.
<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>
| 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.
<mrdocs/Support/any_callable.hpp>template<class>
class any_callable;
Usage:
any_callable<void(void)> f;
Type-erased callable wrapper for signature R(Args...).
<mrdocs/Support/any_callable.hpp>template<
class R,
class... Args>
class any_callable<R(Args...)>;
| Name | Description |
|---|---|
any_callable [constructor] [deleted] | Constructors |
operator() | Invoke the stored callable. |
Constructors
<mrdocs/Support/any_callable.hpp>Deleted default constructor to prevent empty call targets.
any_callable() = delete;
» more...
Construct from a callable object matching the signature.
template<class Callable>
requires std::is_invocable_r_v<R, Callable, Args...>
any_callable(Callable&& f);
» more...
| Name | Description |
|---|---|
| f | Callable to store; must satisfy R(Args...). |
Deleted default constructor to prevent empty call targets.
<mrdocs/Support/any_callable.hpp>any_callable() = delete;
Construct from a callable object matching the signature.
<mrdocs/Support/any_callable.hpp>template<class Callable>
requires std::is_invocable_r_v<R, Callable, Args...>
any_callable(Callable&& f);
| Name | Description |
|---|---|
| f | Callable to store; must satisfy R(Args...). |
Invoke the stored callable.
<mrdocs/Support/any_callable.hpp>R
operator()(Args&&... args) const;
| Name | Description |
|---|---|
| args | Arguments forwarded to the callable. |
Dependent alias of T, useful for delaying instantiation.
<mrdocs/Support/TypeTraits.hpp>template<
typename T,
typename U>
struct make_dependent;
| Name | Description |
|---|---|
type | Make a type dependent on another template parameter. |
Make a type dependent on another template parameter.
<mrdocs/Support/TypeTraits.hpp>using type = T;
nullable_traits<T> defines how to treat a T as “nullable” without an external engaged bit.
<mrdocs/ADT/Nullable.hpp>template<class T>
struct nullable_traits;
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.
<mrdocs/Metadata/Symbol/Location.hpp>template<>
struct nullable_traits<Location>;
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.”
| Name | Description |
|---|---|
is_null | Test if the location is null (empty ShortPath). |
make_null | Reset a location to the null sentinel state. |
null | Create a null location sentinel. |
Test if the location is null (empty ShortPath).
<mrdocs/Metadata/Symbol/Location.hpp>constexpr
static
bool
is_null(Location const& v) noexcept;
ShortPath is empty.
| Name | Description |
|---|---|
| v | Source location of a symbol or entity. |
Reset a location to the null sentinel state.
<mrdocs/Metadata/Symbol/Location.hpp>constexpr
static
void
make_null(Location& v) noexcept;
| Name | Description |
|---|---|
| v | Source location of a symbol or entity. |
Create a null location sentinel.
<mrdocs/Metadata/Symbol/Location.hpp>constexpr
static
Location
null() noexcept;
nullable_traits for types with a sentinel.
<mrdocs/ADT/Nullable.hpp>template<class T>
requires (!HasSentinel<T> && ClearableContainerLike<T>)
struct nullable_traits<T>;
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().
Return true if v is empty.
| Name | Description |
|---|---|
is_null | Return true if v matches the sentinel for T. |
make_null | Overwrite v with the sentinel null value. |
null | Return the sentinel value representing null. |
true when the container is empty.
| Name | Description |
|---|---|
| v | Value to test. |
Return true if v matches the sentinel for T.
<mrdocs/ADT/Nullable.hpp>constexpr
static
bool
is_null(T const& v) noexcept(noexcept(v.empty()));
true when v equals the sentinel.
| Name | Description |
|---|---|
| v | Value to test. |
Overwrite v with the sentinel null value.
<mrdocs/ADT/Nullable.hpp>constexpr
static
void
make_null(T& v) noexcept(noexcept(v.clear()));
Clear v to its null (empty) state.
| Name | Description |
|---|---|
| v | Value to clear. |
Return the sentinel value representing null.
<mrdocs/ADT/Nullable.hpp>constexpr
static
T
null() noexcept(std::is_nothrow_default_constructible_v<T>);
Construct a null value using the default constructor.
T.T.nullable_traits for Polymorphic<T>.
<mrdocs/ADT/Polymorphic.hpp>template<class T>
struct nullable_traits<Polymorphic<T>>;
Only this friend specialization can create/reset the null state.
| Name | Description |
|---|---|
is_null | Return true if the polymorphic value is disengaged. |
make_null | Reset the polymorphic value to null. |
null | Return a null polymorphic instance. |
Return true if the polymorphic value is disengaged.
<mrdocs/ADT/Polymorphic.hpp>constexpr
static
bool
is_null(Polymorphic<T> const& v) noexcept;
true when v does not hold an object.
| Name | Description |
|---|---|
| v | Value to test. |
Reset the polymorphic value to null.
<mrdocs/ADT/Polymorphic.hpp>constexpr
static
void
make_null(Polymorphic<T>& v) noexcept;
| Name | Description |
|---|---|
| v | Value to clear. |
Return a null polymorphic instance.
Defines a customization point for types that have an intrinsic sentinel value denoting “null”.
<mrdocs/ADT/Nullable.hpp>template<class T>
struct sentinel_traits;
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.
| Name | Description |
|---|---|
is_sentinel | Return true if the value equals the sentinel. |
sentinel | Return the sentinel value for std::nullptr_t. |
Return true if the value equals the sentinel.
<mrdocs/ADT/Nullable.hpp>constexpr
static
bool
is_sentinel(std::nullptr_t) noexcept;
Return the sentinel value for std::nullptr_t.
<mrdocs/ADT/Nullable.hpp>constexpr
static
std::nullptr_t
sentinel() noexcept;
sentinel_traits specialization for unsigned integral types.
<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>;
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.
Return the floating-point NaN sentinel.
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.
Return the enum sentinel value.
| Name | Description |
|---|---|
is_sentinel | Return true if the value equals the sentinel. |
sentinel | Return the sentinel value (~0u). |
Return true if the value equals the sentinel.
<mrdocs/ADT/Nullable.hpp>constexpr
static
bool
is_sentinel(T v) noexcept;
Return true if v is the NaN sentinel.
Return true if v equals the sentinel value.
true when v equals the sentinel.true when v is NaN.true when v matches the sentinel enumerator.| Name | Description |
|---|---|
| v | Value to test. |
Return the sentinel value (~0u).
<mrdocs/ADT/Nullable.hpp>constexpr
static
T
sentinel() noexcept;
sentinel_traits specialization for raw pointers.
Uses nullptr as the sentinel value.
| Name | Description |
|---|---|
is_sentinel | Return true if the pointer equals the sentinel. |
sentinel | Return the sentinel pointer value (nullptr). |
Return true if the pointer equals the sentinel.
<mrdocs/ADT/Nullable.hpp>constexpr
static
bool
is_sentinel(T const* p) noexcept;
true when p is nullptr.
| Name | Description |
|---|---|
| p | Pointer to test. |
Return the sentinel pointer value (nullptr).
<mrdocs/ADT/Nullable.hpp>constexpr
static
T*
sentinel() noexcept;
Tag type used to select unexpected construction.
<mrdocs/Support/Expected.hpp>struct unexpect_t;
| Name | Description |
|---|---|
unexpect_t [constructor] | Default constructor. |
Default constructor.
<mrdocs/Support/Expected.hpp>constexpr
explicit
unexpect_t() = default;
A scoped guard which unlocks a mutex.
<mrdocs/Support/unlock_guard.hpp>class unlock_guard;
| Name | Description |
|---|---|
unlock_guard [constructor] | Constructor. |
~unlock_guard [destructor] | Destructor. |
Constructor.
<mrdocs/Support/unlock_guard.hpp>explicit
unlock_guard(std::mutex& m);
| Name | Description |
|---|---|
| m | The object to copy construct from |
Destructor.
<mrdocs/Support/unlock_guard.hpp>~unlock_guard();
Access specifier.
<mrdocs/Metadata/Specifiers/AccessKind.hpp>enum class AccessKind : int;
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.
| Name | Description |
|---|---|
None | Unspecified access |
Public | Public access |
Protected | Protected access |
Private | Private access |
| Name | Description |
|---|---|
toString | Convert access specifier to its string form. |
The kind of auto keyword used in a declaration.
<mrdocs/Metadata/Type/AutoKind.hpp>enum class AutoKind : int;
This is either auto or decltype(auto).
| Name | Description |
|---|---|
Auto | The auto keyword |
DecltypeAuto | The decltype(auto) keyword |
| Name | Description |
|---|---|
toString | Convert an auto-kind to its spelling. |
constexpr/consteval specifier kinds
<mrdocs/Metadata/Specifiers/ConstexprKind.hpp>enum class ConstexprKind : int;
[dcl.spec.general]p2: At most one of the constexpr, consteval, and constinit keywords shall appear in a decl-specifier-seq
| Name | Description |
|---|---|
None | No constexpr or consteval specifier |
Constexpr | The constexpr specifier |
Consteval | The consteval specifier only valid for functions |
| Name | Description |
|---|---|
toString | Convert a constexpr/consteval specifier kind to a string. |
Explicit specifier kinds
<mrdocs/Metadata/Specifiers/ExplicitKind.hpp>enum class ExplicitKind : int;
| Name | Description |
|---|---|
False | No explicit-specifier or explicit-specifier evaluated to false |
True | explicit-specifier evaluates to true |
Dependent | Dependent explicit-specifier |
| Name | Description |
|---|---|
toString | Convert an explicit kind to its string form. |
Determine why a symbol is extracted
<mrdocs/Metadata/Symbol/ExtractionMode.hpp>enum class ExtractionMode : int;
The enum constants are ordered by specificity, with the least specific at the beginning and the most specific at the end.
| 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. |
| 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. |
Classifies where a file originates from.
<mrdocs/Metadata/Symbol/FileKind.hpp>enum class FileKind : int;
| Name | Description |
|---|---|
Source | File in the source directory |
System | File in a system include directory |
Other | File outside the source directory |
| Name | Description |
|---|---|
toString | Convert a FileKind to its string form. |
Function classifications
<mrdocs/Metadata/Symbol/FunctionClass.hpp>enum class FunctionClass : int;
| 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. |
| Name | Description |
|---|---|
toString | Convert a function class to string form. |
Categorically describes a fundamental type.
<mrdocs/Metadata/Type/FundamentalTypeKind.hpp>enum class FundamentalTypeKind : int;
| 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 |
| 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. |
https://en.cppreference.com/w/cpp/language/types
Classification of list ordering.
<mrdocs/Metadata/DocComment/Block/ListKind.hpp>enum class ListKind : int;
| Name | Description |
|---|---|
Unordered | A bulleted list with no inherent ordering. |
Ordered | A numbered list where item order matters. |
| Name | Description |
|---|---|
toString | Convert a list kind enum to its string name. |
Kinds of names that appear in type and symbol metadata.
<mrdocs/Metadata/Name/NameKind.hpp>enum class NameKind : int;
| Name | Description |
|---|---|
toString | Convert a NameKind to its string form. |
Exception specification kinds
<mrdocs/Metadata/Specifiers/NoexceptKind.hpp>enum class NoexceptKind : int;
| Name | Description |
|---|---|
False | Potentially-throwing exception specification |
True | Non-throwing exception specification |
Dependent | Dependent exception specification |
| Name | Description |
|---|---|
toString | Convert a noexcept kind to its string form. |
Operator kinds
<mrdocs/Metadata/Specifiers/OperatorKind.hpp>enum class OperatorKind : int;
| 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 |
| 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
<mrdocs/Metadata/Type/QualifierKind.hpp>enum QualifierKind;
| Name | Description |
|---|---|
None | No qualifiers |
Const | The const qualifier |
Volatile | The volatile qualifier |
| Name | Description |
|---|---|
toString | Convert a cv/ref qualifier kind to its string form. |
The kind of record: struct, class, or union.
<mrdocs/Metadata/Symbol/RecordKeyKind.hpp>enum class RecordKeyKind : int;
| Name | Description |
|---|---|
Struct | A struct. |
Class | A C++ class. |
Union | A C-style Union |
| Name | Description |
|---|---|
getDefaultAccessString | Return the default accessibility for a record key kind. |
toString | Convert the key kind to its canonical string form. |
Reference type kinds
<mrdocs/Metadata/Specifiers/ReferenceKind.hpp>enum class ReferenceKind : int;
| Name | Description |
|---|---|
None | Not a reference |
LValue | An L-Value reference |
RValue | An R-Value reference |
| Name | Description |
|---|---|
toString | Convert a reference kind to its string representation. |
Storage class kinds
<mrdocs/Metadata/Specifiers/StorageClassKind.hpp>enum class StorageClassKind : int;
[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.
| 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 |
| Name | Description |
|---|---|
toString | Convert a storage class kind to its string form. |
Info variant discriminator
<mrdocs/Metadata/Symbol/SymbolKind.hpp>enum class SymbolKind : int;
| Name | Description |
|---|---|
None | Kind is not specified. |
| Name | Description |
|---|---|
toString | Return the name of the SymbolKind as a string. |
The kind of template argument.
<mrdocs/Metadata/TArg/TArgKind.hpp>enum class TArgKind : int;
| Name | Description |
|---|---|
toString | Convert a template-argument kind to a string. |
The keyword a template parameter was declared with
<mrdocs/Metadata/TParam/TParamKeyKind.hpp>enum class TParamKeyKind : int;
| Name | Description |
|---|---|
Class | Class keyword |
Typename | Typename keyword |
| Name | Description |
|---|---|
toString | Convert the keyword kind to its string form. |
Discriminates the different template parameter categories.
<mrdocs/Metadata/TParam/TParamKind.hpp>enum class TParamKind : int;
| Name | Description |
|---|---|
toString | Convert a parameter kind to a readable string. |
Horizontal alignment for table columns.
<mrdocs/Metadata/DocComment/Block/TableAlignmentKind.hpp>enum class TableAlignmentKind : int;
| Name | Description |
|---|---|
None | No explicit alignment; renderer default applies. |
Left | Align content to the left edge. |
Center | Center the content. |
Right | Align content to the right edge. |
| Name | Description |
|---|---|
toString | Convert an alignment enum to its string representation. |
The kind of template or specialization.
<mrdocs/Metadata/Template.hpp>enum class TemplateSpecKind : int;
| Name | Description |
|---|---|
Primary | Primary template |
Explicit | Full template specialization |
Partial | Partial template specialization |
| Name | Description |
|---|---|
toString | Convert the specialization kind to a readable string. |
Variants of C++ types captured in metadata.
<mrdocs/Metadata/Type/TypeKind.hpp>enum class TypeKind : int;
| Name | Description |
|---|---|
toString | Convert a TypeKind to its string representation. |
The class of using declaration.
<mrdocs/Metadata/Symbol/Using.hpp>enum class UsingClass : int;
This indicates whether the using declaration is a normal using, a using typename, or a using enum.
| Name | Description |
|---|---|
Normal | Using declaration class. |
Typename | Using typename declaration class. |
Enum | Using enum declaration class. |
Compares two polymorphic objects that have visit functions
<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);
» more...
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);
» more...
| Name | Description |
|---|---|
| Base | The type of the Polymorphic. |
| Name | Description |
|---|---|
| lhs | The first Polymorphic to compare. |
| rhs | The second Polymorphic to compare. |
Compares two polymorphic objects that have visit functions
<mrdocs/ADT/Polymorphic.hpp>template<class Base>
requires (!detail::IsPolymorphic<Base>) && detail::CanVisitCompare<Base>
auto
CompareDerived(
Base const& lhs,
Base const& rhs);
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.
| Name | Description |
|---|---|
| Base | The type of the Polymorphic. |
| Name | Description |
|---|---|
| lhs | The first Polymorphic to compare. |
| rhs | The second Polymorphic to compare. |
Compares two polymorphic objects that have visit functions
<mrdocs/ADT/Polymorphic.hpp>template<class Base>
requires detail::CanVisitCompare<Base>
auto
CompareDerived(
Polymorphic<Base> const& lhs,
Polymorphic<Base> const& rhs);
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.
| Name | Description |
|---|---|
| Base | The type of the Polymorphic. |
| Name | Description |
|---|---|
| lhs | The first Polymorphic to compare. |
| rhs | The second Polymorphic to compare. |
HTMLEscape overloads
<mrdocs/Support/Handlebars.hpp>HTML escapes the specified string.
std::string
HTMLEscape(std::string_view str);
» more...
HTML escapes the specified string
void
HTMLEscape(
OutputRef& out,
std::string_view str);
» more...
| Name | Description |
|---|---|
| str | The string to escape. |
| out | The output stream reference where the escaped string will be written. |
https://github.com/handlebars-lang/handlebars.js/blob/master/lib/handlebars/utils.js
HTML escapes the specified string.
<mrdocs/Support/Handlebars.hpp>std::string
HTMLEscape(std::string_view str);
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.
| Name | Description |
|---|---|
| str | The string to escape. |
HTML escapes the specified string
<mrdocs/Support/Handlebars.hpp>void
HTMLEscape(
OutputRef& out,
std::string_view str);
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.
| Name | Description |
|---|---|
| out | The output stream reference where the escaped string will be written. |
| str | The string to escape. |
https://github.com/handlebars-lang/handlebars.js/blob/master/lib/handlebars/utils.js
Append a new function overload to the set.
<mrdocs/Metadata/Symbol/Overloads.hpp>void
addMember(
OverloadsSymbol& I,
FunctionSymbol const& Member);
| Name | Description |
|---|---|
| I | Represents a set of function overloads. |
| Member | Metadata for a function or method. |
allMembers overloads
<mrdocs/Metadata/Symbol/Enum.hpp>Return the list of enum constants for this symbol.
auto&
allMembers(EnumSymbol const& T);
» more...
View all members of the namespace across tranches.
auto
allMembers(NamespaceSymbol const& T);
» more...
Join all tranche member lists into a single view.
auto
allMembers(NamespaceTranche const& T);
» more...
Access the list of overload members.
auto&
allMembers(OverloadsSymbol const& T);
» more...
Flatten all public/protected/private members.
auto
allMembers(RecordInterface const& T);
» more...
View all record members across access levels.
auto
allMembers(RecordSymbol const& T);
» more...
Join every member list into a single view.
auto
allMembers(RecordTranche const& T);
» more...
Access declarations introduced by this using-declaration.
auto&
allMembers(UsingSymbol const& T);
» more...
Return the list of enum constants for this symbol.
| Name | Description |
|---|---|
| T | Metadata for an enumeration declaration. |
View all members of the namespace across tranches.
<mrdocs/Metadata/Symbol/Namespace.hpp>auto
allMembers(NamespaceSymbol const& T);
| Name | Description |
|---|---|
| T | Describes a namespace and its members. |
Join all tranche member lists into a single view.
<mrdocs/Metadata/Symbol/Namespace.hpp>auto
allMembers(NamespaceTranche const& T);
| Name | Description |
|---|---|
| T | Buckets the members that appear inside a namespace. |
Access the list of overload members.
<mrdocs/Metadata/Symbol/Overloads.hpp>auto&
allMembers(OverloadsSymbol const& T);
| Name | Description |
|---|---|
| T | Represents a set of function overloads. |
Flatten all public/protected/private members.
<mrdocs/Metadata/Symbol/RecordInterface.hpp>auto
allMembers(RecordInterface const& T);
| Name | Description |
|---|---|
| T | The aggregated interface for a given struct, class, or union. |
View all record members across access levels.
| Name | Description |
|---|---|
| T | Metadata for struct, class, or union. |
Join every member list into a single view.
<mrdocs/Metadata/Symbol/RecordTranche.hpp>auto
allMembers(RecordTranche const& T);
| Name | Description |
|---|---|
| T | A group of members that have the same access specifier. |
Access declarations introduced by this using-declaration.
| Name | Description |
|---|---|
| T | Info for using declarations. |
Handler invoked when MRDOCS_ASSERT fails.
<mrdocs/Support/Assert.hpp>void
assert_failed(
char const* msg,
char const* file,
uint_least32_t line);
| Name | Description |
|---|---|
| msg | Expression string that failed. |
| file | Source file where the assertion triggered. |
| line | Line within the source file. |
Traverse a DocComment tree bottom-up (post-order).
<mrdocs/Metadata/DocComment.hpp>template<
DocCommentNodeTraversable T,
class F>
void
bottomUpTraverse(
T& node,
F&& func);
| Name | Description |
|---|---|
| node | Root node to traverse. |
| func | Visitor invoked after children are visited. |
Check whether two symbols may be merged.
<mrdocs/Metadata/Symbol/SymbolBase.hpp>bool
canMerge(
Symbol const& I,
Symbol const& Other);
| Name | Description |
|---|---|
| I | Base class with common properties of all symbols |
| Other | Base class with common properties of all symbols |
cast overloads
<mrdocs/ADT/Polymorphic.hpp>Dynamic cast returning reference; asserts on failure.
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);
» more...
Dynamic cast returning const reference; asserts on failure.
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);
» more...
Dynamic cast returning reference; asserts on failure.
<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);
| Name | Description |
|---|---|
| p | A polymorphic value-type. |
Dynamic cast returning const reference; asserts on failure.
<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);
| Name | Description |
|---|---|
| p | A polymorphic value-type. |
cast_or_null overloads
<mrdocs/ADT/Polymorphic.hpp>Dynamic cast pointer; returns nullptr when pp is null.
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);
» more...
Dynamic cast pointer; returns nullptr when pp is null (const).
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);
» more...
Dynamic cast pointer; returns nullptr when pp is null.
<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);
| Name | Description |
|---|---|
| pp | A polymorphic value-type. |
Dynamic cast pointer; returns nullptr when pp is null (const).
<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);
| Name | Description |
|---|---|
| pp | A polymorphic value-type. |
Return the result of comparing s0 to s1.
<mrdocs/Metadata/Symbol/SymbolID.hpp>std::strong_ordering
compareSymbolNames(
std::string_view symbolName0,
std::string_view symbolName1) noexcept;
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.
| Name | Description |
|---|---|
| symbolName0 | The first symbol name to compare. |
| symbolName1 | The second symbol name to compare. |
Determine if a range contains a specific element.
<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);
» more...
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);
» more...
| Name | Description |
|---|---|
| range | The range to search. |
| el | The element to search for. |
Determine if a range contains a specific element.
<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);
| Name | Description |
|---|---|
| range | The range to search. |
| el | The element to search for. |
Determine if a range contains a specific element.
<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);
| Name | Description |
|---|---|
| range | The range to search. |
| el | The element to search for. |
Determine if a range contains any of the specified elements.
<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);
» more...
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);
» more...
| Name | Description |
|---|---|
| range | The range to search. |
| els | The elements to search for. |
Determine if a range contains any of the specified elements.
<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);
| Name | Description |
|---|---|
| range | The range to search. |
| els | The elements to search for. |
Determine if a range contains any of the specified elements.
<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);
| 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.
<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);
| 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.
<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);
» more...
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);
» more...
| 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.
<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);
| 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.
<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);
| Name | Description |
|---|---|
| range | The range to search. |
| els | The elements to search for. |
| n | The number of instances to search for. |
Count the number of SymbolKind enumerators.
<mrdocs/Metadata/Symbol/SymbolKind.hpp>consteval
std::underlying_type_t<SymbolKind>
countSymbolKind();
SymbolKind values generated from SymbolNodes.inc.
Create child data objects.
<mrdocs/Support/Handlebars.hpp>Create child data objects.
dom::Object
createFrame(dom::Object const& parent);
» more...
dom::Object
createFrame(dom::Value const& parent);
» more...
dom::Object
createFrame(
dom::Object const& child,
dom::Object const& parent);
» more...
| Name | Description |
|---|---|
| parent | The underlying frame object |
https://mustache.github.io/mustache.5.html#Sections
Create child data objects.
<mrdocs/Support/Handlebars.hpp>dom::Object
createFrame(dom::Object const& parent);
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.
| Name | Description |
|---|---|
| parent | The underlying frame object |
https://mustache.github.io/mustache.5.html#Sections
<mrdocs/Support/Handlebars.hpp>dom::Object
createFrame(dom::Value const& parent);
<mrdocs/Support/Handlebars.hpp>dom::Object
createFrame(
dom::Object const& child,
dom::Object const& parent);
dyn_cast overloads
<mrdocs/ADT/Polymorphic.hpp>Dynamic cast returning pointer or nullptr.
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;
» more...
Dynamic cast returning pointer or nullptr (const overload).
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;
» more...
Dynamic cast returning pointer or nullptr.
<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;
| Name | Description |
|---|---|
| p | A polymorphic value-type. |
Dynamic cast returning pointer or nullptr (const overload).
<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;
| Name | Description |
|---|---|
| p | A polymorphic value-type. |
dyn_cast_or_null overloads
<mrdocs/ADT/Polymorphic.hpp>Dynamic cast if pointer is non-null and engaged, else nullptr.
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;
» more...
Dynamic cast if pointer is non-null and engaged, else nullptr (const).
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;
» more...
Dynamic cast if pointer is non-null and engaged, else nullptr.
<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;
| Name | Description |
|---|---|
| pp | A polymorphic value-type. |
Dynamic cast if pointer is non-null and engaged, else nullptr (const).
<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;
| Name | Description |
|---|---|
| pp | A polymorphic value-type. |
Determine if a string ends with one of the specified characters
<mrdocs/Support/String.hpp>constexpr
bool
endsWithOneOf(
std::string_view s,
std::string_view chars) noexcept;
| Name | Description |
|---|---|
| s | The string to check. |
| chars | The characters to check for. |
<mrdocs/Support/Handlebars.hpp>void
escapeExpression(
OutputRef out,
std::string_view str,
HandlebarsOptions const& opt);
Find a generator by its id.
<mrdocs/Generator.hpp>Generator const*
findGenerator(std::string_view id) noexcept;
This function is thread-safe and may be called concurrently from multiple threads.
nullptr if no generator with the given id exists.
| Name | Description |
|---|---|
| id | The symbolic name of the generator. The name must be an exact match, including case. |
Find the last element in a range that matches an element in the specified range.
<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);
| Name | Description |
|---|---|
| range | The range to search. |
| els | The elements to search for. |
forEachFile overloads
<mrdocs/Support/Path.hpp>Call a function for each file in a directory.
Expected<void>
forEachFile(
std::string_view dirPath,
bool recursive,
AnyFileVisitor& visitor);
» more...
Visit each file in a directory.
template<class Visitor>
Expected<void>
forEachFile(
std::string_view dirPath,
bool recursive,
Visitor&& visitor);
» more...
| 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.
<mrdocs/Support/Path.hpp>Expected<void>
forEachFile(
std::string_view dirPath,
bool recursive,
AnyFileVisitor& visitor);
This will iterate all the regular files in a directory and invoke the visitor with the path.
| 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.
<mrdocs/Support/Path.hpp>template<class Visitor>
Expected<void>
forEachFile(
std::string_view dirPath,
bool recursive,
Visitor&& visitor);
| 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.
<mrdocs/Support/Error.hpp>template<class... Args>
Error
formatError(
FormatString<Args...> fs,
Args&&... args);
| 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.
<mrdocs/Metadata/Type/FundamentalTypeKind.hpp>bool
fromString(
std::string_view str,
FundamentalTypeKind& kind) noexcept;
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.
| Name | Description |
|---|---|
| str | The string to convert |
| kind [out] | The resulting FundamentalTypeKind |
Return the default accessibility for a record key kind.
<mrdocs/Metadata/Symbol/Record.hpp>constexpr
std::string_view
getDefaultAccessString(RecordKeyKind const& kind) noexcept;
| Name | Description |
|---|---|
| kind | The kind of record: struct, class, or union. |
Return the short name of an operator as a string.
<mrdocs/Metadata/Specifiers/OperatorKind.hpp>OperatorKind
getOperatorKind(std::string_view name) noexcept;
| Name | Description |
|---|---|
| name | The operator name, e.g. operator+, operator++, operator[], etc. |
Return the short name of an operator as a string.
<mrdocs/Metadata/Specifiers/OperatorKind.hpp>OperatorKind
getOperatorKindFromSuffix(std::string_view suffix) noexcept;
| Name | Description |
|---|---|
| suffix | The operator suffix, e.g. +, ++, [], etc. |
Return the name of an operator as a string.
<mrdocs/Metadata/Specifiers/OperatorKind.hpp>std::string_view
getOperatorName(
OperatorKind kind,
bool include_keyword = false) noexcept;
| 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
<mrdocs/Metadata/Specifiers/OperatorKind.hpp>Optional<std::string_view>
getOperatorReadableName(
OperatorKind kind,
int nParams);
| Name | Description |
|---|---|
| kind | The kind of operator. |
| nParams | The number of parameters the operator takes. |
getParents overloads
<mrdocs/Corpus.hpp>Return a list of the parent symbols of the specified Symbol.
std::vector<SymbolID>
getParents(
Corpus const& C,
Symbol const& I);
» more...
Return a list of the parent symbols of the specified Info.
dom::Array
getParents(
DomCorpus const& C,
Symbol const& I);
» more...
Return a list of the parent symbols of the specified Symbol.
<mrdocs/Corpus.hpp>std::vector<SymbolID>
getParents(
Corpus const& C,
Symbol const& I);
| 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.
<mrdocs/Metadata/DomCorpus.hpp>dom::Array
getParents(
DomCorpus const& C,
Symbol const& I);
| Name | Description |
|---|---|
| C | Front-end factory for producing Dom nodes. |
| I | Base class with common properties of all symbols |
getPrimaryLocation overloads
<mrdocs/Metadata/Symbol/Source.hpp>Determine a location to use when none is explicitly chosen.
Optional<Location>
getPrimaryLocation(Symbol const& I);
» more...
Choose the best location to display for a symbol.
Optional<Location>
getPrimaryLocation(
SourceInfo const& I,
bool preferDefinition);
» more...
| Name | Description |
|---|---|
| I | Source info to examine. |
| preferDefinition | If true, favor a definition location. |
Determine a location to use when none is explicitly chosen.
<mrdocs/Metadata/Symbol/SymbolBase.hpp>Optional<Location>
getPrimaryLocation(Symbol const& I);
| Name | Description |
|---|---|
| I | Base class with common properties of all symbols |
Choose the best location to display for a symbol.
<mrdocs/Metadata/Symbol/Source.hpp>Optional<Location>
getPrimaryLocation(
SourceInfo const& I,
bool preferDefinition);
| Name | Description |
|---|---|
| I | Source info to examine. |
| preferDefinition | If true, favor a definition location. |
Return the safe name of an operator as a string.
<mrdocs/Metadata/Specifiers/OperatorKind.hpp>std::string_view
getSafeOperatorName(
OperatorKind kind,
bool include_keyword = false) noexcept;
| 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.
<mrdocs/Metadata/Specifiers/OperatorKind.hpp>std::string_view
getShortOperatorName(OperatorKind kind) noexcept;
| Name | Description |
|---|---|
| kind | Operator kinds |
Return the full path for single page output.
<mrdocs/Generator.hpp>Expected<std::string>
getSinglePageFullPath(
std::string_view outputPath,
std::string_view extension);
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.
outputPath is ambiguous.
| 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.
<mrdocs/Metadata/Type.hpp>Return the inner type.
Optional<Polymorphic<Type>&>
innerType(Type& TI) noexcept;
» more...
Return the inner type.
Optional<Polymorphic<Type> const&>
innerType(Type const& TI) noexcept;
» more...
Return the inner type.
<mrdocs/Metadata/Type.hpp>Optional<Polymorphic<Type>&>
innerType(Type& TI) noexcept;
The inner type is the type that is modified by a specifier (e.g. "int" in "pointer to int").
| Name | Description |
|---|---|
| TI | A possibly qualified type. |
Return the inner type.
<mrdocs/Metadata/Type.hpp>Optional<Polymorphic<Type> const&>
innerType(Type const& TI) noexcept;
The inner type is the type that is modified by a specifier (e.g. "int" in "pointer to int").
| Name | Description |
|---|---|
| TI | A possibly qualified type. |
Return the inner type.
<mrdocs/Metadata/Type.hpp>Return the inner type.
Type*
innerTypePtr(Type& TI) noexcept;
» more...
Return the inner type.
Type const*
innerTypePtr(Type const& TI) noexcept;
» more...
Return the inner type.
The inner type is the type that is modified by a specifier (e.g. "int" in "pointer to int").
| Name | Description |
|---|---|
| TI | A possibly qualified type. |
Return the inner type.
The inner type is the type that is modified by a specifier (e.g. "int" in "pointer to int").
| Name | Description |
|---|---|
| TI | A possibly qualified type. |
innermostType overloads
<mrdocs/Metadata/Type.hpp>Return the innermost type (mutable overload).
Polymorphic<Type>&
innermostType(Polymorphic<Type>& TI) noexcept;
» more...
Return the innermost type.
Polymorphic<Type> const&
innermostType(Polymorphic<Type> const& TI) noexcept;
» more...
Return the innermost type (mutable overload).
<mrdocs/Metadata/Type.hpp>Polymorphic<Type>&
innermostType(Polymorphic<Type>& TI) noexcept;
| Name | Description |
|---|---|
| TI | A polymorphic value-type. |
Return the innermost type.
<mrdocs/Metadata/Type.hpp>Polymorphic<Type> const&
innermostType(Polymorphic<Type> const& TI) noexcept;
The innermost type is the type which is not modified by any specifiers (e.g. "int" in "pointer to const int").
If the type has an inner type, we recursively call this function until we reach the innermost type. If the type has no inner type, we return the current type.
| Name | Description |
|---|---|
| TI | A polymorphic value-type. |
Install a custom generator.
<mrdocs/Generator.hpp>Expected<void>
installGenerator(std::unique_ptr<Generator> G);
This function registers a generator with the global generator registry, making it available for use.
Plugins can use this function to register custom generators.
This function is thread-safe and may be called concurrently from multiple threads.
| Name | Description |
|---|---|
| G | The generator to install. Ownership is transferred to the registry. |
isAlphaNumeric overloads
<mrdocs/Support/String.hpp>Determine if every character in a string is ASCII alphanumeric.
constexpr
bool
isAlphaNumeric(std::string_view const s) noexcept;
» more...
Determine if a character is ASCII alphanumeric.
constexpr
bool
isAlphaNumeric(char const c) noexcept;
» more...
true if all characters are ASCII letters or digits.true if c is an ASCII letter or digit.| Name | Description |
|---|---|
| s | String to inspect. |
| c | Character to inspect. |
Determine if every character in a string is ASCII alphanumeric.
<mrdocs/Support/String.hpp>constexpr
bool
isAlphaNumeric(std::string_view const s) noexcept;
true if all characters are ASCII letters or digits.
| Name | Description |
|---|---|
| s | String to inspect. |
Determine if a character is ASCII alphanumeric.
<mrdocs/Support/String.hpp>constexpr
bool
isAlphaNumeric(char const c) noexcept;
true if c is an ASCII letter or digit.
| Name | Description |
|---|---|
| c | Character to inspect. |
isAlphabetic overloads
<mrdocs/Support/String.hpp>Determine if every character in a string is an ASCII letter.
constexpr
bool
isAlphabetic(std::string_view const s) noexcept;
» more...
Determine if a character is an ASCII letter.
constexpr
bool
isAlphabetic(char const c) noexcept;
» more...
true if all characters are alphabetic.true if c is in the ranges 'a'-'z' or 'A'-'Z'.| Name | Description |
|---|---|
| s | String to inspect. |
| c | Character to inspect. |
Determine if every character in a string is an ASCII letter.
<mrdocs/Support/String.hpp>constexpr
bool
isAlphabetic(std::string_view const s) noexcept;
true if all characters are alphabetic.
| Name | Description |
|---|---|
| s | String to inspect. |
Determine if a character is an ASCII letter.
<mrdocs/Support/String.hpp>constexpr
bool
isAlphabetic(char const c) noexcept;
true if c is in the ranges 'a'-'z' or 'A'-'Z'.
| Name | Description |
|---|---|
| c | Character to inspect. |
Determines whether the operator is potentially binary.
<mrdocs/Metadata/Specifiers/OperatorKind.hpp>bool
isBinaryOperator(OperatorKind kind) noexcept;
| Name | Description |
|---|---|
| kind | Operator kinds |
isDigit overloads
<mrdocs/Support/String.hpp>Determine if every character in a string is an ASCII digit.
constexpr
bool
isDigit(std::string_view const s) noexcept;
» more...
Determine if a character is an ASCII digit.
constexpr
bool
isDigit(char const c) noexcept;
» more...
true if all characters are digits.true if c is between '0' and '9'.| Name | Description |
|---|---|
| s | String to inspect. |
| c | Character to inspect. |
Determine if every character in a string is an ASCII digit.
<mrdocs/Support/String.hpp>constexpr
bool
isDigit(std::string_view const s) noexcept;
true if all characters are digits.
| Name | Description |
|---|---|
| s | String to inspect. |
Determine if a character is an ASCII digit.
<mrdocs/Support/String.hpp>constexpr
bool
isDigit(char const c) noexcept;
true if c is between '0' and '9'.
| Name | Description |
|---|---|
| c | Character to inspect. |
Determine if a value is empty
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.
| Name | Description |
|---|---|
| arg | The value to test |
https://mustache.github.io/mustache.5.html#Sections
isLowerCase overloads
<mrdocs/Support/String.hpp>Determine if every character in a string is lowercase ASCII.
constexpr
bool
isLowerCase(std::string_view const s) noexcept;
» more...
Determine if a character is a lowercase ASCII letter.
constexpr
bool
isLowerCase(char const c) noexcept;
» more...
true if all characters are lowercase ASCII letters.true if c is in the range 'a' to 'z'.| Name | Description |
|---|---|
| s | String to inspect. |
| c | Character to inspect. |
Determine if every character in a string is lowercase ASCII.
<mrdocs/Support/String.hpp>constexpr
bool
isLowerCase(std::string_view const s) noexcept;
true if all characters are lowercase ASCII letters.
| Name | Description |
|---|---|
| s | String to inspect. |
Determine if a character is a lowercase ASCII letter.
<mrdocs/Support/String.hpp>constexpr
bool
isLowerCase(char const c) noexcept;
true if c is in the range 'a' to 'z'.
| Name | Description |
|---|---|
| c | Character to inspect. |
Determines whether the operator is potentially unary.
<mrdocs/Metadata/Specifiers/OperatorKind.hpp>bool
isUnaryOperator(OperatorKind kind) noexcept;
| Name | Description |
|---|---|
| kind | Operator kinds |
isUpperCase overloads
<mrdocs/Support/String.hpp>Determine if every character in a string is uppercase ASCII.
constexpr
bool
isUpperCase(std::string_view const s) noexcept;
» more...
Determine if a character is an uppercase ASCII letter.
constexpr
bool
isUpperCase(char const c) noexcept;
» more...
true if all characters are uppercase ASCII letters.true if c is in the range 'A' to 'Z'.| Name | Description |
|---|---|
| s | String to inspect. |
| c | Character to inspect. |
Determine if every character in a string is uppercase ASCII.
<mrdocs/Support/String.hpp>constexpr
bool
isUpperCase(std::string_view const s) noexcept;
true if all characters are uppercase ASCII letters.
| Name | Description |
|---|---|
| s | String to inspect. |
Determine if a character is an uppercase ASCII letter.
<mrdocs/Support/String.hpp>constexpr
bool
isUpperCase(char const c) noexcept;
true if c is in the range 'A' to 'Z'.
| Name | Description |
|---|---|
| c | Character to inspect. |
isWhitespace overloads
<mrdocs/Support/String.hpp>Determine if a string is only whitespace.
constexpr
bool
isWhitespace(std::string_view s) noexcept;
» more...
Determine if a character is whitespace.
constexpr
bool
isWhitespace(char c) noexcept;
» more...
true if c is a horizontal or vertical whitespace character.| Name | Description |
|---|---|
| s | The string to check. |
| c | Character to inspect. |
Determine if a string is only whitespace.
<mrdocs/Support/String.hpp>constexpr
bool
isWhitespace(std::string_view s) noexcept;
| Name | Description |
|---|---|
| s | The string to check. |
Determine if a character is whitespace.
<mrdocs/Support/String.hpp>constexpr
bool
isWhitespace(char c) noexcept;
true if c is a horizontal or vertical whitespace character.
| Name | Description |
|---|---|
| c | Character to inspect. |
is_null helper that uses nullable_traits<T> if available.
<mrdocs/ADT/Nullable.hpp>template<has_nullable_traits_v T>
bool
is_null(T const& v) noexcept(noexcept(nullable_traits<T>::is_null(v)));
| Name | Description |
|---|---|
| v | The value to test for null. |
Determine if an element is equal to any of the elements in the specified range.
<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);
» more...
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);
» more...
| 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.
<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);
| 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.
<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);
| Name | Description |
|---|---|
| el | The element to search for. |
| range | The range to search. |
Return true if the polymorphic object holds a value of type To.
<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;
| Name | Description |
|---|---|
| p | A polymorphic value-type. |
Return true if pointer is non-null and referent is of type To.
<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;
| Name | Description |
|---|---|
| pp | A polymorphic value-type. |
Compare ExtractionModes and returns the least specific
<mrdocs/Metadata/Symbol/ExtractionMode.hpp>constexpr
ExtractionMode
leastSpecific(
ExtractionMode const a,
ExtractionMode const b) noexcept;
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.
| Name | Description |
|---|---|
| a | Determine why a symbol is extracted |
| b | Determine why a symbol is extracted |
ltrim overloads
<mrdocs/Support/String.hpp>Return the substring without leading horizontal whitespace.
constexpr
std::string_view
ltrim(std::string_view const s) noexcept;
» more...
Return the substring without leading specified characters.
constexpr
std::string_view
ltrim(
std::string_view const s,
std::string_view const chars) noexcept;
» more...
| Name | Description |
|---|---|
| s | The string to trim. |
| chars | The characters to remove. |
Return the substring without leading horizontal whitespace.
<mrdocs/Support/String.hpp>constexpr
std::string_view
ltrim(std::string_view const s) noexcept;
| Name | Description |
|---|---|
| s | The string to trim. |
Return the substring without leading specified characters.
<mrdocs/Support/String.hpp>constexpr
std::string_view
ltrim(
std::string_view const s,
std::string_view const chars) noexcept;
| Name | Description |
|---|---|
| s | The string to trim. |
| chars | The characters to remove. |
Apply the "char" specifier to the type
<mrdocs/Metadata/Type/FundamentalTypeKind.hpp>bool
makeChar(FundamentalTypeKind& kind) noexcept;
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").
| Name | Description |
|---|---|
| kind [in] | The type to modify |
Apply the "long" specifier to the type
<mrdocs/Metadata/Type/FundamentalTypeKind.hpp>bool
makeLong(FundamentalTypeKind& kind) noexcept;
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").
| Name | Description |
|---|---|
| kind [in] | The type to modify |
Factory function that creates an Overload from the given callables.
<mrdocs/ADT/Overload.hpp>template<class... Ts>
[[nodiscard]]
constexpr
Overload<std::decay_t<Ts>...>
makeOverload(Ts&&... xs) noexcept((std::is_nothrow_constructible_v<std::decay_t<Ts>, Ts &&> && ...));
Prefer this over constructing Overload directly when you need perfect forwarding and decayed storage.
auto visitor = fn::makeOverload(
[](int) { return 1; },
[](double) { return 2; }
);
| Name | Description |
|---|---|
| xs | The callables to combine. |
Apply the "short" specifier to the type
<mrdocs/Metadata/Type/FundamentalTypeKind.hpp>bool
makeShort(FundamentalTypeKind& kind) noexcept;
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").
| Name | Description |
|---|---|
| kind [in] | The type to modify |
Apply the "signed" specifier to the type
<mrdocs/Metadata/Type/FundamentalTypeKind.hpp>bool
makeSigned(FundamentalTypeKind& kind) noexcept;
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.
| Name | Description |
|---|---|
| kind [in] | The type to modify |
Apply the "unsigned" specifier to the type
<mrdocs/Metadata/Type/FundamentalTypeKind.hpp>bool
makeUnsigned(FundamentalTypeKind& kind) noexcept;
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").
| Name | Description |
|---|---|
| kind [in] | The type to modify |
Make a visitor for a base type
<mrdocs/Support/Visitor.hpp>template<
typename BaseTy,
typename ObjectTy,
typename FnTy,
typename... ArgsTy>
auto
makeVisitor(
ObjectTy&& obj,
FnTy&& fn,
ArgsTy&&... args);
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.
fn when called with a derived type of obj and args
| Name | Description |
|---|---|
| obj | The object to visit |
| fn | The function object to call |
| args | The arguments to pass to the function object |
make_array_view overloads
<mrdocs/ADT/ArrayView.hpp>Create an ArrayView from a C-style array.
template<
class T,
std::size_t N>
constexpr
ArrayView<T>
make_array_view(T const(& arr)[]) noexcept;
» more...
Create an ArrayView from a pointer and count.
template<class T>
constexpr
ArrayView<T>
make_array_view(
T const* data,
std::size_t count) noexcept;
» more...
| Name | Description |
|---|---|
| arr | Array to view. |
| data | Pointer to the first element. |
| count | Number of elements. |
Create an ArrayView from a C-style array.
<mrdocs/ADT/ArrayView.hpp>template<
class T,
std::size_t N>
constexpr
ArrayView<T>
make_array_view(T const(& arr)[]) noexcept;
| Name | Description |
|---|---|
| arr | Array to view. |
Create an ArrayView from a pointer and count.
<mrdocs/ADT/ArrayView.hpp>template<class T>
constexpr
ArrayView<T>
make_array_view(
T const* data,
std::size_t count) noexcept;
| Name | Description |
|---|---|
| data | Pointer to the first element. |
| count | Number of elements. |
make_null helper that uses nullable_traits<T> if available.
<mrdocs/ADT/Nullable.hpp>template<has_nullable_traits_v T>
void
make_null(T& v) noexcept(noexcept(nullable_traits<T>::make_null(v)));
| Name | Description |
|---|---|
| v | The value to make null. |
Applies a set of callables to a std::variant using std::visit and Overload.
<mrdocs/ADT/Overload.hpp>template<
class Variant,
class... Ts>
constexpr
decltype(auto)
match(
Variant&& v,
Ts&&... xs);
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(); }
);
| 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
<mrdocs/Metadata/Expression.hpp>Merge another ConceptSymbol into this one.
void
merge(
ConceptSymbol& I,
ConceptSymbol&& Other);
» more...
Append blocks from other into I, preserving order.
void
merge(
DocComment& I,
DocComment&& other);
» more...
Merge another EnumConstantSymbol into this one.
void
merge(
EnumConstantSymbol& I,
EnumConstantSymbol&& Other);
» more...
Merge another EnumSymbol into this one.
void
merge(
EnumSymbol& I,
EnumSymbol&& Other);
» more...
Merge metadata from another expression.
void
merge(
ExprInfo& I,
ExprInfo&& Other);
» more...
Merge another FriendInfo into this one.
void
merge(
FriendInfo& I,
FriendInfo&& Other);
» more...
Merge metadata from another function symbol.
void
merge(
FunctionSymbol& I,
FunctionSymbol&& Other);
» more...
Merge another GuideSymbol into this one.
void
merge(
GuideSymbol& I,
GuideSymbol&& Other);
» more...
Merge two alias symbols, preferring existing fields when present.
void
merge(
NamespaceAliasSymbol& I,
NamespaceAliasSymbol&& Other);
» more...
Merge two namespaces, keeping existing members stable.
void
merge(
NamespaceSymbol& I,
NamespaceSymbol&& Other);
» more...
Merge two tranches, appending members from the right-hand side.
void
merge(
NamespaceTranche& I,
NamespaceTranche&& Other);
» more...
Merge overload sets, preserving ordering in Members.
void
merge(
OverloadsSymbol& I,
OverloadsSymbol&& Other);
» more...
Merge two parameters, filling missing pieces from Other.
void
merge(
Param& I,
Param&& Other);
» more...
Merge two interfaces, combining matching tranches.
void
merge(
RecordInterface& I,
RecordInterface&& Other);
» more...
Merge metadata from another record of the same identity.
void
merge(
RecordSymbol& I,
RecordSymbol&& Other);
» more...
Merge two tranches with the same access level.
void
merge(
RecordTranche& I,
RecordTranche&& Other);
» more...
Merge the location sets, preferring existing def/primary.
void
merge(
SourceInfo& I,
SourceInfo const& Other);
» more...
Merge, transferring ownership from the right-hand side.
void
merge(
SourceInfo& I,
SourceInfo&& Other);
» more...
Merges two Symbol objects.
void
merge(
Symbol& I,
Symbol&& Other);
» more...
Merge partial template info, filling missing pieces.
void
merge(
TemplateInfo& I,
TemplateInfo&& Other);
» more...
Merge typedef symbols, keeping existing info when present.
void
merge(
TypedefSymbol& I,
TypedefSymbol&& Other);
» more...
Merge two using-declarations with the same identity.
void
merge(
UsingSymbol& I,
UsingSymbol&& Other);
» more...
Merge variable metadata, preserving existing values when set.
void
merge(
VariableSymbol& I,
VariableSymbol&& Other);
» more...
Merges two Symbol objects according to the behavior of the derived class.
template<polymorphic_storage_for<Symbol> SymbolTy>
void
merge(
SymbolTy& I,
SymbolTy&& Other);
» more...
Merge metadata from another constant expression.
template<class T>
static
void
merge(
ConstantExprInfo<T>& I,
ConstantExprInfo<T>&& Other);
» more...
| Name | Description |
|---|---|
| I | Destination symbol to update. |
| Other | Source symbol providing data. |
Merge another ConceptSymbol into this one.
<mrdocs/Metadata/Symbol/Concept.hpp>void
merge(
ConceptSymbol& I,
ConceptSymbol&& Other);
| Name | Description |
|---|---|
| I | Info for concepts. |
| Other | Info for concepts. |
Append blocks from other into I, preserving order.
<mrdocs/Metadata/DocComment.hpp>void
merge(
DocComment& I,
DocComment&& other);
| Name | Description |
|---|---|
| I | A processed documentation comment attached to a declaration. |
| other | A processed documentation comment attached to a declaration. |
Merge another EnumConstantSymbol into this one.
<mrdocs/Metadata/Symbol/EnumConstant.hpp>void
merge(
EnumConstantSymbol& I,
EnumConstantSymbol&& Other);
| Name | Description |
|---|---|
| I | Destination symbol to update. |
| Other | Source symbol providing data. |
Merge another EnumSymbol into this one.
<mrdocs/Metadata/Symbol/Enum.hpp>void
merge(
EnumSymbol& I,
EnumSymbol&& Other);
| Name | Description |
|---|---|
| I | Destination symbol to update. |
| Other | Source symbol providing data. |
Merge metadata from another expression.
| Name | Description |
|---|---|
| I | Represents an expression |
| Other | Represents an expression |
Merge another FriendInfo into this one.
<mrdocs/Metadata/Symbol/Friend.hpp>void
merge(
FriendInfo& I,
FriendInfo&& Other);
| Name | Description |
|---|---|
| I | Info for friend declarations. |
| Other | Info for friend declarations. |
Merge metadata from another function symbol.
<mrdocs/Metadata/Symbol/Function.hpp>void
merge(
FunctionSymbol& I,
FunctionSymbol&& Other);
| Name | Description |
|---|---|
| I | Destination symbol to update. |
| Other | Source symbol providing additional data. |
Merge another GuideSymbol into this one.
<mrdocs/Metadata/Symbol/Guide.hpp>void
merge(
GuideSymbol& I,
GuideSymbol&& Other);
| Name | Description |
|---|---|
| I | Destination symbol to update. |
| Other | Source symbol providing data. |
Merge two alias symbols, preferring existing fields when present.
<mrdocs/Metadata/Symbol/NamespaceAlias.hpp>void
merge(
NamespaceAliasSymbol& I,
NamespaceAliasSymbol&& Other);
| Name | Description |
|---|---|
| I | Info for namespace aliases. |
| Other | Info for namespace aliases. |
Merge two namespaces, keeping existing members stable.
<mrdocs/Metadata/Symbol/Namespace.hpp>void
merge(
NamespaceSymbol& I,
NamespaceSymbol&& Other);
| Name | Description |
|---|---|
| I | Describes a namespace and its members. |
| Other | Describes a namespace and its members. |
Merge two tranches, appending members from the right-hand side.
<mrdocs/Metadata/Symbol/Namespace.hpp>void
merge(
NamespaceTranche& I,
NamespaceTranche&& Other);
| Name | Description |
|---|---|
| I | Buckets the members that appear inside a namespace. |
| Other | Buckets the members that appear inside a namespace. |
Merge overload sets, preserving ordering in Members.
<mrdocs/Metadata/Symbol/Overloads.hpp>void
merge(
OverloadsSymbol& I,
OverloadsSymbol&& Other);
| Name | Description |
|---|---|
| I | Represents a set of function overloads. |
| Other | Represents a set of function overloads. |
Merge two parameters, filling missing pieces from Other.
| Name | Description |
|---|---|
| I | Represents a single function parameter |
| Other | Represents a single function parameter |
Merge two interfaces, combining matching tranches.
<mrdocs/Metadata/Symbol/RecordInterface.hpp>void
merge(
RecordInterface& I,
RecordInterface&& Other);
| Name | Description |
|---|---|
| I | The aggregated interface for a given struct, class, or union. |
| Other | The aggregated interface for a given struct, class, or union. |
Merge metadata from another record of the same identity.
<mrdocs/Metadata/Symbol/Record.hpp>void
merge(
RecordSymbol& I,
RecordSymbol&& Other);
| Name | Description |
|---|---|
| I | Metadata for struct, class, or union. |
| Other | Metadata for struct, class, or union. |
Merge two tranches with the same access level.
<mrdocs/Metadata/Symbol/RecordTranche.hpp>void
merge(
RecordTranche& I,
RecordTranche&& Other);
| Name | Description |
|---|---|
| I | A group of members that have the same access specifier. |
| Other | A group of members that have the same access specifier. |
Merge the location sets, preferring existing def/primary.
<mrdocs/Metadata/Symbol/Source.hpp>void
merge(
SourceInfo& I,
SourceInfo const& Other);
| Name | Description |
|---|---|
| I | Stores source information for a declaration. |
| Other | Stores source information for a declaration. |
Merge, transferring ownership from the right-hand side.
<mrdocs/Metadata/Symbol/Source.hpp>void
merge(
SourceInfo& I,
SourceInfo&& Other);
| Name | Description |
|---|---|
| I | Stores source information for a declaration. |
| Other | Stores source information for a declaration. |
Merges two Symbol objects.
<mrdocs/Metadata/Symbol/SymbolBase.hpp>void
merge(
Symbol& I,
Symbol&& Other);
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.
| Name | Description |
|---|---|
| I | The Symbol object to merge into. |
| Other | The Symbol object to merge from. |
Merge partial template info, filling missing pieces.
<mrdocs/Metadata/Template.hpp>void
merge(
TemplateInfo& I,
TemplateInfo&& Other);
| Name | Description |
|---|---|
| I | Information about templates and specializations thereof. |
| Other | Information about templates and specializations thereof. |
Merge typedef symbols, keeping existing info when present.
<mrdocs/Metadata/Symbol/Typedef.hpp>void
merge(
TypedefSymbol& I,
TypedefSymbol&& Other);
| Name | Description |
|---|---|
| I | Info for typedef and using declarations. |
| Other | Info for typedef and using declarations. |
Merge two using-declarations with the same identity.
<mrdocs/Metadata/Symbol/Using.hpp>void
merge(
UsingSymbol& I,
UsingSymbol&& Other);
| Name | Description |
|---|---|
| I | Info for using declarations. |
| Other | Info for using declarations. |
Merge variable metadata, preserving existing values when set.
<mrdocs/Metadata/Symbol/Variable.hpp>void
merge(
VariableSymbol& I,
VariableSymbol&& Other);
| Name | Description |
|---|---|
| I | A variable. |
| Other | A variable. |
Merges two Symbol objects according to the behavior of the derived class.
<mrdocs/Metadata/Symbol.hpp>template<polymorphic_storage_for<Symbol> SymbolTy>
void
merge(
SymbolTy& I,
SymbolTy&& Other);
| Name | Description |
|---|---|
| I | The Symbol object to merge into. |
| Other | The Symbol object to merge from. |
Merge metadata from another constant expression.
<mrdocs/Metadata/Expression.hpp>template<class T>
static
void
merge(
ConstantExprInfo<T>& I,
ConstantExprInfo<T>&& Other);
| Name | Description |
|---|---|
| I | Represents an expression with a (possibly known) value |
| Other | Represents an expression with a (possibly known) value |
Compare ExtractionModes and returns the most specific
<mrdocs/Metadata/Symbol/ExtractionMode.hpp>constexpr
ExtractionMode
mostSpecific(
ExtractionMode const a,
ExtractionMode const b) noexcept;
This function returns the most specific of the two ExtractionModes in terms of number of filters passed.
| 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>.
<mrdocs/ADT/Nullable.hpp>template<has_nullable_traits_v T>
T
null_of() noexcept(noexcept(nullable_traits<T>::null()));
Pipe a contiguous character range into the adaptor.
<mrdocs/Support/SplitLines.hpp>constexpr
auto
operator|(
R&& r,
SplitLinesAdaptor const& a);
r.
| Name | Description |
|---|---|
| r | Range to split. |
| a | SplitLines adaptor instance. |
Determine if one function would override the other
<mrdocs/Metadata/Symbol/Function.hpp>bool
overrides(
FunctionSymbol const& base,
FunctionSymbol const& derived);
| Name | Description |
|---|---|
| base | The base function |
| derived | The derived function |
Parse a string view
<mrdocs/Support/Parse.hpp>Parse a string view
template<HasParse T>
Expected<T>
parse(std::string_view sv);
» more...
Parse a string view
template<HasParse T>
ParseResult
parse(
std::string_view sv,
T& value);
» more...
| Name | Description |
|---|---|
| sv | The string view to parse |
| value | The value to store the result |
Parse a string view
<mrdocs/Support/Parse.hpp>template<HasParse T>
Expected<T>
parse(std::string_view sv);
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.
| Name | Description |
|---|---|
| sv | The string view to parse |
Parse a string view
<mrdocs/Support/Parse.hpp>template<HasParse T>
ParseResult
parse(
std::string_view sv,
T& value);
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.
| 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.
<mrdocs/Support/String.hpp>std::string
reindentCode(
std::string_view code,
std::size_t indent = 0);
| Name | Description |
|---|---|
| code | The code block to unindent. |
| indent | The number of spaces to insert in front of each line after trimming. |
Return the substring without leading and trailing horizontal whitespace.
<mrdocs/Support/String.hpp>void
replace(
std::string& s,
std::string_view from,
std::string_view to);
| 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
<mrdocs/Support/String.hpp>Return the substring without trailing horizontal whitespace.
constexpr
std::string_view
rtrim(std::string_view const s) noexcept;
» more...
Return the substring without trailing specified characters.
constexpr
std::string_view
rtrim(
std::string_view const s,
std::string_view const chars) noexcept;
» more...
| Name | Description |
|---|---|
| s | The string to trim. |
| chars | The characters to remove. |
Return the substring without trailing horizontal whitespace.
<mrdocs/Support/String.hpp>constexpr
std::string_view
rtrim(std::string_view const s) noexcept;
| Name | Description |
|---|---|
| s | The string to trim. |
Return the substring without trailing specified characters.
<mrdocs/Support/String.hpp>constexpr
std::string_view
rtrim(
std::string_view const s,
std::string_view const chars) noexcept;
| Name | Description |
|---|---|
| s | The string to trim. |
| chars | The characters to remove. |
safeString overloads
<mrdocs/Dom/Value.hpp>Create a wrapper for a safe string.
dom::Value
safeString(std::string_view str);
» more...
Mark an existing string-like value as safe to emit without escaping.
dom::Value
safeString(dom::Value const& str);
» more...
Return a DOM string ensuring special characters are escaped.
template<std::convertible_to<std::string_view> SV>
dom::Value
safeString(SV const& str);
» more...
| Name | Description |
|---|---|
| str | The string to mark as safe |
https://handlebarsjs.com/api-reference/utilities.html#handlebars-safestring-string
Create a wrapper for a safe string.
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.
| Name | Description |
|---|---|
| str | The string to mark as safe |
https://handlebarsjs.com/api-reference/utilities.html#handlebars-safestring-string
Mark an existing string-like value as safe to emit without escaping.
This overload is useful when a helper already produced a dom::Value and only needs to flip the safe-string flag before it is rendered.
| Name | Description |
|---|---|
| str | A variant container for any kind of Dom value. |
Return a DOM string ensuring special characters are escaped.
<mrdocs/Dom/Value.hpp>template<std::convertible_to<std::string_view> SV>
dom::Value
safeString(SV const& str);
| Name | Description |
|---|---|
| str | Source string view convertible type. |
Determine if a string starts with one of the specified characters
<mrdocs/Support/String.hpp>constexpr
bool
startsWithOneOf(
std::string_view s,
std::string_view chars) noexcept;
| Name | Description |
|---|---|
| s | The string to check. |
| chars | The characters to check for. |
swap overloads
<mrdocs/ADT/Optional.hpp>constexpr
void
swap(
Error& lhs,
Error& rhs) noexcept;
» more...
constexpr
void
swap(
Expected& a,
Expected& b) noexcept(noexcept(a.swap(b)))
requires requires { a.swap(b); };
» more...
Swap contents with another Expected.
constexpr
void
swap(
Expected& x,
Expected& y) noexcept(noexcept(x.swap(y)))
requires requires {x.swap(y);};
» more...
constexpr
void
swap(
Polymorphic& lhs,
Polymorphic& rhs) noexcept;
» more...
constexpr
void
swap(
Unexpected& x,
Unexpected& y) noexcept(noexcept(x.swap(y)))
requires std::is_swappable_v<E>;
» more...
Swap two Optional references.
template<class T>
constexpr
void
swap(
Optional<T&>& a,
Optional<T&>& b) noexcept;
» more...
| Name | Description |
|---|---|
| a | First optional reference. |
| b | Second optional reference. |
<mrdocs/Support/Error.hpp>constexpr
void
swap(
Error& lhs,
Error& rhs) noexcept;
<mrdocs/Support/Expected.hpp>constexpr
void
swap(
Expected& a,
Expected& b) noexcept(noexcept(a.swap(b)))
requires requires { a.swap(b); };
Swap contents with another Expected.
<mrdocs/Support/Expected.hpp>constexpr
void
swap(
Expected& x,
Expected& y) noexcept(noexcept(x.swap(y)))
requires requires {x.swap(y);};
| Name | Description |
|---|---|
| x | A container holding an error or a value. |
| y | A container holding an error or a value. |
<mrdocs/ADT/Polymorphic.hpp>constexpr
void
swap(
Polymorphic& lhs,
Polymorphic& rhs) noexcept;
<mrdocs/Support/Expected.hpp>constexpr
void
swap(
Unexpected& x,
Unexpected& y) noexcept(noexcept(x.swap(y)))
requires std::is_swappable_v<E>;
Swap two Optional references.
<mrdocs/ADT/Optional.hpp>template<class T>
constexpr
void
swap(
Optional<T&>& a,
Optional<T&>& b) noexcept;
| Name | Description |
|---|---|
| a | First optional reference. |
| b | Second optional reference. |
tag_invoke overloads
<mrdocs/Metadata/Name/NameBase.hpp>Serialize the auto kind into a DOM value.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
AutoKind kind);
» more...
Return the SymbolKind from a dom::Value string.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
ExtractionMode kind);
» more...
Map a FileKind into a DOM value.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
FileKind kind);
» more...
Map an operator kind to a DOM value (its underlying integer).
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
OperatorKind kind);
» more...
Map a QualifierKind into a DOM value.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
QualifierKind kind);
» more...
Serialize the record key kind into a DOM value.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
RecordKeyKind kind);
» more...
Return the ReferenceKind as a dom::Value string.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
ReferenceKind kind);
» more...
Serialize a template-argument kind into a DOM value.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
TArgKind kind);
» more...
Serialize the keyword kind into a DOM value.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
TParamKeyKind kind);
» more...
Map a TypeKind into a DOM value.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
TypeKind kind);
» more...
Return the UsingClass as a dom::Value string.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
UsingClass kind);
» more...
Return the AccessKind as a dom::Value string.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
AccessKind const kind);
» more...
Return the ConstexprKind as a dom::Value string.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
ConstexprKind const kind);
» more...
Return the FunctionClass from a dom::Value string.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
FunctionClass const kind);
» more...
Serialize a list kind into a DOM value.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
ListKind const kind);
» more...
Map a NameKind into a DOM value.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
NameKind const kind);
» more...
Return the StorageClassKind as a dom::Value string.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
StorageClassKind const kind);
» more...
Return the SymbolKind from a dom::Value string.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
SymbolKind const kind);
» more...
Serialize an alignment enum into a DOM value.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
TableAlignmentKind const kind);
» more...
Return the ExplicitInfo as a dom::Value string.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
ExplicitInfo const& I);
» more...
Serialize a location into a DOM value.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
Location const& loc);
» more...
Serialize source locations into a DOM value.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
SourceInfo const& I);
» more...
Convert SymbolID to dom::Value string in the DOM using toBase16
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
SymbolID const& id);
» more...
Convert a NoexceptInfo to a DOM value.
void
tag_invoke(
dom::ValueFromTag tag,
dom::Value& v,
NoexceptInfo const& info);
» more...
Serialize a base description into a DOM value.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
BaseInfo const& I,
DomCorpus const* domCorpus);
» more...
Map the ConceptSymbol to a dom::Value object.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
ConceptSymbol const& I,
DomCorpus const* domCorpus);
» more...
Return the DocComment as a dom::Value object.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
DocComment const& I,
DomCorpus const* domCorpus);
» more...
Map the EnumConstantSymbol to a dom::Value object.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
EnumConstantSymbol const& I,
DomCorpus const* domCorpus);
» more...
Map the EnumSymbol to a dom::Value object.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
EnumSymbol const& I,
DomCorpus const* domCorpus);
» more...
Map the FriendInfo to a dom::Value object.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
FriendInfo const& I,
DomCorpus const* domCorpus);
» more...
Map the FunctionSymbol to a dom::Value object.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
FunctionSymbol const& I,
DomCorpus const* domCorpus);
» more...
Map the GuideSymbol to a dom::Value object.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
GuideSymbol const& I,
DomCorpus const* domCorpus);
» more...
Serialize a name into a DOM value.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
Name const& I,
DomCorpus const* domCorpus);
» more...
Map the NamespaceAliasSymbol to a dom::Value object.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
NamespaceAliasSymbol const& I,
DomCorpus const* domCorpus);
» more...
Map the NamespaceSymbol to a dom::Value object.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
NamespaceSymbol const& I,
DomCorpus const* domCorpus);
» more...
Map the NamespaceTranche to a dom::Value object.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
NamespaceTranche const& I,
DomCorpus const* domCorpus);
» more...
Map the OverloadsSymbol to a dom::Value object.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
OverloadsSymbol const& I,
DomCorpus const* domCorpus);
» more...
Return the Param as a dom::Value object.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
Param const& p,
DomCorpus const* domCorpus);
» more...
Map the RecordInterface to a dom::Value object.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
RecordInterface const& I,
DomCorpus const* domCorpus);
» more...
Map the RecordSymbol to a dom::Value object.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
RecordSymbol const& I,
DomCorpus const* domCorpus);
» more...
Map the RecordTranche to a dom::Value object.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
RecordTranche const& I,
DomCorpus const* domCorpus);
» more...
Return the Symbol as a dom::Value object.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
Symbol const& I,
DomCorpus const* domCorpus);
» more...
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);
» more...
Serialize the argument to a DOM value.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
TArg const& I,
DomCorpus const* domCorpus);
» more...
Serialize a template parameter into a DOM value.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
TParam const& I,
DomCorpus const* domCorpus);
» more...
Serialize template info into a DOM value.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
TemplateInfo const& I,
DomCorpus const* domCorpus);
» more...
Serialize a Type into a DOM value.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
Type const& I,
DomCorpus const* domCorpus);
» more...
Map the TypedefSymbol to a dom::Value object.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
TypedefSymbol const& I,
DomCorpus const* domCorpus);
» more...
Map the UsingSymbol to a dom::Value object.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
UsingSymbol const& I,
DomCorpus const* domCorpus);
» more...
Map the VariableSymbol to a dom::Value object.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
VariableSymbol const& I,
DomCorpus const* domCorpus);
» more...
Serialize an optional template info into a DOM value.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
Optional<TemplateInfo> const& I,
DomCorpus const* domCorpus);
» more...
Serialize an optional polymorphic name into a DOM value.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
Optional<Polymorphic<Name>> const& I,
DomCorpus const* domCorpus);
» more...
Serialize an optional polymorphic type into a DOM value.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
Optional<Polymorphic<Type>> const& I,
DomCorpus const* domCorpus);
» more...
Serialize a polymorphic name into a DOM value.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
Polymorphic<Name> const& I,
DomCorpus const* domCorpus);
» more...
Serialize a polymorphic template argument into a DOM value.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
Polymorphic<TArg> const& I,
DomCorpus const* domCorpus);
» more...
Serialize a polymorphic template parameter.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
Polymorphic<TParam> const& I,
DomCorpus const* domCorpus);
» more...
Serialize a polymorphic type into a DOM value.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
Polymorphic<Type> const& I,
DomCorpus const* domCorpus);
» more...
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);
» more...
Map the DocComment to a dom::Object.
template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag,
IO& io,
DocComment const& I,
DomCorpus const* domCorpus);
» more...
Map a NamespaceTranche to a dom::Object.
template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag,
IO& io,
NamespaceTranche const& I,
DomCorpus const* domCorpus);
» more...
Map a RecordInterface to a dom::Object.
template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag,
IO& io,
RecordInterface const& I,
DomCorpus const*);
» more...
Map a RecordTranche to a dom::Object.
template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag,
IO& io,
RecordTranche const& I,
DomCorpus const* domCorpus);
» more...
Map the Symbol to a dom::Object.
template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag,
IO& io,
Symbol const& I,
DomCorpus const* domCorpus);
» more...
Map a ConceptSymbol to a dom::Object.
template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
ConceptSymbol const& I,
DomCorpus const* domCorpus);
» more...
Map a EnumConstantSymbol to a dom::Object.
template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
EnumConstantSymbol const& I,
DomCorpus const* domCorpus);
» more...
Map a EnumSymbol to a dom::Object.
template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
EnumSymbol const& I,
DomCorpus const* domCorpus);
» more...
Map a FriendInfo to a dom::Object.
template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
FriendInfo const& I,
DomCorpus const* domCorpus);
» more...
Map a FunctionSymbol to a dom::Object.
template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
FunctionSymbol const& I,
DomCorpus const* domCorpus);
» more...
Map a GuideSymbol to a dom::Object.
template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
GuideSymbol const& I,
DomCorpus const* domCorpus);
» more...
Map a NamespaceAliasSymbol to a dom::Object.
template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
NamespaceAliasSymbol const& I,
DomCorpus const* domCorpus);
» more...
Map a NamespaceSymbol to a dom::Object.
template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
NamespaceSymbol const& I,
DomCorpus const* domCorpus);
» more...
Map a OverloadsSymbol to a dom::Object.
template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
OverloadsSymbol const& I,
DomCorpus const* domCorpus);
» more...
Map a RecordSymbol to a dom::Object.
template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
RecordSymbol const& I,
DomCorpus const* domCorpus);
» more...
Map a TypedefSymbol to a dom::Object.
template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
TypedefSymbol const& I,
DomCorpus const* domCorpus);
» more...
Map a UsingSymbol to a dom::Object.
template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
UsingSymbol const& I,
DomCorpus const* domCorpus);
» more...
Map a VariableSymbol to a dom::Object.
template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
VariableSymbol const& I,
DomCorpus const* domCorpus);
» more...
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);
» more...
| Name | Description |
|---|---|
| v | Destination value to populate. |
| kind | File category to serialize. |
| 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. |
Serialize the auto kind into a DOM value.
<mrdocs/Metadata/Type/AutoKind.hpp>void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
AutoKind kind);
| Name | Description |
|---|---|
| v | A variant container for any kind of Dom value. |
| kind | The kind of auto keyword used in a declaration. |
Return the SymbolKind from a dom::Value string.
<mrdocs/Metadata/Symbol/ExtractionMode.hpp>void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
ExtractionMode kind);
| Name | Description |
|---|---|
| v | A variant container for any kind of Dom value. |
| kind | Determine why a symbol is extracted |
Map a FileKind into a DOM value.
<mrdocs/Metadata/Symbol/FileKind.hpp>void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
FileKind kind);
| Name | Description |
|---|---|
| v | Destination value to populate. |
| kind | File category to serialize. |
Map an operator kind to a DOM value (its underlying integer).
<mrdocs/Metadata/Specifiers/OperatorKind.hpp>void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
OperatorKind kind);
| Name | Description |
|---|---|
| v | A variant container for any kind of Dom value. |
| kind | Operator kinds |
Map a QualifierKind into a DOM value.
<mrdocs/Metadata/Type/QualifierKind.hpp>void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
QualifierKind kind);
| Name | Description |
|---|---|
| v | A variant container for any kind of Dom value. |
| kind | Type qualifiers |
Serialize the record key kind into a DOM value.
<mrdocs/Metadata/Symbol/RecordKeyKind.hpp>void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
RecordKeyKind kind);
| Name | Description |
|---|---|
| v | A variant container for any kind of Dom value. |
| kind | The kind of record: struct, class, or union. |
Return the ReferenceKind as a dom::Value string.
<mrdocs/Metadata/Specifiers/ReferenceKind.hpp>void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
ReferenceKind kind);
| Name | Description |
|---|---|
| v | A variant container for any kind of Dom value. |
| kind | Reference type kinds |
Serialize a template-argument kind into a DOM value.
<mrdocs/Metadata/TArg/TArgKind.hpp>void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
TArgKind kind);
| Name | Description |
|---|---|
| v | A variant container for any kind of Dom value. |
| kind | The kind of template argument. |
Serialize the keyword kind into a DOM value.
<mrdocs/Metadata/TParam/TParamKeyKind.hpp>void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
TParamKeyKind kind);
| Name | Description |
|---|---|
| v | A variant container for any kind of Dom value. |
| kind | The keyword a template parameter was declared with |
Map a TypeKind into a DOM value.
<mrdocs/Metadata/Type/TypeKind.hpp>void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
TypeKind kind);
| Name | Description |
|---|---|
| v | A variant container for any kind of Dom value. |
| kind | Variants of C++ types captured in metadata. |
Return the UsingClass as a dom::Value string.
<mrdocs/Metadata/Symbol/Using.hpp>void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
UsingClass kind);
| Name | Description |
|---|---|
| v | The output value. |
| kind | The UsingClass to convert. |
Return the AccessKind as a dom::Value string.
<mrdocs/Metadata/Specifiers/AccessKind.hpp>void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
AccessKind const kind);
| Name | Description |
|---|---|
| v | A variant container for any kind of Dom value. |
| kind | Access specifier. |
Return the ConstexprKind as a dom::Value string.
<mrdocs/Metadata/Specifiers/ConstexprKind.hpp>void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
ConstexprKind const kind);
| 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.
<mrdocs/Metadata/Symbol/FunctionClass.hpp>void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
FunctionClass const kind);
| Name | Description |
|---|---|
| v | A variant container for any kind of Dom value. |
| kind | Function classifications |
Serialize a list kind into a DOM value.
<mrdocs/Metadata/DocComment/Block/ListKind.hpp>void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
ListKind const kind);
| Name | Description |
|---|---|
| v | Destination value. |
| kind | List kind to serialize. |
Map a NameKind into a DOM value.
<mrdocs/Metadata/Name/NameKind.hpp>void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
NameKind const kind);
| Name | Description |
|---|---|
| v | A variant container for any kind of Dom value. |
| kind | Kinds of names that appear in type and symbol metadata. |
Return the StorageClassKind as a dom::Value string.
<mrdocs/Metadata/Specifiers/StorageClassKind.hpp>void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
StorageClassKind const kind);
| Name | Description |
|---|---|
| v | A variant container for any kind of Dom value. |
| kind | Storage class kinds |
Return the SymbolKind from a dom::Value string.
<mrdocs/Metadata/Symbol/SymbolKind.hpp>void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
SymbolKind const kind);
| Name | Description |
|---|---|
| v | A variant container for any kind of Dom value. |
| kind | Info variant discriminator |
Serialize an alignment enum into a DOM value.
<mrdocs/Metadata/DocComment/Block/TableAlignmentKind.hpp>void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
TableAlignmentKind const kind);
| Name | Description |
|---|---|
| v | Destination value. |
| kind | Alignment to serialize. |
Return the ExplicitInfo as a dom::Value string.
<mrdocs/Metadata/Specifiers/ExplicitInfo.hpp>void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
ExplicitInfo const& I);
| Name | Description |
|---|---|
| v | The output parameter to receive the dom::Value. |
| I | The ExplicitInfo to convert. |
Serialize a location into a DOM value.
<mrdocs/Metadata/Symbol/Location.hpp>void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
Location const& loc);
| Name | Description |
|---|---|
| v | A variant container for any kind of Dom value. |
| loc | Source location of a symbol or entity. |
Serialize source locations into a DOM value.
<mrdocs/Metadata/Symbol/Source.hpp>void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
SourceInfo const& I);
| Name | Description |
|---|---|
| v | A variant container for any kind of Dom value. |
| I | Stores source information for a declaration. |
Convert SymbolID to dom::Value string in the DOM using toBase16
<mrdocs/Metadata/Symbol/SymbolID.hpp>void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
SymbolID const& id);
| Name | Description |
|---|---|
| v | A variant container for any kind of Dom value. |
| id | A unique identifier for a symbol. |
Convert a NoexceptInfo to a DOM value.
<mrdocs/Metadata/Specifiers/NoexceptInfo.hpp>void
tag_invoke(
dom::ValueFromTag tag,
dom::Value& v,
NoexceptInfo const& info);
| Name | Description |
|---|---|
| tag | Customization point tag. |
| v | A variant container for any kind of Dom value. |
| info | Captures a noexcept specification and its evaluated form. |
Serialize a base description into a DOM value.
<mrdocs/Metadata/Symbol/RecordBase.hpp>void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
BaseInfo const& I,
DomCorpus const* domCorpus);
| Name | Description |
|---|---|
| v | A variant container for any kind of Dom value. |
| I | Metadata for a direct base. |
| domCorpus | Front-end factory for producing Dom nodes. |
Map the ConceptSymbol to a dom::Value object.
<mrdocs/Metadata/Symbol/Concept.hpp>void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
ConceptSymbol const& I,
DomCorpus const* domCorpus);
| 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.
<mrdocs/Metadata/DocComment.hpp>void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
DocComment const& I,
DomCorpus const* domCorpus);
| 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.
<mrdocs/Metadata/Symbol/EnumConstant.hpp>void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
EnumConstantSymbol const& I,
DomCorpus const* domCorpus);
| 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.
<mrdocs/Metadata/Symbol/Enum.hpp>void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
EnumSymbol const& I,
DomCorpus const* domCorpus);
| 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.
<mrdocs/Metadata/Symbol/Friend.hpp>void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
FriendInfo const& I,
DomCorpus const* domCorpus);
| 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.
<mrdocs/Metadata/Symbol/Function.hpp>void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
FunctionSymbol const& I,
DomCorpus const* domCorpus);
| 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.
<mrdocs/Metadata/Symbol/Guide.hpp>void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
GuideSymbol const& I,
DomCorpus const* domCorpus);
| 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. |
Serialize a name into a DOM value.
<mrdocs/Metadata/Name/NameBase.hpp>void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
Name const& I,
DomCorpus const* domCorpus);
| Name | Description |
|---|---|
| v | A variant container for any kind of Dom value. |
| I | Represents a name for a named Type |
| domCorpus | Front-end factory for producing Dom nodes. |
Map the NamespaceAliasSymbol to a dom::Value object.
<mrdocs/Metadata/Symbol/NamespaceAlias.hpp>void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
NamespaceAliasSymbol const& I,
DomCorpus const* domCorpus);
| 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.
<mrdocs/Metadata/Symbol/Namespace.hpp>void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
NamespaceSymbol const& I,
DomCorpus const* domCorpus);
| Name | Description |
|---|---|
| v | A variant container for any kind of Dom value. |
| I | Describes a namespace and its members. |
| domCorpus | Front-end factory for producing Dom nodes. |
Map the NamespaceTranche to a dom::Value object.
<mrdocs/Metadata/Symbol/Namespace.hpp>void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
NamespaceTranche const& I,
DomCorpus const* domCorpus);
| Name | Description |
|---|---|
| v | A variant container for any kind of Dom value. |
| I | Buckets the members that appear inside a namespace. |
| domCorpus | Front-end factory for producing Dom nodes. |
Map the OverloadsSymbol to a dom::Value object.
<mrdocs/Metadata/Symbol/Overloads.hpp>void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
OverloadsSymbol const& I,
DomCorpus const* domCorpus);
| 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.
<mrdocs/Metadata/Symbol/Param.hpp>void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
Param const& p,
DomCorpus const* domCorpus);
| 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.
<mrdocs/Metadata/Symbol/RecordInterface.hpp>void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
RecordInterface const& I,
DomCorpus const* domCorpus);
| 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.
<mrdocs/Metadata/Symbol/Record.hpp>void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
RecordSymbol const& I,
DomCorpus const* domCorpus);
| 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.
<mrdocs/Metadata/Symbol/RecordTranche.hpp>void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
RecordTranche const& I,
DomCorpus const* domCorpus);
| 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.
<mrdocs/Metadata/Symbol/SymbolBase.hpp>void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
Symbol const& I,
DomCorpus const* domCorpus);
| 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
<mrdocs/Metadata/Symbol/SymbolID.hpp>void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
SymbolID const& id,
DomCorpus const* domCorpus);
| 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. |
Serialize the argument to a DOM value.
<mrdocs/Metadata/TArg/TArgBase.hpp>void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
TArg const& I,
DomCorpus const* domCorpus);
| Name | Description |
|---|---|
| v | A variant container for any kind of Dom value. |
| I | Base class for any template argument. |
| domCorpus | Front-end factory for producing Dom nodes. |
Serialize a template parameter into a DOM value.
<mrdocs/Metadata/TParam/TParamBase.hpp>void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
TParam const& I,
DomCorpus const* domCorpus);
| Name | Description |
|---|---|
| v | A variant container for any kind of Dom value. |
| I | Base class for a template parameter declaration. |
| domCorpus | Front-end factory for producing Dom nodes. |
Serialize template info into a DOM value.
<mrdocs/Metadata/Template.hpp>void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
TemplateInfo const& I,
DomCorpus const* domCorpus);
| Name | Description |
|---|---|
| v | A variant container for any kind of Dom value. |
| I | Information about templates and specializations thereof. |
| domCorpus | Front-end factory for producing Dom nodes. |
Serialize a Type into a DOM value.
<mrdocs/Metadata/Type/TypeBase.hpp>void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
Type const& I,
DomCorpus const* domCorpus);
| Name | Description |
|---|---|
| v | A variant container for any kind of Dom value. |
| I | A possibly qualified type. |
| domCorpus | Front-end factory for producing Dom nodes. |
Map the TypedefSymbol to a dom::Value object.
<mrdocs/Metadata/Symbol/Typedef.hpp>void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
TypedefSymbol const& I,
DomCorpus const* domCorpus);
| 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.
<mrdocs/Metadata/Symbol/Using.hpp>void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
UsingSymbol const& I,
DomCorpus const* domCorpus);
| 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.
<mrdocs/Metadata/Symbol/Variable.hpp>void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
VariableSymbol const& I,
DomCorpus const* domCorpus);
| Name | Description |
|---|---|
| v | A variant container for any kind of Dom value. |
| I | A variable. |
| domCorpus | Front-end factory for producing Dom nodes. |
Serialize an optional template info into a DOM value.
<mrdocs/Metadata/Template.hpp>void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
Optional<TemplateInfo> const& I,
DomCorpus const* domCorpus);
| Name | Description |
|---|---|
| v | A variant container for any kind of Dom value. |
| I | A compact optional that automatically uses nullable_traits<T> when available. |
| domCorpus | Front-end factory for producing Dom nodes. |
Serialize an optional polymorphic name into a DOM value.
<mrdocs/Metadata/Name.hpp>void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
Optional<Polymorphic<Name>> const& I,
DomCorpus const* domCorpus);
| Name | Description |
|---|---|
| v | A variant container for any kind of Dom value. |
| I | A compact optional that automatically uses nullable_traits<T> when available. |
| domCorpus | Front-end factory for producing Dom nodes. |
Serialize an optional polymorphic type into a DOM value.
<mrdocs/Metadata/Type.hpp>void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
Optional<Polymorphic<Type>> const& I,
DomCorpus const* domCorpus);
| Name | Description |
|---|---|
| v | A variant container for any kind of Dom value. |
| I | A compact optional that automatically uses nullable_traits<T> when available. |
| domCorpus | Front-end factory for producing Dom nodes. |
Serialize a polymorphic name into a DOM value.
<mrdocs/Metadata/Name.hpp>void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
Polymorphic<Name> const& I,
DomCorpus const* domCorpus);
| Name | Description |
|---|---|
| v | A variant container for any kind of Dom value. |
| I | A polymorphic value-type. |
| domCorpus | Front-end factory for producing Dom nodes. |
Serialize a polymorphic template argument into a DOM value.
<mrdocs/Metadata/TArg.hpp>void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
Polymorphic<TArg> const& I,
DomCorpus const* domCorpus);
| Name | Description |
|---|---|
| v | A variant container for any kind of Dom value. |
| I | A polymorphic value-type. |
| domCorpus | Front-end factory for producing Dom nodes. |
Serialize a polymorphic template parameter.
<mrdocs/Metadata/TParam.hpp>void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
Polymorphic<TParam> const& I,
DomCorpus const* domCorpus);
| Name | Description |
|---|---|
| v | A variant container for any kind of Dom value. |
| I | A polymorphic value-type. |
| domCorpus | Front-end factory for producing Dom nodes. |
Serialize a polymorphic type into a DOM value.
<mrdocs/Metadata/Type.hpp>void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
Polymorphic<Type> const& I,
DomCorpus const* domCorpus);
| Name | Description |
|---|---|
| v | A variant container for any kind of Dom value. |
| I | A polymorphic value-type. |
| domCorpus | Front-end factory for producing Dom nodes. |
Convert SymbolID pointers to dom::Value or null.
<mrdocs/Metadata/Symbol/SymbolID.hpp>void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
std::unique_ptr<SymbolID> const& t,
DomCorpus const* domCorpus);
| 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.
<mrdocs/Metadata/DocComment.hpp>template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag,
IO& io,
DocComment const& I,
DomCorpus const* domCorpus);
| Name | Description |
|---|---|
| io | The output object. |
| I | The DocComment to map. |
| domCorpus | The DOM corpus, or nullptr. |
Map a NamespaceTranche to a dom::Object.
<mrdocs/Metadata/Symbol/Namespace.hpp>template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag,
IO& io,
NamespaceTranche const& I,
DomCorpus const* domCorpus);
| Name | Description |
|---|---|
| io | The IO object to use for mapping. |
| I | The NamespaceTranche to map. |
| domCorpus | The DomCorpus used to create the DOM values. |
Map a RecordInterface to a dom::Object.
<mrdocs/Metadata/Symbol/RecordInterface.hpp>template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag,
IO& io,
RecordInterface const& I,
DomCorpus const*);
| Name | Description |
|---|---|
| io | The output parameter to receive the dom::Object. |
| I | The RecordInterface to convert. |
Map a RecordTranche to a dom::Object.
<mrdocs/Metadata/Symbol/RecordTranche.hpp>template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag,
IO& io,
RecordTranche const& I,
DomCorpus const* domCorpus);
| 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.
<mrdocs/Metadata/Symbol/SymbolBase.hpp>template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag,
IO& io,
Symbol const& I,
DomCorpus const* domCorpus);
| 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.
<mrdocs/Metadata/Symbol/Concept.hpp>template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
ConceptSymbol const& I,
DomCorpus const* domCorpus);
| 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.
<mrdocs/Metadata/Symbol/EnumConstant.hpp>template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
EnumConstantSymbol const& I,
DomCorpus const* domCorpus);
| 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.
<mrdocs/Metadata/Symbol/Enum.hpp>template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
EnumSymbol const& I,
DomCorpus const* domCorpus);
| 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.
<mrdocs/Metadata/Symbol/Friend.hpp>template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
FriendInfo const& I,
DomCorpus const* domCorpus);
| 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.
<mrdocs/Metadata/Symbol/Function.hpp>template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
FunctionSymbol const& I,
DomCorpus const* domCorpus);
| 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.
<mrdocs/Metadata/Symbol/Guide.hpp>template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
GuideSymbol const& I,
DomCorpus const* domCorpus);
| 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.
<mrdocs/Metadata/Symbol/NamespaceAlias.hpp>template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
NamespaceAliasSymbol const& I,
DomCorpus const* domCorpus);
| 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.
<mrdocs/Metadata/Symbol/Namespace.hpp>template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
NamespaceSymbol const& I,
DomCorpus const* domCorpus);
| 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.
<mrdocs/Metadata/Symbol/Overloads.hpp>template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
OverloadsSymbol const& I,
DomCorpus const* domCorpus);
| 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.
<mrdocs/Metadata/Symbol/Record.hpp>template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
RecordSymbol const& I,
DomCorpus const* domCorpus);
| 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.
<mrdocs/Metadata/Symbol/Typedef.hpp>template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
TypedefSymbol const& I,
DomCorpus const* domCorpus);
| 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.
<mrdocs/Metadata/Symbol/Using.hpp>template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
UsingSymbol const& I,
DomCorpus const* domCorpus);
| 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.
<mrdocs/Metadata/Symbol/Variable.hpp>template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
VariableSymbol const& I,
DomCorpus const* domCorpus);
| 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.
<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);
| 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
<mrdocs/Metadata/Symbol/SymbolID.hpp>std::string
toBase16Str(SymbolID const& id);
| Name | Description |
|---|---|
| id | The SymbolID to convert. |
Convert a string to camelCase using ASCII letter rules.
<mrdocs/Support/String.hpp>constexpr
std::string
toCamelCase(std::string_view const input);
| Name | Description |
|---|---|
| input | Source string. |
Convert a string to kebab-case using ASCII letter rules.
<mrdocs/Support/String.hpp>constexpr
std::string
toKebabCase(std::string_view const input);
| Name | Description |
|---|---|
| input | Source string. |
toLowerCase overloads
<mrdocs/Support/String.hpp>Return a lowercase copy of the string without locale.
constexpr
std::string
toLowerCase(std::string_view const s) noexcept;
» more...
Convert a character to lowercase ASCII without locale.
constexpr
char
toLowerCase(char const c) noexcept;
» more...
s.c if it is uppercase; otherwise c.| Name | Description |
|---|---|
| s | Input string. |
| c | Character to convert. |
Return a lowercase copy of the string without locale.
<mrdocs/Support/String.hpp>constexpr
std::string
toLowerCase(std::string_view const s) noexcept;
s.
| Name | Description |
|---|---|
| s | Input string. |
Convert a character to lowercase ASCII without locale.
<mrdocs/Support/String.hpp>constexpr
char
toLowerCase(char const c) noexcept;
c if it is uppercase; otherwise c.
| Name | Description |
|---|---|
| c | Character to convert. |
Convert a string to PascalCase using ASCII letter rules.
<mrdocs/Support/String.hpp>constexpr
std::string
toPascalCase(std::string_view const input);
| Name | Description |
|---|---|
| input | Source string. |
Convert a string to snake_case using ASCII letter rules.
<mrdocs/Support/String.hpp>constexpr
std::string
toSnakeCase(std::string_view const input);
| Name | Description |
|---|---|
| input | Source string. |
toString overloads
<mrdocs/Metadata/Name/NameBase.hpp>Convert access specifier to its string form.
dom::String
toString(AccessKind kind) noexcept;
» more...
Convert an auto-kind to its spelling.
dom::String
toString(AutoKind kind) noexcept;
» more...
Convert a constexpr/consteval specifier kind to a string.
dom::String
toString(ConstexprKind kind) noexcept;
» more...
Convert an explicit kind to its string form.
dom::String
toString(ExplicitKind kind) noexcept;
» more...
Return the name of the SymbolKind as a string.
constexpr
std::string_view
toString(ExtractionMode kind) noexcept;
» more...
Convert a FileKind to its string form.
std::string_view
toString(FileKind kind);
» more...
Convert a function class to string form.
dom::String
toString(FunctionClass kind) noexcept;
» more...
Convert a FundamentalTypeKind to a string.
std::string_view
toString(FundamentalTypeKind kind) noexcept;
» more...
Convert a list kind enum to its string name.
dom::String
toString(ListKind kind) noexcept;
» more...
Convert a NameKind to its string form.
dom::String
toString(NameKind kind) noexcept;
» more...
Convert a noexcept kind to its string form.
dom::String
toString(NoexceptKind kind) noexcept;
» more...
Convert a cv/ref qualifier kind to its string form.
dom::String
toString(QualifierKind kind) noexcept;
» more...
Convert the key kind to its canonical string form.
dom::String
toString(RecordKeyKind kind) noexcept;
» more...
Convert a reference kind to its string representation.
dom::String
toString(ReferenceKind kind) noexcept;
» more...
Convert a storage class kind to its string form.
dom::String
toString(StorageClassKind kind) noexcept;
» more...
Return the name of the SymbolKind as a string.
dom::String
toString(SymbolKind kind) noexcept;
» more...
Convert a template-argument kind to a string.
std::string_view
toString(TArgKind kind) noexcept;
» more...
Convert the keyword kind to its string form.
std::string_view
toString(TParamKeyKind kind) noexcept;
» more...
Convert a parameter kind to a readable string.
std::string_view
toString(TParamKind kind) noexcept;
» more...
Convert an alignment enum to its string representation.
dom::String
toString(TableAlignmentKind kind) noexcept;
» more...
Convert the specialization kind to a readable string.
std::string_view
toString(TemplateSpecKind kind);
» more...
Convert a TypeKind to its string representation.
dom::String
toString(TypeKind kind) noexcept;
» more...
Convert the name to a human-readable string.
std::string
toString(Name const& N);
» more...
Convert a template argument to a human-readable string.
std::string
toString(TArg const& arg) noexcept;
» more...
Render a type to a human-readable string.
std::string
toString(
Type const& T,
std::string_view Name = "");
» more...
Convert ExplicitInfo to a string.
dom::String
toString(
ExplicitInfo const& info,
bool resolved = false,
bool implicit = false);
» more...
Convert NoexceptInfo to a string.
dom::String
toString(
NoexceptInfo const& info,
bool resolved = false,
bool implicit = false);
» more...
| Name | Description |
|---|---|
| kind | File category to stringify. |
| T | Type to render. |
| Name | Optional identifier to append. |
| 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 access specifier to its string form.
<mrdocs/Metadata/Specifiers/AccessKind.hpp>dom::String
toString(AccessKind kind) noexcept;
| Name | Description |
|---|---|
| kind | Access specifier. |
Convert an auto-kind to its spelling.
<mrdocs/Metadata/Type/AutoKind.hpp>dom::String
toString(AutoKind kind) noexcept;
| Name | Description |
|---|---|
| kind | The kind of auto keyword used in a declaration. |
Convert a constexpr/consteval specifier kind to a string.
<mrdocs/Metadata/Specifiers/ConstexprKind.hpp>dom::String
toString(ConstexprKind kind) noexcept;
| Name | Description |
|---|---|
| kind | constexpr/consteval specifier kinds |
Convert an explicit kind to its string form.
<mrdocs/Metadata/Specifiers/ExplicitKind.hpp>dom::String
toString(ExplicitKind kind) noexcept;
| Name | Description |
|---|---|
| kind | Explicit specifier kinds |
Return the name of the SymbolKind as a string.
<mrdocs/Metadata/Symbol/ExtractionMode.hpp>constexpr
std::string_view
toString(ExtractionMode kind) noexcept;
| Name | Description |
|---|---|
| kind | Determine why a symbol is extracted |
Convert a FileKind to its string form.
<mrdocs/Metadata/Symbol/FileKind.hpp>std::string_view
toString(FileKind kind);
| Name | Description |
|---|---|
| kind | File category to stringify. |
Convert a function class to string form.
<mrdocs/Metadata/Symbol/FunctionClass.hpp>dom::String
toString(FunctionClass kind) noexcept;
| Name | Description |
|---|---|
| kind | Function classifications |
Convert a FundamentalTypeKind to a string.
<mrdocs/Metadata/Type/FundamentalTypeKind.hpp>std::string_view
toString(FundamentalTypeKind kind) noexcept;
This function converts a FundamentalTypeKind to the shortest canonical string representing the type.
| Name | Description |
|---|---|
| kind | Categorically describes a fundamental type. |
Convert a list kind enum to its string name.
<mrdocs/Metadata/DocComment/Block/ListKind.hpp>dom::String
toString(ListKind kind) noexcept;
| Name | Description |
|---|---|
| kind | Classification of list ordering. |
Convert a NameKind to its string form.
<mrdocs/Metadata/Name/NameKind.hpp>dom::String
toString(NameKind kind) noexcept;
| Name | Description |
|---|---|
| kind | Kinds of names that appear in type and symbol metadata. |
Convert a noexcept kind to its string form.
<mrdocs/Metadata/Specifiers/NoexceptKind.hpp>dom::String
toString(NoexceptKind kind) noexcept;
| Name | Description |
|---|---|
| kind | Exception specification kinds |
Convert a cv/ref qualifier kind to its string form.
<mrdocs/Metadata/Type/QualifierKind.hpp>dom::String
toString(QualifierKind kind) noexcept;
| Name | Description |
|---|---|
| kind | Type qualifiers |
Convert the key kind to its canonical string form.
<mrdocs/Metadata/Symbol/RecordKeyKind.hpp>dom::String
toString(RecordKeyKind kind) noexcept;
| Name | Description |
|---|---|
| kind | The kind of record: struct, class, or union. |
Convert a reference kind to its string representation.
<mrdocs/Metadata/Specifiers/ReferenceKind.hpp>dom::String
toString(ReferenceKind kind) noexcept;
| Name | Description |
|---|---|
| kind | Reference type kinds |
Convert a storage class kind to its string form.
<mrdocs/Metadata/Specifiers/StorageClassKind.hpp>dom::String
toString(StorageClassKind kind) noexcept;
| Name | Description |
|---|---|
| kind | Storage class kinds |
Return the name of the SymbolKind as a string.
<mrdocs/Metadata/Symbol/SymbolKind.hpp>dom::String
toString(SymbolKind kind) noexcept;
| Name | Description |
|---|---|
| kind | Info variant discriminator |
Convert a template-argument kind to a string.
<mrdocs/Metadata/TArg/TArgKind.hpp>std::string_view
toString(TArgKind kind) noexcept;
| Name | Description |
|---|---|
| kind | The kind of template argument. |
Convert the keyword kind to its string form.
<mrdocs/Metadata/TParam/TParamKeyKind.hpp>std::string_view
toString(TParamKeyKind kind) noexcept;
| Name | Description |
|---|---|
| kind | The keyword a template parameter was declared with |
Convert a parameter kind to a readable string.
<mrdocs/Metadata/TParam/TParamKind.hpp>std::string_view
toString(TParamKind kind) noexcept;
| Name | Description |
|---|---|
| kind | Discriminates the different template parameter categories. |
Convert an alignment enum to its string representation.
<mrdocs/Metadata/DocComment/Block/TableAlignmentKind.hpp>dom::String
toString(TableAlignmentKind kind) noexcept;
| Name | Description |
|---|---|
| kind | Horizontal alignment for table columns. |
Convert the specialization kind to a readable string.
<mrdocs/Metadata/Template.hpp>std::string_view
toString(TemplateSpecKind kind);
| Name | Description |
|---|---|
| kind | The kind of template or specialization. |
Convert a TypeKind to its string representation.
<mrdocs/Metadata/Type/TypeKind.hpp>dom::String
toString(TypeKind kind) noexcept;
| Name | Description |
|---|---|
| kind | Variants of C++ types captured in metadata. |
Convert the name to a human-readable string.
| Name | Description |
|---|---|
| N | Represents a name for a named Type |
Convert a template argument to a human-readable string.
<mrdocs/Metadata/TArg/TArgBase.hpp>std::string
toString(TArg const& arg) noexcept;
| Name | Description |
|---|---|
| arg | Base class for any template argument. |
Render a type to a human-readable string.
<mrdocs/Metadata/Type.hpp>std::string
toString(
Type const& T,
std::string_view Name = "");
| Name | Description |
|---|---|
| T | Type to render. |
| Name | Optional identifier to append. |
Convert ExplicitInfo to a string.
<mrdocs/Metadata/Specifiers/ExplicitInfo.hpp>dom::String
toString(
ExplicitInfo const& info,
bool resolved = false,
bool implicit = false);
| 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.
<mrdocs/Metadata/Specifiers/NoexceptInfo.hpp>dom::String
toString(
NoexceptInfo const& info,
bool resolved = false,
bool implicit = false);
| 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. |
toUpperCase overloads
<mrdocs/Support/String.hpp>Return an uppercase copy of the string without locale.
constexpr
std::string
toUpperCase(std::string_view const s) noexcept;
» more...
Convert a character to uppercase ASCII without locale.
constexpr
char
toUpperCase(char const c) noexcept;
» more...
s.c if it is lowercase; otherwise c.| Name | Description |
|---|---|
| s | Input string. |
| c | Character to convert. |
Return an uppercase copy of the string without locale.
<mrdocs/Support/String.hpp>constexpr
std::string
toUpperCase(std::string_view const s) noexcept;
s.
| Name | Description |
|---|---|
| s | Input string. |
Convert a character to uppercase ASCII without locale.
<mrdocs/Support/String.hpp>constexpr
char
toUpperCase(char const c) noexcept;
c if it is lowercase; otherwise c.
| Name | Description |
|---|---|
| c | Character to convert. |
Return the value as its underlying type.
<mrdocs/Support/TypeTraits.hpp>template<class Enum>
requires std::is_enum_v<Enum>
constexpr
std::underlying_type_t<Enum>
to_underlying(Enum value) noexcept;
| Name | Description |
|---|---|
| value | The enum value to convert |
Traverse a DocComment tree top-down (pre-order).
<mrdocs/Metadata/DocComment.hpp>template<
DocCommentNodeTraversable T,
class F>
void
topDownTraverse(
T& node,
F&& func);
| Name | Description |
|---|---|
| node | Root node to traverse. |
| func | Visitor invoked before children are visited. |
trim overloads
<mrdocs/Support/String.hpp>Return the substring without leading and trailing horizontal whitespace.
constexpr
std::string_view
trim(std::string_view const s) noexcept;
» more...
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;
» more...
| Name | Description |
|---|---|
| s | The string to trim. |
| chars | The characters to remove. |
Return the substring without leading and trailing horizontal whitespace.
<mrdocs/Support/String.hpp>constexpr
std::string_view
trim(std::string_view const s) noexcept;
| Name | Description |
|---|---|
| s | The string to trim. |
Return the substring without leading and trailing specified characters.
<mrdocs/Support/String.hpp>constexpr
std::string_view
trim(
std::string_view const s,
std::string_view const chars) noexcept;
| Name | Description |
|---|---|
| s | The string to trim. |
| chars | The characters to remove. |
visit overloads
<mrdocs/Metadata/TParam.hpp>Visit a template parameter, dispatching to its concrete type.
template<
typename TParamTy,
typename F,
typename... Args>
requires std::derived_from<TParamTy, TParam>
constexpr
decltype(auto)
visit(
TParamTy& P,
F&& f,
Args&&... args);
» more...
Visit a Type with the provided callable.
template<
std::derived_from<Symbol> TypeTy,
class F,
class... Args>
constexpr
decltype(auto)
visit(
TypeTy& info,
F&& fn,
Args&&... args);
» more...
| Name | Description |
|---|---|
| P | Parameter to visit. |
| f | Callable to receive the concrete parameter. |
| args | Additional arguments forwarded to the callable. |
| info | The type instance to visit. |
| fn | The callable to dispatch to the concrete type. |
Visit a template parameter, dispatching to its concrete type.
<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);
| Name | Description |
|---|---|
| P | Parameter to visit. |
| f | Callable to receive the concrete parameter. |
| args | Additional arguments forwarded to the callable. |
Visit a Type with the provided callable.
<mrdocs/Metadata/Type.hpp>template<
std::derived_from<Symbol> TypeTy,
class F,
class... Args>
constexpr
decltype(auto)
visit(
TypeTy& info,
F&& fn,
Args&&... args);
Visit a template argument, dispatching on its concrete kind.
Invoke a function object with a type derived from Symbol
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.
| Name | Description |
|---|---|
| info | The type instance to visit. |
| fn | The callable to dispatch to the concrete type. |
| args | Additional arguments forwarded to the callable. |
Visits a std::variant and calls the combined callable with the active index and the value.
<mrdocs/ADT/Overload.hpp>template<
class Variant,
class... Ts>
constexpr
decltype(auto)
visitIndexed(
Variant&& v,
Ts&&... xs);
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; });
| 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.
<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 &&>);
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); });
| Name | Description |
|---|---|
| f | The callable to wrap. |
Write to output
<mrdocs/Support/Handlebars.hpp>Write to output
OutputRef&
operator<<(
OutputRef& os,
T v);
» more...
Write to output
OutputRef&
operator<<(
OutputRef& os,
char const* c);
» more...
Write to output
OutputRef&
operator<<(
OutputRef& os,
char c);
» more...
Write to output
OutputRef&
operator<<(
OutputRef& os,
std::string_view sv);
» more...
| 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
| Name | Description |
|---|---|
| os | The output stream reference |
| v | The character to write |
Write to output
<mrdocs/Support/Handlebars.hpp>OutputRef&
operator<<(
OutputRef& os,
char const* c);
| Name | Description |
|---|---|
| os | The output stream reference |
| c | The string to write |
Write to output
| Name | Description |
|---|---|
| os | The output stream reference |
| c | The character to write |
Write to output
<mrdocs/Support/Handlebars.hpp>OutputRef&
operator<<(
OutputRef& os,
std::string_view sv);
| Name | Description |
|---|---|
| os | The output stream reference |
| sv | The string to write |
Equality operators
<mrdocs/ADT/Optional.hpp>Equality operator
constexpr
bool
operator==(
Expected const& x,
Expected<U, E2> const& y) noexcept(noexcept(bool(x.error() == y.error())));
» more...
Equality operator
constexpr
bool
operator==(
Iterator const& it,
std::default_sentinel_t rhs) noexcept;
» more...
Equality operator
constexpr
bool
operator==(
ParseResult const& lhs,
ParseResult const& rhs) = default;
» more...
Equality helper for optional template info.
bool
operator==(
Optional<TemplateInfo> const& lhs,
Optional<TemplateInfo> const& rhs);
» more...
Equality helper for polymorphic template parameters.
bool
operator==(
Polymorphic<TParam> const& lhs,
Polymorphic<TParam> const& rhs);
» more...
Equality compare two polymorphic names.
bool
operator==(
Polymorphic<Name> const& lhs,
Polymorphic<Name> const& rhs);
» more...
Equality helper for optional polymorphic types.
bool
operator==(
Optional<Polymorphic<Type>> const& lhs,
Optional<Polymorphic<Type>> const& rhs);
» more...
Equality helper for polymorphic types.
bool
operator==(
Polymorphic<Type> const& lhs,
Polymorphic<Type> const& rhs);
» more...
Equality operator
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>);
» more...
Equality operator
constexpr
bool
operator==(
Expected const& x,
U const& v) noexcept(noexcept(bool(*x == v)));
» more...
Equality operator
constexpr
bool
operator==(
Expected const& x,
Unexpected<E2> const& e) noexcept(noexcept(bool(x.error() == e.error())));
» more...
Equality operator
constexpr
bool
operator==(
ArrayView a,
ArrayView b) noexcept
requires requires (const T& x, const T& y) { { x == y } -> std::convertible_to<bool>; };
» more...
Equality operator
constexpr
bool
operator==(
Expected const& x,
Expected<U, E2> const& y) noexcept(noexcept(bool(*x == *y)) && noexcept(bool(x.error() == y.error())));
» more...
Equality operator
constexpr
bool
operator==(
Expected const& x,
U const& v) noexcept(noexcept(bool(*x == v)));
» more...
Equality operator
constexpr
bool
operator==(
Expected const& x,
Unexpected<E2> const& e) noexcept(noexcept(bool(x.error() == e.error())));
» more...
Equality operator
[[nodiscard]]
constexpr
bool
operator==(
Unexpected const& x,
Unexpected<Er> const& y);
» more...
Equality comparison of two polymorphic objects.
template<class Base>
requires detail::CanVisitCompare<Base>
bool
operator==(
Polymorphic<Base> const& lhs,
Polymorphic<Base> const& rhs);
» more...
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);
» more...
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);
» more...
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;
» more...
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);
» more...
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
<mrdocs/Support/Expected.hpp>constexpr
bool
operator==(
Expected const& x,
Expected<U, E2> const& y) noexcept(noexcept(bool(x.error() == y.error())));
true if the objects are equal, false otherwise
| Name | Description |
|---|---|
| x | The left operand |
| y | The right operand |
Equality operator
<mrdocs/Support/SplitLines.hpp>constexpr
bool
operator==(
Iterator const& it,
std::default_sentinel_t rhs) noexcept;
true if the objects are equal, false otherwise
| Name | Description |
|---|---|
| it | The left operand |
| rhs | The right operand |
Equality operator
<mrdocs/Support/Parse.hpp>constexpr
bool
operator==(
ParseResult const& lhs,
ParseResult const& rhs) = default;
true if the objects are equal, false otherwise
| Name | Description |
|---|---|
| lhs | The left operand |
| rhs | The right operand |
Equality helper for optional template info.
<mrdocs/Metadata/Template.hpp>bool
operator==(
Optional<TemplateInfo> const& lhs,
Optional<TemplateInfo> const& rhs);
true if the objects are equal, false otherwise
| Name | Description |
|---|---|
| lhs | The left operand |
| rhs | The right operand |
Equality helper for polymorphic template parameters.
<mrdocs/Metadata/TParam.hpp>bool
operator==(
Polymorphic<TParam> const& lhs,
Polymorphic<TParam> const& rhs);
true if the objects are equal, false otherwise
| Name | Description |
|---|---|
| lhs | The left operand |
| rhs | The right operand |
Equality compare two polymorphic names.
<mrdocs/Metadata/Name.hpp>bool
operator==(
Polymorphic<Name> const& lhs,
Polymorphic<Name> const& rhs);
true if the objects are equal, false otherwise
| Name | Description |
|---|---|
| lhs | The left operand |
| rhs | The right operand |
Equality helper for optional polymorphic types.
<mrdocs/Metadata/Type.hpp>bool
operator==(
Optional<Polymorphic<Type>> const& lhs,
Optional<Polymorphic<Type>> const& rhs);
true if the objects are equal, false otherwise
| Name | Description |
|---|---|
| lhs | The left operand |
| rhs | The right operand |
Equality helper for polymorphic types.
<mrdocs/Metadata/Type.hpp>bool
operator==(
Polymorphic<Type> const& lhs,
Polymorphic<Type> const& rhs);
true if the objects are equal, false otherwise
| Name | Description |
|---|---|
| lhs | The left operand |
| rhs | The right operand |
Equality operator
<mrdocs/Support/Expected.hpp>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>);
true if the objects are equal, false otherwise
| Name | Description |
|---|---|
| x | The left operand |
| y | The right operand |
Equality operator
<mrdocs/Support/Expected.hpp>constexpr
bool
operator==(
Expected const& x,
U const& v) noexcept(noexcept(bool(*x == v)));
true if the objects are equal, false otherwise
| Name | Description |
|---|---|
| x | The left operand |
| v | The right operand |
Equality operator
<mrdocs/Support/Expected.hpp>constexpr
bool
operator==(
Expected const& x,
Unexpected<E2> const& e) noexcept(noexcept(bool(x.error() == e.error())));
true if the objects are equal, false otherwise
| Name | Description |
|---|---|
| x | The left operand |
| e | The right operand |
Equality operator
<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>; };
true if the objects are equal, false otherwise
| Name | Description |
|---|---|
| a | The left operand |
| b | The right operand |
Equality operator
<mrdocs/Support/Expected.hpp>constexpr
bool
operator==(
Expected const& x,
Expected<U, E2> const& y) noexcept(noexcept(bool(*x == *y)) && noexcept(bool(x.error() == y.error())));
true if the objects are equal, false otherwise
| Name | Description |
|---|---|
| x | The left operand |
| y | The right operand |
Equality operator
<mrdocs/Support/Expected.hpp>constexpr
bool
operator==(
Expected const& x,
U const& v) noexcept(noexcept(bool(*x == v)));
true if the objects are equal, false otherwise
| Name | Description |
|---|---|
| x | The left operand |
| v | The right operand |
Equality operator
<mrdocs/Support/Expected.hpp>constexpr
bool
operator==(
Expected const& x,
Unexpected<E2> const& e) noexcept(noexcept(bool(x.error() == e.error())));
true if the objects are equal, false otherwise
| Name | Description |
|---|---|
| x | The left operand |
| e | The right operand |
Equality operator
<mrdocs/Support/Expected.hpp>[[nodiscard]]
constexpr
bool
operator==(
Unexpected const& x,
Unexpected<Er> const& y);
true if the objects are equal, false otherwise
| Name | Description |
|---|---|
| x | The left operand |
| y | The right operand |
Equality comparison of two polymorphic objects.
<mrdocs/ADT/Polymorphic.hpp>template<class Base>
requires detail::CanVisitCompare<Base>
bool
operator==(
Polymorphic<Base> const& lhs,
Polymorphic<Base> const& rhs);
| 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.
<mrdocs/ADT/Optional.hpp>template<
typename T,
typename U>
requires (!detail::isOptionalV<T>)
constexpr
/* implementation-defined */
operator==(
T const& lhs,
Optional<U> const& rhs);
true if the optional is engaged and equal to lhs; otherwise, false.
| 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.
<mrdocs/ADT/Optional.hpp>template<
typename T,
typename U>
requires (!detail::isOptionalV<U>)
constexpr
/* implementation-defined */
operator==(
Optional<T> const& lhs,
U const& rhs);
true if the optional is engaged and equal to rhs; otherwise, false.
| 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.
<mrdocs/ADT/Optional.hpp>template<typename T>
[[nodiscard]]
constexpr
bool
operator==(
Optional<T> const& lhs,
std::nullopt_t rhs) noexcept;
true if the optional is disengaged; otherwise, false.
| 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.
<mrdocs/ADT/Optional.hpp>template<
typename T,
typename U>
constexpr
/* implementation-defined */
operator==(
Optional<T> const& lhs,
Optional<U> const& rhs);
true if both optionals are engaged and equal, or both are disengaged; otherwise, false.
| Name | Description |
|---|---|
| lhs | The left operand |
| rhs | The right operand |
Inequality operators
<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);
» more...
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);
» more...
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);
» more...
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.
<mrdocs/ADT/Optional.hpp>template<
typename T,
typename U>
constexpr
/* implementation-defined */
operator!=(
Optional<T> const& lhs,
Optional<U> const& rhs);
true if the optionals differ in engagement or value; otherwise, false.
| 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.
<mrdocs/ADT/Optional.hpp>template<
typename T,
typename U>
requires (!detail::isOptionalV<U>)
constexpr
/* implementation-defined */
operator!=(
Optional<T> const& lhs,
U const& rhs);
true if the optional is disengaged or not equal to rhs; otherwise, false.
| 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.
<mrdocs/ADT/Optional.hpp>template<
typename T,
typename U>
requires (!detail::isOptionalV<T>)
constexpr
/* implementation-defined */
operator!=(
T const& lhs,
Optional<U> const& rhs);
true if the optional is disengaged or not equal to lhs; otherwise, false.
| Name | Description |
|---|---|
| lhs | The left operand |
| rhs | The right operand |
Less-than operators
<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);
» more...
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);
» more...
Checks if a value is less than an engaged Optional. Returns true if the Optional is engaged and lhs is less than its value.
template<
typename T,
typename U>
requires (!detail::isOptionalV<T>)
[[nodiscard]]
constexpr
/* implementation-defined */
operator<(
T const& lhs,
Optional<U> const& rhs);
» more...
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.
<mrdocs/ADT/Optional.hpp>template<
typename T,
typename U>
constexpr
/* implementation-defined */
operator<(
Optional<T> const& lhs,
Optional<U> const& rhs);
true if lhs is less than rhs according to the described rules; otherwise, false.
| 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.
<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);
true if the optional is disengaged or less than rhs; otherwise, false.
| 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.
<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);
true if the optional is engaged and lhs is less than its value; otherwise, false.
| Name | Description |
|---|---|
| lhs | The left operand |
| rhs | The right operand |
Less-than-or-equal operators
<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);
» more...
Checks if the Optional is less than or equal to a value. Returns true if the Optional is disengaged or its value is less than or equal to rhs.
template<
typename T,
typename U>
requires (!detail::isOptionalV<U>)
constexpr
/* implementation-defined */
operator<=(
Optional<T> const& lhs,
U const& rhs);
» more...
Checks if a value is less than or equal to an engaged Optional. Returns true if the Optional is engaged and lhs is less than or equal to its value.
template<
typename T,
typename U>
requires (!detail::isOptionalV<T>)
constexpr
/* implementation-defined */
operator<=(
T const& lhs,
Optional<U> const& rhs);
» more...
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.
<mrdocs/ADT/Optional.hpp>template<
typename T,
typename U>
constexpr
/* implementation-defined */
operator<=(
Optional<T> const& lhs,
Optional<U> const& rhs);
true if lhs is less than or equal to rhs according to the described rules; otherwise, false.
| 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.
<mrdocs/ADT/Optional.hpp>template<
typename T,
typename U>
requires (!detail::isOptionalV<U>)
constexpr
/* implementation-defined */
operator<=(
Optional<T> const& lhs,
U const& rhs);
true if the optional is disengaged or less than or equal to rhs; otherwise, false.
| 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.
<mrdocs/ADT/Optional.hpp>template<
typename T,
typename U>
requires (!detail::isOptionalV<T>)
constexpr
/* implementation-defined */
operator<=(
T const& lhs,
Optional<U> const& rhs);
true if the optional is engaged and lhs is less than or equal to its value; otherwise, false.
| Name | Description |
|---|---|
| lhs | The left operand |
| rhs | The right operand |
Greater-than operators
<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);
» more...
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);
» more...
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);
» more...
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.
<mrdocs/ADT/Optional.hpp>template<
typename T,
typename U>
constexpr
/* implementation-defined */
operator>(
Optional<T> const& lhs,
Optional<U> const& rhs);
true if lhs is greater than rhs according to the described rules; otherwise, false.
| 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.
<mrdocs/ADT/Optional.hpp>template<
typename T,
typename U>
requires (!detail::isOptionalV<U>)
constexpr
/* implementation-defined */
operator>(
Optional<T> const& lhs,
U const& rhs);
true if the optional is engaged and greater than rhs; otherwise, false.
| 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.
<mrdocs/ADT/Optional.hpp>template<
typename T,
typename U>
requires (!detail::isOptionalV<T>)
constexpr
/* implementation-defined */
operator>(
T const& lhs,
Optional<U> const& rhs);
true if the optional is disengaged or lhs is greater than its value; otherwise, false.
| Name | Description |
|---|---|
| lhs | The left operand |
| rhs | The right operand |
Greater-than-or-equal operators
<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);
» more...
Checks if the Optional is greater than or equal to a value. Returns true if the Optional is engaged and its value is greater than or equal to rhs.
template<
typename T,
typename U>
requires (!detail::isOptionalV<U>)
constexpr
/* implementation-defined */
operator>=(
Optional<T> const& lhs,
U const& rhs);
» more...
Checks if a value is greater than or equal to an Optional. Returns true if the Optional is disengaged or lhs is greater than or equal to its value.
template<
typename T,
typename U>
requires (!detail::isOptionalV<T>)
constexpr
/* implementation-defined */
operator>=(
T const& lhs,
Optional<U> const& rhs);
» more...
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.
<mrdocs/ADT/Optional.hpp>template<
typename T,
typename U>
constexpr
/* implementation-defined */
operator>=(
Optional<T> const& lhs,
Optional<U> const& rhs);
true if lhs is greater than or equal to rhs according to the described rules; otherwise, false.
| 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.
<mrdocs/ADT/Optional.hpp>template<
typename T,
typename U>
requires (!detail::isOptionalV<U>)
constexpr
/* implementation-defined */
operator>=(
Optional<T> const& lhs,
U const& rhs);
true if the optional is engaged and greater than or equal to rhs; otherwise, false.
| 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.
<mrdocs/ADT/Optional.hpp>template<
typename T,
typename U>
requires (!detail::isOptionalV<T>)
constexpr
/* implementation-defined */
operator>=(
T const& lhs,
Optional<U> const& rhs);
true if the optional is disengaged or lhs is greater than or equal to its value; otherwise, false.
| Name | Description |
|---|---|
| lhs | The left operand |
| rhs | The right operand |
Three-way comparison operators
<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; };
» more...
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);
» more...
Performs a three-way comparison between an Optional and std::nullopt. Returns std::strong_ordering::greater if engaged, std::strong_ordering::equal if disengaged.
template<typename T>
[[nodiscard]]
constexpr
std::strong_ordering
operator<=>(
Optional<T> const& x,
std::nullopt_t rhs) noexcept;
» more...
Performs a three-way comparison between an Optional and a value. If the Optional is engaged, compares its value to v; otherwise, returns less.
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);
» more...
Three-way comparison of two polymorphic objects.
template<class Base>
requires detail::CanVisitCompare<Base>
auto
operator<=>(
Polymorphic<Base> const& lhs,
Polymorphic<Base> const& rhs);
» more...
Compare two polymorphic types for ordering.
std::strong_ordering
operator<=>(
Polymorphic<Type> const& lhs,
Polymorphic<Type> const& rhs);
» more...
Compare optional polymorphic types, treating disengaged as less.
std::strong_ordering
operator<=>(
Optional<Polymorphic<Type>> const& lhs,
Optional<Polymorphic<Type>> const& rhs);
» more...
Compare polymorphic template arguments.
std::strong_ordering
operator<=>(
Polymorphic<TArg> const& lhs,
Polymorphic<TArg> const& rhs);
» more...
Three-way comparison for polymorphic Name variants.
std::strong_ordering
operator<=>(
Polymorphic<Name> const& lhs,
Polymorphic<Name> const& rhs);
» more...
Compare polymorphic template parameters.
std::strong_ordering
operator<=>(
Polymorphic<TParam> const& lhs,
Polymorphic<TParam> const& rhs);
» more...
Compare optional template infos, treating disengaged as ordered before engaged.
auto
operator<=>(
Optional<TemplateInfo> const& lhs,
Optional<TemplateInfo> const& rhs);
» more...
std::nullopt.Three-way comparison operator
<mrdocs/ADT/ArrayView.hpp>constexpr
auto
operator<=>(
ArrayView a,
ArrayView b) noexcept
requires requires (const T& x, const T& y) { x <=> y; };
| 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.
<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);
| 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.
<mrdocs/ADT/Optional.hpp>template<typename T>
[[nodiscard]]
constexpr
std::strong_ordering
operator<=>(
Optional<T> const& x,
std::nullopt_t rhs) noexcept;
std::nullopt.
| 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.
<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);
| Name | Description |
|---|---|
| x | The left operand |
| v | The right operand |
Three-way comparison of two polymorphic objects.
<mrdocs/ADT/Polymorphic.hpp>template<class Base>
requires detail::CanVisitCompare<Base>
auto
operator<=>(
Polymorphic<Base> const& lhs,
Polymorphic<Base> const& rhs);
| Name | Description |
|---|---|
| lhs | The left operand |
| rhs | The right operand |
Compare two polymorphic types for ordering.
<mrdocs/Metadata/Type.hpp>std::strong_ordering
operator<=>(
Polymorphic<Type> const& lhs,
Polymorphic<Type> const& rhs);
| Name | Description |
|---|---|
| lhs | The left operand |
| rhs | The right operand |
Compare optional polymorphic types, treating disengaged as less.
<mrdocs/Metadata/Type.hpp>std::strong_ordering
operator<=>(
Optional<Polymorphic<Type>> const& lhs,
Optional<Polymorphic<Type>> const& rhs);
| Name | Description |
|---|---|
| lhs | The left operand |
| rhs | The right operand |
Compare polymorphic template arguments.
<mrdocs/Metadata/TArg.hpp>std::strong_ordering
operator<=>(
Polymorphic<TArg> const& lhs,
Polymorphic<TArg> const& rhs);
| Name | Description |
|---|---|
| lhs | The left operand |
| rhs | The right operand |
Three-way comparison for polymorphic Name variants.
<mrdocs/Metadata/Name.hpp>std::strong_ordering
operator<=>(
Polymorphic<Name> const& lhs,
Polymorphic<Name> const& rhs);
| Name | Description |
|---|---|
| lhs | The left operand |
| rhs | The right operand |
Compare polymorphic template parameters.
<mrdocs/Metadata/TParam.hpp>std::strong_ordering
operator<=>(
Polymorphic<TParam> const& lhs,
Polymorphic<TParam> const& rhs);
| Name | Description |
|---|---|
| lhs | The left operand |
| rhs | The right operand |
Compare optional template infos, treating disengaged as ordered before engaged.
<mrdocs/Metadata/Template.hpp>auto
operator<=>(
Optional<TemplateInfo> const& lhs,
Optional<TemplateInfo> const& rhs);
| Name | Description |
|---|---|
| lhs | The left operand |
| rhs | The right operand |
Split a string view into lines, recognizing all common line breaks
<mrdocs/Support/SplitLines.hpp>inline constexpr SplitLinesAdaptor splitLines = {};
This is a convenience function for creating a SplitLinesView.
Tag object to request unexpected construction.
<mrdocs/Support/Expected.hpp>inline constexpr unexpect_t unexpect = unexpect{};
Internal concept that matches “empty-clear default-constructible” types.
<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>;
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.
<mrdocs/Metadata/DocComment.hpp>template<class T>
concept DocCommentNode = std::derived_from<T, doc::Block> || std::derived_from<T, doc::Inline>;
Types that can be traversed by DocComment helpers.
<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.
<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>;
};
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.
<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.
<mrdocs/Metadata/Symbol.hpp>template<class SymbolTy>
concept SymbolParent = requires(SymbolTy const& I)
{
{ allMembers(I) } -> range_of<SymbolID>;
};
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
<mrdocs/Support/Concepts.hpp>template<class T>
concept dereferenceable = requires(T const& t)
{
{ static_cast<bool>(t) };
{ *t };
};
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 concept that returns true if T has a nullable_traits specialization enabled.
<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
<mrdocs/Support/Concepts.hpp>template<class T>
concept pair_like = tuple_like<T> &&
(std::tuple_size<std::remove_cvref_t<T>>::value == 2);
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
<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*>;
};
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
<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
<mrdocs/Support/Concepts.hpp>template<class Range>
concept range_of_tuple_like = std::ranges::range<Range> && tuple_like<std::ranges::range_value_t<Range>>;
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.
Like reference_converts_from_temporary_v, but for construction.
<mrdocs/Support/Concepts.hpp>template<
class To,
class From>
concept reference_constructs_from_temporary_v = reference_converts_from_temporary_v<To, From>;
True when binding To from From would require a temporary conversion.
<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
<mrdocs/Support/Concepts.hpp>template<class T>
concept tuple_like = detail::has_tuple_size<T>::value &&
detail::all_tuple_elements<T>::value;
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.
Deduce ArrayView element type from C-style array.
<mrdocs/ADT/ArrayView.hpp>template<
class T,
std::size_t N>
ArrayView<T>(T const(&)[]) -> ArrayView<T>;
Deduce ArrayView element type from pointer and count.
<mrdocs/ADT/ArrayView.hpp>template<class T>
ArrayView<T>(
T const*,
std::size_t) -> ArrayView<T>;
Class template argument deduction guide for Overload.
<mrdocs/ADT/Overload.hpp>template<class... Ts>
Overload<Ts...>(Ts...) -> Overload<Ts...>;
Allows writing Overload{lambda1, lambda2, ...} without specifying template parameters.
Deduction guide for RangeFor.
<mrdocs/Support/RangeFor.hpp>template<class Container>
RangeFor<Container>(Container const&) -> RangeFor<Container>;
Deduction guide for RangeFor.
Deduction guide for ScopeExit.
<mrdocs/Support/ScopeExit.hpp>template<class F>
ScopeExit<F>(F) -> ScopeExit<F>;
Deduction guide for ScopeExitRestore taking a reference.
<mrdocs/Support/ScopeExit.hpp>template<class T>
ScopeExitRestore<T>(T&) -> ScopeExitRestore<T>;
Deduction guide for ScopeExitRestore taking a reference and new value.
<mrdocs/Support/ScopeExit.hpp>template<
class T,
std::convertible_to<T> T2>
ScopeExitRestore<T>(
T&,
T2) -> ScopeExitRestore<T>;
Deduction guide for Unexpected, forwarding the error type.
<mrdocs/Support/Expected.hpp>template<class E>
Unexpected<E>(E) -> Unexpected<E>;
Alias to std::source_location when available.
<mrdocs/Support/source_location.hpp>using std::source_location;