Document Object Model Reference

The Document Object Model (DOM) is a tree structure that represents the symbols extracted from the source code. The DOM is used by the generator to render the documentation.

NamespaceSymbol

A namespace declaration. The implicit global namespace appears as a namespace symbol with an empty name and no parent.

Property Type Description
name string Unqualified name of the symbol, as written in the source.
loc (required) string Source location information for the symbol's declaration and definition.
kind (required) string ("namespace" | "record" | "function" | "overloads" | "enum" | "enum-constant" | "typedef" | "variable" | "guide" | "namespace-alias" | "using" | "concept") Discriminator selecting the symbol kind (e.g. `"function"`, `"record"`). Each concrete symbol type constrains this field to a single literal value.
id (required) string Stable, base64-encoded identifier used for cross-references between DOM objects.
access (required) string ("none" | "public" | "protected" | "private") Access specifier (`"public"`, `"protected"`, `"private"`); empty for namespace-scope members.
extraction (required) string ("regular" | "see-below" | "implementation-defined" | "dependency") Why the symbol was extracted: `"regular"`, `"see-below"`, `"implementation-defined"`, or `"dependency"`.
isCopyFromInherited (required) boolean True when the symbol is a synthesized copy of an inherited member (see the `inherit-base-members` configuration option).
parent (required) string Identifier of the enclosing scope, or empty when the symbol lives in the global namespace.
doc DocComment Parsed documentation comment attached to the symbol, or absent when the symbol is undocumented.
attributes (required) array of Attribute C++ attributes attached to the declaration, in source order.
isInline (required) boolean True if the namespace is declared `inline`.
isAnonymous (required) boolean True if the namespace has no name in source.
usingDirectives (required) array of Name List of `using namespace` directives found in this namespace's scope.
members (required) NamespaceTranche All members of the namespace, grouped into tranches by kind.
class (required) "symbol" Tag set to the literal `"symbol"`. Lets templates discriminate symbol DOM objects from auxiliary types (`type`, `name`, etc.) without inspecting `kind`.
$meta object

RecordSymbol

A class, struct, or union declaration.

Property Type Description
name string Unqualified name of the symbol, as written in the source.
loc (required) string Source location information for the symbol's declaration and definition.
kind (required) string ("namespace" | "record" | "function" | "overloads" | "enum" | "enum-constant" | "typedef" | "variable" | "guide" | "namespace-alias" | "using" | "concept") Discriminator selecting the symbol kind (e.g. `"function"`, `"record"`). Each concrete symbol type constrains this field to a single literal value.
id (required) string Stable, base64-encoded identifier used for cross-references between DOM objects.
access (required) string ("none" | "public" | "protected" | "private") Access specifier (`"public"`, `"protected"`, `"private"`); empty for namespace-scope members.
extraction (required) string ("regular" | "see-below" | "implementation-defined" | "dependency") Why the symbol was extracted: `"regular"`, `"see-below"`, `"implementation-defined"`, or `"dependency"`.
isCopyFromInherited (required) boolean True when the symbol is a synthesized copy of an inherited member (see the `inherit-base-members` configuration option).
parent (required) string Identifier of the enclosing scope, or empty when the symbol lives in the global namespace.
doc DocComment Parsed documentation comment attached to the symbol, or absent when the symbol is undocumented.
attributes (required) array of Attribute C++ attributes attached to the declaration, in source order.
keyKind (required) string ("struct" | "class" | "union") The introducing keyword: `"class"`, `"struct"`, or `"union"`.
template TemplateInfo Template head if this is a class template; absent for non-templates.
isTypeDef (required) boolean True when the record was introduced by an anonymous `typedef struct { ... } Name;` declaration.
isFinal (required) boolean True if the class is declared `final`.
isFinalDestructor (required) boolean True when the record's destructor is declared `final`.
bases (required) array of BaseInfo Direct base classes, in declaration order.
derived (required) array of string Identifiers of records that derive from this one and appear in the corpus.
interface (required) RecordInterface Per-access summary of the record's members (public, protected, private, plus aggregated views).
friends (required) array of FriendInfo List of friend declarations attached to the record.
isListedOnPrimary (required) boolean True when this is a record-template specialization rendered under its primary template and suppressed from the parent scope's listing.
specializations (required) array of string Identifiers of the record-template specializations whose primary is this record template.
deductionGuides (required) array of string Identifiers of the deduction guides for this record template.
class (required) "symbol" Tag set to the literal `"symbol"`. Lets templates discriminate symbol DOM objects from auxiliary types (`type`, `name`, etc.) without inspecting `kind`.
$meta object

FunctionSymbol

A function declaration, including free functions, member functions, constructors, destructors, and user-defined operators.

Property Type Description
name string Unqualified name of the symbol, as written in the source.
loc (required) string Source location information for the symbol's declaration and definition.
kind (required) string ("namespace" | "record" | "function" | "overloads" | "enum" | "enum-constant" | "typedef" | "variable" | "guide" | "namespace-alias" | "using" | "concept") Discriminator selecting the symbol kind (e.g. `"function"`, `"record"`). Each concrete symbol type constrains this field to a single literal value.
id (required) string Stable, base64-encoded identifier used for cross-references between DOM objects.
access (required) string ("none" | "public" | "protected" | "private") Access specifier (`"public"`, `"protected"`, `"private"`); empty for namespace-scope members.
extraction (required) string ("regular" | "see-below" | "implementation-defined" | "dependency") Why the symbol was extracted: `"regular"`, `"see-below"`, `"implementation-defined"`, or `"dependency"`.
isCopyFromInherited (required) boolean True when the symbol is a synthesized copy of an inherited member (see the `inherit-base-members` configuration option).
parent (required) string Identifier of the enclosing scope, or empty when the symbol lives in the global namespace.
doc DocComment Parsed documentation comment attached to the symbol, or absent when the symbol is undocumented.
attributes (required) array of Attribute C++ attributes attached to the declaration, in source order.
returnType (required) Type Return type. Absent for constructors and destructors.
params (required) array of Param Function parameter list, in declaration order.
template TemplateInfo Template head if this is a function template; absent for non-templates.
funcClass (required) string ("normal" | "constructor" | "conversion" | "destructor") Special-function classification (`"constructor"`, `"destructor"`, `"conversion"`, etc.) or empty for ordinary functions.
noexcept (required) string Rendered `noexcept` specifier, if any.
requires string Trailing `requires`-clause expression as written.
isVariadic (required) boolean True when the function accepts a C-style `...` argument list.
isDefaulted (required) boolean True when the function is `= default`.
isExplicitlyDefaulted (required) boolean True when the function carries an explicit `= default` in source (not just an implicit defaulted special member).
isDeleted (required) boolean True when the function is `= delete` (whether written explicitly or implied by language rules).
isDeletedAsWritten (required) boolean True only when the function is `= delete` as written in source; distinguishes user-deleted from implicitly deleted.
hasOverrideAttr (required) boolean True when the function carries the `override` specifier.
hasTrailingReturn (required) boolean True when the function uses trailing-return-type syntax (`auto ... -> T`).
isExplicitObjectMemberFunction (required) boolean True when the function declares an explicit object parameter (deducing-this member function).
constexpr string ("none" | "constexpr" | "consteval") Constexpr level: `"constexpr"`, `"consteval"`, or empty.
overloadedOperator (required) string Overloaded operator name (e.g. `"operator+"`) or empty if not an operator.
storageClass string ("none" | "extern" | "static" | "auto" | "register") Storage class: `"static"`, `"extern"`, etc., or empty.
isRecordMethod (required) boolean True when the function is a member of a class, struct, or union.
isVirtual (required) boolean True when the function is virtual (whether by `virtual` keyword or by overriding a virtual function).
isVirtualAsWritten (required) boolean True only when the `virtual` keyword appears in source.
isPure (required) boolean True when the function is pure virtual (`= 0`).
isConst (required) boolean True when the function is a `const` member function.
isVolatile (required) boolean True when the function is a `volatile` member function.
isFinal (required) boolean True when the function is declared `final`.
refQualifier string Reference qualifier on the implicit object parameter: `"&"`, `"&&"`, or empty.
explicit (required) string Rendered `explicit` specifier (with optional condition) for constructors and conversion functions.
functionObjectImpl string Identifier of the function object this function is the call-operator implementation of, when the `auto-function-objects` feature recognized it as such; empty otherwise.
isListedOnPrimary (required) boolean True when this is a function-template specialization rendered under its primary template and suppressed from the parent scope's listing.
specializations (required) array of string Identifiers of the function-template specializations whose primary is this function template.
class (required) "symbol" Tag set to the literal `"symbol"`. Lets templates discriminate symbol DOM objects from auxiliary types (`type`, `name`, etc.) without inspecting `kind`.
$meta object

