| Name |
|---|
mrdocs |
| Name | Description |
|---|---|
doc | |
dom | Objects representing JSON-like values. |
files | |
helpers | |
js | |
lua | |
report |
| Name | Description |
|---|---|
AnyFileVisitor | |
ArrayType | |
ArrayView | A non-owning, read-only view over a contiguous array of T. |
AutoType | |
BadExpectedAccess | |
BadExpectedAccess<void> | |
BaseInfo | Metadata for a direct base. |
ConceptSymbol | Info for concepts. |
Config | Configuration used to generate the Corpus and Docs |
ConstantExprInfo | Represents an expression with a (possibly known) value |
ConstantTArg | |
ConstantTParam | A constant template parameter |
Corpus | The collection of declarations in extracted form. |
DecltypeType | |
DocComment | A processed documentation comment attached to a declaration. |
DomCorpus | Front-end factory for producing Dom nodes. |
EnumConstantSymbol | Info for enum constants. |
EnumSymbol | |
Error | Holds the description of an error, or success. |
Exception | Type of all exceptions thrown by the API. |
ExecutorGroup | A set of execution agents for performing concurrent work. |
ExecutorGroupBase | |
Expected | A container holding an error or a value. |
Expected<T, E> | |
Expected<T&, E> | |
ExplicitInfo | Stores only the operand of the explicit-specifier or noexcept-specifier as a string. The complete expression is not preserved at this time. This is a temporary design and may be improved in the future. |
ExprInfo | Represents an expression |
FormatString | A format string with source location. |
FriendInfo | Info for friend declarations. |
FunctionSymbol | |
FunctionType | |
Generator | Base class for documentation generators. |
Generators | A dynamic list of Generator elements. |
GlobPattern | A glob pattern matcher |
GuideSymbol | Info for deduction guides. |
Handlebars | A handlebars environment |
HandlebarsError | An error thrown or returned by Handlebars |
HandlebarsOptions | Options for handlebars |
IdentifierName | Represents an identifier |
LValueReferenceType | |
Location | |
MemberPointerType | |
Name | Represents a name for a named Type |
NamedType | |
NamespaceAliasSymbol | Info for namespace aliases. |
NamespaceSymbol | Describes a namespace. |
NamespaceTranche | The members of a Namespace |
NoexceptInfo | |
Optional | A compact optional that automatically uses nullable_traits<T> when available. |
Optional<T&> | |
OutputRef | Reference to output stream used by handlebars |
Overload | Combines multiple callable types into a single overloaded function object. |
OverloadsSymbol | Represents a set of function overloads. |
Param | Represents a single function parameter |
ParseResult | The result of a parse operation. |
PathGlobPattern | A glob pattern matcher for paths |
PointerType | |
Polymorphic | A polymorphic value-type. |
RValueReferenceType | |
RangeFor | Range to help range-for loops identify first and last. |
RecordInterface | The aggregated interface for a given struct, class, or union. |
RecordSymbol | Metadata for struct, class, or union. |
RecordTranche | A group of members that have the same access specifier. |
ReferenceDirectories | Reference directories used to resolve paths |
ScopeExit | |
ScopeExitRestore | |
SourceInfo | Stores source information for a declaration. |
SourceLocation | A source location with filename prettification. |
SpecializationName | Represents a (possibly qualified) symbol name with template arguments. |
SplitLinesAdaptor | |
SplitLinesView | |
StringHash | |
Symbol | Base class with common properties of all symbols |
SymbolCommonBase | Base class for providing variant discriminator functions. |
SymbolGlobPattern | A glob pattern matcher for C++ symbols |
SymbolID | A unique identifier for a symbol. |
TArg | |
TArgCommonBase | |
TParam | |
TParamCommonBase | |
TaskGroup | A subset of possible work in a thread pool. |
TemplateInfo | Information about templates and specializations thereof. |
TemplateTArg | |
TemplateTParam | |
ThreadPool | A pool of threads for executing work concurrently. |
Type | A possibly qualified type. |
TypeCommonBase | |
TypeTArg | |
TypeTParam | |
TypedefSymbol | |
Unexpected | |
UsingSymbol | Info for using declarations. |
VariableSymbol | A variable. |
Visitor | A visitor for a type |
YCombinator | Enables recursive lambdas by passing a self-reference as the first argument. |
add_const_from | |
add_cv_from | |
add_cvref_from | |
add_lvalue_reference_from | |
add_reference_from | |
add_rvalue_reference_from | |
add_volatile_from | |
any_callable | A movable, type-erased function object. |
any_callable<R(Args...)> | |
make_dependent | |
nullable_traits | nullable_traits<T> defines how to treat a T as “nullable” without an external engaged bit. |
nullable_traits<Location> | nullable_traits specialization for Location. |
nullable_traits<T> | nullable_traits for types with a sentinel. |
nullable_traits<Polymorphic<T>> | nullable_traits for Polymorphic<T>. |
sentinel_traits | Defines a customization point for types that have an intrinsic sentinel value denoting “null”. |
sentinel_traits<std::nullptr_t> | sentinel_traits specialization for std::nullptr_t. |
sentinel_traits<T> | sentinel_traits specialization for unsigned integral types. |
sentinel_traits<T*> | sentinel_traits specialization for raw pointers. |
unexpect_t | |
unlock_guard | A scoped guard which unlocks a mutex. |
UnorderedStringMap | |
UnorderedStringMultiMap | |
add_const_from_t | |
add_cv_from_t | |
add_cvref_from_t | |
add_lvalue_reference_from_t | |
add_reference_from_t | |
add_rvalue_reference_from_t | |
add_volatile_from_t | |
make_dependent_t |
| Name | Description |
|---|---|
AccessKind | Access specifier. |
AutoKind | The kind of auto keyword used in a declaration. |
ConstexprKind | constexpr/consteval specifier kinds |
ExplicitKind | Explicit specifier kinds |
ExtractionMode | Determine why a symbol is extracted |
FileKind | |
FunctionClass | Function classifications |
FundamentalTypeKind | Categorically describes a fundamental type. |
ListKind | |
NameKind | |
NoexceptKind | Exception specification kinds |
OperatorKind | Operator kinds |
QualifierKind | Type qualifiers |
RecordKeyKind | The kind of record: struct, class, or union. |
ReferenceKind | Reference type kinds |
StorageClassKind | Storage class kinds |
SymbolKind | Info variant discriminator |
TArgKind | The kind of template argument. |
TParamKeyKind | The keyword a template parameter was declared with |
TParamKind | |
TableAlignmentKind | |
TemplateSpecKind | The kind of template or specialization. |
TypeKind | |
UsingClass | The class of using declaration. |
| Name | Description |
|---|---|
CompareDerived | Compares two polymorphic objects that have visit functions |
HTMLEscape | HTMLEscape overloads |
addMember | |
allMembers | |
assert_failed | |
bottomUpTraverse | |
canMerge | |
cast | |
cast_or_null | |
compareSymbolNames | Return the result of comparing s0 to s1. |
contains | Determine if a range contains a specific element. |
contains_any | Determine if a range contains any of the specified elements. |
contains_n | Determine if a range contains at least N instances of the specified element. |
contains_n_any | Determine if a range contains at least N instances of any of the specified elements. |
countSymbolKind | |
createFrame | Create child data objects. |
dyn_cast | |
dyn_cast_or_null | |
endsWithOneOf | Determine if a string ends with one of the specified characters |
escapeExpression | |
find_last_of | Find the last element in a range that matches an element in the specified range. |
forEachFile | forEachFile overloads |
formatError | Return a formatted error. |
fromString | Convert a string to a FundamentalTypeKind. |
getDefaultAccessString | |
getGenerators | Return a reference to the global Generators instance. |
getOperatorKind | Return the short name of an operator as a string. |
getOperatorKindFromSuffix | Return the short name of an operator as a string. |
getOperatorName | Return the name of an operator as a string. |
getOperatorReadableName | Return the human-readable name of the operator |
getParents | getParents overloads |
getPrimaryLocation | |
getSafeOperatorName | Return the safe name of an operator as a string. |
getShortOperatorName | Return the short name of an operator as a string. |
getSinglePageFullPath | Return the full path for single page output. |
innerType | Return the inner type. |
innerTypePtr | Return the inner type. |
innermostType | Return the innermost type. |
isAlphaNumeric | |
isAlphabetic | |
isBinaryOperator | Determines whether the operator is potentially binary. |
isDigit | |
isEmpty | Determine if a value is empty |
isLowerCase | |
isUnaryOperator | Determines whether the operator is potentially unary. |
isUpperCase | |
isWhitespace | Determine if a string is only whitespace. |
is_null | is_null helper that uses nullable_traits<T> if available. |
is_one_of | Determine if an element is equal to any of the elements in the specified range. |
isa | |
isa_or_null | |
leastSpecific | Compare ExtractionModes and returns the least specific |
ltrim | ltrim overloads |
makeChar | Apply the "char" specifier to the type |
makeLong | Apply the "long" specifier to the type |
makeOverload | Factory function that creates an Overload from the given callables. |
makeShort | Apply the "short" specifier to the type |
makeSigned | Apply the "signed" specifier to the type |
makeUnsigned | Apply the "unsigned" specifier to the type |
makeVisitor | Make a visitor for a base type |
make_array_view | |
make_null | make_null helper that uses nullable_traits<T> if available. |
match | Applies a set of callables to a std::variant using std::visit and Overload. |
merge | merge overloads |
mostSpecific | Compare ExtractionModes and returns the most specific |
null_of | null_of helper that constructs a null T using nullable_traits<T>. |
operator| | |
overrides | Determine if one function would override the other |
parse | Parse a string view |
reindentCode | Reindent code by removing the common leading spaces and adding the specified indent. |
replace | Return the substring without leading and trailing horizontal whitespace. |
rtrim | rtrim overloads |
safeString | Create a wrapper for a safe string. |
startsWithOneOf | Determine if a string starts with one of the specified characters |
swap | |
tag_invoke | tag_invoke overloads |
toBase16Str | Convert a SymbolID to a string |
toCamelCase | |
toKebabCase | |
toLowerCase | |
toPascalCase | |
toSnakeCase | |
toString | toString overloads |
toUpperCase | |
to_underlying | Return the value as its underlying type. |
topDownTraverse | |
trim | trim overloads |
visit | Invoke a function object with a type derived from Symbol |
visitIndexed | Visits a std::variant and calls the combined callable with the active index and the value. |
yCombinator | Factory that creates a YCombinator from a callable. |
operator<< | Write to output |
operator== | Equality operators |
operator!= | Inequality operators |
operator< | Less-than operators |
operator<= | Less-than-or-equal operators |
operator> | Greater-than operators |
operator>= | Greater-than-or-equal operators |
operator<=> | Three-way comparison operators |
| Name | Description |
|---|---|
splitLines | Split a string view into lines, recognizing all common line breaks |
unexpect |
| Name | Description |
|---|---|
ClearableContainerLike | Internal concept that matches “empty-clear default-constructible” types. |
DocCommentNode | Concept to check if a type represents a DocComment node. |
DocCommentNodeTraversable | |
HasParse | Concept to determine if there's a parse function for a type. |
HasSentinel | Concept that is satisfied when sentinel_traits<T> declares a usable sentinel. |
SymbolParent | A concept for types that have Symbol members. |
dereferenceable | Determine if a type is dereferenceable |
has_nullable_traits_v | Utility function that returns true if T has a nullable_traits specialization enabled. |
pair_like | Concept to check if a type is pair-like |
polymorphic_storage_for | Concept to check if a type is representing a polymorphic storage |
range_of | Concept to check if a type is a range of T |
range_of_tuple_like | Concept to check if a range is a range of tuple-like elements |
reference_constructs_from_temporary_v | |
reference_converts_from_temporary_v | |
tuple_like | Concept to check if a type is tuple-like |
| Name | Description |
|---|---|
ArrayView<T> | |
ArrayView<T> | |
Overload<Ts...> | Class template argument deduction guide for Overload. |
RangeFor<Container> | |
ScopeExit<F> | |
ScopeExitRestore<T> | |
ScopeExitRestore<T> | |
Unexpected<E> |
| Name |
|---|
source_location |
| Name | Description |
|---|---|
AdmonitionBlock | A block for side-notes like tips, warnings, notes |
Block | A piece of block content |
BlockCommonBase | Base class for providing variant discriminator functions. |
BlockContainer | |
BriefBlock | The brief description |
CodeBlock | Preformatted source code. |
CodeInline | A piece of styled text. |
CopyDetailsInline | Documentation copied from another symbol. |
DefinitionListBlock | |
DefinitionListItem | An item in a definition list |
EmphInline | A piece of styled text. |
FootnoteDefinitionBlock | Preformatted source code. |
FootnoteReferenceInline | A reference to a symbol. |
HeadingBlock | A manually specified section heading. |
HighlightInline | A piece of highlighted text. |
ImageInline | An image. |
Inline | A Node containing a string of text. |
InlineCommonBase | Base class for providing variant discriminator functions. |
InlineContainer | An internal node in the inline element tree |
InlineTextLeaf | A leaf node that stores a string of text. |
LineBreakInline | A hard line break that renders as "" |
LinkInline | A hyperlink. |
ListBlock | A list of list items |
ListItem | An item in a list |
MathBlock | A block of LaTeX math |
MathInline | An inline LaTeX math expression |
ParagraphBlock | A sequence of text nodes. |
ParamBlock | Documentation for a function parameter |
PostconditionBlock | |
PreconditionBlock | |
QuoteBlock | A list of list items |
ReferenceInline | A reference to a symbol. |
ReturnsBlock | Documentation for a function return type |
SeeBlock | A |
SoftBreakInline | A line break that may render as space |
StrikethroughInline | A piece of styled text. |
StrongInline | A piece of styled text. |
SubscriptInline | A piece of styled text. |
SuperscriptInline | A piece of styled text. |
TParamBlock | Documentation for a template parameter |
TableBlock | A table block |
TableCell | A cell in a table |
TableRow | An item in a list |
TextInline | A Node containing a string of text. |
ThematicBreakBlock | The brief description |
ThrowsBlock | Documentation for a function parameter |
| Name | Description |
|---|---|
AdmonitionKind | An admonishment style. |
BlockKind | |
InlineKind | |
ParamDirection | Parameter pass direction. |
Parts | Which parts of the documentation to copy. |
| Name | Description |
|---|---|
getAsPlainText | getAsPlainText overloads |
isBlockCommand | |
isEmpty | Determine if the inline is empty |
ltrim | ltrim overloads |
rtrim | rtrim overloads |
tag_invoke | tag_invoke overloads |
toString | toString overloads |
traverse | Traverse a list of inlines. |
trim | trim overloads |
visit | visit overloads |
operator== | Equality operators |
operator<=> | Three-way comparison operators |
Objects representing JSON-like values.
| Name |
|---|
JSON |
| Name | Description |
|---|---|
Array | An array of values |
ArrayImpl | Abstract array interface. |
DefaultArrayImpl | The default array implementation. |
DefaultFunctionImpl | |
DefaultObjectImpl | The default Object implementation. |
Function | |
FunctionImpl | |
LazyArrayImpl | Lazy array implementation |
LazyArrayImpl | Lazy array implementation |
LazyObjectImpl | Lazy object implementation. |
LazyObjectImpl | Lazy object implementation. |
LazyObjectMapTag | Customization point tag. |
Object | A container of key and value pairs. |
ObjectImpl | Abstract object interface. |
String | |
Value | A variant container for any kind of Dom value. |
ValueFromTag | Customization point tag. |
VariadicFunctionImpl | |
function_traits | |
function_traits<F> | |
function_traits<R(*)(Args...)> | |
function_traits<R(Args...)> | |
function_traits<R const volatile(C::*)(Args...)> |
| 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 | |
makeVariadicInvocable | |
newArray | Return a new array using a custom implementation. |
newFunction | Return a diagnostic string. |
newObject | Return a new object using a custom implementation. |
operator&& | Return the first dom::Value that is not truthy, or the last one. |
operator+ | Addition operators |
operator|| | Return the first dom::Value that is truthy, or the last one. |
stringOrNull | Return a non-empty string, or a null. |
swap | swap overloads |
toString | toString overloads |
operator== | Equality operators |
operator!= | Return the result of comparing two strings. |
operator<=> | Three-way comparison operators |
| Name | Description |
|---|---|
HasLazyObjectMap | Determine if T can be converted to dom::Value. |
HasLazyObjectMapWithContext | Concept to determine if a type can be mapped to a dom::LazyObjectImpl with a user-provided conversion. |
HasLazyObjectMapWithoutContext | Concept to determine if a type can be mapped to a dom::LazyObjectImpl with a user-provided conversion. |
HasStandaloneValueFrom | Determine if T can be converted to dom::Value without a context. |
HasValueFrom | Determine if T can be converted to dom::Value. |
HasValueFromWithContext | Concept to determine if a type can be converted to a dom::Value with a user-provided conversion. |
HasValueFromWithoutContext | Concept to determine if a type can be converted to a dom::Value with a user-provided conversion. |
StringLikeTy | Satisfied if StringTy is convertible to String but not a String. |
function_traits_convertible_to_value | |
has_function_args_for_default_function_impl | |
has_function_traits | |
has_function_traits_for_default_function_impl | |
has_invoke_expected_result_convertible_to_dom_value | |
has_invoke_result_convertible_to_dom_value | |
has_invoke_result_for_default_function_impl |
| Name | Description |
|---|---|
stringify | Stringify a value as JSON |
| Name | Description |
|---|---|
FileType | The type of a file. |
| Name | Description |
|---|---|
appendPath | |
createDirectory | Create a directory. |
exists | Determine if a path exists |
getFileName | Return the filename part of the path. |
getFileText | Return the contents of a file as a string. |
getFileType | Return the file type or an error |
getParentDir | Return the parent directory. |
getSourceFilename | Return the relevant suffix of a source file path. |
isAbsolute | Return true if pathName is absolute. |
isDirectory | Determine if a path is a directory. |
isDirsy | Return true if pathName ends in a separator. |
isLexicalDirectory | Determine lexically if a path is a directory. |
isPosixStyle | Check if the path is posix style. |
makeAbsolute | Return an absolute path from a possibly relative path. |
makeDirsy | Append a trailing native separator if not already present. |
makePosixStyle | Convert all backward slashes to forward slashes. |
normalizeDir | Return a normalized directory. |
normalizePath | Return a normalized path. |
requireAbsolute | Return an error if pathName is not absolute. |
requireDirectory | Return an error if the path is not a directory. |
startsWith | Checks if the given path starts with the specified prefix. |
withExtension | Return the filename with a new or different extension. |
| 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 |
| Name | Description |
|---|---|
Access | |
Array | |
Boolean | |
Context | An instance of a JavaScript interpreter. |
Object | |
Prop | |
Scope | A JavaScript scope |
String | |
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. |
| Name | Description |
|---|---|
Access | |
Context | A reference to an instance of a Lua interpreter. |
Function | A Lua function. |
Param | A lazy container to push values to the Lua stack. |
Scope | |
String | A Lua string. |
Table | A Lua table. |
Value | A Lua value. |
zstring | A null-terminated string. |
FunctionPtr |
| Name | Description |
|---|---|
Type | Types of values. |
| 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 | Report a message to the console. |
error | Report a message to the console. |
fatal | Report a message to the console. |
getMinimumLevel | |
info | Report a message to the console. |
log | Format a message to the console. |
print | Report a message to the console. |
setMinimumLevel | Set the minimum threshold level for reporting. |
setSourceLocationWarnings | If true, source location information will be printed with warnings, errors, and fatal messages. |
trace | Report a message to the console. |
warn | Report a message to the console. |
| Name | Description |
|---|---|
results | Holds current statistics on reported messages. |
| Name | Description |
|---|---|
doc | |
dom | Objects representing JSON-like values. |
files | |
helpers | |
js | |
lua | |
report |
| Name | Description |
|---|---|
AnyFileVisitor | |
ArrayType | |
ArrayView | A non-owning, read-only view over a contiguous array of T. |
AutoType | |
BadExpectedAccess | |
BadExpectedAccess<void> | |
BaseInfo | Metadata for a direct base. |
ConceptSymbol | Info for concepts. |
Config | Configuration used to generate the Corpus and Docs |
ConstantExprInfo | Represents an expression with a (possibly known) value |
ConstantTArg | |
ConstantTParam | A constant template parameter |
Corpus | The collection of declarations in extracted form. |
DecltypeType | |
DocComment | A processed documentation comment attached to a declaration. |
DomCorpus | Front-end factory for producing Dom nodes. |
EnumConstantSymbol | Info for enum constants. |
EnumSymbol | |
Error | Holds the description of an error, or success. |
Exception | Type of all exceptions thrown by the API. |
ExecutorGroup | A set of execution agents for performing concurrent work. |
ExecutorGroupBase | |
Expected | A container holding an error or a value. |
Expected<T, E> | |
Expected<T&, E> | |
ExplicitInfo | Stores only the operand of the explicit-specifier or noexcept-specifier as a string. The complete expression is not preserved at this time. This is a temporary design and may be improved in the future. |
ExprInfo | Represents an expression |
FormatString | A format string with source location. |
FriendInfo | Info for friend declarations. |
FunctionSymbol | |
FunctionType | |
Generator | Base class for documentation generators. |
Generators | A dynamic list of Generator elements. |
GlobPattern | A glob pattern matcher |
GuideSymbol | Info for deduction guides. |
Handlebars | A handlebars environment |
HandlebarsError | An error thrown or returned by Handlebars |
HandlebarsOptions | Options for handlebars |
IdentifierName | Represents an identifier |
LValueReferenceType | |
Location | |
MemberPointerType | |
Name | Represents a name for a named Type |
NamedType | |
NamespaceAliasSymbol | Info for namespace aliases. |
NamespaceSymbol | Describes a namespace. |
NamespaceTranche | The members of a Namespace |
NoexceptInfo | |
Optional | A compact optional that automatically uses nullable_traits<T> when available. |
Optional<T&> | |
OutputRef | Reference to output stream used by handlebars |
Overload | Combines multiple callable types into a single overloaded function object. |
OverloadsSymbol | Represents a set of function overloads. |
Param | Represents a single function parameter |
ParseResult | The result of a parse operation. |
PathGlobPattern | A glob pattern matcher for paths |
PointerType | |
Polymorphic | A polymorphic value-type. |
RValueReferenceType | |
RangeFor | Range to help range-for loops identify first and last. |
RecordInterface | The aggregated interface for a given struct, class, or union. |
RecordSymbol | Metadata for struct, class, or union. |
RecordTranche | A group of members that have the same access specifier. |
ReferenceDirectories | Reference directories used to resolve paths |
ScopeExit | |
ScopeExitRestore | |
SourceInfo | Stores source information for a declaration. |
SourceLocation | A source location with filename prettification. |
SpecializationName | Represents a (possibly qualified) symbol name with template arguments. |
SplitLinesAdaptor | |
SplitLinesView | |
StringHash | |
Symbol | Base class with common properties of all symbols |
SymbolCommonBase | Base class for providing variant discriminator functions. |
SymbolGlobPattern | A glob pattern matcher for C++ symbols |
SymbolID | A unique identifier for a symbol. |
TArg | |
TArgCommonBase | |
TParam | |
TParamCommonBase | |
TaskGroup | A subset of possible work in a thread pool. |
TemplateInfo | Information about templates and specializations thereof. |
TemplateTArg | |
TemplateTParam | |
ThreadPool | A pool of threads for executing work concurrently. |
Type | A possibly qualified type. |
TypeCommonBase | |
TypeTArg | |
TypeTParam | |
TypedefSymbol | |
Unexpected | |
UsingSymbol | Info for using declarations. |
VariableSymbol | A variable. |
Visitor | A visitor for a type |
YCombinator | Enables recursive lambdas by passing a self-reference as the first argument. |
add_const_from | |
add_cv_from | |
add_cvref_from | |
add_lvalue_reference_from | |
add_reference_from | |
add_rvalue_reference_from | |
add_volatile_from | |
any_callable | A movable, type-erased function object. |
any_callable<R(Args...)> | |
make_dependent | |
nullable_traits | nullable_traits<T> defines how to treat a T as “nullable” without an external engaged bit. |
nullable_traits<Location> | nullable_traits specialization for Location. |
nullable_traits<T> | nullable_traits for types with a sentinel. |
nullable_traits<Polymorphic<T>> | nullable_traits for Polymorphic<T>. |
sentinel_traits | Defines a customization point for types that have an intrinsic sentinel value denoting “null”. |
sentinel_traits<std::nullptr_t> | sentinel_traits specialization for std::nullptr_t. |
sentinel_traits<T> | sentinel_traits specialization for unsigned integral types. |
sentinel_traits<T*> | sentinel_traits specialization for raw pointers. |
unexpect_t | |
unlock_guard | A scoped guard which unlocks a mutex. |
UnorderedStringMap | |
UnorderedStringMultiMap | |
add_const_from_t | |
add_cv_from_t | |
add_cvref_from_t | |
add_lvalue_reference_from_t | |
add_reference_from_t | |
add_rvalue_reference_from_t | |
add_volatile_from_t | |
make_dependent_t |
| Name | Description |
|---|---|
AccessKind | Access specifier. |
AutoKind | The kind of auto keyword used in a declaration. |
ConstexprKind | constexpr/consteval specifier kinds |
ExplicitKind | Explicit specifier kinds |
ExtractionMode | Determine why a symbol is extracted |
FileKind | |
FunctionClass | Function classifications |
FundamentalTypeKind | Categorically describes a fundamental type. |
ListKind | |
NameKind | |
NoexceptKind | Exception specification kinds |
OperatorKind | Operator kinds |
QualifierKind | Type qualifiers |
RecordKeyKind | The kind of record: struct, class, or union. |
ReferenceKind | Reference type kinds |
StorageClassKind | Storage class kinds |
SymbolKind | Info variant discriminator |
TArgKind | The kind of template argument. |
TParamKeyKind | The keyword a template parameter was declared with |
TParamKind | |
TableAlignmentKind | |
TemplateSpecKind | The kind of template or specialization. |
TypeKind | |
UsingClass | The class of using declaration. |
| Name | Description |
|---|---|
CompareDerived | Compares two polymorphic objects that have visit functions |
HTMLEscape | HTMLEscape overloads |
addMember | |
allMembers | |
assert_failed | |
bottomUpTraverse | |
canMerge | |
cast | |
cast_or_null | |
compareSymbolNames | Return the result of comparing s0 to s1. |
contains | Determine if a range contains a specific element. |
contains_any | Determine if a range contains any of the specified elements. |
contains_n | Determine if a range contains at least N instances of the specified element. |
contains_n_any | Determine if a range contains at least N instances of any of the specified elements. |
countSymbolKind | |
createFrame | Create child data objects. |
dyn_cast | |
dyn_cast_or_null | |
endsWithOneOf | Determine if a string ends with one of the specified characters |
escapeExpression | |
find_last_of | Find the last element in a range that matches an element in the specified range. |
forEachFile | forEachFile overloads |
formatError | Return a formatted error. |
fromString | Convert a string to a FundamentalTypeKind. |
getDefaultAccessString | |
getGenerators | Return a reference to the global Generators instance. |
getOperatorKind | Return the short name of an operator as a string. |
getOperatorKindFromSuffix | Return the short name of an operator as a string. |
getOperatorName | Return the name of an operator as a string. |
getOperatorReadableName | Return the human-readable name of the operator |
getParents | getParents overloads |
getPrimaryLocation | |
getSafeOperatorName | Return the safe name of an operator as a string. |
getShortOperatorName | Return the short name of an operator as a string. |
getSinglePageFullPath | Return the full path for single page output. |
innerType | Return the inner type. |
innerTypePtr | Return the inner type. |
innermostType | Return the innermost type. |
isAlphaNumeric | |
isAlphabetic | |
isBinaryOperator | Determines whether the operator is potentially binary. |
isDigit | |
isEmpty | Determine if a value is empty |
isLowerCase | |
isUnaryOperator | Determines whether the operator is potentially unary. |
isUpperCase | |
isWhitespace | Determine if a string is only whitespace. |
is_null | is_null helper that uses nullable_traits<T> if available. |
is_one_of | Determine if an element is equal to any of the elements in the specified range. |
isa | |
isa_or_null | |
leastSpecific | Compare ExtractionModes and returns the least specific |
ltrim | ltrim overloads |
makeChar | Apply the "char" specifier to the type |
makeLong | Apply the "long" specifier to the type |
makeOverload | Factory function that creates an Overload from the given callables. |
makeShort | Apply the "short" specifier to the type |
makeSigned | Apply the "signed" specifier to the type |
makeUnsigned | Apply the "unsigned" specifier to the type |
makeVisitor | Make a visitor for a base type |
make_array_view | |
make_null | make_null helper that uses nullable_traits<T> if available. |
match | Applies a set of callables to a std::variant using std::visit and Overload. |
merge | merge overloads |
mostSpecific | Compare ExtractionModes and returns the most specific |
null_of | null_of helper that constructs a null T using nullable_traits<T>. |
operator| | |
overrides | Determine if one function would override the other |
parse | Parse a string view |
reindentCode | Reindent code by removing the common leading spaces and adding the specified indent. |
replace | Return the substring without leading and trailing horizontal whitespace. |
rtrim | rtrim overloads |
safeString | Create a wrapper for a safe string. |
startsWithOneOf | Determine if a string starts with one of the specified characters |
swap | |
tag_invoke | tag_invoke overloads |
toBase16Str | Convert a SymbolID to a string |
toCamelCase | |
toKebabCase | |
toLowerCase | |
toPascalCase | |
toSnakeCase | |
toString | toString overloads |
toUpperCase | |
to_underlying | Return the value as its underlying type. |
topDownTraverse | |
trim | trim overloads |
visit | Invoke a function object with a type derived from Symbol |
visitIndexed | Visits a std::variant and calls the combined callable with the active index and the value. |
yCombinator | Factory that creates a YCombinator from a callable. |
operator<< | Write to output |
operator== | Equality operators |
operator!= | Inequality operators |
operator< | Less-than operators |
operator<= | Less-than-or-equal operators |
operator> | Greater-than operators |
operator>= | Greater-than-or-equal operators |
operator<=> | Three-way comparison operators |
| Name | Description |
|---|---|
splitLines | Split a string view into lines, recognizing all common line breaks |
unexpect |
| Name | Description |
|---|---|
ClearableContainerLike | Internal concept that matches “empty-clear default-constructible” types. |
DocCommentNode | Concept to check if a type represents a DocComment node. |
DocCommentNodeTraversable | |
HasParse | Concept to determine if there's a parse function for a type. |
HasSentinel | Concept that is satisfied when sentinel_traits<T> declares a usable sentinel. |
SymbolParent | A concept for types that have Symbol members. |
dereferenceable | Determine if a type is dereferenceable |
has_nullable_traits_v | Utility function that returns true if T has a nullable_traits specialization enabled. |
pair_like | Concept to check if a type is pair-like |
polymorphic_storage_for | Concept to check if a type is representing a polymorphic storage |
range_of | Concept to check if a type is a range of T |
range_of_tuple_like | Concept to check if a range is a range of tuple-like elements |
reference_constructs_from_temporary_v | |
reference_converts_from_temporary_v | |
tuple_like | Concept to check if a type is tuple-like |
| Name | Description |
|---|---|
ArrayView<T> | |
ArrayView<T> | |
Overload<Ts...> | Class template argument deduction guide for Overload. |
RangeFor<Container> | |
ScopeExit<F> | |
ScopeExitRestore<T> | |
ScopeExitRestore<T> | |
Unexpected<E> |
| Name |
|---|
source_location |
| Name | Description |
|---|---|
AdmonitionBlock | A block for side-notes like tips, warnings, notes |
Block | A piece of block content |
BlockCommonBase | Base class for providing variant discriminator functions. |
BlockContainer | |
BriefBlock | The brief description |
CodeBlock | Preformatted source code. |
CodeInline | A piece of styled text. |
CopyDetailsInline | Documentation copied from another symbol. |
DefinitionListBlock | |
DefinitionListItem | An item in a definition list |
EmphInline | A piece of styled text. |
FootnoteDefinitionBlock | Preformatted source code. |
FootnoteReferenceInline | A reference to a symbol. |
HeadingBlock | A manually specified section heading. |
HighlightInline | A piece of highlighted text. |
ImageInline | An image. |
Inline | A Node containing a string of text. |
InlineCommonBase | Base class for providing variant discriminator functions. |
InlineContainer | An internal node in the inline element tree |
InlineTextLeaf | A leaf node that stores a string of text. |
LineBreakInline | A hard line break that renders as "" |
LinkInline | A hyperlink. |
ListBlock | A list of list items |
ListItem | An item in a list |
MathBlock | A block of LaTeX math |
MathInline | An inline LaTeX math expression |
ParagraphBlock | A sequence of text nodes. |
ParamBlock | Documentation for a function parameter |
PostconditionBlock | |
PreconditionBlock | |
QuoteBlock | A list of list items |
ReferenceInline | A reference to a symbol. |
ReturnsBlock | Documentation for a function return type |
SeeBlock | A |
SoftBreakInline | A line break that may render as space |
StrikethroughInline | A piece of styled text. |
StrongInline | A piece of styled text. |
SubscriptInline | A piece of styled text. |
SuperscriptInline | A piece of styled text. |
TParamBlock | Documentation for a template parameter |
TableBlock | A table block |
TableCell | A cell in a table |
TableRow | An item in a list |
TextInline | A Node containing a string of text. |
ThematicBreakBlock | The brief description |
ThrowsBlock | Documentation for a function parameter |
| Name | Description |
|---|---|
AdmonitionKind | An admonishment style. |
BlockKind | |
InlineKind | |
ParamDirection | Parameter pass direction. |
Parts | Which parts of the documentation to copy. |
| Name | Description |
|---|---|
getAsPlainText | getAsPlainText overloads |
isBlockCommand | |
isEmpty | Determine if the inline is empty |
ltrim | ltrim overloads |
rtrim | rtrim overloads |
tag_invoke | tag_invoke overloads |
toString | toString overloads |
traverse | Traverse a list of inlines. |
trim | trim overloads |
visit | visit overloads |
operator== | Equality operators |
operator<=> | Three-way comparison operators |
A block for side-notes like tips, warnings, notes
<mrdocs/Metadata/DocComment/Block/AdmonitionBlock.hpp>
struct AdmonitionBlock final
: BlockCommonBase<BlockKind::Admonition>
, BlockContainer
| Name | Description |
|---|---|
BlockCommonBase<BlockKind::Admonition> | Base class for providing variant discriminator functions. |
BlockContainer |
| Name | Description |
|---|---|
AdmonitionBlock [constructor] | Construct from AdmonitionKind |
asBlockContainer | |
operator== | Equality operators |
operator<=> | Three-way comparison operators |
| Name | Description |
|---|---|
Title | Optional title for the admonition |
admonish | The kind of admonition |
blocks |
| 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 |
This paragraph represents an admonition, such as a note, tip, important, caution, or warning.
Construct from AdmonitionKind
<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 operator
constexpr
bool
operator==(AdmonitionBlock const& rhs) const noexcept = default;
» more...
Equality operator
constexpr
bool
operator==(BlockContainer const& rhs) const = default;
» more...
Equality operator
<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 operator
<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>Three-way comparison operator
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...
Three-way comparison operator
std::strong_ordering
operator<=>(BlockContainer const& rhs) const;
» more...
Three-way comparison operator
<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 |
Three-way comparison operator
<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;
| Name | Description |
|---|---|
~Block [destructor] [virtual] | Destructor |
asBlock | |
operator== | Equality operator |
operator<=> | Three-way comparison operator |
| Name |
|---|
Kind |
| 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. |
The top level is a list of blocks.
There are two types of blocks: headings and paragraphs.
Destructor
<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>
constexpr
virtual
~Block() = default;
<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>
constexpr
Block const&
asBlock() const noexcept;
» more...
constexpr
Block&
asBlock() noexcept;
» more...
<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>
constexpr
Block const&
asBlock() const noexcept;
<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>
constexpr
Block&
asBlock() noexcept;
Equality operator
<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 operator
<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>
constexpr
auto
operator<=>(Block const& other) const = default;
| Name | Description |
|---|---|
| other | The right operand |
<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>
BlockKind Kind = BlockKind::Paragraph;
Constructors
<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>Default constructor
constexpr
Block() = default;
» more...
Construct from BlockKind
explicit
Block(BlockKind const kind_) noexcept;
» more...
Default constructor
<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>
constexpr
Block() = default;
Construct from BlockKind
<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
| Name | Description |
|---|---|
Block | A piece of block content |
| Name | Description |
|---|---|
~BlockCommonBase [destructor] [virtual] | Destructor |
asBlock | |
operator== | Equality operator |
operator<=> | Three-way comparison operators |
| Name |
|---|
Kind |
| Name | Description |
|---|---|
kind_id | The variant discriminator constant of the most-derived class. |
| Name | Description |
|---|---|
BlockCommonBase [constructor] | Default constructor |
| 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
| |
FootnoteDefinitionBlock
| Preformatted source code. |
HeadingBlock
| A manually specified section heading. |
ListBlock
| A list of list items |
MathBlock
| A block of LaTeX math |
ParagraphBlock
| A sequence of text nodes. |
ParamBlock
| Documentation for a function parameter |
PostconditionBlock
| |
PreconditionBlock
| |
QuoteBlock
| A list of list items |
ReturnsBlock
| Documentation for a function return type |
SeeBlock
| A |
TParamBlock
| Documentation for a template parameter |
TableBlock
| A table block |
ThematicBreakBlock
| The brief description |
ThrowsBlock
| Documentation for a function parameter |
This offers functions that return a boolean at compile-time, indicating if the most-derived class is a certain type.
Destructor
<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>
virtual
~BlockCommonBase() override = default;
Three-way comparison operators
<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>Three-way comparison operator
auto
operator<=>(BlockCommonBase const& rhs) const = default;
» more...
Three-way comparison operator
constexpr
auto
operator<=>(Block const& other) const = default;
» more...
Three-way comparison operator
<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>
auto
operator<=>(BlockCommonBase const& rhs) const = default;
| Name | Description |
|---|---|
| rhs | The right operand |
Three-way comparison operator
<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.
Default constructor
<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>
constexpr
explicit
BlockCommonBase();
<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>
struct BlockContainer;
| Name | Description |
|---|---|
asBlockContainer | |
operator== | Equality operator |
operator<=> | Three-way comparison operator |
| Name |
|---|
blocks |
| 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
| Preformatted source code. |
ListItem
| An item in a list |
QuoteBlock
| A list of list items |
<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>
BlockContainer&
asBlockContainer();
» more...
BlockContainer const&
asBlockContainer() const;
» more...
<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>
BlockContainer&
asBlockContainer();
<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>
BlockContainer const&
asBlockContainer() const;
Equality operator
<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 operator
<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>
std::strong_ordering
operator<=>(BlockContainer const& rhs) const;
| Name | Description |
|---|---|
| rhs | The right operand |
<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
| 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= | Assign an InlineContainer with a single TextInline child. |
append | append overloads |
asInlineContainer | Helper function so that derived classes can get a reference to the base class. |
back | Get the last inline child. |
begin | Begin iterator forwarding to children |
clear | Clear all inline children. |
emplace_back | Append a child of the specified type. |
empty | Determine if there are no inline children. |
end | End iterator forwarding to children |
erase | Erase from children |
front | Get the first inline child. |
insert | Erase from children |
operator+= | Addition assignment operators |
size | Get the number of inline children. |
operator== | Compare two InlineContainers. |
operator<=> | Compare two InlineContainers. |
| Name |
|---|
children |
copiedFrom |
| Name |
|---|
kind_id |
| Name |
|---|
BriefBlock |
operator= |
| 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>Default constructor
constexpr
BriefBlock() = default;
» more...
Copy constructor
constexpr
BriefBlock(BriefBlock const& other) = default;
» more...
Default constructor
<mrdocs/Metadata/DocComment/Block/BriefBlock.hpp>
constexpr
BriefBlock() = default;
Copy constructor
<mrdocs/Metadata/DocComment/Block/BriefBlock.hpp>
constexpr
BriefBlock(BriefBlock const& other) = default;
| Name | Description |
|---|---|
| other | The object to copy construct from |
Assign an InlineContainer with a single TextInline child.
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>Copy assignment operator
constexpr
BriefBlock&
operator=(BriefBlock const& other) = default;
» more...
Copy assignment operator
constexpr
InlineContainer&
operator=(InlineContainer const& other) = default;
» more...
Move assignment operator
constexpr
InlineContainer&
operator=(InlineContainer&& other) noexcept = default;
» more...
Assign an InlineContainer with a single TextInline child.
InlineContainer&
operator=(std::string_view text);
» more...
Copy assignment operator
<mrdocs/Metadata/DocComment/Block/BriefBlock.hpp>
constexpr
BriefBlock&
operator=(BriefBlock const& other) = default;
| Name | Description |
|---|---|
| other | The object to copy assign from |
Copy assignment operator
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>
constexpr
InlineContainer&
operator=(InlineContainer const& other) = default;
| Name | Description |
|---|---|
| other | The object to copy assign from |
Move assignment operator
<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 |
Compare two InlineContainers.
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>Three-way comparison operator
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...
Three-way comparison operator
<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;
<mrdocs/Metadata/DocComment/Block/BriefBlock.hpp>
std::vector<std::string> copiedFrom;
<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>
constexpr static
BlockKind kind_id;
<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 constructor |
| mrdocs::doc::InlineContainer::InlineContainer | Copy constructor |
<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 assignment operator |
| mrdocs::doc::InlineContainer::operator= | Copy assignment operator |
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] | Default constructor |
operator== | Equality operator |
operator<=> | Three-way comparison operators |
| Name | Description |
|---|---|
info | Fence info string, e.g. "cpp" |
literal |
| 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. |
Default constructor
<mrdocs/Metadata/DocComment/Block/CodeBlock.hpp>
constexpr
CodeBlock() noexcept = default;
Equality operator
<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 |
Three-way comparison operators
<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>Three-way comparison operator
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...
Three-way comparison operator
<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;
<mrdocs/Metadata/DocComment/Block/CodeBlock.hpp>
std::string literal;
<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>
constexpr static
BlockKind kind_id;
A piece of styled text.
<mrdocs/Metadata/DocComment/Inline/CodeInline.hpp>
struct CodeInline final
: InlineCommonBase<InlineKind::Code>
, InlineContainer
| Name | Description |
|---|---|
InlineCommonBase<InlineKind::Code> | Base class for providing variant discriminator functions. |
InlineContainer | An internal node in the inline element tree |
| Name | Description |
|---|---|
operator= | Assign an InlineContainer with a single TextInline child. |
append | append overloads |
asInlineContainer | Helper function so that derived classes can get a reference to the base class. |
back | Get the last inline child. |
begin | Begin iterator forwarding to children |
clear | Clear all inline children. |
emplace_back | Append a child of the specified type. |
empty | Determine if there are no inline children. |
end | End iterator forwarding to children |
erase | Erase from children |
front | Get the first inline child. |
insert | Erase from children |
operator+= | Addition assignment operators |
size | Get the number of inline children. |
operator== | Compare two InlineContainers. |
operator<=> | Compare two InlineContainers. |
| Name |
|---|
isCode |
isCopyDetails |
isEmph |
isFootnoteReference |
isHighlight |
isImage |
isLineBreak |
isLink |
isMath |
isReference |
isSoftBreak |
isStrikethrough |
isStrong |
isSubscript |
isSuperscript |
isText |
| Name |
|---|
children |
| Name |
|---|
kind_id |
| Name |
|---|
CodeInline |
| Name | Description |
|---|---|
getAsPlainText | Flatten an InlineContainer to plain text. |
getAsPlainText | Flatten an InlineContainer to plain text. |
getAsPlainText | Get the plain text representation of an inline element tree. |
getAsPlainText | Get the plain text representation of an inline element tree. |
ltrim | Removes leading whitespace from the first text element in the given InlineContainer. |
rtrim | Removes trailing whitespace from the last text element in the given InlineContainer. |
trim | Removes leading and trailing whitespace from the text elements in the given InlineContainer. |
Compare two InlineContainers.
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>Equality operator
constexpr
bool
operator==(CodeInline const& rhs) const noexcept = default;
» more...
Compare two InlineContainers.
constexpr
bool
operator==(InlineContainer const& rhs) const = default;
» more...
Equality operator
<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 |
Compare two InlineContainers.
<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>Three-way comparison operator
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...
Three-way comparison operator
<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;
<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 constructor |
| mrdocs::doc::InlineContainer::InlineContainer | Copy constructor |
Documentation copied from another symbol.
<mrdocs/Metadata/DocComment/Inline/CopyDetailsInline.hpp>
struct CopyDetailsInline final
: InlineCommonBase<InlineKind::CopyDetails>
| Name | Description |
|---|---|
InlineCommonBase<InlineKind::CopyDetails> | Base class for providing variant discriminator functions. |
| Name | Description |
|---|---|
CopyDetailsInline [constructor] | Construct from string |
operator== | Equality operator |
operator<=> | Three-way comparison operators |
| Name |
|---|
isCode |
isCopyDetails |
isEmph |
isFootnoteReference |
isHighlight |
isImage |
isLineBreak |
isLink |
isMath |
isReference |
isSoftBreak |
isStrikethrough |
isStrong |
isSubscript |
isSuperscript |
isText |
| Name |
|---|
id |
string |
| 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 from string
<mrdocs/Metadata/DocComment/Inline/CopyDetailsInline.hpp>
CopyDetailsInline(std::string string_ = std::string()) noexcept;
| Name | Description |
|---|---|
| string_ | The object to construct from |
Equality operator
<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 |
Three-way comparison operators
<mrdocs/Metadata/DocComment/Inline/CopyDetailsInline.hpp>Three-way comparison operator
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...
Three-way comparison operator
<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;
<mrdocs/Metadata/DocComment/Inline/CopyDetailsInline.hpp>
SymbolID id = = SymbolID::invalid;
<mrdocs/Metadata/DocComment/Inline/CopyDetailsInline.hpp>
std::string string;
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>
constexpr static
InlineKind kind_id;
<mrdocs/Metadata/DocComment/Block/DefinitionListBlock.hpp>
struct DefinitionListBlock final
: BlockCommonBase<BlockKind::List>
| Name | Description |
|---|---|
BlockCommonBase<BlockKind::List> | Base class for providing variant discriminator functions. |
| Name | Description |
|---|---|
operator== | Equality operator |
operator<=> | Three-way comparison operators |
| Name |
|---|
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 operator
<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 |
Three-way comparison operators
<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>Three-way comparison operator
auto
operator<=>(DefinitionListBlock const& other) const;
» more...
Three-way comparison operator
constexpr
auto
operator<=>(BlockCommonBase<mrdocs::doc::BlockKind::List> const& rhs) const = default;
» more...
Three-way comparison operator
<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;
<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 |
| Name | Description |
|---|---|
asBlockContainer | |
operator== | Equality operators |
operator<=> | Three-way comparison operators |
| Name |
|---|
blocks |
term |
| 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 operator
constexpr
bool
operator==(DefinitionListItem const& rhs) const noexcept = default;
» more...
Equality operator
constexpr
bool
operator==(BlockContainer const& rhs) const = default;
» more...
Equality operator
<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 operator
<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>Three-way comparison operator
auto
operator<=>(DefinitionListItem const& rhs) const = default;
» more...
Three-way comparison operator
std::strong_ordering
operator<=>(BlockContainer const& rhs) const;
» more...
Three-way comparison operator
<mrdocs/Metadata/DocComment/Block/DefinitionListItem.hpp>
auto
operator<=>(DefinitionListItem const& rhs) const = default;
| Name | Description |
|---|---|
| rhs | The right operand |
Three-way comparison operator
<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>
std::strong_ordering
operator<=>(BlockContainer const& rhs) const;
| Name | Description |
|---|---|
| rhs | The right operand |
<mrdocs/Metadata/DocComment/Block/DefinitionListItem.hpp>
InlineContainer term;
A piece of styled text.
<mrdocs/Metadata/DocComment/Inline/EmphInline.hpp>
struct EmphInline final
: InlineCommonBase<InlineKind::Emph>
, InlineContainer
| Name | Description |
|---|---|
InlineCommonBase<InlineKind::Emph> | Base class for providing variant discriminator functions. |
InlineContainer | An internal node in the inline element tree |
| Name | Description |
|---|---|
operator= | Assign an InlineContainer with a single TextInline child. |
append | append overloads |
asInlineContainer | Helper function so that derived classes can get a reference to the base class. |
back | Get the last inline child. |
begin | Begin iterator forwarding to children |
clear | Clear all inline children. |
emplace_back | Append a child of the specified type. |
empty | Determine if there are no inline children. |
end | End iterator forwarding to children |
erase | Erase from children |
front | Get the first inline child. |
insert | Erase from children |
operator+= | Addition assignment operators |
size | Get the number of inline children. |
operator== | Compare two InlineContainers. |
operator<=> | Compare two InlineContainers. |
| Name |
|---|
isCode |
isCopyDetails |
isEmph |
isFootnoteReference |
isHighlight |
isImage |
isLineBreak |
isLink |
isMath |
isReference |
isSoftBreak |
isStrikethrough |
isStrong |
isSubscript |
isSuperscript |
isText |
| Name |
|---|
children |
| Name |
|---|
kind_id |
| Name |
|---|
EmphInline |
| Name | Description |
|---|---|
getAsPlainText | Flatten an InlineContainer to plain text. |
getAsPlainText | Flatten an InlineContainer to plain text. |
getAsPlainText | Get the plain text representation of an inline element tree. |
getAsPlainText | Get the plain text representation of an inline element tree. |
ltrim | Removes leading whitespace from the first text element in the given InlineContainer. |
rtrim | Removes trailing whitespace from the last text element in the given InlineContainer. |
trim | Removes leading and trailing whitespace from the text elements in the given InlineContainer. |
Compare two InlineContainers.
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>Equality operator
constexpr
bool
operator==(EmphInline const& rhs) const noexcept = default;
» more...
Compare two InlineContainers.
constexpr
bool
operator==(InlineContainer const& rhs) const = default;
» more...
Equality operator
<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 |
Compare two InlineContainers.
<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>Three-way comparison operator
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...
Three-way comparison operator
<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;
<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 constructor |
| mrdocs::doc::InlineContainer::InlineContainer | Copy constructor |
Preformatted source code.
<mrdocs/Metadata/DocComment/Block/FootnoteDefinitionBlock.hpp>
struct FootnoteDefinitionBlock final
: BlockCommonBase<BlockKind::FootnoteDefinition>
, BlockContainer
| Name | Description |
|---|---|
BlockCommonBase<BlockKind::FootnoteDefinition> | Base class for providing variant discriminator functions. |
BlockContainer |
| Name | Description |
|---|---|
FootnoteDefinitionBlock [constructor] | Default constructor |
asBlockContainer | |
operator== | Equality operators |
operator<=> | Three-way comparison operators |
| Name |
|---|
blocks |
label |
| 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 |
Default constructor
<mrdocs/Metadata/DocComment/Block/FootnoteDefinitionBlock.hpp>
constexpr
FootnoteDefinitionBlock() noexcept = default;
Equality operators
<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>Equality operator
constexpr
bool
operator==(FootnoteDefinitionBlock const& rhs) const noexcept = default;
» more...
Equality operator
constexpr
bool
operator==(BlockContainer const& rhs) const = default;
» more...
Equality operator
<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 operator
<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>Three-way comparison operator
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...
Three-way comparison operator
std::strong_ordering
operator<=>(BlockContainer const& rhs) const;
» more...
Three-way comparison operator
<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 |
Three-way comparison operator
<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/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>
| Name | Description |
|---|---|
InlineCommonBase<InlineKind::FootnoteReference> | Base class for providing variant discriminator functions. |
| Name | Description |
|---|---|
operator== | Equality operator |
operator<=> | Three-way comparison operators |
| Name |
|---|
isCode |
isCopyDetails |
isEmph |
isFootnoteReference |
isHighlight |
isImage |
isLineBreak |
isLink |
isMath |
isReference |
isSoftBreak |
isStrikethrough |
isStrong |
isSubscript |
isSuperscript |
isText |
| Name |
|---|
label |
| 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. |
In markdown, this is represented as "[]".
Equality operator
<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 |
Three-way comparison operators
<mrdocs/Metadata/DocComment/Inline/FootnoteReferenceInline.hpp>Three-way comparison operator
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...
Three-way comparison operator
<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;
<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
| Name | Description |
|---|---|
BlockCommonBase<BlockKind::Heading> | Base class for providing variant discriminator functions. |
InlineContainer | An internal node in the inline element tree |
| Name | Description |
|---|---|
operator= | Assign an InlineContainer with a single TextInline child. |
append | append overloads |
asInlineContainer | Helper function so that derived classes can get a reference to the base class. |
back | Get the last inline child. |
begin | Begin iterator forwarding to children |
clear | Clear all inline children. |
emplace_back | Append a child of the specified type. |
empty | Determine if there are no inline children. |
end | End iterator forwarding to children |
erase | Erase from children |
front | Get the first inline child. |
insert | Erase from children |
operator+= | Addition assignment operators |
size | Get the number of inline children. |
operator== | Compare two InlineContainers. |
operator<=> | Compare two InlineContainers. |
| Name |
|---|
children |
level |
| Name |
|---|
kind_id |
| Name |
|---|
HeadingBlock |
| Name | Description |
|---|---|
getAsPlainText | Flatten an InlineContainer to plain text. |
getAsPlainText | Flatten an InlineContainer to plain text. |
isEmpty | Determine if the inline is empty |
ltrim | Removes leading whitespace from the first text element in the given InlineContainer. |
ltrim | Removes leading whitespace from the block. |
rtrim | Removes trailing whitespace from the last text element in the given InlineContainer. |
rtrim | Removes trailing whitespace from the block. |
trim | Removes leading and trailing whitespace from the block. |
trim | Removes leading and trailing whitespace from the text elements in the given InlineContainer. |
Compare two InlineContainers.
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>Equality operator
constexpr
bool
operator==(HeadingBlock const& rhs) const noexcept = default;
» more...
Compare two InlineContainers.
constexpr
bool
operator==(InlineContainer const& rhs) const = default;
» more...
Equality operator
<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 |
Compare two InlineContainers.
<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>Three-way comparison operator
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...
Three-way comparison operator
<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;
<mrdocs/Metadata/DocComment/Block/HeadingBlock.hpp>
unsigned int level = 1;
<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>
constexpr static
BlockKind kind_id;
<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 constructor |
| mrdocs::doc::InlineContainer::InlineContainer | Copy constructor |
A piece of highlighted text.
<mrdocs/Metadata/DocComment/Inline/HighlightInline.hpp>
struct HighlightInline final
: InlineCommonBase<InlineKind::Highlight>
, InlineContainer
| Name | Description |
|---|---|
InlineCommonBase<InlineKind::Highlight> | Base class for providing variant discriminator functions. |
InlineContainer | An internal node in the inline element tree |
| Name | Description |
|---|---|
operator= | Assign an InlineContainer with a single TextInline child. |
append | append overloads |
asInlineContainer | Helper function so that derived classes can get a reference to the base class. |
back | Get the last inline child. |
begin | Begin iterator forwarding to children |
clear | Clear all inline children. |
emplace_back | Append a child of the specified type. |
empty | Determine if there are no inline children. |
end | End iterator forwarding to children |
erase | Erase from children |
front | Get the first inline child. |
insert | Erase from children |
operator+= | Addition assignment operators |
size | Get the number of inline children. |
operator== | Compare two InlineContainers. |
operator<=> | Compare two InlineContainers. |
| Name |
|---|
isCode |
isCopyDetails |
isEmph |
isFootnoteReference |
isHighlight |
isImage |
isLineBreak |
isLink |
isMath |
isReference |
isSoftBreak |
isStrikethrough |
isStrong |
isSubscript |
isSuperscript |
isText |
| Name |
|---|
children |
| 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. |
Compare two InlineContainers.
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>Equality operator
constexpr
bool
operator==(HighlightInline const& rhs) const noexcept = default;
» more...
Compare two InlineContainers.
constexpr
bool
operator==(InlineContainer const& rhs) const = default;
» more...
Equality operator
<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 |
Compare two InlineContainers.
<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>Three-way comparison operator
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...
Three-way comparison operator
<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
| Name | Description |
|---|---|
InlineCommonBase<InlineKind::Image> | Base class for providing variant discriminator functions. |
InlineContainer | An internal node in the inline element tree |
| Name | Description |
|---|---|
operator= | Assign an InlineContainer with a single TextInline child. |
append | append overloads |
asInlineContainer | Helper function so that derived classes can get a reference to the base class. |
back | Get the last inline child. |
begin | Begin iterator forwarding to children |
clear | Clear all inline children. |
emplace_back | Append a child of the specified type. |
empty | Determine if there are no inline children. |
end | End iterator forwarding to children |
erase | Erase from children |
front | Get the first inline child. |
insert | Erase from children |
operator+= | Addition assignment operators |
size | Get the number of inline children. |
operator== | Compare two InlineContainers. |
operator<=> | Compare two InlineContainers. |
| Name |
|---|
isCode |
isCopyDetails |
isEmph |
isFootnoteReference |
isHighlight |
isImage |
isLineBreak |
isLink |
isMath |
isReference |
isSoftBreak |
isStrikethrough |
isStrong |
isSubscript |
isSuperscript |
isText |
| Name |
|---|
alt |
children |
src |
| 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. |
Compare two InlineContainers.
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>Equality operator
constexpr
bool
operator==(ImageInline const& rhs) const noexcept = default;
» more...
Compare two InlineContainers.
constexpr
bool
operator==(InlineContainer const& rhs) const = default;
» more...
Equality operator
<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 |
Compare two InlineContainers.
<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>Three-way comparison operator
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...
Three-way comparison operator
<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;
<mrdocs/Metadata/DocComment/Inline/ImageInline.hpp>
std::string alt;
<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;
| Name | Description |
|---|---|
~Inline [destructor] [virtual] | Destructor |
asInline | |
operator== | Equality operator |
operator<=> | Three-way comparison operator |
| Name |
|---|
Kind |
| 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. |
There will be no newlines in the text. Otherwise, this would be represented as multiple text nodes within a Paragraph node.
Destructor
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>
constexpr
virtual
~Inline() = default;
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>
constexpr
Inline const&
asInline() const noexcept;
» more...
constexpr
Inline&
asInline() noexcept;
» more...
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>
constexpr
Inline const&
asInline() const noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>
constexpr
Inline&
asInline() noexcept;
Equality operator
<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 operator
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>
constexpr
auto
operator<=>(Inline const& rhs) const = default;
| Name | Description |
|---|---|
| rhs | The right operand |
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>
InlineKind Kind = InlineKind::Text;
Constructors
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>Default constructor
constexpr
Inline() noexcept = default;
» more...
Construct from InlineKind
Inline(InlineKind kind_);
» more...
Default constructor
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>
constexpr
Inline() noexcept = default;
Construct from InlineKind
| 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
| Name | Description |
|---|---|
Inline | A Node containing a string of text. |
| Name | Description |
|---|---|
~InlineCommonBase [destructor] [virtual] | Destructor |
asInline | |
operator== | Equality operator |
operator<=> | Three-way comparison operators |
| Name |
|---|
Kind |
| Name | Description |
|---|---|
kind_id | The variant discriminator constant of the most-derived class. |
| Name | Description |
|---|---|
InlineCommonBase [constructor] | Default constructor |
| 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
| A piece of styled text. |
CopyDetailsInline
| Documentation copied from another symbol. |
EmphInline
| A piece of styled text. |
FootnoteReferenceInline
| A reference to a symbol. |
HighlightInline
| A piece of highlighted text. |
ImageInline
| An image. |
LineBreakInline
| A hard line break that renders as "" |
LinkInline
| A hyperlink. |
MathInline
| An inline LaTeX math expression |
ReferenceInline
| A reference to a symbol. |
SoftBreakInline
| A line break that may render as space |
StrikethroughInline
| A piece of styled text. |
StrongInline
| A piece of styled text. |
SubscriptInline
| A piece of styled text. |
SuperscriptInline
| A piece of styled text. |
TextInline
| A Node containing a string of text. |
This offers functions that return a boolean at compile-time, indicating if the most-derived class is a certain type.
Destructor
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>
virtual
~InlineCommonBase() override = default;
Three-way comparison operators
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>Three-way comparison operator
auto
operator<=>(InlineCommonBase const& rhs) const = default;
» more...
Three-way comparison operator
constexpr
auto
operator<=>(Inline const& rhs) const = default;
» more...
Three-way comparison operator
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>
auto
operator<=>(InlineCommonBase const& rhs) const = default;
| Name | Description |
|---|---|
| rhs | The right operand |
Three-way comparison operator
<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 constructor
<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] | Construct an InlineContainer with a single TextInline child. |
~InlineContainer [destructor] [virtual] | Destructor |
operator= | Assign an InlineContainer with a single TextInline child. |
append | append overloads |
asInlineContainer | Helper function so that derived classes can get a reference to the base class. |
back | Get the last inline child. |
begin | Begin iterator forwarding to children |
clear | Clear all inline children. |
emplace_back | Append a child of the specified type. |
empty | Determine if there are no inline children. |
end | End iterator forwarding to children |
erase | Erase from children |
front | Get the first inline child. |
insert | Erase from children |
operator+= | Addition assignment operators |
size | Get the number of inline children. |
operator== | Compare two InlineContainers. |
operator<=> | Compare two InlineContainers. |
| Name |
|---|
children |
| 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
| A piece of styled text. |
EmphInline
| A piece of styled text. |
HeadingBlock
| A manually specified section heading. |
HighlightInline
| A piece of highlighted text. |
ImageInline
| An image. |
LinkInline
| A hyperlink. |
ParagraphBlock
| A sequence of text nodes. |
ParamBlock
| Documentation for a function parameter |
PostconditionBlock
| |
PreconditionBlock
| |
ReturnsBlock
| Documentation for a function return type |
SeeBlock
| A |
StrikethroughInline
| A piece of styled text. |
StrongInline
| A piece of styled text. |
SubscriptInline
| A piece of styled text. |
SuperscriptInline
| A piece of styled text. |
TParamBlock
| Documentation for a template parameter |
TableCell
| A cell in a table |
ThrowsBlock
| Documentation for a function parameter |
Construct an InlineContainer with a single TextInline child.
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>Default constructor
constexpr
InlineContainer() = default;
» more...
Copy constructor
constexpr
InlineContainer(InlineContainer const& other) = default;
» more...
Move constructor
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 constructor
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>
constexpr
InlineContainer() = default;
Copy constructor
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>
constexpr
InlineContainer(InlineContainer const& other) = default;
| Name | Description |
|---|---|
| other | The object to copy construct from |
Move constructor
<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 |
Destructor
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>
constexpr
virtual
~InlineContainer() = default;
Assign an InlineContainer with a single TextInline child.
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>Copy assignment operator
constexpr
InlineContainer&
operator=(InlineContainer const& other) = default;
» more...
Move assignment operator
constexpr
InlineContainer&
operator=(InlineContainer&& other) noexcept = default;
» more...
Assign an InlineContainer with a single TextInline child.
InlineContainer&
operator=(std::string_view text);
» more...
Copy assignment operator
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>
constexpr
InlineContainer&
operator=(InlineContainer const& other) = default;
| Name | Description |
|---|---|
| other | The object to copy assign from |
Move assignment operator
<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...
Append a TextInline child.
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>
InlineContainer&
append(std::string_view text);
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);
Helper function so that derived classes can get a reference to the base class.
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>Helper function so that derived classes can get a reference to the base class.
InlineContainer&
asInlineContainer();
» more...
InlineContainer const&
asInlineContainer() const;
» more...
Helper function so that derived classes can get a reference to the base class.
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>
InlineContainer&
asInlineContainer();
<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;
Clear all inline children.
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>
void
clear();
Append a child of the specified type.
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>
template<
std::derived_from<Inline> InlineTy,
class... Args>
InlineContainer&
emplace_back(Args...&&... args);
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;
Erase from children
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>
decltype(auto)
erase(this
auto&& self,
auto...&&... args);
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();
Erase from children
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>
decltype(auto)
insert(this
auto&& self,
auto...&&... args);
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;
Compare two InlineContainers.
<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 |
<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 operator |
operator<=> | Three-way comparison operator |
| Name |
|---|
literal |
Constructors
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>Construct from string_view
explicit
InlineTextLeaf(std::string_view literal_);
» more...
Construct from string
explicit
InlineTextLeaf(std::string const& literal_);
» more...
Construct from string
explicit
InlineTextLeaf(std::string&& literal_) noexcept;
» more...
Construct from string_view
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>
explicit
InlineTextLeaf(std::string_view literal_);
| Name | Description |
|---|---|
| literal_ | The object to construct from |
Construct from string
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>
explicit
InlineTextLeaf(std::string const& literal_);
| Name | Description |
|---|---|
| literal_ | The object to copy construct from |
Construct from string
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>
explicit
InlineTextLeaf(std::string&& literal_) noexcept;
| Name | Description |
|---|---|
| literal_ | The object to move construct from |
Equality operator
<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 |
Three-way comparison operator
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>
constexpr
auto
operator<=>(InlineTextLeaf const& rhs) const = default;
| Name | Description |
|---|---|
| rhs | The right operand |
<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>
| Name | Description |
|---|---|
InlineCommonBase<InlineKind::LineBreak> | Base class for providing variant discriminator functions. |
| Name | Description |
|---|---|
LineBreakInline [constructor] | Default constructor |
~LineBreakInline [destructor] [virtual] | Destructor |
operator== | Equality operator |
operator<=> | Three-way comparison operators |
| 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. |
Default constructor
<mrdocs/Metadata/DocComment/Inline/LineBreakInline.hpp>
constexpr
LineBreakInline() noexcept = default;
Destructor
<mrdocs/Metadata/DocComment/Inline/LineBreakInline.hpp>
constexpr
virtual
~LineBreakInline() override = default;
Equality operator
<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 |
Three-way comparison operators
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>Three-way comparison operator
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...
Three-way comparison operator
<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
| 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= | Assign an InlineContainer with a single TextInline child. |
append | append overloads |
asInlineContainer | Helper function so that derived classes can get a reference to the base class. |
back | Get the last inline child. |
begin | Begin iterator forwarding to children |
clear | Clear all inline children. |
emplace_back | Append a child of the specified type. |
empty | Determine if there are no inline children. |
end | End iterator forwarding to children |
erase | Erase from children |
front | Get the first inline child. |
insert | Erase from children |
operator+= | Addition assignment operators |
size | Get the number of inline children. |
operator== | Compare two InlineContainers. |
operator<=> | Compare two InlineContainers. |
| Name |
|---|
isCode |
isCopyDetails |
isEmph |
isFootnoteReference |
isHighlight |
isImage |
isLineBreak |
isLink |
isMath |
isReference |
isSoftBreak |
isStrikethrough |
isStrong |
isSubscript |
isSuperscript |
isText |
| Name |
|---|
children |
href |
| 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>Default constructor
constexpr
LinkInline() = default;
» more...
LinkInline(
std::string_view text,
std::string_view href);
» more...
Default constructor
<mrdocs/Metadata/DocComment/Inline/LinkInline.hpp>
constexpr
LinkInline() = default;
<mrdocs/Metadata/DocComment/Inline/LinkInline.hpp>
LinkInline(
std::string_view text,
std::string_view href);
Compare two InlineContainers.
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>Equality operator
constexpr
bool
operator==(LinkInline const& rhs) const noexcept = default;
» more...
Compare two InlineContainers.
constexpr
bool
operator==(InlineContainer const& rhs) const = default;
» more...
Equality operator
<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 |
Compare two InlineContainers.
<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>Three-way comparison operator
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...
Three-way comparison operator
<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;
<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>
| Name | Description |
|---|---|
BlockCommonBase<BlockKind::List> | Base class for providing variant discriminator functions. |
| Name | Description |
|---|---|
operator== | Equality operator |
operator<=> | Three-way comparison operators |
| Name |
|---|
items |
listKind |
| 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 operator
<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 |
Three-way comparison operators
<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>Three-way comparison operator
auto
operator<=>(ListBlock const& other) const;
» more...
Three-way comparison operator
constexpr
auto
operator<=>(BlockCommonBase<mrdocs::doc::BlockKind::List> const& rhs) const = default;
» more...
Three-way comparison operator
<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;
<mrdocs/Metadata/DocComment/Block/ListBlock.hpp>
std::vector<ListItem> items;
<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 list
<mrdocs/Metadata/DocComment/Block/ListItem.hpp>
struct ListItem final
: BlockContainer
| Name | Description |
|---|---|
BlockContainer |
| Name | Description |
|---|---|
asBlockContainer | |
operator== | Equality operators |
operator<=> | Three-way comparison operators |
| Name |
|---|
blocks |
| 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 operator
constexpr
bool
operator==(ListItem const& rhs) const noexcept = default;
» more...
Equality operator
constexpr
bool
operator==(BlockContainer const& rhs) const = default;
» more...
Equality operator
<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 operator
<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>Three-way comparison operator
auto
operator<=>(ListItem const& rhs) const = default;
» more...
Three-way comparison operator
std::strong_ordering
operator<=>(BlockContainer const& rhs) const;
» more...
Three-way comparison operator
<mrdocs/Metadata/DocComment/Block/ListItem.hpp>
auto
operator<=>(ListItem const& rhs) const = default;
| Name | Description |
|---|---|
| rhs | The right operand |
Three-way comparison operator
<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>
| Name | Description |
|---|---|
BlockCommonBase<BlockKind::Math> | Base class for providing variant discriminator functions. |
| Name | Description |
|---|---|
MathBlock [constructor] | Copy constructor |
operator= | Copy assignment operator |
operator<=> | Three-way comparison operators |
| 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. |
A block of LaTeX math, typically between … or fenced with "math".
Copy constructor
<mrdocs/Metadata/DocComment/Block/MathBlock.hpp>
constexpr
MathBlock(MathBlock const& other) = default;
| Name | Description |
|---|---|
| other | The object to copy construct from |
Copy assignment operator
<mrdocs/Metadata/DocComment/Block/MathBlock.hpp>
constexpr
MathBlock&
operator=(MathBlock const& other) = default;
| Name | Description |
|---|---|
| other | The object to copy assign from |
Three-way comparison operators
<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>Three-way comparison operator
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...
Three-way comparison operator
<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>
| Name | Description |
|---|---|
InlineCommonBase<InlineKind::Math> | Base class for providing variant discriminator functions. |
| Name | Description |
|---|---|
MathInline [constructor] | Constructors |
~MathInline [destructor] [virtual] | Destructor |
operator== | Equality operator |
operator<=> | Three-way comparison operators |
| Name |
|---|
isCode |
isCopyDetails |
isEmph |
isFootnoteReference |
isHighlight |
isImage |
isLineBreak |
isLink |
isMath |
isReference |
isSoftBreak |
isStrikethrough |
isStrong |
isSubscript |
isSuperscript |
isText |
| Name |
|---|
literal |
| 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. |
Inline LaTeX math, typically between ….
Constructors
<mrdocs/Metadata/DocComment/Inline/MathInline.hpp>Default constructor
constexpr
MathInline() noexcept = default;
» more...
Construct from string
explicit
MathInline(std::string string_) noexcept;
» more...
Default constructor
<mrdocs/Metadata/DocComment/Inline/MathInline.hpp>
constexpr
MathInline() noexcept = default;
Construct from string
<mrdocs/Metadata/DocComment/Inline/MathInline.hpp>
explicit
MathInline(std::string string_) noexcept;
| Name | Description |
|---|---|
| string_ | The object to construct from |
Destructor
<mrdocs/Metadata/DocComment/Inline/MathInline.hpp>
constexpr
virtual
~MathInline() override = default;
Equality operator
<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 |
Three-way comparison operators
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>Three-way comparison operator
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...
Three-way comparison operator
<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;
<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
| 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] | Default constructor |
~ParagraphBlock [destructor] [virtual] | Destructor |
operator= | Assign an InlineContainer with a single TextInline child. |
append | append overloads |
asInlineContainer | Helper function so that derived classes can get a reference to the base class. |
back | Get the last inline child. |
begin | Begin iterator forwarding to children |
clear | Clear all inline children. |
emplace_back | Append a child of the specified type. |
empty | Determine if there are no inline children. |
end | End iterator forwarding to children |
erase | Erase from children |
front | Get the first inline child. |
insert | Erase from children |
operator+= | Addition assignment operators |
size | Get the number of inline children. |
operator== | Compare two InlineContainers. |
operator<=> | Compare two InlineContainers. |
| Name |
|---|
children |
| 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. |
Default constructor
<mrdocs/Metadata/DocComment/Block/ParagraphBlock.hpp>
constexpr
ParagraphBlock() noexcept = default;
Destructor
<mrdocs/Metadata/DocComment/Block/ParagraphBlock.hpp>
constexpr
virtual
~ParagraphBlock() override = default;
Compare two InlineContainers.
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>Three-way comparison operator
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...
Three-way comparison operator
<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
| 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= | Assign an InlineContainer with a single TextInline child. |
append | append overloads |
asInlineContainer | Helper function so that derived classes can get a reference to the base class. |
back | Get the last inline child. |
begin | Begin iterator forwarding to children |
clear | Clear all inline children. |
emplace_back | Append a child of the specified type. |
empty | Determine if there are no inline children. |
end | End iterator forwarding to children |
erase | Erase from children |
front | Get the first inline child. |
insert | Erase from children |
operator+= | Addition assignment operators |
size | Get the number of inline children. |
operator== | Compare two InlineContainers. |
operator<=> | Compare two InlineContainers. |
| Name |
|---|
children |
direction |
name |
| Name |
|---|
kind_id |
| Name |
|---|
ParamBlock |
| 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>Construct from InlineContainer
ParamBlock(InlineContainer const& other);
» more...
Construct from InlineContainer
ParamBlock(InlineContainer&& other) noexcept;
» more...
ParamBlock(
std::string_view name,
std::string_view text,
ParamDirection direction = ParamDirection::none);
» more...
Construct from InlineContainer
<mrdocs/Metadata/DocComment/Block/ParamBlock.hpp>
ParamBlock(InlineContainer const& other);
| Name | Description |
|---|---|
| other | The object to copy construct from |
Construct from InlineContainer
<mrdocs/Metadata/DocComment/Block/ParamBlock.hpp>
ParamBlock(InlineContainer&& other) noexcept;
| Name | Description |
|---|---|
| other | The object to move construct from |
<mrdocs/Metadata/DocComment/Block/ParamBlock.hpp>
ParamBlock(
std::string_view name,
std::string_view text,
ParamDirection direction = ParamDirection::none);
Compare two InlineContainers.
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>Equality operator
constexpr
bool
operator==(ParamBlock const& rhs) const noexcept = default;
» more...
Compare two InlineContainers.
constexpr
bool
operator==(InlineContainer const& rhs) const = default;
» more...
Equality operator
<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 |
Compare two InlineContainers.
<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>Three-way comparison operator
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...
Three-way comparison operator
<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;
<mrdocs/Metadata/DocComment/Block/ParamBlock.hpp>
ParamDirection direction = ParamDirection::none;
<mrdocs/Metadata/DocComment/Block/ParamBlock.hpp>
std::string name;
<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>
constexpr static
BlockKind kind_id;
<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. |
<mrdocs/Metadata/DocComment/Block/PostconditionBlock.hpp>
struct PostconditionBlock
: BlockCommonBase<BlockKind::Postcondition>
, InlineContainer
| Name | Description |
|---|---|
BlockCommonBase<BlockKind::Postcondition> | Base class for providing variant discriminator functions. |
InlineContainer | An internal node in the inline element tree |
| Name | Description |
|---|---|
operator= | Assign an InlineContainer with a single TextInline child. |
append | append overloads |
asInlineContainer | Helper function so that derived classes can get a reference to the base class. |
back | Get the last inline child. |
begin | Begin iterator forwarding to children |
clear | Clear all inline children. |
emplace_back | Append a child of the specified type. |
empty | Determine if there are no inline children. |
end | End iterator forwarding to children |
erase | Erase from children |
front | Get the first inline child. |
insert | Erase from children |
operator+= | Addition assignment operators |
size | Get the number of inline children. |
operator== | Compare two InlineContainers. |
operator<=> | Compare two InlineContainers. |
| Name |
|---|
children |
| Name |
|---|
kind_id |
| Name |
|---|
PostconditionBlock |
| Name | Description |
|---|---|
getAsPlainText | Flatten an InlineContainer to plain text. |
getAsPlainText | Flatten an InlineContainer to plain text. |
isEmpty | Determine if the inline is empty |
ltrim | Removes leading whitespace from the first text element in the given InlineContainer. |
ltrim | Removes leading whitespace from the block. |
rtrim | Removes trailing whitespace from the last text element in the given InlineContainer. |
rtrim | Removes trailing whitespace from the block. |
trim | Removes leading and trailing whitespace from the block. |
trim | Removes leading and trailing whitespace from the text elements in the given InlineContainer. |
Compare two InlineContainers.
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>Equality operator
constexpr
bool
operator==(PostconditionBlock const& rhs) const noexcept = default;
» more...
Compare two InlineContainers.
constexpr
bool
operator==(InlineContainer const& rhs) const = default;
» more...
Equality operator
<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 |
Compare two InlineContainers.
<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>Three-way comparison operator
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...
Three-way comparison operator
<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;
<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 constructor |
| mrdocs::doc::InlineContainer::InlineContainer | Copy constructor |
<mrdocs/Metadata/DocComment/Block/PreconditionBlock.hpp>
struct PreconditionBlock final
: BlockCommonBase<BlockKind::Precondition>
, InlineContainer
| Name | Description |
|---|---|
BlockCommonBase<BlockKind::Precondition> | Base class for providing variant discriminator functions. |
InlineContainer | An internal node in the inline element tree |
| Name | Description |
|---|---|
operator= | Assign an InlineContainer with a single TextInline child. |
append | append overloads |
asInlineContainer | Helper function so that derived classes can get a reference to the base class. |
back | Get the last inline child. |
begin | Begin iterator forwarding to children |
clear | Clear all inline children. |
emplace_back | Append a child of the specified type. |
empty | Determine if there are no inline children. |
end | End iterator forwarding to children |
erase | Erase from children |
front | Get the first inline child. |
insert | Erase from children |
operator+= | Addition assignment operators |
size | Get the number of inline children. |
operator== | Compare two InlineContainers. |
operator<=> | Compare two InlineContainers. |
| Name |
|---|
children |
| Name |
|---|
kind_id |
| Name |
|---|
PreconditionBlock |
| Name | Description |
|---|---|
getAsPlainText | Flatten an InlineContainer to plain text. |
getAsPlainText | Flatten an InlineContainer to plain text. |
isEmpty | Determine if the inline is empty |
ltrim | Removes leading whitespace from the first text element in the given InlineContainer. |
ltrim | Removes leading whitespace from the block. |
rtrim | Removes trailing whitespace from the last text element in the given InlineContainer. |
rtrim | Removes trailing whitespace from the block. |
trim | Removes leading and trailing whitespace from the block. |
trim | Removes leading and trailing whitespace from the text elements in the given InlineContainer. |
Compare two InlineContainers.
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>Equality operator
constexpr
bool
operator==(PreconditionBlock const& rhs) const noexcept = default;
» more...
Compare two InlineContainers.
constexpr
bool
operator==(InlineContainer const& rhs) const = default;
» more...
Equality operator
<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 |
Compare two InlineContainers.
<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>Three-way comparison operator
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...
Three-way comparison operator
<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;
<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 constructor |
| mrdocs::doc::InlineContainer::InlineContainer | Copy constructor |
A list of list items
<mrdocs/Metadata/DocComment/Block/QuoteBlock.hpp>
struct QuoteBlock final
: BlockCommonBase<BlockKind::Quote>
, BlockContainer
| Name | Description |
|---|---|
BlockCommonBase<BlockKind::Quote> | Base class for providing variant discriminator functions. |
BlockContainer |
| Name | Description |
|---|---|
asBlockContainer | |
operator== | Equality operators |
operator<=> | Three-way comparison operators |
| Name |
|---|
blocks |
| 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 operator
constexpr
bool
operator==(QuoteBlock const& rhs) const noexcept = default;
» more...
Equality operator
constexpr
bool
operator==(BlockContainer const& rhs) const = default;
» more...
Equality operator
<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 operator
<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>Three-way comparison operator
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...
Three-way comparison operator
std::strong_ordering
operator<=>(BlockContainer const& rhs) const;
» more...
Three-way comparison operator
<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 |
Three-way comparison operator
<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>
| Name | Description |
|---|---|
InlineCommonBase<InlineKind::Reference> | Base class for providing variant discriminator functions. |
| Name | Description |
|---|---|
ReferenceInline [constructor] | Construct from string |
operator== | Equality operator |
operator<=> | Three-way comparison operators |
| Name |
|---|
isCode |
isCopyDetails |
isEmph |
isFootnoteReference |
isHighlight |
isImage |
isLineBreak |
isLink |
isMath |
isReference |
isSoftBreak |
isStrikethrough |
isStrong |
isSubscript |
isSuperscript |
isText |
| Name |
|---|
id |
literal |
| 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 from string
<mrdocs/Metadata/DocComment/Inline/ReferenceInline.hpp>
explicit
ReferenceInline(std::string str = {}) noexcept;
| Name | Description |
|---|---|
| str | The object to construct from |
Equality operator
<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 |
Three-way comparison operators
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>Three-way comparison operator
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...
Three-way comparison operator
<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;
<mrdocs/Metadata/DocComment/Inline/ReferenceInline.hpp>
SymbolID id = = SymbolID::invalid;
<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
| 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] | Destructor |
operator= | Assign an InlineContainer with a single TextInline child. |
append | append overloads |
asInlineContainer | Helper function so that derived classes can get a reference to the base class. |
back | Get the last inline child. |
begin | Begin iterator forwarding to children |
clear | Clear all inline children. |
emplace_back | Append a child of the specified type. |
empty | Determine if there are no inline children. |
end | End iterator forwarding to children |
erase | Erase from children |
front | Get the first inline child. |
insert | Erase from children |
operator+= | Addition assignment operators |
size | Get the number of inline children. |
operator== | Compare two InlineContainers. |
operator<=> | Compare two InlineContainers. |
| Name |
|---|
children |
| Name |
|---|
kind_id |
| Name |
|---|
ReturnsBlock |
| 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 InlineContainer
ReturnsBlock(InlineContainer const& other);
» more...
Construct from InlineContainer
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 InlineContainer
<mrdocs/Metadata/DocComment/Block/ReturnsBlock.hpp>
ReturnsBlock(InlineContainer const& other);
| Name | Description |
|---|---|
| other | The object to copy construct from |
Construct from InlineContainer
<mrdocs/Metadata/DocComment/Block/ReturnsBlock.hpp>
ReturnsBlock(InlineContainer&& other) noexcept;
| Name | Description |
|---|---|
| other | The object to move construct from |
Destructor
<mrdocs/Metadata/DocComment/Block/ReturnsBlock.hpp>
constexpr
virtual
~ReturnsBlock() override = default;
Assign an InlineContainer with a single TextInline child.
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>Copy assignment operator
constexpr
InlineContainer&
operator=(InlineContainer const& other) = default;
» more...
Copy assignment operator
constexpr
ReturnsBlock&
operator=(ReturnsBlock const& other) = default;
» more...
Move assignment operator
constexpr
InlineContainer&
operator=(InlineContainer&& other) noexcept = default;
» more...
Move assignment operator
constexpr
ReturnsBlock&
operator=(ReturnsBlock&& other) noexcept = default;
» more...
Assign an InlineContainer with a single TextInline child.
InlineContainer&
operator=(std::string_view text);
» more...
Copy assignment operator
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>
constexpr
InlineContainer&
operator=(InlineContainer const& other) = default;
| Name | Description |
|---|---|
| other | The object to copy assign from |
Copy assignment operator
<mrdocs/Metadata/DocComment/Block/ReturnsBlock.hpp>
constexpr
ReturnsBlock&
operator=(ReturnsBlock const& other) = default;
| Name | Description |
|---|---|
| other | The object to copy assign from |
Move assignment operator
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>
constexpr
InlineContainer&
operator=(InlineContainer&& other) noexcept = default;
| Name | Description |
|---|---|
| other | The object to move assign from |
Move assignment operator
<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 |
Compare two InlineContainers.
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>Equality operator
constexpr
bool
operator==(ReturnsBlock const& rhs) const noexcept = default;
» more...
Compare two InlineContainers.
constexpr
bool
operator==(InlineContainer const& rhs) const = default;
» more...
Equality operator
<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 |
Compare two InlineContainers.
<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>Three-way comparison operator
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...
Three-way comparison operator
<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;
<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
| Name | Description |
|---|---|
BlockCommonBase<BlockKind::See> | Base class for providing variant discriminator functions. |
InlineContainer | An internal node in the inline element tree |
| Name | Description |
|---|---|
operator= | Assign an InlineContainer with a single TextInline child. |
append | append overloads |
asInlineContainer | Helper function so that derived classes can get a reference to the base class. |
back | Get the last inline child. |
begin | Begin iterator forwarding to children |
clear | Clear all inline children. |
emplace_back | Append a child of the specified type. |
empty | Determine if there are no inline children. |
end | End iterator forwarding to children |
erase | Erase from children |
front | Get the first inline child. |
insert | Erase from children |
operator+= | Addition assignment operators |
size | Get the number of inline children. |
operator== | Compare two InlineContainers. |
operator<=> | Compare two InlineContainers. |
| Name |
|---|
children |
| Name |
|---|
kind_id |
| Name |
|---|
SeeBlock |
| 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
Compare two InlineContainers.
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>Equality operator
constexpr
bool
operator==(SeeBlock const& rhs) const noexcept = default;
» more...
Compare two InlineContainers.
constexpr
bool
operator==(InlineContainer const& rhs) const = default;
» more...
Equality operator
<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 |
Compare two InlineContainers.
<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>Three-way comparison operator
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...
Three-way comparison operator
<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;
<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 constructor |
| mrdocs::doc::InlineContainer::InlineContainer | Copy constructor |
A line break that may render as space
<mrdocs/Metadata/DocComment/Inline/SoftBreakInline.hpp>
struct SoftBreakInline
: InlineCommonBase<InlineKind::SoftBreak>
| Name | Description |
|---|---|
InlineCommonBase<InlineKind::SoftBreak> | Base class for providing variant discriminator functions. |
| Name | Description |
|---|---|
SoftBreakInline [constructor] | Default constructor |
~SoftBreakInline [destructor] [virtual] | Destructor |
operator== | Equality operator |
operator<=> | Three-way comparison operators |
| 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. |
Default constructor
<mrdocs/Metadata/DocComment/Inline/SoftBreakInline.hpp>
constexpr
SoftBreakInline() noexcept = default;
Destructor
<mrdocs/Metadata/DocComment/Inline/SoftBreakInline.hpp>
constexpr
virtual
~SoftBreakInline() override = default;
Equality operator
<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 |
Three-way comparison operators
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>Three-way comparison operator
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...
Three-way comparison operator
<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;
A piece of styled text.
<mrdocs/Metadata/DocComment/Inline/StrikethroughInline.hpp>
struct StrikethroughInline final
: InlineCommonBase<InlineKind::Strikethrough>
, InlineContainer
| Name | Description |
|---|---|
InlineCommonBase<InlineKind::Strikethrough> | Base class for providing variant discriminator functions. |
InlineContainer | An internal node in the inline element tree |
| Name | Description |
|---|---|
operator= | Assign an InlineContainer with a single TextInline child. |
append | append overloads |
asInlineContainer | Helper function so that derived classes can get a reference to the base class. |
back | Get the last inline child. |
begin | Begin iterator forwarding to children |
clear | Clear all inline children. |
emplace_back | Append a child of the specified type. |
empty | Determine if there are no inline children. |
end | End iterator forwarding to children |
erase | Erase from children |
front | Get the first inline child. |
insert | Erase from children |
operator+= | Addition assignment operators |
size | Get the number of inline children. |
operator== | Compare two InlineContainers. |
operator<=> | Compare two InlineContainers. |
| Name |
|---|
isCode |
isCopyDetails |
isEmph |
isFootnoteReference |
isHighlight |
isImage |
isLineBreak |
isLink |
isMath |
isReference |
isSoftBreak |
isStrikethrough |
isStrong |
isSubscript |
isSuperscript |
isText |
| Name |
|---|
children |
| 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. |
Compare two InlineContainers.
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>Equality operator
constexpr
bool
operator==(StrikethroughInline const& rhs) const noexcept = default;
» more...
Compare two InlineContainers.
constexpr
bool
operator==(InlineContainer const& rhs) const = default;
» more...
Equality operator
<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 |
Compare two InlineContainers.
<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>Three-way comparison operator
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...
Three-way comparison operator
<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;
A piece of styled text.
<mrdocs/Metadata/DocComment/Inline/StrongInline.hpp>
struct StrongInline final
: InlineCommonBase<InlineKind::Strong>
, InlineContainer
| Name | Description |
|---|---|
InlineCommonBase<InlineKind::Strong> | Base class for providing variant discriminator functions. |
InlineContainer | An internal node in the inline element tree |
| Name | Description |
|---|---|
operator= | Assign an InlineContainer with a single TextInline child. |
append | append overloads |
asInlineContainer | Helper function so that derived classes can get a reference to the base class. |
back | Get the last inline child. |
begin | Begin iterator forwarding to children |
clear | Clear all inline children. |
emplace_back | Append a child of the specified type. |
empty | Determine if there are no inline children. |
end | End iterator forwarding to children |
erase | Erase from children |
front | Get the first inline child. |
insert | Erase from children |
operator+= | Addition assignment operators |
size | Get the number of inline children. |
operator== | Compare two InlineContainers. |
operator<=> | Compare two InlineContainers. |
| Name |
|---|
isCode |
isCopyDetails |
isEmph |
isFootnoteReference |
isHighlight |
isImage |
isLineBreak |
isLink |
isMath |
isReference |
isSoftBreak |
isStrikethrough |
isStrong |
isSubscript |
isSuperscript |
isText |
| Name |
|---|
children |
| Name |
|---|
kind_id |
| Name |
|---|
StrongInline |
| Name | Description |
|---|---|
getAsPlainText | Flatten an InlineContainer to plain text. |
getAsPlainText | Flatten an InlineContainer to plain text. |
getAsPlainText | Get the plain text representation of an inline element tree. |
getAsPlainText | Get the plain text representation of an inline element tree. |
ltrim | Removes leading whitespace from the first text element in the given InlineContainer. |
rtrim | Removes trailing whitespace from the last text element in the given InlineContainer. |
trim | Removes leading and trailing whitespace from the text elements in the given InlineContainer. |
Compare two InlineContainers.
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>Equality operator
constexpr
bool
operator==(StrongInline const& rhs) const noexcept = default;
» more...
Compare two InlineContainers.
constexpr
bool
operator==(InlineContainer const& rhs) const = default;
» more...
Equality operator
<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 |
Compare two InlineContainers.
<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>Three-way comparison operator
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...
Three-way comparison operator
<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;
<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 constructor |
| mrdocs::doc::InlineContainer::InlineContainer | Copy constructor |
A piece of styled text.
<mrdocs/Metadata/DocComment/Inline/SubscriptInline.hpp>
struct SubscriptInline final
: InlineCommonBase<InlineKind::Subscript>
, InlineContainer
| Name | Description |
|---|---|
InlineCommonBase<InlineKind::Subscript> | Base class for providing variant discriminator functions. |
InlineContainer | An internal node in the inline element tree |
| Name | Description |
|---|---|
operator= | Assign an InlineContainer with a single TextInline child. |
append | append overloads |
asInlineContainer | Helper function so that derived classes can get a reference to the base class. |
back | Get the last inline child. |
begin | Begin iterator forwarding to children |
clear | Clear all inline children. |
emplace_back | Append a child of the specified type. |
empty | Determine if there are no inline children. |
end | End iterator forwarding to children |
erase | Erase from children |
front | Get the first inline child. |
insert | Erase from children |
operator+= | Addition assignment operators |
size | Get the number of inline children. |
operator== | Compare two InlineContainers. |
operator<=> | Compare two InlineContainers. |
| Name |
|---|
isCode |
isCopyDetails |
isEmph |
isFootnoteReference |
isHighlight |
isImage |
isLineBreak |
isLink |
isMath |
isReference |
isSoftBreak |
isStrikethrough |
isStrong |
isSubscript |
isSuperscript |
isText |
| Name |
|---|
children |
| 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. |
Compare two InlineContainers.
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>Equality operator
constexpr
bool
operator==(SubscriptInline const& rhs) const noexcept = default;
» more...
Compare two InlineContainers.
constexpr
bool
operator==(InlineContainer const& rhs) const = default;
» more...
Equality operator
<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 |
Compare two InlineContainers.
<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>Three-way comparison operator
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...
Three-way comparison operator
<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;
A piece of styled text.
<mrdocs/Metadata/DocComment/Inline/SuperscriptInline.hpp>
struct SuperscriptInline final
: InlineCommonBase<InlineKind::Superscript>
, InlineContainer
| Name | Description |
|---|---|
InlineCommonBase<InlineKind::Superscript> | Base class for providing variant discriminator functions. |
InlineContainer | An internal node in the inline element tree |
| Name | Description |
|---|---|
operator= | Assign an InlineContainer with a single TextInline child. |
append | append overloads |
asInlineContainer | Helper function so that derived classes can get a reference to the base class. |
back | Get the last inline child. |
begin | Begin iterator forwarding to children |
clear | Clear all inline children. |
emplace_back | Append a child of the specified type. |
empty | Determine if there are no inline children. |
end | End iterator forwarding to children |
erase | Erase from children |
front | Get the first inline child. |
insert | Erase from children |
operator+= | Addition assignment operators |
size | Get the number of inline children. |
operator== | Compare two InlineContainers. |
operator<=> | Compare two InlineContainers. |
| Name |
|---|
isCode |
isCopyDetails |
isEmph |
isFootnoteReference |
isHighlight |
isImage |
isLineBreak |
isLink |
isMath |
isReference |
isSoftBreak |
isStrikethrough |
isStrong |
isSubscript |
isSuperscript |
isText |
| Name |
|---|
children |
| 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. |
Compare two InlineContainers.
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>Equality operator
constexpr
bool
operator==(SuperscriptInline const& rhs) const noexcept = default;
» more...
Compare two InlineContainers.
constexpr
bool
operator==(InlineContainer const& rhs) const = default;
» more...
Equality operator
<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 |
Compare two InlineContainers.
<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>Three-way comparison operator
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...
Three-way comparison operator
<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
| Name | Description |
|---|---|
BlockCommonBase<BlockKind::TParam> | Base class for providing variant discriminator functions. |
InlineContainer | An internal node in the inline element tree |
| Name | Description |
|---|---|
operator= | Assign an InlineContainer with a single TextInline child. |
append | append overloads |
asInlineContainer | Helper function so that derived classes can get a reference to the base class. |
back | Get the last inline child. |
begin | Begin iterator forwarding to children |
clear | Clear all inline children. |
emplace_back | Append a child of the specified type. |
empty | Determine if there are no inline children. |
end | End iterator forwarding to children |
erase | Erase from children |
front | Get the first inline child. |
insert | Erase from children |
operator+= | Addition assignment operators |
size | Get the number of inline children. |
operator== | Compare two InlineContainers. |
operator<=> | Compare two InlineContainers. |
| Name |
|---|
children |
name |
| Name |
|---|
kind_id |
| Name |
|---|
TParamBlock |
| Name | Description |
|---|---|
getAsPlainText | Flatten an InlineContainer to plain text. |
getAsPlainText | Flatten an InlineContainer to plain text. |
isEmpty | Determine if the inline is empty |
ltrim | Removes leading whitespace from the first text element in the given InlineContainer. |
ltrim | Removes leading whitespace from the block. |
rtrim | Removes trailing whitespace from the last text element in the given InlineContainer. |
rtrim | Removes trailing whitespace from the block. |
trim | Removes leading and trailing whitespace from the block. |
trim | Removes leading and trailing whitespace from the text elements in the given InlineContainer. |
Compare two InlineContainers.
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>Equality operator
constexpr
bool
operator==(TParamBlock const& rhs) const noexcept = default;
» more...
Compare two InlineContainers.
constexpr
bool
operator==(InlineContainer const& rhs) const = default;
» more...
Equality operator
<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 |
Compare two InlineContainers.
<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>Three-way comparison operator
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...
Three-way comparison operator
<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;
<mrdocs/Metadata/DocComment/Block/TParamBlock.hpp>
std::string name;
<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>
constexpr static
BlockKind kind_id;
<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 constructor |
| mrdocs::doc::InlineContainer::InlineContainer | Copy constructor |
A table block
<mrdocs/Metadata/DocComment/Block/TableBlock.hpp>
struct TableBlock final
: BlockCommonBase<BlockKind::Table>
| Name | Description |
|---|---|
BlockCommonBase<BlockKind::Table> | Base class for providing variant discriminator functions. |
| Name | Description |
|---|---|
operator== | Equality operator |
operator<=> | Three-way comparison operators |
| Name |
|---|
Alignments |
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 operator
<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 |
Three-way comparison operators
<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>Three-way comparison operator
auto
operator<=>(TableBlock const& other) const;
» more...
Three-way comparison operator
constexpr
auto
operator<=>(BlockCommonBase<mrdocs::doc::BlockKind::Table> const& rhs) const = default;
» more...
Three-way comparison operator
<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;
<mrdocs/Metadata/DocComment/Block/TableBlock.hpp>
std::vector<TableAlignmentKind> Alignments;
<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= | Assign an InlineContainer with a single TextInline child. |
append | append overloads |
asInlineContainer | Helper function so that derived classes can get a reference to the base class. |
back | Get the last inline child. |
begin | Begin iterator forwarding to children |
clear | Clear all inline children. |
emplace_back | Append a child of the specified type. |
empty | Determine if there are no inline children. |
end | End iterator forwarding to children |
erase | Erase from children |
front | Get the first inline child. |
insert | Erase from children |
operator+= | Addition assignment operators |
size | Get the number of inline children. |
operator== | Compare two InlineContainers. |
operator<=> | Compare two InlineContainers. |
| Name |
|---|
children |
| Name | Description |
|---|---|
getAsPlainText | Flatten an InlineContainer to plain text. |
getAsPlainText | Flatten an InlineContainer to plain text. |
ltrim | Removes leading whitespace from the first text element in the given InlineContainer. |
rtrim | Removes trailing whitespace from the last text element in the given InlineContainer. |
trim | Removes leading and trailing whitespace from the text elements in the given InlineContainer. |
Compare two InlineContainers.
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>Equality operator
constexpr
bool
operator==(TableCell const& rhs) const noexcept = default;
» more...
Compare two InlineContainers.
constexpr
bool
operator==(InlineContainer const& rhs) const = default;
» more...
Equality operator
<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 |
Compare two InlineContainers.
<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>Three-way comparison operator
auto
operator<=>(TableCell const& rhs) const = default;
» more...
Compare two InlineContainers.
std::strong_ordering
operator<=>(InlineContainer const& rhs) const;
» more...
Three-way comparison operator
<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 operator |
operator<=> | Three-way comparison operator |
| Name |
|---|
Cells |
is_header |
Equality operator
<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 |
Three-way comparison operator
<mrdocs/Metadata/DocComment/Block/TableRow.hpp>
constexpr
auto
operator<=>(TableRow const& rhs) const = default;
| Name | Description |
|---|---|
| rhs | The right operand |
<mrdocs/Metadata/DocComment/Block/TableRow.hpp>
std::vector<TableCell> Cells;
<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>
| Name | Description |
|---|---|
InlineCommonBase<InlineKind::Text> | Base class for providing variant discriminator functions. |
| Name | Description |
|---|---|
TextInline [constructor] | Constructors |
~TextInline [destructor] [virtual] | Destructor |
operator== | Equality operator |
operator<=> | Three-way comparison operators |
| Name |
|---|
isCode |
isCopyDetails |
isEmph |
isFootnoteReference |
isHighlight |
isImage |
isLineBreak |
isLink |
isMath |
isReference |
isSoftBreak |
isStrikethrough |
isStrong |
isSubscript |
isSuperscript |
isText |
| Name |
|---|
literal |
| 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. |
There will be no newlines in the text. Otherwise, this would be represented as multiple text nodes within a Paragraph node.
Constructors
<mrdocs/Metadata/DocComment/Inline/TextInline.hpp>Default constructor
constexpr
TextInline() noexcept = default;
» more...
Construct from string_view
explicit
TextInline(std::string_view str) noexcept;
» more...
Construct from string
explicit
TextInline(std::string const& str) noexcept;
» more...
Construct from string
explicit
TextInline(std::string&& str) noexcept;
» more...
Construct from char
explicit
TextInline(char const* str) noexcept;
» more...
Default constructor
<mrdocs/Metadata/DocComment/Inline/TextInline.hpp>
constexpr
TextInline() noexcept = default;
Construct from 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 string
<mrdocs/Metadata/DocComment/Inline/TextInline.hpp>
explicit
TextInline(std::string const& str) noexcept;
| Name | Description |
|---|---|
| str | The object to copy construct from |
Construct from string
<mrdocs/Metadata/DocComment/Inline/TextInline.hpp>
explicit
TextInline(std::string&& str) noexcept;
| Name | Description |
|---|---|
| str | The object to move construct from |
Construct from char
<mrdocs/Metadata/DocComment/Inline/TextInline.hpp>
explicit
TextInline(char const* str) noexcept;
| Name | Description |
|---|---|
| str | The value to construct from |
Destructor
<mrdocs/Metadata/DocComment/Inline/TextInline.hpp>
constexpr
virtual
~TextInline() override = default;
Equality operator
<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 |
Three-way comparison operators
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>Three-way comparison operator
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...
Three-way comparison operator
<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;
<mrdocs/Metadata/DocComment/Inline/TextInline.hpp>
std::string literal;
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>
constexpr static
InlineKind kind_id;
The brief description
<mrdocs/Metadata/DocComment/Block/ThematicBreakBlock.hpp>
struct ThematicBreakBlock final
: BlockCommonBase<BlockKind::ThematicBreak>
| Name | Description |
|---|---|
BlockCommonBase<BlockKind::ThematicBreak> | Base class for providing variant discriminator functions. |
| Name | Description |
|---|---|
ThematicBreakBlock [constructor] | Copy constructor |
operator= | Copy assignment operator |
operator<=> | Three-way comparison operators |
| 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 operator
<mrdocs/Metadata/DocComment/Block/ThematicBreakBlock.hpp>
constexpr
ThematicBreakBlock&
operator=(ThematicBreakBlock const& other) = default;
| Name | Description |
|---|---|
| other | The object to copy assign from |
Three-way comparison operators
<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>Three-way comparison operator
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...
Three-way comparison operator
<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 parameter
<mrdocs/Metadata/DocComment/Block/ThrowsBlock.hpp>
struct ThrowsBlock final
: BlockCommonBase<BlockKind::Throws>
, InlineContainer
| Name | Description |
|---|---|
BlockCommonBase<BlockKind::Throws> | Base class for providing variant discriminator functions. |
InlineContainer | An internal node in the inline element tree |
| Name | Description |
|---|---|
operator= | Assign an InlineContainer with a single TextInline child. |
append | append overloads |
asInlineContainer | Helper function so that derived classes can get a reference to the base class. |
back | Get the last inline child. |
begin | Begin iterator forwarding to children |
clear | Clear all inline children. |
emplace_back | Append a child of the specified type. |
empty | Determine if there are no inline children. |
end | End iterator forwarding to children |
erase | Erase from children |
front | Get the first inline child. |
insert | Erase from children |
operator+= | Addition assignment operators |
size | Get the number of inline children. |
operator== | Compare two InlineContainers. |
operator<=> | Compare two InlineContainers. |
| Name |
|---|
children |
exception |
| Name |
|---|
kind_id |
| Name |
|---|
ThrowsBlock |
| Name | Description |
|---|---|
getAsPlainText | Flatten an InlineContainer to plain text. |
getAsPlainText | Flatten an InlineContainer to plain text. |
isEmpty | Determine if the inline is empty |
ltrim | Removes leading whitespace from the first text element in the given InlineContainer. |
ltrim | Removes leading whitespace from the block. |
rtrim | Removes trailing whitespace from the last text element in the given InlineContainer. |
rtrim | Removes trailing whitespace from the block. |
trim | Removes leading and trailing whitespace from the block. |
trim | Removes leading and trailing whitespace from the text elements in the given InlineContainer. |
Compare two InlineContainers.
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>Equality operator
constexpr
bool
operator==(ThrowsBlock const& rhs) const noexcept = default;
» more...
Compare two InlineContainers.
constexpr
bool
operator==(InlineContainer const& rhs) const = default;
» more...
Equality operator
<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 |
Compare two InlineContainers.
<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>Three-way comparison operator
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...
Three-way comparison operator
<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;
<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>
constexpr static
BlockKind kind_id;
<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 constructor |
| mrdocs::doc::InlineContainer::InlineContainer | Copy constructor |
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. |
<mrdocs/Metadata/DocComment/Block/BlockKind.hpp>
enum class BlockKind : int;
<mrdocs/Metadata/DocComment/Inline/InlineKind.hpp>
enum class InlineKind : int;
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;
| 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. |
`all`: copy the brief and the description.
`brief`: only copy the brief.
`description`: only copy the description.
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. |
<mrdocs/Metadata/DocComment/Block/BlockKind.hpp>
constexpr
bool
isBlockCommand(BlockKind k) noexcept;
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...
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
BlockKind const kind);
» more...
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 Admonition 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...
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
BlockContainer const& I,
DomCorpus const* domCorpus);
» more...
Return the Brief as a dom::Value object.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
BriefBlock const& I,
DomCorpus const* domCorpus);
» more...
Return the Code as a dom::Value object.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
CodeBlock const& I,
DomCorpus const* domCorpus);
» more...
Return the Code as a dom::Value object.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
CodeInline const& I,
DomCorpus const* domCorpus);
» more...
Return the CopyDetails as a dom::Value object.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
CopyDetailsInline const& I,
DomCorpus const* domCorpus);
» more...
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 Emph as a dom::Value object.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
EmphInline const& I,
DomCorpus const* domCorpus);
» more...
Return the FootnoteDefinition as a dom::Value object.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
FootnoteDefinitionBlock const& I,
DomCorpus const* domCorpus);
» more...
Return the FootnoteReference as a dom::Value object.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
FootnoteReferenceInline const& I,
DomCorpus const* domCorpus);
» more...
Return the Heading as a dom::Value object.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
HeadingBlock const& I,
DomCorpus const* domCorpus);
» more...
Return the Highlight as a dom::Value object.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
HighlightInline const& I,
DomCorpus const* domCorpus);
» more...
Return the Image 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...
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
InlineContainer const& I,
DomCorpus const* domCorpus);
» more...
Return the LineBreak as a dom::Value object.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
LineBreakInline const& I,
DomCorpus const* domCorpus);
» more...
Return the Link as a dom::Value object.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
LinkInline const& I,
DomCorpus const* domCorpus);
» more...
Return the UnorderedList 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 Brief as a dom::Value object.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
MathBlock const& I,
DomCorpus const* domCorpus);
» more...
Return the Math as a dom::Value object.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
MathInline const& I,
DomCorpus const* domCorpus);
» more...
Return the Paragraph 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 Postcondition as a dom::Value object.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
PostconditionBlock const& I,
DomCorpus const* domCorpus);
» more...
Return the Precondition 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 Reference as a dom::Value object.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
ReferenceInline const& I,
DomCorpus const* domCorpus);
» more...
Return the Returns as a dom::Value object.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
ReturnsBlock const& I,
DomCorpus const* domCorpus);
» more...
Return the See as a dom::Value object.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
SeeBlock const& I,
DomCorpus const* domCorpus);
» more...
Return the SoftBreak as a dom::Value object.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
SoftBreakInline const& I,
DomCorpus const* domCorpus);
» more...
Return the Strikethrough as a dom::Value object.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
StrikethroughInline const& I,
DomCorpus const* domCorpus);
» more...
Return the Strong as a dom::Value object.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
StrongInline const& I,
DomCorpus const* domCorpus);
» more...
Return the Subscript as a dom::Value object.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
SubscriptInline const& I,
DomCorpus const* domCorpus);
» more...
Return the Superscript 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 UnorderedTable 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 Text as a dom::Value object.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
TextInline const& I,
DomCorpus const* domCorpus);
» more...
Return the Brief as a dom::Value object.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
ThematicBreakBlock const& I,
DomCorpus const* domCorpus);
» more...
Return the Throws as a dom::Value object.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
ThrowsBlock const& I,
DomCorpus const* domCorpus);
» more...
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...
void
tag_invoke(
mrdocs::dom::ValueFromTag,
mrdocs::dom::Value& v,
Optional<BriefBlock> 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 Admonition to a dom::Object.
template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
AdmonitionBlock const& I,
DomCorpus const* domCorpus);
» more...
Map the Block to a dom::Object.
template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
Block const& I,
DomCorpus const*);
» more...
template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
BlockContainer const& I,
DomCorpus const* domCorpus);
» more...
Map the Brief to a dom::Object.
template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
BriefBlock const& I,
DomCorpus const* domCorpus);
» more...
Map the Code to a dom::Object.
template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
CodeBlock const& I,
DomCorpus const* domCorpus);
» more...
Map the Code to a dom::Object.
template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
CodeInline const& I,
DomCorpus const* domCorpus);
» more...
Map the CopyDetails to a dom::Object.
template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
CopyDetailsInline const& I,
DomCorpus const* domCorpus);
» more...
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 Emph to a dom::Object.
template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
EmphInline const& I,
DomCorpus const* domCorpus);
» more...
Map the FootnoteDefinition to a dom::Object.
template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
FootnoteDefinitionBlock const& I,
DomCorpus const* domCorpus);
» more...
Map the FootnoteReference to a dom::Object.
template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
FootnoteReferenceInline const& I,
DomCorpus const* domCorpus);
» more...
Map the Heading to a dom::Object.
template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
HeadingBlock const& I,
DomCorpus const* domCorpus);
» more...
Map the Highlight to a dom::Object.
template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
HighlightInline const& I,
DomCorpus const* domCorpus);
» more...
Map the Image 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...
template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
InlineContainer const& I,
DomCorpus const* domCorpus);
» more...
Map the LineBreak to a dom::Object.
template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
LineBreakInline const& I,
DomCorpus const* domCorpus);
» more...
Map the Link to a dom::Object.
template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
LinkInline const& I,
DomCorpus const* domCorpus);
» more...
Map the UnorderedList 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 Brief to a dom::Object.
template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
MathBlock const& I,
DomCorpus const* domCorpus);
» more...
Map the Math to a dom::Object.
template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
MathInline const& I,
DomCorpus const* domCorpus);
» more...
Map the Paragraph 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 Postcondition to a dom::Object.
template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
PostconditionBlock const& I,
DomCorpus const* domCorpus);
» more...
Map the Precondition 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 Reference to a dom::Object.
template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
ReferenceInline const& I,
DomCorpus const* domCorpus);
» more...
Map the Returns to a dom::Object.
template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
ReturnsBlock const& I,
DomCorpus const* domCorpus);
» more...
Map the See to a dom::Object.
template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
SeeBlock const& I,
DomCorpus const* domCorpus);
» more...
Map the SoftBreak to a dom::Object.
template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
SoftBreakInline const& I,
DomCorpus const* domCorpus);
» more...
Map the Strikethrough to a dom::Object.
template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
StrikethroughInline const& I,
DomCorpus const* domCorpus);
» more...
Map the Strong to a dom::Object.
template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
StrongInline const& I,
DomCorpus const* domCorpus);
» more...
Map the Subscript to a dom::Object.
template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
SubscriptInline const& I,
DomCorpus const* domCorpus);
» more...
Map the Superscript 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 UnorderedTable 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 Text to a dom::Object.
template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
TextInline const& I,
DomCorpus const* domCorpus);
» more...
Map the Brief to a dom::Object.
template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
ThematicBreakBlock const& I,
DomCorpus const* domCorpus);
» more...
Map the Throws to a dom::Object.
template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
ThrowsBlock const& I,
DomCorpus const* domCorpus);
» more...
Map the Polymorphic Inline as a dom::Value object.
template<
class IO,
polymorphic_storage_for<Block> InlineTy>
void
tag_invoke(
dom::ValueFromTag,
IO& io,
InlineTy const& I,
DomCorpus const* domCorpus);
» more...
| Name | Description |
|---|---|
| v | The output value. |
| I | The input object. |
| domCorpus | The DOM corpus, or nullptr if not part of a corpus. |
| io | The output parameter to receive the dom::Value. |
| t | The tag. |
Return the Admonish from a dom::Value string.
<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. |
<mrdocs/Metadata/DocComment/Block/BlockKind.hpp>
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
BlockKind const kind);
<mrdocs/Metadata/DocComment/Inline/InlineKind.hpp>
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
InlineKind const kind);
Return the ParamDirection from a dom::Value string.
<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 Admonition 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. |
<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
BlockContainer const& I,
DomCorpus const* domCorpus);
Return the Brief as a dom::Value object.
<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 Code 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 Code 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 | A piece of styled text. |
| domCorpus | Front-end factory for producing Dom nodes. |
Return the CopyDetails 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. |
<mrdocs/Metadata/DocComment/Block/DefinitionListBlock.hpp>
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
DefinitionListBlock const& I,
DomCorpus const* domCorpus);
Return the DefinitionListItem as a dom::Value object.
<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 Emph 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 | A piece of styled text. |
| domCorpus | Front-end factory for producing Dom nodes. |
Return the FootnoteDefinition 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 | Preformatted source code. |
| domCorpus | Front-end factory for producing Dom nodes. |
Return the FootnoteReference 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 Heading 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 Highlight 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 | A piece of highlighted text. |
| domCorpus | Front-end factory for producing Dom nodes. |
Return the Image 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. |
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
InlineContainer const& I,
DomCorpus const* domCorpus);
Return the LineBreak as a dom::Value object.
<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 Link 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 UnorderedList 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 list |
| domCorpus | Front-end factory for producing Dom nodes. |
Return the Brief 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 Math 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 Paragraph 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 Postcondition 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 Precondition 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 list of list items |
| domCorpus | Front-end factory for producing Dom nodes. |
Return the Reference 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 Returns 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 See 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 SoftBreak 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 space |
| domCorpus | Front-end factory for producing Dom nodes. |
Return the Strikethrough 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 | A piece of styled text. |
| domCorpus | Front-end factory for producing Dom nodes. |
Return the Strong 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 | A piece of styled text. |
| domCorpus | Front-end factory for producing Dom nodes. |
Return the Subscript 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 | A piece of styled text. |
| domCorpus | Front-end factory for producing Dom nodes. |
Return the Superscript 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 | A piece of styled text. |
| 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 UnorderedTable 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 Text 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 Brief 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 | The brief description |
| domCorpus | Front-end factory for producing Dom nodes. |
Return the Throws 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 parameter |
| domCorpus | Front-end factory for producing Dom nodes. |
<mrdocs/Metadata/DocComment/Block.hpp>
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
Optional<Polymorphic<Block>> const& I,
DomCorpus const* domCorpus);
Map the Polymorphic Block as a dom::Value object.
<mrdocs/Metadata/DocComment/Block.hpp>
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
Polymorphic<Block> const& I,
DomCorpus const* domCorpus);
| Name | Description |
|---|---|
| io | The output parameter to receive the dom::Value. |
| I | The polymorphic Block to convert. |
| domCorpus | The DomCorpus used to resolve references. |
| v | A variant container for any kind of Dom value. |
<mrdocs/Metadata/DocComment/Block/BriefBlock.hpp>
void
tag_invoke(
mrdocs::dom::ValueFromTag,
mrdocs::dom::Value& v,
Optional<BriefBlock> const& I,
DomCorpus const* domCorpus);
Map the Polymorphic Block to a dom::Object.
<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 Admonition 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 Block to a dom::Object.
<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>
template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
Block const& I,
DomCorpus const*);
| 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. |
<mrdocs/Metadata/DocComment/Block/BlockBase.hpp>
template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
BlockContainer const& I,
DomCorpus const* domCorpus);
Map the Brief to a dom::Object.
<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 Code 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 Code 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 CopyDetails 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. |
<mrdocs/Metadata/DocComment/Block/DefinitionListBlock.hpp>
template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
DefinitionListBlock const& I,
DomCorpus const* domCorpus);
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 Emph 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 FootnoteDefinition 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 FootnoteReference 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 Heading 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 Highlight 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 Image 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. |
<mrdocs/Metadata/DocComment/Inline/InlineBase.hpp>
template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
InlineContainer const& I,
DomCorpus const* domCorpus);
Map the LineBreak to a dom::Object.
<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 Link 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 UnorderedList 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 Brief 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 Math 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 Paragraph 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 Postcondition 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 Precondition 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 Reference 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 Returns 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 See 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 SoftBreak 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 Strikethrough 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 Strong 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 Subscript 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 Superscript 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 UnorderedTable 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 Text 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 Brief 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 Throws 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. |
Map the Polymorphic Inline as a dom::Value object.
<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);
| Name | Description |
|---|---|
| io | The output parameter to receive the dom::Object. |
| I | The input object. |
| domCorpus | The DOM corpus, or nullptr if not part of a corpus. |
toString overloads
<mrdocs/Metadata/DocComment/Block/AdmonitionKind.hpp>Return the name of the Admonish as a string.
dom::String
toString(AdmonitionKind kind) noexcept;
» more...
dom::String
toString(BlockKind kind) noexcept;
» more...
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. |
<mrdocs/Metadata/DocComment/Block/BlockKind.hpp>
dom::String
toString(BlockKind kind) noexcept;
<mrdocs/Metadata/DocComment/Inline/InlineKind.hpp>
dom::String
toString(InlineKind kind) noexcept;
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 |
|---|---|
| block | The block to visit. |
| fn | The function to call for each block. |
| args | Additional arguments to pass to the function. |
| el | The inline element to visit. |
Visit a block.
<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 |
|---|---|
| block | 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 operators
<mrdocs/Metadata/DocComment/Block.hpp>Equality operator
bool
operator==(
Polymorphic<Inline> const& lhs,
Polymorphic<Inline> const& rhs);
» more...
Equality operator
bool
operator==(
Polymorphic<Block> const& lhs,
Polymorphic<Block> const& rhs);
» more...
Equality operator
<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 operator
<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 operator
std::strong_ordering
operator<=>(
Polymorphic<Inline> const& lhs,
Polymorphic<Inline> const& rhs);
» more...
Three-way comparison operator
std::strong_ordering
operator<=>(
Polymorphic<Block> const& lhs,
Polymorphic<Block> const& rhs);
» more...
Three-way comparison operator
<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 operator
<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.
| Name |
|---|
JSON |
| Name | Description |
|---|---|
Array | An array of values |
ArrayImpl | Abstract array interface. |
DefaultArrayImpl | The default array implementation. |
DefaultFunctionImpl | |
DefaultObjectImpl | The default Object implementation. |
Function | |
FunctionImpl | |
LazyArrayImpl | Lazy array implementation |
LazyArrayImpl | Lazy array implementation |
LazyObjectImpl | Lazy object implementation. |
LazyObjectImpl | Lazy object implementation. |
LazyObjectMapTag | Customization point tag. |
Object | A container of key and value pairs. |
ObjectImpl | Abstract object interface. |
String | |
Value | A variant container for any kind of Dom value. |
ValueFromTag | Customization point tag. |
VariadicFunctionImpl | |
function_traits | |
function_traits<F> | |
function_traits<R(*)(Args...)> | |
function_traits<R(Args...)> | |
function_traits<R const volatile(C::*)(Args...)> |
| 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 | |
makeVariadicInvocable | |
newArray | Return a new array using a custom implementation. |
newFunction | Return a diagnostic string. |
newObject | Return a new object using a custom implementation. |
operator&& | Return the first dom::Value that is not truthy, or the last one. |
operator+ | Addition operators |
operator|| | Return the first dom::Value that is truthy, or the last one. |
stringOrNull | Return a non-empty string, or a null. |
swap | swap overloads |
toString | toString overloads |
operator== | Equality operators |
operator!= | Return the result of comparing two strings. |
operator<=> | Three-way comparison operators |
| Name | Description |
|---|---|
HasLazyObjectMap | Determine if T can be converted to dom::Value. |
HasLazyObjectMapWithContext | Concept to determine if a type can be mapped to a dom::LazyObjectImpl with a user-provided conversion. |
HasLazyObjectMapWithoutContext | Concept to determine if a type can be mapped to a dom::LazyObjectImpl with a user-provided conversion. |
HasStandaloneValueFrom | Determine if T can be converted to dom::Value without a context. |
HasValueFrom | Determine if T can be converted to dom::Value. |
HasValueFromWithContext | Concept to determine if a type can be converted to a dom::Value with a user-provided conversion. |
HasValueFromWithoutContext | Concept to determine if a type can be converted to a dom::Value with a user-provided conversion. |
StringLikeTy | Satisfied if StringTy is convertible to String but not a String. |
function_traits_convertible_to_value | |
has_function_args_for_default_function_impl | |
has_function_traits | |
has_function_traits_for_default_function_impl | |
has_invoke_expected_result_convertible_to_dom_value | |
has_invoke_result_convertible_to_dom_value | |
has_invoke_result_for_default_function_impl |
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 |
|---|---|
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
| 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 |
Arrays are a collection of indexed values. They are an extension of objects with a particular relationship between integer-keyed properties and some abstract length-property. Besides, they include convenient methods to manipulate these ordered sequences of values.
A constant iterator referencing an element in an Array.
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;
| 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 |
This interface is used by Array types.
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.
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.
| 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] | |
get [virtual] | |
set [virtual] | Set the i-th element, without bounds checking. |
size [virtual] | |
type_key [virtual] |
This implementation is backed by a simple vector and allows appending.
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>Default constructor
DefaultArrayImpl();
» more...
Construct from storage_type
explicit
DefaultArrayImpl(storage_type elements) noexcept;
» more...
Default constructor
<mrdocs/Dom/Array.hpp>
DefaultArrayImpl();
Construct from storage_type
<mrdocs/Dom/Array.hpp>
explicit
DefaultArrayImpl(storage_type elements) noexcept;
| Name | Description |
|---|---|
| elements | The object to construct from |
Set the i-th element, without bounds checking.
<mrdocs/Dom/Array.hpp>Set the i-th element, without bounds checking.
virtual
void
set(
size_type,
Value);
» more...
virtual
void
set(
size_type i,
Value v) override;
» more...
Set the i-th element, without bounds checking.
<mrdocs/Dom/Array.hpp>
virtual
char const*
type_key() const noexcept override;
<mrdocs/Dom/Function.hpp>
template<class F>
class DefaultFunctionImpl
: public FunctionImpl
| Name | Description |
|---|---|
FunctionImpl |
| Name |
|---|
args_type |
return_type |
| Name | Description |
|---|---|
DefaultFunctionImpl [constructor] | Construct from U |
call [virtual] | |
type_key [virtual] |
<mrdocs/Dom/Function.hpp>
using args_type = function_traits<F>::args_type;
<mrdocs/Dom/Function.hpp>
using return_type = function_traits<F>::return_type;
Construct from U
<mrdocs/Dom/Function.hpp>
template<class U>
DefaultFunctionImpl(U&& u);
| Name | Description |
|---|---|
| u | The object to move construct from |
<mrdocs/Dom/Function.hpp>
virtual
Expected<Value>
call(Array const& args) const override;
<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] | |
get [virtual] | Return the value for the specified key, or null. |
set [virtual] | Insert or set the given key/value pair. |
size [virtual] | |
type_key [virtual] | Return the type key of the implementation. |
visit [virtual] | Invoke the visitor for each key/value pair. |
Constructors
<mrdocs/Dom/Object.hpp>Default constructor
DefaultObjectImpl() noexcept;
» more...
Construct from storage_type
explicit
DefaultObjectImpl(storage_type entries) noexcept;
» more...
Default constructor
<mrdocs/Dom/Object.hpp>
DefaultObjectImpl() noexcept;
Construct from storage_type
<mrdocs/Dom/Object.hpp>
explicit
DefaultObjectImpl(storage_type entries) noexcept;
| Name | Description |
|---|---|
| entries | The object to construct from |
<mrdocs/Dom/Object.hpp>
virtual
bool
exists(std::string_view key) const override;
Return the value for the specified key, or null.
<mrdocs/Dom/Object.hpp>
virtual
Value
get(std::string_view) const override;
» more...
Return the value for the specified key, or null.
virtual
Value
get(std::string_view key) const = 0;
» more...
| Name | Description |
|---|---|
| key | The key. |
Return the value for the specified key, or null.
| Name | Description |
|---|---|
| key | The key. |
Insert or set the given key/value pair.
<mrdocs/Dom/Object.hpp>
virtual
void
set(
String,
Value) override;
» more...
Insert or set the given key/value pair.
virtual
void
set(
String key,
Value value) = 0;
» more...
| Name | Description |
|---|---|
| key | The key. |
| value | The value to set. |
Insert or set the given key/value pair.
| Name | Description |
|---|---|
| key | The key. |
| value | The value to set. |
<mrdocs/Dom/Object.hpp>
virtual
std::size_t
size() const override;
Invoke the visitor for each key/value pair.
<mrdocs/Dom/Object.hpp>
virtual
bool
visit(std::function<bool(String, Value)>) const override;
» more...
Invoke the visitor for each key/value pair.
virtual
bool
visit(std::function<bool(String, Value)> fn) const = 0;
» more...
true if the visitor returned true for all elements, otherwise false.
| Name | Description |
|---|---|
| fn | The visitor function. |
<mrdocs/Dom/Object.hpp>
virtual
bool
visit(std::function<bool(String, Value)>) const override;
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. |
<mrdocs/Dom/Function.hpp>
class Function;
| Name | Description |
|---|---|
Function [constructor] | Constructor. |
~Function [destructor] | Destructor. |
operator= | Assignment. |
call | Invoke the function. |
impl | Return the implementation used by this object. |
operator() | Invoke the function. |
swap | Swap two objects. |
try_invoke | Invoke the function. |
type_key | Return the type key. |
| Name | Description |
|---|---|
newFunction |
Return a diagnostic string. |
swap |
Swap two objects. |
Constructor.
<mrdocs/Dom/Function.hpp>Constructor.
Function() noexcept;
» more...
Constructor.
Function(Function const& other) noexcept;
» more...
Constructor.
Function(Function&& other) noexcept;
» more...
Construct from F
template<class F>
requires function_traits_convertible_to_value<std::decay_t<F>>
Function(F const& f);
» more...
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 from F
<mrdocs/Dom/Function.hpp>
template<class F>
requires function_traits_convertible_to_value<std::decay_t<F>>
Function(F const& f);
| Name | Description |
|---|---|
| f | The object to copy construct from |
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;
<mrdocs/Dom/Function.hpp>
class FunctionImpl;
| Name | Description |
|---|---|
~FunctionImpl [destructor] [virtual] | Destructor. |
call [virtual] | Invoke the function. |
type_key [virtual] | Return the type key of the implementation. |
| Name | Description |
|---|---|
DefaultFunctionImpl
| |
VariadicFunctionImpl
|
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
| 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] | Destructor |
emplace_back [virtual] | Append an element to the end of the array. |
get [virtual] | Return the i-th element, without bounds checking. |
set [virtual] | Set the i-th element, without bounds checking. |
size [virtual] | |
type_key [virtual] | Return the type key of the implementation. |
This array type is used to define a dom::Array whose members are evaluated on demand as they are accessed.
Each member can goes through a transform function before being returned as a Value so that all types can be converted to dom::Value.
The underlying representation of the array is a range from where the elements are extracted. Elements in this range should be convertible to dom::Value.
This class is typically useful for implementing arrays that are expensive and have recursive dependencies, as these recursive dependencies can also be deferred.
Unlike a LazyObjectImpl, which contains an overlay object, this implementation is read-only. The set and emplace_back methods are not implemented.
Constructors
<mrdocs/Dom/LazyArray.hpp>Construct from R
explicit
LazyArrayImpl(R const& arr);
» more...
explicit
LazyArrayImpl(
R const& arr,
Context const& ctx);
» more...
Construct from R
<mrdocs/Dom/LazyArray.hpp>
explicit
LazyArrayImpl(R const& arr);
| Name | Description |
|---|---|
| arr | The object to copy construct from |
<mrdocs/Dom/LazyArray.hpp>
explicit
LazyArrayImpl(
R const& arr,
Context const& ctx);
Destructor
<mrdocs/Dom/LazyArray.hpp>
virtual
~LazyArrayImpl() override = default;
Return the i-th element, without bounds checking.
<mrdocs/Dom/Array.hpp>
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...
<mrdocs/Dom/LazyArray.hpp>
virtual
dom::Value
get(std::size_t i) const override;
Return the i-th element, without bounds checking.
| Name | Description |
|---|---|
| i | An unsigned integral type used for indexes and sizes. |
<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
| 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. |
This array type is used to define a dom::Array whose members are evaluated on demand as they are accessed.
Each member can goes through a transform function before being returned as a Value so that all types can be converted to dom::Value.
The underlying representation of the array is a range from where the elements are extracted. Elements in this range should be convertible to dom::Value.
This class is typically useful for implementing arrays that are expensive and have recursive dependencies, as these recursive dependencies can also be deferred.
Unlike a LazyObjectImpl, which contains an overlay object, this implementation is read-only. The set and emplace_back methods are not implemented.
Lazy object implementation.
| 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] | 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. |
This interface is used to define objects whose members are evaluated on demand as they are accessed.
When any of the object properties are accessed, the object dom::Value is constructed. In practice, the object never takes any memory besides the pointer to the underlying object.
The keys and values in the underlying object should be mapped using tag_invoke.
This class is typically useful for implementing objects that are expensive and have recursive dependencies, as these recursive dependencies can also be deferred.
A context can also be stored in the object as a form to customize how the object is mapped. This context should be copyable and is propagated to other objects that support an overload with the same context.
The context can be simply a tag identifying how to map the object, or a more complex object carrying data to customize the mapping process.
In the latter case, because the context should be a copyable, the user might want to use a type with reference semantics.
Constructors
<mrdocs/Dom/LazyObject.hpp>Construct from T
explicit
LazyObjectImpl(T const& obj)
requires HasLazyObjectMapWithoutContext<T>;
» more...
explicit
LazyObjectImpl(
T const& obj,
Context const& context)
requires HasLazyObjectMapWithContext<T, Context>;
» more...
Construct from T
<mrdocs/Dom/LazyObject.hpp>
explicit
LazyObjectImpl(T const& obj)
requires HasLazyObjectMapWithoutContext<T>;
| Name | Description |
|---|---|
| obj | The object to copy construct from |
<mrdocs/Dom/LazyObject.hpp>
explicit
LazyObjectImpl(
T const& obj,
Context const& context)
requires HasLazyObjectMapWithContext<T, Context>;
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
| 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. |
This interface is used to define objects whose members are evaluated on demand as they are accessed.
When any of the object properties are accessed, the object dom::Value is constructed. In practice, the object never takes any memory besides the pointer to the underlying object.
The keys and values in the underlying object should be mapped using tag_invoke.
This class is typically useful for implementing objects that are expensive and have recursive dependencies, as these recursive dependencies can also be deferred.
A context can also be stored in the object as a form to customize how the object is mapped. This context should be copyable and is propagated to other objects that support an overload with the same context.
The context can be simply a tag identifying how to map the object, or a more complex object carrying data to customize the mapping process.
In the latter case, because the context should be a copyable, the user might want to use a type with reference semantics.
Customization point tag.
<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
| 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. |
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.
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;
| 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. |
This interface is used by Object types.
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. |
<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 | Return the name of the SymbolKind as a string. |
::mrdocs::toString | Convert ExplicitInfo to a string. |
::mrdocs::toString | Convert NoexceptInfo to a string. |
::mrdocs::doc::toString | Return the name of the Admonish as a string. |
::mrdocs::doc::toString | Return the name of the Parts as a string. |
::mrdocs::doc::toString | Return the name of the ParamDirection as a string. |
Constructor.
<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] | Destructor |
operator= | Assignment operators |
empty | Return if an Array or Object is empty. |
exists | Return true if a key exists. |
get | get overloads |
getArray | Return the array. |
getBool | Return the underlying boolean value. |
getFunction | Return the function. |
getInteger | Return the underlying integer value. |
getObject | Return the object. |
getString | Return the underlying string value. |
isArray | Return true if this is an array. |
isBoolean | Return true if this is a boolean. |
isFunction | Return true if this is a function. |
isInteger | Return true if this is an integer. |
isNull | Return true if this is null. |
isObject | Return true if this is an object. |
isSafeString | Return true if this is a safe string. |
isString | Return true if this is a string. |
isTruthy | Determine if a value is truthy |
isUndefined | Return true if this is undefined. |
kind | Return the type of value contained. |
lookup | Lookup a sequence of keys. |
operator() | Invoke the function. |
set | Set or replace the value for a given key. |
size | Return if an Array or Object is empty. |
swap | Swap two values. |
type_key | Return the type key of the value. |
operator std::string | Return the string. |
operator bool | Determine if a value is truthy |
| Name |
|---|
arr_ [variant member] |
b_ [variant member] |
fn_ [variant member] |
i_ [variant member] |
obj_ [variant member] |
str_ [variant member] |
| 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::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>Default constructor
Value() noexcept;
» more...
Copy constructor
Value(Value const& other);
» more...
Move constructor
Value(Value&& other) noexcept;
» more...
Construct from Array
Value(Array arr) noexcept;
» more...
Construct from Function
Value(Function fn) noexcept;
» more...
Construct from Kind
Value(dom::Kind kind) noexcept;
» more...
Construct from Object
Value(Object obj) noexcept;
» more...
Construct from String
Value(String str) noexcept;
» more...
Construct from int64_t
Value(int64_t v) noexcept;
» more...
Construct from nullptr_t
Value(std::nullptr_t v) noexcept;
» more...
Construct from storage_type
Value(Array::storage_type elements);
» more...
Construct from char
Value(char c) noexcept;
» more...
Construct from char
Value(char const* s);
» more...
Construct from T
template<std::floating_point T>
Value(T v) noexcept;
» more...
Construct from T
template<std::integral T>
requires (!std::same_as<T, bool>) &&
(!std::same_as<T, char>)
Value(T v) noexcept;
» more...
Construct from Boolean
template<std::convertible_to<String> Boolean>
Value(Boolean const& b);
» more...
Construct from F
template<class F>
requires function_traits_convertible_to_value<F>
Value(F const& f);
» more...
Construct from Optional
template<class T>
requires std::constructible_from<Value, T>
Value(Optional<T> const& opt);
» more...
Construct from optional
template<class T>
requires std::constructible_from<Value, T>
Value(std::optional<T> const& opt);
» more...
Construct from char
template<std::size_t N>
Value(char const(& sz)[]);
» more...
Default constructor
<mrdocs/Dom/Value.hpp>
Value() noexcept;
Copy constructor
| Name | Description |
|---|---|
| other | The object to copy construct from |
Move constructor
| Name | Description |
|---|---|
| other | The object to move construct from |
Construct from Array
| Name | Description |
|---|---|
| arr | The object to construct from |
Construct from Function
| Name | Description |
|---|---|
| fn | The object to construct from |
Construct from Kind
| Name | Description |
|---|---|
| kind | The object to construct from |
Construct from Object
| Name | Description |
|---|---|
| obj | The object to construct from |
Construct from String
| Name | Description |
|---|---|
| str | The object to construct from |
Construct from int64_t
<mrdocs/Dom/Value.hpp>
Value(int64_t v) noexcept;
| Name | Description |
|---|---|
| v | The object to construct from |
Construct from nullptr_t
<mrdocs/Dom/Value.hpp>
Value(std::nullptr_t v) noexcept;
| Name | Description |
|---|---|
| v | The object to construct from |
Construct from storage_type
| Name | Description |
|---|---|
| elements | The object to construct from |
Construct from char
<mrdocs/Dom/Value.hpp>
Value(char c) noexcept;
| Name | Description |
|---|---|
| c | The value to construct from |
Construct from char
<mrdocs/Dom/Value.hpp>
Value(char const* s);
| Name | Description |
|---|---|
| s | The value to construct from |
Construct from T
<mrdocs/Dom/Value.hpp>
template<std::floating_point T>
Value(T v) noexcept;
| Name | Description |
|---|---|
| v | The object to construct from |
Construct from T
<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 from Boolean
<mrdocs/Dom/Value.hpp>
template<std::convertible_to<String> Boolean>
Value(Boolean const& b);
| Name | Description |
|---|---|
| b | The object to copy construct from |
Construct from F
<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
<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 optional
<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 from char
<mrdocs/Dom/Value.hpp>
template<std::size_t N>
Value(char const(& sz)[]);
| Name | Description |
|---|---|
| sz | The value to construct from |
Destructor
<mrdocs/Dom/Value.hpp>
~Value();
Assignment operators
<mrdocs/Dom/Value.hpp>Copy assignment operator
Value&
operator=(Value const& other);
» more...
Move assignment operator
Value&
operator=(Value&& other) noexcept;
» more...
Copy assignment operator
| Name | Description |
|---|---|
| other | The object to copy assign from |
Move assignment operator
| 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...
template<std::convertible_to<std::string_view> S>
dom::Value
get(S const& key) const;
» more...
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. |
<mrdocs/Dom/Value.hpp>
template<std::convertible_to<std::string_view> S>
dom::Value
get(S const& key) const;
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
<mrdocs/Dom/Value.hpp>
bool b_ = {false};
<mrdocs/Dom/Value.hpp>
int64_t i_;
Customization point tag.
<mrdocs/Dom/Value.hpp>
struct ValueFromTag;
| Name | Description |
|---|---|
::mrdocs::tag_invoke | Map the EnumConstantSymbol to a dom::Value object. |
::mrdocs::tag_invoke | Map the FriendInfo to a dom::Value object. |
::mrdocs::tag_invoke | Map the UsingSymbol to a dom::Value object. |
::mrdocs::tag_invoke | Return the UsingClass as a dom::Value string. |
::mrdocs::tag_invoke | Return the SymbolKind from a dom::Value string. |
::mrdocs::tag_invoke | Return the AccessKind as a dom::Value string. |
::mrdocs::tag_invoke | Map the ConceptSymbol to a dom::Value object. |
::mrdocs::tag_invoke | Map the NamespaceAliasSymbol to a dom::Value object. |
::mrdocs::tag_invoke | Map the NamespaceTranche to a dom::Value object. |
::mrdocs::tag_invoke | Return the Symbol as a dom::Value object. |
::mrdocs::tag_invoke | Map the VariableSymbol to a dom::Value object. |
::mrdocs::tag_invoke | Map the TypedefSymbol to a dom::Value object. |
::mrdocs::tag_invoke | Convert SymbolID to dom::Value object in the DOM using Corpus |
::mrdocs::tag_invoke | Convert SymbolID pointers to dom::Value or null. |
::mrdocs::tag_invoke | Map the GuideSymbol to a dom::Value object. |
::mrdocs::tag_invoke | Return the ConstexprKind as a dom::Value string. |
::mrdocs::tag_invoke | Map the OverloadsSymbol to a dom::Value object. |
::mrdocs::tag_invoke | Return the FunctionClass from a dom::Value string. |
::mrdocs::tag_invoke | Return the Param as a dom::Value object. |
::mrdocs::tag_invoke | Return the DocComment as a dom::Value object. |
::mrdocs::tag_invoke | Return the ReferenceKind as a dom::Value string. |
::mrdocs::tag_invoke | Map the RecordSymbol to a dom::Value object. |
::mrdocs::tag_invoke | Return the ExplicitInfo as a dom::Value string. |
::mrdocs::tag_invoke | Return the SymbolKind from a dom::Value string. |
::mrdocs::tag_invoke | Return the StorageClassKind as a dom::Value string. |
::mrdocs::tag_invoke | Map the RecordInterface to a dom::Value object. |
::mrdocs::tag_invoke | Map the NamespaceSymbol to a dom::Value object. |
::mrdocs::tag_invoke | Map the FunctionSymbol to a dom::Value object. |
::mrdocs::tag_invoke | Convert SymbolID to dom::Value string in the DOM using toBase16 |
::mrdocs::tag_invoke | Map the EnumSymbol to a dom::Value object. |
::mrdocs::tag_invoke | Map the RecordTranche to a dom::Value object. |
::mrdocs::doc::tag_invoke | Return the Strong as a dom::Value object. |
::mrdocs::doc::tag_invoke | Return the FootnoteReference as a dom::Value object. |
::mrdocs::doc::tag_invoke | Return the Parts from a dom::Value string. |
::mrdocs::doc::tag_invoke | Return the Text as a dom::Value object. |
::mrdocs::doc::tag_invoke | Return the Heading as a dom::Value object. |
::mrdocs::doc::tag_invoke | Return the Code as a dom::Value object. |
::mrdocs::doc::tag_invoke | Return the UnorderedTable as a dom::Value object. |
::mrdocs::doc::tag_invoke | Return the Brief as a dom::Value object. |
::mrdocs::doc::tag_invoke | Return the Postcondition as a dom::Value object. |
::mrdocs::doc::tag_invoke | Return the Link as a dom::Value object. |
::mrdocs::doc::tag_invoke | Return the Math as a dom::Value object. |
::mrdocs::doc::tag_invoke | Return the See as a dom::Value object. |
::mrdocs::doc::tag_invoke | Return the Admonish from a dom::Value string. |
::mrdocs::doc::tag_invoke | Return the Admonition as a dom::Value object. |
::mrdocs::doc::tag_invoke | Return the Superscript as a dom::Value object. |
::mrdocs::doc::tag_invoke | Return the Precondition as a dom::Value object. |
::mrdocs::doc::tag_invoke | Return the Inline as a dom::Value object. |
::mrdocs::doc::tag_invoke | Return the LineBreak as a dom::Value object. |
::mrdocs::doc::tag_invoke | Return the Emph as a dom::Value object. |
::mrdocs::doc::tag_invoke | Return the Code as a dom::Value object. |
::mrdocs::doc::tag_invoke | Return the Block as a dom::Value object. |
::mrdocs::doc::tag_invoke | Return the FootnoteDefinition as a dom::Value object. |
::mrdocs::doc::tag_invoke | Return the Returns as a dom::Value object. |
::mrdocs::doc::tag_invoke | Return the Paragraph as a dom::Value object. |
::mrdocs::doc::tag_invoke | Return the TableRow as a dom::Value object. |
::mrdocs::doc::tag_invoke | Return the TParam as a dom::Value object. |
::mrdocs::doc::tag_invoke | Map the Polymorphic Block as a dom::Value object. |
::mrdocs::doc::tag_invoke | Return the ListItem as a dom::Value object. |
::mrdocs::doc::tag_invoke | Return the Brief as a dom::Value object. |
::mrdocs::doc::tag_invoke | Return the Param as a dom::Value object. |
::mrdocs::doc::tag_invoke | Return the CopyDetails as a dom::Value object. |
::mrdocs::doc::tag_invoke | Return the Reference as a dom::Value object. |
::mrdocs::doc::tag_invoke | Map the Polymorphic Inline as a dom::Value object. |
::mrdocs::doc::tag_invoke | Return the DefinitionListItem as a dom::Value object. |
::mrdocs::doc::tag_invoke | Return the SoftBreak as a dom::Value object. |
::mrdocs::doc::tag_invoke | Return the TableCell as a dom::Value object. |
::mrdocs::doc::tag_invoke | Return the Highlight as a dom::Value object. |
::mrdocs::doc::tag_invoke | Return the QuoteBlock as a dom::Value object. |
::mrdocs::doc::tag_invoke | Return the UnorderedList as a dom::Value object. |
::mrdocs::doc::tag_invoke | Return the Subscript as a dom::Value object. |
::mrdocs::doc::tag_invoke | Return the Image as a dom::Value object. |
::mrdocs::doc::tag_invoke | Return the Strikethrough as a dom::Value object. |
::mrdocs::doc::tag_invoke | Return the Brief as a dom::Value object. |
::mrdocs::doc::tag_invoke | Return the ParamDirection from a dom::Value string. |
::mrdocs::doc::tag_invoke | Return the Throws as a dom::Value object. |
This tag type is used by the function dom::ValueFrom to select overloads of tag_invoke.
This type is empty; it has no members.
<mrdocs/Dom/Function.hpp>
template<class F>
class VariadicFunctionImpl
: public FunctionImpl
| Name | Description |
|---|---|
FunctionImpl |
| Name |
|---|
args_type |
return_type |
| Name | Description |
|---|---|
VariadicFunctionImpl [constructor] | Construct from U |
call [virtual] | |
type_key [virtual] |
<mrdocs/Dom/Function.hpp>
using args_type = function_traits<F>::args_type;
<mrdocs/Dom/Function.hpp>
using return_type = function_traits<F>::return_type;
Construct from U
<mrdocs/Dom/Function.hpp>
template<class U>
VariadicFunctionImpl(U&& u);
| Name | Description |
|---|---|
| u | The object to move construct from |
<mrdocs/Dom/Function.hpp>
virtual
Expected<Value>
call(Array const& args) const override;
<mrdocs/Dom/Function.hpp>
virtual
char const*
type_key() const noexcept override;
<mrdocs/Dom/Function.hpp>
template<typename F>
struct function_traits;
| Name | Description |
|---|---|
function_traits
|
<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)> |
<mrdocs/Dom/Function.hpp>
template<
typename R,
typename... Args>
struct function_traits<R(*)(Args...)>;
| Name |
|---|
args_type |
return_type |
<mrdocs/Dom/Function.hpp>
using args_type = std::tuple<Args...>;
<mrdocs/Dom/Function.hpp>
using return_type = R;
<mrdocs/Dom/Function.hpp>
template<
typename R,
typename... Args>
struct function_traits<R(Args...)>;
| Name |
|---|
args_type |
return_type |
<mrdocs/Dom/Function.hpp>
using args_type = std::tuple<Args...>;
<mrdocs/Dom/Function.hpp>
using return_type = R;
<mrdocs/Dom/Function.hpp>
template<
typename C,
typename R,
typename... Args>
struct function_traits<R const volatile(C::*)(Args...)>;
| Name |
|---|
args_type |
return_type |
<mrdocs/Dom/Function.hpp>
using args_type = std::tuple<Args...>;
<mrdocs/Dom/Function.hpp>
using return_type = R;
The type of data in a Value.
<mrdocs/Dom/Kind.hpp>
enum class Kind : int;
| 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. |
This is the type of data stored in a Value. These types are loosely modeled after the JavaScript types and data structures.
Primitive values are Undefined, Null, Boolean, Integer, and String.
Undefined and Null are inhabited by a single value each. The difference between Undefined and Null is that Undefined is the default value for a Value, while Null represents a value that is explicitly set. Undefined is used to represent things such as:
An uninitialized Value
The Value returned from a function that failed to return a value
The result of accessing a nonexistent object property
The result of a `find` algorithm when no element is found
This distinction is semantically important as algorithms frequently need to distinguish between these two cases.
Booleans, Integers, and Strings are also primitive values. This means they are deeply copied when assigned or passed as a parameter.
Other value types, such as Array, Object, and Function are reference types, meaning that they are not copied when assigned or passed as a parameter. Instead, the reference is copied, and the original value is shared.
These reference types are modeled after JavaScript "Objects". All non-primitive types (Object types) are derived from Object in JavaScript. This means types such as Array and Function represent a relevant selection of built-in types that would derive from Object in JavaScript.
Objects are a collection of properties, which are equivalent to key-value pairs. Property values can be any type, including other Objects, allowing for the creation of arbitrarily complex data structures.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures
LazyArray overloads
<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. |
<mrdocs/Dom/Function.hpp>
template<class F>
requires std::invocable<F, Array const&>
Function
makeVariadicInvocable(F&& f);
Return a new array using a custom implementation.
<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.
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>Return the first dom::Value that is not truthy, or the last one.
dom::Value
operator&&(
Value const& lhs,
Value const& rhs);
» more...
template<std::convertible_to<Value> S>
auto
operator&&(
S const& lhs,
Value const& rhs) noexcept;
» more...
template<std::convertible_to<Value> S>
auto
operator&&(
Value const& lhs,
S const& rhs) noexcept;
» more...
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 |
<mrdocs/Dom/Value.hpp>
template<std::convertible_to<Value> S>
auto
operator&&(
S const& lhs,
Value const& rhs) noexcept;
<mrdocs/Dom/Value.hpp>
template<std::convertible_to<Value> S>
auto
operator&&(
Value const& lhs,
S const& rhs) noexcept;
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...
Concatenate two strings.
auto
operator+(
String const& lhs,
String const& rhs) noexcept;
» more...
Add or concatenate two values.
dom::Value
operator+(
Value const& lhs,
Value const& rhs);
» more...
template<std::convertible_to<Array> S>
auto
operator+(
Array const& lhs,
S const& rhs) noexcept;
» more...
template<std::convertible_to<Array> S>
auto
operator+(
S const& lhs,
Array const& rhs) noexcept;
» more...
template<StringLikeTy S>
auto
operator+(
S const& lhs,
String const& rhs) noexcept;
» more...
template<std::convertible_to<Value> S>
auto
operator+(
S const& lhs,
Value const& rhs) noexcept;
» more...
template<StringLikeTy S>
auto
operator+(
String const& lhs,
S const& rhs) noexcept;
» more...
template<std::convertible_to<Value> S>
auto
operator+(
Value const& lhs,
S const& rhs) noexcept;
» 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 |
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. |
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 |
<mrdocs/Dom/Array.hpp>
template<std::convertible_to<Array> S>
auto
operator+(
Array const& lhs,
S const& rhs) noexcept;
<mrdocs/Dom/Array.hpp>
template<std::convertible_to<Array> S>
auto
operator+(
S const& lhs,
Array const& rhs) noexcept;
<mrdocs/Dom/String.hpp>
template<StringLikeTy S>
auto
operator+(
S const& lhs,
String const& rhs) noexcept;
<mrdocs/Dom/Value.hpp>
template<std::convertible_to<Value> S>
auto
operator+(
S const& lhs,
Value const& rhs) noexcept;
<mrdocs/Dom/String.hpp>
template<StringLikeTy S>
auto
operator+(
String const& lhs,
S const& rhs) noexcept;
<mrdocs/Dom/Value.hpp>
template<std::convertible_to<Value> S>
auto
operator+(
Value const& lhs,
S const& rhs) noexcept;
Return the first dom::Value that is truthy, or the last one.
<mrdocs/Dom/Value.hpp>Return the first dom::Value that is truthy, or the last one.
dom::Value
operator||(
Value const& lhs,
Value const& rhs);
» more...
template<std::convertible_to<Value> S>
auto
operator||(
S const& lhs,
Value const& rhs) noexcept;
» more...
template<std::convertible_to<Value> S>
auto
operator||(
Value const& lhs,
S const& rhs) noexcept;
» more...
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 |
<mrdocs/Dom/Value.hpp>
template<std::convertible_to<Value> S>
auto
operator||(
S const& lhs,
Value const& rhs) noexcept;
<mrdocs/Dom/Value.hpp>
template<std::convertible_to<Value> S>
auto
operator||(
Value const& lhs,
S const& rhs) noexcept;
Return a non-empty string, or a null.
<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&);
» more...
Return a diagnostic string.
std::string
toString(Object const&);
» more...
Return value as a string.
std::string
toString(Value const& value);
» more...
Return a diagnostic string.
Return a diagnostic string.
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.
template<StringLikeTy StringLike>
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>
template<StringLikeTy StringLike>
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.
template<StringLikeTy StringLike>
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>
template<StringLikeTy StringLike>
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.
template<StringLikeTy StringLike>
auto
operator<=>(
String const& lhs,
StringLike const& rhs) noexcept;
» more...
Three-way comparison operator
template<std::convertible_to<Value> S>
auto
operator<=>(
Value const& lhs,
S const& rhs) noexcept;
» more...
Three-way comparison operator
template<std::convertible_to<Value> S>
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>
template<StringLikeTy StringLike>
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>
template<std::convertible_to<Value> S>
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>
template<std::convertible_to<Value> S>
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>;
<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>;
<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>>()));
<mrdocs/Dom/Function.hpp>
template<typename F>
concept has_function_traits = requires {
typename function_traits<F>::return_type;
typename function_traits<F>::args_type;
};
<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>;
<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>);
<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>;
<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>;
| Name | Description |
|---|---|
FileType | The type of a file. |
| Name | Description |
|---|---|
appendPath | |
createDirectory | Create a directory. |
exists | Determine if a path exists |
getFileName | Return the filename part of the path. |
getFileText | Return the contents of a file as a string. |
getFileType | Return the file type or an error |
getParentDir | Return the parent directory. |
getSourceFilename | Return the relevant suffix of a source file path. |
isAbsolute | Return true if pathName is absolute. |
isDirectory | Determine if a path is a directory. |
isDirsy | Return true if pathName ends in a separator. |
isLexicalDirectory | Determine lexically if a path is a directory. |
isPosixStyle | Check if the path is posix style. |
makeAbsolute | Return an absolute path from a possibly relative path. |
makeDirsy | Append a trailing native separator if not already present. |
makePosixStyle | Convert all backward slashes to forward slashes. |
normalizeDir | Return a normalized directory. |
normalizePath | Return a normalized path. |
requireAbsolute | Return an error if pathName is not absolute. |
requireDirectory | Return an error if the path is not a directory. |
startsWith | Checks if the given path starts with the specified prefix. |
withExtension | Return the filename with a new or different extension. |
The type of a file.
<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 |
<mrdocs/Support/Path.hpp>
std::string
appendPath(
std::string_view basePath,
std::string_view name);
» more...
std::string
appendPath(
std::string_view basePath,
std::string_view name1,
std::string_view name2);
» more...
std::string
appendPath(
std::string_view basePath,
std::string_view name1,
std::string_view name2,
std::string_view name3);
» more...
std::string
appendPath(
std::string_view basePath,
std::string_view name1,
std::string_view name2,
std::string_view name3,
std::string_view name4);
» more...
<mrdocs/Support/Path.hpp>
std::string
appendPath(
std::string_view basePath,
std::string_view name);
<mrdocs/Support/Path.hpp>
std::string
appendPath(
std::string_view basePath,
std::string_view name1,
std::string_view name2);
<mrdocs/Support/Path.hpp>
std::string
appendPath(
std::string_view basePath,
std::string_view name1,
std::string_view name2,
std::string_view name3);
<mrdocs/Support/Path.hpp>
std::string
appendPath(
std::string_view basePath,
std::string_view name1,
std::string_view name2,
std::string_view name3,
std::string_view name4);
Create a directory.
<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. |
| 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.
| Name | Description |
|---|---|
Access | |
Array | |
Boolean | |
Context | An instance of a JavaScript interpreter. |
Object | |
Prop | |
Scope | A JavaScript scope |
String | |
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. |
<mrdocs/Support/JavaScript.hpp>
struct Access;
<mrdocs/Support/JavaScript.hpp>
class Array;
<mrdocs/Support/JavaScript.hpp>
class Boolean;
An instance of a JavaScript interpreter.
<mrdocs/Support/JavaScript.hpp>
class Context;
| Name | Description |
|---|---|
Context [constructor] | Constructor. |
~Context [destructor] | Destructor. |
operator= [deleted] | Copy assignment. |
| Name | Description |
|---|---|
Access |
This class represents a JavaScript interpreter context under which we can create Scope objects to define variables and execute scripts.
A context represents a JavaScript heap where variables can be allocated and will be later garbage collected.
Each context is associated with a single heap allocated with default memory management.
Once the context is created, a Scope in this context can be created to define variables and execute scripts.
Scope
Constructor.
<mrdocs/Support/JavaScript.hpp>Constructor.
Context();
» more...
Constructor.
Context(Context const& other) noexcept;
» more...
Constructor.
<mrdocs/Support/JavaScript.hpp>
Context();
Create a javascript execution context associated with its own garbage-collected heap.
Constructor.
Create a javascript execution context associated with the heap of another context.
Both contexts will share the same garbage-collected heap, which is destroyed when the last context is destroyed.
While they share the heap, their scripts can include references to the same variables.
There are multi-threading restrictions, however: only one native thread can execute any code within a single heap at any time.
| Name | Description |
|---|---|
| other | The object to copy construct from |
Destructor.
<mrdocs/Support/JavaScript.hpp>
~Context();
Copy assignment.
<mrdocs/Support/JavaScript.hpp>
Context&
operator=(Context const& other) = delete;
Create a javascript execution context associated with the heap of another context.
Both contexts will share the same garbage-collected heap, which is destroyed when the last context is destroyed.
While they share the heap, their scripts can include references to the same variables.
There are multi-threading restrictions, however: only one native thread can execute any code within a single heap at any time.
| Name | Description |
|---|---|
| other | The object to copy assign from |
<mrdocs/Support/JavaScript.hpp>
class Object;
<mrdocs/Support/JavaScript.hpp>
class Prop;
| Name | Description |
|---|---|
Prop [constructor] | Constructors |
isIndex |
Constructors
<mrdocs/Support/JavaScript.hpp>Construct from string_view
constexpr
Prop(std::string_view name) noexcept;
» more...
Construct from unsigned int
constexpr
Prop(unsigned int index) noexcept;
» more...
Construct from string_view
<mrdocs/Support/JavaScript.hpp>
constexpr
Prop(std::string_view name) noexcept;
| Name | Description |
|---|---|
| name | The object to construct from |
Construct from unsigned int
<mrdocs/Support/JavaScript.hpp>
constexpr
Prop(unsigned int index) noexcept;
| Name | Description |
|---|---|
| index | The value to construct from |
<mrdocs/Support/JavaScript.hpp>
constexpr
bool
isIndex() const noexcept;
A JavaScript scope
<mrdocs/Support/JavaScript.hpp>
class Scope;
| 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. |
| Name | Description |
|---|---|
Access |
This class represents a JavaScript scope under which we can define variables and execute scripts.
Each scope is a section of the context heap in the JavaScript interpreter. A javascript variable is defined by creating a Value that is associated with this Scope, i.e., subsection of the context heap.
When a scope is destroyed, the heap section is popped and all variables defined in that scope are invalidated.
For this reason, two scopes of the same context heap cannot be manipulated at the same time.
Constructor.
Construct a scope for the given context.
Variables defined in this scope will be allocated on top of the specified context heap.
When the Scope is destroyed, the variables defined in this scope will be popped from the heap.
| Name | Description |
|---|---|
| ctx | The context to use. |
Destructor.
<mrdocs/Support/JavaScript.hpp>
~Scope();
All variables defined in this scope are popped from the internal context heap.
There should be no Value objects associated with this scope when it is destroyed.
Compile a script and push results to stack.
<mrdocs/Support/JavaScript.hpp>
Expected<Value>
compile_function(std::string_view jsCode);
Compile ECMAScript source code that defines a function and return the compiled function object.
Unlike the script() function, the code is not executed. A compiled function with the specified number of arguments that can be executed is returned.
If the function code contains more than one function, the return value is the first function compiled.
| 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);
Compile ECMAScript source code and return it as a compiled function object that executes it.
Unlike the script() function, the code is not executed. A compiled function that can be executed is returned.
The returned function has zero arguments and executes as if we called script().
The script returns an implicit return value equivalent to the last non-empty statement value in the code.
| 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.
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. |
<mrdocs/Support/JavaScript.hpp>
class String;
An ECMAScript value.
<mrdocs/Support/JavaScript.hpp>
class Value;
| Name | Description |
|---|---|
Value [constructor] | Constructor |
~Value [destructor] | Destructor |
operator= | Assignment operators |
apply | Invoke a function with variadic arguments. |
call | Invoke a function. |
callProp | Invoke a method. |
empty | Return if an Array or Object is empty. |
exists | Return true if a key exists. |
get | get overloads |
getArray | Return the underlying array. |
getBool | Return the underlying boolean value. |
getDom | Return the value as a dom::Value |
getDouble | Return the underlying double value. |
getFunction | Return the underlying array. |
getInteger | Return the underlying integer value. |
getObject | Return the underlying object. |
getString | Return the underlying string |
isArray | Check if the value is an array. |
isBoolean | Check if the value is a boolean. |
isDouble | Check if the value is a floating point number. |
isFunction | Check if the value is a function. |
isInteger | Check if the value is an integer number. |
isNull | Check if the value is null. |
isNumber | Check if the value is a number. |
isObject | Check if the value is an object. |
isString | Check if the value is a string. |
isTruthy | Determine if a value is truthy |
isUndefined | Check if the value is undefined. |
lookup | Lookup a sequence of keys. |
operator() | Invoke a function. |
set | Set or replace the value for a given key. |
setlog | Set "log" property |
size | Return if an Array or Object is empty. |
swap | Swap two values. |
type | Return the type of the value. |
operator std::string | Return the string. |
operator bool | Determine if a value is truthy |
| Name | Description |
|---|---|
Value [constructor] | Constructor |
| Name |
|---|
idx_ |
scope_ |
| 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. |
Access |
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.
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
The function pushes a duplicate of value to the stack and associates the new value the top of the stack.
| 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();
If the value is associated with a Scope and it is on top of the stack, it is popped. Also, if there are no other Value references to the Scope, all variables defined in that scope are popped via Scope::reset.
Assignment operators
<mrdocs/Support/JavaScript.hpp>Copy assignment.
Value&
operator=(Value const& other);
» more...
Move assignment.
Value&
operator=(Value&& other) noexcept;
» more...
Copy assignment.
The function pushes a duplicate of value to the stack and associates the new value the top of the stack.
| 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 |
Invoke a function with variadic arguments.
<mrdocs/Support/JavaScript.hpp>
Expected<Value>
apply(std::span<dom::Value> args) const;
| Name | Description |
|---|---|
| args | Zero or more arguments to pass to the method. |
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. |
Invoke a method.
<mrdocs/Support/JavaScript.hpp>
template<class... Args>
Expected<Value>
callProp(
std::string_view prop,
Args...&&... args) const;
| Name | Description |
|---|---|
| prop | The property name of the method to call. |
| args | Zero or more arguments to pass to the method. |
Return if an Array or Object is empty.
<mrdocs/Support/JavaScript.hpp>
bool
empty() const;
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...
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. |
<mrdocs/Support/JavaScript.hpp>
template<std::convertible_to<std::string_view> S>
Value
get(S const& key) const;
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_view
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.
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. |
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. |
Set "log" property
<mrdocs/Support/JavaScript.hpp>
void
setlog();
This function sets the "log" property in the object.
The "log" property is populated with a function that takes two javascript arguments (level, message) where level is an unsigned integer and message is a string.
The mrdocs library function mrdocs::report::print is then called with these two arguments to report a message to the console.
Return if an Array or Object is empty.
<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
Constructor
<mrdocs/Support/JavaScript.hpp>
int idx_;
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 a function |
function | The value is an array |
array | The value is an array |
Return the first Value that is not truthy, or the last one.
<mrdocs/Support/JavaScript.hpp>Return the first Value that is not truthy, or the last one.
Value
operator&&(
Value const& lhs,
Value const& rhs);
» more...
template<std::convertible_to<Value> S>
auto
operator&&(
S const& lhs,
Value const& rhs) noexcept;
» more...
template<std::convertible_to<Value> S>
auto
operator&&(
Value const& lhs,
S const& rhs) noexcept;
» more...
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 |
<mrdocs/Support/JavaScript.hpp>
template<std::convertible_to<Value> S>
auto
operator&&(
S const& lhs,
Value const& rhs) noexcept;
<mrdocs/Support/JavaScript.hpp>
template<std::convertible_to<Value> S>
auto
operator&&(
Value const& lhs,
S const& rhs) noexcept;
Return the first Value that is truthy, or the last one.
<mrdocs/Support/JavaScript.hpp>Return the first Value that is truthy, or the last one.
Value
operator||(
Value const& lhs,
Value const& rhs);
» more...
template<std::convertible_to<Value> S>
auto
operator||(
S const& lhs,
Value const& rhs) noexcept;
» more...
template<std::convertible_to<Value> S>
auto
operator||(
Value const& lhs,
S const& rhs) noexcept;
» more...
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 |
<mrdocs/Support/JavaScript.hpp>
template<std::convertible_to<Value> S>
auto
operator||(
S const& lhs,
Value const& rhs) noexcept;
<mrdocs/Support/JavaScript.hpp>
template<std::convertible_to<Value> S>
auto
operator||(
Value const& lhs,
S const& rhs) noexcept;
Register a JavaScript helper function
<mrdocs/Support/JavaScript.hpp>
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.
| 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>
template<std::convertible_to<Value> S>
auto
operator==(
Value const& lhs,
S const& rhs) noexcept;
» more...
template<std::convertible_to<Value> S>
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>
template<std::convertible_to<Value> S>
auto
operator==(
Value const& lhs,
S const& rhs) noexcept;
<mrdocs/Support/JavaScript.hpp>
template<std::convertible_to<Value> S>
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>
template<std::convertible_to<Value> S>
auto
operator!=(
Value const& lhs,
S const& rhs) noexcept;
» more...
template<std::convertible_to<Value> S>
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>
template<std::convertible_to<Value> S>
auto
operator!=(
Value const& lhs,
S const& rhs) noexcept;
<mrdocs/Support/JavaScript.hpp>
template<std::convertible_to<Value> S>
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 |
| Name | Description |
|---|---|
Access | |
Context | A reference to an instance of a Lua interpreter. |
Function | A Lua function. |
Param | A lazy container to push values to the Lua stack. |
Scope | |
String | A Lua string. |
Table | A Lua table. |
Value | A Lua value. |
zstring | A null-terminated string. |
FunctionPtr |
| Name | Description |
|---|---|
Type | Types of values. |
<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. |
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 from Value |
call | Invoke the value as a function. |
displayString | Return a string representation. |
isBoolean | |
isFunction | |
isNil | |
isNumber | |
isString | |
isTable | |
operator() | Invoke the value as a function. |
type |
| Name |
|---|
index_ |
scope_ |
| Name | Description |
|---|---|
Access |
Construct from 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] | Destructor |
operator= [deleted] | Copy assignment operator |
| Name |
|---|
arr_ [variant member] |
b_ [variant member] |
i_ [variant member] |
index_ [variant member] |
obj_ [variant member] |
s_ [variant member] |
| Name | Description |
|---|---|
Access |
Constructors
<mrdocs/Support/Lua.hpp>Copy constructor
Param(Param const& other) = delete;
» more...
Construct from Array
Param(dom::Array arr) noexcept;
» more...
Construct from Object
Param(dom::Object obj) noexcept;
» more...
Construct from int64_t
Param(int64_t value) noexcept;
» more...
Construct from nullptr_t
Param(std::nullptr_t value) noexcept;
» more...
Construct from string_view
Param(std::string_view s) noexcept;
» more...
Construct from Value
Param(Value const& value) noexcept;
» more...
Construct from Value
Param(dom::Value const& value) noexcept;
» more...
Construct from char
Param(char const* s) noexcept;
» more...
Construct from Enum
template<class Enum>
requires std::is_enum_v<Enum>
Param(Enum v) noexcept;
» more...
Construct from Boolean
template<class Boolean>
requires std::is_same_v<Boolean, bool>
Param(Boolean const& b) noexcept;
» more...
Construct from String
template<class String>
requires std::is_convertible_v<
String, std::string_view>
Param(String const& s);
» more...
Copy constructor
| Name | Description |
|---|---|
| other | The object to copy construct from |
Construct from Array
| Name | Description |
|---|---|
| arr | The object to construct from |
Construct from Object
| Name | Description |
|---|---|
| obj | The object to construct from |
Construct from int64_t
<mrdocs/Support/Lua.hpp>
Param(int64_t value) noexcept;
| Name | Description |
|---|---|
| value | The object to construct from |
Construct from nullptr_t
<mrdocs/Support/Lua.hpp>
Param(std::nullptr_t value) noexcept;
| Name | Description |
|---|---|
| value | The object to construct from |
Construct from string_view
<mrdocs/Support/Lua.hpp>
Param(std::string_view s) noexcept;
| Name | Description |
|---|---|
| s | The object to construct from |
Construct from Value
| Name | Description |
|---|---|
| value | The object to copy construct from |
Construct from Value
| Name | Description |
|---|---|
| value | The object to copy construct from |
Construct from char
<mrdocs/Support/Lua.hpp>
Param(char const* s) noexcept;
| Name | Description |
|---|---|
| s | The value to construct from |
Construct from 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 from Boolean
<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 from String
<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 |
Destructor
<mrdocs/Support/Lua.hpp>
~Param();
Copy assignment operator
| Name | Description |
|---|---|
| other | The object to copy assign from |
<mrdocs/Support/Lua.hpp>
bool b_;
<mrdocs/Support/Lua.hpp>
int i_;
<mrdocs/Support/Lua.hpp>
int index_;
<mrdocs/Support/Lua.hpp>
std::string_view s_;
<mrdocs/Support/Lua.hpp>
class Scope;
| Name | Description |
|---|---|
Scope [constructor] | Construct from Context |
~Scope [destructor] | Destructor |
getGlobal | Return a value from the global table if it exists. |
getGlobalTable | Return the global table. |
loadChunk | Load a Lua chunk |
loadChunkFromFile | Run a Lua chunk. |
| Name | Description |
|---|---|
Access |
Construct from Context
| Name | Description |
|---|---|
| ctx | The object to copy construct from |
Destructor
<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 | |
isBoolean | |
isFunction | |
isNil | |
isNumber | |
isString | |
isTable | |
operator() | Invoke the value as a function. |
operator* | |
type | |
operator std::string_view | Conversion to string_view |
| Name |
|---|
index_ |
scope_ |
| Name | Description |
|---|---|
Access |
Constructors
<mrdocs/Support/Lua.hpp>Construct from Value
String(Value value);
» more...
Construct from string_view
explicit
String(std::string_view s);
» more...
Construct from Value
| Name | Description |
|---|---|
| value | The object to construct from |
Construct from string_view
<mrdocs/Support/Lua.hpp>
explicit
String(std::string_view s);
| Name | Description |
|---|---|
| s | The object to construct from |
<mrdocs/Support/Lua.hpp>
std::string_view
get() const noexcept;
<mrdocs/Support/Lua.hpp>
std::string_view
operator*() const noexcept;
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 | |
isBoolean | |
isFunction | |
isNil | |
isNumber | |
isString | |
isTable | |
operator() | Invoke the value as a function. |
set | Create or replace the value with a key. |
type |
| Name |
|---|
index_ |
scope_ |
| Name | Description |
|---|---|
Access |
Constructors
<mrdocs/Support/Lua.hpp>Construct from Value
Table(Value value);
» more...
Construct from Scope
explicit
Table(Scope& scope);
» more...
Constructor
Table(
Scope&,
dom::Object const& obj);
» more...
Construct from Value
| Name | Description |
|---|---|
| value | The object to construct from |
Construct from Scope
| Name | Description |
|---|---|
| scope | The object to copy construct from |
Constructor
| Name | Description |
|---|---|
| obj | A container of key and value pairs. |
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 | |
isFunction | |
isNil | |
isNumber | |
isString | |
isTable | |
operator() | Invoke the value as a function. |
type |
| Name | Description |
|---|---|
Value [constructor] | Constructor |
| Name |
|---|
index_ |
scope_ |
| Name | Description |
|---|---|
Access |
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.
<mrdocs/Support/Lua.hpp>
bool
isBoolean() const noexcept;
<mrdocs/Support/Lua.hpp>
bool
isFunction() const noexcept;
<mrdocs/Support/Lua.hpp>
bool
isNil() const noexcept;
<mrdocs/Support/Lua.hpp>
bool
isNumber() const noexcept;
<mrdocs/Support/Lua.hpp>
bool
isString() const noexcept;
<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. |
Constructor
<mrdocs/Support/Lua.hpp>
int index_;
A null-terminated string.
<mrdocs/Support/Lua.hpp>
class zstring;
| Name | Description |
|---|---|
zstring [constructor] | Constructors |
c_str |
Constructors
<mrdocs/Support/Lua.hpp>Construct from string_view
zstring(std::string_view s);
» more...
Construct from string
zstring(std::string const& s);
» more...
Construct from char
zstring(char const* s) noexcept;
» more...
Construct from string_view
<mrdocs/Support/Lua.hpp>
zstring(std::string_view s);
| Name | Description |
|---|---|
| s | The object to construct from |
Construct from string
<mrdocs/Support/Lua.hpp>
zstring(std::string const& s);
| Name | Description |
|---|---|
| s | The object to copy construct from |
Construct from char
<mrdocs/Support/Lua.hpp>
zstring(char const* s) noexcept;
| Name | Description |
|---|---|
| s | The value to construct from |
<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 |
| 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 | Report a message to the console. |
error | Report a message to the console. |
fatal | Report a message to the console. |
getMinimumLevel | |
info | Report a message to the console. |
log | Format a message to the console. |
print | Report a message to the console. |
setMinimumLevel | Set the minimum threshold level for reporting. |
setSourceLocationWarnings | If true, source location information will be printed with warnings, errors, and fatal messages. |
trace | Report a message to the console. |
warn | Report a message to the console. |
| 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 |
|---|
Located [constructor] |
| Name |
|---|
value |
where |
| Name | Description |
|---|---|
debug | Report a message to the console. |
error | Report a message to the console. |
fatal | Report a message to the console. |
info | Report a message to the console. |
trace | Report a message to the console. |
warn | Report a message to the console. |
<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());
<mrdocs/Support/Report.hpp>
T value;
<mrdocs/Support/Report.hpp>
std::source_location where;
Provides statistics on the number of reported messages.
<mrdocs/Support/Report.hpp>
struct Results;
| Name |
|---|
debugCount |
errorCount |
fatalCount |
infoCount |
traceCount |
warnCount |
<mrdocs/Support/Report.hpp>
std::size_t debugCount;
<mrdocs/Support/Report.hpp>
std::size_t errorCount;
<mrdocs/Support/Report.hpp>
std::size_t fatalCount;
<mrdocs/Support/Report.hpp>
std::size_t infoCount;
<mrdocs/Support/Report.hpp>
std::size_t traceCount;
<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 |
|---|---|
log | Format a message to the console. |
print | Report a message to the console. |
setMinimumLevel | Set the minimum threshold level for reporting. |
Report a message to the console.
<mrdocs/Support/Report.hpp>
template<class... Args>
void
debug(
Located<std::string_view> format,
Args...&&... args);
| Name | Description |
|---|---|
| format | The format string. |
| args | Optional additional arguments |
Report a message to the console.
<mrdocs/Support/Report.hpp>
template<class... Args>
void
error(
Located<std::string_view> format,
Args...&&... args);
| Name | Description |
|---|---|
| format | The format string. |
| args | Optional additional arguments |
Report a message to the console.
<mrdocs/Support/Report.hpp>
template<class... Args>
void
fatal(
Located<std::string_view> format,
Args...&&... args);
| Name | Description |
|---|---|
| format | The format string. |
| args | Optional additional arguments |
Report a message to the console.
<mrdocs/Support/Report.hpp>
template<class... Args>
void
info(
Located<std::string_view> format,
Args...&&... args);
| Name | Description |
|---|---|
| format | The format string. |
| args | Optional additional arguments |
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. |
Report a message to the console.
<mrdocs/Support/Report.hpp>
template<class... Args>
void
trace(
Located<std::string_view> format,
Args...&&... args);
| Name | Description |
|---|---|
| format | The format string. |
| args | Optional additional arguments |
Report a message to the console.
<mrdocs/Support/Report.hpp>
template<class... Args>
void
warn(
Located<std::string_view> format,
Args...&&... args);
| Name | Description |
|---|---|
| format | The format string. |
| args | Optional additional arguments |
Holds current statistics on reported messages.
<mrdocs/ADT/UnorderedStringMap.hpp>
template<class T>
using UnorderedStringMap = std::unordered_map<std::string, T, StringHash, std::equal_to>;
<mrdocs/ADT/UnorderedStringMap.hpp>
template<class T>
using UnorderedStringMultiMap = std::unordered_multimap<std::string, T, StringHash, std::equal_to>;
<mrdocs/Support/TypeTraits.hpp>
template<
typename From,
typename To>
using add_const_from_t = add_const_from<From, To>::type;
<mrdocs/Support/TypeTraits.hpp>
template<
typename From,
typename To>
using add_cv_from_t = add_cv_from<From, To>::type;
<mrdocs/Support/TypeTraits.hpp>
template<
typename From,
typename To>
using add_cvref_from_t = add_cvref_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;
<mrdocs/Support/TypeTraits.hpp>
template<
typename From,
typename To>
using add_reference_from_t = add_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;
<mrdocs/Support/TypeTraits.hpp>
template<
typename From,
typename To>
using add_volatile_from_t = add_volatile_from<From, To>::type;
<mrdocs/Support/TypeTraits.hpp>
template<
typename T,
typename U>
using make_dependent_t = T;
<mrdocs/Support/Path.hpp>
struct AnyFileVisitor;
| Name | Description |
|---|---|
~AnyFileVisitor [destructor] [virtual] | Destructor |
visitFile [virtual] |
Destructor
<mrdocs/Support/Path.hpp>
virtual
~AnyFileVisitor() = 0;
<mrdocs/Support/Path.hpp>
virtual
Expected<void>
visitFile(std::string_view fileName) = 0;
<mrdocs/Metadata/Type/ArrayType.hpp>
struct ArrayType final
: TypeCommonBase<TypeKind::Array>
| Name | Description |
|---|---|
TypeCommonBase<TypeKind::Array> |
| Name | Description |
|---|---|
operator<=> | Three-way comparison operators |
| Name |
|---|
isArray |
isAuto |
isDecltype |
isFunction |
isLValueReference |
isMemberPointer |
isNamed |
isPointer |
isRValueReference |
| Name |
|---|
Bounds |
ElementType |
| 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. |
Three-way comparison operators
<mrdocs/Metadata/Type/ArrayType.hpp>Three-way comparison operator
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...
Three-way comparison operator
<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;
<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;
| Name |
|---|
const_iterator |
const_pointer |
const_reference |
const_reverse_iterator |
difference_type |
iterator |
pointer |
reference |
reverse_iterator |
size_type |
value_type |
| Name | Description |
|---|---|
ArrayView [constructor] | Constructors |
at | |
back | |
begin | |
cbegin | |
cend | |
data | |
drop_back | |
drop_front | |
empty | |
end | |
front | |
length | |
operator[] | |
rbegin | |
remove_prefix | |
remove_suffix | |
rend | |
size | |
slice | |
take_back | |
take_front |
| Name |
|---|
npos |
| Name | Description |
|---|---|
operator<=> |
Three-way comparison operator |
operator== |
Equality operator |
Similar to std::string_view but for arbitrary element type T.
<mrdocs/ADT/ArrayView.hpp>
using const_iterator = T const*;
<mrdocs/ADT/ArrayView.hpp>
using const_pointer = T const*;
<mrdocs/ADT/ArrayView.hpp>
using const_reference = T const&;
<mrdocs/ADT/ArrayView.hpp>
using const_reverse_iterator = std::reverse_iterator<const_iterator>;
<mrdocs/ADT/ArrayView.hpp>
using difference_type = std::ptrdiff_t;
<mrdocs/ADT/ArrayView.hpp>
using iterator = T const*;
<mrdocs/ADT/ArrayView.hpp>
using pointer = T const*;
<mrdocs/ADT/ArrayView.hpp>
using reference = T const&;
<mrdocs/ADT/ArrayView.hpp>
using reverse_iterator = std::reverse_iterator<const_iterator>;
<mrdocs/ADT/ArrayView.hpp>
using size_type = std::size_t;
<mrdocs/ADT/ArrayView.hpp>
using value_type = T;
Constructors
<mrdocs/ADT/ArrayView.hpp>Default constructor
constexpr
ArrayView() noexcept = default;
» more...
Construct from T
template<size_type N>
constexpr
ArrayView(T const(& arr)[]) noexcept;
» more...
constexpr
ArrayView(
T const* data,
size_type count) noexcept;
» more...
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...
Default constructor
<mrdocs/ADT/ArrayView.hpp>
constexpr
ArrayView() noexcept = default;
Construct from T
<mrdocs/ADT/ArrayView.hpp>
template<size_type N>
constexpr
ArrayView(T const(& arr)[]) noexcept;
| Name | Description |
|---|---|
| arr | The object to copy construct from |
<mrdocs/ADT/ArrayView.hpp>
constexpr
ArrayView(
T const* data,
size_type count) noexcept;
<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;
<mrdocs/ADT/ArrayView.hpp>
constexpr
ArrayView
drop_back(size_type n) const noexcept;
<mrdocs/ADT/ArrayView.hpp>
constexpr
ArrayView
drop_front(size_type n) const noexcept;
<mrdocs/ADT/ArrayView.hpp>
[[nodiscard]]
constexpr
bool
empty() const noexcept;
<mrdocs/ADT/ArrayView.hpp>
constexpr
const_reference
operator[](size_type i) const noexcept;
<mrdocs/ADT/ArrayView.hpp>
constexpr
const_reverse_iterator
rbegin() const noexcept;
<mrdocs/ADT/ArrayView.hpp>
constexpr
const_reverse_iterator
rend() const noexcept;
<mrdocs/ADT/ArrayView.hpp>
constexpr
ArrayView
slice(
size_type pos,
size_type count = npos) const noexcept;
<mrdocs/ADT/ArrayView.hpp>
constexpr
ArrayView
take_back(size_type n) const noexcept;
<mrdocs/ADT/ArrayView.hpp>
constexpr
ArrayView
take_front(size_type n) const noexcept;
<mrdocs/ADT/ArrayView.hpp>
inline constexpr static
size_type npos = static_cast<size_type>(-1);
<mrdocs/Metadata/Type/AutoType.hpp>
struct AutoType final
: TypeCommonBase<TypeKind::Auto>
| Name | Description |
|---|---|
TypeCommonBase<TypeKind::Auto> |
| Name | Description |
|---|---|
operator<=> | Three-way comparison operators |
| Name |
|---|
isArray |
isAuto |
isDecltype |
isFunction |
isLValueReference |
isMemberPointer |
isNamed |
isPointer |
isRValueReference |
| Name | Description |
|---|---|
Constraint | Constraint on the auto type, if any. |
Keyword |
| 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. |
Three-way comparison operators
<mrdocs/Metadata/Type/AutoType.hpp>Three-way comparison operator
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...
Three-way comparison operator
<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;
<mrdocs/Support/Expected.hpp>
template<class E>
class BadExpectedAccess
: public BadExpectedAccess<void>
| Name | Description |
|---|---|
BadExpectedAccess<void> |
| Name | Description |
|---|---|
BadExpectedAccess [constructor] | Construct from E |
operator= | |
error | |
what [virtual] |
| Name | Description |
|---|---|
operator= | Assignment operators |
Construct from E
<mrdocs/Support/Expected.hpp>
explicit
BadExpectedAccess(E e);
| Name | Description |
|---|---|
| e | The object to construct from |
<mrdocs/Support/Expected.hpp>
[[nodiscard]]
E&
error() & noexcept;
» more...
[[nodiscard]]
E const&
error() const & noexcept;
» more...
[[nodiscard]]
E&&
error() && noexcept;
» more...
[[nodiscard]]
E const&&
error() const && noexcept;
» more...
<mrdocs/Support/Expected.hpp>
[[nodiscard]]
E&
error() & noexcept;
<mrdocs/Support/Expected.hpp>
[[nodiscard]]
E const&
error() const & noexcept;
<mrdocs/Support/Expected.hpp>
[[nodiscard]]
E&&
error() && noexcept;
<mrdocs/Support/Expected.hpp>
[[nodiscard]]
E const&&
error() const && noexcept;
<mrdocs/Support/Expected.hpp>
template<>
class BadExpectedAccess<void>
: public std::exception
| Name | Description |
|---|---|
std::exception |
| Name |
|---|
operator= |
what [virtual] |
| Name | Description |
|---|---|
BadExpectedAccess [constructor] | Constructors |
~BadExpectedAccess [destructor] [virtual] | Destructor |
operator= | Assignment operators |
| Name | Description |
|---|---|
BadExpectedAccess
|
<__exception/exception.h>
[[__visibility__, __exclude_from_explicit_instantiation__, __abi_tag__]]
constexpr
exception&
operator=(exception const& value) noexcept = default;
<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 |
Destructor
<mrdocs/Support/Expected.hpp>
constexpr
virtual
~BadExpectedAccess() override = default;
Assignment operators
<mrdocs/Support/Expected.hpp>Copy assignment operator
constexpr
BadExpectedAccess<void>&
operator=(BadExpectedAccess<void> const& other) = default;
» more...
Move assignment operator
constexpr
BadExpectedAccess<void>&
operator=(BadExpectedAccess<void>&& other) = default;
» more...
Copy assignment operator
<mrdocs/Support/Expected.hpp>
constexpr
BadExpectedAccess<void>&
operator=(BadExpectedAccess<void> const& other) = default;
| Name | Description |
|---|---|
| other | The object to copy assign from |
Move assignment operator
<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>Default constructor
BaseInfo() = delete;
» more...
BaseInfo(
Polymorphic<Type>&& type,
AccessKind const access,
bool const is_virtual);
» more...
Default constructor
<mrdocs/Metadata/Symbol/RecordBase.hpp>
BaseInfo() = delete;
<mrdocs/Metadata/Symbol/RecordBase.hpp>
BaseInfo(
Polymorphic<Type>&& type,
AccessKind const access,
bool const 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 from SymbolID |
operator<=> | Three-way comparison operators |
| 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 |
|---|---|
merge | Merges two Symbol objects. |
Construct from SymbolID
<mrdocs/Metadata/Symbol/Concept.hpp>
explicit
ConceptSymbol(SymbolID const& ID) noexcept;
| Name | Description |
|---|---|
| ID | The object to copy construct from |
Three-way comparison operators
<mrdocs/Metadata/Symbol/Concept.hpp>Three-way comparison operator
std::strong_ordering
operator<=>(ConceptSymbol const& other) const;
» more...
Three-way comparison operator
auto
operator<=>(SymbolCommonBase<mrdocs::SymbolKind::Concept> const& rhs) const = default;
» more...
Three-way comparison operator
<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;
| 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] | Default constructor |
This contains all the public settings applied from the command line and the YML file (if any).
This class stores the original and public config options as they are passed to MrDocs, in their original data types, such as strings and bools.
This class is an abstract interface whose private concrete implementation typically includes these parsed configuration values in a more convenient form for use by MrDocs.
Meanwhile, this class is provided publicly to plugins.
The configuration is always connected to the directory of the mrdocs.yml file from which absolute paths are calculated from relative paths.
Settings values used to generate the Corpus and Docs
<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-> | Member access operator |
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 |
autoBrief | command is required. |
autoFunctionMetadata | Automatically provide missing documentation for special functions and trivial metadata |
autoRelates | Automatically find non-member functions |
baseUrl | Base URL for links to source code |
cmake | CMake arguments when generating the compilation database from CMakeLists.txt |
cmdLineInputs | Configuration or compilation database files |
compilationDatabase | Path to the compilation database |
concurrency | Number of threads to use |
config | Mr.Docs configuration file |
configYaml | A string holding the complete configuration YAML. |
cwdDir | Full path to the current working directory |
defines | Additional defines passed to the compiler |
embedded | Output an embeddable document |
exclude | Input directories to exclude |
excludePatterns | File patterns to exclude |
excludeSymbols | Symbol patterns to exclude |
extractAll | Extract all symbols |
extractAnonymousNamespaces | Extraction policy for anonymous namespaces |
extractEmptyNamespaces | Extraction policy for empty namespaces |
extractFriends | Extraction policy for friend functions and classes |
extractImplicitSpecializations | Implicit template specializations used as base classes are extracted as dependencies |
extractLocalClasses | Extraction policy for records defined locally in source files |
extractPrivate | Extraction policy for private class members |
extractPrivateBases | Extraction policy for private base classes |
extractPrivateVirtual | Extraction policy for private virtual methods of a class |
extractStatic | Extraction policy for static members of a file |
filePatterns | File patterns to include |
generator | Generator used to create the documentation |
globalNamespaceIndex | Use the global namespace page as an index for all symbols |
ignoreFailures | Whether AST visitation failures should not stop the program |
ignoreMapErrors | Continue if files are not mapped correctly |
implementationDefined | Symbols rendered as "implementation-defined" |
includeSymbols | Symbol patterns to include |
includes | Include paths |
inheritBaseMembers | Determine how derived classes inherit base members |
input | Input directories to extract symbols from |
legibleNames | Use legible names |
libcIncludes | Standard Library include paths |
logLevel | The minimum reporting level |
missingIncludePrefixes | Include path prefixes allowed to be missing |
missingIncludeShims | Shims for forgiven missing include files |
mrdocsRootDir | Full path to the mrdocs root directory |
multipage | Generate a multipage documentation |
output | Directory or file for generating output |
overloads | Detect and group function overloads |
recursive | Recursively include files from "input" paths |
report | The minimum reporting level |
seeBelow | Exposition only symbols rendered as "see-below". |
sfinae | Detect and reduce SFINAE expressions |
showEnumConstants | Show enum constant pages in the documentation |
showNamespaces | Show namespace pages in the documentation |
sortMembers | Sort the members of a record |
sortMembersAssignment1St | Sort assignment operators first |
sortMembersBy | Determine how members of a record are sorted |
sortMembersConversionLast | Sort conversion operators last |
sortMembersCtors1St | Sort constructors first |
sortMembersDtors1St | Sort destructors first |
sortMembersRelationalLast | Sort relational operators last |
sortNamespaceMembersBy | Determine how members of a namespace are sorted |
sourceRoot | Path to the root directory of the source code |
stdlibIncludes | C++ Standard Library include paths |
systemIncludes | System include paths |
tagfile | Path for the tagfile |
useSystemLibc | Use the system C standard library |
useSystemStdlib | Use the system C++ standard library |
verbose | Verbose output |
warnAsError | Treat warnings as errors |
warnBrokenRef | Warn if a documentation reference is broken |
warnIfDocError | Warn if documentation has errors |
warnIfUndocEnumVal | Warn if enum values are not documented |
warnIfUndocumented | Warn if symbols are not documented |
warnNoParamdoc | Warn if parameters are not documented |
warnUnnamedParam | Warn if documented functions have unnamed parameters |
warnings | Enable warning messages |
| 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 |
Member access operator
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.
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;
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.
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.
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.
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.
Default constructor
<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 | |
operator<=> | Three-way comparison operators |
| Name | Description |
|---|---|
Value | The expressions value, if it is known |
Written | The expression, as written |
The underlying type of the expression
<mrdocs/Metadata/Expression.hpp>
using type = T;
Three-way comparison operators
<mrdocs/Metadata/Expression.hpp>Three-way comparison operator
auto
operator<=>(ConstantExprInfo const& rhs) const = default;
» more...
Three-way comparison operator
constexpr
auto
operator<=>(ExprInfo const& rhs) const = default;
» more...
Three-way comparison operator
<mrdocs/Metadata/Expression.hpp>
auto
operator<=>(ConstantExprInfo const& rhs) const = default;
| Name | Description |
|---|---|
| rhs | The right operand |
Three-way comparison operator
<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
<mrdocs/Metadata/TArg/ConstantTArg.hpp>
struct ConstantTArg final
: TArgCommonBase<TArgKind::Constant>
| Name | Description |
|---|---|
TArgCommonBase<TArgKind::Constant> |
| Name | Description |
|---|---|
operator<=> | Three-way comparison operator |
| Name |
|---|
isConstant |
isTemplate |
isType |
| Name | Description |
|---|---|
Value | Template argument expression. |
| Name |
|---|
kind_id |
Three-way comparison operator
<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>
| Name | Description |
|---|---|
TParamCommonBase<TParamKind::Constant> |
| Name | Description |
|---|---|
operator<=> | Three-way comparison operators |
| Name |
|---|
isConstant |
isTemplate |
isType |
| Name | Description |
|---|---|
Type | Type of the non-type template parameter |
| Name |
|---|
kind_id |
Before C++26, constant template parameters were called non-type template parameter in the standard wording. The terminology was changed by P2841R6 / PR#7587.
Three-way comparison operators
<mrdocs/Metadata/TParam/ConstantTParam.hpp>Three-way comparison operator
std::strong_ordering
operator<=>(ConstantTParam const& rhs) const;
» more...
Three-way comparison operator
auto
operator<=>(TParamCommonBase<mrdocs::TParamKind::Constant> const& rhs) const = default;
» more...
Three-way comparison operator
<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] | Construct from Config |
| 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;
| Name |
|---|
const_pointer |
const_reference |
difference_type |
pointer |
reference |
size_type |
value_type |
| Name | Description |
|---|---|
iterator [constructor] | Constructors |
operator= | Copy assignment operator |
operator* | |
operator++ | Increment operators |
operator-> | |
operator== | Equality operator |
operator!= | Inequality operator |
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.
<mrdocs/Corpus.hpp>
using difference_type = std::ptrdiff_t;
<mrdocs/Corpus.hpp>
using size_type = std::size_t;
Constructors
<mrdocs/Corpus.hpp>Default constructor
constexpr
iterator() = default;
» more...
Copy constructor
constexpr
iterator(iterator const& other) = default;
» more...
Constructor
iterator(
Corpus const* corpus,
Symbol const* val,
Symbol const*(* next)(Corpus const*, Symbol const*));
» more...
Default constructor
<mrdocs/Corpus.hpp>
constexpr
iterator() = default;
Copy constructor
| Name | Description |
|---|---|
| other | The object to copy construct from |
Constructor
<mrdocs/Corpus.hpp>
iterator(
Corpus const* corpus,
Symbol const* val,
Symbol const*(* next)(Corpus const*, Symbol const*));
| Name | Description |
|---|---|
| corpus | The object to construct from |
| val | Base class with common properties of all symbols |
| next | Base class with common properties of all symbols |
Copy assignment operator
<mrdocs/Corpus.hpp>
constexpr
iterator&
operator=(iterator const& other) = default;
| Name | Description |
|---|---|
| other | The object to copy assign from |
Increment operators
<mrdocs/Corpus.hpp>Increment operator
iterator&
operator++() noexcept;
» more...
Increment operator
iterator
operator++(int) noexcept;
» more...
Increment operator
Increment operator
Equality operator
true if the objects are equal, false otherwise
| Name | Description |
|---|---|
| other | The right operand |
Inequality operator
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>
std::string
qualifiedName(Symbol const& I) const;
» more...
Return the fully qualified name of the specified Symbol.
virtual
void
qualifiedName(
Symbol const& I,
std::string& temp) const = 0;
» more...
std::string
qualifiedName(
Symbol const& I,
SymbolID const& context) const;
» more...
Return a qualified name from the specified context.
virtual
void
qualifiedName(
Symbol const& I,
SymbolID const& context,
std::string& result) const = 0;
» more...
temp.
| Name | Description |
|---|---|
| I | The Symbol to get the qualified name for. |
| temp | The string to store the result in. |
| context | The context to get the qualified name from. |
| result | The string to store the result in. |
Return the fully qualified name of the specified Symbol.
<mrdocs/Corpus.hpp>
virtual
void
qualifiedName(
Symbol const& I,
std::string& temp) const = 0;
This function returns the fully qualified name of the specified Symbol I as a string.
The Symbol parents are traversed to construct the fully qualified name which is stored in the string temp.
temp.
| Name | Description |
|---|---|
| I | The Symbol to get the qualified name for. |
| temp | The string to store the result in. |
<mrdocs/Corpus.hpp>
std::string
qualifiedName(
Symbol const& I,
SymbolID const& context) const;
Return a qualified name from the specified context.
<mrdocs/Corpus.hpp>
virtual
void
qualifiedName(
Symbol const& I,
SymbolID const& context,
std::string& result) const = 0;
This function returns the qualified name of the specified Symbol I from the context specified by the SymbolID context.
If the context is a parent of I, the qualified name is constructed relative to the context. For instance, if I is A::B::C::D and context is A::B, the result is C::D.
If the context is not a parent of I, the qualified name is constructed relative to the global namespace with the prefix ::.
| Name | Description |
|---|---|
| I | The Symbol to get the qualified name for. |
| context | The context to get the qualified name from. |
| result | The string to store the result in. |
Visit the members of specified Symbol.
<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.
Construct from Config
| Name | Description |
|---|---|
| config_ | The object to copy construct from |
<mrdocs/Metadata/Type/DecltypeType.hpp>
struct DecltypeType final
: TypeCommonBase<TypeKind::Decltype>
| Name | Description |
|---|---|
TypeCommonBase<TypeKind::Decltype> |
| Name | Description |
|---|---|
operator<=> | Three-way comparison operators |
| Name |
|---|
isArray |
isAuto |
isDecltype |
isFunction |
isLValueReference |
isMemberPointer |
isNamed |
isPointer |
isRValueReference |
| Name |
|---|
Operand |
| 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. |
Three-way comparison operators
<mrdocs/Metadata/Type/DecltypeType.hpp>Three-way comparison operator
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...
Three-way comparison operator
<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;
A processed documentation comment attached to a declaration.
<mrdocs/Metadata/DocComment.hpp>
struct DocComment;
| Name | Description |
|---|---|
DocComment [constructor] | Constructors |
append | Append blocks from another DocComment to this. |
empty | Return true if this is empty |
operator== | Equality operator |
operator!= | Inequality operator |
operator<=> | Three-way comparison operator |
| 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. |
A complete documentation comment document consists of a sequence of text blocks. Blocks are the top-level structural units that might contain other blocks or inline elements. These are analogous to markdown blocks.
Inline elements (text, emphasis, links, code spans, etc.) live inside certain block types, like paragraphs or headings. Inlines can contain other inlines (e.g., emphasis contains text, link contains text), but they cannot directly contain blocks.
Some blocks contain metadata about the symbol being documented, such as parameters and return values. These blocks are parsed as usual, but are stored separately in the DocComment structure.
Each block in the document might contain:
- No other blocks (leaf blocks) - Other blocks (container blocks: e.g. lists)
When they contain no other blocks, they might be:
- Inlines only (e.g. paragraphs) - No inlines (e.g. horizontal rule)
Inline content elements contain other inlines but cannot contain blocks.
Constructors
<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 operator
<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 operator
<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 operator
<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;
| 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. |
This class keeps a reference to the Corpus of extracted metadata, and provides a mechanism for constructing DOM nodes representing the metadata.
A Generator can subclass this object then uses it to create the Dom nodes used as input for rendering template engines.
Constructor.
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 from SymbolID |
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 |
|---|---|
merge | Merges two Symbol objects. |
Construct from SymbolID
<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;
<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 from SymbolID |
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 |
|---|---|
merge | Merges two Symbol objects. |
Construct from SymbolID
| 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 | |
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;
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 |
| Name |
|---|
arg_t |
| Name | Description |
|---|---|
ExecutorGroup [constructor] | Construct from ThreadPool |
async | Submit work to be executed. |
emplace | Construct a new agent in the group. |
wait | Block until all work has completed. |
| Name |
|---|
AnyAgent |
Impl |
| Name |
|---|
post |
run |
| Name |
|---|
agents_ |
impl_ |
work_ |
Construct from ThreadPool
<mrdocs/Support/ExecutorGroup.hpp>
explicit
ExecutorGroup(ThreadPool& threadPool);
| Name | Description |
|---|---|
| threadPool | The object to copy construct from |
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. |
<mrdocs/Support/ExecutorGroup.hpp>
class ExecutorGroupBase;
| Name |
|---|
arg_t |
| Name | Description |
|---|---|
ExecutorGroupBase [constructor] | Move constructor |
~ExecutorGroupBase [destructor] | Destructor |
wait | Block until all work has completed. |
| Name |
|---|
AnyAgent |
Impl |
| Name | Description |
|---|---|
ExecutorGroupBase [constructor] | Construct from ThreadPool |
post | |
run |
| Name |
|---|
agents_ |
impl_ |
work_ |
| Name | Description |
|---|---|
ExecutorGroup
| A set of execution agents for performing concurrent work. |
<mrdocs/Support/ExecutorGroup.hpp>
template<class T>
using arg_t = ThreadPool::arg_t<T>;
Move constructor
<mrdocs/Support/ExecutorGroup.hpp>
ExecutorGroupBase(ExecutorGroupBase&& other) noexcept;
| Name | Description |
|---|---|
| other | The object to move construct from |
Destructor
<mrdocs/Support/ExecutorGroup.hpp>
~ExecutorGroupBase();
Block until all work has completed.
<mrdocs/Support/ExecutorGroup.hpp>
[[nodiscard]]
std::vector<Error>
wait() noexcept;
<mrdocs/Support/ExecutorGroup.hpp>
struct AnyAgent;
| Name | Description |
|---|---|
~AnyAgent [destructor] [virtual] | Destructor |
get [virtual] |
Destructor
<mrdocs/Support/ExecutorGroup.hpp>
virtual
~AnyAgent() = 0;
<mrdocs/Support/ExecutorGroup.hpp>
virtual
void*
get() noexcept = 0;
<mrdocs/Support/ExecutorGroup.hpp>
struct Impl;
Construct from ThreadPool
<mrdocs/Support/ExecutorGroup.hpp>
explicit
ExecutorGroupBase(ThreadPool& value);
| Name | Description |
|---|---|
| value | The object to copy construct from |
<mrdocs/Support/ExecutorGroup.hpp>
void
run(std::unique_lock<std::mutex>);
<mrdocs/Support/ExecutorGroup.hpp>
std::vector<std::unique_ptr<AnyAgent>> agents_;
<mrdocs/Support/ExecutorGroup.hpp>
std::unique_ptr<Impl> impl_;
<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;
| Name |
|---|
error_type |
rebind |
unexpected_type |
value_type |
| Name | Description |
|---|---|
Expected [constructor] | Constructors |
~Expected [destructor] | Destructors |
operator= [deleted] | Assignment operators |
and_then | |
emplace | |
error | |
error_or | |
has_value | |
operator* | Dereference operators |
operator-> | Member access operators |
or_else | |
swap | |
transform | |
transform_error | |
value | |
value_or | |
operator bool | Conversion to bool |
| Name |
|---|
unex_ [variant member] |
val_ [variant member] |
| Name | Description |
|---|---|
swap |
|
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. |
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 |
<mrdocs/Support/Expected.hpp>
using error_type = E;
<mrdocs/Support/Expected.hpp>
template<class U>
using rebind = Expected<U, error_type>;
<mrdocs/Support/Expected.hpp>
using value_type = T;
Constructors
<mrdocs/Support/Expected.hpp>Default constructor
constexpr
Expected() noexcept(std::is_nothrow_default_constructible_v<T>)
requires std::is_default_constructible_v<T>;
» more...
Copy constructor
Expected(Expected const& other) = default;
» more...
Copy constructor
constexpr
Expected(Expected const& x) noexcept(std::is_nothrow_copy_constructible_v<T> && std::is_nothrow_copy_constructible_v<E>)
requires std::is_copy_constructible_v<T> &&
std::is_copy_constructible_v<E> &&
(!std::is_trivially_copy_constructible_v<T> ||
!std::is_trivially_copy_constructible_v<E>);
» more...
Copy constructor
template<
class U,
class G>
requires std::is_constructible_v<T, U const&> &&
std::is_constructible_v<E, G const&> &&
(!constructible_from_expected<U, G>)
constexpr
explicit(explicit_conv<const U &, const G &>)
Expected(Expected<U, G> const& x) noexcept(std::is_nothrow_constructible_v<T, const U &> && std::is_nothrow_constructible_v<E, const G &>);
» more...
Move constructor
Expected(Expected&& other) = default;
» more...
Move constructor
constexpr
Expected(Expected&& x) noexcept(std::is_nothrow_move_constructible_v<T> && std::is_nothrow_move_constructible_v<E>)
requires std::is_move_constructible_v<T> &&
std::is_move_constructible_v<E> &&
(!std::is_trivially_move_constructible_v<T> ||
!std::is_trivially_move_constructible_v<E>);
» more...
Move constructor
template<
class U,
class G>
requires std::is_constructible_v<T, U> &&
std::is_constructible_v<E, G> &&
(!constructible_from_expected<U, G>)
constexpr
explicit(explicit_conv<U, G>)
Expected(Expected<U, G>&& x) noexcept(std::is_nothrow_constructible_v<T, U> && std::is_nothrow_constructible_v<E, G>);
» more...
Construct from Unexpected
template<class G = E>
requires std::is_constructible_v<E, G const&>
constexpr
explicit(!std::is_convertible_v<const G &, E>)
Expected(Unexpected<G> const& u) noexcept(std::is_nothrow_constructible_v<E, const G &>);
» more...
Construct from U
template<class U = T>
requires (!std::is_same_v<std::remove_cvref_t<U>, Expected>) &&
(!std::is_same_v<std::remove_cvref_t<U>, std::in_place_t>) &&
(!detail::isUnexpected<std::remove_cvref_t<U>>) &&
std::is_constructible_v<T, U>
constexpr
explicit(!std::is_convertible_v<U, T>)
Expected(U&& v) noexcept(std::is_nothrow_constructible_v<T, U>);
» more...
Construct from Unexpected
template<class G = E>
requires std::is_constructible_v<E, G>
constexpr
explicit(!std::is_convertible_v<G, E>)
Expected(Unexpected<G>&& u) noexcept(std::is_nothrow_constructible_v<E, G>);
» more...
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...
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...
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...
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...
Default constructor
<mrdocs/Support/Expected.hpp>
constexpr
Expected() noexcept(std::is_nothrow_default_constructible_v<T>)
requires std::is_default_constructible_v<T>;
Copy constructor
| Name | Description |
|---|---|
| other | The object to copy construct from |
Copy constructor
<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>);
| Name | Description |
|---|---|
| x | The object to copy construct from |
Copy constructor
<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 |
Move constructor
| Name | Description |
|---|---|
| other | The object to move construct from |
Move constructor
<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>);
| Name | Description |
|---|---|
| x | The object to move construct from |
Move constructor
<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 from Unexpected
<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 from U
<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 from Unexpected
<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 |
<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...>);
<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...>);
<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...>);
<mrdocs/Support/Expected.hpp>
template<
class U,
class... Args>
requires std::is_constructible_v<E, std::initializer_list<U>&, Args...>
constexpr
explicit
Expected(
unexpect_t,
std::initializer_list<U> il,
Args...&&... args) noexcept(std::is_nothrow_constructible_v<E, std::initializer_list<U> &, Args...>);
Destructors
<mrdocs/Support/Expected.hpp>Destructor
constexpr
~Expected() = default;
» more...
Destructor
constexpr
~Expected()
requires (!std::is_trivially_destructible_v<T>)
|| (!std::is_trivially_destructible_v<E>);
» more...
Destructor
<mrdocs/Support/Expected.hpp>
constexpr
~Expected() = default;
Destructor
<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 assignment operator
Expected&
operator=(Expected const& other) = delete;
» more...
Copy assignment operator
constexpr
Expected&
operator=(Expected const& x) noexcept(std::is_nothrow_copy_constructible_v<T> && std::is_nothrow_copy_constructible_v<E> && std::is_nothrow_copy_assignable_v<T> && std::is_nothrow_copy_assignable_v<E>)
requires std::is_copy_assignable_v<T> &&
std::is_copy_constructible_v<T> &&
std::is_copy_assignable_v<E> &&
std::is_copy_constructible_v<E> &&
(std::is_nothrow_move_constructible_v<T> ||
std::is_nothrow_move_constructible_v<E>);
» more...
Move assignment operator
constexpr
Expected&
operator=(Expected&& x) noexcept(std::is_nothrow_move_constructible_v<T> && std::is_nothrow_move_constructible_v<E> && std::is_nothrow_move_assignable_v<T> && std::is_nothrow_move_assignable_v<E>)
requires std::is_move_assignable_v<T> &&
std::is_move_constructible_v<T> &&
std::is_move_assignable_v<E> &&
std::is_move_constructible_v<E> &&
(std::is_nothrow_move_constructible_v<T> ||
std::is_nothrow_move_constructible_v<E>);
» more...
Assignment operator
template<class G>
requires std::is_constructible_v<E, G const&> &&
std::is_assignable_v<E&, G const&> &&
(std::is_nothrow_constructible_v<E, G const&> ||
std::is_nothrow_move_constructible_v<T> ||
std::is_nothrow_move_constructible_v<E>)
constexpr
Expected&
operator=(Unexpected<G> const& e);
» more...
Assignment operator
template<class U = T>
requires (!std::is_same_v<Expected, std::remove_cvref_t<U>>) &&
(!detail::isUnexpected<std::remove_cvref_t<U>>) &&
std::is_constructible_v<T, U> &&
std::is_assignable_v<T&, U> &&
(std::is_nothrow_constructible_v<T, U> ||
std::is_nothrow_move_constructible_v<T> ||
std::is_nothrow_move_constructible_v<E>)
constexpr
Expected&
operator=(U&& v);
» more...
Assignment operator
template<class G>
requires std::is_constructible_v<E, G> &&
std::is_assignable_v<E&, G> &&
(std::is_nothrow_constructible_v<E, G> ||
std::is_nothrow_move_constructible_v<T> ||
std::is_nothrow_move_constructible_v<E>)
constexpr
Expected&
operator=(Unexpected<G>&& e);
» more...
Copy assignment operator
<mrdocs/Support/Expected.hpp>
Expected&
operator=(Expected const& other) = delete;
| Name | Description |
|---|---|
| other | The object to copy assign from |
Copy assignment operator
<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 assignment operator
<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 |
Assignment operator
<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 |
Assignment operator
<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 |
Assignment operator
<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 |
<mrdocs/Support/Expected.hpp>
template<class Fn>
requires std::is_constructible_v<E, E&>
constexpr
auto
and_then(Fn&& f) &;
» more...
template<class Fn>
requires std::is_constructible_v<E, E const&>
constexpr
auto
and_then(Fn&& f) const &;
» more...
template<class Fn>
requires std::is_constructible_v<E, E>
constexpr
auto
and_then(Fn&& f) &&;
» more...
template<class Fn>
requires std::is_constructible_v<E, const E>
constexpr
auto
and_then(Fn&& f) const &&;
» more...
<mrdocs/Support/Expected.hpp>
template<class Fn>
requires std::is_constructible_v<E, E&>
constexpr
auto
and_then(Fn&& f) &;
<mrdocs/Support/Expected.hpp>
template<class Fn>
requires std::is_constructible_v<E, E const&>
constexpr
auto
and_then(Fn&& f) const &;
<mrdocs/Support/Expected.hpp>
template<class Fn>
requires std::is_constructible_v<E, E>
constexpr
auto
and_then(Fn&& f) &&;
<mrdocs/Support/Expected.hpp>
template<class Fn>
requires std::is_constructible_v<E, const E>
constexpr
auto
and_then(Fn&& f) const &&;
<mrdocs/Support/Expected.hpp>
template<class... Args>
requires std::is_nothrow_constructible_v<T, Args...>
constexpr
T&
emplace(Args...&&... args) noexcept;
» more...
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...
<mrdocs/Support/Expected.hpp>
template<class... Args>
requires std::is_nothrow_constructible_v<T, Args...>
constexpr
T&
emplace(Args...&&... args) noexcept;
<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;
<mrdocs/Support/Expected.hpp>
constexpr
E const&
error() const & noexcept;
» more...
constexpr
E&
error() & noexcept;
» more...
constexpr
E const&&
error() const && noexcept;
» more...
constexpr
E&&
error() && noexcept;
» more...
<mrdocs/Support/Expected.hpp>
constexpr
E const&
error() const & noexcept;
<mrdocs/Support/Expected.hpp>
constexpr
E&
error() & noexcept;
<mrdocs/Support/Expected.hpp>
constexpr
E const&&
error() const && noexcept;
<mrdocs/Support/Expected.hpp>
constexpr
E&&
error() && noexcept;
<mrdocs/Support/Expected.hpp>
template<class G = E>
constexpr
E
error_or(G&& e) const &;
» more...
template<class G = E>
constexpr
E
error_or(G&& e) &&;
» more...
<mrdocs/Support/Expected.hpp>
template<class G = E>
constexpr
E
error_or(G&& e) const &;
<mrdocs/Support/Expected.hpp>
template<class G = E>
constexpr
E
error_or(G&& e) &&;
<mrdocs/Support/Expected.hpp>
[[nodiscard]]
constexpr
bool
has_value() const noexcept;
Dereference operators
<mrdocs/Support/Expected.hpp>
[[nodiscard]]
constexpr
T const&
operator*() const & noexcept;
» more...
[[nodiscard]]
constexpr
T&
operator*() & noexcept;
» more...
[[nodiscard]]
constexpr
T const&&
operator*() const && noexcept;
» more...
[[nodiscard]]
constexpr
T&&
operator*() && noexcept;
» more...
<mrdocs/Support/Expected.hpp>
[[nodiscard]]
constexpr
T const&
operator*() const & noexcept;
<mrdocs/Support/Expected.hpp>
[[nodiscard]]
constexpr
T&
operator*() & noexcept;
<mrdocs/Support/Expected.hpp>
[[nodiscard]]
constexpr
T const&&
operator*() const && noexcept;
<mrdocs/Support/Expected.hpp>
[[nodiscard]]
constexpr
T&&
operator*() && noexcept;
Member access operators
<mrdocs/Support/Expected.hpp>
[[nodiscard]]
constexpr
T const*
operator->() const noexcept;
» more...
[[nodiscard]]
constexpr
T*
operator->() noexcept;
» more...
<mrdocs/Support/Expected.hpp>
[[nodiscard]]
constexpr
T const*
operator->() const noexcept;
<mrdocs/Support/Expected.hpp>
[[nodiscard]]
constexpr
T*
operator->() noexcept;
<mrdocs/Support/Expected.hpp>
template<class Fn>
requires std::is_constructible_v<T, T&>
constexpr
auto
or_else(Fn&& f) &;
» more...
template<class Fn>
requires std::is_constructible_v<T, T const&>
constexpr
auto
or_else(Fn&& f) const &;
» more...
template<class Fn>
requires std::is_constructible_v<T, T>
constexpr
auto
or_else(Fn&& f) &&;
» more...
template<class Fn>
requires std::is_constructible_v<T, const T>
constexpr
auto
or_else(Fn&& f) const &&;
» more...
<mrdocs/Support/Expected.hpp>
template<class Fn>
requires std::is_constructible_v<T, T&>
constexpr
auto
or_else(Fn&& f) &;
<mrdocs/Support/Expected.hpp>
template<class Fn>
requires std::is_constructible_v<T, T const&>
constexpr
auto
or_else(Fn&& f) const &;
<mrdocs/Support/Expected.hpp>
template<class Fn>
requires std::is_constructible_v<T, T>
constexpr
auto
or_else(Fn&& f) &&;
<mrdocs/Support/Expected.hpp>
template<class Fn>
requires std::is_constructible_v<T, const T>
constexpr
auto
or_else(Fn&& f) const &&;
<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>);
<mrdocs/Support/Expected.hpp>
template<class Fn>
requires std::is_constructible_v<E, E&>
constexpr
auto
transform(Fn&& f) &;
» more...
template<class Fn>
requires std::is_constructible_v<E, E const&>
constexpr
auto
transform(Fn&& f) const &;
» more...
template<class Fn>
requires std::is_constructible_v<E, E>
constexpr
auto
transform(Fn&& f) &&;
» more...
template<class Fn>
requires std::is_constructible_v<E, const E>
constexpr
auto
transform(Fn&& f) const &&;
» more...
<mrdocs/Support/Expected.hpp>
template<class Fn>
requires std::is_constructible_v<E, E&>
constexpr
auto
transform(Fn&& f) &;
<mrdocs/Support/Expected.hpp>
template<class Fn>
requires std::is_constructible_v<E, E const&>
constexpr
auto
transform(Fn&& f) const &;
<mrdocs/Support/Expected.hpp>
template<class Fn>
requires std::is_constructible_v<E, E>
constexpr
auto
transform(Fn&& f) &&;
<mrdocs/Support/Expected.hpp>
template<class Fn>
requires std::is_constructible_v<E, const E>
constexpr
auto
transform(Fn&& f) const &&;
<mrdocs/Support/Expected.hpp>
template<class Fn>
requires std::is_constructible_v<T, T&>
constexpr
auto
transform_error(Fn&& f) &;
» more...
template<class Fn>
requires std::is_constructible_v<T, T const&>
constexpr
auto
transform_error(Fn&& f) const &;
» more...
template<class Fn>
requires std::is_constructible_v<T, T>
constexpr
auto
transform_error(Fn&& f) &&;
» more...
template<class Fn>
requires std::is_constructible_v<T, const T>
constexpr
auto
transform_error(Fn&& f) const &&;
» more...
<mrdocs/Support/Expected.hpp>
template<class Fn>
requires std::is_constructible_v<T, T&>
constexpr
auto
transform_error(Fn&& f) &;
<mrdocs/Support/Expected.hpp>
template<class Fn>
requires std::is_constructible_v<T, T const&>
constexpr
auto
transform_error(Fn&& f) const &;
<mrdocs/Support/Expected.hpp>
template<class Fn>
requires std::is_constructible_v<T, T>
constexpr
auto
transform_error(Fn&& f) &&;
<mrdocs/Support/Expected.hpp>
template<class Fn>
requires std::is_constructible_v<T, const T>
constexpr
auto
transform_error(Fn&& f) const &&;
<mrdocs/Support/Expected.hpp>
constexpr
T const&
value() const &;
» more...
constexpr
T&
value() &;
» more...
constexpr
T const&&
value() const &&;
» more...
constexpr
T&&
value() &&;
» more...
<mrdocs/Support/Expected.hpp>
constexpr
T const&
value() const &;
<mrdocs/Support/Expected.hpp>
constexpr
T&
value() &;
<mrdocs/Support/Expected.hpp>
constexpr
T const&&
value() const &&;
<mrdocs/Support/Expected.hpp>
constexpr
T&&
value() &&;
<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>);
» more...
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...
<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>);
<mrdocs/Support/Expected.hpp>
template<class U>
constexpr
T
value_or(U&& v) && noexcept(std::is_nothrow_move_constructible_v<T> && std::is_nothrow_convertible_v<U, T>);
Conversion to bool
<mrdocs/Support/Expected.hpp>
[[nodiscard]]
constexpr
explicit
operator bool() const noexcept;
bool
<mrdocs/Support/Expected.hpp>
E unex_;
<mrdocs/Support/Expected.hpp>
T val_;
<mrdocs/Support/Expected.hpp>
template<
class T,
class E>
requires std::is_void_v<T>
class Expected<T, E>;
| Name |
|---|
Unnamed struct |
error_type |
rebind |
unexpected_type |
value_type |
| Name | Description |
|---|---|
Expected [constructor] | Constructors |
~Expected [destructor] | Destructors |
operator= [deleted] | Assignment operators |
and_then | |
emplace | |
error | |
error_or | |
has_value | |
operator* | |
or_else | |
swap | |
transform | |
transform_error | |
value | |
operator bool | Conversion to bool |
| Name |
|---|
unex_ [variant member] |
void_ [variant member] |
| Name | Description |
|---|---|
swap |
|
operator== |
Equality operator |
operator== |
Equality operator |
Expected |
A container holding an error or a value. |
<mrdocs/Support/Expected.hpp>
using error_type = E;
<mrdocs/Support/Expected.hpp>
template<class U>
using rebind = Expected<U, error_type>;
<mrdocs/Support/Expected.hpp>
using value_type = T;
<mrdocs/Support/Expected.hpp>
struct Unnamed struct;
Constructors
<mrdocs/Support/Expected.hpp>Default constructor
constexpr
Expected() noexcept;
» more...
Copy constructor
Expected(Expected const& other) = default;
» more...
Copy constructor
constexpr
Expected(Expected const& x) noexcept(std::is_nothrow_copy_constructible_v<E>)
requires std::is_copy_constructible_v<E> &&
(!std::is_trivially_copy_constructible_v<E>);
» more...
Move constructor
Expected(Expected&& other) = default;
» more...
Move constructor
constexpr
Expected(Expected&& x) noexcept(std::is_nothrow_move_constructible_v<E>)
requires std::is_move_constructible_v<E> &&
(!std::is_trivially_move_constructible_v<E>);
» more...
Construct from in_place_t
constexpr
explicit
Expected(std::in_place_t value) noexcept;
» more...
Construct from Unexpected
template<class G = E>
requires std::is_constructible_v<E, G const&>
constexpr
explicit(!std::is_convertible_v<const G &, E>)
Expected(Unexpected<G> const& u) noexcept(std::is_nothrow_constructible_v<E, const G &>);
» more...
Construct from Unexpected
template<class G = E>
requires std::is_constructible_v<E, G>
constexpr
explicit(!std::is_convertible_v<G, E>)
Expected(Unexpected<G>&& u) noexcept(std::is_nothrow_constructible_v<E, G>);
» more...
Construct from Expected
template<
class U,
class G>
requires std::is_void_v<U> &&
std::is_constructible_v<E, G const&> &&
(!constructible_from_expected<U, G>)
constexpr
explicit(!std::is_convertible_v<const G &, E>)
Expected(Expected<U, G> const& x) noexcept(std::is_nothrow_constructible_v<E, const G &>);
» more...
Construct from Expected
template<
class U,
class G>
requires std::is_void_v<U> &&
std::is_constructible_v<E, G> &&
(!constructible_from_expected<U, G>)
constexpr
explicit(!std::is_convertible_v<G, E>)
Expected(Expected<U, G>&& x) noexcept(std::is_nothrow_constructible_v<E, G>);
» more...
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...
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...
Default constructor
<mrdocs/Support/Expected.hpp>
constexpr
Expected() noexcept;
Copy constructor
| Name | Description |
|---|---|
| other | The object to copy construct from |
Copy constructor
<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 |
Move constructor
| Name | Description |
|---|---|
| other | The object to move construct from |
Move constructor
<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 from in_place_t
<mrdocs/Support/Expected.hpp>
constexpr
explicit
Expected(std::in_place_t value) noexcept;
| Name | Description |
|---|---|
| value | The object to construct from |
Construct from Unexpected
<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 from Unexpected
<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 from Expected
<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 |
Construct from Expected
<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 |
<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...>);
<mrdocs/Support/Expected.hpp>
template<
class U,
class... Args>
requires std::is_constructible_v<E, std::initializer_list<U>&, Args...>
constexpr
explicit
Expected(
unexpect_t,
std::initializer_list<U> il,
Args...&&... args) noexcept(std::is_nothrow_constructible_v<E, std::initializer_list<U> &, Args...>);
Destructors
<mrdocs/Support/Expected.hpp>Destructor
constexpr
~Expected() = default;
» more...
Destructor
constexpr
~Expected()
requires (!std::is_trivially_destructible_v<E>);
» more...
Destructor
<mrdocs/Support/Expected.hpp>
constexpr
~Expected() = default;
Destructor
<mrdocs/Support/Expected.hpp>
constexpr
~Expected()
requires (!std::is_trivially_destructible_v<E>);
Assignment operators
<mrdocs/Support/Expected.hpp>Copy assignment operator
Expected&
operator=(Expected const& other) = delete;
» more...
Copy assignment operator
constexpr
Expected&
operator=(Expected const& x) noexcept(std::is_nothrow_copy_constructible_v<E> && std::is_nothrow_copy_assignable_v<E>)
requires std::is_copy_constructible_v<E> &&
std::is_copy_assignable_v<E>;
» more...
Move assignment operator
constexpr
Expected&
operator=(Expected&& x) noexcept(std::is_nothrow_move_constructible_v<E> && std::is_nothrow_move_assignable_v<E>)
requires std::is_move_constructible_v<E> &&
std::is_move_assignable_v<E>;
» more...
Assignment operator
template<class G>
requires std::is_constructible_v<E, G const&> &&
std::is_assignable_v<E&, G const&>
constexpr
Expected&
operator=(Unexpected<G> const& e);
» more...
Assignment operator
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 operator
<mrdocs/Support/Expected.hpp>
Expected&
operator=(Expected const& other) = delete;
| Name | Description |
|---|---|
| other | The object to copy assign from |
Copy assignment operator
<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 assignment operator
<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 |
Assignment operator
<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 |
Assignment operator
<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 |
<mrdocs/Support/Expected.hpp>
template<class Fn>
requires std::is_constructible_v<E, E&>
constexpr
auto
and_then(Fn&& f) &;
» more...
template<class Fn>
requires std::is_constructible_v<E, E const&>
constexpr
auto
and_then(Fn&& f) const &;
» more...
template<class Fn>
requires std::is_constructible_v<E, E>
constexpr
auto
and_then(Fn&& f) &&;
» more...
template<class Fn>
requires std::is_constructible_v<E, const E>
constexpr
auto
and_then(Fn&& f) const &&;
» more...
<mrdocs/Support/Expected.hpp>
template<class Fn>
requires std::is_constructible_v<E, E&>
constexpr
auto
and_then(Fn&& f) &;
<mrdocs/Support/Expected.hpp>
template<class Fn>
requires std::is_constructible_v<E, E const&>
constexpr
auto
and_then(Fn&& f) const &;
<mrdocs/Support/Expected.hpp>
template<class Fn>
requires std::is_constructible_v<E, E>
constexpr
auto
and_then(Fn&& f) &&;
<mrdocs/Support/Expected.hpp>
template<class Fn>
requires std::is_constructible_v<E, const E>
constexpr
auto
and_then(Fn&& f) const &&;
<mrdocs/Support/Expected.hpp>
constexpr
void
emplace() noexcept;
<mrdocs/Support/Expected.hpp>
constexpr
E const&
error() const & noexcept;
» more...
constexpr
E&
error() & noexcept;
» more...
constexpr
E const&&
error() const && noexcept;
» more...
constexpr
E&&
error() && noexcept;
» more...
<mrdocs/Support/Expected.hpp>
constexpr
E const&
error() const & noexcept;
<mrdocs/Support/Expected.hpp>
constexpr
E&
error() & noexcept;
<mrdocs/Support/Expected.hpp>
constexpr
E const&&
error() const && noexcept;
<mrdocs/Support/Expected.hpp>
constexpr
E&&
error() && noexcept;
<mrdocs/Support/Expected.hpp>
template<class G = E>
constexpr
E
error_or(G&& e) const &;
» more...
template<class G = E>
constexpr
E
error_or(G&& e) &&;
» more...
<mrdocs/Support/Expected.hpp>
template<class G = E>
constexpr
E
error_or(G&& e) const &;
<mrdocs/Support/Expected.hpp>
template<class G = E>
constexpr
E
error_or(G&& e) &&;
<mrdocs/Support/Expected.hpp>
[[nodiscard]]
constexpr
bool
has_value() const noexcept;
<mrdocs/Support/Expected.hpp>
constexpr
void
operator*() const noexcept;
<mrdocs/Support/Expected.hpp>
template<class Fn>
constexpr
auto
or_else(Fn&& f) &;
» more...
template<class Fn>
constexpr
auto
or_else(Fn&& f) const &;
» more...
template<class Fn>
constexpr
auto
or_else(Fn&& f) &&;
» more...
template<class Fn>
constexpr
auto
or_else(Fn&& f) const &&;
» more...
<mrdocs/Support/Expected.hpp>
template<class Fn>
constexpr
auto
or_else(Fn&& f) &;
<mrdocs/Support/Expected.hpp>
template<class Fn>
constexpr
auto
or_else(Fn&& f) const &;
<mrdocs/Support/Expected.hpp>
template<class Fn>
constexpr
auto
or_else(Fn&& f) &&;
<mrdocs/Support/Expected.hpp>
template<class Fn>
constexpr
auto
or_else(Fn&& f) const &&;
<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>;
<mrdocs/Support/Expected.hpp>
template<class Fn>
requires std::is_constructible_v<E, E&>
constexpr
auto
transform(Fn&& f) &;
» more...
template<class Fn>
requires std::is_constructible_v<E, E const&>
constexpr
auto
transform(Fn&& f) const &;
» more...
template<class Fn>
requires std::is_constructible_v<E, E>
constexpr
auto
transform(Fn&& f) &&;
» more...
template<class Fn>
requires std::is_constructible_v<E, const E>
constexpr
auto
transform(Fn&& f) const &&;
» more...
<mrdocs/Support/Expected.hpp>
template<class Fn>
requires std::is_constructible_v<E, E&>
constexpr
auto
transform(Fn&& f) &;
<mrdocs/Support/Expected.hpp>
template<class Fn>
requires std::is_constructible_v<E, E const&>
constexpr
auto
transform(Fn&& f) const &;
<mrdocs/Support/Expected.hpp>
template<class Fn>
requires std::is_constructible_v<E, E>
constexpr
auto
transform(Fn&& f) &&;
<mrdocs/Support/Expected.hpp>
template<class Fn>
requires std::is_constructible_v<E, const E>
constexpr
auto
transform(Fn&& f) const &&;
<mrdocs/Support/Expected.hpp>
template<class Fn>
constexpr
auto
transform_error(Fn&& f) &;
» more...
template<class Fn>
constexpr
auto
transform_error(Fn&& f) const &;
» more...
template<class Fn>
constexpr
auto
transform_error(Fn&& f) &&;
» more...
template<class Fn>
constexpr
auto
transform_error(Fn&& f) const &&;
» more...
<mrdocs/Support/Expected.hpp>
template<class Fn>
constexpr
auto
transform_error(Fn&& f) &;
<mrdocs/Support/Expected.hpp>
template<class Fn>
constexpr
auto
transform_error(Fn&& f) const &;
<mrdocs/Support/Expected.hpp>
template<class Fn>
constexpr
auto
transform_error(Fn&& f) &&;
<mrdocs/Support/Expected.hpp>
template<class Fn>
constexpr
auto
transform_error(Fn&& f) const &&;
<mrdocs/Support/Expected.hpp>
constexpr
void
value() const &;
» more...
constexpr
void
value() &&;
» more...
<mrdocs/Support/Expected.hpp>
constexpr
void
value() const &;
<mrdocs/Support/Expected.hpp>
constexpr
void
value() &&;
Conversion to bool
<mrdocs/Support/Expected.hpp>
[[nodiscard]]
constexpr
explicit
operator bool() const noexcept;
bool
<mrdocs/Support/Expected.hpp>
E unex_;
<mrdocs/Support/Expected.hpp>
template<
class T,
class E>
class Expected<T&, E>;
| Name |
|---|
error_type |
rebind |
unexpected_type |
value_type |
| Name | Description |
|---|---|
Expected [constructor] | Constructors |
~Expected [destructor] | Destructor |
operator= | Assignment operators |
and_then | |
emplace | |
error | |
error_or | |
has_value | |
operator* | Dereference operators |
operator-> | Member access operators |
or_else | |
swap | |
transform | |
transform_error | |
value | |
value_or | |
operator bool | Conversion to bool |
| Name |
|---|
p_ [variant member] |
unex_ [variant member] |
| Name | Description |
|---|---|
operator== |
Equality operator |
operator== |
Equality operator |
operator== |
Equality operator |
swap |
<mrdocs/Support/Expected.hpp>
using error_type = E;
<mrdocs/Support/Expected.hpp>
template<class U>
using rebind = Expected<U, error_type>;
<mrdocs/Support/Expected.hpp>
using value_type = T&;
Constructors
<mrdocs/Support/Expected.hpp>Default constructor
constexpr
Expected() noexcept;
» more...
Copy constructor
constexpr
Expected(Expected const& other) = default;
» more...
Move constructor
constexpr
Expected(Expected&& other) = default;
» more...
Construct from U
template<class U>
requires (!std::is_same_v<std::remove_cvref_t<U>, Expected>
&& !std::is_same_v<std::remove_cvref_t<U>, std::in_place_t>
&& !detail::isUnexpected<std::remove_cvref_t<U>> && ok_bind_v<U&>)
constexpr
explicit(!std::is_convertible_v<U &, R>)
Expected(U& u) noexcept(std::is_nothrow_constructible_v<R, U &>);
» more...
Construct from Expected
template<class U>
requires detail::ok_bind_ref_v<R, U&>
constexpr
explicit(!std::is_convertible_v<U &, R>)
Expected(Expected<U, E>& other) noexcept(std::is_nothrow_constructible_v<R, U &> && std::is_nothrow_copy_constructible_v<E>);
» more...
Construct from Expected
template<class U>
requires detail::ok_bind_ref_v<R, U&>
constexpr
explicit(!std::is_convertible_v<U &, R>)
Expected(Expected<U&, E> const& other) noexcept(std::is_nothrow_constructible_v<R, U &> && std::is_nothrow_copy_constructible_v<E>);
» more...
Construct from Unexpected
template<class G = E>
requires std::is_constructible_v<E, G const&>
constexpr
explicit(!std::is_convertible_v<const G &, E>)
Expected(Unexpected<G> const& u) noexcept(std::is_nothrow_constructible_v<E, const G &>);
» more...
Construct from U
template<class U>
requires (!std::is_same_v<std::remove_cvref_t<U>, Expected>
&& !std::is_same_v<std::remove_cvref_t<U>, std::in_place_t>
&& !detail::isUnexpected<std::remove_cvref_t<U>>
&& !ok_bind_v<U &&>)
constexpr
Expected(U&& value) = delete;
» more...
Construct from Expected
template<class U>
constexpr
Expected(Expected<U, E>&& value) = delete;
» more...
Construct from Expected
template<class U>
requires detail::ok_bind_ref_v<R, U&>
constexpr
explicit(!std::is_convertible_v<U &, R>)
Expected(Expected<U&, E>&& other) noexcept(std::is_nothrow_constructible_v<R, U &> && std::is_nothrow_move_constructible_v<E>);
» more...
Construct from Unexpected
template<class G = E>
requires std::is_constructible_v<E, G>
constexpr
explicit(!std::is_convertible_v<G, E>)
Expected(Unexpected<G>&& u) noexcept(std::is_nothrow_constructible_v<E, G>);
» more...
template<class Fn>
constexpr
explicit
Expected(
/* implementation-defined */,
Fn&& fn);
» more...
template<class U>
requires ok_bind_v<U&>
constexpr
explicit
Expected(
std::in_place_t,
U& u) noexcept;
» more...
template<class Fn>
constexpr
explicit
Expected(
/* implementation-defined */,
Fn&& fn);
» more...
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...
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...
Default constructor
<mrdocs/Support/Expected.hpp>
constexpr
Expected() noexcept;
Copy constructor
<mrdocs/Support/Expected.hpp>
constexpr
Expected(Expected const& other) = default;
| Name | Description |
|---|---|
| other | The object to copy construct from |
Move constructor
| Name | Description |
|---|---|
| other | The object to move construct from |
Construct from U
<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 |
Construct from 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_copy_constructible_v<E>);
| Name | Description |
|---|---|
| other | The object to copy construct from |
Construct from 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 | The object to copy construct from |
Construct from Unexpected
<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 from U
<mrdocs/Support/Expected.hpp>
template<class U>
requires (!std::is_same_v<std::remove_cvref_t<U>, Expected>
&& !std::is_same_v<std::remove_cvref_t<U>, std::in_place_t>
&& !detail::isUnexpected<std::remove_cvref_t<U>>
&& !ok_bind_v<U &&>)
constexpr
Expected(U&& value) = delete;
| Name | Description |
|---|---|
| value | The object to move construct from |
Construct from Expected
<mrdocs/Support/Expected.hpp>
template<class U>
constexpr
Expected(Expected<U, E>&& value) = delete;
| Name | Description |
|---|---|
| value | The object to move construct from |
Construct from 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 | The object to move construct from |
Construct from Unexpected
<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 |
<mrdocs/Support/Expected.hpp>
template<class Fn>
constexpr
explicit
Expected(
/* implementation-defined */,
Fn&& fn);
<mrdocs/Support/Expected.hpp>
template<class U>
requires ok_bind_v<U&>
constexpr
explicit
Expected(
std::in_place_t,
U& u) noexcept;
<mrdocs/Support/Expected.hpp>
template<class Fn>
constexpr
explicit
Expected(
/* implementation-defined */,
Fn&& fn);
<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...>);
<mrdocs/Support/Expected.hpp>
template<
class U,
class... Args>
requires std::is_constructible_v<E, std::initializer_list<U>&, Args...>
constexpr
explicit
Expected(
unexpect_t,
std::initializer_list<U> il,
Args...&&... args) noexcept(std::is_nothrow_constructible_v<E, std::initializer_list<U> &, Args...>);
Destructor
<mrdocs/Support/Expected.hpp>
constexpr
~Expected();
Assignment operators
<mrdocs/Support/Expected.hpp>Copy assignment operator
constexpr
Expected&
operator=(Expected const& other) = default;
» more...
Move assignment operator
constexpr
Expected&
operator=(Expected&& other) = default;
» more...
Assignment operator
template<class U>
requires ok_bind_v<U&>
constexpr
Expected&
operator=(U& u) noexcept(std::is_nothrow_constructible_v<R, U &>);
» more...
Assignment operator
template<class U>
requires detail::ok_bind_ref_v<R, U&>
constexpr
Expected&
operator=(Expected<U, E>& other);
» more...
Assignment operator
template<class U>
requires detail::ok_bind_ref_v<R, U&>
constexpr
Expected&
operator=(Expected<U&, E> const& other);
» more...
Assignment operator
template<class G>
requires std::is_constructible_v<E, G const&>
&& std::is_assignable_v<E&, G const&>
constexpr
Expected&
operator=(Unexpected<G> const& e);
» more...
Assignment operator
template<class U>
requires (!ok_bind_v<U &&>)
constexpr
Expected&
operator=(U&& value) = delete;
» more...
Assignment operator
template<class U>
constexpr
Expected&
operator=(Expected<U, E>&& value) = delete;
» more...
Assignment operator
template<class U>
requires detail::ok_bind_ref_v<R, U&>
constexpr
Expected&
operator=(Expected<U&, E>&& other);
» more...
Assignment operator
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 operator
<mrdocs/Support/Expected.hpp>
constexpr
Expected&
operator=(Expected const& other) = default;
| Name | Description |
|---|---|
| other | The object to copy assign from |
Move assignment operator
<mrdocs/Support/Expected.hpp>
constexpr
Expected&
operator=(Expected&& other) = default;
| Name | Description |
|---|---|
| other | The object to move assign from |
Assignment operator
<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 |
Assignment operator
<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 | The object to copy assign from |
Assignment operator
<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 | The object to copy assign from |
Assignment operator
<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 |
Assignment operator
<mrdocs/Support/Expected.hpp>
template<class U>
requires (!ok_bind_v<U &&>)
constexpr
Expected&
operator=(U&& value) = delete;
| Name | Description |
|---|---|
| value | The object to move assign from |
Assignment operator
<mrdocs/Support/Expected.hpp>
template<class U>
constexpr
Expected&
operator=(Expected<U, E>&& value) = delete;
| Name | Description |
|---|---|
| value | The object to move assign from |
Assignment operator
<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 | The object to move assign from |
Assignment operator
<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 |
<mrdocs/Support/Expected.hpp>
template<class Fn>
constexpr
auto
and_then(Fn&& f) &;
» more...
template<class Fn>
constexpr
auto
and_then(Fn&& f) const &;
» more...
template<class Fn>
constexpr
auto
and_then(Fn&& f) &&;
» more...
template<class Fn>
constexpr
auto
and_then(Fn&& f) const &&;
» more...
<mrdocs/Support/Expected.hpp>
template<class Fn>
constexpr
auto
and_then(Fn&& f) &;
<mrdocs/Support/Expected.hpp>
template<class Fn>
constexpr
auto
and_then(Fn&& f) const &;
<mrdocs/Support/Expected.hpp>
template<class Fn>
constexpr
auto
and_then(Fn&& f) &&;
<mrdocs/Support/Expected.hpp>
template<class Fn>
constexpr
auto
and_then(Fn&& f) const &&;
<mrdocs/Support/Expected.hpp>
template<class U>
requires ok_bind_v<U&>
constexpr
T&
emplace(U& u) noexcept;
» more...
template<class U>
requires (!ok_bind_v<U &&>)
constexpr
T&
emplace(U&&) = delete;
» more...
<mrdocs/Support/Expected.hpp>
template<class U>
requires ok_bind_v<U&>
constexpr
T&
emplace(U& u) noexcept;
<mrdocs/Support/Expected.hpp>
template<class U>
requires (!ok_bind_v<U &&>)
constexpr
T&
emplace(U&&) = delete;
<mrdocs/Support/Expected.hpp>
[[nodiscard]]
constexpr
E&
error() & noexcept;
» more...
[[nodiscard]]
constexpr
E const&
error() const & noexcept;
» more...
[[nodiscard]]
constexpr
E&&
error() && noexcept;
» more...
[[nodiscard]]
constexpr
E const&&
error() const && noexcept;
» more...
<mrdocs/Support/Expected.hpp>
[[nodiscard]]
constexpr
E&
error() & noexcept;
<mrdocs/Support/Expected.hpp>
[[nodiscard]]
constexpr
E const&
error() const & noexcept;
<mrdocs/Support/Expected.hpp>
[[nodiscard]]
constexpr
E&&
error() && noexcept;
<mrdocs/Support/Expected.hpp>
[[nodiscard]]
constexpr
E const&&
error() const && noexcept;
<mrdocs/Support/Expected.hpp>
template<class G = E>
constexpr
E
error_or(G&& g) const &;
» more...
template<class G = E>
constexpr
E
error_or(G&& g) &&;
» more...
<mrdocs/Support/Expected.hpp>
template<class G = E>
constexpr
E
error_or(G&& g) const &;
<mrdocs/Support/Expected.hpp>
template<class G = E>
constexpr
E
error_or(G&& g) &&;
<mrdocs/Support/Expected.hpp>
[[nodiscard]]
constexpr
bool
has_value() const noexcept;
Dereference operators
<mrdocs/Support/Expected.hpp>
[[nodiscard]]
constexpr
T&
operator*() & noexcept;
» more...
[[nodiscard]]
constexpr
T const&
operator*() const & noexcept;
» more...
[[nodiscard]]
constexpr
T&&
operator*() && noexcept;
» more...
[[nodiscard]]
constexpr
T const&&
operator*() const && noexcept;
» more...
<mrdocs/Support/Expected.hpp>
[[nodiscard]]
constexpr
T&
operator*() & noexcept;
<mrdocs/Support/Expected.hpp>
[[nodiscard]]
constexpr
T const&
operator*() const & noexcept;
<mrdocs/Support/Expected.hpp>
[[nodiscard]]
constexpr
T&&
operator*() && noexcept;
<mrdocs/Support/Expected.hpp>
[[nodiscard]]
constexpr
T const&&
operator*() const && noexcept;
Member access operators
<mrdocs/Support/Expected.hpp>
[[nodiscard]]
constexpr
T*
operator->() noexcept;
» more...
[[nodiscard]]
constexpr
T const*
operator->() const noexcept;
» more...
<mrdocs/Support/Expected.hpp>
[[nodiscard]]
constexpr
T*
operator->() noexcept;
<mrdocs/Support/Expected.hpp>
[[nodiscard]]
constexpr
T const*
operator->() const noexcept;
<mrdocs/Support/Expected.hpp>
template<class Fn>
constexpr
Expected
or_else(Fn&& f) &;
» more...
template<class Fn>
constexpr
Expected
or_else(Fn&& f) const &;
» more...
template<class Fn>
constexpr
Expected
or_else(Fn&& f) &&;
» more...
template<class Fn>
constexpr
Expected
or_else(Fn&& f) const &&;
» more...
<mrdocs/Support/Expected.hpp>
template<class Fn>
constexpr
Expected
or_else(Fn&& f) &;
<mrdocs/Support/Expected.hpp>
template<class Fn>
constexpr
Expected
or_else(Fn&& f) const &;
<mrdocs/Support/Expected.hpp>
template<class Fn>
constexpr
Expected
or_else(Fn&& f) &&;
<mrdocs/Support/Expected.hpp>
template<class Fn>
constexpr
Expected
or_else(Fn&& f) const &&;
<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>;
<mrdocs/Support/Expected.hpp>
template<class Fn>
constexpr
auto
transform(Fn&& f) &;
» more...
template<class Fn>
constexpr
auto
transform(Fn&& f) const &;
» more...
template<class Fn>
constexpr
auto
transform(Fn&& f) &&;
» more...
template<class Fn>
constexpr
auto
transform(Fn&& f) const &&;
» more...
<mrdocs/Support/Expected.hpp>
template<class Fn>
constexpr
auto
transform(Fn&& f) &;
<mrdocs/Support/Expected.hpp>
template<class Fn>
constexpr
auto
transform(Fn&& f) const &;
<mrdocs/Support/Expected.hpp>
template<class Fn>
constexpr
auto
transform(Fn&& f) &&;
<mrdocs/Support/Expected.hpp>
template<class Fn>
constexpr
auto
transform(Fn&& f) const &&;
<mrdocs/Support/Expected.hpp>
template<class Fn>
constexpr
auto
transform_error(Fn&& f) &;
» more...
template<class Fn>
constexpr
auto
transform_error(Fn&& f) const &;
» more...
template<class Fn>
constexpr
auto
transform_error(Fn&& f) &&;
» more...
template<class Fn>
constexpr
auto
transform_error(Fn&& f) const &&;
» more...
<mrdocs/Support/Expected.hpp>
template<class Fn>
constexpr
auto
transform_error(Fn&& f) &;
<mrdocs/Support/Expected.hpp>
template<class Fn>
constexpr
auto
transform_error(Fn&& f) const &;
<mrdocs/Support/Expected.hpp>
template<class Fn>
constexpr
auto
transform_error(Fn&& f) &&;
<mrdocs/Support/Expected.hpp>
template<class Fn>
constexpr
auto
transform_error(Fn&& f) const &&;
<mrdocs/Support/Expected.hpp>
constexpr
T&
value() &;
» more...
constexpr
T const&
value() const &;
» more...
constexpr
T&&
value() &&;
» more...
constexpr
T const&&
value() const &&;
» more...
<mrdocs/Support/Expected.hpp>
constexpr
T&
value() &;
<mrdocs/Support/Expected.hpp>
constexpr
T const&
value() const &;
<mrdocs/Support/Expected.hpp>
constexpr
T&&
value() &&;
<mrdocs/Support/Expected.hpp>
constexpr
T const&&
value() const &&;
<mrdocs/Support/Expected.hpp>
template<class U>
constexpr
std::remove_reference_t<T>
value_or(U&& u) const &;
» more...
template<class U>
constexpr
std::remove_reference_t<T>
value_or(U&& u) &&;
» more...
<mrdocs/Support/Expected.hpp>
template<class U>
constexpr
std::remove_reference_t<T>
value_or(U&& u) const &;
<mrdocs/Support/Expected.hpp>
template<class U>
constexpr
std::remove_reference_t<T>
value_or(U&& u) &&;
Conversion to bool
<mrdocs/Support/Expected.hpp>
[[nodiscard]]
constexpr
explicit
operator bool() const noexcept;
bool
<mrdocs/Support/Expected.hpp>
T* p_;
<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<=> | Three-way comparison operator |
| 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. |
Three-way comparison operator
<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 | |
operator<=> | Three-way comparison operator |
| Name | Description |
|---|---|
Written | The expression, as written |
| Name | Description |
|---|---|
ConstantExprInfo
| Represents an expression with a (possibly known) value |
<mrdocs/Metadata/Expression.hpp>
ExprInfo&
asExpr() noexcept;
» more...
ExprInfo const&
asExpr() const noexcept;
» more...
Three-way comparison operator
<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 |
|---|
FormatString [constructor] |
| Name |
|---|
fs |
loc |
| Name | Description |
|---|---|
formatError | Return a formatted error. |
<mrdocs/Support/Error.hpp>
template<class T>
FormatString(
T const& fs_,
std::source_location loc_ = source_location::current());
<mrdocs/Support/Error.hpp>
std::string_view fs;
<mrdocs/Support/Error.hpp>
std::source_location loc;
Info for friend declarations.
<mrdocs/Metadata/Symbol/Friend.hpp>
struct FriendInfo final
| Name | Description |
|---|---|
Type | Befriended type. |
id | Befriended symbol. |
- Friendship is not transitive - Friendship is not inherited - Access specifiers do not affect the meaning of friend declarations
The friends of a record are stored directly in the record's metadata.
If the friend declaration is documented, the documentation is stored in the befriended symbol's metadata rather than in the relationship.
Befriended type.
<mrdocs/Metadata/Symbol/Friend.hpp>
Optional<Polymorphic<Type>> Type = std::nullopt;
This member is nullable and only used when befriending a type.
Befriended symbol.
<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 from SymbolID |
operator<=> | Three-way comparison operators |
| Name |
|---|
isConcept |
isEnum |
isEnumConstant |
isFunction |
isGuide |
isNamespace |
isNamespaceAlias |
isOverloads |
isRecord |
isTypedef |
isUsing |
isVariable |
| Name | Description |
|---|---|
Attributes | |
Class | The class of function this is |
Constexpr | |
Explicit | |
HasOverrideAttr | |
HasTrailingReturn | |
IsConst | |
IsDefaulted | |
IsDeleted | |
IsDeletedAsWritten | |
IsExplicitObjectMemberFunction | |
IsExplicitlyDefaulted | |
IsFinal | |
IsNoReturn | |
IsNodiscard | |
IsPure | |
IsRecordMethod | |
IsVariadic | |
IsVirtual | |
IsVirtualAsWritten | |
IsVolatile | |
Noexcept | |
OverloadedOperator | |
Params | List of parameters. |
RefQualifier | |
Requires | |
ReturnType | Info about the return type of this function. |
StorageClass | |
Template | When present, this function is a template or specialization. |
| Name |
|---|
kind_id |
| Name | Description |
|---|---|
merge | Merges two Symbol objects. |
overrides | Determine if one function would override the other |
Construct from SymbolID
<mrdocs/Metadata/Symbol/Function.hpp>
explicit
FunctionSymbol(SymbolID const& ID) noexcept;
| Name | Description |
|---|---|
| ID | The object to copy construct from |
Three-way comparison operators
<mrdocs/Metadata/Symbol/Function.hpp>Three-way comparison operator
std::strong_ordering
operator<=>(FunctionSymbol const& other) const;
» more...
Three-way comparison operator
auto
operator<=>(SymbolCommonBase<mrdocs::SymbolKind::Function> const& rhs) const = default;
» more...
Three-way comparison operator
<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;
<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;
<mrdocs/Metadata/Symbol/Function.hpp>
ConstexprKind Constexpr = ConstexprKind::None;
<mrdocs/Metadata/Symbol/Function.hpp>
bool HasOverrideAttr = false;
<mrdocs/Metadata/Symbol/Function.hpp>
bool HasTrailingReturn = false;
<mrdocs/Metadata/Symbol/Function.hpp>
bool IsConst = false;
<mrdocs/Metadata/Symbol/Function.hpp>
bool IsDefaulted = false;
<mrdocs/Metadata/Symbol/Function.hpp>
bool IsDeleted = false;
<mrdocs/Metadata/Symbol/Function.hpp>
bool IsDeletedAsWritten = false;
<mrdocs/Metadata/Symbol/Function.hpp>
bool IsExplicitObjectMemberFunction = false;
<mrdocs/Metadata/Symbol/Function.hpp>
bool IsExplicitlyDefaulted = false;
<mrdocs/Metadata/Symbol/Function.hpp>
bool IsFinal = false;
<mrdocs/Metadata/Symbol/Function.hpp>
bool IsNoReturn = false;
<mrdocs/Metadata/Symbol/Function.hpp>
bool IsNodiscard = false;
<mrdocs/Metadata/Symbol/Function.hpp>
bool IsPure = false;
<mrdocs/Metadata/Symbol/Function.hpp>
bool IsRecordMethod = false;
<mrdocs/Metadata/Symbol/Function.hpp>
bool IsVariadic = false;
<mrdocs/Metadata/Symbol/Function.hpp>
bool IsVirtual = false;
<mrdocs/Metadata/Symbol/Function.hpp>
bool IsVirtualAsWritten = false;
<mrdocs/Metadata/Symbol/Function.hpp>
bool IsVolatile = false;
<mrdocs/Metadata/Symbol/Function.hpp>
OperatorKind OverloadedOperator = OperatorKind::None;
List of parameters.
<mrdocs/Metadata/Symbol/Function.hpp>
std::vector<Param> Params;
<mrdocs/Metadata/Symbol/Function.hpp>
ReferenceKind RefQualifier = ReferenceKind::None;
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.
<mrdocs/Metadata/Symbol/Function.hpp>
StorageClassKind StorageClass = StorageClassKind::None;
When present, this function is a template or specialization.
<mrdocs/Metadata/Type/FunctionType.hpp>
struct FunctionType final
: TypeCommonBase<TypeKind::Function>
| Name | Description |
|---|---|
TypeCommonBase<TypeKind::Function> |
| Name | Description |
|---|---|
operator<=> | Three-way comparison operators |
| Name |
|---|
isArray |
isAuto |
isDecltype |
isFunction |
isLValueReference |
isMemberPointer |
isNamed |
isPointer |
isRValueReference |
| Name |
|---|
ExceptionSpec |
IsVariadic |
ParamTypes |
RefQualifier |
ReturnType |
| 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. |
Three-way comparison operators
<mrdocs/Metadata/Type/FunctionType.hpp>Three-way comparison operator
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...
Three-way comparison operator
<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;
<mrdocs/Metadata/Type/FunctionType.hpp>
bool IsVariadic = false;
<mrdocs/Metadata/Type/FunctionType.hpp>
std::vector<Polymorphic<Type>> ParamTypes;
<mrdocs/Metadata/Type/FunctionType.hpp>
ReferenceKind RefQualifier = ReferenceKind::None;
<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. |
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 dynamic list of Generator elements.
<mrdocs/Generators.hpp>
class Generators;
| Name |
|---|
const_iterator |
const_reference |
difference_type |
iterator |
reference |
size_type |
value_type |
| Name | Description |
|---|---|
~Generators [destructor] [virtual] | Destructor. |
begin [virtual] | Return an iterator to the beginning. |
end [virtual] | Return an iterator to the end. |
find [virtual] | Return a pointer to the matching generator. |
| Name | Description |
|---|---|
Generators [constructor] | Default constructor |
| Name | Description |
|---|---|
getGenerators | Return a reference to the global Generators instance. |
<mrdocs/Generators.hpp>
using difference_type = std::ptrdiff_t;
<mrdocs/Generators.hpp>
using size_type = std::size_t;
Destructor.
<mrdocs/Generators.hpp>
virtual
~Generators() noexcept;
Return an iterator to the beginning.
Return an iterator to the end.
Return a pointer to the matching generator.
<mrdocs/Generators.hpp>
virtual
Generator const*
find(std::string_view name) const noexcept = 0;
nullptr.
| Name | Description |
|---|---|
| name | The name of the generator. The name must be an exact match, including case. |
Default constructor
<mrdocs/Generators.hpp>
constexpr
Generators() noexcept = default;
A glob pattern matcher
<mrdocs/Support/Glob.hpp>
class GlobPattern;
| 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 | Constructs a GlobPattern with the given pattern. |
"*" matches all characters except delimiters.
"**" matches all characters
"?" matches any single character.
"[<chars>]" matches one character in the bracket.
"[<char>-<char>]" matches one character in the bracket range.
"[^<chars>]" or "[!<chars>]" matches one character not in the bracket.
"{<glob>,...}" matches one of the globs in the list.
"\" escapes the next character so it is treated as a literal.
Nested brace expansions "{<glob>,"{<glob>,...}",...}" are not supported.
Constructors
<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;
Constructs a GlobPattern with the given pattern.
<mrdocs/Support/Glob.hpp>
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 | 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. |
<mrdocs/Support/Glob.hpp>
static
Expected<GlobPattern>
create(std::string_view pattern);
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 from SymbolID |
operator<=> | Three-way comparison operators |
| 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 |
|---|---|
merge | Merges two Symbol objects. |
Construct from SymbolID
| Name | Description |
|---|---|
| ID | The object to construct from |
Three-way comparison operators
<mrdocs/Metadata/Symbol/Guide.hpp>Three-way comparison operator
std::strong_ordering
operator<=>(GuideSymbol const& other) const;
» more...
Three-way comparison operator
auto
operator<=>(SymbolCommonBase<mrdocs::SymbolKind::Guide> const& rhs) const = default;
» more...
Three-way comparison operator
<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;
| Name |
|---|
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 |
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.
https://handlebarsjs.com/
<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 |
|---|---|
| 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 |
|---|---|
| templateText | The handlebars template text |
| context | The data to render |
| options | The options to use |
| out | Reference to output stream used by handlebars |
Render a handlebars template
<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 |
|---|---|
| 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 |
|---|---|
| templateText | The handlebars template text |
| context | The data to render |
| options | The options to use |
| out | Reference to output stream used by handlebars |
Unregister a helper
<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
| Name | Description |
|---|---|
std::runtime_error |
| Name | Description |
|---|---|
HandlebarsError [constructor] | Constructors |
operator= | |
what [virtual] |
| Name |
|---|
column |
line |
pos |
An error returned or thrown by Handlebars environment when an error occurs during template rendering.
The error message will be the same as the error message returned by Handlebars.js.
The object will also contain the line, column and position of the error in the template. These can be used to by the caller to provide more detailed error messages.
Constructors
<mrdocs/Support/Handlebars.hpp>Construct from string_view
HandlebarsError(std::string_view msg);
» more...
HandlebarsError(
std::string_view msg,
std::size_t line_,
std::size_t column_,
std::size_t pos_);
» more...
Construct from string_view
<mrdocs/Support/Handlebars.hpp>
HandlebarsError(std::string_view msg);
| Name | Description |
|---|---|
| msg | The object to construct from |
<mrdocs/Support/Handlebars.hpp>
HandlebarsError(
std::string_view msg,
std::size_t line_,
std::size_t column_,
std::size_t pos_);
<stdexcept>
runtime_error&
operator=(runtime_error const& value) noexcept;
<stdexcept>
virtual
char const*
what() const noexcept override;
<mrdocs/Support/Handlebars.hpp>
std::size_t column = static_cast<std::size_t>(-1);
<mrdocs/Support/Handlebars.hpp>
std::size_t line = static_cast<std::size_t>(-1);
<mrdocs/Support/Handlebars.hpp>
std::size_t pos = static_cast<std::size_t>(-1);
Options for handlebars
<mrdocs/Support/Handlebars.hpp>
struct HandlebarsOptions;
| 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 |
This struct is analogous to the Handlebars.compile options.
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
| Name | Description |
|---|---|
Name | Represents a name for a named Type |
| Name | Description |
|---|---|
IdentifierName [constructor] | Default constructor |
asName | |
operator== | Equality operator |
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. |
This class is used to represent an identifier that could be in the corpus or not.
When the symbol is in the corpus, the id field will be set to the symbol ID of the symbol.
When the symbol is not in the corpus, the id field will be set to SymbolID::invalid.
Default constructor
<mrdocs/Metadata/Name/IdentifierName.hpp>
constexpr
IdentifierName() noexcept;
Three-way comparison operators
<mrdocs/Metadata/Name/NameBase.hpp>Three-way comparison operator
auto
operator<=>(IdentifierName const& other) const;
» more...
Three-way comparison operator
std::strong_ordering
operator<=>(Name const& other) const;
» more...
Three-way comparison operator
<mrdocs/Metadata/Name/IdentifierName.hpp>
auto
operator<=>(IdentifierName const& other) const;
| Name | Description |
|---|---|
| other | The right operand |
Three-way comparison operator
<mrdocs/Metadata/Name/NameBase.hpp>
std::strong_ordering
operator<=>(Name const& other) const;
| Name | Description |
|---|---|
| other | The right operand |
<mrdocs/Metadata/Type/LValueReferenceType.hpp>
struct LValueReferenceType final
: TypeCommonBase<TypeKind::LValueReference>
| Name | Description |
|---|---|
TypeCommonBase<TypeKind::LValueReference> |
| Name | Description |
|---|---|
operator<=> | Three-way comparison operators |
| Name |
|---|
isArray |
isAuto |
isDecltype |
isFunction |
isLValueReference |
isMemberPointer |
isNamed |
isPointer |
isRValueReference |
| Name |
|---|
PointeeType |
| 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. |
Three-way comparison operators
<mrdocs/Metadata/Type/LValueReferenceType.hpp>Three-way comparison operator
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...
Three-way comparison operator
<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;
<mrdocs/Metadata/Type/LValueReferenceType.hpp>
Polymorphic<Type> PointeeType = Polymorphic<Type>(AutoType{});
<mrdocs/Metadata/Symbol/Location.hpp>
struct Location;
| Name | Description |
|---|---|
Location [constructor] | |
operator<=> | Three-way comparison operator |
| 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 |
<mrdocs/Metadata/Symbol/Location.hpp>
constexpr
Location(
std::string_view const full_path = {},
std::string_view const short_path = {},
std::string_view const source_path = {},
unsigned int const line = 0,
unsigned int const col = 0,
bool const documented = false);
Three-way comparison operator
<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;
<mrdocs/Metadata/Type/MemberPointerType.hpp>
struct MemberPointerType final
: TypeCommonBase<TypeKind::MemberPointer>
| Name | Description |
|---|---|
TypeCommonBase<TypeKind::MemberPointer> |
| Name | Description |
|---|---|
operator<=> | Three-way comparison operators |
| Name |
|---|
isArray |
isAuto |
isDecltype |
isFunction |
isLValueReference |
isMemberPointer |
isNamed |
isPointer |
isRValueReference |
| Name |
|---|
ParentType |
PointeeType |
| 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. |
Three-way comparison operators
<mrdocs/Metadata/Type/MemberPointerType.hpp>Three-way comparison operator
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...
Three-way comparison operator
<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;
<mrdocs/Metadata/Type/MemberPointerType.hpp>
Polymorphic<Type> ParentType = Polymorphic<Type>(AutoType{});
<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;
| Name | Description |
|---|---|
~Name [destructor] [virtual] | Destructor |
asName | |
operator== | Equality operator |
operator<=> | Three-way comparison operator |
| 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 |
|---|---|
IdentifierName
| Represents an identifier |
SpecializationName
| Represents a (possibly qualified) symbol name with template arguments. |
When the Type is a named type, this class represents the name of the type.
It also includes the symbol ID of the named type, so that it can be referenced in the documentation.
This allows the Type to store either a Name or a SpecializationName, which contains the arguments for a template specialization without requiring the application to extract an unnecessary symbol.
Destructor
<mrdocs/Metadata/Name/NameBase.hpp>
constexpr
virtual
~Name() = default;
<mrdocs/Metadata/Name/NameBase.hpp>
constexpr
Name const&
asName() const noexcept;
» more...
constexpr
Name&
asName() noexcept;
» more...
<mrdocs/Metadata/Name/NameBase.hpp>
constexpr
Name const&
asName() const noexcept;
Equality operator
true if the objects are equal, false otherwise
| Name | Description |
|---|---|
| other | The right operand |
Three-way comparison operator
<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>Default constructor
constexpr
Name() noexcept;
» more...
Construct from NameKind
constexpr
explicit
Name(NameKind const kind) noexcept;
» more...
Default constructor
<mrdocs/Metadata/Name/NameBase.hpp>
constexpr
Name() noexcept;
Construct from NameKind
<mrdocs/Metadata/Name/NameBase.hpp>
constexpr
explicit
Name(NameKind const kind) noexcept;
| Name | Description |
|---|---|
| kind | The object to construct from |
<mrdocs/Metadata/Type/NamedType.hpp>
struct NamedType final
: TypeCommonBase<TypeKind::Named>
| Name | Description |
|---|---|
TypeCommonBase<TypeKind::Named> |
| Name | Description |
|---|---|
operator<=> | Three-way comparison operators |
| Name |
|---|
isArray |
isAuto |
isDecltype |
isFunction |
isLValueReference |
isMemberPointer |
isNamed |
isPointer |
isRValueReference |
| Name |
|---|
FundamentalType |
Name |
| 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. |
Three-way comparison operators
<mrdocs/Metadata/Type/NamedType.hpp>Three-way comparison operator
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...
Three-way comparison operator
<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;
<mrdocs/Metadata/Type/NamedType.hpp>
Optional<FundamentalTypeKind> FundamentalType;
<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] | Construct from SymbolID |
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 |
|---|---|
merge | Merges two Symbol objects. |
Construct from SymbolID
<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.
<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] | Construct from SymbolID |
operator<=> | Three-way comparison operators |
| Name |
|---|
isConcept |
isEnum |
isEnumConstant |
isFunction |
isGuide |
isNamespace |
isNamespaceAlias |
isOverloads |
isRecord |
isTypedef |
isUsing |
isVariable |
| Name | Description |
|---|---|
IsAnonymous | |
IsInline | |
Members | The members of this namespace. |
UsingDirectives | Namespaces nominated by using-directives. |
| Name |
|---|
kind_id |
| Name | Description |
|---|---|
merge | Merges two Symbol objects. |
Construct from SymbolID
<mrdocs/Metadata/Symbol/Namespace.hpp>
explicit
NamespaceSymbol(SymbolID const& ID) noexcept;
| Name | Description |
|---|---|
| ID | The object to copy construct from |
Three-way comparison operators
<mrdocs/Metadata/Symbol/Namespace.hpp>Three-way comparison operator
std::strong_ordering
operator<=>(NamespaceSymbol const& rhs) const;
» more...
Three-way comparison operator
auto
operator<=>(SymbolCommonBase<mrdocs::SymbolKind::Namespace> const& rhs) const = default;
» more...
Three-way comparison operator
<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;
<mrdocs/Metadata/Symbol/Namespace.hpp>
bool IsAnonymous = false;
<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;
The members of a Namespace
<mrdocs/Metadata/Symbol/Namespace.hpp>
struct NamespaceTranche;
| Name | Description |
|---|---|
operator<=> | Three-way comparison operator |
| Name |
|---|
Concepts |
Enums |
Functions |
Guides |
NamespaceAliases |
Namespaces |
Records |
Typedefs |
Usings |
Variables |
Three-way comparison operator
<mrdocs/Metadata/Symbol/Namespace.hpp>
constexpr
auto
operator<=>(NamespaceTranche const& rhs) const = default;
| Name | Description |
|---|---|
| rhs | The right operand |
<mrdocs/Metadata/Symbol/Namespace.hpp>
std::vector<SymbolID> Concepts;
<mrdocs/Metadata/Symbol/Namespace.hpp>
std::vector<SymbolID> Enums;
<mrdocs/Metadata/Symbol/Namespace.hpp>
std::vector<SymbolID> Functions;
<mrdocs/Metadata/Symbol/Namespace.hpp>
std::vector<SymbolID> Guides;
<mrdocs/Metadata/Symbol/Namespace.hpp>
std::vector<SymbolID> NamespaceAliases;
<mrdocs/Metadata/Symbol/Namespace.hpp>
std::vector<SymbolID> Namespaces;
<mrdocs/Metadata/Symbol/Namespace.hpp>
std::vector<SymbolID> Records;
<mrdocs/Metadata/Symbol/Namespace.hpp>
std::vector<SymbolID> Typedefs;
<mrdocs/Metadata/Symbol/Namespace.hpp>
std::vector<SymbolID> Usings;
<mrdocs/Metadata/Symbol/Namespace.hpp>
std::vector<SymbolID> Variables;
<mrdocs/Metadata/Specifiers/NoexceptInfo.hpp>
struct NoexceptInfo;
| Name | Description |
|---|---|
operator<=> | Three-way comparison operator |
| 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. |
Three-way comparison operator
<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;
| Name |
|---|
value_type |
| 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 |
innerType | Return the inner type. |
innerType | Return the inner type. |
operator!= | Compares an Optional to a value for inequality. Returns true if the Optional is disengaged or its value does not equal rhs. |
operator!= | Compares two Optional values for inequality. Returns true if their engagement states differ or their contained values are not equal. |
operator< | Checks if the left Optional is less than the right Optional. Returns true if the right is engaged and either the left is disengaged or its value is less. |
operator< | Checks if the Optional is less than a value. Returns true if the Optional is disengaged or its value is less than rhs. |
operator<= | Checks if the left Optional is less than or equal to the right Optional. Returns true if the left is disengaged or the right is engaged and the left's value is less or equal. |
operator<= | Checks if the Optional is less than or equal to a value. Returns true if the Optional is disengaged or its value is less than or equal to rhs. |
operator<=> | Performs a three-way comparison between an Optional and a value. If the Optional is engaged, compares its value to v; otherwise, returns less. |
operator<=> | Performs a three-way comparison between two Optional values. If both are engaged, compares their contained values; otherwise, compares engagement state. |
operator<=> | Performs a three-way comparison between an Optional and std::nullopt. Returns std::strong_ordering::greater if engaged, std::strong_ordering::equal if disengaged. |
operator<=> | Three-way comparison operator |
operator<=> | Three-way comparison operator |
operator== | Compares two Optional values for equality. Returns true if both are engaged and their contained values are equal, or both are disengaged. |
operator== | Checks if the Optional is disengaged (equal to std::nullopt). Returns true if the Optional does not contain a value. |
operator== | Equality operator |
operator== | Equality operator |
operator== | Compares an engaged Optional to a value for equality. Returns true if the Optional is engaged and its value equals rhs. |
operator> | Checks if the left Optional is greater than the right Optional. Returns true if the left is engaged and either the right is disengaged or its value is greater. |
operator> | Checks if the Optional is greater than a value. Returns true if the Optional is engaged and its value is greater than rhs. |
operator>= | Checks if the left Optional is greater than or equal to the right Optional. Returns true if the right is disengaged or the left is engaged and its value is greater or equal. |
operator>= | Checks if the Optional is greater than or equal to a value. Returns true if the Optional is engaged and its value is greater than or equal to rhs. |
dom::stringOrNull | Return a non-empty string, or a null. |
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.
<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...
Copy constructor
template<typename U>
requires (!std::is_same_v<T, U>) && std::is_constructible_v<T, U const&>
&& ConstructFromContainedValue<U>
constexpr
explicit(!std::is_convertible_v<const U &, T>)
Optional(Optional<U> const& t) noexcept(std::is_nothrow_constructible_v<T, const U &>);
» more...
Move constructor
constexpr
Optional(Optional&& other) = default;
» more...
Move constructor
template<typename U>
requires (!std::is_same_v<T, U>)
&& std::is_constructible_v<T, U> && ConstructFromContainedValue<U>
constexpr
explicit(!std::is_convertible_v<U, T>)
Optional(Optional<U>&& t) noexcept(std::is_nothrow_constructible_v<T, U>);
» more...
Construct from std::nullopt
constexpr
Optional(std::nullopt_t value) noexcept(default_ctor_noex_());
» more...
Construct from optional
template<typename U>
requires std::is_constructible_v<T, U const&> &&
ConstructFromContainedValue<U>
constexpr
explicit(!std::is_convertible_v<const U &, T>)
Optional(std::optional<U> const& t) noexcept(std::is_nothrow_constructible_v<T, const U &>);
» 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 optional
template<typename U>
requires std::is_constructible_v<T, U> &&
ConstructFromContainedValue<U>
constexpr
explicit(!std::is_convertible_v<U, T>)
Optional(std::optional<U>&& t) noexcept(std::is_nothrow_constructible_v<T, U>);
» more...
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...
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 |
|---|---|
| u | The value to store. It must be convertible to T. |
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 |
Copy constructor
<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 | The object to copy construct from |
Move constructor
| Name | Description |
|---|---|
| other | The object to move construct from |
Move constructor
<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 | The object to move construct from |
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 optional
<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 | The object to copy construct from |
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 optional
<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 | The object to move construct from |
<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...>);
<mrdocs/ADT/Optional.hpp>
template<
typename U,
typename... Args>
requires std::is_constructible_v<T, std::initializer_list<U>&, Args...>
constexpr
explicit
Optional(
std::in_place_t,
std::initializer_list<U> il,
Args...&&... args) noexcept(std::is_nothrow_constructible_v<T, std::initializer_list<U> &, Args...>);
Assignment operators
<mrdocs/ADT/Optional.hpp>Copy assignment
constexpr
Optional&
operator=(Optional const& other) = default;
» more...
Copy assignment operator
template<typename U>
requires (!std::is_same_v<T, U>)
&& std::is_constructible_v<T, const U&>
&& std::is_assignable_v<T&, const U&>
&& (!detail::ConvertsFromOptional<T, U>::value)
&& (!detail::AssignsFromOptional<T, U>::value)
constexpr
Optional&
operator=(Optional<U> const& u) noexcept(std::is_nothrow_constructible_v<T, const U &> && std::is_nothrow_assignable_v<T &, const U &>);
» more...
Move assignment
constexpr
Optional&
operator=(Optional&& other) = default;
» more...
Move assignment operator
template<typename U>
requires (!std::is_same_v<T, U>)
&& std::is_constructible_v<T, U>
&& std::is_assignable_v<T&, U>
&& (!detail::ConvertsFromOptional<T, U>::value)
&& (!detail::AssignsFromOptional<T, U>::value)
constexpr
Optional&
operator=(Optional<U>&& u) noexcept(std::is_nothrow_constructible_v<T, U> && std::is_nothrow_assignable_v<T &, U>);
» more...
Assignment operator
constexpr
Optional&
operator=(std::nullptr_t value) noexcept(reset_noex_());
» 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...
| Name | Description |
|---|---|
| u | The value to store. It must be convertible to T. |
Copy assignment
<mrdocs/ADT/Optional.hpp>
constexpr
Optional&
operator=(Optional const& other) = default;
| Name | Description |
|---|---|
| other | The object to copy assign from |
Copy assignment operator
<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 | The object to copy assign from |
Move assignment
<mrdocs/ADT/Optional.hpp>
constexpr
Optional&
operator=(Optional&& other) = default;
| Name | Description |
|---|---|
| other | The object to move assign from |
Move assignment operator
<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 | The object to move assign from |
Assignment operator
<mrdocs/ADT/Optional.hpp>
constexpr
Optional&
operator=(std::nullptr_t value) noexcept(reset_noex_());
| Name | Description |
|---|---|
| value | The object to assign from |
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. |
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.
| Name |
|---|
value_type |
| Name | Description |
|---|---|
Optional [constructor] | Constructors |
operator= | Assignment operators |
emplace | |
has_value | |
operator* | Dereference operators |
operator-> | Member access operators |
reset | |
swap | |
value | |
operator bool | Conversion to bool |
| Name |
|---|
is_inlined |
<mrdocs/ADT/Optional.hpp>
using value_type = T;
Constructors
<mrdocs/ADT/Optional.hpp>Default constructor
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 from nullopt_t
constexpr
Optional(std::nullopt_t value) noexcept;
» more...
Construct from Optional
template<class U>
requires ok_bind_v<U&>
constexpr
explicit(!std::is_convertible_v<U &, T &>)
Optional(Optional<U>& rhs) noexcept(std::is_nothrow_constructible_v<T &, U &>);
» more...
Construct from optional
template<class U>
requires ok_bind_v<U&>
constexpr
Optional(std::optional<U>& o) noexcept(std::is_nothrow_constructible_v<T &, U &>);
» more...
Construct from Optional
template<class U>
requires ok_bind_v<U const&>
constexpr
explicit(!std::is_convertible_v<const U &, T &>)
Optional(Optional<U> const& rhs) noexcept(std::is_nothrow_constructible_v<T &, const U &>);
» more...
Construct from optional
template<class U>
requires ok_bind_v<U const&>
constexpr
Optional(std::optional<U> const& o) noexcept(std::is_nothrow_constructible_v<T &, const U &>);
» more...
Construct from U
template<class U>
requires (
!std::is_same_v<std::remove_cvref_t<U>, Optional> &&
!std::is_same_v<std::remove_cvref_t<U>, std::in_place_t> &&
ok_bind_v<U>)
constexpr
explicit(!std::is_convertible_v<U, T &>)
Optional(U&& u) noexcept(std::is_nothrow_constructible_v<T &, U>);
» more...
Default constructor
<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 from nullopt_t
<mrdocs/ADT/Optional.hpp>
constexpr
Optional(std::nullopt_t value) noexcept;
| Name | Description |
|---|---|
| value | The object to construct from |
Construct from Optional
<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 | The object to copy construct from |
Construct from optional
<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 | The object to copy construct from |
Construct from Optional
<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 | The object to copy construct from |
Construct from optional
<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 | The object to copy construct from |
Construct from U
<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 | The object to move construct from |
Assignment operators
<mrdocs/ADT/Optional.hpp>Copy assignment operator
constexpr
Optional&
operator=(Optional const& other) noexcept = default;
» more...
Move assignment operator
constexpr
Optional&
operator=(Optional&& other) noexcept = default;
» more...
Assignment operator
constexpr
Optional&
operator=(std::nullopt_t value) noexcept;
» more...
Assignment operator
template<class U>
requires ok_bind_v<U&>
constexpr
Optional&
operator=(Optional<U>& rhs) noexcept(std::is_nothrow_constructible_v<T &, U &>);
» more...
Assignment operator
template<class U>
requires ok_bind_v<U const&>
constexpr
Optional&
operator=(Optional<U> const& rhs) noexcept(std::is_nothrow_constructible_v<T &, const U &>);
» more...
Assignment operator
template<class U>
requires ok_bind_v<U>
constexpr
Optional&
operator=(U&& u) noexcept(std::is_nothrow_constructible_v<T &, U>);
» more...
Assignment operator
template<class U>
requires ok_bind_v<U>
constexpr
Optional&
operator=(Optional<U>&& rhs) noexcept(std::is_nothrow_constructible_v<T &, U>);
» more...
Copy assignment operator
<mrdocs/ADT/Optional.hpp>
constexpr
Optional&
operator=(Optional const& other) noexcept = default;
| Name | Description |
|---|---|
| other | The object to copy assign from |
Move assignment operator
<mrdocs/ADT/Optional.hpp>
constexpr
Optional&
operator=(Optional&& other) noexcept = default;
| Name | Description |
|---|---|
| other | The object to move assign from |
Assignment operator
<mrdocs/ADT/Optional.hpp>
constexpr
Optional&
operator=(std::nullopt_t value) noexcept;
| Name | Description |
|---|---|
| value | The object to assign from |
Assignment operator
<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 | The object to copy assign from |
Assignment operator
<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 | The object to copy assign from |
Assignment operator
<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 | The object to move assign from |
Assignment operator
<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 | The object to move assign from |
<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>);
<mrdocs/ADT/Optional.hpp>
constexpr
bool
has_value() const noexcept;
Dereference operators
<mrdocs/ADT/Optional.hpp>
constexpr
value_type&
operator*() noexcept;
» more...
constexpr
value_type const&
operator*() const noexcept;
» more...
<mrdocs/ADT/Optional.hpp>
constexpr
value_type const&
operator*() const noexcept;
Member access operators
<mrdocs/ADT/Optional.hpp>
constexpr
value_type*
operator->() noexcept;
» more...
constexpr
value_type const*
operator->() const noexcept;
» more...
<mrdocs/ADT/Optional.hpp>
constexpr
value_type const*
operator->() const noexcept;
<mrdocs/ADT/Optional.hpp>
constexpr
void
reset() noexcept;
<mrdocs/ADT/Optional.hpp>
constexpr
value_type&
value() & noexcept;
» more...
constexpr
value_type const&
value() const & noexcept;
» more...
constexpr
value_type&
value() && noexcept;
» more...
constexpr
value_type const&
value() const && noexcept;
» more...
<mrdocs/ADT/Optional.hpp>
constexpr
value_type const&
value() const & noexcept;
<mrdocs/ADT/Optional.hpp>
constexpr
value_type const&
value() const && noexcept;
Conversion to bool
<mrdocs/ADT/Optional.hpp>
constexpr
explicit
operator bool() const noexcept;
bool
<mrdocs/ADT/Optional.hpp>
constexpr
static
bool
is_inlined() noexcept;
Reference to output stream used by handlebars
<mrdocs/Support/Handlebars.hpp>
class OutputRef;
| Name | Description |
|---|---|
OutputRef [constructor] | Constructors |
getIndent | |
setIndent |
| 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 |
This class is used to internally pass an output stream to the handlebars environment.
It allows many types to be used as output streams, including std::string, std::ostream, llvm::raw_string_ostream, and others.
Constructors
<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 |
<mrdocs/Support/Handlebars.hpp>
std::size_t
getIndent() const noexcept;
<mrdocs/Support/Handlebars.hpp>
void
setIndent(std::size_t indent);
Combines multiple callable types into a single overloaded function object.
<mrdocs/ADT/Overload.hpp>
template<class... Ts>
struct Overload
: Ts...
| 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. |
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 | 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 |
|---|---|
merge | Merges two Symbol objects. |
Constructors
<mrdocs/Metadata/Symbol/Overloads.hpp>Construct from SymbolID
explicit
OverloadsSymbol(SymbolID const& ID) noexcept;
» more...
explicit
OverloadsSymbol(
SymbolID const& Parent,
std::string_view Name,
AccessKind Access,
bool isStatic) noexcept;
» more...
Construct from SymbolID
<mrdocs/Metadata/Symbol/Overloads.hpp>
explicit
OverloadsSymbol(SymbolID const& ID) noexcept;
| Name | Description |
|---|---|
| ID | The object to copy construct from |
<mrdocs/Metadata/Symbol/Overloads.hpp>
explicit
OverloadsSymbol(
SymbolID const& Parent,
std::string_view Name,
AccessKind Access,
bool isStatic) noexcept;
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<=> | Three-way comparison operator |
| Name | Description |
|---|---|
Default | The default argument for this parameter, if any |
Name | The parameter name. |
Type | The type of this parameter |
Constructors
<mrdocs/Metadata/Symbol/Param.hpp>Default constructor
constexpr
Param() = default;
» more...
Param(
Polymorphic<Type>&& type,
std::string&& name,
std::string&& def_arg);
» more...
Default constructor
<mrdocs/Metadata/Symbol/Param.hpp>
constexpr
Param() = default;
<mrdocs/Metadata/Symbol/Param.hpp>
Param(
Polymorphic<Type>&& type,
std::string&& name,
std::string&& def_arg);
Three-way comparison operator
<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;
| Name | Description |
|---|---|
operator bool | Conversion to bool |
| Name |
|---|
ec |
ptr |
| Name | Description |
|---|---|
operator== |
Equality operator |
| Name | Description |
|---|---|
parse | Parse a string view |
This class holds the result of a parse operation. The structure is similar to std::from_chars_result, where we have a ptr member that points to the first character not parsed, and a ec member that holds the error code.
If parsing was successful, then ec stores a default constructed Error object, which indicates success. The operator bool can also be used to check for success.
The typical format of a parsing function is:
ParseResult
parseType(
char const* first,
char const* last,
Type& value);
where more parameters can be defined as needed for parsing options.
Conversion to bool
<mrdocs/Support/Parse.hpp>
constexpr
explicit
operator bool() const noexcept;
bool
<mrdocs/Support/Parse.hpp>
char const* ptr;
A glob pattern matcher for paths
<mrdocs/Support/Glob.hpp>
class PathGlobPattern;
| 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. |
A glob pattern matcher where "*" does not match path separators. The pattern "**" can be used to match any number of path separators.
Construct an empty PathGlobPattern.
<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. |
<mrdocs/Metadata/Type/PointerType.hpp>
struct PointerType final
: TypeCommonBase<TypeKind::Pointer>
| Name | Description |
|---|---|
TypeCommonBase<TypeKind::Pointer> |
| Name | Description |
|---|---|
operator<=> | Three-way comparison operators |
| Name |
|---|
isArray |
isAuto |
isDecltype |
isFunction |
isLValueReference |
isMemberPointer |
isNamed |
isPointer |
isRValueReference |
| Name |
|---|
PointeeType |
| 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. |
Three-way comparison operators
<mrdocs/Metadata/Type/PointerType.hpp>Three-way comparison operator
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...
Three-way comparison operator
<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;
<mrdocs/Metadata/Type/PointerType.hpp>
Polymorphic<Type> PointeeType = Polymorphic<Type>(AutoType{});
A polymorphic value-type.
<mrdocs/ADT/Polymorphic.hpp>
template<class T>
class Polymorphic;
| Name |
|---|
const_pointer |
pointer |
value_type |
| Name | Description |
|---|---|
Polymorphic [constructor] | Constructors |
~Polymorphic [destructor] | Destructor |
operator= | Assignment operators |
operator* | Dereference operators |
operator-> | Member access operators |
valueless_after_move |
| 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 |
innerType | Return the inner type. |
innerType | Return the inner type. |
innermostType | Return the innermost type. |
innermostType | Return the innermost type. |
operator<=> | Three-way comparison operator |
operator<=> | Three-way comparison operator |
operator<=> | Three-way comparison operator |
operator<=> | Three-way comparison operator |
operator<=> | Three-way comparison operator |
operator== | Equality operator |
operator== | Equality operator |
operator== | Equality operator |
operator== | Equality operator |
doc::isEmpty | Determine if the inline is empty |
doc::isEmpty | Determine if the inline is empty |
doc::ltrim | Removes leading whitespace from the inline element. |
doc::ltrim | Removes leading whitespace from the block. |
doc::operator<=> | Three-way comparison operator |
doc::operator<=> | Three-way comparison operator |
doc::operator== | Equality operator |
doc::operator== | Equality operator |
doc::rtrim | Removes trailing whitespace from the block. |
doc::rtrim | Removes trailing whitespace from the inline element. |
doc::trim | Removes leading and trailing whitespace from the block. |
doc::trim | Removes leading and trailing whitespace from the inline element. |
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.
<mrdocs/ADT/Polymorphic.hpp>
using const_pointer = T const*;
<mrdocs/ADT/Polymorphic.hpp>
using pointer = T*;
<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 |
|---|---|
| ts | Arguments to forward to U's constructor. |
Copy constructor
| Name | Description |
|---|---|
| V | The object to copy construct from |
Move constructor
| Name | Description |
|---|---|
| V | The object to move construct from |
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 operator
constexpr
Polymorphic&
operator=(Polymorphic const& V);
» more...
Move assignment operator
constexpr
Polymorphic&
operator=(Polymorphic&& V) noexcept;
» more...
Copy assignment operator
<mrdocs/ADT/Polymorphic.hpp>
constexpr
Polymorphic&
operator=(Polymorphic const& V);
| Name | Description |
|---|---|
| V | The object to copy assign from |
Move assignment operator
<mrdocs/ADT/Polymorphic.hpp>
constexpr
Polymorphic&
operator=(Polymorphic&& V) noexcept;
| Name | Description |
|---|---|
| V | The object to move assign from |
Dereference operators
<mrdocs/ADT/Polymorphic.hpp>
[[nodiscard]]
constexpr
T&
operator*() noexcept;
» more...
[[nodiscard]]
constexpr
T const&
operator*() const noexcept;
» more...
<mrdocs/ADT/Polymorphic.hpp>
[[nodiscard]]
constexpr
T&
operator*() noexcept;
<mrdocs/ADT/Polymorphic.hpp>
[[nodiscard]]
constexpr
T const&
operator*() const noexcept;
Member access operators
<mrdocs/ADT/Polymorphic.hpp>
[[nodiscard]]
constexpr
pointer
operator->() noexcept;
» more...
[[nodiscard]]
constexpr
const_pointer
operator->() const noexcept;
» more...
<mrdocs/ADT/Polymorphic.hpp>
[[nodiscard]]
constexpr
pointer
operator->() noexcept;
<mrdocs/ADT/Polymorphic.hpp>
[[nodiscard]]
constexpr
const_pointer
operator->() const noexcept;
<mrdocs/ADT/Polymorphic.hpp>
constexpr
bool
valueless_after_move() const noexcept;
<mrdocs/Metadata/Type/RValueReferenceType.hpp>
struct RValueReferenceType final
: TypeCommonBase<TypeKind::RValueReference>
| Name | Description |
|---|---|
TypeCommonBase<TypeKind::RValueReference> |
| Name | Description |
|---|---|
operator<=> | Three-way comparison operators |
| Name |
|---|
isArray |
isAuto |
isDecltype |
isFunction |
isLValueReference |
isMemberPointer |
isNamed |
isPointer |
isRValueReference |
| Name |
|---|
PointeeType |
| 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. |
Three-way comparison operators
<mrdocs/Metadata/Type/RValueReferenceType.hpp>Three-way comparison operator
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...
Three-way comparison operator
<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;
<mrdocs/Metadata/Type/RValueReferenceType.hpp>
Polymorphic<Type> PointeeType = Polymorphic<Type>(AutoType{});
Range to help range-for loops identify first and last.
<mrdocs/Support/RangeFor.hpp>
template<class Container>
class RangeFor;
| Name |
|---|
iterator |
value_type |
const_pointer |
const_reference |
difference_type |
pointer |
reference |
size_type |
| Name | Description |
|---|---|
RangeFor [constructor] | Construct from Container |
begin | |
end |
<mrdocs/Support/RangeFor.hpp>
using difference_type = std::ptrdiff_t;
<mrdocs/Support/RangeFor.hpp>
using size_type = std::size_t;
<mrdocs/Support/RangeFor.hpp>
class iterator;
| Name |
|---|
iterator_category |
pointer |
reference |
size_type |
value_type |
| Name | Description |
|---|---|
iterator [constructor] | Constructors |
operator= | Copy assignment operator |
operator* | |
operator++ | Increment operators |
operator-> | |
operator== | Equality operator |
operator!= | Inequality operator |
| Name | Description |
|---|---|
value_type |
|
RangeFor |
Range to help range-for loops identify first and last. |
<mrdocs/Support/RangeFor.hpp>
using iterator_category = std::iterator_traits<Container::iterator>::iterator_category;
<mrdocs/Support/RangeFor.hpp>
using pointer = void;
<mrdocs/Support/RangeFor.hpp>
using size_type = std::size_t;
<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 operator
<mrdocs/Support/RangeFor.hpp>
iterator&
operator=(iterator const& other) = default;
| Name | Description |
|---|---|
| other | The object to copy assign from |
Increment operators
<mrdocs/Support/RangeFor.hpp>Increment operator
iterator&
operator++() noexcept;
» more...
Increment operator
iterator
operator++(int) noexcept;
» more...
Increment operator
Increment operator
Equality operator
<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 operator
<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 |
<mrdocs/Support/RangeFor.hpp>
struct value_type;
| Name | Description |
|---|---|
operator-> | Member access operator |
| Name |
|---|
first |
last |
value |
Member access operator
<mrdocs/Support/RangeFor.hpp>
bool const first;
<mrdocs/Support/RangeFor.hpp>
bool const last;
<mrdocs/Support/RangeFor.hpp>
Container::value_type const& value;
Construct from Container
<mrdocs/Support/RangeFor.hpp>
explicit
RangeFor(Container const& C) noexcept;
| Name | Description |
|---|---|
| C | The object to copy construct from |
The aggregated interface for a given struct, class, or union.
<mrdocs/Metadata/Symbol/RecordInterface.hpp>
class RecordInterface;
| Name | Description |
|---|---|
Private | The aggregated private interfaces. |
Protected | The aggregated protected interfaces. |
Public | The aggregated public interfaces. |
This class represents the public, protected, and private interfaces of a record. It is used to generate the "interface" value of the DOM for symbols that represent records or namespaces.
The interface is not part of the Corpus. It is a temporary structure generated to aggregate the symbols of a record. This structure is provided to the user via the DOM.
While the members of a Namespace are directly represented with a Tranche, the members of a Record are represented with an Interface.
The aggregated private interfaces.
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] | Construct from SymbolID |
operator<=> | Three-way comparison operators |
| 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 | |
IsFinalDestructor | |
IsTypeDef | |
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 |
|---|---|
merge | Merges two Symbol objects. |
Construct from SymbolID
<mrdocs/Metadata/Symbol/Record.hpp>
explicit
RecordSymbol(SymbolID const& ID) noexcept;
| Name | Description |
|---|---|
| ID | The object to copy construct from |
Three-way comparison operators
<mrdocs/Metadata/Symbol/Record.hpp>Three-way comparison operator
std::strong_ordering
operator<=>(RecordSymbol const& other) const;
» more...
Three-way comparison operator
auto
operator<=>(SymbolCommonBase<mrdocs::SymbolKind::Record> const& rhs) const = default;
» more...
Three-way comparison operator
<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.
<mrdocs/Metadata/Symbol/Record.hpp>
bool IsFinal = false;
<mrdocs/Metadata/Symbol/Record.hpp>
bool IsFinalDestructor = false;
<mrdocs/Metadata/Symbol/Record.hpp>
bool IsTypeDef = false;
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;
| Name |
|---|
Concepts |
Enums |
Functions |
Guides |
NamespaceAliases |
Records |
StaticFunctions |
StaticVariables |
Typedefs |
Usings |
Variables |
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.
<mrdocs/Metadata/Symbol/RecordTranche.hpp>
std::vector<SymbolID> Concepts;
<mrdocs/Metadata/Symbol/RecordTranche.hpp>
std::vector<SymbolID> Enums;
<mrdocs/Metadata/Symbol/RecordTranche.hpp>
std::vector<SymbolID> Functions;
<mrdocs/Metadata/Symbol/RecordTranche.hpp>
std::vector<SymbolID> Guides;
<mrdocs/Metadata/Symbol/RecordTranche.hpp>
std::vector<SymbolID> NamespaceAliases;
<mrdocs/Metadata/Symbol/RecordTranche.hpp>
std::vector<SymbolID> Records;
<mrdocs/Metadata/Symbol/RecordTranche.hpp>
std::vector<SymbolID> StaticFunctions;
<mrdocs/Metadata/Symbol/RecordTranche.hpp>
std::vector<SymbolID> StaticVariables;
<mrdocs/Metadata/Symbol/RecordTranche.hpp>
std::vector<SymbolID> Typedefs;
<mrdocs/Metadata/Symbol/RecordTranche.hpp>
std::vector<SymbolID> Usings;
<mrdocs/Metadata/Symbol/RecordTranche.hpp>
std::vector<SymbolID> Variables;
Reference directories used to resolve paths
<mrdocs/Config/ReferenceDirectories.hpp>
struct ReferenceDirectories;
| Name |
|---|
cwd |
mrdocsRoot |
These are the main reference directories used to resolve paths in the application.
All other reference directories come directly from the configuration file.
<mrdocs/Config/ReferenceDirectories.hpp>
std::string cwd;
<mrdocs/Config/ReferenceDirectories.hpp>
std::string mrdocsRoot;
<mrdocs/Support/ScopeExit.hpp>
template<class F>
class ScopeExit;
| Name | Description |
|---|---|
ScopeExit [constructor] | Construct from F |
~ScopeExit [destructor] | Destructor |
dismiss |
Construct from F
<mrdocs/Support/ScopeExit.hpp>
explicit
ScopeExit(F onExitScope);
| Name | Description |
|---|---|
| onExitScope | The object to construct from |
Destructor
<mrdocs/Support/ScopeExit.hpp>
~ScopeExit();
<mrdocs/Support/ScopeExit.hpp>
void
dismiss();
<mrdocs/Support/ScopeExit.hpp>
template<class T>
class ScopeExitRestore;
| Name | Description |
|---|---|
ScopeExitRestore [constructor] | Constructors |
~ScopeExitRestore [destructor] | Destructor |
dismiss |
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...
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 object to copy construct from |
Destructor
<mrdocs/Support/ScopeExit.hpp>
~ScopeExitRestore();
<mrdocs/Support/ScopeExit.hpp>
void
dismiss();
Stores source information for a declaration.
<mrdocs/Metadata/Symbol/Source.hpp>
struct SourceInfo;
| Name | Description |
|---|---|
SourceInfo [constructor] | Default constructor |
~SourceInfo [destructor] [virtual] | Destructor |
operator<=> | Three-way comparison operator |
| Name | Description |
|---|---|
DefLoc | Location where the entity was defined |
Loc | Locations where the entity was declared. |
Default constructor
<mrdocs/Metadata/Symbol/Source.hpp>
constexpr
SourceInfo() = default;
Destructor
<mrdocs/Metadata/Symbol/Source.hpp>
constexpr
virtual
~SourceInfo() = default;
Three-way comparison operator
<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] | Construct from source_location |
column | |
file_name | |
function_name | |
line |
Construct from source_location
<mrdocs/Support/Error.hpp>
SourceLocation(std::source_location const& loc) noexcept;
| Name | Description |
|---|---|
| loc | The object to copy construct from |
<mrdocs/Support/Error.hpp>
uint_least32_t
column() const noexcept;
<mrdocs/Support/Error.hpp>
std::string_view
file_name() const noexcept;
<mrdocs/Support/Error.hpp>
std::string_view
function_name() const noexcept;
<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] | Default constructor |
asName | |
operator== | Equality operator |
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. |
Default constructor
<mrdocs/Metadata/Name/SpecializationName.hpp>
constexpr
SpecializationName() noexcept;
Three-way comparison operators
<mrdocs/Metadata/Name/NameBase.hpp>Three-way comparison operator
auto
operator<=>(SpecializationName const& other) const;
» more...
Three-way comparison operator
std::strong_ordering
operator<=>(Name const& other) const;
» more...
Three-way comparison operator
<mrdocs/Metadata/Name/SpecializationName.hpp>
auto
operator<=>(SpecializationName const& other) const;
| Name | Description |
|---|---|
| other | The right operand |
Three-way comparison operator
<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;
<mrdocs/Support/SplitLines.hpp>
struct SplitLinesAdaptor;
| Name | Description |
|---|---|
operator() | Function call operators |
| Name | Description |
|---|---|
operator| |
Function call operators
<mrdocs/Support/SplitLines.hpp>
constexpr
auto
operator()(std::string_view sv) const;
» more...
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...
<mrdocs/Support/SplitLines.hpp>
constexpr
auto
operator()(std::string_view sv) const;
<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;
<mrdocs/Support/SplitLines.hpp>
struct SplitLinesView
: std::ranges::view_interface<SplitLinesView>
| Name | Description |
|---|---|
std::ranges::view_interface<SplitLinesView> |
| Name |
|---|
Iterator |
| Name | Description |
|---|---|
SplitLinesView [constructor] | Constructors |
back | |
begin | |
data | |
empty | |
end | |
front | |
operator[] | Subscript operators |
size | |
operator bool | Conversion operators |
| Name |
|---|
sv_ |
<mrdocs/Support/SplitLines.hpp>
struct Iterator;
| Name |
|---|
difference_type |
value_type |
| Name | Description |
|---|---|
Iterator [constructor] | Constructors |
findBreak | |
operator* | |
operator++ | Increment operators |
| Name |
|---|
atEnd |
cur |
nextBreak |
sv |
| Name | Description |
|---|---|
operator== |
Equality operator |
<mrdocs/Support/SplitLines.hpp>
using difference_type = std::ptrdiff_t;
<mrdocs/Support/SplitLines.hpp>
using value_type = std::string_view;
Constructors
<mrdocs/Support/SplitLines.hpp>Default constructor
constexpr
Iterator() = default;
» more...
constexpr
explicit
Iterator(
std::string_view s,
bool begin);
» more...
Default constructor
<mrdocs/Support/SplitLines.hpp>
constexpr
Iterator() = default;
<mrdocs/Support/SplitLines.hpp>
constexpr
explicit
Iterator(
std::string_view s,
bool begin);
<mrdocs/Support/SplitLines.hpp>
constexpr
std::size_t
findBreak(std::size_t from) const noexcept;
<mrdocs/Support/SplitLines.hpp>
constexpr
value_type
operator*() const noexcept;
Increment operators
<mrdocs/Support/SplitLines.hpp>Increment operator
constexpr
Iterator&
operator++() noexcept;
» more...
constexpr
void
operator++(int);
» more...
Increment operator
<mrdocs/Support/SplitLines.hpp>
constexpr
void
operator++(int);
<mrdocs/Support/SplitLines.hpp>
bool atEnd = false;
<mrdocs/Support/SplitLines.hpp>
std::size_t cur = 0;
<mrdocs/Support/SplitLines.hpp>
std::size_t nextBreak = 0;
<mrdocs/Support/SplitLines.hpp>
std::string_view sv = {};
Constructors
<mrdocs/Support/SplitLines.hpp>Default constructor
constexpr
SplitLinesView() = default;
» more...
Construct from string_view
constexpr
explicit
SplitLinesView(std::string_view sv);
» more...
Default constructor
<mrdocs/Support/SplitLines.hpp>
constexpr
SplitLinesView() = default;
Construct from string_view
<mrdocs/Support/SplitLines.hpp>
constexpr
explicit
SplitLinesView(std::string_view sv);
| Name | Description |
|---|---|
| sv | The object to construct from |
<__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>;
<__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>;
<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
<mrdocs/Support/SplitLines.hpp>
std::string_view sv_;
<mrdocs/ADT/UnorderedStringMap.hpp>
struct StringHash;
| Name |
|---|
hash_type |
is_transparent |
| Name | Description |
|---|---|
operator() | Function call operators |
<mrdocs/ADT/UnorderedStringMap.hpp>
using hash_type = std::hash<std::string_view>;
<mrdocs/ADT/UnorderedStringMap.hpp>
using is_transparent = void;
Function call operators
<mrdocs/ADT/UnorderedStringMap.hpp>
std::size_t
operator()(std::string_view str) const;
» more...
std::size_t
operator()(std::string const& str) const;
» more...
std::size_t
operator()(char const* str) const;
» more...
<mrdocs/ADT/UnorderedStringMap.hpp>
std::size_t
operator()(std::string_view str) const;
<mrdocs/ADT/UnorderedStringMap.hpp>
std::size_t
operator()(std::string const& str) const;
<mrdocs/ADT/UnorderedStringMap.hpp>
std::size_t
operator()(char const* str) const;
Base class with common properties of all symbols
<mrdocs/Metadata/Symbol/SymbolBase.hpp>
struct Symbol;
| Name | Description |
|---|---|
~Symbol [destructor] [virtual] | Destructor |
asInfo | |
operator<=> | Three-way comparison operator |
| Name | Description |
|---|---|
Access | Declaration access. |
Extraction | Determine why a symbol is extracted. |
Kind | Kind of declaration. |
Loc | The source location information. |
Name | The unqualified name. |
Parent | The parent symbol, if any. |
doc | The extracted documentation for this declaration. |
id | The unique identifier for this symbol. |
| Name | Description |
|---|---|
Symbol [constructor] | Constructors |
| Name | Description |
|---|---|
merge | Merges two Symbol objects. |
| Name | Description |
|---|---|
SymbolCommonBase
| Base class for providing variant discriminator functions. |
Destructor
<mrdocs/Metadata/Symbol/SymbolBase.hpp>
constexpr
virtual
~Symbol() = default;
<mrdocs/Metadata/Symbol/SymbolBase.hpp>
constexpr
Symbol const&
asInfo() const noexcept;
» more...
constexpr
Symbol&
asInfo() noexcept;
» more...
<mrdocs/Metadata/Symbol/SymbolBase.hpp>
constexpr
Symbol const&
asInfo() const noexcept;
Three-way comparison operator
<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.
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
constexpr
Symbol() = default;
» more...
Copy constructor
constexpr
Symbol(Symbol const& Other) = default;
» more...
Move constructor.
constexpr
Symbol(Symbol&& Other) = default;
» more...
Construct an 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
<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 an 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
| Name | Description |
|---|---|
Symbol | Base class with common properties of all symbols |
| Name | Description |
|---|---|
asInfo | |
operator<=> | Three-way comparison operators |
| Name | Description |
|---|---|
Access | Declaration access. |
Extraction | Determine why a symbol is extracted. |
Kind | Kind of declaration. |
Loc | The source location information. |
Name | The unqualified name. |
Parent | The parent symbol, if any. |
doc | The extracted documentation for this declaration. |
id | The unique identifier for this symbol. |
| Name | Description |
|---|---|
kind_id | The variant discriminator constant of the most-derived class. |
| Name | Description |
|---|---|
SymbolCommonBase [constructor] | Constructors |
| Name | Description |
|---|---|
merge | Merges two Symbol objects. |
| Name | Description |
|---|---|
ConceptSymbol
| Info for concepts. |
EnumConstantSymbol
| Info for enum constants. |
EnumSymbol
| |
FunctionSymbol
| |
GuideSymbol
| Info for deduction guides. |
NamespaceAliasSymbol
| Info for namespace aliases. |
NamespaceSymbol
| Describes a namespace. |
OverloadsSymbol
| Represents a set of function overloads. |
RecordSymbol
| Metadata for struct, class, or union. |
TypedefSymbol
| |
UsingSymbol
| Info for using declarations. |
VariableSymbol
| A variable. |
This offers functions that return a boolean at compile-time, indicating if the most-derived class is a certain type.
Three-way comparison operators
<mrdocs/Metadata/Symbol/SymbolBase.hpp>Three-way comparison operator
auto
operator<=>(SymbolCommonBase const& rhs) const = default;
» more...
Three-way comparison operator
auto
operator<=>(Symbol const& rhs) const = default;
» more...
Three-way comparison operator
<mrdocs/Metadata/Symbol/SymbolBase.hpp>
auto
operator<=>(SymbolCommonBase const& rhs) const = default;
| Name | Description |
|---|---|
| rhs | The right operand |
Three-way comparison operator
<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 from SymbolID
constexpr
explicit
SymbolCommonBase(SymbolID const& ID);
» more...
Default constructor
<mrdocs/Metadata/Symbol/SymbolBase.hpp>
SymbolCommonBase() = default;
Construct from SymbolID
<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;
| 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. |
A glob pattern matcher where "*" does not match "::". The pattern "**" can be used to match any number of "::".
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;
| Name |
|---|
value_type |
| Name | Description |
|---|---|
SymbolID [constructor] | Construct a SymbolID from a null-terminated string. |
begin | Return an iterator to the first byte of the SymbolID. |
data | Return the raw data for this SymbolID. |
end | Return an iterator to one past the last byte of the SymbolID. |
size | Return the size of the SymbolID. |
operator std::string_view | Return a string view of the SymbolID. |
operator bool | Return true if this is a valid SymbolID. |
operator== | Compare two SymbolIDs for equality. |
operator<=> | Compare two SymbolIDs with strong ordering. |
| Name | Description |
|---|---|
createFromString | Construct a SymbolID by hashing a string |
| Name | Description |
|---|---|
global | Symbol ID of the global namespace. |
invalid |
| Name | Description |
|---|---|
getParents | Return a list of the parent symbols of the specified Symbol. |
toBase16Str | Convert a SymbolID to a string |
This is calculated as the SHA1 digest of the USR. A USRs is a string that provides an unambiguous reference to a symbol.
<mrdocs/Metadata/Symbol/SymbolID.hpp>
using value_type = uint8_t;
Construct a SymbolID from a null-terminated string.
<mrdocs/Metadata/Symbol/SymbolID.hpp>Default constructor
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. |
Default constructor
<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. |
Symbol ID of 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";
<mrdocs/Metadata/Symbol/SymbolID.hpp>
inline constexpr static
SymbolID invalid = SymbolID();
<mrdocs/Metadata/TArg/TArgBase.hpp>
struct TArg;
| Name | Description |
|---|---|
~TArg [destructor] [virtual] | Destructor |
asTArg | |
operator<=> | Three-way comparison operator |
| 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 |
|---|---|
TArgCommonBase
|
Destructor
<mrdocs/Metadata/TArg/TArgBase.hpp>
constexpr
virtual
~TArg() = default;
<mrdocs/Metadata/TArg/TArgBase.hpp>
constexpr
TArg const&
asTArg() const noexcept;
» more...
constexpr
TArg&
asTArg() noexcept;
» more...
<mrdocs/Metadata/TArg/TArgBase.hpp>
constexpr
TArg const&
asTArg() const noexcept;
Three-way comparison operator
<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>Default constructor
constexpr
TArg() noexcept = default;
» more...
Construct from TArgKind
constexpr
TArg(TArgKind kind) noexcept;
» more...
Default constructor
<mrdocs/Metadata/TArg/TArgBase.hpp>
constexpr
TArg() noexcept = default;
Construct from TArgKind
| Name | Description |
|---|---|
| kind | The object to construct from |
<mrdocs/Metadata/TArg/TArgBase.hpp>
template<TArgKind K>
struct TArgCommonBase
: TArg
| Name | Description |
|---|---|
TArg |
| Name | Description |
|---|---|
asTArg | |
operator<=> | Three-way comparison operator |
| Name |
|---|
isConstant |
isTemplate |
isType |
| Name | Description |
|---|---|
IsPackExpansion | Whether this template argument is a parameter expansion. |
Kind | The kind of template argument this is. |
| Name |
|---|
kind_id |
| Name | Description |
|---|---|
TArgCommonBase [constructor] | Default constructor |
| Name | Description |
|---|---|
ConstantTArg
| |
TemplateTArg
| |
TypeTArg
|
<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;
<mrdocs/Metadata/TArg/TArgBase.hpp>
inline constexpr static
TArgKind kind_id = K;
Default constructor
<mrdocs/Metadata/TArg/TArgBase.hpp>
constexpr
TArgCommonBase() noexcept;
<mrdocs/Metadata/TParam/TParamBase.hpp>
struct TParam;
| Name | Description |
|---|---|
~TParam [destructor] [virtual] | Destructor |
asTParam | |
operator<=> | Three-way comparison operator |
| 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
|
Destructor
<mrdocs/Metadata/TParam/TParamBase.hpp>
constexpr
virtual
~TParam() = default;
<mrdocs/Metadata/TParam/TParamBase.hpp>
constexpr
TParam const&
asTParam() const noexcept;
» more...
constexpr
TParam&
asTParam() noexcept;
» more...
<mrdocs/Metadata/TParam/TParamBase.hpp>
constexpr
TParam const&
asTParam() const noexcept;
Three-way comparison operator
<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>Default constructor
constexpr
TParam() noexcept = default;
» more...
Construct from TParamKind
constexpr
TParam(TParamKind kind) noexcept;
» more...
Default constructor
<mrdocs/Metadata/TParam/TParamBase.hpp>
constexpr
TParam() noexcept = default;
Construct from TParamKind
<mrdocs/Metadata/TParam/TParamBase.hpp>
constexpr
TParam(TParamKind kind) noexcept;
| Name | Description |
|---|---|
| kind | The object to construct from |
<mrdocs/Metadata/TParam/TParamBase.hpp>
template<TParamKind K>
struct TParamCommonBase
: TParam
| Name | Description |
|---|---|
TParam |
| Name | Description |
|---|---|
asTParam | |
operator<=> | Three-way comparison operators |
| Name |
|---|
isConstant |
isTemplate |
isType |
| 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 |
|---|
kind_id |
| Name | Description |
|---|---|
TParamCommonBase [constructor] | Default constructor |
| Name | Description |
|---|---|
ConstantTParam
| A constant template parameter |
TemplateTParam
| |
TypeTParam
|
Three-way comparison operators
<mrdocs/Metadata/TParam/TParamBase.hpp>Three-way comparison operator
auto
operator<=>(TParamCommonBase const& rhs) const = default;
» more...
Three-way comparison operator
std::strong_ordering
operator<=>(TParam const& rhs) const;
» more...
Three-way comparison operator
<mrdocs/Metadata/TParam/TParamBase.hpp>
auto
operator<=>(TParamCommonBase const& rhs) const = default;
| Name | Description |
|---|---|
| rhs | The right operand |
Three-way comparison operator
<mrdocs/Metadata/TParam/TParamBase.hpp>
std::strong_ordering
operator<=>(TParam const& rhs) const;
| 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;
<mrdocs/Metadata/TParam/TParamBase.hpp>
inline constexpr static
TParamKind kind_id = K;
Default constructor
<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 | |
operator<=> | Three-way comparison operator |
| Name | Description |
|---|---|
Args | |
Params | |
Primary | Primary template ID for partial and explicit specializations. |
Requires | The requires-clause for the template parameter list, if any. |
<mrdocs/Metadata/Template.hpp>
TemplateSpecKind
specializationKind() const noexcept;
Three-way comparison operator
<mrdocs/Metadata/Template.hpp>
std::strong_ordering
operator<=>(TemplateInfo const& other) const;
| Name | Description |
|---|---|
| other | The right operand |
<mrdocs/Metadata/Template.hpp>
std::vector<Polymorphic<TArg>> Args;
<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.
<mrdocs/Metadata/TArg/TemplateTArg.hpp>
struct TemplateTArg final
: TArgCommonBase<TArgKind::Template>
| Name | Description |
|---|---|
TArgCommonBase<TArgKind::Template> |
| Name | Description |
|---|---|
operator<=> | Three-way comparison operator |
| Name |
|---|
isConstant |
isTemplate |
isType |
| Name | Description |
|---|---|
Name | Name of the referenced template. |
Template | SymbolID of the referenced template. |
| Name |
|---|
kind_id |
Three-way comparison operator
<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.
<mrdocs/Metadata/TParam/TemplateTParam.hpp>
struct TemplateTParam final
: TParamCommonBase<TParamKind::Template>
| Name | Description |
|---|---|
TParamCommonBase<TParamKind::Template> |
| Name | Description |
|---|---|
operator<=> | Three-way comparison operators |
| Name |
|---|
isConstant |
isTemplate |
isType |
| Name | Description |
|---|---|
Params | Template parameters for the template-template parameter |
| Name |
|---|
kind_id |
Three-way comparison operators
<mrdocs/Metadata/TParam/TemplateTParam.hpp>Three-way comparison operator
std::strong_ordering
operator<=>(TemplateTParam const& other) const;
» more...
Three-way comparison operator
auto
operator<=>(TParamCommonBase<mrdocs::TParamKind::Template> const& rhs) const = default;
» more...
Three-way comparison operator
<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 |
|---|
arg_ty |
arg_ty<T&> |
arg_t |
| 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. |
<mrdocs/Support/ThreadPool.hpp>
template<class T>
using arg_t = arg_ty<T>::type;
<mrdocs/Support/ThreadPool.hpp>
template<class T>
struct arg_ty;
| Name |
|---|
type |
<mrdocs/Support/ThreadPool.hpp>
using type = T;
| Name |
|---|
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;
| Name | Description |
|---|---|
asType | |
namedSymbol | Return the symbol named by this type. |
operator<=> | Three-way comparison operator |
| 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 from TypeKind |
~Type [destructor] [virtual] | Destructor |
| Name | Description |
|---|---|
innerType | Return the inner type. |
innerType | Return the inner type. |
innerTypePtr | Return the inner type. |
innerTypePtr | Return the inner type. |
| Name | Description |
|---|---|
TypeCommonBase
|
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.
<mrdocs/Metadata/Type/TypeBase.hpp>
constexpr
Type const&
asType() const noexcept;
» more...
constexpr
Type&
asType() noexcept;
» more...
<mrdocs/Metadata/Type/TypeBase.hpp>
constexpr
Type const&
asType() const noexcept;
Return the symbol named by this type.
Three-way comparison operator
<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 from TypeKind
| Name | Description |
|---|---|
| kind | The object to construct from |
Destructor
<mrdocs/Metadata/Type/TypeBase.hpp>
constexpr
virtual
~Type() = default;
<mrdocs/Metadata/Type/TypeBase.hpp>
template<TypeKind K>
struct TypeCommonBase
: Type
| Name | Description |
|---|---|
Type | A possibly qualified type. |
| Name | Description |
|---|---|
asType | |
namedSymbol | Return the symbol named by this type. |
operator<=> | Three-way comparison operators |
| Name |
|---|
isArray |
isAuto |
isDecltype |
isFunction |
isLValueReference |
isMemberPointer |
isNamed |
isPointer |
isRValueReference |
| 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 |
|---|
kind_id |
| Name | Description |
|---|---|
TypeCommonBase [constructor] | Default constructor |
| Name | Description |
|---|---|
innerType | Return the inner type. |
innerType | Return the inner type. |
innerTypePtr | Return the inner type. |
innerTypePtr | Return the inner type. |
| Name | Description |
|---|---|
ArrayType
| |
AutoType
| |
DecltypeType
| |
FunctionType
| |
LValueReferenceType
| |
MemberPointerType
| |
NamedType
| |
PointerType
| |
RValueReferenceType
|
Three-way comparison operators
<mrdocs/Metadata/Type/TypeBase.hpp>Three-way comparison operator
auto
operator<=>(TypeCommonBase const& rhs) const = default;
» more...
Three-way comparison operator
constexpr
auto
operator<=>(Type const& rhs) const = default;
» more...
Three-way comparison operator
<mrdocs/Metadata/Type/TypeBase.hpp>
auto
operator<=>(TypeCommonBase const& rhs) const = default;
| Name | Description |
|---|---|
| rhs | The right operand |
Three-way comparison operator
<mrdocs/Metadata/Type/TypeBase.hpp>
constexpr
auto
operator<=>(Type 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;
<mrdocs/Metadata/Type/TypeBase.hpp>
inline constexpr static
TypeKind kind_id = K;
Default constructor
<mrdocs/Metadata/Type/TypeBase.hpp>
constexpr
TypeCommonBase() noexcept;
<mrdocs/Metadata/TArg/TypeTArg.hpp>
struct TypeTArg final
: TArgCommonBase<TArgKind::Type>
| Name | Description |
|---|---|
TArgCommonBase<TArgKind::Type> |
| Name | Description |
|---|---|
operator<=> | Three-way comparison operator |
| Name |
|---|
isConstant |
isTemplate |
isType |
| Name | Description |
|---|---|
Type | Template argument type. |
| Name |
|---|
kind_id |
Three-way comparison operator
<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{});
<mrdocs/Metadata/TParam/TypeTParam.hpp>
struct TypeTParam final
: TParamCommonBase<TParamKind::Type>
| Name | Description |
|---|---|
TParamCommonBase<TParamKind::Type> |
| Name | Description |
|---|---|
operator<=> | Three-way comparison operators |
| 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 |
Three-way comparison operators
<mrdocs/Metadata/TParam/TypeTParam.hpp>Three-way comparison operator
std::strong_ordering
operator<=>(TypeTParam const& rhs) const;
» more...
Three-way comparison operator
auto
operator<=>(TParamCommonBase<mrdocs::TParamKind::Type> const& rhs) const = default;
» more...
Three-way comparison operator
<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;
<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] | Construct from SymbolID |
operator<=> | Three-way comparison operators |
| 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 | |
Type |
| Name |
|---|
kind_id |
| Name | Description |
|---|---|
merge | Merges two Symbol objects. |
Construct from SymbolID
<mrdocs/Metadata/Symbol/Typedef.hpp>
explicit
TypedefSymbol(SymbolID ID) noexcept;
| Name | Description |
|---|---|
| ID | The object to construct from |
Three-way comparison operators
<mrdocs/Metadata/Symbol/Typedef.hpp>Three-way comparison operator
std::strong_ordering
operator<=>(TypedefSymbol const& other) const;
» more...
Three-way comparison operator
auto
operator<=>(SymbolCommonBase<mrdocs::SymbolKind::Typedef> const& rhs) const = default;
» more...
Three-way comparison operator
<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;
<mrdocs/Metadata/Symbol/Typedef.hpp>
Polymorphic<Type> Type = Polymorphic<struct Type>(NamedType{});
<mrdocs/Support/Expected.hpp>
template<class E>
class Unexpected;
| Name | Description |
|---|---|
Unexpected [constructor] | Constructors |
operator= | Assignment operators |
error | |
swap |
| 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 Er
template<class Er = E>
requires (!std::is_same_v<std::remove_cvref_t<Er>, Unexpected>) &&
(!std::is_same_v<std::remove_cvref_t<Er>, std::in_place_t>) &&
std::is_constructible_v<E, Er>
constexpr
explicit
Unexpected(Er&& e) noexcept(std::is_nothrow_constructible_v<E, Er>);
» more...
template<class... Args>
requires std::is_constructible_v<E, Args...>
constexpr
explicit
Unexpected(
std::in_place_t,
Args...&&... args) noexcept(std::is_nothrow_constructible_v<E, Args...>);
» more...
template<
class U,
class... Args>
requires std::is_constructible_v<E, std::initializer_list<U>&, Args...>
constexpr
explicit
Unexpected(
std::in_place_t,
std::initializer_list<U> il,
Args...&&... args) noexcept(std::is_nothrow_constructible_v<E, std::initializer_list<U> &, Args...>);
» more...
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 Er
<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 | The object to move construct from |
<mrdocs/Support/Expected.hpp>
template<class... Args>
requires std::is_constructible_v<E, Args...>
constexpr
explicit
Unexpected(
std::in_place_t,
Args...&&... args) noexcept(std::is_nothrow_constructible_v<E, Args...>);
<mrdocs/Support/Expected.hpp>
template<
class U,
class... Args>
requires std::is_constructible_v<E, std::initializer_list<U>&, Args...>
constexpr
explicit
Unexpected(
std::in_place_t,
std::initializer_list<U> il,
Args...&&... args) noexcept(std::is_nothrow_constructible_v<E, std::initializer_list<U> &, Args...>);
Assignment operators
<mrdocs/Support/Expected.hpp>Copy assignment operator
constexpr
Unexpected&
operator=(Unexpected const& other) = default;
» more...
Move assignment operator
constexpr
Unexpected&
operator=(Unexpected&& other) = default;
» more...
Copy assignment operator
<mrdocs/Support/Expected.hpp>
constexpr
Unexpected&
operator=(Unexpected const& other) = default;
| Name | Description |
|---|---|
| other | The object to copy assign from |
Move assignment operator
<mrdocs/Support/Expected.hpp>
constexpr
Unexpected&
operator=(Unexpected&& other) = default;
| Name | Description |
|---|---|
| other | The object to move assign from |
<mrdocs/Support/Expected.hpp>
[[nodiscard]]
constexpr
E const&
error() const & noexcept;
» more...
[[nodiscard]]
constexpr
E&
error() & noexcept;
» more...
[[nodiscard]]
constexpr
E const&&
error() const && noexcept;
» more...
[[nodiscard]]
constexpr
E&&
error() && noexcept;
» more...
<mrdocs/Support/Expected.hpp>
[[nodiscard]]
constexpr
E const&
error() const & noexcept;
<mrdocs/Support/Expected.hpp>
[[nodiscard]]
constexpr
E&
error() & noexcept;
<mrdocs/Support/Expected.hpp>
[[nodiscard]]
constexpr
E const&&
error() const && noexcept;
<mrdocs/Support/Expected.hpp>
[[nodiscard]]
constexpr
E&&
error() && noexcept;
<mrdocs/Support/Expected.hpp>
constexpr
void
swap(Unexpected& other) noexcept(std::is_nothrow_swappable_v<E>)
requires std::is_swappable_v<E>;
Info for using declarations.
<mrdocs/Metadata/Symbol/Using.hpp>
struct UsingSymbol final
: SymbolCommonBase<SymbolKind::Using>
| Name | Description |
|---|---|
SymbolCommonBase<SymbolKind::Using> | Base class for providing variant discriminator functions. |
| Name | Description |
|---|---|
UsingSymbol [constructor] | Construct from SymbolID |
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 |
|---|---|
merge | Merges two Symbol objects. |
For instance, the following code:
using A::f; // where f is a function in namespace A
would be represented by a UsingSymbol object.
Using-declarations can be used to introduce namespace members into other namespaces and block scopes, or to introduce base class members into derived class definitions, or to introduce enumerators into namespaces, block, and class scopes.
Construct from SymbolID
| 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>
| Name | Description |
|---|---|
SymbolCommonBase<SymbolKind::Variable> | Base class for providing variant discriminator functions. |
| Name | Description |
|---|---|
VariableSymbol [constructor] | Construct from SymbolID |
operator<=> | Three-way comparison operators |
| Name |
|---|
isConcept |
isEnum |
isEnumConstant |
isFunction |
isGuide |
isNamespace |
isNamespaceAlias |
isOverloads |
isRecord |
isTypedef |
isUsing |
isVariable |
| Name | Description |
|---|---|
Attributes | |
BitfieldWidth | The width of the bitfield |
HasNoUniqueAddress | |
Initializer | The default member initializer, if any. |
IsBitfield | Whether the field is a bitfield |
IsConstexpr | |
IsConstinit | |
IsDeprecated | |
IsInline | |
IsMaybeUnused | |
IsMutable | Whether the field is declared mutable |
IsRecordField | |
IsThreadLocal | |
IsVariant | Whether the field is a variant member |
StorageClass | |
Template | The template information, if any. |
Type | The type of the variable |
| Name |
|---|
kind_id |
| Name | Description |
|---|---|
merge | Merges two Symbol objects. |
This includes variables at namespace or record scope.
Construct from SymbolID
<mrdocs/Metadata/Symbol/Variable.hpp>
explicit
VariableSymbol(SymbolID const& ID) noexcept;
| Name | Description |
|---|---|
| ID | The object to copy construct from |
Three-way comparison operators
<mrdocs/Metadata/Symbol/Variable.hpp>Three-way comparison operator
std::strong_ordering
operator<=>(VariableSymbol const& other) const;
» more...
Three-way comparison operator
auto
operator<=>(SymbolCommonBase<mrdocs::SymbolKind::Variable> const& rhs) const = default;
» more...
Three-way comparison operator
<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;
<mrdocs/Metadata/Symbol/Variable.hpp>
std::vector<std::string> Attributes;
The width of the bitfield
<mrdocs/Metadata/Symbol/Variable.hpp>
ConstantExprInfo<uint64_t> BitfieldWidth;
<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;
<mrdocs/Metadata/Symbol/Variable.hpp>
bool IsConstexpr = false;
<mrdocs/Metadata/Symbol/Variable.hpp>
bool IsConstinit = false;
<mrdocs/Metadata/Symbol/Variable.hpp>
bool IsDeprecated = false;
<mrdocs/Metadata/Symbol/Variable.hpp>
bool IsInline = false;
<mrdocs/Metadata/Symbol/Variable.hpp>
bool IsMaybeUnused = false;
Whether the field is declared mutable
<mrdocs/Metadata/Symbol/Variable.hpp>
bool IsMutable = false;
<mrdocs/Metadata/Symbol/Variable.hpp>
bool IsRecordField = false;
<mrdocs/Metadata/Symbol/Variable.hpp>
bool IsThreadLocal = false;
Whether the field is a variant member
<mrdocs/Metadata/Symbol/Variable.hpp>
bool IsVariant = false;
<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;
| Name | Description |
|---|---|
Visitor [constructor] | Constructor |
visit | Visit a derived type |
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 |
|---|---|
| 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;
| 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. |
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 |
|---|---|
| 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 right operand |
Rvalue overload of operator().
<mrdocs/ADT/Overload.hpp>
template<class... Args>
constexpr
decltype(auto)
operator()(Args...&&... args) &&;
| Name | Description |
|---|---|
| args | The right operand |
Const rvalue overload of operator().
<mrdocs/ADT/Overload.hpp>
template<class... Args>
constexpr
decltype(auto)
operator()(Args...&&... args) const &&;
| Name | Description |
|---|---|
| args | The right operand |
<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
|
<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>> |
<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>> |
<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
|
<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>> |
| Name | Description |
|---|---|
add_cvref_from
|
<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> |
<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;
<mrdocs/Support/any_callable.hpp>
template<
class R,
class... Args>
class any_callable<R(Args...)>;
| Name | Description |
|---|---|
any_callable [constructor] [deleted] | Constructors |
operator() |
Constructors
<mrdocs/Support/any_callable.hpp>Default constructor
any_callable() = delete;
» more...
Construct from Callable
template<class Callable>
requires std::is_invocable_r_v<R, Callable, Args...>
any_callable(Callable&& f);
» more...
Default constructor
<mrdocs/Support/any_callable.hpp>
any_callable() = delete;
Construct from Callable
<mrdocs/Support/any_callable.hpp>
template<class Callable>
requires std::is_invocable_r_v<R, Callable, Args...>
any_callable(Callable&& f);
| Name | Description |
|---|---|
| f | The object to move construct from |
<mrdocs/Support/any_callable.hpp>
R
operator()(Args...&&... args) const;
<mrdocs/Support/TypeTraits.hpp>
template<
typename T,
typename U>
struct make_dependent;
| Name |
|---|
type |
<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>;
| Name |
|---|
is_null |
make_null |
null |
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.”
<mrdocs/Metadata/Symbol/Location.hpp>
constexpr
static
bool
is_null(Location const& v) noexcept;
<mrdocs/Metadata/Symbol/Location.hpp>
constexpr
static
void
make_null(Location& v) noexcept;
<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>;
| Name |
|---|
is_null |
make_null |
null |
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().
<mrdocs/ADT/Nullable.hpp>
constexpr
static
bool
is_null(T const& v) noexcept(noexcept(v.empty()));
<mrdocs/ADT/Nullable.hpp>
constexpr
static
void
make_null(T& v) noexcept(noexcept(v.clear()));
<mrdocs/ADT/Nullable.hpp>
constexpr
static
T
null() noexcept(std::is_nothrow_default_constructible_v<T>);
nullable_traits for Polymorphic<T>.
<mrdocs/ADT/Polymorphic.hpp>
template<class T>
struct nullable_traits<Polymorphic<T>>;
| Name |
|---|
is_null |
make_null |
null |
Only this friend specialization can create/reset the null state.
<mrdocs/ADT/Polymorphic.hpp>
constexpr
static
bool
is_null(Polymorphic<T> const& v) noexcept;
<mrdocs/ADT/Polymorphic.hpp>
constexpr
static
void
make_null(Polymorphic<T>& v) noexcept;
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 |
|---|
is_sentinel |
sentinel |
<mrdocs/ADT/Nullable.hpp>
constexpr
static
bool
is_sentinel(std::nullptr_t) noexcept;
<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>;
| Name |
|---|
is_sentinel |
sentinel |
Uses the maximum representable value (~0u) as the sentinel, which corresponds to -1 when converted.
sentinel_traits specialization for floating-point types.
Uses a quiet NaN as the sentinel value. This assumes that T supports NaN and that it is distinguishable from all ordinary values.
sentinel_traits specialization for enums with a well-known "null" enumerator.
If the enum defines Unknown, UNKNOWN, None, or NONE, this trait uses that enumerator as the sentinel. This requires that such an enumerator exists and is accessible from the scope of T.
<mrdocs/ADT/Nullable.hpp>
constexpr
static
bool
is_sentinel(T v) noexcept;
<mrdocs/ADT/Nullable.hpp>
constexpr
static
T
sentinel() noexcept;
sentinel_traits specialization for raw pointers.
| Name |
|---|
is_sentinel |
sentinel |
Uses nullptr as the sentinel value.
<mrdocs/ADT/Nullable.hpp>
constexpr
static
bool
is_sentinel(T const* p) noexcept;
<mrdocs/ADT/Nullable.hpp>
constexpr
static
T*
sentinel() noexcept;
<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;
| Name | Description |
|---|---|
None | Unspecified access |
Public | Public access |
Protected | Protected access |
Private | Private access |
None is set to zero since it is the most frequently occurring access, and it is elided by the bitstream encoder because it has an all-zero bit pattern. This improves compression in the bitstream.
None is used for namespace members and friend; such declarations have no access.
The kind of auto keyword used in a declaration.
<mrdocs/Metadata/Type/AutoKind.hpp>
enum class AutoKind : int;
| Name | Description |
|---|---|
Auto | The auto keyword |
DecltypeAuto | The decltype(auto) keyword |
This is either auto or decltype(auto).
constexpr/consteval specifier kinds
<mrdocs/Metadata/Specifiers/ConstexprKind.hpp>
enum class ConstexprKind : int;
| Name | Description |
|---|---|
None | No constexpr or consteval specifier |
Constexpr | The constexpr specifier |
Consteval | The consteval specifier only valid for functions |
[dcl.spec.general]p2: At most one of the constexpr, consteval, and constinit keywords shall appear in a decl-specifier-seq
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 |
Determine why a symbol is extracted
<mrdocs/Metadata/Symbol/ExtractionMode.hpp>
enum class ExtractionMode : int;
| 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. |
The enum constants are ordered by specificity, with the least specific at the beginning and the most specific at the end.
<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 |
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. |
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
<mrdocs/Metadata/DocComment/Block/ListKind.hpp>
enum class ListKind : int;
| Name |
|---|
Unordered |
Ordered |
<mrdocs/Metadata/Name/NameKind.hpp>
enum class NameKind : int;
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 |
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 |
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 |
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 |
Storage class kinds
<mrdocs/Metadata/Specifiers/StorageClassKind.hpp>
enum class StorageClassKind : int;
| 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 |
[dcl.stc]p1: At most one storage-class-specifier shall appear in a given decl-specifier-seq, except that thread_local may appear with static or extern.
Info variant discriminator
<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;
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 |
<mrdocs/Metadata/TParam/TParamKind.hpp>
enum class TParamKind : int;
<mrdocs/Metadata/DocComment/Block/TableAlignmentKind.hpp>
enum class TableAlignmentKind : int;
| Name |
|---|
None |
Left |
Center |
Right |
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 |
<mrdocs/Metadata/Type/TypeKind.hpp>
enum class TypeKind : int;
The class of using declaration.
<mrdocs/Metadata/Symbol/Using.hpp>
enum class UsingClass : int;
| Name | Description |
|---|---|
Normal | Using declaration class. |
Typename | Using typename declaration class. |
Enum | Using enum declaration class. |
This indicates whether the using declaration is a normal using, a using typename, or a using enum.
Compares two polymorphic objects that have visit functions
<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
<mrdocs/Metadata/Symbol/Overloads.hpp>
void
addMember(
OverloadsSymbol& I,
FunctionSymbol const& Member);
<mrdocs/Metadata/Symbol/Enum.hpp>
auto&
allMembers(EnumSymbol const& T);
» more...
auto
allMembers(NamespaceSymbol const& T);
» more...
auto
allMembers(NamespaceTranche const& T);
» more...
auto&
allMembers(OverloadsSymbol const& T);
» more...
auto
allMembers(RecordInterface const& T);
» more...
auto
allMembers(RecordSymbol const& T);
» more...
auto
allMembers(RecordTranche const& T);
» more...
<mrdocs/Metadata/Symbol/Namespace.hpp>
auto
allMembers(NamespaceSymbol const& T);
<mrdocs/Metadata/Symbol/Namespace.hpp>
auto
allMembers(NamespaceTranche const& T);
<mrdocs/Metadata/Symbol/Overloads.hpp>
auto&
allMembers(OverloadsSymbol const& T);
<mrdocs/Metadata/Symbol/RecordInterface.hpp>
auto
allMembers(RecordInterface const& T);
<mrdocs/Metadata/Symbol/RecordTranche.hpp>
auto
allMembers(RecordTranche const& T);
<mrdocs/Support/Assert.hpp>
void
assert_failed(
char const* msg,
char const* file,
uint_least32_t line);
<mrdocs/Metadata/DocComment.hpp>
template<
DocCommentNodeTraversable T,
class F>
void
bottomUpTraverse(
T& node,
F&& func);
<mrdocs/Metadata/Symbol/SymbolBase.hpp>
bool
canMerge(
Symbol const& I,
Symbol const& Other);
<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);
» more...
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...
<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);
<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);
<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);
» more...
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...
<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);
<mrdocs/ADT/Polymorphic.hpp>
template<
class To,
class From>
requires ( std::derived_from<std::remove_cvref_t<To>, std::remove_cvref_t<From>> )
[[nodiscard]]
std::add_pointer_t<std::remove_reference_t<To> const>
cast_or_null(Polymorphic<From> const* pp);
Return the result of comparing s0 to s1.
<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. |
<mrdocs/Metadata/Symbol/SymbolKind.hpp>
consteval
std::underlying_type_t<SymbolKind>
countSymbolKind();
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);
<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;
» more...
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...
<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;
<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;
<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;
» more...
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...
<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;
<mrdocs/ADT/Polymorphic.hpp>
template<
class To,
class From>
requires ( std::derived_from<std::remove_cvref_t<To>, std::remove_cvref_t<From>> )
[[nodiscard]]
std::add_pointer_t<std::remove_reference_t<To> const>
dyn_cast_or_null(Polymorphic<From> const* pp) noexcept;
Determine if a string ends with one of the specified characters
<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 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 |
<mrdocs/Metadata/Symbol/Record.hpp>
constexpr
std::string_view
getDefaultAccessString(RecordKeyKind const& kind) noexcept;
Return a reference to the global Generators instance.
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 |
<mrdocs/Metadata/Symbol/Source.hpp>
Optional<Location>
getPrimaryLocation(Symbol const& I);
» more...
Optional<Location>
getPrimaryLocation(
SourceInfo const& I,
bool preferDefinition);
» more...
<mrdocs/Metadata/Symbol/SymbolBase.hpp>
Optional<Location>
getPrimaryLocation(Symbol const& I);
<mrdocs/Metadata/Symbol/Source.hpp>
Optional<Location>
getPrimaryLocation(
SourceInfo const& I,
bool preferDefinition);
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. |
Return the innermost type.
<mrdocs/Metadata/Type.hpp>Return the innermost type.
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.
<mrdocs/Metadata/Type.hpp>
Polymorphic<Type>&
innermostType(Polymorphic<Type>& 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. |
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. |
<mrdocs/Support/String.hpp>
constexpr
bool
isAlphaNumeric(std::string_view const s) noexcept;
» more...
constexpr
bool
isAlphaNumeric(char const c) noexcept;
» more...
<mrdocs/Support/String.hpp>
constexpr
bool
isAlphaNumeric(std::string_view const s) noexcept;
<mrdocs/Support/String.hpp>
constexpr
bool
isAlphaNumeric(char const c) noexcept;
<mrdocs/Support/String.hpp>
constexpr
bool
isAlphabetic(std::string_view const s) noexcept;
» more...
constexpr
bool
isAlphabetic(char const c) noexcept;
» more...
<mrdocs/Support/String.hpp>
constexpr
bool
isAlphabetic(std::string_view const s) noexcept;
<mrdocs/Support/String.hpp>
constexpr
bool
isAlphabetic(char const c) noexcept;
Determines whether the operator is potentially binary.
<mrdocs/Metadata/Specifiers/OperatorKind.hpp>
bool
isBinaryOperator(OperatorKind kind) noexcept;
| Name | Description |
|---|---|
| kind | Operator kinds |
<mrdocs/Support/String.hpp>
constexpr
bool
isDigit(std::string_view const s) noexcept;
» more...
constexpr
bool
isDigit(char const c) noexcept;
» more...
<mrdocs/Support/String.hpp>
constexpr
bool
isDigit(std::string_view const s) noexcept;
<mrdocs/Support/String.hpp>
constexpr
bool
isDigit(char const c) noexcept;
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
<mrdocs/Support/String.hpp>
constexpr
bool
isLowerCase(std::string_view const s) noexcept;
» more...
constexpr
bool
isLowerCase(char const c) noexcept;
» more...
<mrdocs/Support/String.hpp>
constexpr
bool
isLowerCase(std::string_view const s) noexcept;
<mrdocs/Support/String.hpp>
constexpr
bool
isLowerCase(char const c) noexcept;
Determines whether the operator is potentially unary.
<mrdocs/Metadata/Specifiers/OperatorKind.hpp>
bool
isUnaryOperator(OperatorKind kind) noexcept;
| Name | Description |
|---|---|
| kind | Operator kinds |
<mrdocs/Support/String.hpp>
constexpr
bool
isUpperCase(std::string_view const s) noexcept;
» more...
constexpr
bool
isUpperCase(char const c) noexcept;
» more...
<mrdocs/Support/String.hpp>
constexpr
bool
isUpperCase(std::string_view const s) noexcept;
<mrdocs/Support/String.hpp>
constexpr
bool
isUpperCase(char const c) noexcept;
Determine if a string is only whitespace.
<mrdocs/Support/String.hpp>Determine if a string is only whitespace.
constexpr
bool
isWhitespace(std::string_view s) noexcept;
» more...
constexpr
bool
isWhitespace(char c) noexcept;
» more...
| Name | Description |
|---|---|
| s | The string to check. |
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. |
<mrdocs/Support/String.hpp>
constexpr
bool
isWhitespace(char c) noexcept;
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. |
<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;
<mrdocs/ADT/Polymorphic.hpp>
template<
class To,
class From>
requires ( std::derived_from<std::remove_cvref_t<To>, std::remove_cvref_t<From>> )
[[nodiscard]]
bool
isa_or_null(Polymorphic<From> const* pp) noexcept;
Compare ExtractionModes and returns the least specific
<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 |
<mrdocs/ADT/ArrayView.hpp>
template<
class T,
std::size_t N>
constexpr
ArrayView<T>
make_array_view(T const(& arr)[]) noexcept;
» more...
template<class T>
constexpr
ArrayView<T>
make_array_view(
T const* data,
std::size_t count) noexcept;
» more...
<mrdocs/ADT/ArrayView.hpp>
template<
class T,
std::size_t N>
constexpr
ArrayView<T>
make_array_view(T const(& arr)[]) noexcept;
<mrdocs/ADT/ArrayView.hpp>
template<class T>
constexpr
ArrayView<T>
make_array_view(
T const* data,
std::size_t count) noexcept;
make_null helper that uses nullable_traits<T> if available.
<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/Symbol/SymbolBase.hpp>
void
merge(
ConceptSymbol& I,
ConceptSymbol&& Other);
» more...
void
merge(
DocComment& I,
DocComment&& other);
» more...
void
merge(
EnumConstantSymbol& I,
EnumConstantSymbol&& Other);
» more...
void
merge(
EnumSymbol& I,
EnumSymbol&& Other);
» more...
void
merge(
ExprInfo& I,
ExprInfo&& Other);
» more...
void
merge(
FriendInfo& I,
FriendInfo&& Other);
» more...
void
merge(
FunctionSymbol& I,
FunctionSymbol&& Other);
» more...
void
merge(
GuideSymbol& I,
GuideSymbol&& Other);
» more...
void
merge(
NamespaceAliasSymbol& I,
NamespaceAliasSymbol&& Other);
» more...
void
merge(
NamespaceSymbol& I,
NamespaceSymbol&& Other);
» more...
void
merge(
NamespaceTranche& I,
NamespaceTranche&& Other);
» more...
void
merge(
OverloadsSymbol& I,
OverloadsSymbol&& Other);
» more...
void
merge(
Param& I,
Param&& Other);
» more...
void
merge(
RecordInterface& I,
RecordInterface&& Other);
» more...
void
merge(
RecordSymbol& I,
RecordSymbol&& Other);
» more...
void
merge(
RecordTranche& I,
RecordTranche&& Other);
» more...
void
merge(
SourceInfo& I,
SourceInfo const& Other);
» more...
void
merge(
SourceInfo& I,
SourceInfo&& Other);
» more...
Merges two Symbol objects.
void
merge(
Symbol& I,
Symbol&& Other);
» more...
void
merge(
TemplateInfo& I,
TemplateInfo&& Other);
» more...
void
merge(
TypedefSymbol& I,
TypedefSymbol&& Other);
» more...
void
merge(
UsingSymbol& I,
UsingSymbol&& Other);
» more...
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...
template<class T>
static
void
merge(
ConstantExprInfo<T>& I,
ConstantExprInfo<T>&& Other);
» more...
| Name | Description |
|---|---|
| I | The Symbol object to merge into. |
| Other | The Symbol object to merge from. |
<mrdocs/Metadata/Symbol/Concept.hpp>
void
merge(
ConceptSymbol& I,
ConceptSymbol&& Other);
<mrdocs/Metadata/DocComment.hpp>
void
merge(
DocComment& I,
DocComment&& other);
<mrdocs/Metadata/Symbol/EnumConstant.hpp>
void
merge(
EnumConstantSymbol& I,
EnumConstantSymbol&& Other);
<mrdocs/Metadata/Symbol/Enum.hpp>
void
merge(
EnumSymbol& I,
EnumSymbol&& Other);
<mrdocs/Metadata/Symbol/Friend.hpp>
void
merge(
FriendInfo& I,
FriendInfo&& Other);
<mrdocs/Metadata/Symbol/Function.hpp>
void
merge(
FunctionSymbol& I,
FunctionSymbol&& Other);
<mrdocs/Metadata/Symbol/Guide.hpp>
void
merge(
GuideSymbol& I,
GuideSymbol&& Other);
<mrdocs/Metadata/Symbol/NamespaceAlias.hpp>
void
merge(
NamespaceAliasSymbol& I,
NamespaceAliasSymbol&& Other);
<mrdocs/Metadata/Symbol/Namespace.hpp>
void
merge(
NamespaceSymbol& I,
NamespaceSymbol&& Other);
<mrdocs/Metadata/Symbol/Namespace.hpp>
void
merge(
NamespaceTranche& I,
NamespaceTranche&& Other);
<mrdocs/Metadata/Symbol/Overloads.hpp>
void
merge(
OverloadsSymbol& I,
OverloadsSymbol&& Other);
<mrdocs/Metadata/Symbol/RecordInterface.hpp>
void
merge(
RecordInterface& I,
RecordInterface&& Other);
<mrdocs/Metadata/Symbol/Record.hpp>
void
merge(
RecordSymbol& I,
RecordSymbol&& Other);
<mrdocs/Metadata/Symbol/RecordTranche.hpp>
void
merge(
RecordTranche& I,
RecordTranche&& Other);
<mrdocs/Metadata/Symbol/Source.hpp>
void
merge(
SourceInfo& I,
SourceInfo const& Other);
<mrdocs/Metadata/Symbol/Source.hpp>
void
merge(
SourceInfo& I,
SourceInfo&& Other);
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. |
<mrdocs/Metadata/Template.hpp>
void
merge(
TemplateInfo& I,
TemplateInfo&& Other);
<mrdocs/Metadata/Symbol/Typedef.hpp>
void
merge(
TypedefSymbol& I,
TypedefSymbol&& Other);
<mrdocs/Metadata/Symbol/Using.hpp>
void
merge(
UsingSymbol& I,
UsingSymbol&& Other);
<mrdocs/Metadata/Symbol/Variable.hpp>
void
merge(
VariableSymbol& I,
VariableSymbol&& Other);
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. |
<mrdocs/Metadata/Expression.hpp>
template<class T>
static
void
merge(
ConstantExprInfo<T>& I,
ConstantExprInfo<T>&& Other);
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()));
<mrdocs/Support/SplitLines.hpp>
template<std::ranges::viewable_range R>
requires std::ranges::contiguous_range<R> &&
std::same_as<std::remove_cv_t<std::ranges::range_value_t<R>>, char>
constexpr
auto
operator|(
R&& r,
SplitLinesAdaptor const& a);
Determine if one function would override the other
<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. |
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. |
Create a wrapper for a safe string.
<mrdocs/Dom/Value.hpp>Create a wrapper for a safe string.
Value
safeString(std::string_view str);
» more...
dom::Value
safeString(dom::Value const& str);
» more...
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
<mrdocs/Dom/Value.hpp>
template<std::convertible_to<std::string_view> SV>
dom::Value
safeString(SV const& str);
Determine if a string starts with one of the specified characters
<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. |
<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...
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...
template<class T>
constexpr
void
swap(
Optional<T&>& a,
Optional<T&>& b) noexcept;
» more...
<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); };
<mrdocs/Support/Expected.hpp>
constexpr
void
swap(
Expected& x,
Expected& y) noexcept(noexcept(x.swap(y)))
requires requires { x.swap(y); };
<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>;
<mrdocs/ADT/Optional.hpp>
template<class T>
constexpr
void
swap(
Optional<T&>& a,
Optional<T&>& b) noexcept;
tag_invoke overloads
<mrdocs/Metadata/Symbol/Param.hpp>
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...
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
FileKind kind);
» more...
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
OperatorKind kind);
» more...
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
QualifierKind kind);
» more...
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...
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
TArgKind kind);
» more...
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
TParamKeyKind kind);
» more...
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...
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
ListKind const kind);
» more...
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...
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...
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
Location const& loc);
» more...
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
NoexceptInfo const& info);
» more...
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...
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...
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...
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
TArg const& I,
DomCorpus const* domCorpus);
» more...
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
TParam const& I,
DomCorpus const* domCorpus);
» more...
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
TemplateInfo const& I,
DomCorpus const* domCorpus);
» more...
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...
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
Optional<TemplateInfo> const& I,
DomCorpus const* domCorpus);
» more...
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
Optional<Polymorphic<Name>> const& I,
DomCorpus const* domCorpus);
» more...
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
Optional<Polymorphic<Type>> const& I,
DomCorpus const* domCorpus);
» more...
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
Polymorphic<Name> const& I,
DomCorpus const* domCorpus);
» more...
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
Polymorphic<TArg> const& I,
DomCorpus const* domCorpus);
» more...
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
Polymorphic<TParam> const& I,
DomCorpus const* domCorpus);
» more...
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 | The output value. |
| kind | The UsingClass to convert. |
| I | The ExplicitInfo to convert. |
| domCorpus | The DomCorpus used to resolve references. |
| t | The SymbolID pointer to convert. If null, the dom::Value is set to null. |
| io | The output object. |
<mrdocs/Metadata/Type/AutoKind.hpp>
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
AutoKind kind);
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 |
<mrdocs/Metadata/Symbol/FileKind.hpp>
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
FileKind kind);
<mrdocs/Metadata/Specifiers/OperatorKind.hpp>
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
OperatorKind kind);
<mrdocs/Metadata/Type/QualifierKind.hpp>
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
QualifierKind kind);
<mrdocs/Metadata/Symbol/RecordKeyKind.hpp>
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
RecordKeyKind kind);
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 |
<mrdocs/Metadata/TArg/TArgKind.hpp>
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
TArgKind kind);
<mrdocs/Metadata/TParam/TParamKeyKind.hpp>
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
TParamKeyKind kind);
<mrdocs/Metadata/Type/TypeKind.hpp>
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
TypeKind kind);
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 |
<mrdocs/Metadata/DocComment/Block/ListKind.hpp>
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
ListKind const kind);
<mrdocs/Metadata/Name/NameKind.hpp>
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
NameKind const kind);
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 |
<mrdocs/Metadata/DocComment/Block/TableAlignmentKind.hpp>
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
TableAlignmentKind const kind);
Return the ExplicitInfo as a dom::Value string.
<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. |
<mrdocs/Metadata/Symbol/Location.hpp>
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
Location const& loc);
<mrdocs/Metadata/Specifiers/NoexceptInfo.hpp>
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
NoexceptInfo const& info);
<mrdocs/Metadata/Symbol/Source.hpp>
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
SourceInfo const& I);
Convert SymbolID to dom::Value string in the DOM using toBase16
<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. |
<mrdocs/Metadata/Symbol/RecordBase.hpp>
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
BaseInfo const& I,
DomCorpus const* domCorpus);
Map the ConceptSymbol to a dom::Value object.
<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. |
<mrdocs/Metadata/Name/NameBase.hpp>
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
Name const& I,
DomCorpus const* domCorpus);
Map the NamespaceAliasSymbol to a dom::Value object.
<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. |
| 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 | The members of 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. |
<mrdocs/Metadata/TArg/TArgBase.hpp>
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
TArg const& I,
DomCorpus const* domCorpus);
<mrdocs/Metadata/TParam/TParamBase.hpp>
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
TParam const& I,
DomCorpus const* domCorpus);
<mrdocs/Metadata/Template.hpp>
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
TemplateInfo const& I,
DomCorpus const* domCorpus);
<mrdocs/Metadata/Type/TypeBase.hpp>
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
Type const& I,
DomCorpus const* domCorpus);
Map the TypedefSymbol to a dom::Value object.
<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. |
<mrdocs/Metadata/Template.hpp>
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
Optional<TemplateInfo> const& I,
DomCorpus const* domCorpus);
<mrdocs/Metadata/Name.hpp>
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
Optional<Polymorphic<Name>> const& I,
DomCorpus const* domCorpus);
<mrdocs/Metadata/Type.hpp>
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
Optional<Polymorphic<Type>> const& I,
DomCorpus const* domCorpus);
<mrdocs/Metadata/Name.hpp>
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
Polymorphic<Name> const& I,
DomCorpus const* domCorpus);
<mrdocs/Metadata/TArg.hpp>
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
Polymorphic<TArg> const& I,
DomCorpus const* domCorpus);
<mrdocs/Metadata/TParam.hpp>
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
Polymorphic<TParam> const& I,
DomCorpus const* domCorpus);
<mrdocs/Metadata/Type.hpp>
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
Polymorphic<Type> const& I,
DomCorpus const* domCorpus);
Convert SymbolID pointers to dom::Value or null.
<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 |
|---|---|
| t | The tag. |
| io | The output object. |
| I | The DocComment to map. |
| domCorpus | The DOM corpus, or nullptr. |
Map a NamespaceTranche to a dom::Object.
<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 |
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. |
<mrdocs/Support/String.hpp>
constexpr
std::string
toCamelCase(std::string_view const input);
<mrdocs/Support/String.hpp>
constexpr
std::string
toKebabCase(std::string_view const input);
<mrdocs/Support/String.hpp>
constexpr
std::string
toLowerCase(std::string_view const s) noexcept;
» more...
constexpr
char
toLowerCase(char const c) noexcept;
» more...
<mrdocs/Support/String.hpp>
constexpr
std::string
toLowerCase(std::string_view const s) noexcept;
<mrdocs/Support/String.hpp>
constexpr
char
toLowerCase(char const c) noexcept;
<mrdocs/Support/String.hpp>
constexpr
std::string
toPascalCase(std::string_view const input);
<mrdocs/Support/String.hpp>
constexpr
std::string
toSnakeCase(std::string_view const input);
toString overloads
<mrdocs/Metadata/Specifiers/ExplicitInfo.hpp>
dom::String
toString(AccessKind kind) noexcept;
» more...
dom::String
toString(AutoKind kind) noexcept;
» more...
dom::String
toString(ConstexprKind kind) noexcept;
» more...
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...
std::string_view
toString(FileKind kind);
» more...
dom::String
toString(FunctionClass kind) noexcept;
» more...
Convert a FundamentalTypeKind to a string.
std::string_view
toString(FundamentalTypeKind kind) noexcept;
» more...
dom::String
toString(ListKind kind) noexcept;
» more...
dom::String
toString(NameKind kind) noexcept;
» more...
dom::String
toString(NoexceptKind kind) noexcept;
» more...
dom::String
toString(QualifierKind kind) noexcept;
» more...
dom::String
toString(RecordKeyKind kind) noexcept;
» more...
dom::String
toString(ReferenceKind kind) noexcept;
» more...
dom::String
toString(StorageClassKind kind) noexcept;
» more...
Return the name of the SymbolKind as a string.
dom::String
toString(SymbolKind kind) noexcept;
» more...
std::string_view
toString(TArgKind kind) noexcept;
» more...
std::string_view
toString(TParamKeyKind kind) noexcept;
» more...
std::string_view
toString(TParamKind kind) noexcept;
» more...
dom::String
toString(TableAlignmentKind kind) noexcept;
» more...
std::string_view
toString(TemplateSpecKind kind);
» more...
dom::String
toString(TypeKind kind) noexcept;
» more...
std::string
toString(Name const& N);
» more...
std::string
toString(TArg const& arg) noexcept;
» more...
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 |
|---|---|
| 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. |
<mrdocs/Metadata/Specifiers/AccessKind.hpp>
dom::String
toString(AccessKind kind) noexcept;
<mrdocs/Metadata/Type/AutoKind.hpp>
dom::String
toString(AutoKind kind) noexcept;
<mrdocs/Metadata/Specifiers/ConstexprKind.hpp>
dom::String
toString(ConstexprKind kind) noexcept;
<mrdocs/Metadata/Specifiers/ExplicitKind.hpp>
dom::String
toString(ExplicitKind kind) noexcept;
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 |
<mrdocs/Metadata/Symbol/FileKind.hpp>
std::string_view
toString(FileKind kind);
<mrdocs/Metadata/Symbol/FunctionClass.hpp>
dom::String
toString(FunctionClass kind) noexcept;
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. |
<mrdocs/Metadata/DocComment/Block/ListKind.hpp>
dom::String
toString(ListKind kind) noexcept;
<mrdocs/Metadata/Name/NameKind.hpp>
dom::String
toString(NameKind kind) noexcept;
<mrdocs/Metadata/Specifiers/NoexceptKind.hpp>
dom::String
toString(NoexceptKind kind) noexcept;
<mrdocs/Metadata/Type/QualifierKind.hpp>
dom::String
toString(QualifierKind kind) noexcept;
<mrdocs/Metadata/Symbol/RecordKeyKind.hpp>
dom::String
toString(RecordKeyKind kind) noexcept;
<mrdocs/Metadata/Specifiers/ReferenceKind.hpp>
dom::String
toString(ReferenceKind kind) noexcept;
<mrdocs/Metadata/Specifiers/StorageClassKind.hpp>
dom::String
toString(StorageClassKind kind) noexcept;
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 |
<mrdocs/Metadata/TArg/TArgKind.hpp>
std::string_view
toString(TArgKind kind) noexcept;
<mrdocs/Metadata/TParam/TParamKeyKind.hpp>
std::string_view
toString(TParamKeyKind kind) noexcept;
<mrdocs/Metadata/TParam/TParamKind.hpp>
std::string_view
toString(TParamKind kind) noexcept;
<mrdocs/Metadata/DocComment/Block/TableAlignmentKind.hpp>
dom::String
toString(TableAlignmentKind kind) noexcept;
<mrdocs/Metadata/Template.hpp>
std::string_view
toString(TemplateSpecKind kind);
<mrdocs/Metadata/Type/TypeKind.hpp>
dom::String
toString(TypeKind kind) noexcept;
<mrdocs/Metadata/TArg/TArgBase.hpp>
std::string
toString(TArg const& arg) noexcept;
<mrdocs/Metadata/Type.hpp>
std::string
toString(
Type const& T,
std::string_view Name = "");
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. |
<mrdocs/Support/String.hpp>
constexpr
std::string
toUpperCase(std::string_view const s) noexcept;
» more...
constexpr
char
toUpperCase(char const c) noexcept;
» more...
<mrdocs/Support/String.hpp>
constexpr
std::string
toUpperCase(std::string_view const s) noexcept;
<mrdocs/Support/String.hpp>
constexpr
char
toUpperCase(char const c) noexcept;
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 |
<mrdocs/Metadata/DocComment.hpp>
template<
DocCommentNodeTraversable T,
class F>
void
topDownTraverse(
T& node,
F&& func);
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. |
Invoke a function object with a type derived from Symbol
<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);
» more...
Invoke a function object with a type derived from Symbol
template<
std::derived_from<Symbol> TypeTy,
class F,
class... Args>
constexpr
decltype(auto)
visit(
TypeTy& I,
F&& f,
Args...&&... args);
» more...
| Name | Description |
|---|---|
| info | The Symbol object to visit |
| fn | The function object to call |
| args | Additional arguments to pass to the function object |
<mrdocs/Metadata/TParam.hpp>
template<
typename TParamTy,
typename F,
typename... Args>
requires std::derived_from<TParamTy, TParam>
constexpr
decltype(auto)
visit(
TParamTy& P,
F&& f,
Args...&&... args);
Invoke a function object with a type derived from Symbol
<mrdocs/Metadata/Type.hpp>
template<
std::derived_from<Symbol> TypeTy,
class F,
class... Args>
constexpr
decltype(auto)
visit(
TypeTy& I,
F&& f,
Args...&&... args);
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 Symbol object to visit |
| fn | The function object to call |
| args | Additional arguments to pass to the function object |
Visits a std::variant and calls the combined callable with the active index and the value.
<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
template<class T>
requires std::formattable<T, char>
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
<mrdocs/Support/Handlebars.hpp>
template<class T>
requires std::formattable<T, char>
OutputRef&
operator<<(
OutputRef& os,
T v);
| 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
template<
class U,
class E2>
requires std::is_void_v<U>
constexpr
bool
operator==(
Expected const& x,
Expected<U, E2> const& y) noexcept(noexcept(bool(x.error() == y.error())));
» 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 operator
bool
operator==(
Optional<TemplateInfo> const& lhs,
Optional<TemplateInfo> const& rhs);
» more...
Equality operator
bool
operator==(
Polymorphic<TParam> const& lhs,
Polymorphic<TParam> const& rhs);
» more...
Equality operator
bool
operator==(
Polymorphic<Name> const& lhs,
Polymorphic<Name> const& rhs);
» more...
Equality operator
bool
operator==(
Optional<Polymorphic<Type>> const& lhs,
Optional<Polymorphic<Type>> const& rhs);
» more...
Equality operator
bool
operator==(
Polymorphic<Type> const& lhs,
Polymorphic<Type> const& rhs);
» more...
Equality operator
template<
class U,
class E2>
constexpr
bool
operator==(
Expected const& x,
Expected<U, E2> const& y) noexcept(noexcept(bool(*x == *y)) && noexcept(bool(x.error() == y.error())))
requires (!std::is_void_v<U>);
» more...
Equality operator
template<class U>
constexpr
bool
operator==(
Expected const& x,
U const& v) noexcept(noexcept(bool(*x == v)));
» more...
Equality operator
template<class E2>
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
template<
class U,
class E2>
requires (!std::is_void_v<U>)
constexpr
bool
operator==(
Expected const& x,
Expected<U, E2> const& y) noexcept(noexcept(bool(*x == *y)) && noexcept(bool(x.error() == y.error())));
» more...
Equality operator
template<class U>
constexpr
bool
operator==(
Expected const& x,
U const& v) noexcept(noexcept(bool(*x == v)));
» more...
Equality operator
template<class E2>
constexpr
bool
operator==(
Expected const& x,
Unexpected<E2> const& e) noexcept(noexcept(bool(x.error() == e.error())));
» more...
Equality operator
template<class Er>
[[nodiscard]]
constexpr
bool
operator==(
Unexpected const& x,
Unexpected<Er> const& y);
» more...
Equality operator
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>
template<
class U,
class E2>
requires std::is_void_v<U>
constexpr
bool
operator==(
Expected const& x,
Expected<U, E2> const& y) noexcept(noexcept(bool(x.error() == y.error())));
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 operator
<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 operator
<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 operator
<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 operator
<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 operator
<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>
template<
class U,
class E2>
constexpr
bool
operator==(
Expected const& x,
Expected<U, E2> const& y) noexcept(noexcept(bool(*x == *y)) && noexcept(bool(x.error() == y.error())))
requires (!std::is_void_v<U>);
true if the objects are equal, false otherwise
| Name | Description |
|---|---|
| x | The left operand |
| y | The right operand |
Equality operator
<mrdocs/Support/Expected.hpp>
template<class U>
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>
template<class E2>
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>
template<
class U,
class E2>
requires (!std::is_void_v<U>)
constexpr
bool
operator==(
Expected const& x,
Expected<U, E2> const& y) noexcept(noexcept(bool(*x == *y)) && noexcept(bool(x.error() == y.error())));
true if the objects are equal, false otherwise
| Name | Description |
|---|---|
| x | The left operand |
| y | The right operand |
Equality operator
<mrdocs/Support/Expected.hpp>
template<class U>
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>
template<class E2>
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>
template<class Er>
[[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 operator
<mrdocs/ADT/Polymorphic.hpp>
template<class Base>
requires detail::CanVisitCompare<Base>
bool
operator==(
Polymorphic<Base> const& lhs,
Polymorphic<Base> const& rhs);
true if the objects are equal, false otherwise
| 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 operator
template<class Base>
requires detail::CanVisitCompare<Base>
auto
operator<=>(
Polymorphic<Base> const& lhs,
Polymorphic<Base> const& rhs);
» more...
Three-way comparison operator
std::strong_ordering
operator<=>(
Polymorphic<Type> const& lhs,
Polymorphic<Type> const& rhs);
» more...
Three-way comparison operator
std::strong_ordering
operator<=>(
Optional<Polymorphic<Type>> const& lhs,
Optional<Polymorphic<Type>> const& rhs);
» more...
Three-way comparison operator
std::strong_ordering
operator<=>(
Polymorphic<TArg> const& lhs,
Polymorphic<TArg> const& rhs);
» more...
Three-way comparison operator
std::strong_ordering
operator<=>(
Polymorphic<Name> const& lhs,
Polymorphic<Name> const& rhs);
» more...
Three-way comparison operator
std::strong_ordering
operator<=>(
Polymorphic<TParam> const& lhs,
Polymorphic<TParam> const& rhs);
» more...
Three-way comparison operator
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 operator
<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 |
Three-way comparison operator
<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 |
Three-way comparison operator
<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 |
Three-way comparison operator
<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 operator
<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 |
Three-way comparison operator
<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 |
Three-way comparison operator
<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.
<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>;
<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 function 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.
<mrdocs/Support/Concepts.hpp>
template<
class To,
class From>
concept reference_constructs_from_temporary_v = reference_converts_from_temporary_v<To, From>;
<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.
<mrdocs/ADT/ArrayView.hpp>
template<
class T,
std::size_t N>
ArrayView<T>(T const(&)[]) -> ArrayView<T>;
<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.
<mrdocs/Support/RangeFor.hpp>
template<class Container>
RangeFor<Container>(Container const&) -> RangeFor<Container>;
<mrdocs/Support/ScopeExit.hpp>
template<class F>
ScopeExit<F>(F) -> ScopeExit<F>;
<mrdocs/Support/ScopeExit.hpp>
template<class T>
ScopeExitRestore<T>(T&) -> ScopeExitRestore<T>;
<mrdocs/Support/ScopeExit.hpp>
template<
class T,
std::convertible_to<T> T2>
ScopeExitRestore<T>(
T&,
T2) -> ScopeExitRestore<T>;
<mrdocs/Support/Expected.hpp>
template<class E>
Unexpected<E>(E) -> Unexpected<E>;
<mrdocs/Support/source_location.hpp>
using std::source_location;