Core MrDocs support utilities.
The public mrdocs namespace here centralizes assert/assume hooks so we can swap behavior (terminate, throw, debugbreak) in one place without leaking platform specifics into the rest of the codebase.
| Name | Description |
|---|---|
describe | Compile-time reflection over structs, enums, and their bases. |
doc | Doc-comment enums and helpers that describe admonition kinds. |
dom | Objects representing JSON-like values. |
files | Filesystem helpers (join, temp, real-path resolution) used throughout MrDocs. |
handlebars | The Handlebars template engine. |
hbs | Handlebars-based generators and the pieces that support them. |
js | JavaScript interop helpers for the embedded runtime. |
lua | Lua interop helpers for the optional scripting/backend integration. |
polyfill | Standard-library polyfills. |
report | Reporting utilities (messages, statistics, sinks). |
| Name | Description |
|---|---|
AnyFileVisitor | Polymorphic visitor for files discovered during traversal. |
ArrayType | C++ array type (bounded or unbounded). |
ArrayView | A non-owning, read-only view over a contiguous array of T. |
AssumeAttribute | The [[assume(expression)]] attribute (C++23). |
Attribute | A C++ attribute attached to a symbol. |
AttributeCommonBase | CRTP base that ties a concrete attribute to a fixed AttributeKind. |
AutoType | Represents auto or decltype(auto) placeholder type. |
BaseInfo | Metadata for a direct base. |
CIStringEqual | Transparent case-insensitive equality functor for string-like keys. |
CIStringHash | Transparent case-insensitive hash functor for string-like keys. |
CarriesDependencyAttribute | The [[carries_dependency]] attribute (C++11): release-consume dependency propagation. |
ConceptSymbol | Info for concepts. |
Config | Configuration used to generate the Corpus and Docs. |
ConstantExprInfo | Represents an expression with a (possibly known) value |
ConstantTArg | Non-type template argument. |
ConstantTParam | A constant template parameter |
Corpus | The collection of declarations in extracted form. |
DecltypeType | decltype(expr) type wrapper. |
DeprecatedAttribute | The [[deprecated]] attribute (C++14). |
DocComment | A processed documentation comment attached to a declaration. |
DomCorpus | Front-end factory for producing Dom nodes. |
EnumConstantSymbol | Info for enum constants. |
EnumSymbol | Metadata for an enumeration declaration. |
Error | Holds the description of an error, or success. |
Exception | Type of all exceptions thrown by the API. |
ExecutorGroup | A set of execution agents for performing concurrent work. |
ExecutorGroupBase | Base class that owns a pool of execution agents and a shared work queue. |
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 |
ExtensionRegistry | The user extension scripts declared by a configuration, loaded. |
FallthroughAttribute | The [[fallthrough]] attribute (C++17): an intentional switch fall-through. |
FormatString | A format string with source location. |
FriendInfo | Info for friend declarations. |
FunctionSymbol | Metadata for a function or method. |
FunctionType | Function type with parameters, qualifiers, and noexcept info. |
Generator | Base class for documentation generators. |
GlobPattern | A glob pattern matcher |
GuideSymbol | Info for deduction guides. |
IdentifierName | Represents an identifier |
IndeterminateAttribute | The [[indeterminate]] attribute (C++26): the object has an indeterminate value if uninitialized. |
LValueReferenceType | An lvalue reference type. |
LikelyAttribute | The [[likely]] attribute (C++20): this path is more likely. |
Location | Source location of a symbol or entity. |
MacroSymbol | Info for preprocessor macros. |
MaybeUnusedAttribute | The [[maybe_unused]] attribute (C++17): suppresses unused-entity warnings. |
MemberPointerType | Pointer-to-member type (object or function). |
MrDocsCompilationDatabase | The compilation database driving extraction. |
Name | Represents a name for a named Type |
NamedType | A type identified by name (possibly fundamental). |
NamespaceAliasSymbol | Info for namespace aliases. |
NamespaceSymbol | Describes a namespace and its members. |
NamespaceTranche | Buckets the members that appear inside a namespace. |
NoUniqueAddressAttribute | The [[no_unique_address]] attribute (C++20): the member need not have a unique address. |
NodiscardAttribute | The [[nodiscard]] attribute (C++17, reason added in C++20). |
NoexceptInfo | Captures a noexcept specification and its evaluated form. |
NoreturnAttribute | The [[noreturn]] attribute (C++11): the function does not return. |
Optional | A compact optional that automatically uses nullable_traits<T> when available. |
OtherAttribute | An attribute mrdocs does not treat specially. |
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. |
ParsedRef | A parsed symbol reference (see lib/AST/ParseRef.hpp). |
ParsedRefComponent | A component of a parsed symbol reference. |
PathGlobPattern | A glob pattern matcher for paths |
PointerType | Pointer type wrapper. |
Polymorphic | A polymorphic value-type. |
RValueReferenceType | An rvalue reference type. |
RangeFor | Range adapter to expose first/last flags inside range-for loops. |
RecordInterface | The aggregated interface for a given struct, class, or union. |
RecordSymbol | Metadata for struct, class, or union. |
RecordTranche | A group of members that have the same access specifier. |
ReferenceDirectories | Reference directories used to resolve paths |
ScopeExit | Execute a callable when the enclosing scope exits unless dismissed. |
ScopeExitRestore | RAII helper that restores a referenced value on scope exit. |
SourceInfo | Stores source information for a declaration. |
SourceLocation | A source location with filename prettification. |
SpecializationName | Represents a (possibly qualified) symbol name with template arguments. |
SplitLinesView | A lazy input range of std::string_view lines split on all known line breaks. |
StringHash | Transparent hash functor for string-like keys. |
StringList | A list of strings that accepts several input forms. |
Symbol | Base class with common properties of all symbols |
SymbolCommonBase | Base class for providing variant discriminator functions. |
SymbolGlobPattern | A glob pattern matcher for C++ symbols |
SymbolID | A unique identifier for a symbol. |
TArg | Base class for any template argument. |
TArgCommonBase | CRTP base that fixes the argument kind. |
TParam | Base class for a template parameter declaration. |
TParamCommonBase | CRTP base that fixes the parameter kind. |
TaskGroup | A subset of possible work in a thread pool. |
TemplateInfo | Information about templates and specializations thereof. |
TemplateTArg | Template template argument. |
TemplateTParam | Template template parameter. |
ThreadPool | A pool of threads for executing work concurrently. |
Type | A possibly qualified type. |
TypeCommonBase | CRTP base that ties a concrete type to a fixed TypeKind. |
TypeTArg | Type template argument. |
TypeTParam | Type template parameter. |
TypedefSymbol | Info for typedef and using declarations. |
UnlikelyAttribute | The [[unlikely]] attribute (C++20): this path is less likely. |
UsingSymbol | Info for using declarations. |
VariableSymbol | A variable. |
YCombinator | Enables recursive lambdas by passing a self-reference as the first argument. |
add_const_from | Propagate const qualification from From to To, keeping references. |
add_cv_from | Propagate both const and volatile qualifiers from From to To. |
add_cvref_from | Propagate cv-qualification and reference category from From to To. |
add_lvalue_reference_from | Propagate lvalue-reference from From to To if present. |
add_reference_from | Propagate reference qualification from From to To. |
add_rvalue_reference_from | Propagate rvalue-reference from From to To if present. |
add_volatile_from | Propagate volatile qualification from From to To, keeping references. |
any_callable | A movable, type-erased function object. |
make_dependent | Dependent alias of T, useful for delaying instantiation. |
nullable_traits | nullable_traits<T> defines how to treat a T as “nullable” without an external engaged bit. |
sentinel_traits | Defines a customization point for types that have an intrinsic sentinel value denoting “null”. |
unlock_guard | A scoped guard which unlocks a mutex. |
| Name | Description |
|---|---|
BadExpectedAccess | Base class for accessing an empty expected. |
Expected | The mrdocs result type: polyfill::expected defaulting the error to Error. |
UnorderedCIStringMultiMap | unordered_multimap keyed by std::string, matching keys case-insensitively. |
UnorderedStringMap | unordered_map keyed by std::string with transparent hashing. |
UnorderedStringMultiMap | unordered_multimap keyed by std::string with transparent hashing. |
add_const_from_t | Alias for add_const_from<From, To>::type. |
add_cv_from_t | Alias for add_cv_from<From, To>::type. |
add_cvref_from_t | Alias for add_cvref_from<From, To>::type. |
add_lvalue_reference_from_t | Alias for add_lvalue_reference_from<From, To>::type. |
add_reference_from_t | Alias for add_reference_from<From, To>::type. |
add_rvalue_reference_from_t | Alias for add_rvalue_reference_from<From, To>::type. |
add_volatile_from_t | Alias for add_volatile_from<From, To>::type. |
make_dependent_t | Alias for make_dependent<T, U>::type. |
| Name | Description |
|---|---|
AccessKind | Access specifier. |
AttributeKind | The kind of a C++ attribute. |
AutoKind | The kind of auto keyword used in a declaration. |
ConstexprKind | constexpr/consteval specifier kinds |
ExplicitKind | Explicit specifier kinds |
ExtractionMode | Determine why a symbol is extracted |
FileKind | Classifies where a file originates from. |
FunctionClass | Function classifications |
FundamentalTypeKind | Categorically describes a fundamental type. |
ListKind | Classification of list ordering. |
NameKind | Kinds of names that appear in type and symbol metadata. |
NoexceptKind | Exception specification kinds |
OperatorKind | Operator kinds |
QualifierKind | Type qualifiers |
RecordKeyKind | The kind of record: struct, class, or union. |
ReferenceKind | Reference type kinds |
StorageClassKind | Storage class kinds |
SymbolKind | Info variant discriminator |
TArgKind | The kind of template argument. |
TParamKeyKind | The keyword a template parameter was declared with |
TParamKind | Discriminates the different template parameter categories. |
TableAlignmentKind | Horizontal alignment for table columns. |
TemplateSpecKind | The kind of template or specialization. |
TypeKind | Variants of C++ types captured in metadata. |
UsingClass | The class of using declaration. |
| Name | Description |
|---|---|
CompareDerived | Compares two polymorphic objects that have visit functions |
addMember | Append a new function overload to the set. |
allMembers | allMembers overloads |
assert_failed | Handler invoked when MRDOCS_ASSERT fails. |
bottomUpTraverse | Traverse a DocComment tree bottom-up (post-order). |
buildCorpusDom | Build a DOM object representing an entire corpus. |
buildSymbolDom | Build the DOM value for a single symbol. |
canMerge | Check whether two symbols may be merged. |
cast | cast overloads |
cast_or_null | cast_or_null overloads |
ciEqual | Compare two strings for case-insensitive ASCII equality. |
compareSymbolNames | Return the result of comparing s0 to s1. |
contains | Determine if a range contains a specific element. |
contains_any | Determine if a range contains any of the specified elements. |
contains_n | Determine if a range contains at least N instances of the specified element. |
contains_n_any | Determine if a range contains at least N instances of any of the specified elements. |
countSymbolKind | Count the number of SymbolKind enumerators. |
demangle | demangle overloads |
dyn_cast | dyn_cast overloads |
dyn_cast_or_null | dyn_cast_or_null overloads |
endsWithOneOf | Determine if a string ends with one of the specified characters |
findGenerator | Find a generator by its id. |
find_last_of | Find the last element in a range that matches an element in the specified range. |
forEachFile | forEachFile overloads |
formatError | Return a formatted error. |
format_duration | Formats a duration into a human-readable string. |
fromBase58Str | Parse the base58 string form of a SymbolID. |
fromString | Convert a string to a FundamentalTypeKind. |
getDefaultAccessString | Return the default accessibility for a record key kind. |
getOperatorKind | Return the short name of an operator as a string. |
getOperatorKindFromSuffix | Return the short name of an operator as a string. |
getOperatorName | Return the name of an operator as a string. |
getOperatorReadableName | Return the human-readable name of the operator |
getParents | Return the parents of the specified symbol |
getPrimaryLocation | getPrimaryLocation overloads |
getSafeOperatorName | Return the safe name of an operator as a string. |
getShortOperatorName | Return the short name of an operator as a string. |
innerType | Return the inner type. |
innerTypePtr | Return the inner type. |
innermostType | innermostType overloads |
installGenerator | Install a custom generator. |
isAlphaNumeric | isAlphaNumeric overloads |
isAlphabetic | isAlphabetic overloads |
isBinaryOperator | Determines whether the operator is potentially binary. |
isCopyAssignment | Check whether a function is a copy assignment operator. |
isCopyConstructor | Check whether a function is a copy constructor. |
isDefaultConstructor | Check whether a function is a default constructor. |
isDigit | isDigit overloads |
isLowerCase | isLowerCase overloads |
isMoveAssignment | Check whether a function is a move assignment operator. |
isMoveConstructor | Check whether a function is a move constructor. |
isSpecialMemberFunction | Check whether a function is a special member function. |
isUnaryOperator | Determines whether the operator is potentially unary. |
isUpperCase | isUpperCase overloads |
isWhitespace | isWhitespace overloads |
is_null | is_null helper that uses nullable_traits<T> if available. |
is_one_of | Determine if an element is equal to any of the elements in the specified range. |
isa | Return true if the polymorphic object holds a value of type To. |
isa_or_null | Return true if pointer is non-null and referent is of type To. |
leastSpecific | Compare ExtractionModes and returns the least specific |
ltrim | ltrim overloads |
makeChar | Apply the "char" specifier to the type |
makeLong | Apply the "long" specifier to the type |
makeOverload | Factory function that creates an Overload from the given callables. |
makeShort | Apply the "short" specifier to the type |
makeSigned | Apply the "signed" specifier to the type |
makeUnsigned | Apply the "unsigned" specifier to the type |
make_array_view | make_array_view overloads |
make_null | make_null helper that uses nullable_traits<T> if available. |
match | Applies a set of callables to a std::variant using std::visit and Overload. |
merge | merge overloads |
mostSpecific | Compare ExtractionModes and returns the most specific |
null_of | null_of helper that constructs a null T using nullable_traits<T>. |
operator| | Pipe a contiguous character range into the adaptor. |
overrides | Determine if one function would override the other |
parse | Parse a string view |
qualifiedRuntimeTypeName | The fully-qualified runtime name of a type T. |
qualifiedTypeName | The fully-qualified name of a type T, at compile time. |
reindentCode | Reindent code by removing the common leading spaces and adding the specified indent. |
replace | Return the substring without leading and trailing horizontal whitespace. |
rtrim | rtrim overloads |
safeString | safeString overloads |
splitLines | splitLines overloads |
startsWithOneOf | Determine if a string starts with one of the specified characters |
swap | swap overloads |
tag_invoke | tag_invoke overloads |
toBase16Str | Convert a SymbolID to a string |
toBase58Str | Convert a SymbolID to its canonical string form. |
toCamelCase | Convert a string to camelCase using ASCII letter rules. |
toDomObject | Parse a YAML document into a DOM object. |
toKebabCase | Convert a string to kebab-case using ASCII letter rules. |
toLowerCase | toLowerCase overloads |
toPascalCase | Convert a string to PascalCase using ASCII letter rules. |
toSnakeCase | Convert a string to snake_case using ASCII letter rules. |
toString | toString overloads |
toUpperCase | toUpperCase overloads |
to_underlying | Return the value as its underlying type. |
topDownTraverse | Traverse a DocComment tree top-down (pre-order). |
trim | trim overloads |
unqualifiedRuntimeTypeName | The unqualified runtime name of a type T. |
unqualifiedTypeName | The unqualified name of a type T, at compile time. |
visit | Visit a polymorphic object by matching its kind to a derived type. |
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== | 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 |
|---|---|
is_specialization_of_v | Whether T is a specialization of the class template Template. |
is_specialization_of_v | Whether T is a specialization of the class template Template. |
| Name | Description |
|---|---|
ClearableContainerLike | Internal concept that matches “empty-clear default-constructible” types. |
DescribedComparable | True if T has described members (for comparison). |
DocCommentNode | Concept to check if a type represents a DocComment node. |
DocCommentNodeTraversable | Types that can be traversed by DocComment helpers. |
HasParse | Concept to determine if there's a parse function for a type. |
HasSentinel | Concept that is satisfied when sentinel_traits<T> declares a usable sentinel. |
SymbolParent | A concept for types that have Symbol members. |
dereferenceable | Determine if a type is dereferenceable |
has_nullable_traits_v | Utility concept that returns true if T has a nullable_traits specialization enabled. |
pair_like | Concept to check if a type is pair-like |
polymorphic_storage_for | Concept to check if a type is representing a polymorphic storage |
range_of | Concept to check if a type is a range of T |
range_of_tuple_like | Concept to check if a range is a range of tuple-like elements |
specialization_of | Satisfied when T is a specialization of the class template Template. |
tuple_like | Concept to check if a type is tuple-like |
| Name | Description |
|---|---|
Unexpected | Construct an unexpected (error) value, as passed to Expected. |
reference_constructs_from_temporary_v | True when binding To from From would require a temporary conversion. |
reference_converts_from_temporary_v | Like reference_converts_from_temporary_v, but for construction. |
source_location | Alias to std::source_location when available. |
unexpect | Tag value of type unexpect_t. |
unexpect_t | Tag type used to construct an Expected in the error state. |