OverloadsSymbol

An aggregate of overloaded functions sharing a name. Used to group overload sets in the corpus.

Property Type Description
name string Unqualified name of the symbol, as written in the source.
loc (required) string Source location information for the symbol's declaration and definition.
kind (required) string ("namespace" | "record" | "function" | "overloads" | "enum" | "enum-constant" | "typedef" | "variable" | "guide" | "namespace-alias" | "using" | "concept") Discriminator selecting the symbol kind (e.g. `"function"`, `"record"`). Each concrete symbol type constrains this field to a single literal value.
id (required) string Stable, base64-encoded identifier used for cross-references between DOM objects.
access (required) string ("none" | "public" | "protected" | "private") Access specifier (`"public"`, `"protected"`, `"private"`); empty for namespace-scope members.
extraction (required) string ("regular" | "see-below" | "implementation-defined" | "dependency") Why the symbol was extracted: `"regular"`, `"see-below"`, `"implementation-defined"`, or `"dependency"`.
isCopyFromInherited (required) boolean True when the symbol is a synthesized copy of an inherited member (see the `inherit-base-members` configuration option).
parent (required) string Identifier of the enclosing scope, or empty when the symbol lives in the global namespace.
doc DocComment Parsed documentation comment attached to the symbol, or absent when the symbol is undocumented.
attributes (required) array of Attribute C++ attributes attached to the declaration, in source order.
funcClass (required) string ("normal" | "constructor" | "conversion" | "destructor") Shared special-function classification of the overload set, when applicable.
overloadedOperator (required) string Shared overloaded-operator name when the overload set is for an operator.
members (required) array of string Identifiers of the function declarations belonging to this overload set.
returnType (required) Type Common return type when every overload shares it; absent otherwise.
class (required) "symbol" Tag set to the literal `"symbol"`. Lets templates discriminate symbol DOM objects from auxiliary types (`type`, `name`, etc.) without inspecting `kind`.
$meta object

EnumSymbol

An enum declaration (scoped or unscoped).

Property Type Description
name string Unqualified name of the symbol, as written in the source.
loc (required) string Source location information for the symbol's declaration and definition.
kind (required) string ("namespace" | "record" | "function" | "overloads" | "enum" | "enum-constant" | "typedef" | "variable" | "guide" | "namespace-alias" | "using" | "concept") Discriminator selecting the symbol kind (e.g. `"function"`, `"record"`). Each concrete symbol type constrains this field to a single literal value.
id (required) string Stable, base64-encoded identifier used for cross-references between DOM objects.
access (required) string ("none" | "public" | "protected" | "private") Access specifier (`"public"`, `"protected"`, `"private"`); empty for namespace-scope members.
extraction (required) string ("regular" | "see-below" | "implementation-defined" | "dependency") Why the symbol was extracted: `"regular"`, `"see-below"`, `"implementation-defined"`, or `"dependency"`.
isCopyFromInherited (required) boolean True when the symbol is a synthesized copy of an inherited member (see the `inherit-base-members` configuration option).
parent (required) string Identifier of the enclosing scope, or empty when the symbol lives in the global namespace.
doc DocComment Parsed documentation comment attached to the symbol, or absent when the symbol is undocumented.
attributes (required) array of Attribute C++ attributes attached to the declaration, in source order.
scoped (required) boolean True for `enum class` / `enum struct`; false for unscoped enums.
underlyingType Type Underlying integer type, when an explicit one was specified.
constants (required) array of string Identifiers of the enum's constants, in declaration order.
class (required) "symbol" Tag set to the literal `"symbol"`. Lets templates discriminate symbol DOM objects from auxiliary types (`type`, `name`, etc.) without inspecting `kind`.
$meta object

EnumConstantSymbol

A single enumerator within an enum declaration.

Property Type Description
name string Unqualified name of the symbol, as written in the source.
loc (required) string Source location information for the symbol's declaration and definition.
kind (required) string ("namespace" | "record" | "function" | "overloads" | "enum" | "enum-constant" | "typedef" | "variable" | "guide" | "namespace-alias" | "using" | "concept") Discriminator selecting the symbol kind (e.g. `"function"`, `"record"`). Each concrete symbol type constrains this field to a single literal value.
id (required) string Stable, base64-encoded identifier used for cross-references between DOM objects.
access (required) string ("none" | "public" | "protected" | "private") Access specifier (`"public"`, `"protected"`, `"private"`); empty for namespace-scope members.
extraction (required) string ("regular" | "see-below" | "implementation-defined" | "dependency") Why the symbol was extracted: `"regular"`, `"see-below"`, `"implementation-defined"`, or `"dependency"`.
isCopyFromInherited (required) boolean True when the symbol is a synthesized copy of an inherited member (see the `inherit-base-members` configuration option).
parent (required) string Identifier of the enclosing scope, or empty when the symbol lives in the global namespace.
doc DocComment Parsed documentation comment attached to the symbol, or absent when the symbol is undocumented.
attributes (required) array of Attribute C++ attributes attached to the declaration, in source order.
initializer string Initializer expression as written, or empty when the enumerator takes its implicit value.
class (required) "symbol" Tag set to the literal `"symbol"`. Lets templates discriminate symbol DOM objects from auxiliary types (`type`, `name`, etc.) without inspecting `kind`.
$meta object

TypedefSymbol

A type alias declaration (`typedef` or `using`).

Property Type Description
name string Unqualified name of the symbol, as written in the source.
loc (required) string Source location information for the symbol's declaration and definition.
kind (required) string ("namespace" | "record" | "function" | "overloads" | "enum" | "enum-constant" | "typedef" | "variable" | "guide" | "namespace-alias" | "using" | "concept") Discriminator selecting the symbol kind (e.g. `"function"`, `"record"`). Each concrete symbol type constrains this field to a single literal value.
id (required) string Stable, base64-encoded identifier used for cross-references between DOM objects.
access (required) string ("none" | "public" | "protected" | "private") Access specifier (`"public"`, `"protected"`, `"private"`); empty for namespace-scope members.
extraction (required) string ("regular" | "see-below" | "implementation-defined" | "dependency") Why the symbol was extracted: `"regular"`, `"see-below"`, `"implementation-defined"`, or `"dependency"`.
isCopyFromInherited (required) boolean True when the symbol is a synthesized copy of an inherited member (see the `inherit-base-members` configuration option).
parent (required) string Identifier of the enclosing scope, or empty when the symbol lives in the global namespace.
doc DocComment Parsed documentation comment attached to the symbol, or absent when the symbol is undocumented.
attributes (required) array of Attribute C++ attributes attached to the declaration, in source order.
type (required) Type Aliased type.
isUsing (required) boolean True for `using`-style aliases; false for the `typedef` keyword.
template TemplateInfo Template head if this is an alias template; absent for non-templates.
class (required) "symbol" Tag set to the literal `"symbol"`. Lets templates discriminate symbol DOM objects from auxiliary types (`type`, `name`, etc.) without inspecting `kind`.
$meta object

VariableSymbol

A variable declaration: namespace-scope variable, static data member, or non-static data member.

Property Type Description
name string Unqualified name of the symbol, as written in the source.
loc (required) string Source location information for the symbol's declaration and definition.
kind (required) string ("namespace" | "record" | "function" | "overloads" | "enum" | "enum-constant" | "typedef" | "variable" | "guide" | "namespace-alias" | "using" | "concept") Discriminator selecting the symbol kind (e.g. `"function"`, `"record"`). Each concrete symbol type constrains this field to a single literal value.
id (required) string Stable, base64-encoded identifier used for cross-references between DOM objects.
access (required) string ("none" | "public" | "protected" | "private") Access specifier (`"public"`, `"protected"`, `"private"`); empty for namespace-scope members.
extraction (required) string ("regular" | "see-below" | "implementation-defined" | "dependency") Why the symbol was extracted: `"regular"`, `"see-below"`, `"implementation-defined"`, or `"dependency"`.
isCopyFromInherited (required) boolean True when the symbol is a synthesized copy of an inherited member (see the `inherit-base-members` configuration option).
parent (required) string Identifier of the enclosing scope, or empty when the symbol lives in the global namespace.
doc DocComment Parsed documentation comment attached to the symbol, or absent when the symbol is undocumented.
attributes (required) array of Attribute C++ attributes attached to the declaration, in source order.
type (required) Type Declared type of the variable.
template TemplateInfo Template head if this is a variable template.
initializer string Initializer expression as written, or empty when the variable has no initializer.
storageClass string ("none" | "extern" | "static" | "auto" | "register") Storage class: `"static"`, `"extern"`, `"thread_local"`, etc., or empty.
isInline (required) boolean True when the variable is declared `inline`.
isConstexpr (required) boolean True when the variable is declared `constexpr`.
isConstinit (required) boolean True when the variable is declared `constinit`.
isThreadLocal (required) boolean True when the variable has thread-storage duration.
isRecordField (required) boolean True when the variable is a non-static data member of a class, struct, or union.
isMutable (required) boolean True when the data member is declared `mutable`.
isVariant (required) boolean True when the data member is part of an anonymous union.
isBitfield (required) boolean True when the data member is a bit-field.
bitfieldWidth string Bit-field width expression, when the member is a bit-field.
class (required) "symbol" Tag set to the literal `"symbol"`. Lets templates discriminate symbol DOM objects from auxiliary types (`type`, `name`, etc.) without inspecting `kind`.
$meta object

GuideSymbol

A user-provided class-template deduction guide.

Property Type Description
name string Unqualified name of the symbol, as written in the source.
loc (required) string Source location information for the symbol's declaration and definition.
kind (required) string ("namespace" | "record" | "function" | "overloads" | "enum" | "enum-constant" | "typedef" | "variable" | "guide" | "namespace-alias" | "using" | "concept") Discriminator selecting the symbol kind (e.g. `"function"`, `"record"`). Each concrete symbol type constrains this field to a single literal value.
id (required) string Stable, base64-encoded identifier used for cross-references between DOM objects.
access (required) string ("none" | "public" | "protected" | "private") Access specifier (`"public"`, `"protected"`, `"private"`); empty for namespace-scope members.
extraction (required) string ("regular" | "see-below" | "implementation-defined" | "dependency") Why the symbol was extracted: `"regular"`, `"see-below"`, `"implementation-defined"`, or `"dependency"`.
isCopyFromInherited (required) boolean True when the symbol is a synthesized copy of an inherited member (see the `inherit-base-members` configuration option).
parent (required) string Identifier of the enclosing scope, or empty when the symbol lives in the global namespace.
doc DocComment Parsed documentation comment attached to the symbol, or absent when the symbol is undocumented.
attributes (required) array of Attribute C++ attributes attached to the declaration, in source order.
deduced (required) Type Deduced class-template specialization the guide produces.
template TemplateInfo Template parameters of the deduction guide.
params (required) array of Param Parameter list used for argument deduction.
explicit (required) string Rendered `explicit` specifier, if any.
class (required) "symbol" Tag set to the literal `"symbol"`. Lets templates discriminate symbol DOM objects from auxiliary types (`type`, `name`, etc.) without inspecting `kind`.
$meta object

NamespaceAliasSymbol

A namespace-alias declaration (`namespace alias = target;`).

Property Type Description
name string Unqualified name of the symbol, as written in the source.
loc (required) string Source location information for the symbol's declaration and definition.
kind (required) string ("namespace" | "record" | "function" | "overloads" | "enum" | "enum-constant" | "typedef" | "variable" | "guide" | "namespace-alias" | "using" | "concept") Discriminator selecting the symbol kind (e.g. `"function"`, `"record"`). Each concrete symbol type constrains this field to a single literal value.
id (required) string Stable, base64-encoded identifier used for cross-references between DOM objects.
access (required) string ("none" | "public" | "protected" | "private") Access specifier (`"public"`, `"protected"`, `"private"`); empty for namespace-scope members.
extraction (required) string ("regular" | "see-below" | "implementation-defined" | "dependency") Why the symbol was extracted: `"regular"`, `"see-below"`, `"implementation-defined"`, or `"dependency"`.
isCopyFromInherited (required) boolean True when the symbol is a synthesized copy of an inherited member (see the `inherit-base-members` configuration option).
parent (required) string Identifier of the enclosing scope, or empty when the symbol lives in the global namespace.
doc DocComment Parsed documentation comment attached to the symbol, or absent when the symbol is undocumented.
attributes (required) array of Attribute C++ attributes attached to the declaration, in source order.
aliasedSymbol (required) IdentifierName Reference to the namespace this alias refers to.
class (required) "symbol" Tag set to the literal `"symbol"`. Lets templates discriminate symbol DOM objects from auxiliary types (`type`, `name`, etc.) without inspecting `kind`.
$meta object

UsingSymbol

A `using`-declaration (introduces names from another scope, including using-enum).

Property Type Description
name string Unqualified name of the symbol, as written in the source.
loc (required) string Source location information for the symbol's declaration and definition.
kind (required) string ("namespace" | "record" | "function" | "overloads" | "enum" | "enum-constant" | "typedef" | "variable" | "guide" | "namespace-alias" | "using" | "concept") Discriminator selecting the symbol kind (e.g. `"function"`, `"record"`). Each concrete symbol type constrains this field to a single literal value.
id (required) string Stable, base64-encoded identifier used for cross-references between DOM objects.
access (required) string ("none" | "public" | "protected" | "private") Access specifier (`"public"`, `"protected"`, `"private"`); empty for namespace-scope members.
extraction (required) string ("regular" | "see-below" | "implementation-defined" | "dependency") Why the symbol was extracted: `"regular"`, `"see-below"`, `"implementation-defined"`, or `"dependency"`.
isCopyFromInherited (required) boolean True when the symbol is a synthesized copy of an inherited member (see the `inherit-base-members` configuration option).
parent (required) string Identifier of the enclosing scope, or empty when the symbol lives in the global namespace.
doc DocComment Parsed documentation comment attached to the symbol, or absent when the symbol is undocumented.
attributes (required) array of Attribute C++ attributes attached to the declaration, in source order.
class (required) "symbol" Tag set to the literal `"symbol"`. Lets templates discriminate symbol DOM objects from auxiliary types (`type`, `name`, etc.) without inspecting `kind`.
introducedName (required) Name Name introduced into the current scope, qualified by the source scope.
shadowDeclarations (required) array of string Symbols brought into scope by the using-declaration.
$meta object

ConceptSymbol

A concept declaration.

Property Type Description
name string Unqualified name of the symbol, as written in the source.
loc (required) string Source location information for the symbol's declaration and definition.
kind (required) string ("namespace" | "record" | "function" | "overloads" | "enum" | "enum-constant" | "typedef" | "variable" | "guide" | "namespace-alias" | "using" | "concept") Discriminator selecting the symbol kind (e.g. `"function"`, `"record"`). Each concrete symbol type constrains this field to a single literal value.
id (required) string Stable, base64-encoded identifier used for cross-references between DOM objects.
access (required) string ("none" | "public" | "protected" | "private") Access specifier (`"public"`, `"protected"`, `"private"`); empty for namespace-scope members.
extraction (required) string ("regular" | "see-below" | "implementation-defined" | "dependency") Why the symbol was extracted: `"regular"`, `"see-below"`, `"implementation-defined"`, or `"dependency"`.
isCopyFromInherited (required) boolean True when the symbol is a synthesized copy of an inherited member (see the `inherit-base-members` configuration option).
parent (required) string Identifier of the enclosing scope, or empty when the symbol lives in the global namespace.
doc DocComment Parsed documentation comment attached to the symbol, or absent when the symbol is undocumented.
attributes (required) array of Attribute C++ attributes attached to the declaration, in source order.
template TemplateInfo Concept's template parameter list.
constraint string Constraint expression that defines the concept.
class (required) "symbol" Tag set to the literal `"symbol"`. Lets templates discriminate symbol DOM objects from auxiliary types (`type`, `name`, etc.) without inspecting `kind`.
$meta object

NamedType

A type referred to by name (a class, an enum, a typedef, or a fundamental type like `int`).

Property Type Description
kind (required) string Discriminator selecting the type kind. Each concrete type constrains this field to a single literal value.
isPackExpansion (required) boolean True when the type appears as the pattern of a pack expansion (`T...`).
isConst (required) boolean True when the type carries a top-level `const` qualifier.
isVolatile (required) boolean True when the type carries a top-level `volatile` qualifier.
constraints (required) array of string Constraint expressions associated with the type, such as those discovered by SFINAE detection around `std::enable_if_t<..., T>`.
name (required) Name The name as written, including any qualifications and template arguments.
fundamentalType string Fundamental-type tag (`"int"`, `"double"`, ...) when the named type is a built-in type; empty otherwise.
$meta object

DecltypeType

A type expressed as `decltype(expr)`.

Property Type Description
kind (required) string Discriminator selecting the type kind. Each concrete type constrains this field to a single literal value.
isPackExpansion (required) boolean True when the type appears as the pattern of a pack expansion (`T...`).
isConst (required) boolean True when the type carries a top-level `const` qualifier.
isVolatile (required) boolean True when the type carries a top-level `volatile` qualifier.
constraints (required) array of string Constraint expressions associated with the type, such as those discovered by SFINAE detection around `std::enable_if_t<..., T>`.
operand string The expression inside `decltype(...)`.
$meta object

AutoType

A placeholder type introduced by `auto` or `decltype(auto)`.

Property Type Description
kind (required) string Discriminator selecting the type kind. Each concrete type constrains this field to a single literal value.
isPackExpansion (required) boolean True when the type appears as the pattern of a pack expansion (`T...`).
isConst (required) boolean True when the type carries a top-level `const` qualifier.
isVolatile (required) boolean True when the type carries a top-level `volatile` qualifier.
constraints (required) array of string Constraint expressions associated with the type, such as those discovered by SFINAE detection around `std::enable_if_t<..., T>`.
keyword (required) string Which placeholder was used: `"auto"` or `"decltype(auto)"`.
constraint Name Concept constraint applied to the placeholder, if any.
$meta object

LValueReferenceType

An lvalue-reference type (`T&`).

Property Type Description
kind (required) string Discriminator selecting the type kind. Each concrete type constrains this field to a single literal value.
isPackExpansion (required) boolean True when the type appears as the pattern of a pack expansion (`T...`).
isConst (required) boolean True when the type carries a top-level `const` qualifier.
isVolatile (required) boolean True when the type carries a top-level `volatile` qualifier.
constraints (required) array of string Constraint expressions associated with the type, such as those discovered by SFINAE detection around `std::enable_if_t<..., T>`.
pointeeType (required) Type The referenced type.
$meta object

RValueReferenceType

An rvalue-reference type (`T&&`).

Property Type Description
kind (required) string Discriminator selecting the type kind. Each concrete type constrains this field to a single literal value.
isPackExpansion (required) boolean True when the type appears as the pattern of a pack expansion (`T...`).
isConst (required) boolean True when the type carries a top-level `const` qualifier.
isVolatile (required) boolean True when the type carries a top-level `volatile` qualifier.
constraints (required) array of string Constraint expressions associated with the type, such as those discovered by SFINAE detection around `std::enable_if_t<..., T>`.
pointeeType (required) Type The referenced type.
$meta object

PointerType

A pointer type (`T*`).

Property Type Description
kind (required) string Discriminator selecting the type kind. Each concrete type constrains this field to a single literal value.
isPackExpansion (required) boolean True when the type appears as the pattern of a pack expansion (`T...`).
isConst (required) boolean True when the type carries a top-level `const` qualifier.
isVolatile (required) boolean True when the type carries a top-level `volatile` qualifier.
constraints (required) array of string Constraint expressions associated with the type, such as those discovered by SFINAE detection around `std::enable_if_t<..., T>`.
pointeeType (required) Type The pointed-to type.
$meta object

MemberPointerType

A pointer-to-member type (`T C::*`).

Property Type Description
kind (required) string Discriminator selecting the type kind. Each concrete type constrains this field to a single literal value.
isPackExpansion (required) boolean True when the type appears as the pattern of a pack expansion (`T...`).
isConst (required) boolean True when the type carries a top-level `const` qualifier.
isVolatile (required) boolean True when the type carries a top-level `volatile` qualifier.
constraints (required) array of string Constraint expressions associated with the type, such as those discovered by SFINAE detection around `std::enable_if_t<..., T>`.
parentType (required) Type The class type the pointer is a member of.
pointeeType (required) Type The type of the member being pointed to.
$meta object

ArrayType

An array type (`T[N]`).

Property Type Description
kind (required) string Discriminator selecting the type kind. Each concrete type constrains this field to a single literal value.
isPackExpansion (required) boolean True when the type appears as the pattern of a pack expansion (`T...`).
isConst (required) boolean True when the type carries a top-level `const` qualifier.
isVolatile (required) boolean True when the type carries a top-level `volatile` qualifier.
constraints (required) array of string Constraint expressions associated with the type, such as those discovered by SFINAE detection around `std::enable_if_t<..., T>`.
elementType (required) Type The element type.
bounds string Array bound expression as written, or empty for unknown-bound arrays.
$meta object

FunctionType

A function type (used for function pointers, pointers-to-members, etc.).

Property Type Description
kind (required) string Discriminator selecting the type kind. Each concrete type constrains this field to a single literal value.
isPackExpansion (required) boolean True when the type appears as the pattern of a pack expansion (`T...`).
isConst (required) boolean True when the type carries a top-level `const` qualifier.
isVolatile (required) boolean True when the type carries a top-level `volatile` qualifier.
constraints (required) array of string Constraint expressions associated with the type, such as those discovered by SFINAE detection around `std::enable_if_t<..., T>`.
returnType (required) Type The return type.
paramTypes (required) array of Type Parameter types, in declaration order.
refQualifier string Reference qualifier on the implicit object parameter (for member-function types): `"&"`, `"&&"`, or empty.
exceptionSpec (required) string Rendered exception specification, if any.
isVariadic (required) boolean True when the function type accepts a C-style `...` argument list.
$meta object

IdentifierName

A plain (possibly qualified) name without template arguments, e.g. `std::vector` or `MyClass::nested`.

Property Type Description
kind (required) string ("identifier" | "specialization") Discriminator selecting the name kind. Each concrete name constrains this field to a single literal value.
id (required) string Identifier of the named symbol when it lives in the corpus; empty when the name refers to something outside it.
identifier string Unqualified spelling of the name, as written in the source.
prefix Name Qualifying prefix (the `A::B::` part of `A::B::Name`); absent when the name is unqualified.
$meta object

SpecializationName

A template-id: a name applied to template arguments, e.g. `std::vector<int>` or `Outer<T>::Inner`.

Property Type Description
kind (required) string ("identifier" | "specialization") Discriminator selecting the name kind. Each concrete name constrains this field to a single literal value.
id (required) string Identifier of the named symbol when it lives in the corpus; empty when the name refers to something outside it.
identifier string Unqualified spelling of the name, as written in the source.
prefix Name Qualifying prefix (the `A::B::` part of `A::B::Name`); absent when the name is unqualified.
templateArgs (required) array of TArg Template arguments applied to the name, in declaration order.
$meta object

TypeTParam

A type template parameter (`template <typename T>` or `template <class T>`).

Property Type Description
kind (required) string ("type" | "constant" | "template") Discriminator selecting the template-parameter kind. Each concrete TParam constrains this field to a single literal value.
name string Parameter name as written; empty for unnamed template parameters.
isParameterPack (required) boolean True when the template parameter is a parameter pack (`typename... Ts`, `int... Ns`, etc.).
default TArg Default argument expression as written; absent when the parameter has no default.
keyKind (required) string ("class" | "typename") Introducing keyword: `"typename"` or `"class"`.
constraint Name Concept constraint applied to the parameter, if any.
$meta object

ConstantTParam

A non-type template parameter (`template <int N>`, `template <auto V>`, ...).

Property Type Description
kind (required) string ("type" | "constant" | "template") Discriminator selecting the template-parameter kind. Each concrete TParam constrains this field to a single literal value.
name string Parameter name as written; empty for unnamed template parameters.
isParameterPack (required) boolean True when the template parameter is a parameter pack (`typename... Ts`, `int... Ns`, etc.).
default TArg Default argument expression as written; absent when the parameter has no default.
type (required) Type Declared type of the parameter.
$meta object

TemplateTParam

A template template parameter (`template <template <typename> class C>`).

Property Type Description
kind (required) string ("type" | "constant" | "template") Discriminator selecting the template-parameter kind. Each concrete TParam constrains this field to a single literal value.
name string Parameter name as written; empty for unnamed template parameters.
isParameterPack (required) boolean True when the template parameter is a parameter pack (`typename... Ts`, `int... Ns`, etc.).
default TArg Default argument expression as written; absent when the parameter has no default.
params (required) array of TParam Inner template parameter list of the parameter.
$meta object

TypeTArg

A template argument that is a type, e.g. `int` in `std::vector<int>`.

Property Type Description
kind (required) string ("type" | "constant" | "template") Discriminator selecting the template-argument kind. Each concrete TArg constrains this field to a single literal value.
isPackExpansion (required) boolean True when the argument is a pack expansion (`Args...`).
type (required) Type The argument type.
$meta object

ConstantTArg

A template argument that is a non-type value, e.g. `42` in `std::array<int, 42>`.

Property Type Description
kind (required) string ("type" | "constant" | "template") Discriminator selecting the template-argument kind. Each concrete TArg constrains this field to a single literal value.
isPackExpansion (required) boolean True when the argument is a pack expansion (`Args...`).
value string The argument expression as written.
$meta object

TemplateTArg

A template argument that is itself a template, used for template-template parameters.

Property Type Description
kind (required) string ("type" | "constant" | "template") Discriminator selecting the template-argument kind. Each concrete TArg constrains this field to a single literal value.
isPackExpansion (required) boolean True when the argument is a pack expansion (`Args...`).
template (required) string Identifier of the referenced template.
name string Name of the template as written.
$meta object

AdmonitionBlock

An admonition (note, warning, etc.) container introduced by `@note`, `@warning`, and similar commands.

Property Type Description
kind (required) string ("admonition" | "brief" | "code" | "heading" | "paragraph" | "list" | "definition-list" | "quote" | "thematic-break" | "footnote-definition" | "table" | "math" | "param" | "postcondition" | "precondition" | "returns" | "see" | "throws" | "t-param") Discriminator selecting the doc-block kind. Each concrete block constrains this field to a single literal value.
blocks (required) array of Block Block-level children in document order.
admonish (required) string ("none" | "note" | "tip" | "important" | "caution" | "warning") Admonition kind: `"note"`, `"tip"`, `"important"`, `"caution"`, or `"warning"`.
$meta object

BriefBlock

The brief description of a symbol, sourced from a `@brief` command, `@copybrief` reference, or the first sentence of the doc comment.

Property Type Description
kind (required) string ("admonition" | "brief" | "code" | "heading" | "paragraph" | "list" | "definition-list" | "quote" | "thematic-break" | "footnote-definition" | "table" | "math" | "param" | "postcondition" | "precondition" | "returns" | "see" | "throws" | "t-param") Discriminator selecting the doc-block kind. Each concrete block constrains this field to a single literal value.
children (required) array of Inline Inline-level children in document order.
copiedFrom (required) array of string Identifier of the symbol the brief was copied from via `@copybrief`, or empty.
$meta object

CodeBlock

A fenced code block in the doc comment.

Property Type Description
kind (required) string ("admonition" | "brief" | "code" | "heading" | "paragraph" | "list" | "definition-list" | "quote" | "thematic-break" | "footnote-definition" | "table" | "math" | "param" | "postcondition" | "precondition" | "returns" | "see" | "throws" | "t-param") Discriminator selecting the doc-block kind. Each concrete block constrains this field to a single literal value.
literal string Verbatim contents of the code block.
info string Info string after the opening fence (typically the language identifier, e.g. `"cpp"`).
$meta object

HeadingBlock

A heading within the doc comment.

Property Type Description
kind (required) string ("admonition" | "brief" | "code" | "heading" | "paragraph" | "list" | "definition-list" | "quote" | "thematic-break" | "footnote-definition" | "table" | "math" | "param" | "postcondition" | "precondition" | "returns" | "see" | "throws" | "t-param") Discriminator selecting the doc-block kind. Each concrete block constrains this field to a single literal value.
children (required) array of Inline Inline-level children in document order.
level (required) integer Heading depth (1 for top-level, 2 for second-level, and so on).
$meta object

ParagraphBlock

A paragraph: a sequence of inline elements terminated by a blank line.

Property Type Description
kind (required) string ("admonition" | "brief" | "code" | "heading" | "paragraph" | "list" | "definition-list" | "quote" | "thematic-break" | "footnote-definition" | "table" | "math" | "param" | "postcondition" | "precondition" | "returns" | "see" | "throws" | "t-param") Discriminator selecting the doc-block kind. Each concrete block constrains this field to a single literal value.
children (required) array of Inline Inline-level children in document order.
$meta object

ListBlock

An ordered or unordered list.

Property Type Description
kind (required) string ("admonition" | "brief" | "code" | "heading" | "paragraph" | "list" | "definition-list" | "quote" | "thematic-break" | "footnote-definition" | "table" | "math" | "param" | "postcondition" | "precondition" | "returns" | "see" | "throws" | "t-param") Discriminator selecting the doc-block kind. Each concrete block constrains this field to a single literal value.
items (required) array of ListItem List items, each holding a sequence of blocks.
listKind (required) string ("unordered" | "ordered") Whether the list is ordered or unordered.
$meta object

DefinitionListBlock

A definition list (terms with descriptions).

Property Type Description
kind (required) string ("admonition" | "brief" | "code" | "heading" | "paragraph" | "list" | "definition-list" | "quote" | "thematic-break" | "footnote-definition" | "table" | "math" | "param" | "postcondition" | "precondition" | "returns" | "see" | "throws" | "t-param") Discriminator selecting the doc-block kind. Each concrete block constrains this field to a single literal value.
items (required) array of DefinitionListItem Definition-list items, each pairing a term with its description.
$meta object

QuoteBlock

A block-level quotation, holding nested blocks.

Property Type Description
kind (required) string ("admonition" | "brief" | "code" | "heading" | "paragraph" | "list" | "definition-list" | "quote" | "thematic-break" | "footnote-definition" | "table" | "math" | "param" | "postcondition" | "precondition" | "returns" | "see" | "throws" | "t-param") Discriminator selecting the doc-block kind. Each concrete block constrains this field to a single literal value.
blocks (required) array of Block Block-level children in document order.
$meta object

ThematicBreakBlock

A horizontal rule (`---`) separating sections.

Property Type Description
kind (required) string ("admonition" | "brief" | "code" | "heading" | "paragraph" | "list" | "definition-list" | "quote" | "thematic-break" | "footnote-definition" | "table" | "math" | "param" | "postcondition" | "precondition" | "returns" | "see" | "throws" | "t-param") Discriminator selecting the doc-block kind. Each concrete block constrains this field to a single literal value.
$meta object

FootnoteDefinitionBlock

A footnote definition referenced by a `FootnoteReferenceInline` elsewhere in the comment.

Property Type Description
kind (required) string ("admonition" | "brief" | "code" | "heading" | "paragraph" | "list" | "definition-list" | "quote" | "thematic-break" | "footnote-definition" | "table" | "math" | "param" | "postcondition" | "precondition" | "returns" | "see" | "throws" | "t-param") Discriminator selecting the doc-block kind. Each concrete block constrains this field to a single literal value.
blocks (required) array of Block Block-level children in document order.
label string Label that footnote references use to point at this definition.
$meta object

TableBlock

A table with header and body rows.

Property Type Description
kind (required) string ("admonition" | "brief" | "code" | "heading" | "paragraph" | "list" | "definition-list" | "quote" | "thematic-break" | "footnote-definition" | "table" | "math" | "param" | "postcondition" | "precondition" | "returns" | "see" | "throws" | "t-param") Discriminator selecting the doc-block kind. Each concrete block constrains this field to a single literal value.
alignments (required) array of string ("none" | "left" | "center" | "right") Per-column alignment for the table.
items (required) array of TableRow Rows of the table, each a sequence of cells.
$meta object

MathBlock

A display-math block.

Property Type Description
kind (required) string ("admonition" | "brief" | "code" | "heading" | "paragraph" | "list" | "definition-list" | "quote" | "thematic-break" | "footnote-definition" | "table" | "math" | "param" | "postcondition" | "precondition" | "returns" | "see" | "throws" | "t-param") Discriminator selecting the doc-block kind. Each concrete block constrains this field to a single literal value.
literal string Verbatim TeX/LaTeX source for the formula.
$meta object

ParamBlock

Documentation of a function parameter, sourced from a `@param` command.

Property Type Description
kind (required) string ("admonition" | "brief" | "code" | "heading" | "paragraph" | "list" | "definition-list" | "quote" | "thematic-break" | "footnote-definition" | "table" | "math" | "param" | "postcondition" | "precondition" | "returns" | "see" | "throws" | "t-param") Discriminator selecting the doc-block kind. Each concrete block constrains this field to a single literal value.
children (required) array of Inline Inline-level children in document order.
name string Name of the documented parameter (matches a parameter of the enclosing function).
direction (required) string ("none" | "in" | "out" | "inout") Parameter direction (`"in"`, `"out"`, `"inout"`), or empty when unspecified.
$meta object

PostconditionBlock

A `@post` clause describing a function postcondition.

Property Type Description
kind (required) string ("admonition" | "brief" | "code" | "heading" | "paragraph" | "list" | "definition-list" | "quote" | "thematic-break" | "footnote-definition" | "table" | "math" | "param" | "postcondition" | "precondition" | "returns" | "see" | "throws" | "t-param") Discriminator selecting the doc-block kind. Each concrete block constrains this field to a single literal value.
children (required) array of Inline Inline-level children in document order.
$meta object

PreconditionBlock

A `@pre` clause describing a function precondition.

Property Type Description
kind (required) string ("admonition" | "brief" | "code" | "heading" | "paragraph" | "list" | "definition-list" | "quote" | "thematic-break" | "footnote-definition" | "table" | "math" | "param" | "postcondition" | "precondition" | "returns" | "see" | "throws" | "t-param") Discriminator selecting the doc-block kind. Each concrete block constrains this field to a single literal value.
children (required) array of Inline Inline-level children in document order.
$meta object

ReturnsBlock

Documentation of the function's return value, sourced from a `@returns` / `@return` command.

Property Type Description
kind (required) string ("admonition" | "brief" | "code" | "heading" | "paragraph" | "list" | "definition-list" | "quote" | "thematic-break" | "footnote-definition" | "table" | "math" | "param" | "postcondition" | "precondition" | "returns" | "see" | "throws" | "t-param") Discriminator selecting the doc-block kind. Each concrete block constrains this field to a single literal value.
children (required) array of Inline Inline-level children in document order.
$meta object

SeeBlock

A `@see` cross-reference clause.

Property Type Description
kind (required) string ("admonition" | "brief" | "code" | "heading" | "paragraph" | "list" | "definition-list" | "quote" | "thematic-break" | "footnote-definition" | "table" | "math" | "param" | "postcondition" | "precondition" | "returns" | "see" | "throws" | "t-param") Discriminator selecting the doc-block kind. Each concrete block constrains this field to a single literal value.
children (required) array of Inline Inline-level children in document order.
$meta object

ThrowsBlock

Documentation of an exception thrown by the function, sourced from a `@throws` / `@throw` / `@exception` command.

Property Type Description
kind (required) string ("admonition" | "brief" | "code" | "heading" | "paragraph" | "list" | "definition-list" | "quote" | "thematic-break" | "footnote-definition" | "table" | "math" | "param" | "postcondition" | "precondition" | "returns" | "see" | "throws" | "t-param") Discriminator selecting the doc-block kind. Each concrete block constrains this field to a single literal value.
children (required) array of Inline Inline-level children in document order.
exception (required) ReferenceInline Name of the exception type the function may throw.
$meta object

TParamBlock

Documentation of a template parameter, sourced from a `@tparam` command.

Property Type Description
kind (required) string ("admonition" | "brief" | "code" | "heading" | "paragraph" | "list" | "definition-list" | "quote" | "thematic-break" | "footnote-definition" | "table" | "math" | "param" | "postcondition" | "precondition" | "returns" | "see" | "throws" | "t-param") Discriminator selecting the doc-block kind. Each concrete block constrains this field to a single literal value.
children (required) array of Inline Inline-level children in document order.
name string Name of the documented template parameter.
$meta object

ReferenceInline

A cross-reference to a symbol in the corpus, produced by `@ref`, `@p`, or implicit name lookup.

Property Type Description
kind (required) string ("reference" | "copy-details" | "link" | "text" | "soft-break" | "line-break" | "code" | "emph" | "strong" | "image" | "footnote-reference" | "strikethrough" | "math" | "superscript" | "subscript" | "highlight") Discriminator selecting the doc-inline kind. Each concrete inline constrains this field to a single literal value.
literal string The reference text as written in the doc comment.
id (required) string Identifier of the resolved target, or empty when the reference could not be resolved.
$meta object

CopyDetailsInline

A pending `@copydetails` reference. Resolved during doc-comment finalization; surviving instances indicate an unresolved reference.

Property Type Description
kind (required) string ("reference" | "copy-details" | "link" | "text" | "soft-break" | "line-break" | "code" | "emph" | "strong" | "image" | "footnote-reference" | "strikethrough" | "math" | "superscript" | "subscript" | "highlight") Discriminator selecting the doc-inline kind. Each concrete inline constrains this field to a single literal value.
string string The reference string as written after `@copydetails`.
id (required) string Identifier of the referenced symbol once resolved, or empty if the reference could not be resolved.
$meta object

A hyperlink whose visible text is the contained inlines.

Property Type Description
kind (required) string ("reference" | "copy-details" | "link" | "text" | "soft-break" | "line-break" | "code" | "emph" | "strong" | "image" | "footnote-reference" | "strikethrough" | "math" | "superscript" | "subscript" | "highlight") Discriminator selecting the doc-inline kind. Each concrete inline constrains this field to a single literal value.
children (required) array of Inline Inline-level children in document order.
href string Target URL of the link.
$meta object

TextInline

A run of plain text within a paragraph or other inline container.

Property Type Description
kind (required) string ("reference" | "copy-details" | "link" | "text" | "soft-break" | "line-break" | "code" | "emph" | "strong" | "image" | "footnote-reference" | "strikethrough" | "math" | "superscript" | "subscript" | "highlight") Discriminator selecting the doc-inline kind. Each concrete inline constrains this field to a single literal value.
literal string Verbatim text content.
$meta object

SoftBreakInline

A soft line break within a paragraph (rendered as whitespace by most generators).

Property Type Description
kind (required) string ("reference" | "copy-details" | "link" | "text" | "soft-break" | "line-break" | "code" | "emph" | "strong" | "image" | "footnote-reference" | "strikethrough" | "math" | "superscript" | "subscript" | "highlight") Discriminator selecting the doc-inline kind. Each concrete inline constrains this field to a single literal value.
$meta object

LineBreakInline

A hard line break within a paragraph (`<br>`-equivalent).

Property Type Description
kind (required) string ("reference" | "copy-details" | "link" | "text" | "soft-break" | "line-break" | "code" | "emph" | "strong" | "image" | "footnote-reference" | "strikethrough" | "math" | "superscript" | "subscript" | "highlight") Discriminator selecting the doc-inline kind. Each concrete inline constrains this field to a single literal value.
$meta object

CodeInline

An inline code span (`` `like this` ``).

Property Type Description
kind (required) string ("reference" | "copy-details" | "link" | "text" | "soft-break" | "line-break" | "code" | "emph" | "strong" | "image" | "footnote-reference" | "strikethrough" | "math" | "superscript" | "subscript" | "highlight") Discriminator selecting the doc-inline kind. Each concrete inline constrains this field to a single literal value.
children (required) array of Inline Inline-level children in document order.
$meta object

EmphInline

Emphasized inline text (typically rendered italic).

Property Type Description
kind (required) string ("reference" | "copy-details" | "link" | "text" | "soft-break" | "line-break" | "code" | "emph" | "strong" | "image" | "footnote-reference" | "strikethrough" | "math" | "superscript" | "subscript" | "highlight") Discriminator selecting the doc-inline kind. Each concrete inline constrains this field to a single literal value.
children (required) array of Inline Inline-level children in document order.
$meta object

StrongInline

Strongly emphasized inline text (typically rendered bold).

Property Type Description
kind (required) string ("reference" | "copy-details" | "link" | "text" | "soft-break" | "line-break" | "code" | "emph" | "strong" | "image" | "footnote-reference" | "strikethrough" | "math" | "superscript" | "subscript" | "highlight") Discriminator selecting the doc-inline kind. Each concrete inline constrains this field to a single literal value.
children (required) array of Inline Inline-level children in document order.
$meta object

ImageInline

An inline image.

Property Type Description
kind (required) string ("reference" | "copy-details" | "link" | "text" | "soft-break" | "line-break" | "code" | "emph" | "strong" | "image" | "footnote-reference" | "strikethrough" | "math" | "superscript" | "subscript" | "highlight") Discriminator selecting the doc-inline kind. Each concrete inline constrains this field to a single literal value.
children (required) array of Inline Inline-level children in document order.
src string Image source URL or path.
alt string Alternative text for the image.
$meta object

FootnoteReferenceInline

An inline reference pointing at a `FootnoteDefinitionBlock` with the matching label.

Property Type Description
kind (required) string ("reference" | "copy-details" | "link" | "text" | "soft-break" | "line-break" | "code" | "emph" | "strong" | "image" | "footnote-reference" | "strikethrough" | "math" | "superscript" | "subscript" | "highlight") Discriminator selecting the doc-inline kind. Each concrete inline constrains this field to a single literal value.
label string Label of the footnote being referenced.
$meta object

StrikethroughInline

Inline text with strikethrough styling.

Property Type Description
kind (required) string ("reference" | "copy-details" | "link" | "text" | "soft-break" | "line-break" | "code" | "emph" | "strong" | "image" | "footnote-reference" | "strikethrough" | "math" | "superscript" | "subscript" | "highlight") Discriminator selecting the doc-inline kind. Each concrete inline constrains this field to a single literal value.
children (required) array of Inline Inline-level children in document order.
$meta object

MathInline

An inline math span.

Property Type Description
kind (required) string ("reference" | "copy-details" | "link" | "text" | "soft-break" | "line-break" | "code" | "emph" | "strong" | "image" | "footnote-reference" | "strikethrough" | "math" | "superscript" | "subscript" | "highlight") Discriminator selecting the doc-inline kind. Each concrete inline constrains this field to a single literal value.
literal string Verbatim TeX/LaTeX source for the formula.
$meta object

SuperscriptInline

Inline text rendered as superscript.

Property Type Description
kind (required) string ("reference" | "copy-details" | "link" | "text" | "soft-break" | "line-break" | "code" | "emph" | "strong" | "image" | "footnote-reference" | "strikethrough" | "math" | "superscript" | "subscript" | "highlight") Discriminator selecting the doc-inline kind. Each concrete inline constrains this field to a single literal value.
children (required) array of Inline Inline-level children in document order.
$meta object

SubscriptInline

Inline text rendered as subscript.

Property Type Description
kind (required) string ("reference" | "copy-details" | "link" | "text" | "soft-break" | "line-break" | "code" | "emph" | "strong" | "image" | "footnote-reference" | "strikethrough" | "math" | "superscript" | "subscript" | "highlight") Discriminator selecting the doc-inline kind. Each concrete inline constrains this field to a single literal value.
children (required) array of Inline Inline-level children in document order.
$meta object

HighlightInline

Inline text rendered with highlight (e.g. `<mark>`) styling.

Property Type Description
kind (required) string ("reference" | "copy-details" | "link" | "text" | "soft-break" | "line-break" | "code" | "emph" | "strong" | "image" | "footnote-reference" | "strikethrough" | "math" | "superscript" | "subscript" | "highlight") Discriminator selecting the doc-inline kind. Each concrete inline constrains this field to a single literal value.
children (required) array of Inline Inline-level children in document order.
$meta object

OtherAttribute

An attribute mrdocs does not recognize specially; `name` holds the spelling as written.

Property Type Description
kind (required) string The attribute kind as a string (e.g. `"deprecated"`, `"no-unique-address"`).
name string The attribute name in its normalized standard spelling (e.g. `deprecated`); for the `other` kind, the spelling as written, including any scope (e.g. `gnu::custom`).
balancedTokens (required) array of string The attribute arguments as a balanced-token sequence; empty for attributes that take no arguments.
$meta object

NoreturnAttribute

The `[[noreturn]]` attribute.

Property Type Description
kind (required) string The attribute kind as a string (e.g. `"deprecated"`, `"no-unique-address"`).
name string The attribute name in its normalized standard spelling (e.g. `deprecated`); for the `other` kind, the spelling as written, including any scope (e.g. `gnu::custom`).
balancedTokens (required) array of string The attribute arguments as a balanced-token sequence; empty for attributes that take no arguments.
$meta object

CarriesDependencyAttribute

The `[[carries_dependency]]` attribute.

Property Type Description
kind (required) string The attribute kind as a string (e.g. `"deprecated"`, `"no-unique-address"`).
name string The attribute name in its normalized standard spelling (e.g. `deprecated`); for the `other` kind, the spelling as written, including any scope (e.g. `gnu::custom`).
balancedTokens (required) array of string The attribute arguments as a balanced-token sequence; empty for attributes that take no arguments.
$meta object

DeprecatedAttribute

The `[[deprecated]]` attribute.

Property Type Description
kind (required) string The attribute kind as a string (e.g. `"deprecated"`, `"no-unique-address"`).
name string The attribute name in its normalized standard spelling (e.g. `deprecated`); for the `other` kind, the spelling as written, including any scope (e.g. `gnu::custom`).
balancedTokens (required) array of string The attribute arguments as a balanced-token sequence; empty for attributes that take no arguments.
message string The optional deprecation message.
$meta object

FallthroughAttribute

The `[[fallthrough]]` attribute.

Property Type Description
kind (required) string The attribute kind as a string (e.g. `"deprecated"`, `"no-unique-address"`).
name string The attribute name in its normalized standard spelling (e.g. `deprecated`); for the `other` kind, the spelling as written, including any scope (e.g. `gnu::custom`).
balancedTokens (required) array of string The attribute arguments as a balanced-token sequence; empty for attributes that take no arguments.
$meta object

MaybeUnusedAttribute

The `[[maybe_unused]]` attribute.

Property Type Description
kind (required) string The attribute kind as a string (e.g. `"deprecated"`, `"no-unique-address"`).
name string The attribute name in its normalized standard spelling (e.g. `deprecated`); for the `other` kind, the spelling as written, including any scope (e.g. `gnu::custom`).
balancedTokens (required) array of string The attribute arguments as a balanced-token sequence; empty for attributes that take no arguments.
$meta object

NodiscardAttribute

The `[[nodiscard]]` attribute.

Property Type Description
kind (required) string The attribute kind as a string (e.g. `"deprecated"`, `"no-unique-address"`).
name string The attribute name in its normalized standard spelling (e.g. `deprecated`); for the `other` kind, the spelling as written, including any scope (e.g. `gnu::custom`).
balancedTokens (required) array of string The attribute arguments as a balanced-token sequence; empty for attributes that take no arguments.
reason string The optional reason the result must not be discarded.
$meta object

LikelyAttribute

The `[[likely]]` attribute.

Property Type Description
kind (required) string The attribute kind as a string (e.g. `"deprecated"`, `"no-unique-address"`).
name string The attribute name in its normalized standard spelling (e.g. `deprecated`); for the `other` kind, the spelling as written, including any scope (e.g. `gnu::custom`).
balancedTokens (required) array of string The attribute arguments as a balanced-token sequence; empty for attributes that take no arguments.
$meta object

UnlikelyAttribute

The `[[unlikely]]` attribute.

Property Type Description
kind (required) string The attribute kind as a string (e.g. `"deprecated"`, `"no-unique-address"`).
name string The attribute name in its normalized standard spelling (e.g. `deprecated`); for the `other` kind, the spelling as written, including any scope (e.g. `gnu::custom`).
balancedTokens (required) array of string The attribute arguments as a balanced-token sequence; empty for attributes that take no arguments.
$meta object

NoUniqueAddressAttribute

The `[[no_unique_address]]` attribute.

Property Type Description
kind (required) string The attribute kind as a string (e.g. `"deprecated"`, `"no-unique-address"`).
name string The attribute name in its normalized standard spelling (e.g. `deprecated`); for the `other` kind, the spelling as written, including any scope (e.g. `gnu::custom`).
balancedTokens (required) array of string The attribute arguments as a balanced-token sequence; empty for attributes that take no arguments.
$meta object

AssumeAttribute

The `[[assume]]` attribute.

Property Type Description
kind (required) string The attribute kind as a string (e.g. `"deprecated"`, `"no-unique-address"`).
name string The attribute name in its normalized standard spelling (e.g. `deprecated`); for the `other` kind, the spelling as written, including any scope (e.g. `gnu::custom`).
balancedTokens (required) array of string The attribute arguments as a balanced-token sequence; empty for attributes that take no arguments.
expression string The assumed expression, as written.
$meta object

IndeterminateAttribute

The `[[indeterminate]]` attribute.

Property Type Description
kind (required) string The attribute kind as a string (e.g. `"deprecated"`, `"no-unique-address"`).
name string The attribute name in its normalized standard spelling (e.g. `deprecated`); for the `other` kind, the spelling as written, including any scope (e.g. `gnu::custom`).
balancedTokens (required) array of string The attribute arguments as a balanced-token sequence; empty for attributes that take no arguments.
$meta object

Type

A C++ type. The DOM serializes the most-derived kind (named, pointer, reference, array, function, etc.); see the `oneOf` entries for the per-kind shape.

One of:

Name

A (possibly qualified) name occurring in source, such as the name of a base class or the type referenced by a `NamedType`.

One of:

TParam

A template parameter of a templated symbol. The DOM serializes the most-derived kind (type, non-type, template); see the `oneOf` entries for the per-kind shape.

One of:

TArg

A template argument supplied to a template specialization. The DOM serializes the most-derived kind (type, non-type, template); see the `oneOf` entries for the per-kind shape.

One of:

Block

A block-level node in a parsed documentation comment (paragraphs, lists, headings, and command blocks like `@brief` / `@param` / `@returns`).

One of:

Attribute

A C++ attribute attached to a symbol. The concrete kinds (`deprecated`, `nodiscard`, ...) extend this with their evaluated arguments.

One of:

Location

A source location (file path plus line/column).

Property Type Description
shortPath string Path relative to the configured source root, suitable for display.
sourcePath string Path relative to the source-root setting, used for documentation cross-references.
lineNumber (required) integer 1-based line number of the location.
columnNumber (required) integer 1-based column number of the location.
documented (required) boolean True when a doc comment was attached at this location.
$meta object

Param

A function parameter.

Property Type Description
type (required) Type Declared parameter type.
name string Parameter name as written in the declaration. Empty for unnamed parameters.
default string Default argument expression as written, or absent if the parameter has no default.
$meta object

TemplateInfo

Template metadata attached to a templated symbol: parameters, arguments (for specializations), and a reference to the primary template.

Property Type Description
params (required) array of TParam Template parameter list, in declaration order.
args (required) array of TArg Template arguments applied to the primary template, in declaration order. Present on (partial) specializations and instantiations; empty for the primary template itself.
requires string Trailing `requires`-clause expression as written; empty when the template has no constraints.
primary (required) string Identifier of the primary template this entry specializes; empty when this is itself the primary.
$meta object

SourceInfo

Source-location metadata for a symbol: every declaration site plus the definition site, when one exists.

Property Type Description
defLoc Location Location of the symbol's definition; absent when no definition was extracted.
loc (required) array of Location Locations of the symbol's declarations (one entry per source declaration).
$meta object

BaseInfo

A base-class clause of a class or struct declaration.

Property Type Description
type (required) Type Base type as written in the inheritance clause (a class or template specialization).
access (required) string ("none" | "public" | "protected" | "private") Access specifier of the base (`"public"`, `"protected"`, or `"private"`).
isVirtual (required) boolean True when the base is inherited virtually.
$meta object

FriendInfo

A `friend` declaration appearing inside a class or struct.

Property Type Description
type Type Type befriended, used when the friend declaration names a type rather than a corpus symbol.
id (required) string Identifier of the symbol befriended when it lives in the corpus; empty when the friend points outside it.
$meta object