Namespaces
Name |
clang::mrdocs namespace
Namespaces
Name |
Description |
Javadoc related types and functions. |
|
Objects representing JSON‐like values. |
|
Types
Name |
Description |
Metadata for a direct base. |
|
Info for concepts. |
|
Configuration used to generate the Corpus and Docs |
|
Represents an expression with a (possibly known) value |
|
The collection of declarations in extracted form. |
|
The default empty predicate. |
|
Front‐end factory for producing Dom nodes. |
|
Info for enum constants. |
|
Holds the description of an error, or success. |
|
Type of all exceptions thrown by the API. |
|
A set of execution agents for performing concurrent work. |
|
A container holding an error or a value. |
|
Represents an expression |
|
A format string with source location. |
|
Info for friend declarations. |
|
Base class for documentation generators. |
|
A dynamic list of Generator |
|
A glob pattern matcher |
|
Info for deduction guides. |
|
A handlebars environment |
|
An error thrown or returned by Handlebars |
|
Options for handlebars |
|
Base class with common properties of all symbols |
|
Base class for providing variant discriminator functions. |
|
A processed Doxygen‐style comment attached to a declaration. |
|
Represents a name for a named |
|
Info for namespace aliases. |
|
Describes a namespace. |
|
The members of a Namespace |
|
A compact optional. |
|
Reference to output stream used by handlebars |
|
Represents a set of function overloads. |
|
Represents a single function parameter |
|
The result of a parse operation. |
|
A glob pattern matcher for paths |
|
A polymorphic value‐type. |
|
Range to help range‐for loops identify first and last. |
|
Metadata for struct, class, or union. |
|
The aggregated interface for a given struct, class, or union. |
|
A group of members that have the same access specifier. |
|
Reference directories used to resolve paths |
|
Stores source information for a declaration. |
|
A source location with filename prettification. |
|
Represents a (possibly qualified) symbol name with template arguments. |
|
A glob pattern matcher for C++ symbols |
|
A unique identifier for a symbol. |
|
A subset of possible work in a thread pool. |
|
Information pertaining to templates and specializations thereof. |
|
A pool of threads for executing work concurrently. |
|
A possibly qualified type. |
|
Info for using declarations. |
|
A variable. |
|
A visitor for a type |
|
A movable, type‐erased function object. |
|
A scoped guard which unlocks a mutex. |
|
Like std::optional<Location> |
|
Enums
Name |
Description |
Access specifier. |
|
The kind of |
|
|
|
Explicit specifier kinds |
|
Determine why a symbol is extracted |
|
Function classifications |
|
Categorically describes a fundamental type. |
|
Info variant discriminator |
|
Exception specification kinds |
|
Operator kinds |
|
Type qualifiers |
|
The kind of record: struct, class, or union. |
|
Reference type kinds |
|
Storage class kinds |
|
The kind of template argument. |
|
The keyword a template parameter was declared with |
|
The kind of template or specialization. |
|
The class of using declaration. |
Functions
Name |
Description |
Compares two polymorphic objects that have visit functions |
|
|
|
Return the result of comparing s0 to s1. |
|
Determine if a range contains a specific element. |
|
Determine if a range contains any of the specified elements. |
|
Determine if a range contains at least N instances of the specified element. |
|
Determine if a range contains at least N instances of any of the specified elements. |
|
Create child data objects. |
|
Determine if a string ends with one of the specified characters |
|
Find the last element in a range that matches an element in the specified range. |
|
|
|
Return a formatted error. |
|
Convert a string to a FundamentalTypeKind. |
|
Return a reference to the global Generators instance. |
|
Return the short name of an operator as a string. |
|
Return the short name of an operator as a string. |
|
Return the name of an operator as a string. |
|
Return the human‐readable name of the operator |
|
Return a list of the parent symbols of the specified Info. |
|
Return the safe name of an operator as a string. |
|
Return the short name of an operator as a string. |
|
Return the full path for single page output. |
|
Return the inner type. |
|
Return the inner type. |
|
Return the innermost type. |
|
Determines whether the operator is potentially binary. |
|
Determine if a value is empty |
|
Determines whether the operator is potentially unary. |
|
Determine if a string is only whitespace. |
|
Determine if an element is equal to any of the elements in the specified range. |
|
Compare ExtractionModes and returns the least specific |
|
|
|
Apply the "char" specifier to the type |
|
Apply the "long" specifier to the type |
|
Apply the "short" specifier to the type |
|
Apply the "signed" specifier to the type |
|
Apply the "unsigned" specifier to the type |
|
Make a visitor for a base type |
|
|
|
Compare ExtractionModes and returns the most specific |
|
Determine if one function would override the other |
|
Parse a string view |
|
Return the substring without leading and trailing horizontal whitespace. |
|
|
|
Create a wrapper for a safe string. |
|
Determine if a string starts with one of the specified characters |
|
|
|
Convert a SymbolID to a string |
|
|
|
Return the value as its underlying type. |
|
|
|
Invoke a function object with a type derived from Info |
|
Write to output |
|
Equality operators |
|
Three‐way comparison operators |
Variables
Name |
Concepts
Name |
Description |
Concept to determine if there's a parse function for a type. |
|
A concept for types that have |
|
Determine if a type is dereferenceable |
|
Concept to check if a type is pair‐like |
|
Concept to check if a type is representing a polymorphic storage |
|
Concept to check if a type is a range of T |
|
Concept to check if a range is a range of tuple‐like elements |
|
Concept to check if a type is tuple‐like |
Deduction Guides
Name |
Using Declarations
Name |
clang::mrdocs::doc namespace
Javadoc related types and functions.
Types
Name |
Description |
An admonition. |
|
A piece of block content |
|
The brief description |
|
Preformatted source code. |
|
Documentation copied from another symbol. |
|
A manually specified section heading. |
|
A hyperlink. |
|
An item in a list |
|
This is a variant‐like list element. |
|
A sequence of text nodes. |
|
Documentation for a function parameter |
|
A reference to a symbol. |
|
Documentation for a function return type |
|
A |
|
A piece of styled text. |
|
Documentation for a template parameter |
|
A Node containing a string of text. |
|
Documentation for a function parameter |
|
A list of list items |
Enums
Name |
Description |
An admonishment style. |
|
The kind of node. |
|
Parameter pass direction. |
|
Which parts of the documentation to copy. |
|
The text style. |
Functions
Name |
Description |
|
|
|
|
Traverse a list of nodes. |
|
Visit a node. |
|
Equality operator |
|
Three‐way comparison operator |
See Also
https://en.wikipedia.org/wiki/Javadoc
https://www.doxygen.nl
clang::mrdocs::dom namespace
Objects representing JSON‐like values.
Namespaces
Name |
Types
Name |
Description |
An array of values |
|
Abstract array interface. |
|
The default array implementation. |
|
The default Object implementation. |
|
Lazy array implementation |
|
Lazy object implementation. |
|
Customization point tag. |
|
A container of key and value pairs. |
|
Abstract object interface. |
|
A variant container for any kind of Dom value. |
|
Customization point tag. |
|
|
Enums
Name |
Description |
The type of data in a Value. |
Functions
Name |
Description |
|
|
|
|
Return a new dom::Array based on a transformed lazy array implementation. |
|
|
|
Return a new array using a custom implementation. |
|
Return a diagnostic string. |
|
Return a new object using a custom implementation. |
|
Return the first dom::Value that is not truthy, or the last one. |
|
Addition operators |
|
Return the first dom::Value that is truthy, or the last one. |
|
Return a non‐empty string, or a null. |
|
|
|
|
|
Equality operators |
|
Return the result of comparing two strings. |
|
Three‐way comparison operators |
Concepts
clang::mrdocs::dom::JSON namespace
Functions
Name |
Description |
Stringify a value as JSON |
clang::mrdocs::files namespace
Enums
Name |
Description |
The type of a file. |
Functions
Name |
Description |
Create a directory. |
|
Determine if a path exists |
|
Return the filename part of the path. |
|
Return the contents of a file as a string. |
|
Return the file type or an error |
|
Return the parent directory. |
|
Return the relevant suffix of a source file path. |
|
Return true if pathName is absolute. |
|
Determine if a path is a directory. |
|
Return true if pathName ends in a separator. |
|
Determine lexically if a path is a directory. |
|
Check if the path is posix style. |
|
Return an absolute path from a possibly relative path. |
|
Append a trailing native separator if not already present. |
|
Convert all backward slashes to forward slashes. |
|
Return a normalized directory. |
|
Return a normalized path. |
|
Return an error if pathName is not absolute. |
|
Return an error if the path is not a directory. |
|
Checks if the given path starts with the specified prefix. |
|
Return the filename with a new or different extension. |
clang::mrdocs::helpers namespace
Functions
Name |
Description |
"and" helper function |
|
"detag" helper function |
|
"eq" helper function |
|
"increment" helper function |
|
"ne" helper function |
|
"not" helper function |
|
"or" helper function |
|
Register all the Antora helpers into a Handlebars instance |
|
Register all the built‐in helpers into a Handlebars instance |
|
Register contructor helpers into a Handlebars instance |
|
Register helpers to manipulate composite data types |
|
Register logical helpers into a Handlebars instance |
|
Register math helpers into a Handlebars instance |
|
Register string helpers into a Handlebars instance |
|
Register type helpers into a Handlebars instance |
|
"relativize" helper function |
|
"select" helper function |
|
"year" helper function |
clang::mrdocs::js namespace
Types
Name |
Description |
An instance of a JavaScript interpreter. |
|
A JavaScript scope |
|
An ECMAScript value. |
Enums
Name |
Description |
Types of values. |
Functions
Name |
Description |
Return the first Value that is not truthy, or the last one. |
|
Return the first Value that is truthy, or the last one. |
|
Register a JavaScript helper function |
|
Swap two values. |
|
Return value as a string. |
|
Compare two values for equality. |
|
Inequality operators |
|
Compare two values for inequality. |
clang::mrdocs::lua namespace
Types
Name |
Description |
A reference to an instance of a Lua interpreter. |
|
A Lua function. |
|
A lazy container to push values to the Lua stack. |
|
A Lua string. |
|
A Lua table. |
|
A Lua value. |
|
A null‐terminated string. |
|
Enums
Name |
Description |
Types of values. |
clang::mrdocs::report namespace
Types
Name |
Description |
Parameter type that adds a source location to a value. |
|
Provides statistics on the number of reported messages. |
Enums
Name |
Description |
Severity levels attached to reported messags. |
Functions
Name |
Description |
Report a message to the console. |
|
Report a message to the console. |
|
Report a message to the console. |
|
Report a message to the console. |
|
Format a message to the console. |
|
Report a message to the console. |
|
Set the minimum threshold level for reporting. |
|
If true, source location information will be printed with warnings, errors, and fatal messages. |
|
Report a message to the console. |
|
Report a message to the console. |
Variables
Name |
Description |
Holds current statistics on reported messages. |
Namespaces
Name |
Namespaces
Types
Name |
Description |
Metadata for a direct base. |
|
Info for concepts. |
|
Configuration used to generate the Corpus and Docs |
|
Represents an expression with a (possibly known) value |
|
The collection of declarations in extracted form. |
|
The default empty predicate. |
|
Front‐end factory for producing Dom nodes. |
|
Info for enum constants. |
|
Holds the description of an error, or success. |
|
Type of all exceptions thrown by the API. |
|
A set of execution agents for performing concurrent work. |
|
A container holding an error or a value. |
|
Represents an expression |
|
A format string with source location. |
|
Info for friend declarations. |
|
Base class for documentation generators. |
|
A dynamic list of Generator |
|
A glob pattern matcher |
|
Info for deduction guides. |
|
A handlebars environment |
|
An error thrown or returned by Handlebars |
|
Options for handlebars |
|
Base class with common properties of all symbols |
|
Base class for providing variant discriminator functions. |
|
A processed Doxygen‐style comment attached to a declaration. |
|
Represents a name for a named |
|
Info for namespace aliases. |
|
Describes a namespace. |
|
The members of a Namespace |
|
A compact optional. |
|
Reference to output stream used by handlebars |
|
Represents a set of function overloads. |
|
Represents a single function parameter |
|
The result of a parse operation. |
|
A glob pattern matcher for paths |
|
A polymorphic value‐type. |
|
Range to help range‐for loops identify first and last. |
|
Metadata for struct, class, or union. |
|
The aggregated interface for a given struct, class, or union. |
|
A group of members that have the same access specifier. |
|
Reference directories used to resolve paths |
|
Stores source information for a declaration. |
|
A source location with filename prettification. |
|
Represents a (possibly qualified) symbol name with template arguments. |
|
A glob pattern matcher for C++ symbols |
|
A unique identifier for a symbol. |
|
A subset of possible work in a thread pool. |
|
Information pertaining to templates and specializations thereof. |
|
A pool of threads for executing work concurrently. |
|
A possibly qualified type. |
|
Info for using declarations. |
|
A variable. |
|
A visitor for a type |
|
A movable, type‐erased function object. |
|
A scoped guard which unlocks a mutex. |
|
Like std::optional<Location> |
|
Enums
Name |
Description |
Access specifier. |
|
The kind of |
|
|
|
Explicit specifier kinds |
|
Determine why a symbol is extracted |
|
Function classifications |
|
Categorically describes a fundamental type. |
|
Info variant discriminator |
|
Exception specification kinds |
|
Operator kinds |
|
Type qualifiers |
|
The kind of record: struct, class, or union. |
|
Reference type kinds |
|
Storage class kinds |
|
The kind of template argument. |
|
The keyword a template parameter was declared with |
|
The kind of template or specialization. |
|
The class of using declaration. |
Functions
Name |
Description |
Compares two polymorphic objects that have visit functions |
|
|
|
Return the result of comparing s0 to s1. |
|
Determine if a range contains a specific element. |
|
Determine if a range contains any of the specified elements. |
|
Determine if a range contains at least N instances of the specified element. |
|
Determine if a range contains at least N instances of any of the specified elements. |
|
Create child data objects. |
|
Determine if a string ends with one of the specified characters |
|
Find the last element in a range that matches an element in the specified range. |
|
|
|
Return a formatted error. |
|
Convert a string to a FundamentalTypeKind. |
|
Return a reference to the global Generators instance. |
|
Return the short name of an operator as a string. |
|
Return the short name of an operator as a string. |
|
Return the name of an operator as a string. |
|
Return the human‐readable name of the operator |
|
Return a list of the parent symbols of the specified Info. |
|
Return the safe name of an operator as a string. |
|
Return the short name of an operator as a string. |
|
Return the full path for single page output. |
|
Return the inner type. |
|
Return the inner type. |
|
Return the innermost type. |
|
Determines whether the operator is potentially binary. |
|
Determine if a value is empty |
|
Determines whether the operator is potentially unary. |
|
Determine if a string is only whitespace. |
|
Determine if an element is equal to any of the elements in the specified range. |
|
Compare ExtractionModes and returns the least specific |
|
|
|
Apply the "char" specifier to the type |
|
Apply the "long" specifier to the type |
|
Apply the "short" specifier to the type |
|
Apply the "signed" specifier to the type |
|
Apply the "unsigned" specifier to the type |
|
Make a visitor for a base type |
|
|
|
Compare ExtractionModes and returns the most specific |
|
Determine if one function would override the other |
|
Parse a string view |
|
Return the substring without leading and trailing horizontal whitespace. |
|
|
|
Create a wrapper for a safe string. |
|
Determine if a string starts with one of the specified characters |
|
|
|
Convert a SymbolID to a string |
|
|
|
Return the value as its underlying type. |
|
|
|
Invoke a function object with a type derived from Info |
|
Write to output |
|
Equality operators |
|
Three‐way comparison operators |
Variables
Name |
Concepts
Name |
Description |
Concept to determine if there's a parse function for a type. |
|
A concept for types that have |
|
Determine if a type is dereferenceable |
|
Concept to check if a type is pair‐like |
|
Concept to check if a type is representing a polymorphic storage |
|
Concept to check if a type is a range of T |
|
Concept to check if a range is a range of tuple‐like elements |
|
Concept to check if a type is tuple‐like |
Deduction Guides
Using Declarations
Name |
Javadoc related types and functions.
Types
Name |
Description |
An admonition. |
|
A piece of block content |
|
The brief description |
|
Preformatted source code. |
|
Documentation copied from another symbol. |
|
A manually specified section heading. |
|
A hyperlink. |
|
An item in a list |
|
This is a variant‐like list element. |
|
A sequence of text nodes. |
|
Documentation for a function parameter |
|
A reference to a symbol. |
|
Documentation for a function return type |
|
A |
|
A piece of styled text. |
|
Documentation for a template parameter |
|
A Node containing a string of text. |
|
Documentation for a function parameter |
|
A list of list items |
Enums
Name |
Description |
An admonishment style. |
|
The kind of node. |
|
Parameter pass direction. |
|
Which parts of the documentation to copy. |
|
The text style. |
Functions
Name |
Description |
|
|
|
|
Traverse a list of nodes. |
|
Visit a node. |
|
Equality operator |
|
Three‐way comparison operator |
Description
Javadoc is a documentation generator originally created for the Java language from source code.
The Javadoc documentation generator tool can interpret text in the "doc comments" format included directly in the source code.
The same "doc comments" format has been replicated and extended by documentation systems for other languages, including the cross‐language Doxygen and the JSDoc system for JavaScript.
Because Clang can already parse and extract blocks of Javadoc‐style comments from source code, these classes are used to represent the parsed documentation in a structured form.
See Also
https://en.wikipedia.org/wiki/Javadoc
https://www.doxygen.nl
An admonition.
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
struct Admonition final
: Paragraph
Base Classes
Name |
Description |
A sequence of text nodes. |
Member Functions
Name |
Description |
|
Construct from |
|
Assignment operators |
|
|
|
|
Equality operators |
|
Three‐way comparison operators |
Static Data Members
Name |
Using Declarations
Name |
Description
This paragraph represents an admonition, such as a note, tip, important, caution, or warning.
Construct from Admonish
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
explicit
Admonition(Admonish const admonish_ = Admonish::none) noexcept;
Parameters
Name |
Description |
admonish_ |
The object to construct from |
Assignment operators
Synopses
Declared in <mrdocs/Metadata/Javadoc.hpp>
Assignment operator
virtual
Paragraph&
operator=(std::string_view str);
Assignment operator
constexpr
Paragraph&
operator=(Paragraph const& value) noexcept(false) = default;
Assignment operator
constexpr
Paragraph&
operator=(Paragraph&& value) = default;
Assignment operator
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
virtual
Paragraph&
operator=(std::string_view str);
Return Value
Reference to the current object
Parameters
Name |
Description |
str |
The object to assign from |
Assignment operator
Synopsis
Return Value
A sequence of text nodes.
Parameters
Name |
Description |
value |
The object to copy assign from |
Assignment operator
Synopsis
Return Value
A sequence of text nodes.
Parameters
Name |
Description |
value |
The object to move assign from |
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
virtual
bool
equals(Node const& other) const noexcept override;
Equality operators
Synopses
Declared in <mrdocs/Metadata/Javadoc.hpp>
Equality operator
bool
operator==(Admonition const& rhs) const noexcept = default;
Equality operator
bool
operator==(Block const& other) const noexcept;
Equality operator
constexpr
bool
operator==(Node const& rhs) const noexcept = default;
Equality operator
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
bool
operator==(Admonition const& rhs) const noexcept = default;
Return Value
true
if the objects are equal, false
otherwise
Parameters
Name |
Description |
rhs |
The right operand |
Equality operator
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
bool
operator==(Block const& other) const noexcept;
Return Value
true
if the objects are equal, false
otherwise
Parameters
Name |
Description |
other |
The right operand |
Equality operator
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
constexpr
bool
operator==(Node const& rhs) const noexcept = default;
Return Value
true
if the objects are equal, false
otherwise
Parameters
Name |
Description |
rhs |
The right operand |
Three‐way comparison operators
Synopses
Declared in <mrdocs/Metadata/Javadoc.hpp>
Three‐way comparison operator
auto
operator<=>(Admonition const& rhs) const = default;
Three‐way comparison operator
auto
operator<=>(Paragraph const& rhs) const = default;
Three‐way comparison operator
auto
operator<=>(Block const& other) const;
Three‐way comparison operator
constexpr
auto
operator<=>(Node const& rhs) const = default;
Three‐way comparison operator
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
auto
operator<=>(Admonition const& rhs) const = default;
Return Value
The relative order of the objects
Parameters
Name |
Description |
rhs |
The right operand |
Three‐way comparison operator
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
auto
operator<=>(Paragraph const& rhs) const = default;
Return Value
The relative order of the objects
Parameters
Name |
Description |
rhs |
The right operand |
Three‐way comparison operator
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
auto
operator<=>(Block const& other) const;
Return Value
The relative order of the objects
Parameters
Name |
Description |
other |
The right operand |
Three‐way comparison operator
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
constexpr
auto
operator<=>(Node const& rhs) const = default;
Return Value
The relative order of the objects
Parameters
Name |
Description |
rhs |
The right operand |
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
Admonish admonish;
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
using Paragraph::operator=;
Introduced Symbols
Name |
Description |
Assignment operator |
A piece of block content
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
struct Block
: Node
Base Classes
Name |
Description |
This is a variant‐like list element. |
Member Functions
Protected Member Functions
Name |
|
Derived Classes
Description
The top level is a list of blocks.
There are two types of blocks: headings and paragraphs
Synopses
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
void
append(std::vector<Polymorphic<Text>> const& otherChildren);
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
void
append(std::vector<Polymorphic<Node>>&& blocks);
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
template<std::derived_from<Text> T>
T&
emplace_back(T&& text);
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
bool
empty() const noexcept;
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
virtual
bool
equals(Node const& other) const noexcept override;
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
virtual
bool
isBlock() const noexcept final;
Equality operators
Synopses
Declared in <mrdocs/Metadata/Javadoc.hpp>
Equality operator
bool
operator==(Block const& other) const noexcept;
Equality operator
constexpr
bool
operator==(Node const& rhs) const noexcept = default;
Equality operator
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
bool
operator==(Block const& other) const noexcept;
Return Value
true
if the objects are equal, false
otherwise
Parameters
Name |
Description |
other |
The right operand |
Equality operator
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
constexpr
bool
operator==(Node const& rhs) const noexcept = default;
Return Value
true
if the objects are equal, false
otherwise
Parameters
Name |
Description |
rhs |
The right operand |
Three‐way comparison operators
Synopses
Declared in <mrdocs/Metadata/Javadoc.hpp>
Three‐way comparison operator
auto
operator<=>(Block const& other) const;
Three‐way comparison operator
constexpr
auto
operator<=>(Node const& rhs) const = default;
Three‐way comparison operator
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
auto
operator<=>(Block const& other) const;
Return Value
The relative order of the objects
Parameters
Name |
Description |
other |
The right operand |
Three‐way comparison operator
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
constexpr
auto
operator<=>(Node const& rhs) const = default;
Return Value
The relative order of the objects
Parameters
Name |
Description |
rhs |
The right operand |
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
std::vector<Polymorphic<Text>> children;
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
explicit
Block(
NodeKind const kind_,
std::vector<Polymorphic<Text>> children_ = {}) noexcept;
The brief description
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
struct Brief final
: Paragraph
Base Classes
Name |
Description |
A sequence of text nodes. |
Member Functions
Data Members
Name |
Static Data Members
Name |
Constructors
Synopses
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
Brief() noexcept;
Copy constructor
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
constexpr
Brief(Brief const& other) = default;
Parameters
Name |
Description |
other |
The object to copy construct from |
Construct from string_view
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
explicit
Brief(std::string_view const text);
Parameters
Name |
Description |
text |
The object to construct from |
Assignment operators
Synopses
Declared in <mrdocs/Metadata/Javadoc.hpp>
Copy assignment operator
constexpr
Brief&
operator=(Brief const& other) = default;
Assignment operator
virtual
Paragraph&
operator=(std::string_view str);
Assignment operator
virtual
Brief&
operator=(std::string_view const text) override;
Assignment operator
constexpr
Paragraph&
operator=(Paragraph const& value) noexcept(false) = default;
Assignment operator
constexpr
Paragraph&
operator=(Paragraph&& value) = default;
Copy assignment operator
Synopsis
Return Value
Reference to the current object
Parameters
Name |
Description |
other |
The object to copy assign from |
Assignment operator
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
virtual
Paragraph&
operator=(std::string_view str);
Return Value
Reference to the current object
Parameters
Name |
Description |
str |
The object to assign from |
Assignment operator
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
virtual
Brief&
operator=(std::string_view const text) override;
Return Value
Reference to the current object
Parameters
Name |
Description |
text |
The object to assign from |
Assignment operator
Synopsis
Return Value
A sequence of text nodes.
Parameters
Name |
Description |
value |
The object to copy assign from |
Assignment operator
Synopsis
Return Value
A sequence of text nodes.
Parameters
Name |
Description |
value |
The object to move assign from |
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
virtual
bool
equals(Node const& other) const noexcept override;
Three‐way comparison operators
Synopses
Declared in <mrdocs/Metadata/Javadoc.hpp>
Three‐way comparison operator
auto
operator<=>(Brief const& rhs) const = default;
Three‐way comparison operator
auto
operator<=>(Paragraph const& rhs) const = default;
Three‐way comparison operator
auto
operator<=>(Block const& other) const;
Three‐way comparison operator
constexpr
auto
operator<=>(Node const& rhs) const = default;
Three‐way comparison operator
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
auto
operator<=>(Brief const& rhs) const = default;
Return Value
The relative order of the objects
Parameters
Name |
Description |
rhs |
The right operand |
Three‐way comparison operator
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
auto
operator<=>(Paragraph const& rhs) const = default;
Return Value
The relative order of the objects
Parameters
Name |
Description |
rhs |
The right operand |
Three‐way comparison operator
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
auto
operator<=>(Block const& other) const;
Return Value
The relative order of the objects
Parameters
Name |
Description |
other |
The right operand |
Three‐way comparison operator
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
constexpr
auto
operator<=>(Node const& rhs) const = default;
Return Value
The relative order of the objects
Parameters
Name |
Description |
rhs |
The right operand |
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
std::vector<std::string> copiedFrom;
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
inline constexpr static
NodeKind static_kind = NodeKind::brief;
Preformatted source code.
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
struct Code final
: Paragraph
Base Classes
Name |
Description |
A sequence of text nodes. |
Member Functions
Name |
Description |
|
Default constructor |
|
Assignment operators |
|
|
|
|
Equality operators |
|
Three‐way comparison operators |
Static Data Members
Name |
Using Declarations
Name |
Default constructor
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
Code() noexcept;
Assignment operators
Synopses
Declared in <mrdocs/Metadata/Javadoc.hpp>
Assignment operator
virtual
Paragraph&
operator=(std::string_view str);
Assignment operator
constexpr
Paragraph&
operator=(Paragraph const& value) noexcept(false) = default;
Assignment operator
constexpr
Paragraph&
operator=(Paragraph&& value) = default;
Assignment operator
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
virtual
Paragraph&
operator=(std::string_view str);
Return Value
Reference to the current object
Parameters
Name |
Description |
str |
The object to assign from |
Assignment operator
Synopsis
Return Value
A sequence of text nodes.
Parameters
Name |
Description |
value |
The object to copy assign from |
Assignment operator
Synopsis
Return Value
A sequence of text nodes.
Parameters
Name |
Description |
value |
The object to move assign from |
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
virtual
bool
equals(Node const& other) const noexcept override;
Equality operators
Synopses
Declared in <mrdocs/Metadata/Javadoc.hpp>
Equality operator
bool
operator==(Code const& rhs) const noexcept = default;
Equality operator
bool
operator==(Block const& other) const noexcept;
Equality operator
constexpr
bool
operator==(Node const& rhs) const noexcept = default;
Equality operator
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
bool
operator==(Code const& rhs) const noexcept = default;
Return Value
true
if the objects are equal, false
otherwise
Parameters
Name |
Description |
rhs |
The right operand |
Equality operator
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
bool
operator==(Block const& other) const noexcept;
Return Value
true
if the objects are equal, false
otherwise
Parameters
Name |
Description |
other |
The right operand |
Equality operator
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
constexpr
bool
operator==(Node const& rhs) const noexcept = default;
Return Value
true
if the objects are equal, false
otherwise
Parameters
Name |
Description |
rhs |
The right operand |
Three‐way comparison operators
Synopses
Declared in <mrdocs/Metadata/Javadoc.hpp>
Three‐way comparison operator
auto
operator<=>(Code const& rhs) const = default;
Three‐way comparison operator
auto
operator<=>(Paragraph const& rhs) const = default;
Three‐way comparison operator
auto
operator<=>(Block const& other) const;
Three‐way comparison operator
constexpr
auto
operator<=>(Node const& rhs) const = default;
Three‐way comparison operator
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
auto
operator<=>(Code const& rhs) const = default;
Return Value
The relative order of the objects
Parameters
Name |
Description |
rhs |
The right operand |
Three‐way comparison operator
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
auto
operator<=>(Paragraph const& rhs) const = default;
Return Value
The relative order of the objects
Parameters
Name |
Description |
rhs |
The right operand |
Three‐way comparison operator
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
auto
operator<=>(Block const& other) const;
Return Value
The relative order of the objects
Parameters
Name |
Description |
other |
The right operand |
Three‐way comparison operator
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
constexpr
auto
operator<=>(Node const& rhs) const = default;
Return Value
The relative order of the objects
Parameters
Name |
Description |
rhs |
The right operand |
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
inline constexpr static
auto static_kind = NodeKind::code;
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
using Paragraph::operator=;
Introduced Symbols
Name |
Description |
Assignment operator |
Documentation copied from another symbol.
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
struct CopyDetails final
: Reference
Base Classes
Name |
Description |
A reference to a symbol. |
Member Functions
Name |
Description |
|
Construct from |
|
|
|
|
Equality operators |
|
Three‐way comparison operators |
Static Data Members
Name |
Construct from string
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
CopyDetails(std::string string_ = std::string()) noexcept;
Parameters
Name |
Description |
string_ |
The object to construct from |
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
virtual
bool
equals(Node const& other) const noexcept override;
Equality operators
Synopses
Declared in <mrdocs/Metadata/Javadoc.hpp>
Equality operator
constexpr
bool
operator==(CopyDetails const& rhs) const noexcept = default;
Equality operator
constexpr
bool
operator==(Reference const& rhs) const noexcept = default;
Equality operator
constexpr
bool
operator==(Text const& rhs) const noexcept = default;
Equality operator
constexpr
bool
operator==(Node const& rhs) const noexcept = default;
Equality operator
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
constexpr
bool
operator==(CopyDetails const& rhs) const noexcept = default;
Return Value
true
if the objects are equal, false
otherwise
Parameters
Name |
Description |
rhs |
The right operand |
Equality operator
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
constexpr
bool
operator==(Reference const& rhs) const noexcept = default;
Return Value
true
if the objects are equal, false
otherwise
Parameters
Name |
Description |
rhs |
The right operand |
Equality operator
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
constexpr
bool
operator==(Text const& rhs) const noexcept = default;
Return Value
true
if the objects are equal, false
otherwise
Parameters
Name |
Description |
rhs |
The right operand |
Equality operator
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
constexpr
bool
operator==(Node const& rhs) const noexcept = default;
Return Value
true
if the objects are equal, false
otherwise
Parameters
Name |
Description |
rhs |
The right operand |
Three‐way comparison operators
Synopses
Declared in <mrdocs/Metadata/Javadoc.hpp>
Three‐way comparison operator
auto
operator<=>(CopyDetails const& rhs) const = default;
Three‐way comparison operator
auto
operator<=>(Reference const& rhs) const = default;
Three‐way comparison operator
constexpr
auto
operator<=>(Text const& rhs) const = default;
Three‐way comparison operator
constexpr
auto
operator<=>(Node const& rhs) const = default;
Three‐way comparison operator
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
auto
operator<=>(CopyDetails const& rhs) const = default;
Return Value
The relative order of the objects
Parameters
Name |
Description |
rhs |
The right operand |
Three‐way comparison operator
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
auto
operator<=>(Reference const& rhs) const = default;
Return Value
The relative order of the objects
Parameters
Name |
Description |
rhs |
The right operand |
Three‐way comparison operator
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
constexpr
auto
operator<=>(Text const& rhs) const = default;
Return Value
The relative order of the objects
Parameters
Name |
Description |
rhs |
The right operand |
Three‐way comparison operator
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
constexpr
auto
operator<=>(Node const& rhs) const = default;
Return Value
The relative order of the objects
Parameters
Name |
Description |
rhs |
The right operand |
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
inline constexpr static
auto static_kind = NodeKind::copy_details;
A manually specified section heading.
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
struct Heading final
: Block
Base Classes
Name |
Description |
A piece of block content |
Member Functions
Static Data Members
Name |
Construct from string
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
Heading(std::string string_ = std::string()) noexcept;
Parameters
Name |
Description |
string_ |
The object to construct from |
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
virtual
bool
equals(Node const& other) const noexcept override;
Equality operators
Synopses
Declared in <mrdocs/Metadata/Javadoc.hpp>
Equality operator
bool
operator==(Heading const& rhs) const noexcept = default;
Equality operator
bool
operator==(Block const& other) const noexcept;
Equality operator
constexpr
bool
operator==(Node const& rhs) const noexcept = default;
Equality operator
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
bool
operator==(Heading const& rhs) const noexcept = default;
Return Value
true
if the objects are equal, false
otherwise
Parameters
Name |
Description |
rhs |
The right operand |
Equality operator
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
bool
operator==(Block const& other) const noexcept;
Return Value
true
if the objects are equal, false
otherwise
Parameters
Name |
Description |
other |
The right operand |
Equality operator
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
constexpr
bool
operator==(Node const& rhs) const noexcept = default;
Return Value
true
if the objects are equal, false
otherwise
Parameters
Name |
Description |
rhs |
The right operand |
Three‐way comparison operators
Synopses
Declared in <mrdocs/Metadata/Javadoc.hpp>
Three‐way comparison operator
auto
operator<=>(Heading const& rhs) const = default;
Three‐way comparison operator
auto
operator<=>(Block const& other) const;
Three‐way comparison operator
constexpr
auto
operator<=>(Node const& rhs) const = default;
Three‐way comparison operator
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
auto
operator<=>(Heading const& rhs) const = default;
Return Value
The relative order of the objects
Parameters
Name |
Description |
rhs |
The right operand |
Three‐way comparison operator
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
auto
operator<=>(Block const& other) const;
Return Value
The relative order of the objects
Parameters
Name |
Description |
other |
The right operand |
Three‐way comparison operator
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
constexpr
auto
operator<=>(Node const& rhs) const = default;
Return Value
The relative order of the objects
Parameters
Name |
Description |
rhs |
The right operand |
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
std::string string;
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
inline constexpr static
auto static_kind = NodeKind::heading;
A hyperlink.
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
struct Link final
: Text
Base Classes
Name |
Description |
A Node containing a string of text. |
Member Functions
Static Data Members
Name |
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
explicit
Link(
std::string string_ = std::string(),
std::string href_ = std::string()) noexcept;
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
virtual
bool
equals(Node const& other) const noexcept override;
Equality operators
Synopses
Declared in <mrdocs/Metadata/Javadoc.hpp>
Equality operator
constexpr
bool
operator==(Link const& rhs) const noexcept = default;
Equality operator
constexpr
bool
operator==(Text const& rhs) const noexcept = default;
Equality operator
constexpr
bool
operator==(Node const& rhs) const noexcept = default;
Equality operator
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
constexpr
bool
operator==(Link const& rhs) const noexcept = default;
Return Value
true
if the objects are equal, false
otherwise
Parameters
Name |
Description |
rhs |
The right operand |
Equality operator
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
constexpr
bool
operator==(Text const& rhs) const noexcept = default;
Return Value
true
if the objects are equal, false
otherwise
Parameters
Name |
Description |
rhs |
The right operand |
Equality operator
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
constexpr
bool
operator==(Node const& rhs) const noexcept = default;
Return Value
true
if the objects are equal, false
otherwise
Parameters
Name |
Description |
rhs |
The right operand |
Three‐way comparison operators
Synopses
Declared in <mrdocs/Metadata/Javadoc.hpp>
Three‐way comparison operator
constexpr
auto
operator<=>(Link const& rhs) const = default;
Three‐way comparison operator
constexpr
auto
operator<=>(Text const& rhs) const = default;
Three‐way comparison operator
constexpr
auto
operator<=>(Node const& rhs) const = default;
Three‐way comparison operator
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
constexpr
auto
operator<=>(Link const& rhs) const = default;
Return Value
The relative order of the objects
Parameters
Name |
Description |
rhs |
The right operand |
Three‐way comparison operator
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
constexpr
auto
operator<=>(Text const& rhs) const = default;
Return Value
The relative order of the objects
Parameters
Name |
Description |
rhs |
The right operand |
Three‐way comparison operator
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
constexpr
auto
operator<=>(Node const& rhs) const = default;
Return Value
The relative order of the objects
Parameters
Name |
Description |
rhs |
The right operand |
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
std::string href;
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
inline constexpr static
auto static_kind = NodeKind::link;
An item in a list
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
struct ListItem final
: Paragraph
Base Classes
Name |
Description |
A sequence of text nodes. |
Member Functions
Name |
Description |
|
Default constructor |
|
Assignment operators |
|
|
|
|
Equality operators |
|
Three‐way comparison operators |
Static Data Members
Name |
Using Declarations
Name |
Default constructor
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
ListItem();
Assignment operators
Synopses
Declared in <mrdocs/Metadata/Javadoc.hpp>
Assignment operator
virtual
Paragraph&
operator=(std::string_view str);
Assignment operator
constexpr
Paragraph&
operator=(Paragraph const& value) noexcept(false) = default;
Assignment operator
constexpr
Paragraph&
operator=(Paragraph&& value) = default;
Assignment operator
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
virtual
Paragraph&
operator=(std::string_view str);
Return Value
Reference to the current object
Parameters
Name |
Description |
str |
The object to assign from |
Assignment operator
Synopsis
Return Value
A sequence of text nodes.
Parameters
Name |
Description |
value |
The object to copy assign from |
Assignment operator
Synopsis
Return Value
A sequence of text nodes.
Parameters
Name |
Description |
value |
The object to move assign from |
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
virtual
bool
equals(Node const& other) const noexcept override;
Equality operators
Synopses
Declared in <mrdocs/Metadata/Javadoc.hpp>
Equality operator
bool
operator==(ListItem const& rhs) const noexcept = default;
Equality operator
bool
operator==(Block const& other) const noexcept;
Equality operator
constexpr
bool
operator==(Node const& rhs) const noexcept = default;
Equality operator
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
bool
operator==(ListItem const& rhs) const noexcept = default;
Return Value
true
if the objects are equal, false
otherwise
Parameters
Name |
Description |
rhs |
The right operand |
Equality operator
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
bool
operator==(Block const& other) const noexcept;
Return Value
true
if the objects are equal, false
otherwise
Parameters
Name |
Description |
other |
The right operand |
Equality operator
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
constexpr
bool
operator==(Node const& rhs) const noexcept = default;
Return Value
true
if the objects are equal, false
otherwise
Parameters
Name |
Description |
rhs |
The right operand |
Three‐way comparison operators
Synopses
Declared in <mrdocs/Metadata/Javadoc.hpp>
Three‐way comparison operator
auto
operator<=>(ListItem const& rhs) const = default;
Three‐way comparison operator
auto
operator<=>(Paragraph const& rhs) const = default;
Three‐way comparison operator
auto
operator<=>(Block const& other) const;
Three‐way comparison operator
constexpr
auto
operator<=>(Node const& rhs) const = default;
Three‐way comparison operator
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
auto
operator<=>(ListItem const& rhs) const = default;
Return Value
The relative order of the objects
Parameters
Name |
Description |
rhs |
The right operand |
Three‐way comparison operator
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
auto
operator<=>(Paragraph const& rhs) const = default;
Return Value
The relative order of the objects
Parameters
Name |
Description |
rhs |
The right operand |
Three‐way comparison operator
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
auto
operator<=>(Block const& other) const;
Return Value
The relative order of the objects
Parameters
Name |
Description |
other |
The right operand |
Three‐way comparison operator
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
constexpr
auto
operator<=>(Node const& rhs) const = default;
Return Value
The relative order of the objects
Parameters
Name |
Description |
rhs |
The right operand |
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
inline constexpr static
auto static_kind = NodeKind::list_item;
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
using Paragraph::operator=;
Introduced Symbols
Name |
Description |
Assignment operator |
This is a variant‐like list element.
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
struct Node;
Member Functions
Data Members
Name |
Derived Classes
Description
There are two types of nodes: text and block.
‐ The javadoc is a list of blocks. ‐ A block contains a list of text elements. ‐ A text element contains a string.
Construct from NodeKind
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
explicit
Node(NodeKind const kind_) noexcept;
Parameters
Name |
Description |
kind_ |
The object to construct from |
Destructor
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
constexpr
virtual
~Node() = default;
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
virtual
bool
equals(Node const& other) const noexcept;
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
virtual
bool
isBlock() const noexcept = 0;
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
bool
isText() const noexcept;
Equality operator
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
constexpr
bool
operator==(Node const& rhs) const noexcept = default;
Return Value
true
if the objects are equal, false
otherwise
Parameters
Name |
Description |
rhs |
The right operand |
Three‐way comparison operator
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
constexpr
auto
operator<=>(Node const& rhs) const = default;
Return Value
The relative order of the objects
Parameters
Name |
Description |
rhs |
The right operand |
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
NodeKind Kind;
A sequence of text nodes.
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
struct Paragraph
: Block
Base Classes
Name |
Description |
A piece of block content |
Member Functions
Static Data Members
Name |
Protected Member Functions
Name |
|
Derived Classes
Name |
Description |
An admonition. |
|
The brief description |
|
Preformatted source code. |
|
An item in a list |
|
Documentation for a function parameter |
|
Documentation for a function return type |
|
A |
|
Documentation for a template parameter |
|
Documentation for a function parameter |
|
A list of list items |
Default constructor
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
Paragraph() noexcept;
Assignment operators
Synopses
Declared in <mrdocs/Metadata/Javadoc.hpp>
constexpr
Paragraph&
operator=(Paragraph const&) noexcept(false) = default;
constexpr
Paragraph&
operator=(Paragraph&&) = default;
Assignment operator
virtual
Paragraph&
operator=(std::string_view str);
Assignment operator
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
virtual
Paragraph&
operator=(std::string_view str);
Return Value
Reference to the current object
Parameters
Name |
Description |
str |
The object to assign from |
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
virtual
bool
equals(Node const& other) const noexcept override;
Three‐way comparison operators
Synopses
Declared in <mrdocs/Metadata/Javadoc.hpp>
Three‐way comparison operator
auto
operator<=>(Paragraph const& rhs) const = default;
Three‐way comparison operator
auto
operator<=>(Block const& other) const;
Three‐way comparison operator
constexpr
auto
operator<=>(Node const& rhs) const = default;
Three‐way comparison operator
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
auto
operator<=>(Paragraph const& rhs) const = default;
Return Value
The relative order of the objects
Parameters
Name |
Description |
rhs |
The right operand |
Three‐way comparison operator
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
auto
operator<=>(Block const& other) const;
Return Value
The relative order of the objects
Parameters
Name |
Description |
other |
The right operand |
Three‐way comparison operator
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
constexpr
auto
operator<=>(Node const& rhs) const = default;
Return Value
The relative order of the objects
Parameters
Name |
Description |
rhs |
The right operand |
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
inline constexpr static
auto static_kind = NodeKind::paragraph;
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
explicit
Paragraph(
NodeKind const kind,
std::vector<Polymorphic<Text>> children_ = {}) noexcept;
Documentation for a function parameter
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
struct Param final
: Paragraph
Base Classes
Name |
Description |
A sequence of text nodes. |
Member Functions
Name |
Description |
|
Constructors |
|
Assignment operators |
|
|
|
|
Equality operators |
|
Three‐way comparison operators |
Static Data Members
Name |
Constructors
Synopses
Declared in <mrdocs/Metadata/Javadoc.hpp>
Construct from Paragraph
explicit
Param(
std::string_view const name,
std::string_view const text);
Constructor
Param(
std::string name_ = std::string(),
Paragraph details_ = Paragraph(),
ParamDirection const direction_ = ParamDirection::none);
Construct from Paragraph
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
explicit
Param(Paragraph const& other);
Parameters
Name |
Description |
other |
The object to copy construct from |
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
explicit
Param(
std::string_view const name,
std::string_view const text);
Constructor
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
Param(
std::string name_ = std::string(),
Paragraph details_ = Paragraph(),
ParamDirection const direction_ = ParamDirection::none);
Parameters
Name |
Description |
name_ |
The object to construct from |
details_ |
A sequence of text nodes. |
direction_ |
Parameter pass direction. |
Assignment operators
Synopses
Declared in <mrdocs/Metadata/Javadoc.hpp>
Assignment operator
virtual
Paragraph&
operator=(std::string_view str);
Assignment operator
virtual
Param&
operator=(std::string_view const text) override;
Assignment operator
constexpr
Paragraph&
operator=(Paragraph const& value) noexcept(false) = default;
Assignment operator
constexpr
Paragraph&
operator=(Paragraph&& value) = default;
Assignment operator
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
virtual
Paragraph&
operator=(std::string_view str);
Return Value
Reference to the current object
Parameters
Name |
Description |
str |
The object to assign from |
Assignment operator
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
virtual
Param&
operator=(std::string_view const text) override;
Return Value
Reference to the current object
Parameters
Name |
Description |
text |
The object to assign from |
Assignment operator
Synopsis
Return Value
A sequence of text nodes.
Parameters
Name |
Description |
value |
The object to copy assign from |
Assignment operator
Synopsis
Return Value
A sequence of text nodes.
Parameters
Name |
Description |
value |
The object to move assign from |
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
virtual
bool
equals(Node const& other) const noexcept override;
Equality operators
Synopses
Declared in <mrdocs/Metadata/Javadoc.hpp>
Equality operator
bool
operator==(Param const& rhs) const noexcept = default;
Equality operator
bool
operator==(Block const& other) const noexcept;
Equality operator
constexpr
bool
operator==(Node const& rhs) const noexcept = default;
Equality operator
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
bool
operator==(Param const& rhs) const noexcept = default;
Return Value
true
if the objects are equal, false
otherwise
Parameters
Name |
Description |
rhs |
The right operand |
Equality operator
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
bool
operator==(Block const& other) const noexcept;
Return Value
true
if the objects are equal, false
otherwise
Parameters
Name |
Description |
other |
The right operand |
Equality operator
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
constexpr
bool
operator==(Node const& rhs) const noexcept = default;
Return Value
true
if the objects are equal, false
otherwise
Parameters
Name |
Description |
rhs |
The right operand |
Three‐way comparison operators
Synopses
Declared in <mrdocs/Metadata/Javadoc.hpp>
Three‐way comparison operator
auto
operator<=>(Param const& rhs) const = default;
Three‐way comparison operator
auto
operator<=>(Paragraph const& rhs) const = default;
Three‐way comparison operator
auto
operator<=>(Block const& other) const;
Three‐way comparison operator
constexpr
auto
operator<=>(Node const& rhs) const = default;
Three‐way comparison operator
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
auto
operator<=>(Param const& rhs) const = default;
Return Value
The relative order of the objects
Parameters
Name |
Description |
rhs |
The right operand |
Three‐way comparison operator
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
auto
operator<=>(Paragraph const& rhs) const = default;
Return Value
The relative order of the objects
Parameters
Name |
Description |
rhs |
The right operand |
Three‐way comparison operator
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
auto
operator<=>(Block const& other) const;
Return Value
The relative order of the objects
Parameters
Name |
Description |
other |
The right operand |
Three‐way comparison operator
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
constexpr
auto
operator<=>(Node const& rhs) const = default;
Return Value
The relative order of the objects
Parameters
Name |
Description |
rhs |
The right operand |
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
ParamDirection direction;
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
std::string name;
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
inline constexpr static
auto static_kind = NodeKind::param;
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
struct Postcondition
: Paragraph
Base Classes
Name |
Description |
A sequence of text nodes. |
Member Functions
Name |
Description |
|
Construct from |
|
Assignment operators |
|
|
|
|
Equality operators |
|
Three‐way comparison operators |
Static Data Members
Name |
Using Declarations
Name |
Construct from Paragraph
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
Postcondition(Paragraph details_ = Paragraph());
Parameters
Name |
Description |
details_ |
The object to construct from |
Assignment operators
Synopses
Declared in <mrdocs/Metadata/Javadoc.hpp>
Assignment operator
virtual
Paragraph&
operator=(std::string_view str);
Assignment operator
constexpr
Paragraph&
operator=(Paragraph const& value) noexcept(false) = default;
Assignment operator
constexpr
Paragraph&
operator=(Paragraph&& value) = default;
Assignment operator
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
virtual
Paragraph&
operator=(std::string_view str);
Return Value
Reference to the current object
Parameters
Name |
Description |
str |
The object to assign from |
Assignment operator
Synopsis
Return Value
A sequence of text nodes.
Parameters
Name |
Description |
value |
The object to copy assign from |
Assignment operator
Synopsis
Return Value
A sequence of text nodes.
Parameters
Name |
Description |
value |
The object to move assign from |
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
virtual
bool
equals(Node const& other) const noexcept override;
Equality operators
Synopses
Declared in <mrdocs/Metadata/Javadoc.hpp>
Equality operator
bool
operator==(Postcondition const& rhs) const noexcept = default;
Equality operator
bool
operator==(Block const& other) const noexcept;
Equality operator
constexpr
bool
operator==(Node const& rhs) const noexcept = default;
Equality operator
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
bool
operator==(Postcondition const& rhs) const noexcept = default;
Return Value
true
if the objects are equal, false
otherwise
Parameters
Name |
Description |
rhs |
The right operand |
Equality operator
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
bool
operator==(Block const& other) const noexcept;
Return Value
true
if the objects are equal, false
otherwise
Parameters
Name |
Description |
other |
The right operand |
Equality operator
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
constexpr
bool
operator==(Node const& rhs) const noexcept = default;
Return Value
true
if the objects are equal, false
otherwise
Parameters
Name |
Description |
rhs |
The right operand |
Three‐way comparison operators
Synopses
Declared in <mrdocs/Metadata/Javadoc.hpp>
Three‐way comparison operator
auto
operator<=>(Postcondition const& rhs) const = default;
Three‐way comparison operator
auto
operator<=>(Paragraph const& rhs) const = default;
Three‐way comparison operator
auto
operator<=>(Block const& other) const;
Three‐way comparison operator
constexpr
auto
operator<=>(Node const& rhs) const = default;
Three‐way comparison operator
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
auto
operator<=>(Postcondition const& rhs) const = default;
Return Value
The relative order of the objects
Parameters
Name |
Description |
rhs |
The right operand |
Three‐way comparison operator
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
auto
operator<=>(Paragraph const& rhs) const = default;
Return Value
The relative order of the objects
Parameters
Name |
Description |
rhs |
The right operand |
Three‐way comparison operator
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
auto
operator<=>(Block const& other) const;
Return Value
The relative order of the objects
Parameters
Name |
Description |
other |
The right operand |
Three‐way comparison operator
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
constexpr
auto
operator<=>(Node const& rhs) const = default;
Return Value
The relative order of the objects
Parameters
Name |
Description |
rhs |
The right operand |
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
inline constexpr static
auto static_kind = NodeKind::postcondition;
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
using Paragraph::operator=;
Introduced Symbols
Name |
Description |
Assignment operator |
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
struct Precondition final
: Paragraph
Base Classes
Name |
Description |
A sequence of text nodes. |
Member Functions
Name |
Description |
|
Construct from |
|
Assignment operators |
|
|
|
|
Equality operators |
|
Three‐way comparison operators |
Static Data Members
Name |
Using Declarations
Name |
Construct from Paragraph
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
Precondition(Paragraph details_ = Paragraph());
Parameters
Name |
Description |
details_ |
The object to construct from |
Assignment operators
Synopses
Declared in <mrdocs/Metadata/Javadoc.hpp>
Assignment operator
virtual
Paragraph&
operator=(std::string_view str);
Assignment operator
constexpr
Paragraph&
operator=(Paragraph const& value) noexcept(false) = default;
Assignment operator
constexpr
Paragraph&
operator=(Paragraph&& value) = default;
Assignment operator
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
virtual
Paragraph&
operator=(std::string_view str);
Return Value
Reference to the current object
Parameters
Name |
Description |
str |
The object to assign from |
Assignment operator
Synopsis
Return Value
A sequence of text nodes.
Parameters
Name |
Description |
value |
The object to copy assign from |
Assignment operator
Synopsis
Return Value
A sequence of text nodes.
Parameters
Name |
Description |
value |
The object to move assign from |
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
virtual
bool
equals(Node const& other) const noexcept override;
Equality operators
Synopses
Declared in <mrdocs/Metadata/Javadoc.hpp>
Equality operator
bool
operator==(Precondition const& rhs) const noexcept = default;
Equality operator
bool
operator==(Block const& other) const noexcept;
Equality operator
constexpr
bool
operator==(Node const& rhs) const noexcept = default;
Equality operator
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
bool
operator==(Precondition const& rhs) const noexcept = default;
Return Value
true
if the objects are equal, false
otherwise
Parameters
Name |
Description |
rhs |
The right operand |
Equality operator
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
bool
operator==(Block const& other) const noexcept;
Return Value
true
if the objects are equal, false
otherwise
Parameters
Name |
Description |
other |
The right operand |
Equality operator
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
constexpr
bool
operator==(Node const& rhs) const noexcept = default;
Return Value
true
if the objects are equal, false
otherwise
Parameters
Name |
Description |
rhs |
The right operand |
Three‐way comparison operators
Synopses
Declared in <mrdocs/Metadata/Javadoc.hpp>
Three‐way comparison operator
auto
operator<=>(Precondition const& rhs) const = default;
Three‐way comparison operator
auto
operator<=>(Paragraph const& rhs) const = default;
Three‐way comparison operator
auto
operator<=>(Block const& other) const;
Three‐way comparison operator
constexpr
auto
operator<=>(Node const& rhs) const = default;
Three‐way comparison operator
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
auto
operator<=>(Precondition const& rhs) const = default;
Return Value
The relative order of the objects
Parameters
Name |
Description |
rhs |
The right operand |
Three‐way comparison operator
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
auto
operator<=>(Paragraph const& rhs) const = default;
Return Value
The relative order of the objects
Parameters
Name |
Description |
rhs |
The right operand |
Three‐way comparison operator
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
auto
operator<=>(Block const& other) const;
Return Value
The relative order of the objects
Parameters
Name |
Description |
other |
The right operand |
Three‐way comparison operator
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
constexpr
auto
operator<=>(Node const& rhs) const = default;
Return Value
The relative order of the objects
Parameters
Name |
Description |
rhs |
The right operand |
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
inline constexpr static
NodeKind static_kind = NodeKind::precondition;
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
using Paragraph::operator=;
Introduced Symbols
Name |
Description |
Assignment operator |
A reference to a symbol.
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
struct Reference
: Text
Base Classes
Name |
Description |
A Node containing a string of text. |
Member Functions
Static Data Members
Name |
Protected Member Functions
Name |
Description |
|
Constructor |
Derived Classes
Name |
Description |
Documentation copied from another symbol. |
Construct from string
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
explicit
Reference(std::string string_ = std::string()) noexcept;
Parameters
Name |
Description |
string_ |
The object to construct from |
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
virtual
bool
equals(Node const& other) const noexcept override;
Equality operators
Synopses
Declared in <mrdocs/Metadata/Javadoc.hpp>
Equality operator
constexpr
bool
operator==(Reference const& rhs) const noexcept = default;
Equality operator
constexpr
bool
operator==(Text const& rhs) const noexcept = default;
Equality operator
constexpr
bool
operator==(Node const& rhs) const noexcept = default;
Equality operator
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
constexpr
bool
operator==(Reference const& rhs) const noexcept = default;
Return Value
true
if the objects are equal, false
otherwise
Parameters
Name |
Description |
rhs |
The right operand |
Equality operator
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
constexpr
bool
operator==(Text const& rhs) const noexcept = default;
Return Value
true
if the objects are equal, false
otherwise
Parameters
Name |
Description |
rhs |
The right operand |
Equality operator
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
constexpr
bool
operator==(Node const& rhs) const noexcept = default;
Return Value
true
if the objects are equal, false
otherwise
Parameters
Name |
Description |
rhs |
The right operand |
Three‐way comparison operators
Synopses
Declared in <mrdocs/Metadata/Javadoc.hpp>
Three‐way comparison operator
auto
operator<=>(Reference const& rhs) const = default;
Three‐way comparison operator
constexpr
auto
operator<=>(Text const& rhs) const = default;
Three‐way comparison operator
constexpr
auto
operator<=>(Node const& rhs) const = default;
Three‐way comparison operator
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
auto
operator<=>(Reference const& rhs) const = default;
Return Value
The relative order of the objects
Parameters
Name |
Description |
rhs |
The right operand |
Three‐way comparison operator
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
constexpr
auto
operator<=>(Text const& rhs) const = default;
Return Value
The relative order of the objects
Parameters
Name |
Description |
rhs |
The right operand |
Three‐way comparison operator
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
constexpr
auto
operator<=>(Node const& rhs) const = default;
Return Value
The relative order of the objects
Parameters
Name |
Description |
rhs |
The right operand |
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
SymbolID id = = SymbolID::invalid;
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
inline constexpr static
auto static_kind = NodeKind::reference;
Constructor
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
Reference(
std::string string_,
NodeKind const kind_) noexcept;
Parameters
Name |
Description |
string_ |
The object to construct from |
kind_ |
The kind of node. |
Documentation for a function return type
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
struct Returns final
: Paragraph
Base Classes
Name |
Description |
A sequence of text nodes. |
Member Functions
Name |
Description |
|
Constructors |
|
Assignment operators |
|
|
|
|
Equality operators |
|
Three‐way comparison operators |
Static Data Members
Name |
Constructors
Synopses
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
Returns();
Construct from string_view
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
explicit
Returns(std::string_view const text);
Parameters
Name |
Description |
text |
The object to construct from |
Construct from Paragraph
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
explicit
Returns(Paragraph const& other);
Parameters
Name |
Description |
other |
The object to copy construct from |
Assignment operators
Synopses
Declared in <mrdocs/Metadata/Javadoc.hpp>
Assignment operator
virtual
Paragraph&
operator=(std::string_view str);
Assignment operator
virtual
Returns&
operator=(std::string_view const text) override;
Assignment operator
constexpr
Paragraph&
operator=(Paragraph const& value) noexcept(false) = default;
Assignment operator
constexpr
Paragraph&
operator=(Paragraph&& value) = default;
Assignment operator
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
virtual
Paragraph&
operator=(std::string_view str);
Return Value
Reference to the current object
Parameters
Name |
Description |
str |
The object to assign from |
Assignment operator
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
virtual
Returns&
operator=(std::string_view const text) override;
Return Value
Reference to the current object
Parameters
Name |
Description |
text |
The object to assign from |
Assignment operator
Synopsis
Return Value
A sequence of text nodes.
Parameters
Name |
Description |
value |
The object to copy assign from |
Assignment operator
Synopsis
Return Value
A sequence of text nodes.
Parameters
Name |
Description |
value |
The object to move assign from |
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
virtual
bool
equals(Node const& other) const noexcept override;
Equality operators
Synopses
Declared in <mrdocs/Metadata/Javadoc.hpp>
Equality operator
bool
operator==(Returns const& rhs) const noexcept = default;
Equality operator
bool
operator==(Block const& other) const noexcept;
Equality operator
constexpr
bool
operator==(Node const& rhs) const noexcept = default;
Equality operator
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
bool
operator==(Returns const& rhs) const noexcept = default;
Return Value
true
if the objects are equal, false
otherwise
Parameters
Name |
Description |
rhs |
The right operand |
Equality operator
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
bool
operator==(Block const& other) const noexcept;
Return Value
true
if the objects are equal, false
otherwise
Parameters
Name |
Description |
other |
The right operand |
Equality operator
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
constexpr
bool
operator==(Node const& rhs) const noexcept = default;
Return Value
true
if the objects are equal, false
otherwise
Parameters
Name |
Description |
rhs |
The right operand |
Three‐way comparison operators
Synopses
Declared in <mrdocs/Metadata/Javadoc.hpp>
Three‐way comparison operator
auto
operator<=>(Returns const& rhs) const = default;
Three‐way comparison operator
auto
operator<=>(Paragraph const& rhs) const = default;
Three‐way comparison operator
auto
operator<=>(Block const& other) const;
Three‐way comparison operator
constexpr
auto
operator<=>(Node const& rhs) const = default;
Three‐way comparison operator
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
auto
operator<=>(Returns const& rhs) const = default;
Return Value
The relative order of the objects
Parameters
Name |
Description |
rhs |
The right operand |
Three‐way comparison operator
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
auto
operator<=>(Paragraph const& rhs) const = default;
Return Value
The relative order of the objects
Parameters
Name |
Description |
rhs |
The right operand |
Three‐way comparison operator
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
auto
operator<=>(Block const& other) const;
Return Value
The relative order of the objects
Parameters
Name |
Description |
other |
The right operand |
Three‐way comparison operator
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
constexpr
auto
operator<=>(Node const& rhs) const = default;
Return Value
The relative order of the objects
Parameters
Name |
Description |
rhs |
The right operand |
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
inline constexpr static
NodeKind static_kind = NodeKind::returns;
A
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
struct See final
: Paragraph
Base Classes
Name |
Description |
A sequence of text nodes. |
Member Functions
Name |
Description |
|
Default constructor |
|
Assignment operators |
|
|
|
|
Equality operators |
|
Three‐way comparison operators |
Static Data Members
Name |
Using Declarations
Name |
See Also
paragraph
Default constructor
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
See();
Assignment operators
Synopses
Declared in <mrdocs/Metadata/Javadoc.hpp>
Assignment operator
virtual
Paragraph&
operator=(std::string_view str);
Assignment operator
constexpr
Paragraph&
operator=(Paragraph const& value) noexcept(false) = default;
Assignment operator
constexpr
Paragraph&
operator=(Paragraph&& value) = default;
Assignment operator
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
virtual
Paragraph&
operator=(std::string_view str);
Return Value
Reference to the current object
Parameters
Name |
Description |
str |
The object to assign from |
Assignment operator
Synopsis
Return Value
A sequence of text nodes.
Parameters
Name |
Description |
value |
The object to copy assign from |
Assignment operator
Synopsis
Return Value
A sequence of text nodes.
Parameters
Name |
Description |
value |
The object to move assign from |
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
virtual
bool
equals(Node const& other) const noexcept override;
Equality operators
Synopses
Declared in <mrdocs/Metadata/Javadoc.hpp>
Equality operator
bool
operator==(See const& rhs) const noexcept = default;
Equality operator
bool
operator==(Block const& other) const noexcept;
Equality operator
constexpr
bool
operator==(Node const& rhs) const noexcept = default;
Equality operator
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
bool
operator==(See const& rhs) const noexcept = default;
Return Value
true
if the objects are equal, false
otherwise
Parameters
Name |
Description |
rhs |
The right operand |
Equality operator
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
bool
operator==(Block const& other) const noexcept;
Return Value
true
if the objects are equal, false
otherwise
Parameters
Name |
Description |
other |
The right operand |
Equality operator
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
constexpr
bool
operator==(Node const& rhs) const noexcept = default;
Return Value
true
if the objects are equal, false
otherwise
Parameters
Name |
Description |
rhs |
The right operand |
Three‐way comparison operators
Synopses
Declared in <mrdocs/Metadata/Javadoc.hpp>
Three‐way comparison operator
auto
operator<=>(See const& rhs) const = default;
Three‐way comparison operator
auto
operator<=>(Paragraph const& rhs) const = default;
Three‐way comparison operator
auto
operator<=>(Block const& other) const;
Three‐way comparison operator
constexpr
auto
operator<=>(Node const& rhs) const = default;
Three‐way comparison operator
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
auto
operator<=>(See const& rhs) const = default;
Return Value
The relative order of the objects
Parameters
Name |
Description |
rhs |
The right operand |
Three‐way comparison operator
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
auto
operator<=>(Paragraph const& rhs) const = default;
Return Value
The relative order of the objects
Parameters
Name |
Description |
rhs |
The right operand |
Three‐way comparison operator
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
auto
operator<=>(Block const& other) const;
Return Value
The relative order of the objects
Parameters
Name |
Description |
other |
The right operand |
Three‐way comparison operator
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
constexpr
auto
operator<=>(Node const& rhs) const = default;
Return Value
The relative order of the objects
Parameters
Name |
Description |
rhs |
The right operand |
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
inline constexpr static
auto static_kind = NodeKind::see;
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
using Paragraph::operator=;
Introduced Symbols
Name |
Description |
Assignment operator |
A piece of styled text.
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
struct Styled final
: Text
Base Classes
Name |
Description |
A Node containing a string of text. |
Member Functions
Static Data Members
Name |
Constructor
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
Styled(
std::string string_ = std::string(),
Style style_ = Style::none) noexcept;
Parameters
Name |
Description |
string_ |
The object to construct from |
style_ |
The text style. |
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
virtual
bool
equals(Node const& other) const noexcept override;
Equality operators
Synopses
Declared in <mrdocs/Metadata/Javadoc.hpp>
Equality operator
constexpr
bool
operator==(Styled const& rhs) const noexcept = default;
Equality operator
constexpr
bool
operator==(Text const& rhs) const noexcept = default;
Equality operator
constexpr
bool
operator==(Node const& rhs) const noexcept = default;
Equality operator
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
constexpr
bool
operator==(Styled const& rhs) const noexcept = default;
Return Value
true
if the objects are equal, false
otherwise
Parameters
Name |
Description |
rhs |
The right operand |
Equality operator
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
constexpr
bool
operator==(Text const& rhs) const noexcept = default;
Return Value
true
if the objects are equal, false
otherwise
Parameters
Name |
Description |
rhs |
The right operand |
Equality operator
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
constexpr
bool
operator==(Node const& rhs) const noexcept = default;
Return Value
true
if the objects are equal, false
otherwise
Parameters
Name |
Description |
rhs |
The right operand |
Three‐way comparison operators
Synopses
Declared in <mrdocs/Metadata/Javadoc.hpp>
Three‐way comparison operator
constexpr
auto
operator<=>(Styled const& rhs) const = default;
Three‐way comparison operator
constexpr
auto
operator<=>(Text const& rhs) const = default;
Three‐way comparison operator
constexpr
auto
operator<=>(Node const& rhs) const = default;
Three‐way comparison operator
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
constexpr
auto
operator<=>(Styled const& rhs) const = default;
Return Value
The relative order of the objects
Parameters
Name |
Description |
rhs |
The right operand |
Three‐way comparison operator
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
constexpr
auto
operator<=>(Text const& rhs) const = default;
Return Value
The relative order of the objects
Parameters
Name |
Description |
rhs |
The right operand |
Three‐way comparison operator
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
constexpr
auto
operator<=>(Node const& rhs) const = default;
Return Value
The relative order of the objects
Parameters
Name |
Description |
rhs |
The right operand |
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
Style style;
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
inline constexpr static
auto static_kind = NodeKind::styled;
Documentation for a template parameter
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
struct TParam final
: Paragraph
Base Classes
Name |
Description |
A sequence of text nodes. |
Member Functions
Name |
Description |
|
Default constructor |
|
Assignment operators |
|
|
|
|
Equality operators |
|
Three‐way comparison operators |
Static Data Members
Name |
Using Declarations
Name |
Default constructor
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
TParam();
Assignment operators
Synopses
Declared in <mrdocs/Metadata/Javadoc.hpp>
Assignment operator
virtual
Paragraph&
operator=(std::string_view str);
Assignment operator
constexpr
Paragraph&
operator=(Paragraph const& value) noexcept(false) = default;
Assignment operator
constexpr
Paragraph&
operator=(Paragraph&& value) = default;
Assignment operator
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
virtual
Paragraph&
operator=(std::string_view str);
Return Value
Reference to the current object
Parameters
Name |
Description |
str |
The object to assign from |
Assignment operator
Synopsis
Return Value
A sequence of text nodes.
Parameters
Name |
Description |
value |
The object to copy assign from |
Assignment operator
Synopsis
Return Value
A sequence of text nodes.
Parameters
Name |
Description |
value |
The object to move assign from |
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
virtual
bool
equals(Node const& other) const noexcept override;
Equality operators
Synopses
Declared in <mrdocs/Metadata/Javadoc.hpp>
Equality operator
bool
operator==(TParam const& rhs) const noexcept = default;
Equality operator
bool
operator==(Block const& other) const noexcept;
Equality operator
constexpr
bool
operator==(Node const& rhs) const noexcept = default;
Equality operator
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
bool
operator==(TParam const& rhs) const noexcept = default;
Return Value
true
if the objects are equal, false
otherwise
Parameters
Name |
Description |
rhs |
The right operand |
Equality operator
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
bool
operator==(Block const& other) const noexcept;
Return Value
true
if the objects are equal, false
otherwise
Parameters
Name |
Description |
other |
The right operand |
Equality operator
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
constexpr
bool
operator==(Node const& rhs) const noexcept = default;
Return Value
true
if the objects are equal, false
otherwise
Parameters
Name |
Description |
rhs |
The right operand |
Three‐way comparison operators
Synopses
Declared in <mrdocs/Metadata/Javadoc.hpp>
Three‐way comparison operator
auto
operator<=>(TParam const& rhs) const = default;
Three‐way comparison operator
auto
operator<=>(Paragraph const& rhs) const = default;
Three‐way comparison operator
auto
operator<=>(Block const& other) const;
Three‐way comparison operator
constexpr
auto
operator<=>(Node const& rhs) const = default;
Three‐way comparison operator
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
auto
operator<=>(TParam const& rhs) const = default;
Return Value
The relative order of the objects
Parameters
Name |
Description |
rhs |
The right operand |
Three‐way comparison operator
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
auto
operator<=>(Paragraph const& rhs) const = default;
Return Value
The relative order of the objects
Parameters
Name |
Description |
rhs |
The right operand |
Three‐way comparison operator
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
auto
operator<=>(Block const& other) const;
Return Value
The relative order of the objects
Parameters
Name |
Description |
other |
The right operand |
Three‐way comparison operator
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
constexpr
auto
operator<=>(Node const& rhs) const = default;
Return Value
The relative order of the objects
Parameters
Name |
Description |
rhs |
The right operand |
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
std::string name;
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
inline constexpr static
NodeKind static_kind = NodeKind::tparam;
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
using Paragraph::operator=;
Introduced Symbols
Name |
Description |
Assignment operator |
A Node containing a string of text.
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
struct Text
: Node
Base Classes
Name |
Description |
This is a variant‐like list element. |
Member Functions
Static Data Members
Name |
Protected Member Functions
Name |
Description |
|
Constructor |
Derived Classes
Description
There will be no newlines in the text. Otherwise, this would be represented as multiple text nodes within a Paragraph node.
Construct from string
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
explicit
Text(std::string string_ = std::string()) noexcept;
Parameters
Name |
Description |
string_ |
The object to construct from |
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
virtual
bool
equals(Node const& other) const noexcept override;
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
virtual
bool
isBlock() const noexcept final;
Equality operators
Synopses
Declared in <mrdocs/Metadata/Javadoc.hpp>
Equality operator
constexpr
bool
operator==(Text const& rhs) const noexcept = default;
Equality operator
constexpr
bool
operator==(Node const& rhs) const noexcept = default;
Equality operator
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
constexpr
bool
operator==(Text const& rhs) const noexcept = default;
Return Value
true
if the objects are equal, false
otherwise
Parameters
Name |
Description |
rhs |
The right operand |
Equality operator
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
constexpr
bool
operator==(Node const& rhs) const noexcept = default;
Return Value
true
if the objects are equal, false
otherwise
Parameters
Name |
Description |
rhs |
The right operand |
Three‐way comparison operators
Synopses
Declared in <mrdocs/Metadata/Javadoc.hpp>
Three‐way comparison operator
constexpr
auto
operator<=>(Text const& rhs) const = default;
Three‐way comparison operator
constexpr
auto
operator<=>(Node const& rhs) const = default;
Three‐way comparison operator
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
constexpr
auto
operator<=>(Text const& rhs) const = default;
Return Value
The relative order of the objects
Parameters
Name |
Description |
rhs |
The right operand |
Three‐way comparison operator
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
constexpr
auto
operator<=>(Node const& rhs) const = default;
Return Value
The relative order of the objects
Parameters
Name |
Description |
rhs |
The right operand |
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
std::string string;
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
inline constexpr static
auto static_kind = NodeKind::text;
Constructor
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
Text(
std::string string_,
NodeKind kind_);
Parameters
Name |
Description |
string_ |
The object to construct from |
kind_ |
The kind of node. |
Documentation for a function parameter
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
struct Throws final
: Paragraph
Base Classes
Name |
Description |
A sequence of text nodes. |
Member Functions
Name |
Description |
|
Constructor |
|
Assignment operators |
|
|
|
|
Equality operators |
|
Three‐way comparison operators |
Static Data Members
Name |
Using Declarations
Name |
Constructor
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
Throws(
std::string exception_ = std::string(),
Paragraph details_ = Paragraph());
Parameters
Name |
Description |
exception_ |
The object to construct from |
details_ |
A sequence of text nodes. |
Assignment operators
Synopses
Declared in <mrdocs/Metadata/Javadoc.hpp>
Assignment operator
virtual
Paragraph&
operator=(std::string_view str);
Assignment operator
constexpr
Paragraph&
operator=(Paragraph const& value) noexcept(false) = default;
Assignment operator
constexpr
Paragraph&
operator=(Paragraph&& value) = default;
Assignment operator
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
virtual
Paragraph&
operator=(std::string_view str);
Return Value
Reference to the current object
Parameters
Name |
Description |
str |
The object to assign from |
Assignment operator
Synopsis
Return Value
A sequence of text nodes.
Parameters
Name |
Description |
value |
The object to copy assign from |
Assignment operator
Synopsis
Return Value
A sequence of text nodes.
Parameters
Name |
Description |
value |
The object to move assign from |
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
virtual
bool
equals(Node const& other) const noexcept override;
Equality operators
Synopses
Declared in <mrdocs/Metadata/Javadoc.hpp>
Equality operator
bool
operator==(Throws const& rhs) const noexcept = default;
Equality operator
bool
operator==(Block const& other) const noexcept;
Equality operator
constexpr
bool
operator==(Node const& rhs) const noexcept = default;
Equality operator
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
bool
operator==(Throws const& rhs) const noexcept = default;
Return Value
true
if the objects are equal, false
otherwise
Parameters
Name |
Description |
rhs |
The right operand |
Equality operator
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
bool
operator==(Block const& other) const noexcept;
Return Value
true
if the objects are equal, false
otherwise
Parameters
Name |
Description |
other |
The right operand |
Equality operator
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
constexpr
bool
operator==(Node const& rhs) const noexcept = default;
Return Value
true
if the objects are equal, false
otherwise
Parameters
Name |
Description |
rhs |
The right operand |
Three‐way comparison operators
Synopses
Declared in <mrdocs/Metadata/Javadoc.hpp>
Three‐way comparison operator
auto
operator<=>(Throws const& rhs) const = default;
Three‐way comparison operator
auto
operator<=>(Paragraph const& rhs) const = default;
Three‐way comparison operator
auto
operator<=>(Block const& other) const;
Three‐way comparison operator
constexpr
auto
operator<=>(Node const& rhs) const = default;
Three‐way comparison operator
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
auto
operator<=>(Throws const& rhs) const = default;
Return Value
The relative order of the objects
Parameters
Name |
Description |
rhs |
The right operand |
Three‐way comparison operator
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
auto
operator<=>(Paragraph const& rhs) const = default;
Return Value
The relative order of the objects
Parameters
Name |
Description |
rhs |
The right operand |
Three‐way comparison operator
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
auto
operator<=>(Block const& other) const;
Return Value
The relative order of the objects
Parameters
Name |
Description |
other |
The right operand |
Three‐way comparison operator
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
constexpr
auto
operator<=>(Node const& rhs) const = default;
Return Value
The relative order of the objects
Parameters
Name |
Description |
rhs |
The right operand |
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
Reference exception;
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
inline constexpr static
NodeKind static_kind = NodeKind::throws;
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
using Paragraph::operator=;
Introduced Symbols
Name |
Description |
Assignment operator |
A list of list items
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
struct UnorderedList final
: Paragraph
Base Classes
Name |
Description |
A sequence of text nodes. |
Member Functions
Name |
Description |
|
Default constructor |
|
Assignment operators |
|
|
|
|
Equality operators |
|
Three‐way comparison operators |
Static Data Members
Name |
Using Declarations
Name |
Default constructor
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
UnorderedList();
Assignment operators
Synopses
Declared in <mrdocs/Metadata/Javadoc.hpp>
Assignment operator
virtual
Paragraph&
operator=(std::string_view str);
Assignment operator
constexpr
Paragraph&
operator=(Paragraph const& value) noexcept(false) = default;
Assignment operator
constexpr
Paragraph&
operator=(Paragraph&& value) = default;
Assignment operator
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
virtual
Paragraph&
operator=(std::string_view str);
Return Value
Reference to the current object
Parameters
Name |
Description |
str |
The object to assign from |
Assignment operator
Synopsis
Return Value
A sequence of text nodes.
Parameters
Name |
Description |
value |
The object to copy assign from |
Assignment operator
Synopsis
Return Value
A sequence of text nodes.
Parameters
Name |
Description |
value |
The object to move assign from |
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
virtual
bool
equals(Node const& other) const noexcept override;
Equality operators
Synopses
Declared in <mrdocs/Metadata/Javadoc.hpp>
Equality operator
bool
operator==(UnorderedList const& rhs) const noexcept = default;
Equality operator
bool
operator==(Block const& other) const noexcept;
Equality operator
constexpr
bool
operator==(Node const& rhs) const noexcept = default;
Equality operator
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
bool
operator==(UnorderedList const& rhs) const noexcept = default;
Return Value
true
if the objects are equal, false
otherwise
Parameters
Name |
Description |
rhs |
The right operand |
Equality operator
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
bool
operator==(Block const& other) const noexcept;
Return Value
true
if the objects are equal, false
otherwise
Parameters
Name |
Description |
other |
The right operand |
Equality operator
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
constexpr
bool
operator==(Node const& rhs) const noexcept = default;
Return Value
true
if the objects are equal, false
otherwise
Parameters
Name |
Description |
rhs |
The right operand |
Three‐way comparison operators
Synopses
Declared in <mrdocs/Metadata/Javadoc.hpp>
Three‐way comparison operator
auto
operator<=>(UnorderedList const& other) const;
Three‐way comparison operator
auto
operator<=>(Paragraph const& rhs) const = default;
Three‐way comparison operator
auto
operator<=>(Block const& other) const;
Three‐way comparison operator
constexpr
auto
operator<=>(Node const& rhs) const = default;
Three‐way comparison operator
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
auto
operator<=>(UnorderedList const& other) const;
Return Value
The relative order of the objects
Parameters
Name |
Description |
other |
The right operand |
Three‐way comparison operator
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
auto
operator<=>(Paragraph const& rhs) const = default;
Return Value
The relative order of the objects
Parameters
Name |
Description |
rhs |
The right operand |
Three‐way comparison operator
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
auto
operator<=>(Block const& other) const;
Return Value
The relative order of the objects
Parameters
Name |
Description |
other |
The right operand |
Three‐way comparison operator
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
constexpr
auto
operator<=>(Node const& rhs) const = default;
Return Value
The relative order of the objects
Parameters
Name |
Description |
rhs |
The right operand |
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
std::vector<ListItem> items;
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
inline constexpr static
auto static_kind = NodeKind::unordered_list;
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
using Paragraph::operator=;
Introduced Symbols
Name |
Description |
Assignment operator |
An admonishment style.
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
enum class Admonish : int;
Members
Name |
Description |
|
No admonishment |
|
A general note |
|
A tip to the reader |
|
Something important |
|
A caution admonishment |
|
A warning admonishment |
Non-Member Functions
Name |
Description |
Return the name of the Admonish as a string. |
The kind of node.
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
enum class NodeKind : int;
Members
Name |
Description |
|
A text tag |
|
An admonition tag |
|
A brief tag |
|
A code tag |
|
A heading tag |
|
A link tag |
|
A list_item tag |
|
An unordered_list tag |
|
A paragraph tag |
|
A param tag |
|
A returns tag |
|
A styled tag |
|
A tparam tag |
|
A reference tag |
|
A copy_details tag |
|
A throws tag |
|
A details tag |
|
A see tag |
|
A general tag. |
|
A postcondition tag. |
Non-Member Functions
Name |
Description |
Return the name of the NodeKind as a string. |
Description
This includes tags and block types.
Some of the available tags are:
*
* {}
*
*
*
*
*
*
*
*
* {}
* {
reference}`
@li `{@linkplain reference}`
@li `{@value #STATIC_FIELD}`
@li `{@code literal}`
@li `{@literal literal}`
@li `{@serial literal}`
@li `{@serialData literal}`
@li `{@serialField literal}`
Doxygen also introduces a number of additional tags on top
of the the doc comment specification.
@note When a new tag is added, the `visit` function overloads
must be updated to handle the new tag.
@see https://en.wikipedia.org/wiki/Javadoc[Javadoc - Wikipedia]
@see https://docs.oracle.com/javase/1.5.0/docs/tooldocs/solaris/javadoc.html[Javadoc Documentation]
@see https://docs.oracle.com/en/java/javase/13/docs/specs/javadoc/doc-comment-spec.html[Doc Comment Specification]
@see https://www.oracle.com/java/technologies/javase/javadoc-tool.html[Javadoc Tool]
@see https://www.oracle.com/technical-resources/articles/java/javadoc-tool.html[How to Write Doc Comments]
@see https://docs.oracle.com/javase/8/docs/technotes/tools/unix/javadoc.html[Javadoc Package]
@see https://web.archive.org/web/20170714215721/http://agile.csc.ncsu.edu:80/SEMaterials/tutorials/javadoc[Javadoc Tutorial]
@see https://en.wikipedia.org/wiki/Doxygen[Doxygen - Wikipedia]
@see https://www.doxygen.nl/manual/commands.html[Doxygen Special Tags]
Exceptions
Name |
Thrown on |
|
description` |
|
description` |
Return Value
description`
Parameters
Name |
Description |
name |
description` |
See Also
reference`
Parameter pass direction.
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
enum class ParamDirection : int;
Members
Name |
Description |
|
No direction specified |
|
Parameter is passed |
|
Parameter is passed back to the caller |
|
Parameter is passed and passed back to the caller |
Non-Member Functions
Name |
Description |
Return the name of the ParamDirection as a string. |
Which parts of the documentation to copy.
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
enum class Parts : int;
Members
Name |
Description |
|
Copy the brief and the description |
|
Copy the brief |
|
Copy the description |
Non-Member Functions
Name |
Description |
Return the name of the Parts as a string. |
Description
-
all
: copy the brief and the description. -
brief
: only copy the brief. -
description
: only copy the description.
The text style.
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
enum class Style : int;
Members
Name |
Description |
|
No style |
|
Monospaced text |
|
Bold text |
|
Italic text |
Non-Member Functions
Synopses
Declared in <mrdocs/Metadata/Javadoc.hpp>
Return the Admonish from a dom::Value
string.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
Admonish const kind);
Return the NodeKind from a dom::Value
string.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
NodeKind const kind);
Return the ParamDirection from a dom::Value
string.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
ParamDirection const kind);
Return the Parts from a dom::Value
string.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
Parts const kind);
Return the Style
from a dom::Value
string.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
Style const kind);
Return the Admonition
as a dom::Value
object.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
Admonition const& I,
DomCorpus const* domCorpus);
Return the Block
as a dom::Value
object.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
Block const& I,
DomCorpus const* domCorpus);
Return the Brief
as a dom::Value
object.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
Brief const& I,
DomCorpus const* domCorpus);
Return the Code
as a dom::Value
object.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
Code const& I,
DomCorpus const* domCorpus);
Return the CopyDetails
as a dom::Value
object.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
CopyDetails const& I,
DomCorpus const* domCorpus);
Return the Heading
as a dom::Value
object.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
Heading const& I,
DomCorpus const* domCorpus);
Return the Link
as a dom::Value
object.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
Link const& I,
DomCorpus const* domCorpus);
Return the ListItem
as a dom::Value
object.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
ListItem const& I,
DomCorpus const* domCorpus);
Return the Node
as a dom::Value
object.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
Node const& I,
DomCorpus const* domCorpus);
Return the Paragraph
as a dom::Value
object.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
Paragraph const& I,
DomCorpus const* domCorpus);
Return the Param
as a dom::Value
object.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
Param const& I,
DomCorpus const* domCorpus);
Return the Postcondition
as a dom::Value
object.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
Postcondition const& I,
DomCorpus const* domCorpus);
Return the Precondition
as a dom::Value
object.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
Precondition const& I,
DomCorpus const* domCorpus);
Return the Reference
as a dom::Value
object.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
Reference const& I,
DomCorpus const* domCorpus);
Return the Returns
as a dom::Value
object.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
Returns const& I,
DomCorpus const* domCorpus);
Return the See
as a dom::Value
object.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
See const& I,
DomCorpus const* domCorpus);
Return the Styled
as a dom::Value
object.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
Styled const& I,
DomCorpus const* domCorpus);
Return the TParam
as a dom::Value
object.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
TParam const& I,
DomCorpus const* domCorpus);
Return the Text
as a dom::Value
object.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
Text const& I,
DomCorpus const* domCorpus);
Return the Throws
as a dom::Value
object.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
Throws const& I,
DomCorpus const* domCorpus);
Return the UnorderedList
as a dom::Value
object.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
UnorderedList const& I,
DomCorpus const* domCorpus);
Map the Node
to a dom::Object
.
template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag,
IO& io,
Node const& I,
DomCorpus const* domCorpus);
Map the Admonition
to a dom::Object
.
template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
Admonition const& I,
DomCorpus const* domCorpus);
Map the Block
to a dom::Object
.
template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
Block const& I,
DomCorpus const* domCorpus);
Map the Brief
to a dom::Object
.
template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
Brief const& I,
DomCorpus const* domCorpus);
Map the Code
to a dom::Object
.
template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
Code const& I,
DomCorpus const* domCorpus);
Map the CopyDetails
to a dom::Object
.
template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
CopyDetails const& I,
DomCorpus const* domCorpus);
Map the Heading
to a dom::Object
.
template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
Heading const& I,
DomCorpus const* domCorpus);
Map the Link
to a dom::Object
.
template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
Link const& I,
DomCorpus const* domCorpus);
Map the ListItem
to a dom::Object
.
template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
ListItem const& I,
DomCorpus const* domCorpus);
Map the Paragraph
to a dom::Object
.
template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
Paragraph const& I,
DomCorpus const* domCorpus);
Map the Param
to a dom::Object
.
template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
Param const& I,
DomCorpus const* domCorpus);
Map the Postcondition
to a dom::Object
.
template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
Postcondition const& I,
DomCorpus const* domCorpus);
Map the Precondition
to a dom::Object
.
template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
Precondition const& I,
DomCorpus const* domCorpus);
Map the Reference
to a dom::Object
.
template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
Reference const& I,
DomCorpus const* domCorpus);
Map the Returns
to a dom::Object
.
template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
Returns const& I,
DomCorpus const* domCorpus);
Map the See
to a dom::Object
.
template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
See const& I,
DomCorpus const* domCorpus);
Map the Styled
to a dom::Object
.
template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
Styled const& I,
DomCorpus const* domCorpus);
Map the TParam
to a dom::Object
.
template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
TParam const& I,
DomCorpus const* domCorpus);
Map the Text
to a dom::Object
.
template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
Text const& I,
DomCorpus const* domCorpus);
Map the Throws
to a dom::Object
.
template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
Throws const& I,
DomCorpus const* domCorpus);
Map the UnorderedList
to a dom::Object
.
template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
UnorderedList const& I,
DomCorpus const* domCorpus);
Map the Polymorphic Node as a dom::Value
object.
template<
class IO,
polymorphic_storage_for<Node> NodeTy>
void
tag_invoke(
dom::ValueFromTag,
IO& io,
NodeTy const& I,
DomCorpus const* domCorpus);
Parameters
Name |
Description |
v |
The output value. |
I |
The input object. |
domCorpus |
The DOM corpus, or nullptr if not part of a corpus. |
io |
The output parameter to receive the dom::Object. |
t |
The tag. |
Return the Admonish from a dom::Value
string.
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
Admonish const kind);
Parameters
Name |
Description |
v |
A variant container for any kind of Dom value. |
kind |
An admonishment style. |
Return the NodeKind from a dom::Value
string.
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
NodeKind const kind);
Parameters
Name |
Description |
v |
A variant container for any kind of Dom value. |
kind |
The kind of node. |
Return the ParamDirection from a dom::Value
string.
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
ParamDirection const kind);
Parameters
Name |
Description |
v |
A variant container for any kind of Dom value. |
kind |
Parameter pass direction. |
Return the Parts from a dom::Value
string.
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
Parts const kind);
Parameters
Name |
Description |
v |
A variant container for any kind of Dom value. |
kind |
Which parts of the documentation to copy. |
Return the Style
from a dom::Value
string.
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
Style const kind);
Parameters
Name |
Description |
v |
A variant container for any kind of Dom value. |
kind |
The text style. |
Return the Admonition
as a dom::Value
object.
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
Admonition const& I,
DomCorpus const* domCorpus);
Parameters
Name |
Description |
v |
A variant container for any kind of Dom value. |
I |
An admonition. |
domCorpus |
Front‐end factory for producing Dom nodes. |
Return the Block
as a dom::Value
object.
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
Block const& I,
DomCorpus const* domCorpus);
Parameters
Name |
Description |
v |
A variant container for any kind of Dom value. |
I |
A piece of block content |
domCorpus |
Front‐end factory for producing Dom nodes. |
Return the Brief
as a dom::Value
object.
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
Brief const& I,
DomCorpus const* domCorpus);
Parameters
Name |
Description |
v |
A variant container for any kind of Dom value. |
I |
The brief description |
domCorpus |
Front‐end factory for producing Dom nodes. |
Return the Code
as a dom::Value
object.
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
Code const& I,
DomCorpus const* domCorpus);
Parameters
Name |
Description |
v |
A variant container for any kind of Dom value. |
I |
Preformatted source code. |
domCorpus |
Front‐end factory for producing Dom nodes. |
Return the CopyDetails
as a dom::Value
object.
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
CopyDetails const& I,
DomCorpus const* domCorpus);
Parameters
Name |
Description |
v |
The output value. |
I |
The input object. |
domCorpus |
The DOM corpus, or nullptr if not part of a corpus. |
Return the Heading
as a dom::Value
object.
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
Heading const& I,
DomCorpus const* domCorpus);
Parameters
Name |
Description |
v |
A variant container for any kind of Dom value. |
I |
A manually specified section heading. |
domCorpus |
Front‐end factory for producing Dom nodes. |
Return the Link
as a dom::Value
object.
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
Link const& I,
DomCorpus const* domCorpus);
Parameters
Name |
Description |
v |
A variant container for any kind of Dom value. |
I |
A hyperlink. |
domCorpus |
Front‐end factory for producing Dom nodes. |
Return the ListItem
as a dom::Value
object.
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
ListItem const& I,
DomCorpus const* domCorpus);
Parameters
Name |
Description |
v |
A variant container for any kind of Dom value. |
I |
An item in a list |
domCorpus |
Front‐end factory for producing Dom nodes. |
Return the Node
as a dom::Value
object.
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
Node const& I,
DomCorpus const* domCorpus);
Parameters
Name |
Description |
v |
A variant container for any kind of Dom value. |
I |
This is a variant‐like list element. |
domCorpus |
Front‐end factory for producing Dom nodes. |
Return the Paragraph
as a dom::Value
object.
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
Paragraph const& I,
DomCorpus const* domCorpus);
Parameters
Name |
Description |
v |
A variant container for any kind of Dom value. |
I |
A sequence of text nodes. |
domCorpus |
Front‐end factory for producing Dom nodes. |
Return the Param
as a dom::Value
object.
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
Param const& I,
DomCorpus const* domCorpus);
Parameters
Name |
Description |
v |
A variant container for any kind of Dom value. |
I |
Documentation for a function parameter |
domCorpus |
Front‐end factory for producing Dom nodes. |
Return the Postcondition
as a dom::Value
object.
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
Postcondition const& I,
DomCorpus const* domCorpus);
Parameters
Name |
Description |
v |
The value to assign to. |
I |
The input object. |
domCorpus |
The DOM corpus, or nullptr if not part of a corpus. |
Return the Precondition
as a dom::Value
object.
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
Precondition const& I,
DomCorpus const* domCorpus);
Parameters
Name |
Description |
v |
The value to assign to. |
I |
The input object. |
domCorpus |
The DOM corpus, or nullptr if not part of a corpus. |
Return the Reference
as a dom::Value
object.
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
Reference const& I,
DomCorpus const* domCorpus);
Parameters
Name |
Description |
v |
A variant container for any kind of Dom value. |
I |
A reference to a symbol. |
domCorpus |
Front‐end factory for producing Dom nodes. |
Return the Returns
as a dom::Value
object.
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
Returns const& I,
DomCorpus const* domCorpus);
Parameters
Name |
Description |
v |
A variant container for any kind of Dom value. |
I |
Documentation for a function return type |
domCorpus |
Front‐end factory for producing Dom nodes. |
Return the See
as a dom::Value
object.
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
See const& I,
DomCorpus const* domCorpus);
Parameters
Name |
Description |
v |
A variant container for any kind of Dom value. |
I |
A |
domCorpus |
Front‐end factory for producing Dom nodes. |
Return the Styled
as a dom::Value
object.
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
Styled const& I,
DomCorpus const* domCorpus);
Parameters
Name |
Description |
v |
A variant container for any kind of Dom value. |
I |
A piece of styled text. |
domCorpus |
Front‐end factory for producing Dom nodes. |
Return the TParam
as a dom::Value
object.
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
TParam const& I,
DomCorpus const* domCorpus);
Parameters
Name |
Description |
v |
A variant container for any kind of Dom value. |
I |
Documentation for a template parameter |
domCorpus |
Front‐end factory for producing Dom nodes. |
Return the Text
as a dom::Value
object.
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
Text const& I,
DomCorpus const* domCorpus);
Parameters
Name |
Description |
v |
A variant container for any kind of Dom value. |
I |
A Node containing a string of text. |
domCorpus |
Front‐end factory for producing Dom nodes. |
Return the Throws
as a dom::Value
object.
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
Throws const& I,
DomCorpus const* domCorpus);
Parameters
Name |
Description |
v |
A variant container for any kind of Dom value. |
I |
Documentation for a function parameter |
domCorpus |
Front‐end factory for producing Dom nodes. |
Return the UnorderedList
as a dom::Value
object.
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
UnorderedList const& I,
DomCorpus const* domCorpus);
Parameters
Name |
Description |
v |
A variant container for any kind of Dom value. |
I |
A list of list items |
domCorpus |
Front‐end factory for producing Dom nodes. |
Map the Node
to a dom::Object
.
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag,
IO& io,
Node const& I,
DomCorpus const* domCorpus);
Parameters
Name |
Description |
io |
The output parameter to receive the dom::Object. |
I |
The input object. |
domCorpus |
The DOM corpus, or nullptr if not part of a corpus. |
Map the Admonition
to a dom::Object
.
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
Admonition const& I,
DomCorpus const* domCorpus);
Parameters
Name |
Description |
t |
The tag. |
io |
The output object. |
I |
The input object. |
domCorpus |
The DOM corpus, or nullptr if not part of a corpus. |
Map the Block
to a dom::Object
.
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
Block const& I,
DomCorpus const* domCorpus);
Parameters
Name |
Description |
t |
The tag. |
io |
The output object. |
I |
The input object. |
domCorpus |
The DOM corpus, or nullptr if not part of a corpus. |
Map the Brief
to a dom::Object
.
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
Brief const& I,
DomCorpus const* domCorpus);
Parameters
Name |
Description |
t |
The tag. |
io |
The output object. |
I |
The input object. |
domCorpus |
The DOM corpus, or nullptr if not part of a corpus. |
Map the Code
to a dom::Object
.
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
Code const& I,
DomCorpus const* domCorpus);
Parameters
Name |
Description |
t |
The tag. |
io |
The output object. |
I |
The input object. |
domCorpus |
The DOM corpus, or nullptr if not part of a corpus. |
Map the CopyDetails
to a dom::Object
.
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
CopyDetails const& I,
DomCorpus const* domCorpus);
Parameters
Name |
Description |
t |
The tag. |
io |
The output object. |
I |
The input object. |
domCorpus |
The DOM corpus, or nullptr if not part of a corpus. |
Map the Heading
to a dom::Object
.
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
Heading const& I,
DomCorpus const* domCorpus);
Parameters
Name |
Description |
t |
The tag. |
io |
The output object. |
I |
The input object. |
domCorpus |
The DOM corpus, or nullptr if not part of a corpus. |
Map the Link
to a dom::Object
.
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
Link const& I,
DomCorpus const* domCorpus);
Parameters
Name |
Description |
t |
The tag. |
io |
The output object. |
I |
The input object. |
domCorpus |
The DOM corpus, or nullptr if not part of a corpus. |
Map the ListItem
to a dom::Object
.
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
ListItem const& I,
DomCorpus const* domCorpus);
Parameters
Name |
Description |
t |
The tag. |
io |
The output object. |
I |
The input object. |
domCorpus |
The DOM corpus, or nullptr if not part of a corpus. |
Map the Paragraph
to a dom::Object
.
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
Paragraph const& I,
DomCorpus const* domCorpus);
Parameters
Name |
Description |
t |
The tag. |
io |
The output object. |
I |
The input object. |
domCorpus |
The DOM corpus, or nullptr if not part of a corpus. |
Map the Param
to a dom::Object
.
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
Param const& I,
DomCorpus const* domCorpus);
Parameters
Name |
Description |
t |
The tag. |
io |
The output object. |
I |
The input object. |
domCorpus |
The DOM corpus, or nullptr if not part of a corpus. |
Map the Postcondition
to a dom::Object
.
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
Postcondition const& I,
DomCorpus const* domCorpus);
Parameters
Name |
Description |
t |
The tag. |
io |
The output object. |
I |
The input object. |
domCorpus |
The DOM corpus, or nullptr if not part of a corpus. |
Map the Precondition
to a dom::Object
.
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
Precondition const& I,
DomCorpus const* domCorpus);
Parameters
Name |
Description |
t |
The tag. |
io |
The output object. |
I |
The input object. |
domCorpus |
The DOM corpus, or nullptr if not part of a corpus. |
Map the Reference
to a dom::Object
.
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
Reference const& I,
DomCorpus const* domCorpus);
Parameters
Name |
Description |
t |
The tag. |
io |
The output object. |
I |
The input object. |
domCorpus |
The DOM corpus, or nullptr if not part of a corpus. |
Map the Returns
to a dom::Object
.
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
Returns const& I,
DomCorpus const* domCorpus);
Parameters
Name |
Description |
t |
The tag. |
io |
The output object. |
I |
The input object. |
domCorpus |
The DOM corpus, or nullptr if not part of a corpus. |
Map the See
to a dom::Object
.
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
See const& I,
DomCorpus const* domCorpus);
Parameters
Name |
Description |
t |
The tag. |
io |
The output object. |
I |
The input object. |
domCorpus |
The DOM corpus, or nullptr if not part of a corpus. |
Map the Styled
to a dom::Object
.
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
Styled const& I,
DomCorpus const* domCorpus);
Parameters
Name |
Description |
t |
The tag. |
io |
The output object. |
I |
The input object. |
domCorpus |
The DOM corpus, or nullptr if not part of a corpus. |
Map the TParam
to a dom::Object
.
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
TParam const& I,
DomCorpus const* domCorpus);
Parameters
Name |
Description |
t |
The tag. |
io |
The output object. |
I |
The input object. |
domCorpus |
The DOM corpus, or nullptr if not part of a corpus. |
Map the Text
to a dom::Object
.
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
Text const& I,
DomCorpus const* domCorpus);
Parameters
Name |
Description |
t |
The tag. |
io |
The output object. |
I |
The input object. |
domCorpus |
The DOM corpus, or nullptr if not part of a corpus. |
Map the Throws
to a dom::Object
.
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
Throws const& I,
DomCorpus const* domCorpus);
Parameters
Name |
Description |
t |
The tag. |
io |
The output object. |
I |
The input object. |
domCorpus |
The DOM corpus, or nullptr if not part of a corpus. |
Map the UnorderedList
to a dom::Object
.
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
UnorderedList const& I,
DomCorpus const* domCorpus);
Parameters
Name |
Description |
t |
The tag. |
io |
The output object. |
I |
The input object. |
domCorpus |
The DOM corpus, or nullptr if not part of a corpus. |
Map the Polymorphic Node as a dom::Value
object.
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
template<
class IO,
polymorphic_storage_for<Node> NodeTy>
void
tag_invoke(
dom::ValueFromTag,
IO& io,
NodeTy const& I,
DomCorpus const* domCorpus);
Parameters
Name |
Description |
io |
The output parameter to receive the dom::Object. |
I |
The input object. |
domCorpus |
The DOM corpus, or nullptr if not part of a corpus. |
toString
overloads
Synopses
Declared in <mrdocs/Metadata/Javadoc.hpp>
Return the name of the Admonish as a string.
dom::String
toString(Admonish kind) noexcept;
Return the name of the NodeKind as a string.
dom::String
toString(NodeKind kind) noexcept;
Return the name of the ParamDirection as a string.
dom::String
toString(ParamDirection kind) noexcept;
Return the name of the Parts as a string.
dom::String
toString(Parts kind) noexcept;
Return the name of the Style
as a string.
dom::String
toString(Style kind) noexcept;
Return Value
The string representation of the style.
Parameters
Name |
Description |
kind |
The style kind. |
Return the name of the Admonish as a string.
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
dom::String
toString(Admonish kind) noexcept;
Return Value
the name of the Admonish as a string.
Parameters
Name |
Description |
kind |
An admonishment style. |
Return the name of the NodeKind as a string.
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
dom::String
toString(NodeKind kind) noexcept;
Return Value
the name of the NodeKind as a string.
Parameters
Name |
Description |
kind |
The kind of node. |
Return the name of the ParamDirection as a string.
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
dom::String
toString(ParamDirection kind) noexcept;
Return Value
the name of the ParamDirection as a string.
Parameters
Name |
Description |
kind |
Parameter pass direction. |
Return the name of the Parts as a string.
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
dom::String
toString(Parts kind) noexcept;
Return Value
the name of the Parts as a string.
Parameters
Name |
Description |
kind |
Which parts of the documentation to copy. |
Return the name of the Style
as a string.
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
dom::String
toString(Style kind) noexcept;
Return Value
The string representation of the style.
Parameters
Name |
Description |
kind |
The style kind. |
Traverse a list of nodes.
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
template<
class F,
class T,
class... Args>
requires std::derived_from<T, Node>
void
traverse(
std::vector<std::unique_ptr<T>> const& list,
F&& f,
Args...&&... args);
Parameters
Name |
Description |
list |
The list of nodes to traverse. |
f |
The function to call for each node. |
args |
Additional arguments to pass to the function. |
Visit a node.
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
template<
class NodeTy,
class Fn,
class... Args>
requires std::derived_from<NodeTy, Node>
decltype(auto)
visit(
NodeTy& node,
Fn&& fn,
Args...&&... args);
Return Value
The result of calling the function.
Parameters
Name |
Description |
node |
The node to visit. |
fn |
The function to call for each node. |
args |
Additional arguments to pass to the function. |
Equality operator
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
bool
operator==(
Polymorphic<Text> const& lhs,
Polymorphic<Text> const& rhs);
Return Value
true
if the objects are equal, false
otherwise
Parameters
Name |
Description |
lhs |
The left operand |
rhs |
The right operand |
Three‐way comparison operator
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
std::strong_ordering
operator<=>(
Polymorphic<Text> const& lhs,
Polymorphic<Text> const& rhs);
Return Value
The relative order of the objects
Parameters
Name |
Description |
lhs |
The left operand |
rhs |
The right operand |
Objects representing JSON‐like values.
Namespaces
Name |
Types
Name |
Description |
An array of values |
|
Abstract array interface. |
|
The default array implementation. |
|
The default Object implementation. |
|
Lazy array implementation |
|
Lazy object implementation. |
|
Customization point tag. |
|
A container of key and value pairs. |
|
Abstract object interface. |
|
A variant container for any kind of Dom value. |
|
Customization point tag. |
|
|
Enums
Name |
Description |
The type of data in a Value. |
Functions
Name |
Description |
|
|
|
|
Return a new dom::Array based on a transformed lazy array implementation. |
|
|
|
Return a new array using a custom implementation. |
|
Return a diagnostic string. |
|
Return a new object using a custom implementation. |
|
Return the first dom::Value that is not truthy, or the last one. |
|
Addition operators |
|
Return the first dom::Value that is truthy, or the last one. |
|
Return a non‐empty string, or a null. |
|
|
|
|
|
Equality operators |
|
Return the result of comparing two strings. |
|
Three‐way comparison operators |
Concepts
Description
This class is a variant‐like container for holding any kind of value that can be represented in JSON, with extensions for functions and "safe strings".
The class supports the following types:
‐ Undefined ‐ Null ‐ Boolean ‐ Integer ‐ String ‐ SafeString ‐ Array ‐ Object ‐ Function
The class provides type‐safe accessors for each type, as well as methods to check the type of the contained value.
Example:
{.cpp}
dom::Value v1 = 42; // Integer
dom::Value v2 = "Hello, World!"; // String
dom::Value v3 = dom::Array{v1, v2}; // Array
if (v1.isInteger())
{
std::cout << "v1 is an integer: " << v1.getInteger() << "\n";
}
if (v2.isString())
{
std::cout << "v2 is a string: " << v2.getString() << "\n";
}
if (v3.isArray())
{
std::cout << "v3 is an array with " << v3.getArray().size() << " elements.\n";
}
Functions
Name |
Description |
Stringify a value as JSON |
Stringify a value as JSON
Synopsis
Declared in <mrdocs/Dom/Value.hpp>
std::string
stringify(dom::Value const& value);
Description
This function serialized a Value
to a string as if JSON.stringify()
had been called on it.
Recursive objects are identified.
Return Value
A string containing valid JSON.
Parameters
Name |
Description |
value |
The value to stringify. |
An array of values
Synopsis
Declared in <mrdocs/Dom/Array.hpp>
class Array final
Types
Name |
Description |
A constant iterator referencing an element in an Array. |
|
A constant iterator referencing an element in an Array. |
|
A pointer to an element. |
|
A reference to an element. |
|
A signed integral type. |
|
The implementation type. |
|
A pointer to an element. |
|
A reference to an element. |
|
An unsigned integral type used for indexes and sizes. |
|
The type of storage used by the default implementation. |
|
The type of an element. |
Member Functions
Name |
Description |
|
Constructor. |
|
Destructor. |
Assignment. |
|
Return the i‐th element. |
|
Return the last element. |
|
Return an iterator to the beginning of the range of elements. |
|
Append an element to the end of the array. |
|
Return true if the array is empty. |
|
Return an iterator to the end of the range of elements. |
|
Return the first element. |
|
Return the i‐th element, without bounds checking. |
|
Return the implementation used by this object. |
|
Append an element to the end of the array. |
|
Set the i‐th element, without bounds checking. |
|
Return the number of elements in the array. |
|
Swap two arrays. |
|
Return the type key of the implementation. |
Friends
Name |
Description |
Return a new array using a custom implementation. |
|
Return a diagnostic string. |
|
Compare two arrays for precedence. |
|
Compare two arrays for equality. |
|
Swap two arrays. |
|
Concatenate two arrays. |
Non-Member Functions
Name |
Description |
Return a new |
|
Return a new dom::Array based on a FromValue context |
|
Return a new dom::Array based on a transformed lazy array implementation. |
|
|
Return a list of the parent symbols of the specified Info. |
|
"and" helper function |
|
"eq" helper function |
|
"ne" helper function |
|
"not" helper function |
|
"or" helper function |
Description
Arrays are a collection of indexed values. They are an extension of objects with a particular relationship between integer‐keyed properties and some abstract length‐property. Besides, they include convenient methods to manipulate these ordered sequences of values.
A constant iterator referencing an element in an Array.
Synopsis
Declared in <mrdocs/Dom/Array.hpp>
using const_iterator = iterator;
A pointer to an element.
Synopsis
Declared in <mrdocs/Dom/Array.hpp>
using const_pointer = value_type const*;
A reference to an element.
Synopsis
Declared in <mrdocs/Dom/Array.hpp>
using const_reference = value_type;
Description
This is a read‐only reference to an element.
A signed integral type.
Synopsis
Declared in <mrdocs/Dom/Array.hpp>
using difference_type = std::ptrdiff_t;
The implementation type.
Synopsis
Declared in <mrdocs/Dom/Array.hpp>
using impl_type = std::shared_ptr<ArrayImpl>;
A pointer to an element.
Synopsis
Declared in <mrdocs/Dom/Array.hpp>
using pointer = value_type const*;
A reference to an element.
Synopsis
Declared in <mrdocs/Dom/Array.hpp>
using reference = value_type;
Description
This is a read‐only reference to an element.
An unsigned integral type used for indexes and sizes.
Synopsis
Declared in <mrdocs/Dom/Array.hpp>
using size_type = std::size_t;
The type of storage used by the default implementation.
Synopsis
Declared in <mrdocs/Dom/Array.hpp>
using storage_type = std::vector<value_type>;
The type of an element.
Synopsis
Declared in <mrdocs/Dom/Array.hpp>
using value_type = Value;
A constant iterator referencing an element in an Array.
Synopsis
Declared in <mrdocs/Dom/Array.hpp>
class iterator;
Friends
Name |
Description |
|
|
An array of values |
Constructor.
Synopses
Declared in <mrdocs/Dom/Array.hpp>
Constructor.
Array();
Constructor.
Constructor.
Constructor.
Array(impl_type impl) noexcept;
Constructor.
Array(storage_type elements);
Parameters
Name |
Description |
elements |
The elements to acquire. |
Constructor.
Synopsis
Declared in <mrdocs/Dom/Array.hpp>
Array();
Description
Default‐constructed arrays refer to a new, empty array which is distinct from every other empty array.
Constructor.
Synopsis
Declared in <mrdocs/Dom/Array.hpp>
Array(Array const& other);
Description
The newly constructed array will contain copies of the scalars in other, and references to its structured data.
Parameters
Name |
Description |
other |
The object to copy construct from |
Constructor.
Synopsis
Declared in <mrdocs/Dom/Array.hpp>
Array(Array&& other);
Description
Ownership of the contents is transferred to the new object. The moved‐from array will behave as if default‐constructed.
Parameters
Name |
Description |
other |
The object to move construct from |
Constructor.
Synopsis
Declared in <mrdocs/Dom/Array.hpp>
Array(impl_type impl) noexcept;
Description
This constructs an array from an existing implementation, with shared ownership. The pointer cannot not be null.
Parameters
Name |
Description |
impl |
The object to construct from |
Constructor.
Synopsis
Declared in <mrdocs/Dom/Array.hpp>
Array(storage_type elements);
Description
Upon construction, the array will retain ownership of a shallow copy of the specified elements. In particular, dynamic objects will be acquired with shared ownership.
Parameters
Name |
Description |
elements |
The elements to acquire. |
Destructor.
Synopsis
Declared in <mrdocs/Dom/Array.hpp>
~Array();
Assignment.
Synopses
Declared in <mrdocs/Dom/Array.hpp>
Assignment.
constexpr
Array&
operator=(Array const& other) = default;
Assignment.
Array&
operator=(Array&& other);
Assignment.
Synopsis
Description
This acquires shared ownership of the copied array, and ownership of the previous contents is released.
Return Value
Reference to the current object
Parameters
Name |
Description |
other |
The object to copy assign from |
Assignment.
Description
Ownership of the array is transferred to this, and ownership of the previous contents is released. The moved‐from array behaves as if default constructed.
Return Value
Reference to the current object
Parameters
Name |
Description |
other |
The object to move assign from |
Return the i‐th element.
Synopsis
Declared in <mrdocs/Dom/Array.hpp>
value_type
at(size_type i) const;
Exceptions
Name |
Thrown on |
|
Return Value
the i‐th element.
Parameters
Name |
Description |
i |
An unsigned integral type used for indexes and sizes. |
Return the last element.
Synopsis
Declared in <mrdocs/Dom/Array.hpp>
value_type
back() const;
Exceptions
Name |
Thrown on |
|
Return Value
the last element.
Return an iterator to the beginning of the range of elements.
Synopsis
Declared in <mrdocs/Dom/Array.hpp>
iterator
begin() const;
Return Value
an iterator to the beginning of the range of elements.
Append an element to the end of the array.
Synopsis
Declared in <mrdocs/Dom/Array.hpp>
template<class... Args>
void
emplace_back(Args...&&... args);
Description
If the array is read‐only, an exception is thrown.
Parameters
Name |
Description |
args |
Arguments forwarded to the constructor of Value. |
Return true if the array is empty.
Synopsis
Declared in <mrdocs/Dom/Array.hpp>
bool
empty() const noexcept;
Return Value
true if the array is empty.
Return an iterator to the end of the range of elements.
Synopsis
Declared in <mrdocs/Dom/Array.hpp>
iterator
end() const;
Return Value
an iterator to the end of the range of elements.
Return the first element.
Synopsis
Declared in <mrdocs/Dom/Array.hpp>
value_type
front() const;
Exceptions
Name |
Thrown on |
|
Return Value
the first element.
Return the i‐th element, without bounds checking.
Synopsis
Declared in <mrdocs/Dom/Array.hpp>
value_type
get(size_type i) const;
Return Value
the i‐th element, without bounds checking.
Parameters
Name |
Description |
i |
The zero‐based index of the element. |
Return the implementation used by this object.
Synopsis
Declared in <mrdocs/Dom/Array.hpp>
impl_type const&
impl() const noexcept;
Return Value
the implementation used by this object.
Append an element to the end of the array.
Synopsis
Declared in <mrdocs/Dom/Array.hpp>
void
push_back(value_type value);
Description
If the array is read‐only, an exception is thrown.
Parameters
Name |
Description |
value |
The type of an element. |
Set the i‐th element, without bounds checking.
Synopsis
Declared in <mrdocs/Dom/Array.hpp>
void
set(
size_type i,
Value v);
Parameters
Name |
Description |
i |
The zero‐based index of the element. |
v |
The value to set. |
Return the number of elements in the array.
Synopsis
Declared in <mrdocs/Dom/Array.hpp>
size_type
size() const noexcept;
Return Value
the number of elements in the array.
Swap two arrays.
Synopsis
Declared in <mrdocs/Dom/Array.hpp>
void
swap(Array& other) noexcept;
Parameters
Name |
Description |
other |
An array of values |
Return the type key of the implementation.
Synopsis
Declared in <mrdocs/Dom/Array.hpp>
char const*
type_key() const noexcept;
Return Value
the type key of the implementation.
Abstract array interface.
Synopsis
Declared in <mrdocs/Dom/Array.hpp>
class ArrayImpl;
Types
Name |
Description |
An unsigned integral type used for indexes and sizes. |
|
The type of an element. |
Member Functions
Name |
Description |
|
Destructor. |
|
Append an element to the end of the array. |
|
Return the i‐th element, without bounds checking. |
|
Set the i‐th element, without bounds checking. |
|
Return the number of elements in the array. |
|
Return the type key of the implementation. |
Derived Classes
Name |
Description |
The default array implementation. |
|
Lazy array implementation |
Description
This interface is used by Array types.
An unsigned integral type used for indexes and sizes.
Synopsis
Declared in <mrdocs/Dom/Array.hpp>
using size_type = Array::size_type;
The type of an element.
Synopsis
Declared in <mrdocs/Dom/Array.hpp>
using value_type = Array::value_type;
Destructor.
Synopsis
Declared in <mrdocs/Dom/Array.hpp>
virtual
~ArrayImpl();
Append an element to the end of the array.
Synopsis
Declared in <mrdocs/Dom/Array.hpp>
virtual
void
emplace_back(value_type value);
Description
The default implementation throws an exception, making the array effectively read‐only.
Parameters
Name |
Description |
value |
The type of an element. |
Return the i‐th element, without bounds checking.
Synopsis
Declared in <mrdocs/Dom/Array.hpp>
virtual
value_type
get(size_type i) const = 0;
Return Value
the i‐th element, without bounds checking.
Parameters
Name |
Description |
i |
An unsigned integral type used for indexes and sizes. |
Set the i‐th element, without bounds checking.
Synopsis
Declared in <mrdocs/Dom/Array.hpp>
virtual
void
set(
size_type,
Value);
Return the number of elements in the array.
Synopsis
Declared in <mrdocs/Dom/Array.hpp>
virtual
size_type
size() const = 0;
Return Value
the number of elements in the array.
Return the type key of the implementation.
Synopsis
Declared in <mrdocs/Dom/Array.hpp>
virtual
char const*
type_key() const noexcept;
Return Value
the type key of the implementation.
The default array implementation.
Synopsis
Declared in <mrdocs/Dom/Array.hpp>
class DefaultArrayImpl
: public ArrayImpl
Base Classes
Name |
Description |
Abstract array interface. |
Types
Name |
Description |
An unsigned integral type used for indexes and sizes. |
|
The type of storage used by the default implementation. |
|
The type of an element. |
Member Functions
Name |
Description |
|
Constructors |
|
|
|
|
|
Set the i‐th element, without bounds checking. |
|
|
|
Description
This implementation is backed by a simple vector and allows appending.
An unsigned integral type used for indexes and sizes.
Synopsis
Declared in <mrdocs/Dom/Array.hpp>
using size_type = Array::size_type;
The type of storage used by the default implementation.
Synopsis
Declared in <mrdocs/Dom/Array.hpp>
using storage_type = Array::storage_type;
The type of an element.
Synopsis
Declared in <mrdocs/Dom/Array.hpp>
using value_type = Array::value_type;
Constructors
Synopses
Declared in <mrdocs/Dom/Array.hpp>
Default constructor
Construct from storage_type
explicit
DefaultArrayImpl(storage_type elements) noexcept;
Default constructor
Synopsis
Declared in <mrdocs/Dom/Array.hpp>
DefaultArrayImpl();
Construct from storage_type
Synopsis
Declared in <mrdocs/Dom/Array.hpp>
explicit
DefaultArrayImpl(storage_type elements) noexcept;
Parameters
Name |
Description |
elements |
The object to construct from |
Synopsis
Declared in <mrdocs/Dom/Array.hpp>
virtual
void
emplace_back(value_type value) override;
Synopsis
Declared in <mrdocs/Dom/Array.hpp>
virtual
value_type
get(size_type i) const override;
Set the i‐th element, without bounds checking.
Synopses
Declared in <mrdocs/Dom/Array.hpp>
Set the i‐th element, without bounds checking.
virtual
void
set(
size_type,
Value);
virtual
void
set(
size_type i,
Value v) override;
Set the i‐th element, without bounds checking.
Synopsis
Declared in <mrdocs/Dom/Array.hpp>
virtual
void
set(
size_type,
Value);
Synopsis
Declared in <mrdocs/Dom/Array.hpp>
virtual
void
set(
size_type i,
Value v) override;
Synopsis
Declared in <mrdocs/Dom/Array.hpp>
virtual
size_type
size() const override;
Synopsis
Declared in <mrdocs/Dom/Array.hpp>
virtual
char const*
type_key() const noexcept override;
Synopsis
Declared in <mrdocs/Dom/Function.hpp>
template<class F>
class DefaultFunctionImpl
: public FunctionImpl
Base Classes
Name |
Description |
Types
Member Functions
Name |
Description |
|
Construct from |
|
|
|
Synopsis
Declared in <mrdocs/Dom/Function.hpp>
using args_type = function_traits<F>::args_type;
Synopsis
Declared in <mrdocs/Dom/Function.hpp>
using return_type = function_traits<F>::return_type;
Construct from U
Synopsis
Declared in <mrdocs/Dom/Function.hpp>
template<class U>
DefaultFunctionImpl(U&& u);
Parameters
Name |
Description |
u |
The object to move construct from |
Synopsis
Declared in <mrdocs/Dom/Function.hpp>
virtual
Expected<Value>
call(Array const& args) const override;
Synopsis
Declared in <mrdocs/Dom/Function.hpp>
virtual
char const*
type_key() const noexcept override;
The default Object implementation.
Synopsis
Declared in <mrdocs/Dom/Object.hpp>
class DefaultObjectImpl
: public ObjectImpl
Base Classes
Name |
Description |
Abstract object interface. |
Types
Name |
Description |
A reference to an element. |
|
The type of storage used by the default implementation. |
Member Functions
Name |
Description |
|
Constructors |
|
|
|
Return the value for the specified key, or null. |
|
Insert or set the given key/value pair. |
|
|
|
Return the type key of the implementation. |
|
Invoke the visitor for each key/value pair. |
Constructors
Synopses
Declared in <mrdocs/Dom/Object.hpp>
Default constructor
DefaultObjectImpl() noexcept;
Construct from storage_type
explicit
DefaultObjectImpl(storage_type entries) noexcept;
Default constructor
Synopsis
Declared in <mrdocs/Dom/Object.hpp>
DefaultObjectImpl() noexcept;
Construct from storage_type
Synopsis
Declared in <mrdocs/Dom/Object.hpp>
explicit
DefaultObjectImpl(storage_type entries) noexcept;
Parameters
Name |
Description |
entries |
The object to construct from |
Synopsis
Declared in <mrdocs/Dom/Object.hpp>
virtual
bool
exists(std::string_view key) const override;
Return the value for the specified key, or null.
Synopses
Declared in <mrdocs/Dom/Object.hpp>
Return the value for the specified key, or null.
Return Value
The value for the specified key, or null if the key does not exist.
Parameters
Name |
Description |
key |
The key. |
Synopsis
Declared in <mrdocs/Dom/Object.hpp>
virtual
Value
get(std::string_view) const override;
Return the value for the specified key, or null.
Synopsis
Declared in <mrdocs/Dom/Object.hpp>
virtual
Value
get(std::string_view key) const = 0;
Return Value
The value for the specified key, or null if the key does not exist.
Parameters
Name |
Description |
key |
The key. |
Insert or set the given key/value pair.
Synopses
Declared in <mrdocs/Dom/Object.hpp>
Insert or set the given key/value pair.
Parameters
Name |
Description |
key |
The key. |
value |
The value to set. |
Synopsis
Synopsis
Parameters
Name |
Description |
key |
The key. |
value |
The value to set. |
Synopsis
Declared in <mrdocs/Dom/Object.hpp>
virtual
std::size_t
size() const override;
Invoke the visitor for each key/value pair.
Synopses
Declared in <mrdocs/Dom/Object.hpp>
Invoke the visitor for each key/value pair.
Return Value
true
if the visitor returned true
for all elements, otherwise false
.
Parameters
Name |
Description |
fn |
The visitor function. |
Synopsis
Synopsis
Description
The visitor function must return true
to continue iteration, or false
to stop.
The visit function returns true
if the visitor returned true
for all elements, otherwise false
.
Return Value
true
if the visitor returned true
for all elements, otherwise false
.
Parameters
Name |
Description |
fn |
The visitor function. |
Synopsis
Declared in <mrdocs/Dom/Function.hpp>
class Function;
Member Functions
Name |
Description |
|
Constructor. |
|
Destructor. |
Assignment. |
|
Invoke the function. |
|
Return the implementation used by this object. |
|
Invoke the function. |
|
Swap two objects. |
|
Invoke the function. |
|
Return the type key. |
Friends
Name |
Description |
Return a diagnostic string. |
|
Swap two objects. |
Constructor.
Synopses
Declared in <mrdocs/Dom/Function.hpp>
Constructor.
Function() noexcept;
Constructor.
Constructor.
Construct from F
template<class F>
requires function_traits_convertible_to_value<std::decay_t<F>>
Function(F const& f);
Constructor.
Synopsis
Declared in <mrdocs/Dom/Function.hpp>
Function() noexcept;
Description
A default‐constructed function has this equivalent implementation:
Value f()
{
return nullptr;
}
Constructor.
Synopsis
Declared in <mrdocs/Dom/Function.hpp>
Function(Function const& other) noexcept;
Description
The newly constructed object acquires shared ownership of the function.
Parameters
Name |
Description |
other |
The object to copy construct from |
Constructor.
Synopsis
Declared in <mrdocs/Dom/Function.hpp>
Function(Function&& other) noexcept;
Description
Ownership of the function is tranferred. The moved‐from object behaves as if default constructed.
Parameters
Name |
Description |
other |
The object to move construct from |
Construct from F
Synopsis
Declared in <mrdocs/Dom/Function.hpp>
template<class F>
requires function_traits_convertible_to_value<std::decay_t<F>>
Function(F const& f);
Parameters
Name |
Description |
f |
The object to copy construct from |
Destructor.
Synopsis
Declared in <mrdocs/Dom/Function.hpp>
~Function();
Assignment.
Synopses
Declared in <mrdocs/Dom/Function.hpp>
Assignment.
Function&
operator=(Function const& other) noexcept;
Assignment.
Function&
operator=(Function&& other) noexcept;
Assignment.
Synopsis
Description
This acquires shared ownership of the function. Ownership of the previous function is removed.
Return Value
Reference to the current object
Parameters
Name |
Description |
other |
The object to copy assign from |
Assignment.
Synopsis
Description
Ownership of the function is tranferred, and ownership of the previous function is released. The moved‐from object behaves as if default constructed.
Return Value
Reference to the current object
Parameters
Name |
Description |
other |
The object to move assign from |
Invoke the function.
Synopsis
Declared in <mrdocs/Dom/Function.hpp>
Expected<Value>
call(Array const& args) const;
Return Value
A container holding an error or a value.
Parameters
Name |
Description |
args |
An array of values |
Return the implementation used by this object.
Synopsis
Declared in <mrdocs/Dom/Function.hpp>
impl_type const&
impl() const noexcept;
Return Value
the implementation used by this object.
Invoke the function.
Synopsis
Declared in <mrdocs/Dom/Function.hpp>
template<class... Args>
Value
operator()(Args...&&... args) const;
Return Value
The return value of the function.
Parameters
Name |
Description |
args |
The arguments to the function. |
Swap two objects.
Synopsis
Declared in <mrdocs/Dom/Function.hpp>
void
swap(Function& other) noexcept;
Parameters
Name |
Description |
other |
The other object. |
Invoke the function.
Synopsis
Declared in <mrdocs/Dom/Function.hpp>
template<class... Args>
Expected<Value>
try_invoke(Args...&&... args) const;
Return Value
A container holding an error or a value.
Parameters
Name |
Description |
args |
The arguments to the function. |
Return the type key.
Synopsis
Declared in <mrdocs/Dom/Function.hpp>
char const*
type_key() const noexcept;
Return Value
the type key.
Synopsis
Declared in <mrdocs/Dom/Function.hpp>
class FunctionImpl;
Member Functions
Name |
Description |
|
Destructor. |
|
Invoke the function. |
|
Return the type key of the implementation. |
Derived Classes
Name |
Description |
Destructor.
Synopsis
Declared in <mrdocs/Dom/Function.hpp>
constexpr
virtual
~FunctionImpl() = default;
Invoke the function.
Synopsis
Declared in <mrdocs/Dom/Function.hpp>
virtual
Expected<Value>
call(Array const& args) const = 0;
Return Value
A container holding an error or a value.
Parameters
Name |
Description |
args |
An array of values |
Return the type key of the implementation.
Synopsis
Declared in <mrdocs/Dom/Function.hpp>
virtual
char const*
type_key() const noexcept;
Return Value
the type key of the implementation.
Lazy array implementation
Synopsis
Declared in <mrdocs/Dom/LazyArray.hpp>
template<
std::ranges::random_access_range R,
class Context = /* implementation-defined */>
requires HasValueFrom<std::ranges::range_value_t<R>, Context> ||
(std::invocable<Context, std::ranges::range_value_t<R>> &&
HasStandaloneValueFrom<std::invoke_result_t<Context, std::ranges::range_value_t<R>>>)
class LazyArrayImpl
: public ArrayImpl
Base Classes
Name |
Description |
Abstract array interface. |
Types
Name |
Description |
An unsigned integral type used for indexes and sizes. |
|
The type of an element. |
Member Functions
Name |
Description |
|
Constructors |
|
Destructor |
|
Append an element to the end of the array. |
|
Return the i‐th element, without bounds checking. |
|
Set the i‐th element, without bounds checking. |
|
|
|
Return the type key of the implementation. |
Description
This array type is used to define a dom::Array whose members are evaluated on demand as they are accessed.
Each member can goes through a transform function before being returned as a Value so that all types can be converted to dom::Value.
The underlying representation of the array is a range from where the elements are extracted. Elements in this range should be convertible to dom::Value.
This class is typically useful for implementing arrays that are expensive and have recursive dependencies, as these recursive dependencies can also be deferred.
Unlike a LazyObjectImpl, which contains an overlay object, this implementation is read‐only. The set
and emplace_back
methods are not implemented.
Constructors
Synopses
Declared in <mrdocs/Dom/LazyArray.hpp>
Construct from R
explicit
LazyArrayImpl(R const& arr);
explicit
LazyArrayImpl(
R const& arr,
Context const& ctx);
Construct from R
Synopsis
Declared in <mrdocs/Dom/LazyArray.hpp>
explicit
LazyArrayImpl(R const& arr);
Parameters
Name |
Description |
arr |
The object to copy construct from |
Synopsis
Declared in <mrdocs/Dom/LazyArray.hpp>
explicit
LazyArrayImpl(
R const& arr,
Context const& ctx);
Destructor
Synopsis
Declared in <mrdocs/Dom/LazyArray.hpp>
virtual
~LazyArrayImpl() override = default;
Return the i‐th element, without bounds checking.
Synopses
Declared in <mrdocs/Dom/Array.hpp>
virtual
dom::Value
get(std::size_t i) const override;
Return the i‐th element, without bounds checking.
virtual
value_type
get(size_type i) const = 0;
Synopsis
Declared in <mrdocs/Dom/LazyArray.hpp>
virtual
dom::Value
get(std::size_t i) const override;
Return the i‐th element, without bounds checking.
Synopsis
Declared in <mrdocs/Dom/Array.hpp>
virtual
value_type
get(size_type i) const = 0;
Return Value
the i‐th element, without bounds checking.
Parameters
Name |
Description |
i |
An unsigned integral type used for indexes and sizes. |
Synopsis
Declared in <mrdocs/Dom/LazyArray.hpp>
virtual
std::size_t
size() const noexcept override;
Return the type key of the implementation.
Synopsis
Declared in <mrdocs/Dom/LazyArray.hpp>
virtual
char const*
type_key() const noexcept override;
Return Value
the type key of the implementation.
Lazy object implementation.
Synopsis
Declared in <mrdocs/Dom/LazyObject.hpp>
template<
class T,
class Context = /* implementation-defined */>
requires HasLazyObjectMap<T, Context>
class LazyObjectImpl
: public ObjectImpl
Base Classes
Name |
Description |
Abstract object interface. |
Types
Name |
Description |
A reference to an element. |
|
The type of storage used by the default implementation. |
Member Functions
Name |
Description |
|
Constructors |
|
Destructor |
|
Determine if a key exists. |
|
Return the value for the specified key, or null. |
|
Insert or set the given key/value pair. |
|
Return the number of properties in the object. |
|
Return the type key of the implementation. |
|
Invoke the visitor for each key/value pair. |
Description
This interface is used to define objects whose members are evaluated on demand as they are accessed.
When any of the object properties are accessed, the object dom::Value
is constructed. In practice, the object never takes any memory besides the pointer to the underlying object.
The keys and values in the underlying object should be mapped using tag_invoke
.
This class is typically useful for implementing objects that are expensive and have recursive dependencies, as these recursive dependencies can also be deferred.
A context can also be stored in the object as a form to customize how the object is mapped. This context should be copyable and is propagated to other objects that support an overload with the same context.
The context can be simply a tag identifying how to map the object, or a more complex object carrying data to customize the mapping process.
In the latter case, because the context should be a copyable, the user might want to use a type with reference semantics.
Constructors
Synopses
Declared in <mrdocs/Dom/LazyObject.hpp>
Construct from T
explicit
LazyObjectImpl(T const& obj)
requires HasLazyObjectMapWithoutContext<T>;
explicit
LazyObjectImpl(
T const& obj,
Context const& context)
requires HasLazyObjectMapWithContext<T, Context>;
Construct from T
Synopsis
Declared in <mrdocs/Dom/LazyObject.hpp>
explicit
LazyObjectImpl(T const& obj)
requires HasLazyObjectMapWithoutContext<T>;
Parameters
Name |
Description |
obj |
The object to copy construct from |
Synopsis
Declared in <mrdocs/Dom/LazyObject.hpp>
explicit
LazyObjectImpl(
T const& obj,
Context const& context)
requires HasLazyObjectMapWithContext<T, Context>;
Destructor
Synopsis
Declared in <mrdocs/Dom/LazyObject.hpp>
virtual
~LazyObjectImpl() override = default;
Determine if a key exists.
Synopsis
Declared in <mrdocs/Dom/LazyObject.hpp>
virtual
bool
exists(std::string_view key) const override;
Return Value
true
if the key exists, otherwise false
.
Parameters
Name |
Description |
key |
The key to check for existence. |
Return the value for the specified key, or null.
Synopsis
Declared in <mrdocs/Dom/LazyObject.hpp>
virtual
Value
get(std::string_view key) const override;
Return Value
The value for the specified key, or null if the key does not exist.
Parameters
Name |
Description |
key |
The key. |
Insert or set the given key/value pair.
Synopsis
Parameters
Name |
Description |
key |
The key. |
value |
The value to set. |
Return the number of properties in the object.
Synopsis
Declared in <mrdocs/Dom/LazyObject.hpp>
virtual
std::size_t
size() const override;
Return Value
the number of properties in the object.
Return the type key of the implementation.
Synopsis
Declared in <mrdocs/Dom/LazyObject.hpp>
virtual
char const*
type_key() const noexcept override;
Return Value
the type key of the implementation.
Invoke the visitor for each key/value pair.
Synopsis
Description
The visitor function must return true
to continue iteration, or false
to stop.
The visit function returns true
if the visitor returned true
for all elements, otherwise false
.
Return Value
true
if the visitor returned true
for all elements, otherwise false
.
Parameters
Name |
Description |
fn |
The visitor function. |
Customization point tag.
Synopsis
Declared in <mrdocs/Dom/LazyObject.hpp>
struct LazyObjectMapTag;
Non-Member Functions
Description
This tag type is used by the class dom::LazyObjectImpl
to select overloads of tag_invoke
.
Note
|
This type is empty; it has no members. |
See Also
A container of key and value pairs.
Synopsis
Declared in <mrdocs/Dom/Object.hpp>
class Object final
Types
Name |
Description |
The type of an element. |
|
A pointer to an element. |
|
A reference to an element. |
|
A signed integral type. |
|
The implementation type. |
|
A pointer to an element. |
|
A reference to an element. |
|
An unsigned integral type used for indexes and sizes. |
|
The type of storage used by the default implementation. |
Member Functions
Name |
Description |
|
Constructor. |
|
Destructor. |
Assignment. |
|
Return the element at a given index. |
|
Return true if the container is empty. |
|
Return true if a key exists. |
|
Return the element with the specified key |
|
Return the implementation used by this object. |
|
Set or replace the value for a given key. |
|
Return the number of elements. |
|
Swap two objects. |
|
Return the type key. |
|
Invoke the visitor for each key/value pair |
Friends
Name |
Description |
Return a diagnostic string. |
|
Compare two objects for precedence. |
|
Compare two objects for equality. |
|
Swap two objects. |
Non-Member Functions
Name |
Description |
Return a new dom::Object based on a lazy object implementation. |
|
Return a new dom::Object based on a transformed lazy array implementation. |
|
Return a new object using a custom implementation. |
|
|
Create child data objects. |
Description
Objects are a collection of properties, which are equivalent to key‐value pairs. Property values can be any type, including other Objects, allowing for the creation of arbitrarily complex data structures.
An Object is a non‐primitive (or reference) type, meaning that they are not copied when assigned or passed as a parameter. Instead, the reference is copied, and the original value is shared.
These reference types are modeled after JavaScript "Objects". All non‐primitive types (Object types) are derived from Object in JavaScript. This means types such as Array and Function represent a relevant selection of built‐in types that would derive from Object in JavaScript.
Properties
Objects are a collection of properties, which are
equivalent to key-value pairs. There are two
kinds of properties:
@li Data properties: Associates a key with a value.
@li Accessor properties: Associates a key with
one of two accessor functions (`get` and `set`),
which are used to retrieve or set the value.
The internal representation of objects can determine
how properties are stored and the type of properties
being represented.
Properties can also be enumerable or non-enumerable.
An enumerable property is one that is iterated by
the `visit` function. Non-enumerable properties can
only be accessed by name with the `get` and `set`
functions.
A pointer to an element.
Synopsis
Declared in <mrdocs/Dom/Object.hpp>
using const_pointer = pointer;
A reference to an element.
Synopsis
Declared in <mrdocs/Dom/Object.hpp>
using const_reference = reference;
Description
This is a read‐only reference to an element.
A signed integral type.
Synopsis
Declared in <mrdocs/Dom/Object.hpp>
using difference_type = std::ptrdiff_t;
The implementation type.
Synopsis
Declared in <mrdocs/Dom/Object.hpp>
using impl_type = std::shared_ptr<ObjectImpl>;
A pointer to an element.
Synopsis
Declared in <mrdocs/Dom/Object.hpp>
using pointer = value_type const*;
A reference to an element.
Synopsis
Declared in <mrdocs/Dom/Object.hpp>
using reference = value_type;
Description
This is a read‐only reference to an element.
An unsigned integral type used for indexes and sizes.
Synopsis
Declared in <mrdocs/Dom/Object.hpp>
using size_type = std::size_t;
The type of storage used by the default implementation.
Synopsis
Declared in <mrdocs/Dom/Object.hpp>
using storage_type = std::vector<value_type>;
The type of an element.
Synopsis
Declared in <mrdocs/Dom/Object.hpp>
struct value_type;
Description
Elements of this container are key and value pairs where the key is a string. This type is a copyable, movable value type.
Constructor.
Synopses
Declared in <mrdocs/Dom/Object.hpp>
Constructor.
Object();
Constructor.
Constructor.
Constructor.
explicit
Object(impl_type impl) noexcept;
Constructor.
explicit
Object(storage_type list);
Parameters
Name |
Description |
list |
The initial list of values. |
Constructor.
Synopsis
Declared in <mrdocs/Dom/Object.hpp>
Object();
Description
Default‐constructed objects refer to a new, empty container which is distinct from every other empty container.
Constructor.
Synopsis
Declared in <mrdocs/Dom/Object.hpp>
Object(Object const& other) noexcept;
Description
The newly constructed object will contain copies of the scalars in other, and references to its structured data.
Parameters
Name |
Description |
other |
The object to copy construct from |
Constructor.
Synopsis
Declared in <mrdocs/Dom/Object.hpp>
Object(Object&& other);
Description
Ownership of the contents is transferred to the new object. The moved‐from object will behave as if default‐constructed.
Parameters
Name |
Description |
other |
The object to move construct from |
Constructor.
Synopsis
Declared in <mrdocs/Dom/Object.hpp>
explicit
Object(impl_type impl) noexcept;
Description
This constructs an object from an existing implementation, with shared ownership. The pointer cannot not be null.
Parameters
Name |
Description |
impl |
The object to construct from |
Constructor.
Synopsis
Declared in <mrdocs/Dom/Object.hpp>
explicit
Object(storage_type list);
Description
Upon construction, the object will retain ownership of a shallow copy of the specified list. In particular, dynamic objects will be acquired with shared ownership.
Parameters
Name |
Description |
list |
The initial list of values. |
Destructor.
Synopsis
Declared in <mrdocs/Dom/Object.hpp>
constexpr
~Object() = default;
Assignment.
Synopses
Declared in <mrdocs/Dom/Object.hpp>
Assignment.
Object&
operator=(Object const& other) noexcept;
Assignment.
Object&
operator=(Object&& other);
Assignment.
Synopsis
Description
Shared ownership and copies of elements in others are acquired by this. Ownership of the previous contents is released.
Return Value
Reference to the current object
Parameters
Name |
Description |
other |
The object to copy assign from |
Assignment.
Synopsis
Description
Ownership of the object is transferred to this, and ownership of the previous contents is released. The moved‐from object behaves as if default constructed.
Return Value
Reference to the current object
Parameters
Name |
Description |
other |
The object to move assign from |
Return the element at a given index.
Synopsis
Declared in <mrdocs/Dom/Object.hpp>
Value
at(std::string_view i) const;
Return Value
The value at the specified index, or null if the index is out of range.
Parameters
Name |
Description |
i |
The index. |
Return true if the container is empty.
Synopsis
Declared in <mrdocs/Dom/Object.hpp>
bool
empty() const;
Return Value
true if the container is empty.
Return true if a key exists.
Synopsis
Declared in <mrdocs/Dom/Object.hpp>
bool
exists(std::string_view key) const;
Return Value
true
if the key exists, otherwise false
.
Parameters
Name |
Description |
key |
The key to check for existence. |
Return the element with the specified key
Synopsis
Declared in <mrdocs/Dom/Object.hpp>
Value
get(std::string_view key) const;
Return Value
The value for the specified key, or null if the key does not exist.
Parameters
Name |
Description |
key |
The key. |
Return the implementation used by this object.
Synopsis
Declared in <mrdocs/Dom/Object.hpp>
impl_type const&
impl() const noexcept;
Return Value
the implementation used by this object.
Set or replace the value for a given key.
Synopsis
Description
This function inserts a new key or changes the value for the existing key if it is already present.
Parameters
Name |
Description |
key |
The key. |
value |
The value to set. |
Return the number of elements.
Synopsis
Declared in <mrdocs/Dom/Object.hpp>
std::size_t
size() const;
Return Value
the number of elements.
Swap two objects.
Synopsis
Declared in <mrdocs/Dom/Object.hpp>
void
swap(Object& other) noexcept;
Parameters
Name |
Description |
other |
A container of key and value pairs. |
Return the type key.
Synopsis
Declared in <mrdocs/Dom/Object.hpp>
char const*
type_key() const noexcept;
Return Value
the type key.
Invoke the visitor for each key/value pair
Synopses
Declared in <mrdocs/Dom/Object.hpp>
Invoke the visitor for each key/value pair
template<class F>
requires std::invocable<F, String, Value> &&
std::same_as<std::invoke_result_t<F, String, Value>, void>
void
visit(F&& fn) const;
Invoke the visitor for each key/value pair
template<class F>
requires std::invocable<F, String, Value> &&
mrdocs::detail::isExpected<std::invoke_result_t<F, String, Value>>
Expected<void, std::invoke_result_t<F, String, Value>::error_type>
visit(F&& fn) const;
Invoke the visitor for each key/value pair
template<class F>
requires std::invocable<F, String, Value> &&
std::same_as<std::invoke_result_t<F, String, Value>, bool>
bool
visit(F&& fn) const;
Return Value
-
void
if the visitor returned did not return an error for any element, otherwiseE
. -
true
if the visitor returnedtrue
for all elements, otherwisefalse
.
Parameters
Name |
Description |
fn |
The visitor function. |
Invoke the visitor for each key/value pair
Synopsis
Declared in <mrdocs/Dom/Object.hpp>
template<class F>
requires std::invocable<F, String, Value> &&
std::same_as<std::invoke_result_t<F, String, Value>, void>
void
visit(F&& fn) const;
Parameters
Name |
Description |
fn |
The visitor function. |
Invoke the visitor for each key/value pair
Synopsis
Declared in <mrdocs/Dom/Object.hpp>
template<class F>
requires std::invocable<F, String, Value> &&
mrdocs::detail::isExpected<std::invoke_result_t<F, String, Value>>
Expected<void, std::invoke_result_t<F, String, Value>::error_type>
visit(F&& fn) const;
Description
The visitor function must return void
to continue iteration, or an Unexpected<E>
to stop iteration early.
If an error is returned, the iteration stops and the error is returned from this function.
Return Value
-
void
if the visitor returned did not return an error for any element, otherwiseE
. -
void
if the visitor returned did not return an error for any element, otherwiseE
.
Parameters
Name |
Description |
fn |
The visitor function. |
Invoke the visitor for each key/value pair
Synopsis
Declared in <mrdocs/Dom/Object.hpp>
template<class F>
requires std::invocable<F, String, Value> &&
std::same_as<std::invoke_result_t<F, String, Value>, bool>
bool
visit(F&& fn) const;
Description
The visitor function must return true
to continue iteration, or false
to stop iteration early.
Return Value
true
if the visitor returned true
for all elements, otherwise false
.
Parameters
Name |
Description |
fn |
The visitor function. |
Abstract object interface.
Synopsis
Declared in <mrdocs/Dom/Object.hpp>
class ObjectImpl;
Types
Name |
Description |
A reference to an element. |
|
The type of storage used by the default implementation. |
Member Functions
Name |
Description |
|
Destructor. |
|
Determine if a key exists. |
|
Return the value for the specified key, or null. |
|
Insert or set the given key/value pair. |
|
Return the number of properties in the object. |
|
Return the type key of the implementation. |
|
Invoke the visitor for each key/value pair. |
Derived Classes
Name |
Description |
The default Object implementation. |
|
Lazy object implementation. |
Description
This interface is used by Object types.
A reference to an element.
Synopsis
Declared in <mrdocs/Dom/Object.hpp>
using reference = Object::reference;
Description
This is a read‐only reference to an element.
The type of storage used by the default implementation.
Synopsis
Declared in <mrdocs/Dom/Object.hpp>
using storage_type = Object::storage_type;
Destructor.
Synopsis
Declared in <mrdocs/Dom/Object.hpp>
virtual
~ObjectImpl();
Determine if a key exists.
Synopsis
Declared in <mrdocs/Dom/Object.hpp>
virtual
bool
exists(std::string_view key) const;
Return Value
true
if the key exists, otherwise false
.
Parameters
Name |
Description |
key |
The key to check for existence. |
Return the value for the specified key, or null.
Synopsis
Declared in <mrdocs/Dom/Object.hpp>
virtual
Value
get(std::string_view key) const = 0;
Return Value
The value for the specified key, or null if the key does not exist.
Parameters
Name |
Description |
key |
The key. |
Insert or set the given key/value pair.
Synopsis
Parameters
Name |
Description |
key |
The key. |
value |
The value to set. |
Return the number of properties in the object.
Synopsis
Declared in <mrdocs/Dom/Object.hpp>
virtual
std::size_t
size() const = 0;
Return Value
the number of properties in the object.
Return the type key of the implementation.
Synopsis
Declared in <mrdocs/Dom/Object.hpp>
virtual
char const*
type_key() const noexcept;
Return Value
the type key of the implementation.
Invoke the visitor for each key/value pair.
Synopsis
Description
The visitor function must return true
to continue iteration, or false
to stop.
The visit function returns true
if the visitor returned true
for all elements, otherwise false
.
Return Value
true
if the visitor returned true
for all elements, otherwise false
.
Parameters
Name |
Description |
fn |
The visitor function. |
Synopsis
Declared in <mrdocs/Dom/String.hpp>
class String final
Member Functions
Name |
Description |
|
Constructor. |
|
Destructor. |
Assignment. |
|
Return the string. |
|
Return the string. |
|
Return true if the string is empty. |
|
Return the string. |
|
Return the size. |
|
Return the string. |
|
Swap two strings. |
|
Return the string. |
Friends
Name |
Description |
Concatenate two strings. |
|
Return the result of comparing two strings. |
|
Return the result of comparing two strings. |
|
Return the result of comparing two strings. |
|
Return the result of comparing two strings. |
|
Return the result of comparing two strings. |
|
Return the result of comparing two strings. |
|
Swap two strings. |
Non-Member Functions
Name |
Description |
|
Convert ExplicitInfo to a string. |
|
Return the name of the InfoKind as a string. |
|
Convert NoexceptInfo to a string. |
|
Return the name of the |
|
Return the name of the NodeKind as a string. |
|
Return the name of the Parts as a string. |
|
Return the name of the ParamDirection as a string. |
|
Return the name of the Admonish as a string. |
Constructor.
Synopses
Declared in <mrdocs/Dom/String.hpp>
Constructor.
constexpr
String() noexcept = default;
Constructor.
Constructor.
Constructor.
String(std::string_view sv);
Constructor.
template<StringLikeTy StringLike>
String(StringLike const& s);
Constructor.
template<std::size_t N>
constexpr
String(char const(& str)[]);
Constructor.
String(
char const* str,
std::size_t len);
Parameters
Name |
Description |
sv |
The string to construct with. A copy of this string is made. |
s |
The string to construct with. A copy of this string is made. |
str |
A null‐terminated string. If the string is not null‐terminated, the result is undefined. |
len |
The length of the string. |
Constructor.
Synopsis
Declared in <mrdocs/Dom/String.hpp>
constexpr
String() noexcept = default;
Description
Default constructed strings have a zero size, and include a null terminator.
Constructor.
Synopsis
Declared in <mrdocs/Dom/String.hpp>
String(String const& other) noexcept;
Description
The newly constructed string acquries shared ownership of the string referenced by other.
Parameters
Name |
Description |
other |
The object to copy construct from |
Constructor.
Synopsis
Declared in <mrdocs/Dom/String.hpp>
constexpr
String(String&& other) noexcept;
Description
Ownership of the string is transferred to the newly constructed string. The moved‐from string behaves as if default constructed.
Parameters
Name |
Description |
other |
The object to move construct from |
Constructor.
Synopsis
Declared in <mrdocs/Dom/String.hpp>
String(std::string_view sv);
Description
This function constructs a new string from the buffer pointed to by sv
.
Parameters
Name |
Description |
sv |
The string to construct with. A copy of this string is made. |
Constructor.
Synopsis
Declared in <mrdocs/Dom/String.hpp>
template<StringLikeTy StringLike>
String(StringLike const& s);
Description
This function constructs a new string from s, which must be convertible to std::string_view
.
Parameters
Name |
Description |
s |
The string to construct with. A copy of this string is made. |
Constructor.
Synopsis
Declared in <mrdocs/Dom/String.hpp>
template<std::size_t N>
constexpr
String(char const(& str)[]);
Description
This function constructs a string literal which references the buffer pointed to by str
. Ownership is not transferred; the lifetime of the buffer must extend until the string is destroyed, otherwise the behavior is undefined.
Parameters
Name |
Description |
str |
A null‐terminated string. If the string is not null‐terminated, the result is undefined. |
Constructor.
Synopsis
Declared in <mrdocs/Dom/String.hpp>
String(
char const* str,
std::size_t len);
Description
This function constructs a new string from the string pointed to by str
of length len
.
Parameters
Name |
Description |
str |
The string to construct with. A copy of this string is made. |
len |
The length of the string. |
Destructor.
Synopsis
Declared in <mrdocs/Dom/String.hpp>
~String() noexcept;
Assignment.
Synopses
Declared in <mrdocs/Dom/String.hpp>
Assignment.
String&
operator=(String const& other) noexcept;
Assignment.
String&
operator=(String&& other) noexcept;
Assignment.
Synopsis
Description
This acquires shared ownership of the string referenced by other. Ownership of the previously referenced string is released.
Return Value
Reference to the current object
Parameters
Name |
Description |
other |
The object to copy assign from |
Assignment.
Synopsis
Description
This transfers ownership of the string referenced by other to this. Ownership of the previously referened string is released. After the assignment, the moved‐from string behaves as if default constructed.
Return Value
Reference to the current object
Parameters
Name |
Description |
other |
The object to move assign from |
Return the string.
Synopsis
Declared in <mrdocs/Dom/String.hpp>
char const*
c_str() const noexcept;
Description
The pointed‐to character buffer returned by this function is always null‐terminated.
Return Value
the string.
Return the string.
Synopsis
Declared in <mrdocs/Dom/String.hpp>
char const*
data() const noexcept;
Description
The pointed‐to character buffer returned by this function is always null‐terminated.
Return Value
the string.
Return true if the string is empty.
Synopsis
Declared in <mrdocs/Dom/String.hpp>
bool
empty() const noexcept;
Return Value
true if the string is empty.
Return the string.
Synopsis
Declared in <mrdocs/Dom/String.hpp>
std::string_view
get() const noexcept;
Return Value
the string.
Return the size.
Synopsis
Declared in <mrdocs/Dom/String.hpp>
std::size_t
size() const noexcept;
Return Value
the size.
Return the string.
Synopsis
Declared in <mrdocs/Dom/String.hpp>
std::string
str() const noexcept;
Return Value
the string.
Swap two strings.
Synopsis
Declared in <mrdocs/Dom/String.hpp>
constexpr
void
swap(String& other) noexcept;
Parameters
Name |
Description |
other |
The other string. |
Return the string.
Synopsis
Declared in <mrdocs/Dom/String.hpp>
operator std::string_view() const noexcept;
Return Value
the string.
A variant container for any kind of Dom value.
Synopsis
Declared in <mrdocs/Dom/Value.hpp>
class Value;
Member Functions
Name |
Description |
|
Constructors |
|
Destructor |
Assignment operators |
|
Return if an Array or Object is empty. |
|
Return true if a key exists. |
|
|
|
Return the array. |
|
Return the underlying boolean value. |
|
Return the function. |
|
Return the underlying integer value. |
|
Return the object. |
|
Return the underlying string value. |
|
Return true if this is an array. |
|
Return true if this is a boolean. |
|
Return true if this is a function. |
|
Return true if this is an integer. |
|
Return true if this is null. |
|
Return true if this is an object. |
|
Return true if this is a safe string. |
|
Return true if this is a string. |
|
Determine if a value is truthy |
|
Return true if this is undefined. |
|
Return the type of value contained. |
|
Lookup a sequence of keys. |
|
Invoke the function. |
|
Set or replace the value for a given key. |
|
Return if an Array or Object is empty. |
|
Swap two values. |
|
Return the type key of the value. |
|
Return the string. |
|
Determine if a value is truthy |
Data Members
Name |
|
|
|
|
|
|
Friends
Name |
Description |
Return value as a string. |
|
Return the first dom::Value that is not truthy, or the last one. |
|
Return the first dom::Value that is truthy, or the last one. |
|
Add or concatenate two values. |
|
Three‐way comparison operator |
|
Three‐way comparison operator |
|
Compare two values for inequality. |
|
Compare two values for equality. |
|
Swap two values. |
|
Create a wrapper for a safe string. |
|
A container of key and value pairs. |
|
An array of values |
Non-Member Functions
Name |
Description |
Convert an object of type |
|
Convert an object of type |
|
Return a non‐empty string, or a null. |
|
Stringify a value as JSON |
|
|
Determine if a value is empty |
|
"detag" helper function |
|
"increment" helper function |
|
"or" helper function |
|
"relativize" helper function |
|
"select" helper function |
Constructors
Synopses
Declared in <mrdocs/Dom/Value.hpp>
Default constructor
Value() noexcept;
Copy constructor
Move constructor
Construct from Array
Construct from Function
Construct from Kind
Construct from Object
Construct from String
Construct from int64_t
Value(int64_t v) noexcept;
Construct from nullptr_t
Value(std::nullptr_t v) noexcept;
Construct from storage_type
Value(Array::storage_type elements);
Construct from char
Value(char c) noexcept;
Construct from char
Value(char const* s);
Construct from T
template<std::floating_point T>
Value(T v) noexcept;
Construct from T
template<std::integral T>
requires (!std::same_as<T, bool>) &&
(!std::same_as<T, char>)
Value(T v) noexcept;
Construct from Boolean
template<std::convertible_to<String> Boolean>
Value(Boolean const& b);
Construct from F
template<class F>
requires function_traits_convertible_to_value<F>
Value(F const& f);
Construct from Optional
template<class T>
requires std::constructible_from<Value, T>
Value(Optional<T> const& opt);
Construct from optional
template<class T>
requires std::constructible_from<Value, T>
Value(std::optional<T> const& opt);
Construct from char
template<std::size_t N>
Value(char const(& sz)[]);
Default constructor
Synopsis
Declared in <mrdocs/Dom/Value.hpp>
Value() noexcept;
Copy constructor
Synopsis
Declared in <mrdocs/Dom/Value.hpp>
Value(Value const& other);
Parameters
Name |
Description |
other |
The object to copy construct from |
Move constructor
Synopsis
Declared in <mrdocs/Dom/Value.hpp>
Value(Value&& other) noexcept;
Parameters
Name |
Description |
other |
The object to move construct from |
Construct from Array
Synopsis
Declared in <mrdocs/Dom/Value.hpp>
Value(Array arr) noexcept;
Parameters
Name |
Description |
arr |
The object to construct from |
Construct from Function
Synopsis
Declared in <mrdocs/Dom/Value.hpp>
Value(Function fn) noexcept;
Parameters
Name |
Description |
fn |
The object to construct from |
Construct from Kind
Synopsis
Declared in <mrdocs/Dom/Value.hpp>
Value(dom::Kind kind) noexcept;
Parameters
Name |
Description |
kind |
The object to construct from |
Construct from Object
Synopsis
Declared in <mrdocs/Dom/Value.hpp>
Value(Object obj) noexcept;
Parameters
Name |
Description |
obj |
The object to construct from |
Construct from String
Synopsis
Declared in <mrdocs/Dom/Value.hpp>
Value(String str) noexcept;
Parameters
Name |
Description |
str |
The object to construct from |
Construct from int64_t
Synopsis
Declared in <mrdocs/Dom/Value.hpp>
Value(int64_t v) noexcept;
Parameters
Name |
Description |
v |
The object to construct from |
Construct from nullptr_t
Synopsis
Declared in <mrdocs/Dom/Value.hpp>
Value(std::nullptr_t v) noexcept;
Parameters
Name |
Description |
v |
The object to construct from |
Construct from storage_type
Synopsis
Declared in <mrdocs/Dom/Value.hpp>
Value(Array::storage_type elements);
Parameters
Name |
Description |
elements |
The object to construct from |
Construct from char
Synopsis
Declared in <mrdocs/Dom/Value.hpp>
Value(char c) noexcept;
Parameters
Name |
Description |
c |
The value to construct from |
Construct from char
Synopsis
Declared in <mrdocs/Dom/Value.hpp>
Value(char const* s);
Parameters
Name |
Description |
s |
The value to construct from |
Construct from T
Synopsis
Declared in <mrdocs/Dom/Value.hpp>
template<std::floating_point T>
Value(T v) noexcept;
Parameters
Name |
Description |
v |
The object to construct from |
Construct from T
Synopsis
Declared in <mrdocs/Dom/Value.hpp>
template<std::integral T>
requires (!std::same_as<T, bool>) &&
(!std::same_as<T, char>)
Value(T v) noexcept;
Parameters
Name |
Description |
v |
The object to construct from |
Construct from Boolean
Synopsis
Declared in <mrdocs/Dom/Value.hpp>
template<std::convertible_to<String> Boolean>
Value(Boolean const& b);
Parameters
Name |
Description |
b |
The object to copy construct from |
Construct from F
Synopsis
Declared in <mrdocs/Dom/Value.hpp>
template<class F>
requires function_traits_convertible_to_value<F>
Value(F const& f);
Parameters
Name |
Description |
f |
The object to copy construct from |
Construct from Optional
Synopsis
Declared in <mrdocs/Dom/Value.hpp>
template<class T>
requires std::constructible_from<Value, T>
Value(Optional<T> const& opt);
Parameters
Name |
Description |
opt |
The object to copy construct from |
Construct from optional
Synopsis
Declared in <mrdocs/Dom/Value.hpp>
template<class T>
requires std::constructible_from<Value, T>
Value(std::optional<T> const& opt);
Parameters
Name |
Description |
opt |
The object to copy construct from |
Construct from char
Synopsis
Declared in <mrdocs/Dom/Value.hpp>
template<std::size_t N>
Value(char const(& sz)[]);
Parameters
Name |
Description |
sz |
The value to construct from |
Destructor
Synopsis
Declared in <mrdocs/Dom/Value.hpp>
~Value();
Assignment operators
Synopses
Declared in <mrdocs/Dom/Value.hpp>
Copy assignment operator
Value&
operator=(Value const& other);
Move assignment operator
Value&
operator=(Value&& other) noexcept;
Copy assignment operator
Synopsis
Return Value
Reference to the current object
Parameters
Name |
Description |
other |
The object to copy assign from |
Move assignment operator
Synopsis
Return Value
Reference to the current object
Parameters
Name |
Description |
other |
The object to move assign from |
Return if an Array or Object is empty.
Synopsis
Declared in <mrdocs/Dom/Value.hpp>
bool
empty() const;
Return Value
if an Array or Object is empty.
Return true if a key exists.
Synopsis
Declared in <mrdocs/Dom/Value.hpp>
bool
exists(std::string_view key) const;
Return Value
true
if the key exists, otherwise false
.
Parameters
Name |
Description |
key |
The key to check for existence. |
get
overloads
Synopses
Declared in <mrdocs/Dom/Value.hpp>
Return the element at a given index.
dom::Value
get(std::size_t i) const;
Return the element for a given key.
dom::Value
get(std::string_view key) const;
Return the element at a given index or key.
dom::Value
get(dom::Value const& i) const;
template<std::convertible_to<std::string_view> S>
dom::Value
get(S const& key) const;
Return Value
-
The value at the specified index, or a Value of type
-
The value for the specified key, or a Value of type
Kind::Undefined
if the key does not exist.
Parameters
Name |
Description |
i |
The index. |
key |
The key. |
Return the element at a given index.
Synopsis
Declared in <mrdocs/Dom/Value.hpp>
dom::Value
get(std::size_t i) const;
Return Value
The value at the specified index, or a Value of type
Parameters
Name |
Description |
i |
The index. |
Return the element for a given key.
Synopsis
Declared in <mrdocs/Dom/Value.hpp>
dom::Value
get(std::string_view key) const;
Description
If the Value is not an object, or the key is not found, a Value of type Kind::Undefined
is returned.
Return Value
The value for the specified key, or a Value of type Kind::Undefined
if the key does not exist.
Parameters
Name |
Description |
key |
The key. |
Return the element at a given index or key.
Synopsis
Declared in <mrdocs/Dom/Value.hpp>
dom::Value
get(dom::Value const& i) const;
Return Value
the element at a given index or key.
Parameters
Name |
Description |
i |
A variant container for any kind of Dom value. |
Synopsis
Declared in <mrdocs/Dom/Value.hpp>
template<std::convertible_to<std::string_view> S>
dom::Value
get(S const& key) const;
Return the array.
Synopses
Declared in <mrdocs/Dom/Value.hpp>
Return the array.
Exceptions
Name |
Thrown on |
|
Return the array.
Synopsis
Declared in <mrdocs/Dom/Value.hpp>
Array const&
getArray() const;
Exceptions
Name |
Thrown on |
|
Return Value
the array.
Synopsis
Declared in <mrdocs/Dom/Value.hpp>
Array&
getArray();
Return Value
An array of values
Return the underlying boolean value.
Synopsis
Declared in <mrdocs/Dom/Value.hpp>
bool
getBool() const noexcept;
Description
Note
|
Behaviour is undefined if !isBoolean()
|
Return Value
the underlying boolean value.
Return the function.
Synopsis
Declared in <mrdocs/Dom/Value.hpp>
Function const&
getFunction() const;
Exceptions
Name |
Thrown on |
|
Return Value
the function.
Return the underlying integer value.
Synopsis
Declared in <mrdocs/Dom/Value.hpp>
int64_t
getInteger() const noexcept;
Description
Note
|
Behaviour is undefined if !isInteger()
|
Return Value
the underlying integer value.
Return the object.
Synopsis
Declared in <mrdocs/Dom/Value.hpp>
Object const&
getObject() const;
Exceptions
Name |
Thrown on |
|
Return Value
the object.
Return the underlying string value.
Synopsis
Declared in <mrdocs/Dom/Value.hpp>
String const&
getString() const noexcept;
Description
Note
|
Behaviour is undefined if !isString()
|
Return Value
the underlying string value.
Return true if this is an array.
Synopsis
Declared in <mrdocs/Dom/Value.hpp>
bool
isArray() const noexcept;
Return Value
true if this is an array.
Return true if this is a boolean.
Synopsis
Declared in <mrdocs/Dom/Value.hpp>
bool
isBoolean() const noexcept;
Return Value
true if this is a boolean.
Return true if this is a function.
Synopsis
Declared in <mrdocs/Dom/Value.hpp>
bool
isFunction() const noexcept;
Return Value
true if this is a function.
Return true if this is an integer.
Synopsis
Declared in <mrdocs/Dom/Value.hpp>
bool
isInteger() const noexcept;
Return Value
true if this is an integer.
Return true if this is null.
Synopsis
Declared in <mrdocs/Dom/Value.hpp>
bool
isNull() const noexcept;
Return Value
true if this is null.
Return true if this is an object.
Synopsis
Declared in <mrdocs/Dom/Value.hpp>
bool
isObject() const noexcept;
Return Value
true if this is an object.
Return true if this is a safe string.
Synopsis
Declared in <mrdocs/Dom/Value.hpp>
bool
isSafeString() const noexcept;
Return Value
true if this is a safe string.
Return true if this is a string.
Synopsis
Declared in <mrdocs/Dom/Value.hpp>
bool
isString() const noexcept;
Return Value
true if this is a string.
Determine if a value is truthy
Synopsis
Declared in <mrdocs/Dom/Value.hpp>
bool
isTruthy() const noexcept;
Description
A value is truthy if it is a boolean and is true, a number and not zero, or an non‐empty string, array or object.
Return Value
true
if the value is truthy, false
otherwise
Return true if this is undefined.
Synopsis
Declared in <mrdocs/Dom/Value.hpp>
bool
isUndefined() const noexcept;
Return Value
true if this is undefined.
Return the type of value contained.
Synopsis
Declared in <mrdocs/Dom/Value.hpp>
dom::Kind
kind() const noexcept;
Return Value
the type of value contained.
Lookup a sequence of keys.
Synopsis
Declared in <mrdocs/Dom/Value.hpp>
dom::Value
lookup(std::string_view keys) const;
Description
This function is equivalent to calling get
multiple times, once for each key in the sequence of dot‐separated keys.
Return Value
The value at the end of the sequence, or a Value of type Kind::Undefined
if any key is not found.
Parameters
Name |
Description |
keys |
The dot‐separated sequence of keys. |
Invoke the function.
Synopsis
Declared in <mrdocs/Dom/Value.hpp>
template<class... Args>
Value
operator()(Args...&&... args) const;
Description
If the Value is not an object, or the key is not found, a Value of type Kind::Undefined
is returned.
Return Value
Another instance of the object
Parameters
Name |
Description |
args |
The arguments to the function. |
Set or replace the value for a given key.
Synopsis
Parameters
Name |
Description |
key |
The key. |
value |
The value to set. |
Return if an Array or Object is empty.
Synopsis
Declared in <mrdocs/Dom/Value.hpp>
std::size_t
size() const;
Return Value
if an Array or Object is empty.
Swap two values.
Synopsis
Declared in <mrdocs/Dom/Value.hpp>
void
swap(Value& other) noexcept;
Parameters
Name |
Description |
other |
A variant container for any kind of Dom value. |
Return the type key of the value.
Synopsis
Declared in <mrdocs/Dom/Value.hpp>
char const*
type_key() const noexcept;
Return Value
the type key of the value.
Return the string.
Synopsis
Declared in <mrdocs/Dom/Value.hpp>
explicit
operator std::string() const noexcept;
Return Value
the string.
Determine if a value is truthy
Synopsis
Declared in <mrdocs/Dom/Value.hpp>
explicit
operator bool() const noexcept;
Description
A value is truthy if it is a boolean and is true, a number and not zero, or an non‐empty string, array or object.
Return Value
true
if the value is truthy, false
otherwise
Synopsis
Declared in <mrdocs/Dom/Value.hpp>
Array arr_;
Synopsis
Declared in <mrdocs/Dom/Value.hpp>
bool b_ = {false};
Synopsis
Declared in <mrdocs/Dom/Value.hpp>
Function fn_;
Synopsis
Declared in <mrdocs/Dom/Value.hpp>
int64_t i_;
Synopsis
Declared in <mrdocs/Dom/Value.hpp>
Object obj_;
Synopsis
Declared in <mrdocs/Dom/Value.hpp>
String str_;
Customization point tag.
Synopsis
Declared in <mrdocs/Dom/Value.hpp>
struct ValueFromTag;
Non-Member Functions
Description
This tag type is used by the function dom::ValueFrom
to select overloads of tag_invoke
.
Note
|
This type is empty; it has no members. |
See Also
Synopsis
Declared in <mrdocs/Dom/Function.hpp>
template<class F>
class VariadicFunctionImpl
: public FunctionImpl
Base Classes
Name |
Description |
Types
Member Functions
Name |
Description |
|
Construct from |
|
|
|
Synopsis
Declared in <mrdocs/Dom/Function.hpp>
using args_type = function_traits<F>::args_type;
Synopsis
Declared in <mrdocs/Dom/Function.hpp>
using return_type = function_traits<F>::return_type;
Construct from U
Synopsis
Declared in <mrdocs/Dom/Function.hpp>
template<class U>
VariadicFunctionImpl(U&& u);
Parameters
Name |
Description |
u |
The object to move construct from |
Synopsis
Declared in <mrdocs/Dom/Function.hpp>
virtual
Expected<Value>
call(Array const& args) const override;
Synopsis
Declared in <mrdocs/Dom/Function.hpp>
virtual
char const*
type_key() const noexcept override;
Synopsis
Declared in <mrdocs/Dom/Function.hpp>
template<typename F>
struct function_traits;
Derived Classes
Name |
Description |
Synopsis
Declared in <mrdocs/Dom/Function.hpp>
template<typename F>
requires requires { &F::operator(); }
struct function_traits<F>
: function_traits<decltype(&F::operator)>
Base Classes
Name |
Description |
Synopsis
Declared in <mrdocs/Dom/Function.hpp>
template<
typename R,
typename... Args>
struct function_traits<R(*)(Args...)>;
Types
Synopsis
Declared in <mrdocs/Dom/Function.hpp>
using args_type = std::tuple<Args...>;
Synopsis
Declared in <mrdocs/Dom/Function.hpp>
using return_type = R;
Synopsis
Declared in <mrdocs/Dom/Function.hpp>
template<
typename R,
typename... Args>
struct function_traits<R(Args...)>;
Types
Synopsis
Declared in <mrdocs/Dom/Function.hpp>
using args_type = std::tuple<Args...>;
Synopsis
Declared in <mrdocs/Dom/Function.hpp>
using return_type = R;
Synopsis
Declared in <mrdocs/Dom/Function.hpp>
template<
typename C,
typename R,
typename... Args>
struct function_traits<R const volatile(C::*)(Args...)>;
Types
Synopsis
Declared in <mrdocs/Dom/Function.hpp>
using args_type = std::tuple<Args...>;
Synopsis
Declared in <mrdocs/Dom/Function.hpp>
using return_type = R;
The type of data in a Value.
Synopsis
Declared in <mrdocs/Dom/Kind.hpp>
enum class Kind : int;
Members
Name |
Description |
|
The value is undefined. |
|
The value is null. |
|
The value is a boolean. |
|
The value is an integer. |
|
The value is a string. |
|
The value is a safe string. |
|
The value is an array. |
|
The value is an object. |
|
The value is a function. |
Description
This is the type of data stored in a Value. These types are loosely modeled after the JavaScript types and data structures.
Primitive values are Undefined, Null, Boolean, Integer, and String.
Undefined and Null are inhabited by a single value each. The difference between Undefined and Null is that Undefined is the default value for a Value, while Null represents a value that is explicitly set. Undefined is used to represent things such as:
-
An uninitialized Value
-
The Value returned from a function that failed to return a value
-
The result of accessing a nonexistent object property
-
The result of a
find
algorithm when no element is found
This distinction is semantically important as algorithms frequently need to distinguish between these two cases.
Booleans, Integers, and Strings are also primitive values. This means they are deeply copied when assigned or passed as a parameter.
Other value types, such as Array, Object, and Function are reference types, meaning that they are not copied when assigned or passed as a parameter. Instead, the reference is copied, and the original value is shared.
These reference types are modeled after JavaScript "Objects". All non‐primitive types (Object types) are derived from Object in JavaScript. This means types such as Array and Function represent a relevant selection of built‐in types that would derive from Object in JavaScript.
Objects are a collection of properties, which are equivalent to key‐value pairs. Property values can be any type, including other Objects, allowing for the creation of arbitrarily complex data structures.
-
https://developer.mozilla.org/en‐US/docs/Web/JavaScript/Data_structures
LazyArray
overloads
Synopses
Declared in <mrdocs/Dom/LazyArray.hpp>
Return a new dom::Array
based on a lazy array implementation.
Return a new dom::Array based on a FromValue context
Return Value
-
A new dom::Array whose elements are the result of converting each element in the underlying range to a dom::Value.
-
A new dom::Array whose elements are the result of converting each element in the underlying range using the specified context.
Parameters
Name |
Description |
arr |
The underlying range of elements. |
ctx |
The context used to convert each element to a dom::Value. |
Return a new dom::Array
based on a lazy array implementation.
Synopsis
Declared in <mrdocs/Dom/LazyArray.hpp>
template<std::ranges::random_access_range T>
requires HasStandaloneValueFrom<std::ranges::range_value_t<T>>
Array
LazyArray(T const& arr);
Return Value
A new dom::Array whose elements are the result of converting each element in the underlying range to a dom::Value.
Parameters
Name |
Description |
arr |
The underlying range of elements. |
Return a new dom::Array based on a FromValue context
Synopsis
Declared in <mrdocs/Dom/LazyArray.hpp>
template<
std::ranges::random_access_range T,
class Context>
requires HasValueFrom<std::ranges::range_value_t<T>, Context>
Array
LazyArray(
T const& arr,
Context const& ctx);
Return Value
A new dom::Array whose elements are the result of converting each element in the underlying range using the specified context.
Parameters
Name |
Description |
arr |
The underlying range of elements. |
ctx |
The context used to convert each element to a dom::Value. |
LazyObject
overloads
Synopses
Declared in <mrdocs/Dom/LazyObject.hpp>
Return a new dom::Object based on a lazy object implementation.
template<HasLazyObjectMapWithoutContext T>
Object
LazyObject(T const& obj);
Return a new dom::Object based on a transformed lazy array implementation.
template<
class T,
class Context>
requires HasLazyObjectMap<T, Context>
Object
LazyObject(
T const& arr,
Context const& context);
Return Value
-
A new dom::Object whose properties are the result of converting each property in the underlying object to a dom::Value.
-
A new dom::Array whose elements are the result of converting each element in the underlying range using the specified context.
Parameters
Name |
Description |
obj |
The underlying object. |
arr |
The underlying range of elements. |
context |
The context used to convert each element to a dom::Value. |
Return a new dom::Object based on a lazy object implementation.
Synopsis
Declared in <mrdocs/Dom/LazyObject.hpp>
template<HasLazyObjectMapWithoutContext T>
Object
LazyObject(T const& obj);
Return Value
A new dom::Object whose properties are the result of converting each property in the underlying object to a dom::Value.
Parameters
Name |
Description |
obj |
The underlying object. |
Return a new dom::Object based on a transformed lazy array implementation.
Synopsis
Declared in <mrdocs/Dom/LazyObject.hpp>
template<
class T,
class Context>
requires HasLazyObjectMap<T, Context>
Object
LazyObject(
T const& arr,
Context const& context);
Return Value
A new dom::Array whose elements are the result of converting each element in the underlying range using the specified context.
Parameters
Name |
Description |
arr |
The underlying range of elements. |
context |
The context used to convert each element to a dom::Value. |
Return a new dom::Array based on a transformed lazy array implementation.
Synopsis
Declared in <mrdocs/Dom/LazyArray.hpp>
template<
std::ranges::random_access_range T,
class F>
requires std::invocable<F, std::ranges::range_value_t<T>> &&
HasStandaloneValueFrom<std::invoke_result_t<F, std::ranges::range_value_t<T>>>
Array
TransformArray(
T const& arr,
F const& f);
Return Value
A new dom::Array whose elements are the result of applying the transform function to each element in the underlying range.
Parameters
Name |
Description |
arr |
The underlying range of elements. |
f |
The transform function to apply to each element before converting it to a dom::Value. |
ValueFrom
overloads
Synopses
Declared in <mrdocs/Dom/Value.hpp>
Convert an object of type T
to dom::Value
.
Convert an object of type T
to dom::Value
.
Convert an object of type T
to dom::Value
with a context
Convert an object of type T
to dom::Value
.
template<
class Context,
HasValueFrom<Context> T>
void
ValueFrom(
T&& t,
Context const& ctx,
Value& v);
Return Value
dom::Value
out parameter.
Template Parameters
Name |
Description |
T |
The type of the object to convert. |
Context |
The type of context passed to the conversion function. |
Parameters
Name |
Description |
t |
The object to convert. |
v |
|
ctx |
Context passed to the conversion function. |
See Also
Synopsis
Declared in <mrdocs/Dom/Value.hpp>
template<class T>
requires HasStandaloneValueFrom<T>
Value
ValueFrom(T&& t);
Description
This function attempts to convert an object of type T
to dom::Value
using
-
a user‐provided overload of
tag_invoke
. -
one of
dom::Value
's constructors,
Conversion of other types is done by calling an overload of tag_invoke
found by argument‐dependent lookup. Its signature should be similar to:
void tag_invoke( ValueFromTag, dom::Value&, T );
Exception Safety
Strong guarantee.
Return Value
dom::Value
out parameter.
Template Parameters
Name |
Description |
T |
The type of the object to convert. |
Parameters
Name |
Description |
t |
The object to convert. |
See Also
Convert an object of type T
to dom::Value
.
Synopsis
Declared in <mrdocs/Dom/Value.hpp>
template<class T>
requires HasStandaloneValueFrom<T>
void
ValueFrom(
T&& t,
Value& v);
Description
This function attempts to convert an object of type T
to dom::Value
using
-
a user‐provided overload of
tag_invoke
. -
one of
dom::Value
's constructors,
Conversion of other types is done by calling an overload of tag_invoke
found by argument‐dependent lookup. Its signature should be similar to:
void tag_invoke( ValueFromTag, dom::Value&, T );
Exception Safety
Strong guarantee.
Template Parameters
Name |
Description |
T |
The type of the object to convert. |
Parameters
Name |
Description |
t |
The object to convert. |
v |
|
See Also
Convert an object of type T
to dom::Value
with a context
Synopsis
Declared in <mrdocs/Dom/Value.hpp>
template<
class T,
class Context>
requires HasValueFrom<T, Context>
Value
ValueFrom(
T&& t,
Context const& ctx);
Description
This function attempts to convert an object of type T
to dom::Value
using
-
a user‐provided overload of
tag_invoke
. -
one of
dom::Value
's constructors,
Conversion of other types is done by calling an overload of tag_invoke
found by argument‐dependent lookup. Its signature should be similar to:
void tag_invoke( ValueFromTag, dom::Value&, T );
Exception Safety
Strong guarantee.
Return Value
dom::Value
out parameter.
Template Parameters
Name |
Description |
T |
The type of the object to convert. |
Parameters
Name |
Description |
t |
The object to convert. |
ctx |
Context passed to the conversion function. |
See Also
Convert an object of type T
to dom::Value
.
Synopsis
Declared in <mrdocs/Dom/Value.hpp>
template<
class Context,
HasValueFrom<Context> T>
void
ValueFrom(
T&& t,
Context const& ctx,
Value& v);
Description
This function attempts to convert an object of type T
to dom::Value
using
-
a user‐provided overload of
tag_invoke
. -
one of
dom::Value
's constructors,
Conversion of user‐provided types is done by calling an overload of tag_invoke
found by argument‐dependent lookup. Its signature should be similar to:
void tag_invoke( ValueFromTag, dom::Value&, T, Context const& );
or
void tag_invoke( ValueFromTag, dom::Value&, T );
The overloads are checked for existence in that order and the first that matches will be selected.
The ctx
argument can be used either as a tag type to provide conversions for third‐party types, or to pass extra data to the conversion function.
Exception Safety
Strong guarantee.
Template Parameters
Name |
Description |
T |
The type of the object to convert. |
Context |
The type of context passed to the conversion function. |
Parameters
Name |
Description |
t |
The object to convert. |
ctx |
Context passed to the conversion function. |
v |
|
See Also
Synopsis
Declared in <mrdocs/Dom/Function.hpp>
template<class F>
Function
makeInvocable(F&& f);
Synopsis
Declared in <mrdocs/Dom/Function.hpp>
template<class F>
requires std::invocable<F, Array const&>
Function
makeVariadicInvocable(F&& f);
Return a new array using a custom implementation.
Synopsis
Declared in <mrdocs/Dom/Array.hpp>
template<
class T,
class... Args>
requires std::derived_from<T, ArrayImpl>
Array
newArray(Args...&&... args);
Description
Return a new array using a custom implementation.
Return a new array using a custom implementation.
Return Value
A new array using the specified implementation.
Template Parameters
Name |
Description |
T |
The type of the custom implementation. This must be derived from ArrayImpl. |
Args |
The types of the arguments. |
Parameters
Name |
Description |
args |
Arguments forwarded to the constructor of T. |
Return a diagnostic string.
Synopsis
Declared in <mrdocs/Dom/Function.hpp>
template<
class T,
class... Args>
requires std::derived_from<T, FunctionImpl>
Function
newFunction(Args...&&... args);
Description
Return a new function using a custom implementation.
Return Value
a diagnostic string.
Parameters
Name |
Description |
args |
The arguments to the function. |
Return a new object using a custom implementation.
Synopsis
Declared in <mrdocs/Dom/Object.hpp>
template<
class T,
class... Args>
requires std::derived_from<T, ObjectImpl>
Object
newObject(Args...&&... args);
Return Value
A new object using the specified implementation.
Template Parameters
Name |
Description |
T |
The type of the custom implementation. This must be derived from ObjectImpl. |
Args |
The types of the arguments. |
Parameters
Name |
Description |
args |
Arguments forwarded to the constructor of T. |
Return the first dom::Value that is not truthy, or the last one.
Synopses
Declared in <mrdocs/Dom/Value.hpp>
Return the first dom::Value that is not truthy, or the last one.
dom::Value
operator&&(
Value const& lhs,
Value const& rhs);
template<std::convertible_to<Value> S>
auto
operator&&(
S const& lhs,
Value const& rhs) noexcept;
template<std::convertible_to<Value> S>
auto
operator&&(
Value const& lhs,
S const& rhs) noexcept;
Return the first dom::Value that is not truthy, or the last one.
Synopsis
Declared in <mrdocs/Dom/Value.hpp>
dom::Value
operator&&(
Value const& lhs,
Value const& rhs);
Description
This function is equivalent to the JavaScript &&
operator.
Return Value
the first dom::Value that is not truthy, or the last one.
Parameters
Name |
Description |
lhs |
The left operand |
rhs |
The right operand |
Synopsis
Declared in <mrdocs/Dom/Value.hpp>
template<std::convertible_to<Value> S>
auto
operator&&(
S const& lhs,
Value const& rhs) noexcept;
Synopsis
Declared in <mrdocs/Dom/Value.hpp>
template<std::convertible_to<Value> S>
auto
operator&&(
Value const& lhs,
S const& rhs) noexcept;
Addition operators
Synopses
Declared in <mrdocs/Dom/Array.hpp>
iterator
operator+(
difference_type n,
iterator it) noexcept;
[» more...]
Concatenate two arrays.
Array
operator+(
Array const& lhs,
Array const& rhs);
Concatenate two strings.
auto
operator+(
String const& lhs,
String const& rhs) noexcept;
Add or concatenate two values.
dom::Value
operator+(
Value const& lhs,
Value const& rhs);
template<std::convertible_to<Array> S>
auto
operator+(
Array const& lhs,
S const& rhs) noexcept;
template<std::convertible_to<Array> S>
auto
operator+(
S const& lhs,
Array const& rhs) noexcept;
template<StringLikeTy S>
auto
operator+(
S const& lhs,
String const& rhs) noexcept;
template<std::convertible_to<Value> S>
auto
operator+(
S const& lhs,
Value const& rhs) noexcept;
template<StringLikeTy S>
auto
operator+(
String const& lhs,
S const& rhs) noexcept;
template<std::convertible_to<Value> S>
auto
operator+(
Value const& lhs,
S const& rhs) noexcept;
Return Value
The concatenated string.
Parameters
Name |
Description |
lhs |
The left‐hand side string. |
rhs |
The right‐hand side string. |
Concatenate two arrays.
Synopsis
Return Value
An array of values
Parameters
Name |
Description |
lhs |
The left operand |
rhs |
The right operand |
Concatenate two strings.
Synopsis
Return Value
The concatenated string.
Parameters
Name |
Description |
lhs |
The left‐hand side string. |
rhs |
The right‐hand side string. |
Add or concatenate two values.
Synopsis
Declared in <mrdocs/Dom/Value.hpp>
dom::Value
operator+(
Value const& lhs,
Value const& rhs);
Return Value
A variant container for any kind of Dom value.
Parameters
Name |
Description |
lhs |
The left operand |
rhs |
The right operand |
Synopsis
Declared in <mrdocs/Dom/Array.hpp>
template<std::convertible_to<Array> S>
auto
operator+(
Array const& lhs,
S const& rhs) noexcept;
Synopsis
Declared in <mrdocs/Dom/Array.hpp>
template<std::convertible_to<Array> S>
auto
operator+(
S const& lhs,
Array const& rhs) noexcept;
Synopsis
Declared in <mrdocs/Dom/String.hpp>
template<StringLikeTy S>
auto
operator+(
S const& lhs,
String const& rhs) noexcept;
Synopsis
Declared in <mrdocs/Dom/Value.hpp>
template<std::convertible_to<Value> S>
auto
operator+(
S const& lhs,
Value const& rhs) noexcept;
Synopsis
Declared in <mrdocs/Dom/String.hpp>
template<StringLikeTy S>
auto
operator+(
String const& lhs,
S const& rhs) noexcept;
Synopsis
Declared in <mrdocs/Dom/Value.hpp>
template<std::convertible_to<Value> S>
auto
operator+(
Value const& lhs,
S const& rhs) noexcept;
Return the first dom::Value that is truthy, or the last one.
Synopses
Declared in <mrdocs/Dom/Value.hpp>
Return the first dom::Value that is truthy, or the last one.
dom::Value
operator||(
Value const& lhs,
Value const& rhs);
template<std::convertible_to<Value> S>
auto
operator||(
S const& lhs,
Value const& rhs) noexcept;
template<std::convertible_to<Value> S>
auto
operator||(
Value const& lhs,
S const& rhs) noexcept;
Return the first dom::Value that is truthy, or the last one.
Synopsis
Declared in <mrdocs/Dom/Value.hpp>
dom::Value
operator||(
Value const& lhs,
Value const& rhs);
Description
This function is equivalent to the JavaScript ||
operator.
Return Value
the first dom::Value that is truthy, or the last one.
Parameters
Name |
Description |
lhs |
The left operand |
rhs |
The right operand |
Synopsis
Declared in <mrdocs/Dom/Value.hpp>
template<std::convertible_to<Value> S>
auto
operator||(
S const& lhs,
Value const& rhs) noexcept;
Synopsis
Declared in <mrdocs/Dom/Value.hpp>
template<std::convertible_to<Value> S>
auto
operator||(
Value const& lhs,
S const& rhs) noexcept;
Return a non‐empty string, or a null.
Synopsis
Declared in <mrdocs/Dom/Value.hpp>
Value
stringOrNull(std::string_view s);
Return Value
a non‐empty string, or a null.
Parameters
Name |
Description |
s |
The string to check. |
swap
overloads
Synopses
Declared in <mrdocs/Dom/Array.hpp>
Swap two arrays.
Swap two objects.
Swap two objects.
Swap two strings.
Swap two values.
Parameters
Name |
Description |
lhs |
The first object. |
rhs |
The second object. |
Swap two arrays.
Synopsis
Parameters
Name |
Description |
lhs |
An array of values |
rhs |
An array of values |
Swap two objects.
Synopsis
Parameters
Name |
Description |
lhs |
The first object. |
rhs |
The second object. |
Swap two objects.
Synopsis
Parameters
Name |
Description |
lhs |
A container of key and value pairs. |
rhs |
A container of key and value pairs. |
Swap two strings.
Synopsis
Parameters
Name |
Description |
lhs |
The first string. |
rhs |
The second string. |
Swap two values.
Synopsis
Parameters
Name |
Description |
v0 |
A variant container for any kind of Dom value. |
v1 |
A variant container for any kind of Dom value. |
toString
overloads
Synopses
Declared in <mrdocs/Dom/Array.hpp>
Return a diagnostic string.
Return a diagnostic string.
Return value as a string.
Return a diagnostic string.
Synopsis
Declared in <mrdocs/Dom/Array.hpp>
std::string
toString(Array const&);
Return Value
a diagnostic string.
Return a diagnostic string.
Synopsis
Declared in <mrdocs/Dom/Object.hpp>
std::string
toString(Object const&);
Return Value
a diagnostic string.
Return value as a string.
Synopsis
Declared in <mrdocs/Dom/Value.hpp>
std::string
toString(Value const& value);
Return Value
value as a string.
Parameters
Name |
Description |
value |
A variant container for any kind of Dom value. |
Equality operators
Synopses
Declared in <mrdocs/Dom/Array.hpp>
Return the result of comparing two strings.
bool
operator==(
String const& lhs,
String const& rhs) noexcept;
Return the result of comparing two strings.
template<StringLikeTy StringLike>
bool
operator==(
String const& lhs,
StringLike const& rhs) noexcept;
Compare two values for equality.
bool
operator==(
Value const& lhs,
Value const& rhs) noexcept;
Compare two objects for equality.
bool
operator==(
Object const& a,
Object const& b) noexcept;
Compare two arrays for equality.
bool
operator==(
Array const& lhs,
Array const& rhs) noexcept;
Return the result of comparing two strings.
Synopsis
Return Value
the result of comparing two strings.
Parameters
Name |
Description |
lhs |
The left operand |
rhs |
The right operand |
Return the result of comparing two strings.
Synopsis
Declared in <mrdocs/Dom/String.hpp>
template<StringLikeTy StringLike>
bool
operator==(
String const& lhs,
StringLike const& rhs) noexcept;
Return Value
the result of comparing two strings.
Parameters
Name |
Description |
lhs |
The left operand |
rhs |
The right operand |
Compare two values for equality.
Synopsis
Description
This operator uses strict equality, meaning that the types must match exactly, and for objects and arrays the children must match exactly.
The ==
operator behaves differently for objects compared to primitive data types like numbers and strings. When comparing objects using ==
, it checks for reference equality, not structural equality.
This means that two objects are considered equal with ===
only if they reference the exact same object in memory.
Note
|
In JavaScript, this is equivalent to the === operator, which does not perform type conversions.
|
Return Value
true
if the objects are equal, false
otherwise
Parameters
Name |
Description |
lhs |
The left operand |
rhs |
The right operand |
Compare two objects for equality.
Synopsis
Return Value
true
if the objects are equal, false
otherwise
Parameters
Name |
Description |
a |
The left operand |
b |
The right operand |
Compare two arrays for equality.
Synopsis
Return Value
true
if the objects are equal, false
otherwise
Parameters
Name |
Description |
lhs |
The left operand |
rhs |
The right operand |
Return the result of comparing two strings.
Synopses
Declared in <mrdocs/Dom/String.hpp>
Return the result of comparing two strings.
bool
operator!=(
String const& lhs,
String const& rhs) noexcept;
Return the result of comparing two strings.
template<StringLikeTy StringLike>
bool
operator!=(
String const& lhs,
StringLike const& rhs) noexcept;
Return the result of comparing two strings.
Synopsis
Return Value
the result of comparing two strings.
Parameters
Name |
Description |
lhs |
The left operand |
rhs |
The right operand |
Return the result of comparing two strings.
Synopsis
Declared in <mrdocs/Dom/String.hpp>
template<StringLikeTy StringLike>
bool
operator!=(
String const& lhs,
StringLike const& rhs) noexcept;
Return Value
the result of comparing two strings.
Parameters
Name |
Description |
lhs |
The left operand |
rhs |
The right operand |
Three‐way comparison operators
Synopses
Declared in <mrdocs/Dom/Array.hpp>
Return the result of comparing two strings.
auto
operator<=>(
String const& lhs,
String const& rhs) noexcept;
Return the result of comparing two strings.
template<StringLikeTy StringLike>
auto
operator<=>(
String const& lhs,
StringLike const& rhs) noexcept;
Three‐way comparison operator
template<std::convertible_to<Value> S>
auto
operator<=>(
Value const& lhs,
S const& rhs) noexcept;
Three‐way comparison operator
template<std::convertible_to<Value> S>
auto
operator<=>(
S const& lhs,
Value const& rhs) noexcept;
Compare two values for inequality.
std::strong_ordering
operator<=>(
Value const& lhs,
Value const& rhs) noexcept;
Compare two objects for precedence.
std::strong_ordering
operator<=>(
Object const& a,
Object const& b) noexcept;
Compare two arrays for precedence.
std::strong_ordering
operator<=>(
Array const& lhs,
Array const& rhs) noexcept;
Return the result of comparing two strings.
Synopsis
Return Value
the result of comparing two strings.
Parameters
Name |
Description |
lhs |
The left operand |
rhs |
The right operand |
Return the result of comparing two strings.
Synopsis
Declared in <mrdocs/Dom/String.hpp>
template<StringLikeTy StringLike>
auto
operator<=>(
String const& lhs,
StringLike const& rhs) noexcept;
Return Value
the result of comparing two strings.
Parameters
Name |
Description |
lhs |
The left operand |
rhs |
The right operand |
Three‐way comparison operator
Synopsis
Declared in <mrdocs/Dom/Value.hpp>
template<std::convertible_to<Value> S>
auto
operator<=>(
Value const& lhs,
S const& rhs) noexcept;
Return Value
The relative order of the objects
Parameters
Name |
Description |
lhs |
The left operand |
rhs |
The right operand |
Three‐way comparison operator
Synopsis
Declared in <mrdocs/Dom/Value.hpp>
template<std::convertible_to<Value> S>
auto
operator<=>(
S const& lhs,
Value const& rhs) noexcept;
Return Value
The relative order of the objects
Parameters
Name |
Description |
lhs |
The left operand |
rhs |
The right operand |
Compare two values for inequality.
Synopsis
Return Value
The relative order of the objects
Parameters
Name |
Description |
lhs |
The left operand |
rhs |
The right operand |
Compare two objects for precedence.
Synopsis
Return Value
The relative order of the objects
Parameters
Name |
Description |
a |
The left operand |
b |
The right operand |
Compare two arrays for precedence.
Synopsis
Return Value
The relative order of the objects
Parameters
Name |
Description |
lhs |
The left operand |
rhs |
The right operand |
Determine if T
can be converted to dom::Value
.
Synopsis
Declared in <mrdocs/Dom/LazyObject.hpp>
template<
class T,
class Context>
concept HasLazyObjectMap = HasLazyObjectMapWithContext<T, Context> ||
HasLazyObjectMapWithoutContext<T>;
Description
If T
can be converted to dom::Value
via a call to dom::ValueFrom
, the static data member value
is defined as true
. Otherwise, value
is defined as false
.
Concept to determine if a type can be mapped to a dom::LazyObjectImpl
with a user‐provided conversion.
Synopsis
Declared in <mrdocs/Dom/LazyObject.hpp>
template<
class T,
class Context>
concept HasLazyObjectMapWithContext = requires(
detail::ArchetypalIO& io,
T const& t,
Context const& ctx)
{
{ tag_invoke(LazyObjectMapTag{}, io, t, ctx) } ‐> std::same_as<void>;
};
Description
This concept determines if the user‐provided conversion is defined as:
template <class IO>
void tag_invoke( LazyObjectMapTag, IO&, T, Context const& );
Concept to determine if a type can be mapped to a dom::LazyObjectImpl
with a user‐provided conversion.
Synopsis
Declared in <mrdocs/Dom/LazyObject.hpp>
template<class T>
concept HasLazyObjectMapWithoutContext = requires(
detail::ArchetypalIO& io,
T const& t)
{
{ tag_invoke(LazyObjectMapTag{}, io, t) } ‐> std::same_as<void>;
};
Description
This concept determines if the user‐provided conversion is defined as:
template <class IO>
void tag_invoke( LazyObjectMapTag, IO&, T& );
This customization can be defined by any type that needs to be converted to/from a lazy dom::Object
. For example:
template <class IO>
void tag_invoke( LazyObjectMapTag, IO& io, MyStruct const& s)
{
io.map("name", s.name);
io.map("size", s.size);
io.map("age", s.age);
}
Determine if T
can be converted to dom::Value
without a context.
Synopsis
Declared in <mrdocs/Dom/Value.hpp>
template<class T>
concept HasStandaloneValueFrom = HasValueFromWithoutContext<T> ||
std::constructible_from<Value, T>;
Description
This concept determines if there is a user‐provided conversion to dom::Value
that does not require a context or if dom::Value
has a constructor that can be used to convert T
to a dom::Value
.
Determine if T
can be converted to dom::Value
.
Synopsis
Declared in <mrdocs/Dom/Value.hpp>
template<
class T,
class Context>
concept HasValueFrom = HasValueFromWithContext<T, Context> ||
HasValueFromWithoutContext<T> ||
std::constructible_from<Value, T>;
Description
If T
can be converted to dom::Value
via a call to dom::ValueFrom
, the static data member value
is defined as true
. Otherwise, value
is defined as false
.
See Also
Concept to determine if a type can be converted to a dom::Value
with a user‐provided conversion.
Synopsis
Declared in <mrdocs/Dom/Value.hpp>
template<
class T,
class Context>
concept HasValueFromWithContext = requires(
Value& v,
T const& t,
Context const& ctx)
{
tag_invoke(ValueFromTag{}, v, t, ctx);
};
Description
This concept determines if the user‐provided conversion is defined as:
void tag_invoke( ValueFromTag, dom::Value&, T, Context const& );
Concept to determine if a type can be converted to a dom::Value
with a user‐provided conversion.
Synopsis
Declared in <mrdocs/Dom/Value.hpp>
template<class T>
concept HasValueFromWithoutContext = requires(
Value& v,
T const& t)
{
tag_invoke(ValueFromTag{}, v, t);
};
Description
This concept determines if the user‐provided conversion is defined as:
void tag_invoke( ValueFromTag, dom::Value&, T );
Satisfied if StringTy is convertible to String but not a String.
Synopsis
Declared in <mrdocs/Dom/String.hpp>
template<class StringTy>
concept StringLikeTy = ! std::is_same_v<StringTy, String> &&
std::convertible_to<StringTy, std::string_view>;
Synopsis
Declared in <mrdocs/Dom/Function.hpp>
template<class F>
concept function_traits_convertible_to_value = has_function_traits<F> &&
has_function_traits_for_default_function_impl<F>;
Synopsis
Declared in <mrdocs/Dom/Function.hpp>
template<typename F>
concept has_function_args_for_default_function_impl = (std::tuple_size_v<typename function_traits<F>::args_type> == 0 ||
[]<std::size_t... I>(std::index_sequence<I...>) {
return
(std::convertible_to<
std::tuple_element_t<
I, typename function_traits<F>::args_type>,
Value> && ...);
}(std::make_index_sequence<std::tuple_size_v<typename function_traits<F>::args_type>>()));
Synopsis
Declared in <mrdocs/Dom/Function.hpp>
template<typename F>
concept has_function_traits = requires {
typename function_traits<F>::return_type;
typename function_traits<F>::args_type;
};
Synopsis
Declared in <mrdocs/Dom/Function.hpp>
template<typename F>
concept has_function_traits_for_default_function_impl = has_invoke_result_for_default_function_impl<F> &&
has_function_args_for_default_function_impl<F>;
Synopsis
Declared in <mrdocs/Dom/Function.hpp>
template<typename F>
concept has_invoke_expected_result_convertible_to_dom_value = detail::isExpected<typename function_traits<F>::return_type> &&
(std::convertible_to<typename function_traits<F>::return_type::value_type, Value> ||
std::same_as<typename function_traits<F>::return_type::value_type, void>);
Synopsis
Declared in <mrdocs/Dom/Function.hpp>
template<typename F>
concept has_invoke_result_convertible_to_dom_value = std::convertible_to<typename function_traits<F>::return_type, Value> ||
std::same_as<typename function_traits<F>::return_type, void>;
Synopsis
Declared in <mrdocs/Dom/Function.hpp>
template<typename F>
concept has_invoke_result_for_default_function_impl = has_invoke_result_convertible_to_dom_value<F> ||
has_invoke_expected_result_convertible_to_dom_value<F>;
Enums
Name |
Description |
The type of a file. |
Functions
Name |
Description |
Create a directory. |
|
Determine if a path exists |
|
Return the filename part of the path. |
|
Return the contents of a file as a string. |
|
Return the file type or an error |
|
Return the parent directory. |
|
Return the relevant suffix of a source file path. |
|
Return true if pathName is absolute. |
|
Determine if a path is a directory. |
|
Return true if pathName ends in a separator. |
|
Determine lexically if a path is a directory. |
|
Check if the path is posix style. |
|
Return an absolute path from a possibly relative path. |
|
Append a trailing native separator if not already present. |
|
Convert all backward slashes to forward slashes. |
|
Return a normalized directory. |
|
Return a normalized path. |
|
Return an error if pathName is not absolute. |
|
Return an error if the path is not a directory. |
|
Checks if the given path starts with the specified prefix. |
|
Return the filename with a new or different extension. |
The type of a file.
Synopsis
Declared in <mrdocs/Support/Path.hpp>
enum class FileType : int;
Members
Name |
Description |
|
The file does not exist |
|
The path represents a regular file |
|
The file is a directory |
|
The file is something else |
Non-Member Functions
Name |
Description |
Return the file type or an error |
Synopses
Declared in <mrdocs/Support/Path.hpp>
std::string
appendPath(
std::string_view basePath,
std::string_view name);
std::string
appendPath(
std::string_view basePath,
std::string_view name1,
std::string_view name2);
std::string
appendPath(
std::string_view basePath,
std::string_view name1,
std::string_view name2,
std::string_view name3);
std::string
appendPath(
std::string_view basePath,
std::string_view name1,
std::string_view name2,
std::string_view name3,
std::string_view name4);
Synopsis
Declared in <mrdocs/Support/Path.hpp>
std::string
appendPath(
std::string_view basePath,
std::string_view name);
Synopsis
Declared in <mrdocs/Support/Path.hpp>
std::string
appendPath(
std::string_view basePath,
std::string_view name1,
std::string_view name2);
Synopsis
Declared in <mrdocs/Support/Path.hpp>
std::string
appendPath(
std::string_view basePath,
std::string_view name1,
std::string_view name2,
std::string_view name3);
Synopsis
Declared in <mrdocs/Support/Path.hpp>
std::string
appendPath(
std::string_view basePath,
std::string_view name1,
std::string_view name2,
std::string_view name3,
std::string_view name4);
Create a directory.
Synopsis
Declared in <mrdocs/Support/Path.hpp>
Expected<void>
createDirectory(std::string_view pathName);
Description
Any missing parent directories will also be created.
Return Value
A container holding an error or a value.
Parameters
Name |
Description |
pathName |
The absolute or relative path to create. |
Determine if a path exists
Synopsis
Declared in <mrdocs/Support/Path.hpp>
bool
exists(std::string_view pathName);
Return Value
true if the path exists, false otherwise.
Parameters
Name |
Description |
pathName |
The absolute or relative path |
Return the filename part of the path.
Synopsis
Declared in <mrdocs/Support/Path.hpp>
std::string_view
getFileName(std::string_view pathName);
Return Value
The filename part of the path, or the empty string if there is none.
Parameters
Name |
Description |
pathName |
The absolute or relative path to the directory or file. |
Return the contents of a file as a string.
Synopsis
Declared in <mrdocs/Support/Path.hpp>
Expected<std::string>
getFileText(std::string_view pathName);
Return Value
The contents of the file, or an error if any occurred.
Parameters
Name |
Description |
pathName |
The absolute or relative path to the file. |
Return the file type or an error
Synopsis
Declared in <mrdocs/Support/Path.hpp>
Expected<FileType>
getFileType(std::string_view pathName);
Return Value
the file type or an error
Parameters
Name |
Description |
pathName |
The absolute or relative path to the file. |
Return the parent directory.
Synopses
Declared in <mrdocs/Support/Path.hpp>
Return the parent directory.
std::string
getParentDir(std::string_view pathName);
Return the parent directory.
std::string
getParentDir(
std::string_view pathName,
unsigned int levels);
Return Value
The parent directory, or the empty string if there is none.
Parameters
Name |
Description |
pathName |
The absolute or relative path to the directory or file. |
levels |
The number of levels to go up. If this is zero, the original path is returned. If this is greater than the number of levels in the path, the empty string is returned. |
Return the parent directory.
Synopsis
Declared in <mrdocs/Support/Path.hpp>
std::string
getParentDir(std::string_view pathName);
Description
If the parent directory is defined, the returned path will always have a trailing separator.
Return Value
The parent directory, or the empty string if there is none.
Parameters
Name |
Description |
pathName |
The absolute or relative path to the directory or file. |
Return the parent directory.
Synopsis
Declared in <mrdocs/Support/Path.hpp>
std::string
getParentDir(
std::string_view pathName,
unsigned int levels);
Description
If the parent directory is defined, the returned path will always have a trailing separator.
Return Value
The parent directory, or the empty string if there is none.
Parameters
Name |
Description |
pathName |
The absolute or relative path to the directory or file. |
levels |
The number of levels to go up. If this is zero, the original path is returned. If this is greater than the number of levels in the path, the empty string is returned. |
Return the relevant suffix of a source file path.
Synopsis
Declared in <mrdocs/Support/Path.hpp>
std::string_view
getSourceFilename(std::string_view pathName);
Return Value
The suffix, including the leading dot, or the empty string if there is no suffix.
Parameters
Name |
Description |
pathName |
The absolute or relative path to the file. |
Return true if pathName is absolute.
Synopsis
Declared in <mrdocs/Support/Path.hpp>
bool
isAbsolute(std::string_view pathName) noexcept;
Return Value
true if the path is absolute, false otherwise.
Parameters
Name |
Description |
pathName |
The absolute or relative path to the directory or file. |
Determine if a path is a directory.
Synopsis
Declared in <mrdocs/Support/Path.hpp>
bool
isDirectory(std::string_view pathName);
Return Value
true if the path exists and is a directory, false otherwise.
Parameters
Name |
Description |
pathName |
The absolute or relative path |
Return true if pathName ends in a separator.
Synopsis
Declared in <mrdocs/Support/Path.hpp>
bool
isDirsy(std::string_view pathName) noexcept;
Return Value
true if the path ends in a separator, false otherwise.
Parameters
Name |
Description |
pathName |
The absolute or relative path to the directory or file. |
Determine lexically if a path is a directory.
Synopsis
Declared in <mrdocs/Support/Path.hpp>
bool
isLexicalDirectory(std::string_view pathName);
Description
This function determines if a path is a directory.
If the path does not exist, the function determines lexically if the path represents a directory. In this case, the function returns true if the last path segment contains a period, otherwise false.
Return Value
true if the path exists and is a directory, or if the path does not exist and the last path segment does not contain a period. false otherwise.
Parameters
Name |
Description |
pathName |
The absolute or relative path |
Check if the path is posix style.
Synopsis
Declared in <mrdocs/Support/Path.hpp>
bool
isPosixStyle(std::string_view pathName);
Return Value
true if the path uses only forward slashes as path separators, false otherwise.
Parameters
Name |
Description |
pathName |
The absolute or relative path to the directory or file. |
Return an absolute path from a possibly relative path.
Synopses
Declared in <mrdocs/Support/Path.hpp>
Return an absolute path from a possibly relative path.
Expected<std::string>
makeAbsolute(std::string_view pathName);
Return an absolute path from a possibly relative path.
std::string
makeAbsolute(
std::string_view pathName,
std::string_view workingDir);
Return Value
-
The absolute path, or an error if any occurred.
-
The absolute path, or an error if any occurred.
Parameters
Name |
Description |
pathName |
The absolute or relative path to the directory or file. |
workingDir |
The working directory to resolve relative paths against. |
Return an absolute path from a possibly relative path.
Synopsis
Declared in <mrdocs/Support/Path.hpp>
Expected<std::string>
makeAbsolute(std::string_view pathName);
Description
Relative paths are resolved against the current working directory of the process.
Return Value
The absolute path, or an error if any occurred.
Parameters
Name |
Description |
pathName |
The absolute or relative path to the directory or file. |
Return an absolute path from a possibly relative path.
Synopsis
Declared in <mrdocs/Support/Path.hpp>
std::string
makeAbsolute(
std::string_view pathName,
std::string_view workingDir);
Return Value
The absolute path, or an error if any occurred.
Parameters
Name |
Description |
pathName |
The absolute or relative path to the directory or file. |
workingDir |
The working directory to resolve relative paths against. |
Append a trailing native separator if not already present.
Synopsis
Declared in <mrdocs/Support/Path.hpp>
std::string
makeDirsy(std::string_view pathName);
Return Value
A copy of the path with a trailing separator if not already present.
Parameters
Name |
Description |
pathName |
The absolute or relative path to the directory or file. |
Convert all backward slashes to forward slashes.
Synopsis
Declared in <mrdocs/Support/Path.hpp>
std::string
makePosixStyle(std::string_view pathName);
Return Value
A copy of the path with all backslashes replaced with forward slashes.
Parameters
Name |
Description |
pathName |
The absolute or relative path to the directory or file. |
Return a normalized directory.
Synopsis
Declared in <mrdocs/Support/Path.hpp>
std::string
normalizeDir(std::string_view pathName);
Description
This function returns a new directory path based on applying the changes defined by normalizePath
and makeDirsy
.
Return Value
The normalized path.
Parameters
Name |
Description |
pathName |
The relative or absolute path. |
Return a normalized path.
Synopsis
Declared in <mrdocs/Support/Path.hpp>
std::string
normalizePath(std::string_view pathName);
Description
This function returns a new path based on applying the following changes to the passed path:
-
"." and ".." are resolved
-
Separators made uniform
-
Separators are replaced with the native separator
Return Value
The normalized path.
Parameters
Name |
Description |
pathName |
The relative or absolute path. |
Return an error if pathName is not absolute.
Synopsis
Declared in <mrdocs/Support/Path.hpp>
Expected<void>
requireAbsolute(std::string_view pathName);
Return Value
An error if the path is not absolute.
Parameters
Name |
Description |
pathName |
The absolute or relative path to the directory or file. |
Return an error if the path is not a directory.
Synopsis
Declared in <mrdocs/Support/Path.hpp>
Expected<void>
requireDirectory(std::string_view pathName);
Return Value
An error if the path does not exist or is not a directory.
Parameters
Name |
Description |
pathName |
The absolute or relative path |
Checks if the given path starts with the specified prefix.
Synopsis
Declared in <mrdocs/Support/Path.hpp>
bool
startsWith(
std::string_view pathName,
std::string_view prefix);
Description
This function compares the beginning of the pathName
with the prefix
. It returns true if pathName
starts with prefix
. The comparison is case‐sensitive.
Unlike a direct string comparison, this function also accepts differences in the slashes used to separate paths. Therefore, it returns true even when the slashes used in pathName
and prefix
are not the same. The function accepts both forward slashes ("/") and backslashes ("").
Return Value
A boolean value. Returns true if pathName
starts with prefix
, false otherwise.
Parameters
Name |
Description |
pathName |
A string view representing the path to be checked. |
prefix |
A string view representing the prefix to be checked against the path. |
Return the filename with a new or different extension.
Synopsis
Declared in <mrdocs/Support/Path.hpp>
std::string
withExtension(
std::string_view fileName,
std::string_view ext);
Return Value
the filename with a new or different extension.
Parameters
Name |
Description |
fileName |
The absolute or relative path to the directory or file. |
ext |
The extension to use, without a leading dot. If this is empty and the path contains an extension, then the extension is removed. |
Functions
Name |
Description |
"and" helper function |
|
"detag" helper function |
|
"eq" helper function |
|
"increment" helper function |
|
"ne" helper function |
|
"not" helper function |
|
"or" helper function |
|
Register all the Antora helpers into a Handlebars instance |
|
Register all the built‐in helpers into a Handlebars instance |
|
Register contructor helpers into a Handlebars instance |
|
Register helpers to manipulate composite data types |
|
Register logical helpers into a Handlebars instance |
|
Register math helpers into a Handlebars instance |
|
Register string helpers into a Handlebars instance |
|
Register type helpers into a Handlebars instance |
|
"relativize" helper function |
|
"select" helper function |
|
"year" helper function |
"and" helper function
Synopsis
Declared in <mrdocs/Support/Handlebars.hpp>
bool
and_fn(dom::Array const& args);
Description
The "and" helper returns true if all of the values are truthy.
Return Value
True if all of the values are truthy, false otherwise.
Parameters
Name |
Description |
args |
The values to test |
"detag" helper function
Synopsis
Declared in <mrdocs/Support/Handlebars.hpp>
dom::Value
detag_fn(dom::Value html);
Description
The "detag" helper applies the regex expression "<[ˆ>]+>" to the input to remove all HTML tags.
Return Value
A variant container for any kind of Dom value.
Parameters
Name |
Description |
html |
A variant container for any kind of Dom value. |
"eq" helper function
Synopsis
Declared in <mrdocs/Support/Handlebars.hpp>
bool
eq_fn(dom::Array const& args);
Description
The "eq" helper returns true if all of the values are equal.
Return Value
True if all of the values are equal, false otherwise.
Parameters
Name |
Description |
args |
The values to compare |
"increment" helper function
Synopsis
Declared in <mrdocs/Support/Handlebars.hpp>
dom::Value
increment_fn(dom::Value const& value);
Description
The "increment" helper adds 1 to the value if it's an integer and converts booleans to true
. Other values are returned as‐is.
Return Value
A variant container for any kind of Dom value.
Parameters
Name |
Description |
value |
A variant container for any kind of Dom value. |
"ne" helper function
Synopsis
Declared in <mrdocs/Support/Handlebars.hpp>
bool
ne_fn(dom::Array const& args);
Description
The "ne" helper returns true if any of the values are not equal.
Return Value
True if any of the values are not equal, false otherwise.
Parameters
Name |
Description |
args |
The values to compare |
"not" helper function
Synopsis
Declared in <mrdocs/Support/Handlebars.hpp>
bool
not_fn(dom::Array const& arg);
Description
The "not" helper returns true if not all of the values are truthy.
Return Value
True if not all of the values are truthy, false otherwise.
Parameters
Name |
Description |
arg |
An array of values |
"or" helper function
Synopsis
Declared in <mrdocs/Support/Handlebars.hpp>
dom::Value
or_fn(dom::Array const& args);
Description
The "or" helper returns true if any of the values are truthy.
Return Value
A variant container for any kind of Dom value.
Parameters
Name |
Description |
args |
An array of values |
Register all the Antora helpers into a Handlebars instance
Synopsis
Declared in <mrdocs/Support/Handlebars.hpp>
void
registerAntoraHelpers(Handlebars& hbs);
Description
This function registers all the helpers that are part of the default Antora UI.
Individual Antora helpers can also be registered with the public _fn functions in this namespace.
Since the Antora helpers are not mandatory and include many functions not applicable to all applications, this allows the user to register only some of the Antora helpers.
Parameters
Name |
Description |
hbs |
The Handlebars instance to register the helpers into |
See Also
https://gitlab.com/antora/antora‐ui‐default/‐/tree/master/src/helpers
Register all the built‐in helpers into a Handlebars instance
Synopsis
Declared in <mrdocs/Support/Handlebars.hpp>
void
registerBuiltinHelpers(Handlebars& hbs);
Description
Individual built‐in helpers can also be registered with the public _fn functions in this namespace.
This allows the user to override only some of the built‐in helpers. In particular, this is important for mandatory helpers, such as blockHelperMissing
and helperMissing
.
Parameters
Name |
Description |
hbs |
The Handlebars instance to register the helpers into |
See Also
https://github.com/handlebars‐lang/handlebars.js/tree/master/lib/handlebars/helpers
https://handlebarsjs.com/guide/builtin‐helpers.html
Register contructor helpers into a Handlebars instance
Synopsis
Declared in <mrdocs/Support/Handlebars.hpp>
void
registerConstructorHelpers(Handlebars& hbs);
Description
This function registers a number of common helpers that allows the user to create objects of specific types directly from literals in the template.
Parameters
Name |
Description |
hbs |
The Handlebars instance to register the helpers into |
Register helpers to manipulate composite data types
Synopsis
Declared in <mrdocs/Support/Handlebars.hpp>
void
registerContainerHelpers(Handlebars& hbs);
Description
This function registers a number of common helpers that operate on Objects and Arrays. Object and Array helpers are particularly useful because most applications will need to manipulate Objects and Arrays to extract information from them, such as object keys or specific Array items known ahead of time.
The helper names are inspired by the default functions provided in multiple programming languages for dictionaries, objects, and arrays, such as Python and JavaScript, for their default types.
The individual helpers are defined as an implementation detail and cannot be registered individually.
Parameters
Name |
Description |
hbs |
The Handlebars instance to register the helpers into |
Register logical helpers into a Handlebars instance
Synopsis
Declared in <mrdocs/Support/Handlebars.hpp>
void
registerLogicalHelpers(Handlebars& hbs);
Description
This function registers a number of common helpers that perform logical operations.
Parameters
Name |
Description |
hbs |
The Handlebars instance to register the helpers into |
Register math helpers into a Handlebars instance
Synopsis
Declared in <mrdocs/Support/Handlebars.hpp>
void
registerMathHelpers(Handlebars& hbs);
Description
This function registers a number of common helpers that perform mathemathical operations.
Parameters
Name |
Description |
hbs |
The Handlebars instance to register the helpers into |
Register string helpers into a Handlebars instance
Synopsis
Declared in <mrdocs/Support/Handlebars.hpp>
void
registerStringHelpers(Handlebars& hbs);
Description
This function registers a number of common helpers that operate on strings. String helpers are particularly useful because most applications will need to manipulate strings for presentation purposes.
All helpers can be used as either block helpers or inline helpers. When used as a block helper, the block content is used as the first argument to the helper function. When used as an inline helper, the first argument is the value of the helper.
The helper names are inspired by the default string functions provided in multiple programming languages, such as Python and JavaScript, for their default string types.
The individual helpers are defined as an implementation detail and cannot be registered individually.
Parameters
Name |
Description |
hbs |
The Handlebars instance to register the helpers into |
Register type helpers into a Handlebars instance
Synopsis
Declared in <mrdocs/Support/Handlebars.hpp>
void
registerTypeHelpers(Handlebars& hbs);
Description
This function registers a number of common helpers that operate on types, such as identity, type checking, and type conversion.
Parameters
Name |
Description |
hbs |
The Handlebars instance to register the helpers into |
"relativize" helper function
Synopsis
Declared in <mrdocs/Support/Handlebars.hpp>
dom::Value
relativize_fn(
dom::Value to,
dom::Value from,
dom::Value context);
Description
The "relativize" helper makes the first path relative to the second path.
Return Value
A variant container for any kind of Dom value.
Parameters
Name |
Description |
to |
A variant container for any kind of Dom value. |
from |
A variant container for any kind of Dom value. |
context |
A variant container for any kind of Dom value. |
"select" helper function
Synopsis
Declared in <mrdocs/Support/Handlebars.hpp>
dom::Value
select_fn(
dom::Value const& condition,
dom::Value const& result_true,
dom::Value const& result_false);
Description
The "select" helper returns the second argument if the first argument is truthy, and the third argument otherwise.
Return Value
A variant container for any kind of Dom value.
Parameters
Name |
Description |
condition |
A variant container for any kind of Dom value. |
result_true |
A variant container for any kind of Dom value. |
result_false |
A variant container for any kind of Dom value. |
"year" helper function
Synopsis
Declared in <mrdocs/Support/Handlebars.hpp>
int
year_fn();
Description
The "year" helper returns the current year as an integer.
Return Value
The current year as an integer.
Types
Enums
Name |
Description |
Types of values. |
Functions
Name |
Description |
Return the first Value that is not truthy, or the last one. |
|
Return the first Value that is truthy, or the last one. |
|
Register a JavaScript helper function |
|
Swap two values. |
|
Return value as a string. |
|
Compare two values for equality. |
|
Inequality operators |
|
Compare two values for inequality. |
Synopsis
Declared in <mrdocs/Support/JavaScript.hpp>
struct Access;
Synopsis
Declared in <mrdocs/Support/JavaScript.hpp>
class Array;
Synopsis
Declared in <mrdocs/Support/JavaScript.hpp>
class Boolean;
An instance of a JavaScript interpreter.
Synopsis
Declared in <mrdocs/Support/JavaScript.hpp>
class Context;
Member Functions
Name |
Description |
|
Constructor. |
|
Destructor. |
|
Copy assignment. |
Friends
Name |
Description |
Description
This class represents a JavaScript interpreter context under which we can create Scope
objects to define variables and execute scripts.
A context represents a JavaScript heap where variables can be allocated and will be later garbage collected.
Each context is associated with a single heap allocated with default memory management.
Once the context is created, a Scope
in this context can be created to define variables and execute scripts.
See Also
Scope
Constructor.
Synopses
Declared in <mrdocs/Support/JavaScript.hpp>
Constructor.
Context();
Constructor.
Constructor.
Synopsis
Declared in <mrdocs/Support/JavaScript.hpp>
Context();
Description
Create a javascript execution context associated with its own garbage‐collected heap.
Constructor.
Synopsis
Declared in <mrdocs/Support/JavaScript.hpp>
Context(Context const& other) noexcept;
Description
Create a javascript execution context associated with the heap of another context.
Both contexts will share the same garbage‐collected heap, which is destroyed when the last context is destroyed.
While they share the heap, their scripts can include references to the same variables.
There are multi‐threading restrictions, however: only one native thread can execute any code within a single heap at any time.
Parameters
Name |
Description |
other |
The object to copy construct from |
Destructor.
Synopsis
Declared in <mrdocs/Support/JavaScript.hpp>
~Context();
Copy assignment.
Synopsis
Description
Create a javascript execution context associated with the heap of another context.
Both contexts will share the same garbage‐collected heap, which is destroyed when the last context is destroyed.
While they share the heap, their scripts can include references to the same variables.
There are multi‐threading restrictions, however: only one native thread can execute any code within a single heap at any time.
Return Value
Reference to the current object
Parameters
Name |
Description |
other |
The object to copy assign from |
Synopsis
Declared in <mrdocs/Support/JavaScript.hpp>
class Object;
Synopsis
Declared in <mrdocs/Support/JavaScript.hpp>
class Prop;
Synopses
Synopsis
Declared in <mrdocs/Support/JavaScript.hpp>
constexpr
Prop(std::string_view name) noexcept;
Parameters
Name |
Description |
name |
The object to construct from |
Construct from unsigned int
Synopsis
Declared in <mrdocs/Support/JavaScript.hpp>
constexpr
Prop(unsigned int index) noexcept;
Parameters
Name |
Description |
index |
The value to construct from |
Synopsis
Declared in <mrdocs/Support/JavaScript.hpp>
constexpr
bool
isIndex() const noexcept;
A JavaScript scope
Synopsis
Declared in <mrdocs/Support/JavaScript.hpp>
class Scope;
Member Functions
Name |
Description |
|
Constructor. |
|
Destructor. |
Compile a script and push results to stack. |
|
Compile a script and push results to stack. |
|
Compile and run a expression. |
|
Return a global object if it exists. |
|
Return the global object. |
|
Push a new array to the stack |
|
Push a boolean to the stack |
|
Push a double to the stack |
|
Push an integer to the stack |
|
Push a new object to the stack |
|
Push a string to the stack |
|
Compile and run a script. |
|
Set a global object. |
Friends
Name |
Description |
Description
This class represents a JavaScript scope under which we can define variables and execute scripts.
Each scope is a section of the context heap in the JavaScript interpreter. A javascript variable is defined by creating a Value
that is associated with this Scope, i.e., subsection of the context heap.
When a scope is destroyed, the heap section is popped and all variables defined in that scope are invalidated.
For this reason, two scopes of the same context heap cannot be manipulated at the same time.
Constructor.
Synopsis
Declared in <mrdocs/Support/JavaScript.hpp>
Scope(Context const& ctx) noexcept;
Description
Construct a scope for the given context.
Variables defined in this scope will be allocated on top of the specified context heap.
When the Scope is destroyed, the variables defined in this scope will be popped from the heap.
Parameters
Name |
Description |
ctx |
The context to use. |
Destructor.
Synopsis
Declared in <mrdocs/Support/JavaScript.hpp>
~Scope();
Description
All variables defined in this scope are popped from the internal context heap.
There should be no Value
objects associated with this scope when it is destroyed.
Compile a script and push results to stack.
Synopsis
Declared in <mrdocs/Support/JavaScript.hpp>
Expected<Value>
compile_function(std::string_view jsCode);
Description
Compile ECMAScript source code that defines a function and return the compiled function object.
Unlike the script()
function, the code is not executed. A compiled function with the specified number of arguments that can be executed is returned.
If the function code contains more than one function, the return value is the first function compiled.
Return Value
A function object that can be called. The function object has the number of arguments defined in the code. If the code does not define a function, an error is returned.
Parameters
Name |
Description |
jsCode |
The JavaScript code to compile. |
Compile a script and push results to stack.
Synopsis
Declared in <mrdocs/Support/JavaScript.hpp>
Expected<Value>
compile_script(std::string_view jsCode);
Description
Compile ECMAScript source code and return it as a compiled function object that executes it.
Unlike the script()
function, the code is not executed. A compiled function that can be executed is returned.
The returned function has zero arguments and executes as if we called script()
.
The script returns an implicit return value equivalent to the last non‐empty statement value in the code.
Return Value
A function object that can be called. The function object has zero arguments.
Parameters
Name |
Description |
jsCode |
The JavaScript code to compile. |
Compile and run a expression.
Synopsis
Declared in <mrdocs/Support/JavaScript.hpp>
Expected<Value>
eval(std::string_view jsCode);
Description
This function compiles and executes the specified JavaScript code. The script can be used to execute commands or define global variables in the parent context.
It evaluates the ECMAScript source code and converts any internal errors to Error
.
Return Value
A container holding an error or a value.
Parameters
Name |
Description |
jsCode |
The JavaScript code to execute. |
Return a global object if it exists.
Synopsis
Declared in <mrdocs/Support/JavaScript.hpp>
Expected<Value>
getGlobal(std::string_view name);
Description
This function returns a Value
that represents a global variable in the parent context.
If the variable does not exist, an error is returned.
Return Value
a global object if it exists.
Parameters
Name |
Description |
name |
The name of the global variable. |
Return the global object.
Synopsis
Declared in <mrdocs/Support/JavaScript.hpp>
Value
getGlobalObject();
Description
This function returns a Value
that represents the global object in the parent context.
The global object is the root of the ECMAScript object hierarchy and is the value returned by the global this
expression.
If the global object does not exist, an error is returned.
Return Value
the global object.
Push a new array to the stack
Synopsis
Declared in <mrdocs/Support/JavaScript.hpp>
Value
pushArray();
Return Value
An ECMAScript value.
Push a boolean to the stack
Synopsis
Declared in <mrdocs/Support/JavaScript.hpp>
Value
pushBoolean(bool value);
Return Value
A Value representing the boolean.
Parameters
Name |
Description |
value |
The boolean value to push. |
Push a double to the stack
Synopsis
Declared in <mrdocs/Support/JavaScript.hpp>
Value
pushDouble(double value);
Return Value
A Value representing the double.
Parameters
Name |
Description |
value |
The double value to push. |
Push an integer to the stack
Synopsis
Declared in <mrdocs/Support/JavaScript.hpp>
Value
pushInteger(int64_t value);
Return Value
A Value representing the integer.
Parameters
Name |
Description |
value |
The integer value to push. |
Push a new object to the stack
Synopsis
Declared in <mrdocs/Support/JavaScript.hpp>
Value
pushObject();
Return Value
An ECMAScript value.
Push a string to the stack
Synopsis
Declared in <mrdocs/Support/JavaScript.hpp>
Value
pushString(std::string_view value);
Return Value
A Value representing the string.
Parameters
Name |
Description |
value |
The string value to push. The string is copied to the internal heap. |
Compile and run a script.
Synopsis
Declared in <mrdocs/Support/JavaScript.hpp>
Expected<void>
script(std::string_view jsCode);
Description
This function compiles and executes the specified JavaScript code. The script can be used to execute commands or define global variables in the parent context.
It evaluates the ECMAScript source code and converts any internal errors to Error
.
Return Value
A container holding an error or a value.
Parameters
Name |
Description |
jsCode |
The JavaScript code to execute. |
Set a global object.
Synopsis
Declared in <mrdocs/Support/JavaScript.hpp>
void
setGlobal(
std::string_view name,
dom::Value const& value);
Parameters
Name |
Description |
name |
The name of the global variable. |
value |
The value to set. |
Synopsis
Declared in <mrdocs/Support/JavaScript.hpp>
class String;
An ECMAScript value.
Synopsis
Declared in <mrdocs/Support/JavaScript.hpp>
class Value;
Member Functions
Name |
Description |
|
Constructor |
|
Destructor |
Assignment operators |
|
Invoke a function with variadic arguments. |
|
Invoke a function. |
|
Invoke a method. |
|
Return if an Array or Object is empty. |
|
Return true if a key exists. |
|
|
|
Return the underlying array. |
|
Return the underlying boolean value. |
|
Return the value as a dom::Value |
|
Return the underlying double value. |
|
Return the underlying array. |
|
Return the underlying integer value. |
|
Return the underlying object. |
|
Return the underlying string |
|
Check if the value is an array. |
|
Check if the value is a boolean. |
|
Check if the value is a floating point number. |
|
Check if the value is a function. |
|
Check if the value is an integer number. |
|
Check if the value is null. |
|
Check if the value is a number. |
|
Check if the value is an object. |
|
Check if the value is a string. |
|
Determine if a value is truthy |
|
Check if the value is undefined. |
|
Lookup a sequence of keys. |
|
Invoke a function. |
|
Set or replace the value for a given key. |
|
Set "log" property |
|
Return if an Array or Object is empty. |
|
Swap two values. |
|
Return the type of the value. |
|
Return the string. |
|
Determine if a value is truthy |
Protected Member Functions
Name |
Description |
|
Constructor |
Protected Data Members
Name |
Friends
Name |
Description |
Return value as a string. |
|
Return the first Value that is not truthy, or the last one. |
|
Return the first Value that is truthy, or the last one. |
|
Compare two values for inequality. |
|
Inequality operator |
|
Compare two values for equality. |
|
Swap two values. |
|
Description
This class represents a value in the JavaScript interpreter.
A value is a variable that is defined in a Scope
. It can be a primitive type or an object.
The user is responsible for ensuring that the lifetime of a Value
does not exceed the lifetime of the Scope
that created it.
A value can be converted to a DOM value using the getDom
function.
See Also
Scope
Type
Constructor
Synopses
Declared in <mrdocs/Support/JavaScript.hpp>
Constructor
Value() noexcept;
Constructor
Constructor
Constructor
Synopsis
Declared in <mrdocs/Support/JavaScript.hpp>
Value() noexcept;
Description
Construct a value that is not associated with a Scope
.
The value is undefined.
Constructor
Synopsis
Declared in <mrdocs/Support/JavaScript.hpp>
Value(Value const& other);
Description
The function pushes a duplicate of value to the stack and associates the new value the top of the stack.
Parameters
Name |
Description |
other |
The object to copy construct from |
Constructor
Synopsis
Declared in <mrdocs/Support/JavaScript.hpp>
Value(Value&& other) noexcept;
Description
The function associates the existing value with this object.
Parameters
Name |
Description |
other |
The object to move construct from |
Destructor
Synopsis
Declared in <mrdocs/Support/JavaScript.hpp>
~Value();
Description
Synopses
Declared in <mrdocs/Support/JavaScript.hpp>
Copy assignment.
Value&
operator=(Value const& other);
Move assignment.
Value&
operator=(Value&& other) noexcept;
Copy assignment.
Synopsis
Description
The function pushes a duplicate of value to the stack and associates the new value the top of the stack.
Return Value
Reference to the current object
Parameters
Name |
Description |
other |
The object to copy assign from |
Move assignment.
Synopsis
Description
The function associates the existing value with this object.
Return Value
Reference to the current object
Parameters
Name |
Description |
other |
The object to move assign from |
Invoke a function with variadic arguments.
Synopsis
Declared in <mrdocs/Support/JavaScript.hpp>
Expected<Value>
apply(std::span<dom::Value> args) const;
Return Value
The return value of the method.
Parameters
Name |
Description |
args |
Zero or more arguments to pass to the method. |
Invoke a function.
Synopsis
Declared in <mrdocs/Support/JavaScript.hpp>
template<std::convertible_to<dom::Value>... Args>
Expected<Value>
call(Args...&&... args) const;
Return Value
The return value of the method.
Parameters
Name |
Description |
args |
Zero or more arguments to pass to the method. |
Invoke a method.
Synopsis
Declared in <mrdocs/Support/JavaScript.hpp>
template<class... Args>
Expected<Value>
callProp(
std::string_view prop,
Args...&&... args) const;
Return Value
The return value of the method.
Parameters
Name |
Description |
prop |
The property name of the method to call. |
args |
Zero or more arguments to pass to the method. |
Return if an Array or Object is empty.
Synopsis
Declared in <mrdocs/Support/JavaScript.hpp>
bool
empty() const;
Return Value
if an Array or Object is empty.
Return true if a key exists.
Synopsis
Declared in <mrdocs/Support/JavaScript.hpp>
bool
exists(std::string_view key) const;
Return Value
true
if the key exists, false
otherwise.
Parameters
Name |
Description |
key |
The key to check for. |
get
overloads
Synopses
Declared in <mrdocs/Support/JavaScript.hpp>
Return the element at a given index.
Return the element for a given key.
Return the element at a given index or key.
Value
get(dom::Value const& i) const;
Return Value
-
The element at the given index, or a Value of type
Kind::Undefined
if the index is out of range. -
The element for the given key, or a Value of type Kind::Undefined if the key is not found.
Parameters
Name |
Description |
i |
The index of the element to return. |
key |
The key to look up. |
Return the element at a given index.
Synopsis
Declared in <mrdocs/Support/JavaScript.hpp>
Value
get(std::size_t i) const;
Return Value
The element at the given index, or a Value of type Kind::Undefined
if the index is out of range.
Parameters
Name |
Description |
i |
The index of the element to return. |
Return the element for a given key.
Synopsis
Declared in <mrdocs/Support/JavaScript.hpp>
Value
get(std::string_view key) const;
Description
If the Value is not an object, or the key is not found, a Value of type Kind::Undefined is returned.
Return Value
The element for the given key, or a Value of type Kind::Undefined if the key is not found.
Parameters
Name |
Description |
key |
The key to look up. |
Return the element at a given index or key.
Synopsis
Declared in <mrdocs/Support/JavaScript.hpp>
Value
get(dom::Value const& i) const;
Return Value
the element at a given index or key.
Parameters
Name |
Description |
i |
A variant container for any kind of Dom value. |
Synopsis
Declared in <mrdocs/Support/JavaScript.hpp>
template<std::convertible_to<std::string_view> S>
Value
get(S const& key) const;
Return the underlying array.
Synopsis
Declared in <mrdocs/Support/JavaScript.hpp>
dom::Array
getArray() const noexcept;
Description
Note
|
Behaviour is undefined if !isArray()
|
Return Value
the underlying array.
Return the underlying boolean value.
Synopsis
Declared in <mrdocs/Support/JavaScript.hpp>
bool
getBool() const noexcept;
Description
Note
|
Behaviour is undefined if !isBoolean()
|
Return Value
the underlying boolean value.
Return the value as a dom::Value
Synopsis
Declared in <mrdocs/Support/JavaScript.hpp>
dom::Value
getDom() const;
Description
This function returns the value as a dom::Value
.
If the value is a primitive type, it is converted to a DOM primitive.
If the value is an object, a type with reference semantics to access the underlying DOM object is returned.
Return Value
the value as a dom::Value
Return the underlying double value.
Synopsis
Declared in <mrdocs/Support/JavaScript.hpp>
double
getDouble() const noexcept;
Description
Note
|
Behaviour is undefined if !isNumber()
|
Return Value
the underlying double value.
Return the underlying array.
Synopsis
Declared in <mrdocs/Support/JavaScript.hpp>
dom::Function
getFunction() const noexcept;
Description
Note
|
Behaviour is undefined if !isFunction()
|
Return Value
the underlying array.
Return the underlying integer value.
Synopsis
Declared in <mrdocs/Support/JavaScript.hpp>
int64_t
getInteger() const noexcept;
Description
Note
|
Behaviour is undefined if !isNumber()
|
Return Value
the underlying integer value.
Return the underlying object.
Synopsis
Declared in <mrdocs/Support/JavaScript.hpp>
dom::Object
getObject() const noexcept;
Description
Note
|
Behaviour is undefined if !isObject()
|
Return Value
the underlying object.
Return the underlying string
Synopsis
Declared in <mrdocs/Support/JavaScript.hpp>
std::string_view
getString() const;
Description
This function returns the value as a string.
This function performs no coercions. If the value is not a string, it is not converted to a string.
Note
|
Behaviour is undefined if !isString()
|
Return Value
the underlying string
Check if the value is an array.
Synopsis
Declared in <mrdocs/Support/JavaScript.hpp>
bool
isArray() const noexcept;
Return Value
true
if the value is an array, false
otherwise
Check if the value is a boolean.
Synopsis
Declared in <mrdocs/Support/JavaScript.hpp>
bool
isBoolean() const noexcept;
Return Value
true
if the value is a boolean, false
otherwise
Check if the value is a floating point number.
Synopsis
Declared in <mrdocs/Support/JavaScript.hpp>
bool
isDouble() const noexcept;
Return Value
true
if the value is a number but not an integer, false
otherwise
Check if the value is a function.
Synopsis
Declared in <mrdocs/Support/JavaScript.hpp>
bool
isFunction() const noexcept;
Return Value
true
if the value is a function, false
otherwise
Check if the value is an integer number.
Synopsis
Declared in <mrdocs/Support/JavaScript.hpp>
bool
isInteger() const noexcept;
Description
All numbers are internally represented by IEEE doubles, which are capable of representing all integers up to 53 bits accurately.
This function returns true
if the value is a number with no precision loss when representing an integer.
When isNumber()
is true
, the function behaves as if evaluating the condition d == static_cast<double>(static_cast<int>(d))
where d
is the result of toDouble()
.
Return Value
true
if the value is a number with no fractional part, false
otherwise
Check if the value is null.
Synopsis
Declared in <mrdocs/Support/JavaScript.hpp>
bool
isNull() const noexcept;
Return Value
true
if the value is null, false
otherwise
Check if the value is a number.
Synopsis
Declared in <mrdocs/Support/JavaScript.hpp>
bool
isNumber() const noexcept;
Description
In ECMA, the number type is an IEEE double, including +/‐ Infinity and NaN values.
Zero sign is also preserved.
An IEEE double can represent all integers up to 53 bits accurately.
The user should not rely on NaNs preserving their exact non‐normalized form.
Return Value
true
if the value is a number, false
otherwise
Check if the value is an object.
Synopsis
Declared in <mrdocs/Support/JavaScript.hpp>
bool
isObject() const noexcept;
Description
Check if the value is an object but not an array or function.
While in ECMA anything with properties is an object, this function returns false
for arrays and functions.
Properties are key‐value pairs with a string key and an arbitrary value, including undefined.
Return Value
true
if the value is an object, false
otherwise
Check if the value is a string.
Synopsis
Declared in <mrdocs/Support/JavaScript.hpp>
bool
isString() const noexcept;
Return Value
true
if the value is a string, false
otherwise
Determine if a value is truthy
Synopsis
Declared in <mrdocs/Support/JavaScript.hpp>
bool
isTruthy() const noexcept;
Description
A value is truthy if it is a boolean and is true, a number and not zero, or an non‐empty string, array or object.
Return Value
true
if the value is truthy, false
otherwise
Check if the value is undefined.
Synopsis
Declared in <mrdocs/Support/JavaScript.hpp>
bool
isUndefined() const noexcept;
Return Value
true
if the value is undefined, false
otherwise
Lookup a sequence of keys.
Synopsis
Declared in <mrdocs/Support/JavaScript.hpp>
Value
lookup(std::string_view keys) const;
Description
This function is equivalent to calling get
multiple times, once for each key in the sequence of dot‐separated keys.
Return Value
The value at the end of the sequence, or a Value of type Kind::Undefined if any key is not found.
Parameters
Name |
Description |
keys |
A sequence of keys separated by dots. |
Invoke a function.
Synopsis
Declared in <mrdocs/Support/JavaScript.hpp>
template<class... Args>
Value
operator()(Args...&&... args) const;
Return Value
The return value of the method.
Parameters
Name |
Description |
args |
Zero or more arguments to pass to the method. |
Set or replace the value for a given key.
Synopses
Declared in <mrdocs/Support/JavaScript.hpp>
Set or replace the value for a given key.
Set or replace the value for a given key.
void
set(
std::string_view key,
dom::Value const& value) const;
Parameters
Name |
Description |
key |
The key to set. |
value |
The value to set. |
Set or replace the value for a given key.
Synopsis
Declared in <mrdocs/Support/JavaScript.hpp>
void
set(
std::string_view key,
Value const& value) const;
Parameters
Name |
Description |
key |
The key to set. |
value |
The value to set. |
Set or replace the value for a given key.
Synopsis
Declared in <mrdocs/Support/JavaScript.hpp>
void
set(
std::string_view key,
dom::Value const& value) const;
Parameters
Name |
Description |
key |
The key to set. |
value |
The value to set. |
Set "log" property
Synopsis
Declared in <mrdocs/Support/JavaScript.hpp>
void
setlog();
Description
This function sets the "log" property in the object.
The "log" property is populated with a function that takes two javascript arguments (level, message)
where level
is an unsigned integer and message
is a string.
The mrdocs library function clang::mrdocs::report::print
is then called with these two arguments to report a message to the console.
Return if an Array or Object is empty.
Synopsis
Declared in <mrdocs/Support/JavaScript.hpp>
std::size_t
size() const;
Return Value
if an Array or Object is empty.
Swap two values.
Synopsis
Declared in <mrdocs/Support/JavaScript.hpp>
void
swap(Value& other) noexcept;
Parameters
Name |
Description |
other |
An ECMAScript value. |
Return the type of the value.
Synopsis
Declared in <mrdocs/Support/JavaScript.hpp>
Type
type() const noexcept;
Description
This function returns the JavaScript type of the value.
The type can represent a primitive type (such as boolean, number, and string) or an object.
When the type is an object, the return type also classifies the object as an array or function.
An array is an object with the internal ECMAScript class Array
or a Proxy wrapping an Array
.
A function is an object with the internal ECMAScript class Function
.
Return Value
the type of the value.
Return the string.
Synopsis
Declared in <mrdocs/Support/JavaScript.hpp>
explicit
operator std::string() const noexcept;
Return Value
the string.
Determine if a value is truthy
Synopsis
Declared in <mrdocs/Support/JavaScript.hpp>
explicit
operator bool() const noexcept;
Description
A value is truthy if it is a boolean and is true, a number and not zero, or an non‐empty string, array or object.
Return Value
true
if the value is truthy, false
otherwise
Constructor
Synopsis
Declared in <mrdocs/Support/JavaScript.hpp>
Value(
int,
Scope&) noexcept;
Synopsis
Declared in <mrdocs/Support/JavaScript.hpp>
int idx_;
Synopsis
Declared in <mrdocs/Support/JavaScript.hpp>
Scope* scope_;
Types of values.
Synopsis
Declared in <mrdocs/Support/JavaScript.hpp>
enum class Type : int;
Members
Name |
Description |
|
The value is undefined |
|
The value is null |
|
The value is a boolean |
|
The value is a number |
|
The value is a string |
|
The value is a function |
|
The value is an array |
|
The value is an array |
Return the first Value that is not truthy, or the last one.
Synopses
Declared in <mrdocs/Support/JavaScript.hpp>
Return the first Value that is not truthy, or the last one.
Value
operator&&(
Value const& lhs,
Value const& rhs);
template<std::convertible_to<Value> S>
auto
operator&&(
S const& lhs,
Value const& rhs) noexcept;
template<std::convertible_to<Value> S>
auto
operator&&(
Value const& lhs,
S const& rhs) noexcept;
Return the first Value that is not truthy, or the last one.
Synopsis
Description
This function is equivalent to the JavaScript &&
operator.
Return Value
the first Value that is not truthy, or the last one.
Parameters
Name |
Description |
lhs |
The left operand |
rhs |
The right operand |
Synopsis
Declared in <mrdocs/Support/JavaScript.hpp>
template<std::convertible_to<Value> S>
auto
operator&&(
S const& lhs,
Value const& rhs) noexcept;
Synopsis
Declared in <mrdocs/Support/JavaScript.hpp>
template<std::convertible_to<Value> S>
auto
operator&&(
Value const& lhs,
S const& rhs) noexcept;
Return the first Value that is truthy, or the last one.
Synopses
Declared in <mrdocs/Support/JavaScript.hpp>
Return the first Value that is truthy, or the last one.
Value
operator||(
Value const& lhs,
Value const& rhs);
template<std::convertible_to<Value> S>
auto
operator||(
S const& lhs,
Value const& rhs) noexcept;
template<std::convertible_to<Value> S>
auto
operator||(
Value const& lhs,
S const& rhs) noexcept;
Return the first Value that is truthy, or the last one.
Synopsis
Description
This function is equivalent to the JavaScript ||
operator.
Return Value
the first Value that is truthy, or the last one.
Parameters
Name |
Description |
lhs |
The left operand |
rhs |
The right operand |
Synopsis
Declared in <mrdocs/Support/JavaScript.hpp>
template<std::convertible_to<Value> S>
auto
operator||(
S const& lhs,
Value const& rhs) noexcept;
Synopsis
Declared in <mrdocs/Support/JavaScript.hpp>
template<std::convertible_to<Value> S>
auto
operator||(
Value const& lhs,
S const& rhs) noexcept;
Register a JavaScript helper function
Synopsis
Declared in <mrdocs/Support/JavaScript.hpp>
Expected<void, Error>
registerHelper(
clang::mrdocs::Handlebars& hbs,
std::string_view name,
Context& ctx,
std::string_view script);
Description
This function registers a JavaScript function as a helper function that can be called from Handlebars templates.
Return Value
A container holding an error or a value.
Parameters
Name |
Description |
hbs |
The Handlebars instance to register the helper into |
name |
The name of the helper function |
ctx |
The JavaScript context to use |
script |
The JavaScript code that defines the helper function |
Swap two values.
Synopsis
Parameters
Name |
Description |
v0 |
An ECMAScript value. |
v1 |
An ECMAScript value. |
Return value as a string.
Synopsis
Declared in <mrdocs/Support/JavaScript.hpp>
std::string
toString(Value const& value);
Description
This function coerces any value to a string.
Return Value
value as a string.
Parameters
Name |
Description |
value |
An ECMAScript value. |
Compare two values for equality.
Synopses
Declared in <mrdocs/Support/JavaScript.hpp>
template<std::convertible_to<Value> S>
auto
operator==(
Value const& lhs,
S const& rhs) noexcept;
template<std::convertible_to<Value> S>
auto
operator==(
S const& lhs,
Value const& rhs) noexcept;
Compare two values for equality.
bool
operator==(
Value const& lhs,
Value const& rhs) noexcept;
Synopsis
Declared in <mrdocs/Support/JavaScript.hpp>
template<std::convertible_to<Value> S>
auto
operator==(
Value const& lhs,
S const& rhs) noexcept;
Synopsis
Declared in <mrdocs/Support/JavaScript.hpp>
template<std::convertible_to<Value> S>
auto
operator==(
S const& lhs,
Value const& rhs) noexcept;
Compare two values for equality.
Synopsis
Description
This operator uses strict equality, meaning that the types must match exactly, and for objects and arrays the children must match exactly.
The ==
operator behaves differently for objects compared to primitive data types like numbers and strings. When comparing objects using ==
, it checks for reference equality, not structural equality.
This means that two objects are considered equal with ===
only if they reference the exact same object in memory.
Note
|
In JavaScript, this is equivalent to the === operator, which does not perform type conversions.
|
Return Value
true
if the objects are equal, false
otherwise
Parameters
Name |
Description |
lhs |
The left operand |
rhs |
The right operand |
Inequality operators
Synopses
Declared in <mrdocs/Support/JavaScript.hpp>
template<std::convertible_to<Value> S>
auto
operator!=(
Value const& lhs,
S const& rhs) noexcept;
template<std::convertible_to<Value> S>
auto
operator!=(
S const& lhs,
Value const& rhs) noexcept;
Inequality operator
bool
operator!=(
Value const& lhs,
Value const& rhs) noexcept;
Synopsis
Declared in <mrdocs/Support/JavaScript.hpp>
template<std::convertible_to<Value> S>
auto
operator!=(
Value const& lhs,
S const& rhs) noexcept;
Synopsis
Declared in <mrdocs/Support/JavaScript.hpp>
template<std::convertible_to<Value> S>
auto
operator!=(
S const& lhs,
Value const& rhs) noexcept;
Inequality operator
Synopsis
Return Value
true
if the objects are not equal, false
otherwise
Parameters
Name |
Description |
lhs |
The left operand |
rhs |
The right operand |
Compare two values for inequality.
Synopsis
Return Value
The relative order of the objects
Parameters
Name |
Description |
lhs |
The left operand |
rhs |
The right operand |
Types
Name |
Description |
A reference to an instance of a Lua interpreter. |
|
A Lua function. |
|
A lazy container to push values to the Lua stack. |
|
A Lua string. |
|
A Lua table. |
|
A Lua value. |
|
A null‐terminated string. |
|
Enums
Name |
Description |
Types of values. |
Synopsis
Declared in <mrdocs/Support/Lua.hpp>
using FunctionPtr = Value(*)(std::vector<Value>);
Synopsis
Declared in <mrdocs/Support/Lua.hpp>
struct Access;
A reference to an instance of a Lua interpreter.
Synopsis
Declared in <mrdocs/Support/Lua.hpp>
class Context;
Member Functions
Name |
Description |
|
Constructor. |
|
Destructor. |
|
Copy assignment. |
Friends
Name |
Description |
Constructor.
Synopses
Declared in <mrdocs/Support/Lua.hpp>
Constructor.
Context();
Constructor.
Constructor.
Synopsis
Declared in <mrdocs/Support/Lua.hpp>
Context();
Constructor.
Synopsis
Declared in <mrdocs/Support/Lua.hpp>
Context(Context const& other) noexcept;
Parameters
Name |
Description |
other |
The object to copy construct from |
Destructor.
Synopsis
Declared in <mrdocs/Support/Lua.hpp>
~Context();
Copy assignment.
Synopsis
Return Value
Reference to the current object
Parameters
Name |
Description |
other |
The object to copy assign from |
A Lua function.
Synopsis
Declared in <mrdocs/Support/Lua.hpp>
class Function
: public Value
Base Classes
Name |
Description |
A Lua value. |
Member Functions
Name |
Description |
|
Construct from |
Invoke the value as a function. |
|
Return a string representation. |
|
Invoke the value as a function. |
|
Protected Data Members
Friends
Name |
Description |
Construct from Value
Synopsis
Declared in <mrdocs/Support/Lua.hpp>
Function(Value value);
Parameters
Name |
Description |
value |
The object to construct from |
A lazy container to push values to the Lua stack.
Synopsis
Declared in <mrdocs/Support/Lua.hpp>
class Param;
Member Functions
Name |
Description |
|
Constructors |
|
Destructor |
|
Copy assignment operator |
Data Members
Name |
|
|
|
|
|
|
Friends
Name |
Description |
Constructors
Synopses
Declared in <mrdocs/Support/Lua.hpp>
Copy constructor
Construct from Array
Param(dom::Array arr) noexcept;
Construct from Object
Param(dom::Object obj) noexcept;
Construct from int64_t
Param(int64_t value) noexcept;
Construct from nullptr_t
Param(std::nullptr_t value) noexcept;
Construct from string_view
Param(std::string_view s) noexcept;
Construct from Value
Construct from Value
Param(dom::Value const& value) noexcept;
Construct from char
Param(char const* s) noexcept;
Construct from Enum
template<class Enum>
requires std::is_enum_v<Enum>
Param(Enum v) noexcept;
Construct from Boolean
template<class Boolean>
requires std::is_same_v<Boolean, bool>
Param(Boolean const& b) noexcept;
Construct from String
template<class String>
requires std::is_convertible_v<
String, std::string_view>
Param(String const& s);
Copy constructor
Synopsis
Declared in <mrdocs/Support/Lua.hpp>
Param(Param const& other) = delete;
Parameters
Name |
Description |
other |
The object to copy construct from |
Construct from Array
Synopsis
Declared in <mrdocs/Support/Lua.hpp>
Param(dom::Array arr) noexcept;
Parameters
Name |
Description |
arr |
The object to construct from |
Construct from Object
Synopsis
Declared in <mrdocs/Support/Lua.hpp>
Param(dom::Object obj) noexcept;
Parameters
Name |
Description |
obj |
The object to construct from |
Construct from int64_t
Synopsis
Declared in <mrdocs/Support/Lua.hpp>
Param(int64_t value) noexcept;
Parameters
Name |
Description |
value |
The object to construct from |
Construct from nullptr_t
Synopsis
Declared in <mrdocs/Support/Lua.hpp>
Param(std::nullptr_t value) noexcept;
Parameters
Name |
Description |
value |
The object to construct from |
Construct from string_view
Synopsis
Declared in <mrdocs/Support/Lua.hpp>
Param(std::string_view s) noexcept;
Parameters
Name |
Description |
s |
The object to construct from |
Construct from Value
Synopsis
Declared in <mrdocs/Support/Lua.hpp>
Param(Value const& value) noexcept;
Parameters
Name |
Description |
value |
The object to copy construct from |
Construct from Value
Synopsis
Declared in <mrdocs/Support/Lua.hpp>
Param(dom::Value const& value) noexcept;
Parameters
Name |
Description |
value |
The object to copy construct from |
Construct from char
Synopsis
Declared in <mrdocs/Support/Lua.hpp>
Param(char const* s) noexcept;
Parameters
Name |
Description |
s |
The value to construct from |
Construct from Enum
Synopsis
Declared in <mrdocs/Support/Lua.hpp>
template<class Enum>
requires std::is_enum_v<Enum>
Param(Enum v) noexcept;
Parameters
Name |
Description |
v |
The object to construct from |
Construct from Boolean
Synopsis
Declared in <mrdocs/Support/Lua.hpp>
template<class Boolean>
requires std::is_same_v<Boolean, bool>
Param(Boolean const& b) noexcept;
Parameters
Name |
Description |
b |
The object to copy construct from |
Construct from String
Synopsis
Declared in <mrdocs/Support/Lua.hpp>
template<class String>
requires std::is_convertible_v<
String, std::string_view>
Param(String const& s);
Parameters
Name |
Description |
s |
The object to copy construct from |
Destructor
Synopsis
Declared in <mrdocs/Support/Lua.hpp>
~Param();
Copy assignment operator
Synopsis
Return Value
Reference to the current object
Parameters
Name |
Description |
other |
The object to copy assign from |
Synopsis
Declared in <mrdocs/Support/Lua.hpp>
dom::Array arr_;
Synopsis
Declared in <mrdocs/Support/Lua.hpp>
bool b_;
Synopsis
Declared in <mrdocs/Support/Lua.hpp>
int i_;
Synopsis
Declared in <mrdocs/Support/Lua.hpp>
int index_;
Synopsis
Declared in <mrdocs/Support/Lua.hpp>
dom::Object obj_;
Synopsis
Declared in <mrdocs/Support/Lua.hpp>
std::string_view s_;
Synopsis
Declared in <mrdocs/Support/Lua.hpp>
class Scope;
Member Functions
Friends
Name |
Description |
Construct from Context
Synopsis
Declared in <mrdocs/Support/Lua.hpp>
Scope(Context const& ctx) noexcept;
Parameters
Name |
Description |
ctx |
The object to copy construct from |
Destructor
Synopsis
Declared in <mrdocs/Support/Lua.hpp>
~Scope();
Return a value from the global table if it exists.
Synopsis
Declared in <mrdocs/Support/Lua.hpp>
Expected<Value>
getGlobal(
std::string_view key,
std::source_location loc = source_location::current());
Return Value
The value if it exists, or an error.
Parameters
Name |
Description |
key |
The key to get. |
loc |
The source location of the call site. |
Return the global table.
Synopsis
Declared in <mrdocs/Support/Lua.hpp>
Table
getGlobalTable();
Return Value
the global table.
Load a Lua chunk
Synopses
Declared in <mrdocs/Support/Lua.hpp>
Load a Lua chunk
Expected<Function>
loadChunk(
std::string_view luaChunk,
std::source_location loc = source_location::current());
Load a Lua chunk
Expected<Function>
loadChunk(
std::string_view luaChunk,
zstring chunkName,
std::source_location loc = source_location::current());
Return Value
The function if successful, or an error.
Parameters
Name |
Description |
luaChunk |
The Lua chunk to load. |
loc |
The source location of the call site. |
chunkName |
The name of the chunk (used in error messages). |
Load a Lua chunk
Synopsis
Declared in <mrdocs/Support/Lua.hpp>
Expected<Function>
loadChunk(
std::string_view luaChunk,
std::source_location loc = source_location::current());
Return Value
The function if successful, or an error.
Parameters
Name |
Description |
luaChunk |
The Lua chunk to load. |
loc |
The source location of the call site. |
Load a Lua chunk
Synopsis
Declared in <mrdocs/Support/Lua.hpp>
Expected<Function>
loadChunk(
std::string_view luaChunk,
zstring chunkName,
std::source_location loc = source_location::current());
Return Value
The function if successful, or an error.
Parameters
Name |
Description |
luaChunk |
The Lua chunk to load. |
chunkName |
The name of the chunk (used in error messages). |
loc |
The source location of the call site. |
Run a Lua chunk.
Synopsis
Declared in <mrdocs/Support/Lua.hpp>
Expected<Function>
loadChunkFromFile(
std::string_view fileName,
std::source_location loc = source_location::current());
Return Value
The function if successful, or an error.
Parameters
Name |
Description |
fileName |
The name of the file to load. |
loc |
The source location of the call site. |
A Lua string.
Synopsis
Declared in <mrdocs/Support/Lua.hpp>
class String
: public Value
Base Classes
Name |
Description |
A Lua value. |
Member Functions
Name |
Description |
|
Constructors |
Invoke the value as a function. |
|
Return a string representation. |
|
Invoke the value as a function. |
|
Conversion to |
Protected Data Members
Friends
Name |
Description |
Constructors
Synopses
Declared in <mrdocs/Support/Lua.hpp>
Construct from Value
Construct from string_view
explicit
String(std::string_view s);
Construct from Value
Synopsis
Declared in <mrdocs/Support/Lua.hpp>
String(Value value);
Parameters
Name |
Description |
value |
The object to construct from |
Construct from string_view
Synopsis
Declared in <mrdocs/Support/Lua.hpp>
explicit
String(std::string_view s);
Parameters
Name |
Description |
s |
The object to construct from |
Synopsis
Declared in <mrdocs/Support/Lua.hpp>
std::string_view
get() const noexcept;
Synopsis
Declared in <mrdocs/Support/Lua.hpp>
std::string_view
operator*() const noexcept;
Conversion to string_view
Synopsis
Declared in <mrdocs/Support/Lua.hpp>
operator std::string_view() const noexcept;
Return Value
The object converted to string_view
A Lua table.
Synopsis
Declared in <mrdocs/Support/Lua.hpp>
class Table
: public Value
Base Classes
Name |
Description |
A Lua value. |
Member Functions
Name |
Description |
|
Constructors |
Invoke the value as a function. |
|
Return a string representation. |
|
Invoke the value as a function. |
|
Create or replace the value with a key. |
|
Protected Data Members
Friends
Name |
Description |
Constructors
Synopses
Declared in <mrdocs/Support/Lua.hpp>
Construct from Value
Construct from Scope
Constructor
Table(
Scope&,
dom::Object const& obj);
Construct from Value
Synopsis
Declared in <mrdocs/Support/Lua.hpp>
Table(Value value);
Parameters
Name |
Description |
value |
The object to construct from |
Construct from Scope
Synopsis
Declared in <mrdocs/Support/Lua.hpp>
explicit
Table(Scope& scope);
Parameters
Name |
Description |
scope |
The object to copy construct from |
Constructor
Synopsis
Declared in <mrdocs/Support/Lua.hpp>
Table(
Scope&,
dom::Object const& obj);
Parameters
Name |
Description |
obj |
A container of key and value pairs. |
Synopsis
Declared in <mrdocs/Support/Lua.hpp>
Value
get(std::string_view key) const;
Create or replace the value with a key.
Synopsis
Declared in <mrdocs/Support/Lua.hpp>
void
set(
std::string_view key,
Param value) const;
Parameters
Name |
Description |
key |
The key to set. |
value |
The value to set. |
A Lua value.
Synopsis
Declared in <mrdocs/Support/Lua.hpp>
class Value;
Member Functions
Protected Member Functions
Name |
Description |
|
Constructor |
Protected Data Members
Friends
Name |
Description |
Derived Classes
Synopses
Declared in <mrdocs/Support/Lua.hpp>
Constructor.
Value() noexcept;
Constructor.
Constructor.
Parameters
Name |
Description |
other |
The value to copy. |
Constructor.
Synopsis
Declared in <mrdocs/Support/Lua.hpp>
Value() noexcept;
Description
Default constructed values have no scope or assigned stack index and are equivalent to the value Nil.
Constructor.
Synopsis
Declared in <mrdocs/Support/Lua.hpp>
Value(Value const& other);
Description
The new value will be assigned a new stack index which has the same underlying value as other
.
Parameters
Name |
Description |
other |
The value to copy. |
Constructor.
Synopsis
Declared in <mrdocs/Support/Lua.hpp>
Value(Value&& other) noexcept;
Description
The newly constructed object will acquire the same stack index, while the moved‐from object will become as if default‐constructed.
Parameters
Name |
Description |
other |
The object to move construct from |
Destructor.
Synopsis
Declared in <mrdocs/Support/Lua.hpp>
~Value();
Description
The Lua value will eventually be removed from the stack.
Invoke the value as a function.
Synopsis
Declared in <mrdocs/Support/Lua.hpp>
template<class... Args>
Expected<Value>
call(Args...&&... args);
Description
If the invocation fails the return value will contain the corresponding error.
Return Value
The return value of the function.
Parameters
Name |
Description |
args |
Zero or more values to pass to the function. |
Return a string representation.
Synopsis
Declared in <mrdocs/Support/Lua.hpp>
std::string
displayString() const;
Description
This function is used for diagnostics.
Return Value
a string representation.
Synopsis
Declared in <mrdocs/Support/Lua.hpp>
bool
isBoolean() const noexcept;
Synopsis
Declared in <mrdocs/Support/Lua.hpp>
bool
isFunction() const noexcept;
Synopsis
Declared in <mrdocs/Support/Lua.hpp>
bool
isNil() const noexcept;
Synopsis
Declared in <mrdocs/Support/Lua.hpp>
bool
isNumber() const noexcept;
Synopsis
Declared in <mrdocs/Support/Lua.hpp>
bool
isString() const noexcept;
Synopsis
Declared in <mrdocs/Support/Lua.hpp>
bool
isTable() const noexcept;
Invoke the value as a function.
Synopsis
Declared in <mrdocs/Support/Lua.hpp>
template<class... Args>
Value
operator()(Args...&&... args);
Return Value
Another instance of the object
Parameters
Name |
Description |
args |
Zero or more values to pass to the function. |
Synopsis
Synopsis
Declared in <mrdocs/Support/Lua.hpp>
Value(
int,
Scope&) noexcept;
Synopsis
Declared in <mrdocs/Support/Lua.hpp>
int index_;
Synopsis
Declared in <mrdocs/Support/Lua.hpp>
Scope* scope_;
A null‐terminated string.
Synopsis
Declared in <mrdocs/Support/Lua.hpp>
class zstring;
Member Functions
Name |
Description |
|
Constructors |
Constructors
Synopses
Synopsis
Declared in <mrdocs/Support/Lua.hpp>
zstring(std::string_view s);
Parameters
Name |
Description |
s |
The object to construct from |
Construct from string
Synopsis
Declared in <mrdocs/Support/Lua.hpp>
zstring(std::string const& s);
Parameters
Name |
Description |
s |
The object to copy construct from |
Construct from char
Synopsis
Declared in <mrdocs/Support/Lua.hpp>
zstring(char const* s) noexcept;
Parameters
Name |
Description |
s |
The value to construct from |
Synopsis
Declared in <mrdocs/Support/Lua.hpp>
char const*
c_str() const noexcept;
Types of values.
Synopsis
Declared in <mrdocs/Support/Lua.hpp>
enum class Type : int;
Members
Name |
Description |
|
The value is nil |
|
The value is a boolean |
|
The value is a number |
|
The value is a string |
|
The value is a table |
|
The value is a function |
Types
Enums
Name |
Description |
Severity levels attached to reported messags. |
Functions
Name |
Description |
Report a message to the console. |
|
Report a message to the console. |
|
Report a message to the console. |
|
Report a message to the console. |
|
Format a message to the console. |
|
Report a message to the console. |
|
Set the minimum threshold level for reporting. |
|
If true, source location information will be printed with warnings, errors, and fatal messages. |
|
Report a message to the console. |
|
Report a message to the console. |
Variables
Name |
Description |
Holds current statistics on reported messages. |
Parameter type that adds a source location to a value.
Synopsis
Declared in <mrdocs/Support/Report.hpp>
template<class T>
struct Located;
Member Functions
Name |
|
Non-Member Functions
Synopsis
Declared in <mrdocs/Support/Report.hpp>
template<class Arg>
requires std::is_constructible_v<T, Arg>
Located(
Arg&& arg,
std::source_location const& loc = source_location::current());
Synopsis
Declared in <mrdocs/Support/Report.hpp>
T value;
Synopsis
Declared in <mrdocs/Support/Report.hpp>
std::source_location where;
Provides statistics on the number of reported messages.
Synopsis
Declared in <mrdocs/Support/Report.hpp>
struct Results;
Data Members
Synopsis
Declared in <mrdocs/Support/Report.hpp>
std::size_t debugCount;
Synopsis
Declared in <mrdocs/Support/Report.hpp>
std::size_t errorCount;
Synopsis
Declared in <mrdocs/Support/Report.hpp>
std::size_t fatalCount;
Synopsis
Declared in <mrdocs/Support/Report.hpp>
std::size_t infoCount;
Synopsis
Declared in <mrdocs/Support/Report.hpp>
std::size_t traceCount;
Synopsis
Declared in <mrdocs/Support/Report.hpp>
std::size_t warnCount;
Severity levels attached to reported messags.
Synopsis
Declared in <mrdocs/Support/Report.hpp>
enum class Level : int;
Members
Name |
Description |
|
Programming trace messages |
|
Debug messages |
|
Informational messages |
|
Warning messages |
|
Error messages |
|
Fatal error messages |
Non-Member Functions
Name |
Description |
Format a message to the console. |
|
Report a message to the console. |
|
Set the minimum threshold level for reporting. |
Report a message to the console.
Synopsis
Declared in <mrdocs/Support/Report.hpp>
template<class... Args>
void
debug(
Located<std::string_view> format,
Args...&&... args);
Parameters
Name |
Description |
format |
The format string. |
args |
Optional additional arguments |
Report a message to the console.
Synopsis
Declared in <mrdocs/Support/Report.hpp>
template<class... Args>
void
error(
Located<std::string_view> format,
Args...&&... args);
Parameters
Name |
Description |
format |
The format string. |
args |
Optional additional arguments |
Report a message to the console.
Synopsis
Declared in <mrdocs/Support/Report.hpp>
template<class... Args>
void
fatal(
Located<std::string_view> format,
Args...&&... args);
Parameters
Name |
Description |
format |
The format string. |
args |
Optional additional arguments |
Synopsis
Declared in <mrdocs/Support/Report.hpp>
Level
getMinimumLevel() noexcept;
Report a message to the console.
Synopsis
Declared in <mrdocs/Support/Report.hpp>
template<class... Args>
void
info(
Located<std::string_view> format,
Args...&&... args);
Parameters
Name |
Description |
format |
The format string. |
args |
Optional additional arguments |
Format a message to the console.
Synopsis
Declared in <mrdocs/Support/Report.hpp>
template<class... Args>
void
log(
Level level,
Located<std::string_view> fs,
Args...&&... args);
Parameters
Name |
Description |
level |
0 to 4 The severity of the report. 0 is debug and 4 is fatal. |
fs |
The format string. |
args |
Optional additional arguments used to format a message to print. A trailing newline will be added to the message automatically. |
Report a message to the console.
Synopses
Declared in <mrdocs/Support/Report.hpp>
Report a message to the console.
void
print(std::string const& text);
Report a message to the console.
Parameters
Name |
Description |
text |
The message to print. A trailing newline will be added to the message automatically. |
level |
0 to 4 The severity of the report. 0 is debug and 4 is fatal. |
loc |
The source location of the report. If this value is null, no location is printed. |
Report a message to the console.
Synopsis
Declared in <mrdocs/Support/Report.hpp>
void
print(std::string const& text);
Parameters
Name |
Description |
text |
The message to print. A trailing newline will be added to the message automatically. |
Report a message to the console.
Synopsis
Parameters
Name |
Description |
level |
0 to 4 The severity of the report. 0 is debug and 4 is fatal. |
text |
The message to print. A trailing newline will be added to the message automatically. |
loc |
The source location of the report. If this value is null, no location is printed. |
e |
Holds the description of an error, or success. |
Set the minimum threshold level for reporting.
Synopsis
Declared in <mrdocs/Support/Report.hpp>
void
setMinimumLevel(Level level) noexcept;
Description
Messages below this level will not be printed. A value of 5 will suppress all messages. Note that messages will still be counted towards result totals even if they are not displayed.
Parameters
Name |
Description |
level |
Severity levels attached to reported messags. |
If true, source location information will be printed with warnings, errors, and fatal messages.
Synopsis
Declared in <mrdocs/Support/Report.hpp>
void
setSourceLocationWarnings(bool b) noexcept;
Parameters
Name |
Description |
b |
true to enable source location information, false to disable it. The default value is true. |
Report a message to the console.
Synopsis
Declared in <mrdocs/Support/Report.hpp>
template<class... Args>
void
trace(
Located<std::string_view> format,
Args...&&... args);
Parameters
Name |
Description |
format |
The format string. |
args |
Optional additional arguments |
Report a message to the console.
Synopsis
Declared in <mrdocs/Support/Report.hpp>
template<class... Args>
void
warn(
Located<std::string_view> format,
Args...&&... args);
Parameters
Name |
Description |
format |
The format string. |
args |
Optional additional arguments |
Holds current statistics on reported messages.
Synopsis
Declared in <mrdocs/Support/Report.hpp>
extern
Results results;
Like std::optional<Location>
Synopsis
Declared in <mrdocs/Metadata/Source.hpp>
using OptionalLocation = Optional<Location, LocationEmptyPredicate>;
Synopsis
Declared in <mrdocs/ADT/UnorderedStringMap.hpp>
template<class T>
using UnorderedStringMap = std::unordered_map<std::string, T, StringHash, std::equal_to>;
Synopsis
Declared in <mrdocs/ADT/UnorderedStringMap.hpp>
template<class T>
using UnorderedStringMultiMap = std::unordered_multimap<std::string, T, StringHash, std::equal_to>;
Synopsis
Declared in <mrdocs/Support/TypeTraits.hpp>
template<
typename From,
typename To>
using add_const_from_t = add_const_from<From, To>::type;
Synopsis
Declared in <mrdocs/Support/TypeTraits.hpp>
template<
typename From,
typename To>
using add_cv_from_t = add_cv_from<From, To>::type;
Synopsis
Declared in <mrdocs/Support/TypeTraits.hpp>
template<
typename From,
typename To>
using add_cvref_from_t = add_cvref_from<From, To>::type;
Synopsis
Declared in <mrdocs/Support/TypeTraits.hpp>
template<
typename From,
typename To>
using add_lvalue_reference_from_t = add_lvalue_reference_from<From, To>::type;
Synopsis
Declared in <mrdocs/Support/TypeTraits.hpp>
template<
typename From,
typename To>
using add_reference_from_t = add_reference_from<From, To>::type;
Synopsis
Declared in <mrdocs/Support/TypeTraits.hpp>
template<
typename From,
typename To>
using add_rvalue_reference_from_t = add_rvalue_reference_from<From, To>::type;
Synopsis
Declared in <mrdocs/Support/TypeTraits.hpp>
template<
typename From,
typename To>
using add_volatile_from_t = add_volatile_from<From, To>::type;
Synopsis
Declared in <mrdocs/Support/TypeTraits.hpp>
template<
typename T,
typename U>
using make_dependent_t = T;
Synopsis
Declared in <mrdocs/Support/Path.hpp>
struct AnyFileVisitor;
Member Functions
Name |
Description |
|
Destructor |
|
Destructor
Synopsis
Declared in <mrdocs/Support/Path.hpp>
virtual
~AnyFileVisitor() = 0;
Synopsis
Declared in <mrdocs/Support/Path.hpp>
virtual
Expected<void>
visitFile(std::string_view fileName) = 0;
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
struct ArrayTypeInfo final
: TypeInfoCommonBase<TypeKind::Array>
Base Classes
Name |
Description |
Member Functions
Name |
Description |
Three‐way comparison operators |
Static Member Functions
Data Members
Name |
Static Data Members
Name |
Non-Member Functions
Name |
Description |
Return the inner type. |
|
Return the inner type. |
|
Return the inner type. |
|
Return the inner type. |
Three‐way comparison operators
Synopses
Declared in <mrdocs/Metadata/Type.hpp>
Three‐way comparison operator
std::strong_ordering
operator<=>(ArrayTypeInfo const& rhs) const;
Three‐way comparison operator
constexpr
auto
operator<=>(TypeInfoCommonBase<clang::mrdocs::TypeKind::Array> const& rhs) const = default;
Three‐way comparison operator
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
std::strong_ordering
operator<=>(ArrayTypeInfo const& rhs) const;
Return Value
The relative order of the objects
Parameters
Name |
Description |
rhs |
The right operand |
Three‐way comparison operator
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
constexpr
auto
operator<=>(TypeInfoCommonBase<clang::mrdocs::TypeKind::Array> const& rhs) const = default;
Return Value
The relative order of the objects
Parameters
Name |
Description |
rhs |
The right operand |
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
constexpr
static
bool
isArray() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
constexpr
static
bool
isAuto() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
constexpr
static
bool
isDecltype() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
constexpr
static
bool
isFunction() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
constexpr
static
bool
isLValueReference() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
constexpr
static
bool
isMemberPointer() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
constexpr
static
bool
isNamed() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
constexpr
static
bool
isPointer() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
constexpr
static
bool
isRValueReference() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
Polymorphic<TypeInfo> ElementType = std::nullopt;
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
constexpr static
TypeKind kind_id;
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
struct AutoTypeInfo final
: TypeInfoCommonBase<TypeKind::Auto>
Base Classes
Name |
Description |
Member Functions
Name |
Description |
Three‐way comparison operators |
Static Member Functions
Data Members
Name |
Static Data Members
Name |
Non-Member Functions
Name |
Description |
Return the inner type. |
|
Return the inner type. |
|
Return the inner type. |
|
Return the inner type. |
Three‐way comparison operators
Synopses
Declared in <mrdocs/Metadata/Type.hpp>
Three‐way comparison operator
std::strong_ordering
operator<=>(AutoTypeInfo const& rhs) const;
Three‐way comparison operator
constexpr
auto
operator<=>(TypeInfoCommonBase<clang::mrdocs::TypeKind::Auto> const& rhs) const = default;
Three‐way comparison operator
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
std::strong_ordering
operator<=>(AutoTypeInfo const& rhs) const;
Return Value
The relative order of the objects
Parameters
Name |
Description |
rhs |
The right operand |
Three‐way comparison operator
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
constexpr
auto
operator<=>(TypeInfoCommonBase<clang::mrdocs::TypeKind::Auto> const& rhs) const = default;
Return Value
The relative order of the objects
Parameters
Name |
Description |
rhs |
The right operand |
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
constexpr
static
bool
isArray() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
constexpr
static
bool
isAuto() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
constexpr
static
bool
isDecltype() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
constexpr
static
bool
isFunction() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
constexpr
static
bool
isLValueReference() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
constexpr
static
bool
isMemberPointer() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
constexpr
static
bool
isNamed() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
constexpr
static
bool
isPointer() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
constexpr
static
bool
isRValueReference() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
Polymorphic<NameInfo> Constraint = std::nullopt;
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
AutoKind Keyword = AutoKind::Auto;
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
constexpr static
TypeKind kind_id;
Synopsis
Declared in <mrdocs/Support/Expected.hpp>
template<class E>
class BadExpectedAccess
: public BadExpectedAccess<void>
Base Classes
Name |
Description |
Member Functions
Name |
Description |
|
Construct from |
|
Protected Member Functions
Name |
Description |
Assignment operators |
Construct from E
Synopsis
Declared in <mrdocs/Support/Expected.hpp>
explicit
BadExpectedAccess(E e);
Parameters
Name |
Description |
e |
The object to construct from |
Synopses
Declared in <mrdocs/Support/Expected.hpp>
[[nodiscard]]
E&
error() & noexcept;
[[nodiscard]]
E const&
error() const & noexcept;
[[nodiscard]]
E&&
error() && noexcept;
[[nodiscard]]
E const&&
error() const && noexcept;
Synopsis
Declared in <mrdocs/Support/Expected.hpp>
[[nodiscard]]
E&
error() & noexcept;
Synopsis
Declared in <mrdocs/Support/Expected.hpp>
[[nodiscard]]
E const&
error() const & noexcept;
Synopsis
Declared in <mrdocs/Support/Expected.hpp>
[[nodiscard]]
E&&
error() && noexcept;
Synopsis
Declared in <mrdocs/Support/Expected.hpp>
[[nodiscard]]
E const&&
error() const && noexcept;
Synopsis
Declared in <mrdocs/Support/Expected.hpp>
template<>
class BadExpectedAccess<void>
: public std::exception
Base Classes
Name |
Description |
|
Member Functions
Name |
|
Protected Member Functions
Name |
Description |
|
Constructors |
|
Destructor |
Assignment operators |
Derived Classes
Name |
Description |
Synopsis
Declared in <__exception/exception.h>
[[__visibility__, __exclude_from_explicit_instantiation__, __abi_tag__]]
constexpr
exception&
operator=(exception const& value) noexcept = default;
Synopsis
Declared in <mrdocs/Support/Expected.hpp>
[[nodiscard]]
virtual
char const*
what() const noexcept override;
Constructors
Synopses
Declared in <mrdocs/Support/Expected.hpp>
Default constructor
constexpr
BadExpectedAccess() noexcept = default;
Copy constructor
constexpr
BadExpectedAccess(BadExpectedAccess<void> const& other) = default;
Move constructor
constexpr
BadExpectedAccess(BadExpectedAccess<void>&& other) = default;
Default constructor
Synopsis
Declared in <mrdocs/Support/Expected.hpp>
constexpr
BadExpectedAccess() noexcept = default;
Copy constructor
Synopsis
Declared in <mrdocs/Support/Expected.hpp>
constexpr
BadExpectedAccess(BadExpectedAccess<void> const& other) = default;
Parameters
Name |
Description |
other |
The object to copy construct from |
Move constructor
Synopsis
Declared in <mrdocs/Support/Expected.hpp>
constexpr
BadExpectedAccess(BadExpectedAccess<void>&& other) = default;
Parameters
Name |
Description |
other |
The object to move construct from |
Destructor
Synopsis
Declared in <mrdocs/Support/Expected.hpp>
constexpr
virtual
~BadExpectedAccess() override = default;
Assignment operators
Synopses
Declared in <mrdocs/Support/Expected.hpp>
Copy assignment operator
constexpr
BadExpectedAccess<void>&
operator=(BadExpectedAccess<void> const& other) = default;
Move assignment operator
constexpr
BadExpectedAccess<void>&
operator=(BadExpectedAccess<void>&& other) = default;
Copy assignment operator
Synopsis
Declared in <mrdocs/Support/Expected.hpp>
constexpr
BadExpectedAccess<void>&
operator=(BadExpectedAccess<void> const& other) = default;
Return Value
Reference to the current object
Parameters
Name |
Description |
other |
The object to copy assign from |
Move assignment operator
Synopsis
Declared in <mrdocs/Support/Expected.hpp>
constexpr
BadExpectedAccess<void>&
operator=(BadExpectedAccess<void>&& other) = default;
Return Value
Reference to the current object
Parameters
Name |
Description |
other |
The object to move assign from |
Metadata for a direct base.
Synopsis
Declared in <mrdocs/Metadata/Info/Record.hpp>
struct BaseInfo;
Member Functions
Name |
Description |
|
Constructors |
Synopses
Declared in <mrdocs/Metadata/Info/Record.hpp>
Default constructor
constexpr
BaseInfo() = default;
BaseInfo(
Polymorphic<TypeInfo>&& type,
AccessKind const access,
bool const is_virtual);
Default constructor
Synopsis
Declared in <mrdocs/Metadata/Info/Record.hpp>
constexpr
BaseInfo() = default;
Synopsis
Declared in <mrdocs/Metadata/Info/Record.hpp>
BaseInfo(
Polymorphic<TypeInfo>&& type,
AccessKind const access,
bool const is_virtual);
Synopsis
Declared in <mrdocs/Metadata/Info/Record.hpp>
AccessKind Access = AccessKind::Public;
Synopsis
Declared in <mrdocs/Metadata/Info/Record.hpp>
bool IsVirtual = false;
Synopsis
Declared in <mrdocs/Metadata/Info/Record.hpp>
Polymorphic<TypeInfo> Type;
Info for concepts.
Synopsis
Declared in <mrdocs/Metadata/Info/Concept.hpp>
struct ConceptInfo final
: InfoCommonBase<InfoKind::Concept>
Base Classes
Name |
Description |
Base class for providing variant discriminator functions. |
Member Functions
Name |
Description |
|
Construct from |
Three‐way comparison operators |
Static Member Functions
Data Members
Name |
Description |
The concepts constraint‐expression |
|
The concepts template parameters |
Static Data Members
Name |
Non-Member Functions
Name |
Description |
Merges two Info objects. |
Construct from SymbolID
Synopsis
Declared in <mrdocs/Metadata/Info/Concept.hpp>
explicit
ConceptInfo(SymbolID const& ID) noexcept;
Parameters
Name |
Description |
ID |
The object to copy construct from |
Three‐way comparison operators
Synopses
Declared in <mrdocs/Metadata/Info/Concept.hpp>
Three‐way comparison operator
std::strong_ordering
operator<=>(ConceptInfo const& other) const;
Three‐way comparison operator
auto
operator<=>(InfoCommonBase<clang::mrdocs::InfoKind::Concept> const& rhs) const = default;
Three‐way comparison operator
Synopsis
Declared in <mrdocs/Metadata/Info/Concept.hpp>
std::strong_ordering
operator<=>(ConceptInfo const& other) const;
Return Value
The relative order of the objects
Parameters
Name |
Description |
other |
The right operand |
Three‐way comparison operator
Synopsis
Declared in <mrdocs/Metadata/Info.hpp>
auto
operator<=>(InfoCommonBase<clang::mrdocs::InfoKind::Concept> const& rhs) const = default;
Return Value
The relative order of the objects
Parameters
Name |
Description |
rhs |
The right operand |
Synopsis
Declared in <mrdocs/Metadata/Info/InfoNodes.inc>
constexpr
static
bool
isConcept() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Info/InfoNodes.inc>
constexpr
static
bool
isEnum() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Info/InfoNodes.inc>
constexpr
static
bool
isEnumConstant() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Info/InfoNodes.inc>
constexpr
static
bool
isFunction() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Info/InfoNodes.inc>
constexpr
static
bool
isGuide() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Info/InfoNodes.inc>
constexpr
static
bool
isNamespace() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Info/InfoNodes.inc>
constexpr
static
bool
isNamespaceAlias() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Info/InfoNodes.inc>
constexpr
static
bool
isOverloads() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Info/InfoNodes.inc>
constexpr
static
bool
isRecord() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Info/InfoNodes.inc>
constexpr
static
bool
isTypedef() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Info/InfoNodes.inc>
constexpr
static
bool
isUsing() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Info/InfoNodes.inc>
constexpr
static
bool
isVariable() noexcept;
The concepts constraint‐expression
Synopsis
Declared in <mrdocs/Metadata/Info/Concept.hpp>
ExprInfo Constraint;
The concepts template parameters
Synopsis
Declared in <mrdocs/Metadata/Info/Concept.hpp>
std::optional<TemplateInfo> Template;
Synopsis
Declared in <mrdocs/Metadata/Info.hpp>
constexpr static
InfoKind kind_id;
Configuration used to generate the Corpus and Docs
Synopsis
Declared in <mrdocs/Config.hpp>
class Config;
Types
Name |
Description |
Settings values used to generate the Corpus and Docs |
Member Functions
Name |
Description |
|
Destructor. |
|
Return a DOM object representing the configuration keys. |
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. |
Protected Member Functions
Name |
Description |
|
Default constructor |
Description
This contains all the public settings applied from the command line and the YML file (if any).
This class stores the original and public config options as they are passed to MrDocs, in their original data types, such as strings and bools.
This class is an abstract interface whose private concrete implementation typically includes these parsed configuration values in a more convenient form for use by MrDocs.
Meanwhile, this class is provided publicly to plugins.
The configuration is always connected to the directory of the mrdocs.yml file from which absolute paths are calculated from relative paths.
Settings values used to generate the Corpus and Docs
Synopsis
Declared in <mrdocs/Config.hpp>
struct Settings
: PublicSettings
Base Classes
Name |
Description |
|
Types
Name |
Description |
Option validation traits |
Enums
Name |
Description |
Enum for "base‐member‐inheritance" options |
|
Enum for "generator" options |
|
Enum for "log‐level" options |
|
Option Type |
|
Enum for "sort‐symbol‐by" options |
Member Functions
Name |
Description |
Full path to the config file directory |
|
Normalize the configuration values with a visitor |
|
Member access operator |
|
Full path to the output directory |
|
Visit all options |
Static Member Functions
Name |
Description |
|
|
Loads the public configuration settings from the specified file. |
|
Data Members
Name |
Description |
Path to the Addons directory |
|
command is required. |
|
Automatically provide missing documentation for special functions and trivial metadata |
|
Automatically find non‐member functions |
|
Base URL for links to source code |
|
CMake arguments when generating the compilation database from CMakeLists.txt |
|
Configuration or compilation database files |
|
Path to the compilation database |
|
Number of threads to use |
|
Mr.Docs configuration file |
|
A string holding the complete configuration YAML. |
|
Full path to the current working directory |
|
Additional defines passed to the compiler |
|
Output an embeddable document |
|
Input directories to exclude |
|
File patterns to exclude |
|
Symbol patterns to exclude |
|
Extract all symbols |
|
Extraction policy for anonymous namespaces |
|
Extraction policy for empty namespaces |
|
Extraction policy for friend functions and classes |
|
Implicit template specializations used as base classes are extracted as dependencies |
|
Extraction policy for records defined locally in source files |
|
Extraction policy for private class members |
|
Extraction policy for private base classes |
|
Extraction policy for private virtual methods of a class |
|
Extraction policy for static members of a file |
|
File patterns to include |
|
Generator used to create the documentation |
|
Use the global namespace page as an index for all symbols |
|
Whether AST visitation failures should not stop the program |
|
Continue if files are not mapped correctly |
|
Symbols rendered as "implementation‐defined" |
|
Symbol patterns to include |
|
Include paths |
|
Determine how derived classes inherit base members |
|
Input directories to extract symbols from |
|
Use legible names |
|
Standard Library include paths |
|
The minimum reporting level |
|
Include path prefixes allowed to be missing |
|
Shims for forgiven missing include files |
|
Full path to the mrdocs root directory |
|
Generate a multipage documentation |
|
Directory or file for generating output |
|
Detect and group function overloads |
|
Recursively include files from "input" paths |
|
The minimum reporting level |
|
Exposition only symbols rendered as "see‐below". |
|
Detect and reduce SFINAE expressions |
|
Show namespace pages in the documentation |
|
Sort the members of a record |
|
Sort assignment operators first |
|
Determine how members of a record are sorted |
|
Sort conversion operators last |
|
Sort constructors first |
|
Sort destructors first |
|
Sort relational operators last |
|
Determine how members of a namespace are sorted |
|
Path to the root directory of the source code |
|
C++ Standard Library include paths |
|
System include paths |
|
Path for the tagfile |
|
Use the system C standard library |
|
Use the system C++ standard library |
|
Verbose output |
|
Treat warnings as errors |
|
Warn if a documentation reference is broken |
|
Warn if documentation has errors |
|
Warn if enum values are not documented |
|
Warn if symbols are not documented |
|
Warn if parameters are not documented |
|
Warn if documented functions have unnamed parameters |
|
Enable warning messages |
Friends
Name |
Description |
|
Option validation traits
Synopsis
Declared in <mrdocs/PublicSettings.hpp>
struct OptionProperties;
Enum for "base‐member‐inheritance" options
Synopsis
Declared in <mrdocs/PublicSettings.hpp>
enum class BaseMemberInheritance : int;
Members
Name |
Description |
Description
This enumeration value is valid for the inherit‐base‐members
option
Enum for "generator" options
Synopsis
Declared in <mrdocs/PublicSettings.hpp>
enum class Generator : int;
Members
Name |
Description |
Description
This enumeration value is valid for the generator
option
Enum for "log‐level" options
Synopsis
Declared in <mrdocs/PublicSettings.hpp>
enum class LogLevel : int;
Members
Name |
Description |
Description
This enumeration value is valid for the log‐level
option
Option Type
Synopsis
Declared in <mrdocs/PublicSettings.hpp>
enum class OptionType : int;
Members
Name |
Description |
Enum for "sort‐symbol‐by" options
Synopsis
Declared in <mrdocs/PublicSettings.hpp>
enum class SortSymbolBy : int;
Members
Name |
Description |
Description
These enumeration values are valid for the following options:
‐ sort‐members‐by ‐ sort‐namespace‐members‐by
Full path to the config file directory
Synopsis
Declared in <mrdocs/Config.hpp>
std::string
configDir() const;
Description
The reference directory for most MrDocs options is the directory of the mrdocs.yml file.
It is used to calculate full paths from relative paths.
This string will always be native style and have a trailing directory separator.
Return Value
The full path to the config file directory.
Normalize the configuration values with a visitor
Synopses
Declared in <mrdocs/Config.hpp>
Normalize the configuration values with a visitor
Expected<void>
normalize(ReferenceDirectories const& dirs);
Normalize the configuration values with a visitor
template<class F>
Expected<void>
normalize(
ReferenceDirectories const& dirs,
F&& f);
Return Value
Expected<void> with the error if any
Parameters
Name |
Description |
dirs |
The reference directories to resolve paths |
f |
The visitor |
Normalize the configuration values with a visitor
Synopsis
Declared in <mrdocs/Config.hpp>
Expected<void>
normalize(ReferenceDirectories const& dirs);
Description
This function normalizes and validates the configuration values.
Return Value
Expected<void> with the error if any
Parameters
Name |
Description |
dirs |
The reference directories to resolve paths |
Normalize the configuration values with a visitor
Synopsis
Declared in <mrdocs/PublicSettings.hpp>
template<class F>
Expected<void>
normalize(
ReferenceDirectories const& dirs,
F&& f);
Description
This function normalizes and validates the configuration values.
Return Value
Expected<void> with the error if any
Parameters
Name |
Description |
dirs |
The reference directories to resolve paths |
f |
The visitor |
Member access operator
Synopsis
Declared in <mrdocs/Config.hpp>
constexpr
Settings const*
operator‐>() const noexcept;
Return Value
Pointer to the current object
Full path to the output directory
Synopsis
Declared in <mrdocs/Config.hpp>
std::string
outputDir() const;
Description
The reference directory for MrDocs output and temporary files is the output directory.
This is either the output option (if already a directory) or the parent directory of the output option (if it is a file).
When the output option is a path that does not exist, we determine if it's a file or directory by checking if the filename contains a period.
This string will always be native style and have a trailing directory separator.
Return Value
The full path to the output directory.
Visit all options
Synopses
Parameters
Name |
Description |
f |
The visitor |
Visit all options
Synopsis
Declared in <mrdocs/PublicSettings.hpp>
template<class F>
void
visit(F&& f) const;
Parameters
Name |
Description |
f |
The visitor |
Visit all options
Synopsis
Declared in <mrdocs/PublicSettings.hpp>
template<class F>
void
visit(F&& f);
Parameters
Name |
Description |
f |
The visitor |
Synopses
Declared in <mrdocs/PublicSettings.hpp>
constexpr
static
bool
fromString(
std::string_view const str,
BaseMemberInheritance& e);
constexpr
static
bool
fromString(
std::string_view const str,
Generator& e);
constexpr
static
bool
fromString(
std::string_view const str,
LogLevel& e);
constexpr
static
bool
fromString(
std::string_view const str,
SortSymbolBy& e);
Synopsis
Declared in <mrdocs/PublicSettings.hpp>
constexpr
static
bool
fromString(
std::string_view const str,
BaseMemberInheritance& e);
Synopsis
Declared in <mrdocs/PublicSettings.hpp>
constexpr
static
bool
fromString(
std::string_view const str,
Generator& e);
Synopsis
Declared in <mrdocs/PublicSettings.hpp>
constexpr
static
bool
fromString(
std::string_view const str,
LogLevel& e);
Synopsis
Declared in <mrdocs/PublicSettings.hpp>
constexpr
static
bool
fromString(
std::string_view const str,
SortSymbolBy& e);
load
overloads
Synopses
Declared in <mrdocs/PublicSettings.hpp>
Load the configuration from a YAML string
static
Expected<void>
load(
PublicSettings& s,
std::string_view configYaml);
Loads the public configuration settings from the specified YAML file.
static
Expected<void>
load(
Config::Settings& s,
std::string_view configYaml,
ReferenceDirectories const& dirs);
Return Value
-
Expected<void> with the error if any
-
An Expected object containing a Config::Settings object if the YAML file was successfully parsed and the configuration settings were loaded, or an error otherwise.
Parameters
Name |
Description |
s |
The PublicSettings object to load the configuration into |
configYaml |
The YAML string with the configuration |
dirs |
A constant reference to a PublicSettings::ReferenceDirectories object containing the reference directories. |
Load the configuration from a YAML string
Synopsis
Declared in <mrdocs/PublicSettings.hpp>
static
Expected<void>
load(
PublicSettings& s,
std::string_view configYaml);
Description
This function loads the values from the YAML string without normalizing or validating them.
After calling this function, call normalize
to normalize and validate the options.
Return Value
Expected<void> with the error if any
Parameters
Name |
Description |
s |
The PublicSettings object to load the configuration into |
configYaml |
The YAML string with the configuration |
Loads the public configuration settings from the specified YAML file.
Synopsis
Declared in <mrdocs/Config.hpp>
static
Expected<void>
load(
Config::Settings& s,
std::string_view configYaml,
ReferenceDirectories const& dirs);
Description
This function takes a YAML file and a set of reference directories as input. It parses the YAML file and loads the configuration settings into a Config::Settings object. The reference directories are used to resolve any relative paths in the configuration settings.
Return Value
An Expected object containing a Config::Settings object if the YAML file was successfully parsed and the configuration settings were loaded, or an error otherwise.
Parameters
Name |
Description |
s |
A reference to a Config::Settings object where the configuration settings will be loaded. |
configYaml |
A string view representing the YAML file containing the configuration settings. |
dirs |
A constant reference to a PublicSettings::ReferenceDirectories object containing the reference directories. |
Loads the public configuration settings from the specified file.
Synopsis
Declared in <mrdocs/Config.hpp>
static
Expected<void>
load_file(
Config::Settings& s,
std::string_view configPath,
ReferenceDirectories const& dirs);
Description
This function takes a file path and a set of reference directories as input. It reads the file and loads the configuration settings into a Config::Settings object. The reference directories are used to resolve any relative paths in the configuration settings.
Return Value
An Expected object containing void if the file was successfully read and the configuration settings were loaded, or an error otherwise.
Parameters
Name |
Description |
s |
A reference to a Config::Settings object where the configuration settings will be loaded. |
configPath |
A string view representing the file path of the configuration settings. |
dirs |
A constant reference to a PublicSettings::ReferenceDirectories object containing the reference directories. |
Synopses
Declared in <mrdocs/PublicSettings.hpp>
constexpr
static
std::string_view
toString(BaseMemberInheritance const e);
constexpr
static
std::string_view
toString(Generator const e);
constexpr
static
std::string_view
toString(LogLevel const e);
constexpr
static
std::string_view
toString(SortSymbolBy const e);
Synopsis
Declared in <mrdocs/PublicSettings.hpp>
constexpr
static
std::string_view
toString(BaseMemberInheritance const e);
Synopsis
Declared in <mrdocs/PublicSettings.hpp>
constexpr
static
std::string_view
toString(Generator const e);
Synopsis
Declared in <mrdocs/PublicSettings.hpp>
constexpr
static
std::string_view
toString(LogLevel const e);
Synopsis
Declared in <mrdocs/PublicSettings.hpp>
constexpr
static
std::string_view
toString(SortSymbolBy const e);
Path to the Addons directory
Synopsis
Declared in <mrdocs/PublicSettings.hpp>
std::string addons;
Description
Path to the Addons directory.
The Addons directory contains the template files used by generators to create the documentation.
When a custom Addons directory is not specified, the default templates are used.
The default templates are located at the share/mrdocs/addons
directory of the MrDocs installation.
Users can create custom templates by copying the default templates to a custom directory and specifying the custom directory using this option.
command is required.
Synopsis
Declared in <mrdocs/PublicSettings.hpp>
bool autoBrief = true;
Description
Use the first line of the comment as the brief
When set to true
, Mr.Docs uses the first line (until the first dot, question mark, or exclamation mark) of the comment as the brief of the symbol.
When set to false
, a explicit
Automatically provide missing documentation for special functions and trivial metadata
Synopsis
Declared in <mrdocs/PublicSettings.hpp>
bool autoFunctionMetadata = true;
Description
When set to true
, Mr.Docs automatically provides documentation for special functions, such as constructors, destructors, and operators.
It also provides documentation for missing documentation metadata, such as known types.
Automatically find non‐member functions
Synopsis
Declared in <mrdocs/PublicSettings.hpp>
bool autoRelates = true;
Description
When set to true
, Mr.Docs automatically finds non‐member functions that are related to the current class.
Base URL for links to source code
Synopsis
Declared in <mrdocs/PublicSettings.hpp>
std::string baseUrl;
Description
Base URL for links to source code.
The base URL is used to create links to the source code in the documentation.
The base URL is combined with the path to the source file to create the link.
CMake arguments when generating the compilation database from CMakeLists.txt
Synopsis
Declared in <mrdocs/PublicSettings.hpp>
std::string cmake;
Description
When the compilation‐database option is a CMakeLists.txt file, these arguments are passed to the cmake command to generate the compilation_database.json.
Configuration or compilation database files
Synopsis
Declared in <mrdocs/PublicSettings.hpp>
std::vector<std::string> cmdLineInputs;
Description
The inputs are configuration files or compilation database files that used to generate the documentation.
When the input ends with mrdocs.yml
, it is interpreted as a configuration file, the file is read and the options are used to generate the documentation as if it was provided to the config
option.
When the input ends with compilation_database.json
or CMakeLists.txt
, it is interpreted as a compilation database file, the file is read and the compiler flags are used to generate the documentation as if it was provided to the compilation‐database
option.
Path to the compilation database
Synopsis
Declared in <mrdocs/PublicSettings.hpp>
std::string compilationDatabase;
Description
Path to the compilation database or a build script to generate it.
The compilation database is a JSON file that contains the compiler commands used to build the source code.
The compilation database is used to extract the compiler flags and the source files used to build the source code and extract symbols.
This option also accepts the path to a build script such as CMakeLists.txt to be used to generate the compilation database.
In this case, Mr.Docs will look for CMake in PATH
or in CMAKE_ROOT
and run the script to generate the compilation database file.
Number of threads to use
Synopsis
Declared in <mrdocs/PublicSettings.hpp>
unsigned int concurrency = 0;
Description
The desired level of concurrency: 0 for hardware‐suggested.
Mr.Docs configuration file
Synopsis
Declared in <mrdocs/PublicSettings.hpp>
std::string config;
Description
The configuration file is a YAML file that contains the options used to generate the documentation.
The configuration file is read and the options are used to generate the documentation.
The configuration file can be used to specify the source code, the output directory, the compilation database, the generator, and the filters.
A string holding the complete configuration YAML.
Synopsis
Declared in <mrdocs/Config.hpp>
std::string configYaml;
Full path to the current working directory
Synopsis
Declared in <mrdocs/Config.hpp>
std::string cwdDir = ".";
Description
This string will always be native style and have a trailing directory separator.
Additional defines passed to the compiler
Synopsis
Declared in <mrdocs/PublicSettings.hpp>
std::vector<std::string> defines;
Description
Additional defines passed to the compiler when building the source code.
These defines are added to the compilation database regardless of the strategy to generate it.
Output an embeddable document
Synopsis
Declared in <mrdocs/PublicSettings.hpp>
bool embedded = false;
Description
Output an embeddable document, which excludes the header, the footer, and everything outside the body of the document.
This option is useful for producing documents that can be inserted into an external template.
Input directories to exclude
Synopsis
Declared in <mrdocs/PublicSettings.hpp>
std::vector<std::string> exclude;
Description
Symbols defined in files in these directories are not extracted even if they are in the list of include directories.
When relative, the paths are relative to the directory of the mrdocs configuration file.
For instance, "include/experimental" will exclude all files in the directory <config‐dir>/include/experimental
.
File patterns to exclude
Synopsis
Declared in <mrdocs/PublicSettings.hpp>
std::vector<PathGlobPattern> excludePatterns;
Description
File patterns to exclude.
Files that match these patterns are not extracted even if they are in the list of include directories.
The patterns are relative to the configuration file.
A single will match all files in the directory.
Double will match all files in the directory and its subdirectories.
Symbol patterns to exclude
Synopsis
Declared in <mrdocs/PublicSettings.hpp>
std::vector<SymbolGlobPattern> excludeSymbols;
Description
A symbol that matches one of these patterns is not extracted even if whitelisted by "include‐symbols".
See the documentation for "include‐symbols" for the pattern syntax.
Extract all symbols
Synopsis
Declared in <mrdocs/PublicSettings.hpp>
bool extractAll = true;
Description
When set to true
, MrDocs extracts all symbols from the source code, even if no documentation is provided.
MrDocs can only identify whether a symbol is ultimated documented after extracting information from all translation units.
For this reason, when this option is set to false
, it's still recommendable to provide file and symbol filters so that only the desired symbols are traversed and stored by MrDocs.
Extraction policy for anonymous namespaces
Synopsis
Declared in <mrdocs/PublicSettings.hpp>
bool extractAnonymousNamespaces = true;
Description
Determine whether symbols in anonymous namespaces should be extracted.
Extraction policy for empty namespaces
Synopsis
Declared in <mrdocs/PublicSettings.hpp>
bool extractEmptyNamespaces = false;
Description
Determine whether empty namespaces without documentation should be extracted.
Extraction policy for friend functions and classes
Synopsis
Declared in <mrdocs/PublicSettings.hpp>
bool extractFriends = true;
Description
Determine whether friend functions and classes should be extracted.
When set to true
, MrDocs extracts friend functions and classes.
When set to false
, friend functions and classes are not extracted.
Implicit template specializations used as base classes are extracted as dependencies
Synopsis
Declared in <mrdocs/PublicSettings.hpp>
bool extractImplicitSpecializations = true;
Description
When set to true
, MrDocs extracts implicit template specializations used as base classes as dependencies.
This allows MrDocs to extract metadata that can later be used to determine the members of the derived class, as specified by the inherit‐base‐members
option.
Extraction policy for records defined locally in source files
Synopsis
Declared in <mrdocs/PublicSettings.hpp>
bool extractLocalClasses = true;
Description
Determine whether records only defined locally in source files should be extracted.
Extraction policy for private class members
Synopsis
Declared in <mrdocs/PublicSettings.hpp>
bool extractPrivate = false;
Description
Determine whether private class members should be extracted
Extraction policy for private base classes
Synopsis
Declared in <mrdocs/PublicSettings.hpp>
bool extractPrivateBases = false;
Description
Determine whether private base classes should be extracted
Extraction policy for private virtual methods of a class
Synopsis
Declared in <mrdocs/PublicSettings.hpp>
bool extractPrivateVirtual = false;
Description
Determine whether private virtual methods of a class should be extracted
Extraction policy for static members of a file
Synopsis
Declared in <mrdocs/PublicSettings.hpp>
bool extractStatic = false;
Description
Determine whether static members of a file should be extracted.
This option does not refer to static members of a class.
File patterns to include
Synopsis
Declared in <mrdocs/PublicSettings.hpp>
std::vector<PathGlobPattern> filePatterns;
Description
File patterns to include.
Only the files that match these patterns are extracted.
The patterns are relative to the input directories.
Generator used to create the documentation
Synopsis
Declared in <mrdocs/PublicSettings.hpp>
Generator generator = Generator::Adoc;
Description
The generator is responsible for creating the documentation from the extracted symbols.
The generator uses the extracted symbols and the templates to create the documentation.
The generator can create different types of documentation such as HTML, XML, and AsciiDoc.
Use the global namespace page as an index for all symbols
Synopsis
Declared in <mrdocs/PublicSettings.hpp>
bool globalNamespaceIndex = true;
Description
When set to true, the page for the global namespace will recursively list all symbols in the documentation, not just those in the global namespace.
This makes the global namespace page act as an index for the entire project.
Whether AST visitation failures should not stop the program
Synopsis
Declared in <mrdocs/PublicSettings.hpp>
bool ignoreFailures = false;
Description
When set to true, MrDocs continues to generate the documentation even if there are AST visitation failures.
AST visitation failures occur when the source code contains constructs that are not supported by MrDocs.
Continue if files are not mapped correctly
Synopsis
Declared in <mrdocs/PublicSettings.hpp>
bool ignoreMapErrors = false;
Description
When set to true, MrDocs continues to generate the documentation even if some files are not mapped correctly.
Files are not mapped correctly when the source file is not found or the compilation database does not contain the compiler flags for the source file.
Symbols rendered as "implementation‐defined"
Synopsis
Declared in <mrdocs/PublicSettings.hpp>
std::vector<SymbolGlobPattern> implementationDefined;
Description
Symbols that match one of these filters are tagged as "implementation‐defined" in the documentation, and so do symbols in scopes tagged as "implementation‐defined".
This option is used to exclude symbols from the documentation that are considered part of the private API of the project.
An "implementation‐defined" symbol has no documentation page in the output.
If any other symbol refers to it, the reference is rendered as "implementation‐defined".
See the documentation for "include‐symbol" for the pattern syntax.
Symbol patterns to include
Synopsis
Declared in <mrdocs/PublicSettings.hpp>
std::vector<SymbolGlobPattern> includeSymbols;
Description
If any patterns are defined here, only symbols that match one of these patterns are extracted.
The patterns are applied to the fully qualified name of the symbol without any leading "::".
A single "" will match all symbols in the namespace.
Double "" will match all symbols in the namespace and its subnamespaces.
The patterns also support "?" for any chars, "[<chars>]" for charsets, "[ˆ<chars>]" for inverted charsets, and "{<glob>,...}" for alternatives.
Include paths
Synopsis
Declared in <mrdocs/PublicSettings.hpp>
std::vector<std::string> includes;
Description
Include paths.
These paths are used to add directories to the include search path.
The include search path is used to search for headers.
The headers are used to provide declarations and definitions of symbols.
The headers are part of the project and are checked for warnings and errors.
Determine how derived classes inherit base members
Synopsis
Declared in <mrdocs/PublicSettings.hpp>
BaseMemberInheritance inheritBaseMembers = BaseMemberInheritance::CopyDependencies;
Description
Determine how derived classes inherit members of base classes.
When set to never
, derived classes do not inherit members of base classes and only the relationship is stored.
When set to reference
, derived classes list members of base classes but references are still linked to the base class.
When set to copy‐dependencies
, a reference is created by default and a copy is created when the base class is a dependency.
When set to copy‐all
, a copy is created for each base symbol as if it was declared in the derived class.
If the base class is a dependency, the extraction mode is copied from the new parent.
Input directories to extract symbols from
Synopsis
Declared in <mrdocs/PublicSettings.hpp>
std::vector<std::string> input;
Description
Input directories to extract.
Only symbols defined in files in these directories are extracted.
The paths are relative to the mrdocs configuration file.
Use legible names
Synopsis
Declared in <mrdocs/PublicSettings.hpp>
bool legibleNames = true;
Description
Use legible names for ids in the documentation.
When set to true, MrDocs uses legible names for symbols in the documentation.
These are symbols that are legible but still safe for URLs.
When the option is set to false, MrDocs uses a hash of the symbol ID.
Standard Library include paths
Synopsis
Declared in <mrdocs/PublicSettings.hpp>
std::vector<std::string> libcIncludes;
Description
When use‐system‐libc
is disabled, the C standard library headers are available in these paths.
The minimum reporting level
Synopsis
Declared in <mrdocs/PublicSettings.hpp>
LogLevel logLevel = LogLevel::Info;
Description
The reporting level determines the amount of information displayed during the generation of the documentation.
Include path prefixes allowed to be missing
Synopsis
Declared in <mrdocs/PublicSettings.hpp>
std::vector<std::string> missingIncludePrefixes;
Description
Specifies path prefixes for include files that, if missing, will not cause documentation generation to fail.
Missing files with these prefixes are served as empty files from an in‐memory file system, allowing processing to continue.
For example, use "llvm/" to forgive all includes from LLVM.
If any such path is specified, MrDocs will attempt to synthesize missing included types.
Only simple sets of non‐conflicting inferred types can be synthesized.
For more complex types or for better control, provide a shim using the "missing‐include‐shims" option.
Shims for forgiven missing include files
Synopsis
Declared in <mrdocs/PublicSettings.hpp>
std::map<std::string, std::string> missingIncludeShims;
Description
Specifies a map of include file paths to shim contents.
If a missing include file matches a forgiven prefix, MrDocs will use the shim content from this map as the file contents.
If no shim is provided for a forgiven file, an empty file is used by default.
Full path to the mrdocs root directory
Synopsis
Declared in <mrdocs/Config.hpp>
std::string mrdocsRootDir;
Description
This is the directory containing the mrdocs executable and the shared files.
This string will always be native style and have a trailing directory separator.
Generate a multipage documentation
Synopsis
Declared in <mrdocs/PublicSettings.hpp>
bool multipage = true;
Description
Generates a multipage documentation.
The output directory must be a directory.
This option acts as a hint to the generator to create a multipage documentation.
Whether the hint is followed or not depends on the generator.
Directory or file for generating output
Synopsis
Declared in <mrdocs/PublicSettings.hpp>
std::string output;
Description
Multipage generators expect a directory.
Single page generators expect a file or a directory where the file will be created.
If the directory does not exist, it will be created.
Detect and group function overloads
Synopsis
Declared in <mrdocs/PublicSettings.hpp>
bool overloads = true;
Description
When set to true
, MrDocs detects function overloads and groups them as a single symbol type.
The documentation for this new symbol comes from the union of non‐ambiguous metadata from the functions.
Recursively include files from "input" paths
Synopsis
Declared in <mrdocs/PublicSettings.hpp>
bool recursive = true;
Description
Recursively include files.
When set to true, Mr.Docs includes files in subdirectories of the input directories.
When set to false, Mr.Docs includes only the files in the input directories.
The minimum reporting level
Synopsis
Declared in <mrdocs/PublicSettings.hpp>
unsigned int report = ‐1;
Description
The reporting level determines the amount of information displayed during the generation of the documentation.
The value ‐1
delegates the decision to the log‐level
option.
Exposition only symbols rendered as "see‐below".
Synopsis
Declared in <mrdocs/PublicSettings.hpp>
std::vector<SymbolGlobPattern> seeBelow;
Description
Symbols that match one of these filters are tagged as "see‐below" in the documentation, and so do symbols in scopes tagged as "see‐below".
This option is used to remove details about symbols that are considered part of the private API of the project but the user might need to interact with.
In the documentation page for this symbol, the symbol is exposition only: the synopsis of the implementation is rendered as "see‐below" and members of scopes (such as a namespace or record) are not listed.
The rest of the documentation is rendered as usual to explain the symbol.
See the documentation for "include‐symbol" for the pattern syntax.
Detect and reduce SFINAE expressions
Synopsis
Declared in <mrdocs/PublicSettings.hpp>
bool sfinae = true;
Description
When set to true, MrDocs detects SFINAE expressions in the source code and extracts them as part of the documentation.
Expressions such as std::enable_if<...>
are detected, removed, and documented as a requirement.
MrDocs uses an algorithm that extracts SFINAE infomation from types by identifying inspecting the primary template and specializations to detect the result type and the controlling expressions in a specialization.
Show namespace pages in the documentation
Synopsis
Declared in <mrdocs/PublicSettings.hpp>
bool showNamespaces = true;
Description
When set to true, MrDocs creates a page for each namespace in the documentation.
Sort the members of a record
Synopsis
Declared in <mrdocs/PublicSettings.hpp>
bool sortMembers = true;
Description
When set to true
, sort the members of a record by the criterion determined in the sort‐members‐by
option.
When set to false
, the members are included in the declaration order they are extracted.
Sort assignment operators first
Synopsis
Declared in <mrdocs/PublicSettings.hpp>
bool sortMembersAssignment1St = true;
Description
When set to true
, assignment operators are sorted first in the list of members of a record.
Determine how members of a record are sorted
Synopsis
Declared in <mrdocs/PublicSettings.hpp>
SortSymbolBy sortMembersBy = SortSymbolBy::Name;
Description
If sort‐members
is set to true
, determine how members of a record are sorted.
When set to name
, members are sorted by name.
When set to location
, members are sorted by their primary location in the source code, considering the short name of the path and the location in the file.
Sort conversion operators last
Synopsis
Declared in <mrdocs/PublicSettings.hpp>
bool sortMembersConversionLast = true;
Description
When set to true
, conversion operators are sorted last in the list of members of a record or namespace.
Sort constructors first
Synopsis
Declared in <mrdocs/PublicSettings.hpp>
bool sortMembersCtors1St = true;
Description
When set to true
, constructors are sorted first in the list of members of a record.
Sort destructors first
Synopsis
Declared in <mrdocs/PublicSettings.hpp>
bool sortMembersDtors1St = true;
Description
When set to true
, destructors are sorted first in the list of members of a record.
Sort relational operators last
Synopsis
Declared in <mrdocs/PublicSettings.hpp>
bool sortMembersRelationalLast = true;
Description
When set to true
, relational operators are sorted last in the list of members of a record or namespace.
Determine how members of a namespace are sorted
Synopsis
Declared in <mrdocs/PublicSettings.hpp>
SortSymbolBy sortNamespaceMembersBy = SortSymbolBy::Name;
Description
Although members of namespaces are always sorted, determine how members of a namespace are sorted.
When set to name
, members are sorted by name.
When set to location
, members are sorted by their primary location in the source code, considering the short name of the path and the location in the file.
Path to the root directory of the source code
Synopsis
Declared in <mrdocs/PublicSettings.hpp>
std::string sourceRoot;
Description
Path to the root directory of the source code.
This path is used as a default for input files and a base for relative paths formed from absolute paths.
This should typically be the root directory of the git project, as relative paths formed from it can be used to create links to these source files in the repository.
Templates use the base‐url
option to create links to the source code.
C++ Standard Library include paths
Synopsis
Declared in <mrdocs/PublicSettings.hpp>
std::vector<std::string> stdlibIncludes;
Description
When use‐system‐stdlib
is disabled, the C++ standard library headers are available in these paths.
System include paths
Synopsis
Declared in <mrdocs/PublicSettings.hpp>
std::vector<std::string> systemIncludes;
Description
System include paths.
These paths are used to add directories to the system include search path.
The system include search path is used to search for system headers.
The system headers are headers that are provided by the system and are not part of the project.
The system headers are used to provide the standard library headers and other system headers.
The system headers are not part of the project and are not checked for warnings and errors.
Path for the tagfile
Synopsis
Declared in <mrdocs/PublicSettings.hpp>
std::string tagfile;
Description
Specifies the full path (filename) where the generated tagfile should be saved.
If left empty, no tagfile will be generated.
Use the system C standard library
Synopsis
Declared in <mrdocs/PublicSettings.hpp>
bool useSystemLibc = false;
Description
To achieve reproducible results, MrDocs bundles the LibC headers with its definitions.
To use the C standard library available in the system instead, set this option to true.
Use the system C++ standard library
Synopsis
Declared in <mrdocs/PublicSettings.hpp>
bool useSystemStdlib = false;
Description
To achieve reproducible results, MrDocs bundles the LibC++ headers.
To use the C++ standard library available in the system instead, set this option to true.
Verbose output
Synopsis
Declared in <mrdocs/PublicSettings.hpp>
bool verbose = false;
Description
Verbose output.
When set to true, MrDocs outputs additional information during the generation of the documentation.
Treat warnings as errors
Synopsis
Declared in <mrdocs/PublicSettings.hpp>
bool warnAsError = false;
Description
When set to true
, MrDocs treats warnings as errors and stops the generation of the documentation.
Warn if a documentation reference is broken
Synopsis
Declared in <mrdocs/PublicSettings.hpp>
bool warnBrokenRef = true;
Description
When set to true
, MrDocs outputs a warning message if a reference in the documentation is broken.
Warn if documentation has errors
Synopsis
Declared in <mrdocs/PublicSettings.hpp>
bool warnIfDocError = true;
Description
When set to true
, MrDocs outputs a warning message if the documentation of a symbol has errors such as duplicate parameters and parameters that don't exist.
Warn if enum values are not documented
Synopsis
Declared in <mrdocs/PublicSettings.hpp>
bool warnIfUndocEnumVal = true;
Description
When set to true
, MrDocs outputs a warning message if an enum value is not documented.
Warn if symbols are not documented
Synopsis
Declared in <mrdocs/PublicSettings.hpp>
bool warnIfUndocumented = true;
Description
When set to true
, MrDocs outputs a warning message if a symbol that passes all filters is not documented.
Warn if parameters are not documented
Synopsis
Declared in <mrdocs/PublicSettings.hpp>
bool warnNoParamdoc = true;
Description
When set to true
, MrDocs outputs a warning message if a named function parameter is not documented.
Warn if documented functions have unnamed parameters
Synopsis
Declared in <mrdocs/PublicSettings.hpp>
bool warnUnnamedParam = false;
Description
When set to true
, MrDocs outputs a warning message if a documented function has a parameter that is not named.
Enable warning messages
Synopsis
Declared in <mrdocs/PublicSettings.hpp>
bool warnings = true;
Description
When set to true
, MrDocs outputs warning messages during the generation of the documentation.
It is usually recommended to enable warnings while writing the documentation.
Destructor.
Synopsis
Declared in <mrdocs/Config.hpp>
virtual
~Config() noexcept = 0;
Return a DOM object representing the configuration keys.
Synopsis
Declared in <mrdocs/Config.hpp>
virtual
dom::Object const&
object() const = 0;
Description
The object is invalidated when the configuration is moved or destroyed.
Return Value
a DOM object representing the configuration keys.
Return the settings used to generate the Corpus and Docs.
Synopsis
Declared in <mrdocs/Config.hpp>
constexpr
Settings const*
operator‐>() const noexcept;
Return Value
the settings used to generate the Corpus and Docs.
Return the settings used to generate the Corpus and Docs.
Synopsis
Declared in <mrdocs/Config.hpp>
virtual
Settings const&
settings() const noexcept = 0;
Return Value
the settings used to generate the Corpus and Docs.
Return a pool of threads for executing work.
Synopsis
Declared in <mrdocs/Config.hpp>
virtual
ThreadPool&
threadPool() const noexcept = 0;
Return Value
a pool of threads for executing work.
Default constructor
Synopsis
Declared in <mrdocs/Config.hpp>
Config() noexcept;
Represents an expression with a (possibly known) value
Synopsis
Declared in <mrdocs/Metadata/Expression.hpp>
template<typename T>
struct ConstantExprInfo
: ExprInfo
Base Classes
Name |
Description |
Represents an expression |
Types
Name |
Description |
The underlying type of the expression |
Member Functions
Name |
Description |
Three‐way comparison operators |
Data Members
Synopsis
Declared in <mrdocs/Metadata/Expression.hpp>
using type = T;
Three‐way comparison operators
Synopses
Declared in <mrdocs/Metadata/Expression.hpp>
Three‐way comparison operator
auto
operator<=>(ConstantExprInfo const& rhs) const = default;
Three‐way comparison operator
constexpr
auto
operator<=>(ExprInfo const& rhs) const = default;
Three‐way comparison operator
Synopsis
Declared in <mrdocs/Metadata/Expression.hpp>
auto
operator<=>(ConstantExprInfo const& rhs) const = default;
Return Value
The relative order of the objects
Parameters
Name |
Description |
rhs |
The right operand |
Three‐way comparison operator
Synopsis
Declared in <mrdocs/Metadata/Expression.hpp>
constexpr
auto
operator<=>(ExprInfo const& rhs) const = default;
Return Value
The relative order of the objects
Parameters
Name |
Description |
rhs |
The right operand |
The expressions value, if it is known
Synopsis
Declared in <mrdocs/Metadata/Expression.hpp>
std::optional<type> Value;
Description
The value of an expression will be unknown if it is e.g. dependent on a template parameter
The collection of declarations in extracted form.
Synopsis
Declared in <mrdocs/Corpus.hpp>
class Corpus;
Types
Name |
Description |
Options to traverse the members of an Info. |
|
The iterator type for the index of all symbols. |
Member Functions
Name |
Description |
|
Destructor. |
|
Return the begin iterator for the index of all symbols. |
Whether the corpus contains any symbols. |
|
|
Return the end iterator for the index. |
Return true if an Info with the specified symbol ID exists. |
|
|
Return the Info with the matching ID, or nullptr. |
Return the Info with the specified symbol ID. |
|
Return the metadata for the global namespace. |
|
|
|
|
|
Visit the members of specified Info. |
|
Visit the specified Symbol IDs |
Data Members
Name |
Description |
The configuration used to generate this corpus. |
Protected Member Functions
Name |
Description |
|
Construct from |
Non-Member Functions
Name |
Description |
Return a list of the parent symbols of the specified Info. |
Options to traverse the members of an Info.
Synopsis
Declared in <mrdocs/Corpus.hpp>
struct TraverseOptions;
Data Members
Name |
Description |
Whether to traverse in a stable order |
|
Whether to skip inherited members whose parent is not the Info |
|
Whether to skip inherited members whose parent is not the Info |
Whether to traverse in a stable order
Synopsis
Declared in <mrdocs/Corpus.hpp>
bool ordered = false;
Whether to skip inherited members whose parent is not the Info
Synopsis
Declared in <mrdocs/Corpus.hpp>
bool recursive = false;
Whether to skip inherited members whose parent is not the Info
Synopsis
Declared in <mrdocs/Corpus.hpp>
bool skipInherited = false;
The iterator type for the index of all symbols.
Synopsis
Declared in <mrdocs/Corpus.hpp>
class iterator;
Types
Member Functions
Name |
Description |
|
Constructors |
Copy assignment operator |
|
Increment operators |
|
Equality operator |
|
Inequality operator |
Description
The iterator is a forward iterator that iterates over all symbols in the index. It dereferences to a reference to a const Info
.
The logic for incrementing the iterator is provided by the Corpus implementation via a function that retuns the next Info in the index, or nullptr if there are no more.
Synopsis
Declared in <mrdocs/Corpus.hpp>
using const_pointer = value_type const*;
Synopsis
Declared in <mrdocs/Corpus.hpp>
using const_reference = value_type const&;
Synopsis
Declared in <mrdocs/Corpus.hpp>
using difference_type = std::ptrdiff_t;
Synopsis
Declared in <mrdocs/Corpus.hpp>
using pointer = value_type*;
Synopsis
Declared in <mrdocs/Corpus.hpp>
using reference = value_type&;
Synopsis
Declared in <mrdocs/Corpus.hpp>
using size_type = std::size_t;
Synopsis
Synopses
Declared in <mrdocs/Corpus.hpp>
Default constructor
constexpr
iterator() = default;
Copy constructor
Constructor
Default constructor
Synopsis
Declared in <mrdocs/Corpus.hpp>
constexpr
iterator() = default;
Copy constructor
Synopsis
Declared in <mrdocs/Corpus.hpp>
constexpr
iterator(iterator const& other) = default;
Parameters
Name |
Description |
other |
The object to copy construct from |
Constructor
Synopsis
Parameters
Name |
Description |
corpus |
The object to construct from |
val |
Base class with common properties of all symbols |
next |
Base class with common properties of all symbols |
Copy assignment operator
Synopsis
Return Value
Reference to the current object
Parameters
Name |
Description |
other |
The object to copy assign from |
Synopsis
Declared in <mrdocs/Corpus.hpp>
const_reference
operator*() const noexcept;
Increment operators
Synopses
Declared in <mrdocs/Corpus.hpp>
Increment operator
iterator&
operator++() noexcept;
Increment operator
iterator
operator++(int) noexcept;
Increment operator
Synopsis
Declared in <mrdocs/Corpus.hpp>
iterator&
operator++() noexcept;
Return Value
Reference to the current object
Increment operator
Synopsis
Declared in <mrdocs/Corpus.hpp>
iterator
operator++(int) noexcept;
Return Value
Another instance of the object
Synopsis
Declared in <mrdocs/Corpus.hpp>
const_pointer
operator‐>() const noexcept;
Equality operator
Synopsis
Declared in <mrdocs/Corpus.hpp>
bool
operator==(iterator const& other) const noexcept;
Return Value
true
if the objects are equal, false
otherwise
Parameters
Name |
Description |
other |
The right operand |
Inequality operator
Synopsis
Declared in <mrdocs/Corpus.hpp>
bool
operator!=(iterator const& other) const noexcept;
Return Value
true
if the objects are not equal, false
otherwise
Parameters
Name |
Description |
other |
The right operand |
Destructor.
Synopsis
Declared in <mrdocs/Corpus.hpp>
virtual
~Corpus() noexcept;
Return the begin iterator for the index of all symbols.
Synopsis
Declared in <mrdocs/Corpus.hpp>
virtual
iterator
begin() const noexcept = 0;
Return Value
the begin iterator for the index of all symbols.
Whether the corpus contains any symbols.
Synopsis
Declared in <mrdocs/Corpus.hpp>
bool
empty() const noexcept;
Return Value
true if the corpus is empty, otherwise false.
Return the end iterator for the index.
Synopsis
Declared in <mrdocs/Corpus.hpp>
virtual
iterator
end() const noexcept = 0;
Return Value
the end iterator for the index.
Return true if an Info with the specified symbol ID exists.
Synopsis
Declared in <mrdocs/Corpus.hpp>
bool
exists(SymbolID const& id) const noexcept;
Description
This function uses the find
function to locate the Info with the specified symbol ID and returns true if it exists, otherwise false.
Return Value
true if an Info with the specified symbol ID exists.
Parameters
Name |
Description |
id |
A unique identifier for a symbol. |
Return the Info with the matching ID, or nullptr.
Synopsis
Return Value
the Info with the matching ID, or nullptr.
Parameters
Name |
Description |
id |
A unique identifier for a symbol. |
Return the Info with the specified symbol ID.
Synopsis
Description
This function uses the find
function to locate the Info 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 Info with the specified symbol ID exists. If the id does not exist, the behavior is undefined.
If the Info is not of type T, the behavior is undefined.
Return Value
the Info with the specified symbol ID.
Parameters
Name |
Description |
id |
A unique identifier for a symbol. |
Return the metadata for the global namespace.
Synopsis
Declared in <mrdocs/Corpus.hpp>
NamespaceInfo const&
globalNamespace() const noexcept;
Description
This function is equivalent to calling get
with the symbol ID for the global namespace.
Return Value
the metadata for the global namespace.
lookup
overloads
Synopses
Declared in <mrdocs/Corpus.hpp>
Return the Info for the matching string in the global context.
Expected<std::reference_wrapper<Info const>>
lookup(std::string_view name) const;
Return the Info for the matching string in a given context.
virtual
Expected<std::reference_wrapper<Info const>>
lookup(
SymbolID const& context,
std::string_view name) const = 0;
Return Value
-
The Info for the symbol with the specified name in the global context, or an error if not found.
-
The Info for the symbol with the specified name in the specified context, or an error if not found. If multiple symbols match, one is returned arbitrarily. Use
traverse
to find all matching symbols.
Parameters
Name |
Description |
name |
The name of the symbol to look up. |
context |
The context to look up the symbol in. |
Return the Info for the matching string in the global context.
Synopsis
Declared in <mrdocs/Corpus.hpp>
Expected<std::reference_wrapper<Info const>>
lookup(std::string_view name) const;
Return Value
The Info for the symbol with the specified name in the global context, or an error if not found.
Parameters
Name |
Description |
name |
The name of the symbol to look up. |
Return the Info for the matching string in a given context.
Synopsis
Declared in <mrdocs/Corpus.hpp>
virtual
Expected<std::reference_wrapper<Info const>>
lookup(
SymbolID const& context,
std::string_view name) const = 0;
Return Value
The Info for the symbol with the specified name in the specified context, or an error if not found. If multiple symbols match, one is returned arbitrarily. Use traverse
to find all matching symbols.
Parameters
Name |
Description |
context |
The context to look up the symbol in. |
name |
The name of the symbol to look up. |
qualifiedName
overloads
Synopses
Declared in <mrdocs/Corpus.hpp>
std::string
qualifiedName(Info const& I) const;
Return the fully qualified name of the specified Info.
virtual
void
qualifiedName(
Info const& I,
std::string& temp) const = 0;
std::string
qualifiedName(
Info const& I,
SymbolID const& context) const;
Return a qualified name from the specified context.
virtual
void
qualifiedName(
Info const& I,
SymbolID const& context,
std::string& result) const = 0;
Return Value
A reference to the string temp
.
Parameters
Name |
Description |
I |
The Info to get the qualified name for. |
temp |
The string to store the result in. |
context |
The context to get the qualified name from. |
result |
The string to store the result in. |
Synopsis
Declared in <mrdocs/Corpus.hpp>
std::string
qualifiedName(Info const& I) const;
Return the fully qualified name of the specified Info.
Synopsis
Declared in <mrdocs/Corpus.hpp>
virtual
void
qualifiedName(
Info const& I,
std::string& temp) const = 0;
Description
This function returns the fully qualified name of the specified Info I
as a string.
The Info
parents are traversed to construct the fully qualified name which is stored in the string temp
.
Return Value
A reference to the string temp
.
Parameters
Name |
Description |
I |
The Info to get the qualified name for. |
temp |
The string to store the result in. |
Synopsis
Synopsis
Description
This function returns the qualified name of the specified Info I
from the context specified by the SymbolID context
.
If the context is a parent of I
, the qualified name is constructed relative to the context. For instance, if I
is A::B::C::D
and context is A::B
, the result is C::D
.
If the context is not a parent of I
, the qualified name is constructed relative to the global namespace with the prefix ::
.
Return Value
a qualified name from the specified context.
Parameters
Name |
Description |
I |
The Info 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 Info.
Synopses
Declared in <mrdocs/Corpus.hpp>
Visit the members of specified Info.
template<
std::derived_from<Info> T,
class F,
class... Args>
void
traverse(
T const& I,
F&& f,
Args...&&... args) const;
Visit the members of specified Info.
template<
std::derived_from<Info> T,
class F,
class... Args>
void
traverse(
TraverseOptions const& opts,
T const& I,
F&& f,
Args...&&... args) const;
Parameters
Name |
Description |
I |
The Info 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 Info.
Synopsis
Declared in <mrdocs/Corpus.hpp>
template<
std::derived_from<Info> T,
class F,
class... Args>
void
traverse(
T const& I,
F&& f,
Args...&&... args) const;
Description
This function invokes the specified function f
for each member of the specified Info I
.
For each member of I
, the function will invoke the function object fn
with a type derived from Info
as the first argument, followed by args...
.
The type of the first argument is determined by the InfoKind
of the Info
object.
Parameters
Name |
Description |
I |
The Info to visit. |
f |
The function to invoke. |
args |
The arguments to pass to the function. |
Visit the members of specified Info.
Synopsis
Declared in <mrdocs/Corpus.hpp>
template<
std::derived_from<Info> T,
class F,
class... Args>
void
traverse(
TraverseOptions const& opts,
T const& I,
F&& f,
Args...&&... args) const;
Description
This function invokes the specified function f
for each member of the specified Info I
.
For each member of I
, the function will invoke the function object fn
with a type derived from Info
as the first argument, followed by args...
.
The type of the first argument is determined by the InfoKind
of the Info
object.
Parameters
Name |
Description |
opts |
The options to traverse. |
I |
The Info to visit. |
f |
The function to invoke. |
args |
The arguments to pass to the function. |
Visit the specified Symbol IDs
Synopsis
Declared in <mrdocs/Corpus.hpp>
template<
range_of<SymbolID> R,
class F,
class... Args>
void
visitIDs(
R&& range,
F&& f,
Args...&&... args) const;
Description
This function invokes the specified function f
for each member of the specified range of Symbol IDs.
For each member of I
associated with the ID in range
, the function will invoke the function object fn
with a type derived from Info
as the first argument, followed by args...
.
The type of the first argument is determined by the InfoKind
of the Info
object.
Parameters
Name |
Description |
range |
A range of SymbolID objects. |
f |
The function to invoke. |
args |
The arguments to pass to the function. |
The configuration used to generate this corpus.
Synopsis
Synopsis
Declared in <mrdocs/Corpus.hpp>
explicit
Corpus(Config const& config_) noexcept;
Parameters
Name |
Description |
config_ |
The object to copy construct from |
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
struct DecltypeTypeInfo final
: TypeInfoCommonBase<TypeKind::Decltype>
Base Classes
Name |
Description |
Member Functions
Name |
Description |
Three‐way comparison operators |
Static Member Functions
Data Members
Name |
Static Data Members
Name |
Non-Member Functions
Name |
Description |
Return the inner type. |
|
Return the inner type. |
|
Return the inner type. |
|
Return the inner type. |
Three‐way comparison operators
Synopses
Declared in <mrdocs/Metadata/Type.hpp>
Three‐way comparison operator
constexpr
auto
operator<=>(DecltypeTypeInfo const& rhs) const = default;
Three‐way comparison operator
constexpr
auto
operator<=>(TypeInfoCommonBase<clang::mrdocs::TypeKind::Decltype> const& rhs) const = default;
Three‐way comparison operator
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
constexpr
auto
operator<=>(DecltypeTypeInfo const& rhs) const = default;
Return Value
The relative order of the objects
Parameters
Name |
Description |
rhs |
The right operand |
Three‐way comparison operator
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
constexpr
auto
operator<=>(TypeInfoCommonBase<clang::mrdocs::TypeKind::Decltype> const& rhs) const = default;
Return Value
The relative order of the objects
Parameters
Name |
Description |
rhs |
The right operand |
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
constexpr
static
bool
isArray() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
constexpr
static
bool
isAuto() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
constexpr
static
bool
isDecltype() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
constexpr
static
bool
isFunction() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
constexpr
static
bool
isLValueReference() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
constexpr
static
bool
isMemberPointer() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
constexpr
static
bool
isNamed() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
constexpr
static
bool
isPointer() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
constexpr
static
bool
isRValueReference() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
ExprInfo Operand;
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
constexpr static
TypeKind kind_id;
The default empty predicate.
Synopsis
Declared in <mrdocs/ADT/Optional.hpp>
struct DefaultEmptyPredicate;
Member Functions
Name |
Description
This predicate is true when t.empty() returns true
where t
is a T
.
Synopsis
Declared in <mrdocs/ADT/Optional.hpp>
template<std::ranges::range T>
constexpr
bool
operator()(T const& t) const noexcept;
Front‐end factory for producing Dom nodes.
Synopsis
Declared in <mrdocs/Metadata/DomCorpus.hpp>
class DomCorpus;
Member Functions
Name |
Description |
|
Constructor. |
|
Destructor. |
|
Construct a lazy Dom object representing the specified symbol. |
Return a Dom object representing the given symbol. |
|
Returns the Corpus associated with the Dom. |
|
|
Return a Dom value representing the Javadoc. |
Returns the Corpus associated with the Dom. |
|
Returns the Corpus associated with the Dom. |
Non-Member Functions
Name |
Description |
Return a list of the parent symbols of the specified Info. |
Description
Synopsis
Declared in <mrdocs/Metadata/DomCorpus.hpp>
DomCorpus(Corpus const& corpus);
Description
Ownership of the specified Corpus is not transferred; the caller is responsible for ensuring the lifetime extension of the object.
Parameters
Name |
Description |
corpus |
The Corpus whose metadata to use. |
Destructor.
Synopsis
Declared in <mrdocs/Metadata/DomCorpus.hpp>
virtual
~DomCorpus();
Construct a lazy Dom object representing the specified symbol.
Synopsis
Declared in <mrdocs/Metadata/DomCorpus.hpp>
virtual
dom::Object
construct(Info const& I) const;
Description
This function is called internally when a dom::Object
representing a symbol needs to be constructed because it was not found in the cache.
Return Value
A container of key and value pairs.
Parameters
Name |
Description |
I |
Base class with common properties of all symbols |
Return a Dom object representing the given symbol.
Synopsis
Declared in <mrdocs/Metadata/DomCorpus.hpp>
dom::Value
get(SymbolID const& id) const;
Return Value
A value containing the symbol contents, or null if id
is invalid.
Parameters
Name |
Description |
id |
The id of the symbol to return. |
Returns the Corpus associated with the Dom.
Synopsis
Declared in <mrdocs/Metadata/DomCorpus.hpp>
Corpus const&
getCorpus() const;
Return Value
the Corpus associated with the Dom.
Return a Dom value representing the Javadoc.
Synopsis
Declared in <mrdocs/Metadata/DomCorpus.hpp>
virtual
dom::Value
getJavadoc(Javadoc const& jd) const;
Description
The default implementation returns null. A Generator
should override this member and return a value that has suitable strings in the generator's output format.
Return Value
a Dom value representing the Javadoc.
Parameters
Name |
Description |
jd |
A processed Doxygen‐style comment attached to a declaration. |
Returns the Corpus associated with the Dom.
Synopsis
Declared in <mrdocs/Metadata/DomCorpus.hpp>
Corpus const&
operator*() const;
Return Value
the Corpus associated with the Dom.
Returns the Corpus associated with the Dom.
Synopsis
Declared in <mrdocs/Metadata/DomCorpus.hpp>
Corpus const*
operator‐>() const;
Return Value
the Corpus associated with the Dom.
Info for enum constants.
Synopsis
Declared in <mrdocs/Metadata/Info/EnumConstant.hpp>
struct EnumConstantInfo final
: InfoCommonBase<InfoKind::EnumConstant>
Base Classes
Name |
Description |
Base class for providing variant discriminator functions. |
Member Functions
Name |
Description |
|
Construct from |
Three‐way comparison operator |
Static Member Functions
Data Members
Name |
Description |
The initializer expression, if any |
Static Data Members
Name |
Non-Member Functions
Name |
Description |
Merges two Info objects. |
Construct from SymbolID
Synopsis
Declared in <mrdocs/Metadata/Info/EnumConstant.hpp>
explicit
EnumConstantInfo(SymbolID ID) noexcept;
Parameters
Name |
Description |
ID |
The object to construct from |
Three‐way comparison operator
Synopsis
Declared in <mrdocs/Metadata/Info.hpp>
auto
operator<=>(InfoCommonBase<clang::mrdocs::InfoKind::EnumConstant> const& rhs) const = default;
Return Value
The relative order of the objects
Parameters
Name |
Description |
rhs |
The right operand |
Synopsis
Declared in <mrdocs/Metadata/Info/InfoNodes.inc>
constexpr
static
bool
isConcept() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Info/InfoNodes.inc>
constexpr
static
bool
isEnum() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Info/InfoNodes.inc>
constexpr
static
bool
isEnumConstant() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Info/InfoNodes.inc>
constexpr
static
bool
isFunction() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Info/InfoNodes.inc>
constexpr
static
bool
isGuide() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Info/InfoNodes.inc>
constexpr
static
bool
isNamespace() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Info/InfoNodes.inc>
constexpr
static
bool
isNamespaceAlias() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Info/InfoNodes.inc>
constexpr
static
bool
isOverloads() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Info/InfoNodes.inc>
constexpr
static
bool
isRecord() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Info/InfoNodes.inc>
constexpr
static
bool
isTypedef() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Info/InfoNodes.inc>
constexpr
static
bool
isUsing() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Info/InfoNodes.inc>
constexpr
static
bool
isVariable() noexcept;
The initializer expression, if any
Synopsis
Declared in <mrdocs/Metadata/Info/EnumConstant.hpp>
ConstantExprInfo<uint64_t> Initializer;
Synopsis
Declared in <mrdocs/Metadata/Info.hpp>
constexpr static
InfoKind kind_id;
Synopsis
Declared in <mrdocs/Metadata/Info/Enum.hpp>
struct EnumInfo final
: InfoCommonBase<InfoKind::Enum>
Base Classes
Name |
Description |
Base class for providing variant discriminator functions. |
Member Functions
Name |
Description |
|
Construct from |
Three‐way comparison operator |
Static Member Functions
Data Members
Name |
Description |
The members of this scope. |
|
Static Data Members
Name |
Non-Member Functions
Name |
Description |
Merges two Info objects. |
Construct from SymbolID
Synopsis
Declared in <mrdocs/Metadata/Info/Enum.hpp>
explicit
EnumInfo(SymbolID ID) noexcept;
Parameters
Name |
Description |
ID |
The object to construct from |
Three‐way comparison operator
Synopsis
Declared in <mrdocs/Metadata/Info.hpp>
auto
operator<=>(InfoCommonBase<clang::mrdocs::InfoKind::Enum> const& rhs) const = default;
Return Value
The relative order of the objects
Parameters
Name |
Description |
rhs |
The right operand |
Synopsis
Declared in <mrdocs/Metadata/Info/InfoNodes.inc>
constexpr
static
bool
isConcept() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Info/InfoNodes.inc>
constexpr
static
bool
isEnum() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Info/InfoNodes.inc>
constexpr
static
bool
isEnumConstant() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Info/InfoNodes.inc>
constexpr
static
bool
isFunction() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Info/InfoNodes.inc>
constexpr
static
bool
isGuide() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Info/InfoNodes.inc>
constexpr
static
bool
isNamespace() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Info/InfoNodes.inc>
constexpr
static
bool
isNamespaceAlias() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Info/InfoNodes.inc>
constexpr
static
bool
isOverloads() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Info/InfoNodes.inc>
constexpr
static
bool
isRecord() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Info/InfoNodes.inc>
constexpr
static
bool
isTypedef() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Info/InfoNodes.inc>
constexpr
static
bool
isUsing() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Info/InfoNodes.inc>
constexpr
static
bool
isVariable() noexcept;
The members of this scope.
Synopsis
Declared in <mrdocs/Metadata/Info/Enum.hpp>
std::vector<SymbolID> Constants;
Description
All members are enum constants;
Synopsis
Declared in <mrdocs/Metadata/Info/Enum.hpp>
bool Scoped = false;
Synopsis
Declared in <mrdocs/Metadata/Info/Enum.hpp>
Polymorphic<TypeInfo> UnderlyingType = std::nullopt;
Synopsis
Declared in <mrdocs/Metadata/Info.hpp>
constexpr static
InfoKind kind_id;
Holds the description of an error, or success.
Synopsis
Declared in <mrdocs/Support/Error.hpp>
class Error final
Member Functions
Name |
Description |
|
Constructor. |
Assignment operators |
|
|
|
Return true if this holds an error. |
|
Return the source location. |
|
Return the error string. |
|
Return the reason string. |
|
Return the location string. |
|
Return true if this holds an error. |
|
Return true if this equals rhs. |
Friends
Name |
Description |
Non-Member Functions
Name |
Description |
Return a formatted error. |
Constructor.
Synopses
Declared in <mrdocs/Support/Error.hpp>
Constructor.
constexpr
Error() noexcept = default;
Constructor.
Constructor.
Constructor.
explicit
Error(std::exception const& ex);
Constructor.
explicit
Error(
std::string reason,
std::source_location loc = source_location::current());
Constructor.
explicit
Error(
std::error_code const& ec,
std::source_location loc = source_location::current());
Constructor.
Error(
std::vector<Error> const& errors,
std::source_location loc = source_location::current());
Parameters
Name |
Description |
reason |
A string indicating the cause of the failure. This must not be empty. |
loc |
The source location where the error occurred. |
ec |
The error code. |
errors |
The list of errors to combine. |
Constructor.
Synopsis
Declared in <mrdocs/Support/Error.hpp>
constexpr
Error() noexcept = default;
Description
A default constructed error is equivalent to success.
Constructor.
Synopsis
Declared in <mrdocs/Support/Error.hpp>
constexpr
Error(Error const& other) = default;
Parameters
Name |
Description |
other |
The object to copy construct from |
Constructor.
Synopsis
Declared in <mrdocs/Support/Error.hpp>
constexpr
Error(Error&& other) noexcept = default;
Parameters
Name |
Description |
other |
The object to move construct from |
Constructor.
Synopsis
Declared in <mrdocs/Support/Error.hpp>
explicit
Error(std::exception const& ex);
Description
The constructed object will always indicate a failure, even if the message in the exception is empty.
Parameters
Name |
Description |
ex |
The object to copy construct from |
Constructor.
Synopsis
Declared in <mrdocs/Support/Error.hpp>
explicit
Error(
std::string reason,
std::source_location loc = source_location::current());
Parameters
Name |
Description |
reason |
A string indicating the cause of the failure. This must not be empty. |
loc |
The source location where the error occurred. |
Constructor.
Synopsis
Declared in <mrdocs/Support/Error.hpp>
explicit
Error(
std::error_code const& ec,
std::source_location loc = source_location::current());
Parameters
Name |
Description |
ec |
The error code. |
loc |
The source location where the error occurred. |
Constructor.
Synopsis
Declared in <mrdocs/Support/Error.hpp>
Error(
std::vector<Error> const& errors,
std::source_location loc = source_location::current());
Description
This constructs a new error from a list of zero or more errors. If the list is empty, or if all the errors in the list indicate success, then newly constructed object will indicate success.
Parameters
Name |
Description |
errors |
The list of errors to combine. |
loc |
The source location where the error occurred. |
Assignment operators
Synopses
Declared in <mrdocs/Support/Error.hpp>
Assignment.
constexpr
Error&
operator=(Error const& other) = default;
Constructor.
constexpr
Error&
operator=(Error&& other) noexcept = default;
Assignment.
Synopsis
Return Value
Reference to the current object
Parameters
Name |
Description |
other |
The object to copy assign from |
Constructor.
Synopsis
Return Value
Reference to the current object
Parameters
Name |
Description |
other |
The object to move assign from |
Throw
overloads
Synopses
Preconditions
-
this‐>failed()
Throw Exception(this)
Synopsis
Declared in <mrdocs/Support/Error.hpp>
[[noreturn]]
void
Throw() const &;
Preconditions
-
this‐>failed()
Throw Exception(std::move(this))
Synopsis
Declared in <mrdocs/Support/Error.hpp>
[[noreturn]]
void
Throw() &&;
Preconditions
-
this‐>failed()
Return true if this holds an error.
Synopsis
Declared in <mrdocs/Support/Error.hpp>
constexpr
bool
failed() const noexcept;
Return Value
true if this holds an error.
Return the source location.
Synopsis
Declared in <mrdocs/Support/Error.hpp>
constexpr
std::source_location const&
location() const noexcept;
Return Value
the source location.
Return the error string.
Synopsis
Declared in <mrdocs/Support/Error.hpp>
constexpr
std::string const&
message() const noexcept;
Return Value
the error string.
Return the reason string.
Synopsis
Declared in <mrdocs/Support/Error.hpp>
constexpr
std::string const&
reason() const noexcept;
Return Value
the reason string.
Synopsis
Declared in <mrdocs/Support/Error.hpp>
constexpr
void
swap(Error& rhs) noexcept;
Return the location string.
Synopsis
Declared in <mrdocs/Support/Error.hpp>
constexpr
std::string const&
where() const noexcept;
Return Value
the location string.
Return true if this holds an error.
Synopsis
Declared in <mrdocs/Support/Error.hpp>
constexpr
explicit
operator bool() const noexcept;
Return Value
true if this holds an error.
Return true if this equals rhs.
Synopsis
Declared in <mrdocs/Support/Error.hpp>
constexpr
bool
operator==(Error const& rhs) const noexcept;
Return Value
true if this equals rhs.
Parameters
Name |
Description |
rhs |
The right operand |
Type of all exceptions thrown by the API.
Synopsis
Declared in <mrdocs/Support/Error.hpp>
class Exception final
: public std::exception
Base Classes
Name |
Description |
|
Member Functions
Synopsis
Declared in <mrdocs/Support/Error.hpp>
explicit
Exception(Error err) noexcept;
Parameters
Name |
Description |
err |
The object to construct from |
Synopsis
Declared in <__exception/exception.h>
[[__visibility__, __exclude_from_explicit_instantiation__, __abi_tag__]]
constexpr
exception&
operator=(exception const& value) noexcept = default;
Return the Error stored in the exception.
Synopsis
Declared in <mrdocs/Support/Error.hpp>
Error const&
error() const noexcept;
Return Value
the Error stored in the exception.
Return a null‐terminated error string.
Synopsis
Declared in <mrdocs/Support/Error.hpp>
virtual
char const*
what() const noexcept override;
Return Value
a null‐terminated error string.
A set of execution agents for performing concurrent work.
Synopsis
Declared in <mrdocs/Support/ExecutorGroup.hpp>
template<class Agent>
class ExecutorGroup
: public ExecutorGroupBase
Base Classes
Name |
Description |
Types
Name |
Member Functions
Name |
Description |
|
Construct from |
Submit work to be executed. |
|
Construct a new agent in the group. |
|
Block until all work has completed. |
Protected Data Members
Name |
Construct from ThreadPool
Synopsis
Declared in <mrdocs/Support/ExecutorGroup.hpp>
explicit
ExecutorGroup(ThreadPool& threadPool);
Parameters
Name |
Description |
threadPool |
The object to copy construct from |
Submit work to be executed.
Synopsis
Declared in <mrdocs/Support/ExecutorGroup.hpp>
template<
class F,
class... Args>
void
async(
F&& f,
Args...&&... args);
Description
The function object must have this equivalent signature:
void( Agent&, Args... );
Parameters
Name |
Description |
f |
The function to invoke. |
args |
Zero or more arguments to forward to the function. |
Construct a new agent in the group.
Synopsis
Declared in <mrdocs/Support/ExecutorGroup.hpp>
template<class... Args>
void
emplace(Args...&&... args);
Description
The behavior is undefined if there is any outstanding work or busy threads.
Parameters
Name |
Description |
args |
Zero or more arguments to forward to the agent constructor. |
Synopsis
Declared in <mrdocs/Support/ExecutorGroup.hpp>
class ExecutorGroupBase;
Types
Name |
Member Functions
Name |
Description |
|
Move constructor |
|
Destructor |
Block until all work has completed. |
Protected Member Functions
Name |
Description |
|
Construct from |
Protected Data Members
Derived Classes
Name |
Description |
A set of execution agents for performing concurrent work. |
Synopsis
Declared in <mrdocs/Support/ExecutorGroup.hpp>
template<class T>
using arg_t = ThreadPool::arg_t<T>;
Move constructor
Synopsis
Declared in <mrdocs/Support/ExecutorGroup.hpp>
ExecutorGroupBase(ExecutorGroupBase&& other) noexcept;
Parameters
Name |
Description |
other |
The object to move construct from |
Destructor
Synopsis
Declared in <mrdocs/Support/ExecutorGroup.hpp>
~ExecutorGroupBase();
Block until all work has completed.
Synopsis
Declared in <mrdocs/Support/ExecutorGroup.hpp>
[[nodiscard]]
std::vector<Error>
wait() noexcept;
Return Value
Zero or more errors which were thrown from submitted work.
Synopsis
Declared in <mrdocs/Support/ExecutorGroup.hpp>
struct AnyAgent;
Member Functions
Synopsis
Declared in <mrdocs/Support/ExecutorGroup.hpp>
virtual
~AnyAgent() = 0;
Synopsis
Declared in <mrdocs/Support/ExecutorGroup.hpp>
virtual
void*
get() noexcept = 0;
Synopsis
Declared in <mrdocs/Support/ExecutorGroup.hpp>
struct Impl;
Construct from ThreadPool
Synopsis
Declared in <mrdocs/Support/ExecutorGroup.hpp>
explicit
ExecutorGroupBase(ThreadPool& value);
Parameters
Name |
Description |
value |
The object to copy construct from |
Synopsis
Declared in <mrdocs/Support/ExecutorGroup.hpp>
void
post(any_callable<void(void*)>);
Synopsis
Declared in <mrdocs/Support/ExecutorGroup.hpp>
void
run(std::unique_lock<std::mutex>);
Synopsis
Declared in <mrdocs/Support/ExecutorGroup.hpp>
std::vector<std::unique_ptr<AnyAgent>> agents_;
Synopsis
Declared in <mrdocs/Support/ExecutorGroup.hpp>
std::unique_ptr<Impl> impl_;
Synopsis
Declared in <mrdocs/Support/ExecutorGroup.hpp>
std::deque<any_callable<void(void*)>> work_;
A container holding an error or a value.
Synopsis
Declared in <mrdocs/Support/Expected.hpp>
template<
class T,
class E = Error>
class Expected;
Member Functions
Name |
Description |
|
Constructors |
|
Destructors |
|
Assignment operators |
Dereference operators |
|
Member access operators |
|
Conversion to |
Data Members
Name |
|
|
Friends
Name |
Description |
Equality operator |
|
Equality operator |
|
Equality operator |
|
A container holding an error or a value. |
Non-Member Functions
Name |
Description |
Call a function for each file in a directory. |
|
Visit each file in a directory. |
|
Return the full path for single page output. |
|
Parse a string view |
|
Create a directory. |
|
Return the contents of a file as a string. |
|
Return the file type or an error |
|
Return an absolute path from a possibly relative path. |
|
Return an error if pathName is not absolute. |
|
Return an error if the path is not a directory. |
|
Register a JavaScript helper function |
Synopsis
Declared in <mrdocs/Support/Expected.hpp>
using error_type = E;
Synopsis
Declared in <mrdocs/Support/Expected.hpp>
template<class U>
using rebind = Expected<U, error_type>;
Synopsis
Declared in <mrdocs/Support/Expected.hpp>
using unexpected_type = Unexpected<E>;
Synopsis
Declared in <mrdocs/Support/Expected.hpp>
using value_type = T;
Constructors
Synopses
Declared in <mrdocs/Support/Expected.hpp>
Default constructor
constexpr
Expected() noexcept(std::is_nothrow_default_constructible_v<T>)
requires std::is_default_constructible_v<T>;
Copy constructor
Copy constructor
constexpr
Expected(Expected const& x) noexcept(std::is_nothrow_copy_constructible_v<T> && std::is_nothrow_copy_constructible_v<E>)
requires std::is_copy_constructible_v<T> &&
std::is_copy_constructible_v<E> &&
(!std::is_trivially_copy_constructible_v<T> ||
!std::is_trivially_copy_constructible_v<E>);
Copy constructor
template<
class U,
class G>
requires std::is_constructible_v<T, U const&> &&
std::is_constructible_v<E, G const&> &&
(!constructible_from_expected<U, G>)
constexpr
explicit(explicit_conv<const U &, const G &>)
Expected(Expected<U, G> const& x) noexcept(std::is_nothrow_constructible_v<T, const U &> && std::is_nothrow_constructible_v<E, const G &>);
Move constructor
Move constructor
constexpr
Expected(Expected&& x) noexcept(std::is_nothrow_move_constructible_v<T> && std::is_nothrow_move_constructible_v<E>)
requires std::is_move_constructible_v<T> &&
std::is_move_constructible_v<E> &&
(!std::is_trivially_move_constructible_v<T> ||
!std::is_trivially_move_constructible_v<E>);
Move constructor
template<
class U,
class G>
requires std::is_constructible_v<T, U> &&
std::is_constructible_v<E, G> &&
(!constructible_from_expected<U, G>)
constexpr
explicit(explicit_conv<U, G>)
Expected(Expected<U, G>&& x) noexcept(std::is_nothrow_constructible_v<T, U> && std::is_nothrow_constructible_v<E, G>);
Construct from Unexpected
template<class G = E>
requires std::is_constructible_v<E, G const&>
constexpr
explicit(!std::is_convertible_v<const G &, E>)
Expected(Unexpected<G> const& u) noexcept(std::is_nothrow_constructible_v<E, const G &>);
Construct from U
template<class U = T>
requires (!std::is_same_v<std::remove_cvref_t<U>, Expected>) &&
(!std::is_same_v<std::remove_cvref_t<U>, std::in_place_t>) &&
(!detail::isUnexpected<std::remove_cvref_t<U>>) &&
std::is_constructible_v<T, U>
constexpr
explicit(!std::is_convertible_v<U, T>)
Expected(U&& v) noexcept(std::is_nothrow_constructible_v<T, U>);
Construct from Unexpected
template<class G = E>
requires std::is_constructible_v<E, G>
constexpr
explicit(!std::is_convertible_v<G, E>)
Expected(Unexpected<G>&& u) noexcept(std::is_nothrow_constructible_v<E, G>);
template<class... Args>
requires std::is_constructible_v<T, Args...>
constexpr
explicit
Expected(
std::in_place_t,
Args...&&... args) noexcept(std::is_nothrow_constructible_v<T, Args...>);
template<class... Args>
requires std::is_constructible_v<E, Args...>
constexpr
explicit
Expected(
unexpect_t,
Args...&&... args) noexcept(std::is_nothrow_constructible_v<E, Args...>);
template<
class U,
class... Args>
requires std::is_constructible_v<T, std::initializer_list<U>&, Args...>
constexpr
explicit
Expected(
std::in_place_t,
std::initializer_list<U> il,
Args...&&... args) noexcept(std::is_nothrow_constructible_v<T, std::initializer_list<U> &, Args...>);
template<
class U,
class... Args>
requires std::is_constructible_v<E, std::initializer_list<U>&, Args...>
constexpr
explicit
Expected(
unexpect_t,
std::initializer_list<U> il,
Args...&&... args) noexcept(std::is_nothrow_constructible_v<E, std::initializer_list<U> &, Args...>);
Default constructor
Synopsis
Declared in <mrdocs/Support/Expected.hpp>
constexpr
Expected() noexcept(std::is_nothrow_default_constructible_v<T>)
requires std::is_default_constructible_v<T>;
Copy constructor
Synopsis
Declared in <mrdocs/Support/Expected.hpp>
Expected(Expected const& other) = default;
Parameters
Name |
Description |
other |
The object to copy construct from |
Copy constructor
Synopsis
Declared in <mrdocs/Support/Expected.hpp>
constexpr
Expected(Expected const& x) noexcept(std::is_nothrow_copy_constructible_v<T> && std::is_nothrow_copy_constructible_v<E>)
requires std::is_copy_constructible_v<T> &&
std::is_copy_constructible_v<E> &&
(!std::is_trivially_copy_constructible_v<T> ||
!std::is_trivially_copy_constructible_v<E>);
Parameters
Name |
Description |
x |
The object to copy construct from |
Copy constructor
Synopsis
Declared in <mrdocs/Support/Expected.hpp>
template<
class U,
class G>
requires std::is_constructible_v<T, U const&> &&
std::is_constructible_v<E, G const&> &&
(!constructible_from_expected<U, G>)
constexpr
explicit(explicit_conv<const U &, const G &>)
Expected(Expected<U, G> const& x) noexcept(std::is_nothrow_constructible_v<T, const U &> && std::is_nothrow_constructible_v<E, const G &>);
Parameters
Name |
Description |
x |
The object to copy construct from |
Move constructor
Synopsis
Declared in <mrdocs/Support/Expected.hpp>
Expected(Expected&& other) = default;
Parameters
Name |
Description |
other |
The object to move construct from |
Move constructor
Synopsis
Declared in <mrdocs/Support/Expected.hpp>
constexpr
Expected(Expected&& x) noexcept(std::is_nothrow_move_constructible_v<T> && std::is_nothrow_move_constructible_v<E>)
requires std::is_move_constructible_v<T> &&
std::is_move_constructible_v<E> &&
(!std::is_trivially_move_constructible_v<T> ||
!std::is_trivially_move_constructible_v<E>);
Parameters
Name |
Description |
x |
The object to move construct from |
Move constructor
Synopsis
Declared in <mrdocs/Support/Expected.hpp>
template<
class U,
class G>
requires std::is_constructible_v<T, U> &&
std::is_constructible_v<E, G> &&
(!constructible_from_expected<U, G>)
constexpr
explicit(explicit_conv<U, G>)
Expected(Expected<U, G>&& x) noexcept(std::is_nothrow_constructible_v<T, U> && std::is_nothrow_constructible_v<E, G>);
Parameters
Name |
Description |
x |
The object to move construct from |
Construct from Unexpected
Synopsis
Declared in <mrdocs/Support/Expected.hpp>
template<class G = E>
requires std::is_constructible_v<E, G const&>
constexpr
explicit(!std::is_convertible_v<const G &, E>)
Expected(Unexpected<G> const& u) noexcept(std::is_nothrow_constructible_v<E, const G &>);
Parameters
Name |
Description |
u |
The object to copy construct from |
Construct from U
Synopsis
Declared in <mrdocs/Support/Expected.hpp>
template<class U = T>
requires (!std::is_same_v<std::remove_cvref_t<U>, Expected>) &&
(!std::is_same_v<std::remove_cvref_t<U>, std::in_place_t>) &&
(!detail::isUnexpected<std::remove_cvref_t<U>>) &&
std::is_constructible_v<T, U>
constexpr
explicit(!std::is_convertible_v<U, T>)
Expected(U&& v) noexcept(std::is_nothrow_constructible_v<T, U>);
Parameters
Name |
Description |
v |
The object to move construct from |
Construct from Unexpected
Synopsis
Declared in <mrdocs/Support/Expected.hpp>
template<class G = E>
requires std::is_constructible_v<E, G>
constexpr
explicit(!std::is_convertible_v<G, E>)
Expected(Unexpected<G>&& u) noexcept(std::is_nothrow_constructible_v<E, G>);
Parameters
Name |
Description |
u |
The object to move construct from |
Synopsis
Declared in <mrdocs/Support/Expected.hpp>
template<class... Args>
requires std::is_constructible_v<T, Args...>
constexpr
explicit
Expected(
std::in_place_t,
Args...&&... args) noexcept(std::is_nothrow_constructible_v<T, Args...>);
Synopsis
Declared in <mrdocs/Support/Expected.hpp>
template<class... Args>
requires std::is_constructible_v<E, Args...>
constexpr
explicit
Expected(
unexpect_t,
Args...&&... args) noexcept(std::is_nothrow_constructible_v<E, Args...>);
Synopsis
Declared in <mrdocs/Support/Expected.hpp>
template<
class U,
class... Args>
requires std::is_constructible_v<T, std::initializer_list<U>&, Args...>
constexpr
explicit
Expected(
std::in_place_t,
std::initializer_list<U> il,
Args...&&... args) noexcept(std::is_nothrow_constructible_v<T, std::initializer_list<U> &, Args...>);
Synopsis
Declared in <mrdocs/Support/Expected.hpp>
template<
class U,
class... Args>
requires std::is_constructible_v<E, std::initializer_list<U>&, Args...>
constexpr
explicit
Expected(
unexpect_t,
std::initializer_list<U> il,
Args...&&... args) noexcept(std::is_nothrow_constructible_v<E, std::initializer_list<U> &, Args...>);
Destructors
Synopses
Declared in <mrdocs/Support/Expected.hpp>
Destructor
constexpr
~Expected() = default;
Destructor
constexpr
~Expected()
requires (!std::is_trivially_destructible_v<T>)
|| (!std::is_trivially_destructible_v<E>);
Destructor
Synopsis
Declared in <mrdocs/Support/Expected.hpp>
constexpr
~Expected() = default;
Destructor
Synopsis
Declared in <mrdocs/Support/Expected.hpp>
constexpr
~Expected()
requires (!std::is_trivially_destructible_v<T>)
|| (!std::is_trivially_destructible_v<E>);
Assignment operators
Synopses
Declared in <mrdocs/Support/Expected.hpp>
Copy assignment operator
Expected&
operator=(Expected const& other) = delete;
Copy assignment operator
constexpr
Expected&
operator=(Expected const& x) noexcept(std::is_nothrow_copy_constructible_v<T> && std::is_nothrow_copy_constructible_v<E> && std::is_nothrow_copy_assignable_v<T> && std::is_nothrow_copy_assignable_v<E>)
requires std::is_copy_assignable_v<T> &&
std::is_copy_constructible_v<T> &&
std::is_copy_assignable_v<E> &&
std::is_copy_constructible_v<E> &&
(std::is_nothrow_move_constructible_v<T> ||
std::is_nothrow_move_constructible_v<E>);
Move assignment operator
constexpr
Expected&
operator=(Expected&& x) noexcept(std::is_nothrow_move_constructible_v<T> && std::is_nothrow_move_constructible_v<E> && std::is_nothrow_move_assignable_v<T> && std::is_nothrow_move_assignable_v<E>)
requires std::is_move_assignable_v<T> &&
std::is_move_constructible_v<T> &&
std::is_move_assignable_v<E> &&
std::is_move_constructible_v<E> &&
(std::is_nothrow_move_constructible_v<T> ||
std::is_nothrow_move_constructible_v<E>);
Assignment operator
template<class G>
requires std::is_constructible_v<E, G const&> &&
std::is_assignable_v<E&, G const&> &&
(std::is_nothrow_constructible_v<E, G const&> ||
std::is_nothrow_move_constructible_v<T> ||
std::is_nothrow_move_constructible_v<E>)
constexpr
Expected&
operator=(Unexpected<G> const& e);
Assignment operator
template<class U = T>
requires (!std::is_same_v<Expected, std::remove_cvref_t<U>>) &&
(!detail::isUnexpected<std::remove_cvref_t<U>>) &&
std::is_constructible_v<T, U> &&
std::is_assignable_v<T&, U> &&
(std::is_nothrow_constructible_v<T, U> ||
std::is_nothrow_move_constructible_v<T> ||
std::is_nothrow_move_constructible_v<E>)
constexpr
Expected&
operator=(U&& v);
Assignment operator
template<class G>
requires std::is_constructible_v<E, G> &&
std::is_assignable_v<E&, G> &&
(std::is_nothrow_constructible_v<E, G> ||
std::is_nothrow_move_constructible_v<T> ||
std::is_nothrow_move_constructible_v<E>)
constexpr
Expected&
operator=(Unexpected<G>&& e);
Copy assignment operator
Synopsis
Return Value
Reference to the current object
Parameters
Name |
Description |
other |
The object to copy assign from |
Copy assignment operator
Synopsis
Declared in <mrdocs/Support/Expected.hpp>
constexpr
Expected&
operator=(Expected const& x) noexcept(std::is_nothrow_copy_constructible_v<T> && std::is_nothrow_copy_constructible_v<E> && std::is_nothrow_copy_assignable_v<T> && std::is_nothrow_copy_assignable_v<E>)
requires std::is_copy_assignable_v<T> &&
std::is_copy_constructible_v<T> &&
std::is_copy_assignable_v<E> &&
std::is_copy_constructible_v<E> &&
(std::is_nothrow_move_constructible_v<T> ||
std::is_nothrow_move_constructible_v<E>);
Return Value
Reference to the current object
Parameters
Name |
Description |
x |
The object to copy assign from |
Move assignment operator
Synopsis
Declared in <mrdocs/Support/Expected.hpp>
constexpr
Expected&
operator=(Expected&& x) noexcept(std::is_nothrow_move_constructible_v<T> && std::is_nothrow_move_constructible_v<E> && std::is_nothrow_move_assignable_v<T> && std::is_nothrow_move_assignable_v<E>)
requires std::is_move_assignable_v<T> &&
std::is_move_constructible_v<T> &&
std::is_move_assignable_v<E> &&
std::is_move_constructible_v<E> &&
(std::is_nothrow_move_constructible_v<T> ||
std::is_nothrow_move_constructible_v<E>);
Return Value
Reference to the current object
Parameters
Name |
Description |
x |
The object to move assign from |
Assignment operator
Synopsis
Declared in <mrdocs/Support/Expected.hpp>
template<class G>
requires std::is_constructible_v<E, G const&> &&
std::is_assignable_v<E&, G const&> &&
(std::is_nothrow_constructible_v<E, G const&> ||
std::is_nothrow_move_constructible_v<T> ||
std::is_nothrow_move_constructible_v<E>)
constexpr
Expected&
operator=(Unexpected<G> const& e);
Return Value
Reference to the current object
Parameters
Name |
Description |
e |
The object to copy assign from |
Assignment operator
Synopsis
Declared in <mrdocs/Support/Expected.hpp>
template<class U = T>
requires (!std::is_same_v<Expected, std::remove_cvref_t<U>>) &&
(!detail::isUnexpected<std::remove_cvref_t<U>>) &&
std::is_constructible_v<T, U> &&
std::is_assignable_v<T&, U> &&
(std::is_nothrow_constructible_v<T, U> ||
std::is_nothrow_move_constructible_v<T> ||
std::is_nothrow_move_constructible_v<E>)
constexpr
Expected&
operator=(U&& v);
Return Value
Reference to the current object
Parameters
Name |
Description |
v |
The object to move assign from |
Assignment operator
Synopsis
Declared in <mrdocs/Support/Expected.hpp>
template<class G>
requires std::is_constructible_v<E, G> &&
std::is_assignable_v<E&, G> &&
(std::is_nothrow_constructible_v<E, G> ||
std::is_nothrow_move_constructible_v<T> ||
std::is_nothrow_move_constructible_v<E>)
constexpr
Expected&
operator=(Unexpected<G>&& e);
Return Value
Reference to the current object
Parameters
Name |
Description |
e |
The object to move assign from |
Synopses
Declared in <mrdocs/Support/Expected.hpp>
template<class Fn>
requires std::is_constructible_v<E, const E>
constexpr
auto
and_then(Fn&& f) const &&;
template<class Fn>
requires std::is_constructible_v<E, E>
constexpr
auto
and_then(Fn&& f) &&;
template<class Fn>
requires std::is_constructible_v<E, E const&>
constexpr
auto
and_then(Fn&& f) const &;
template<class Fn>
requires std::is_constructible_v<E, E&>
constexpr
auto
and_then(Fn&& f) &;
Synopsis
Declared in <mrdocs/Support/Expected.hpp>
template<class Fn>
requires std::is_constructible_v<E, const E>
constexpr
auto
and_then(Fn&& f) const &&;
Synopsis
Declared in <mrdocs/Support/Expected.hpp>
template<class Fn>
requires std::is_constructible_v<E, E>
constexpr
auto
and_then(Fn&& f) &&;
Synopsis
Declared in <mrdocs/Support/Expected.hpp>
template<class Fn>
requires std::is_constructible_v<E, E const&>
constexpr
auto
and_then(Fn&& f) const &;
Synopsis
Declared in <mrdocs/Support/Expected.hpp>
template<class Fn>
requires std::is_constructible_v<E, E&>
constexpr
auto
and_then(Fn&& f) &;
Synopses
Declared in <mrdocs/Support/Expected.hpp>
template<class... Args>
requires std::is_nothrow_constructible_v<T, Args...>
constexpr
T&
emplace(Args...&&... args) noexcept;
template<
class U,
class... Args>
requires std::is_nothrow_constructible_v<
T, std::initializer_list<U>&, Args...>
constexpr
T&
emplace(
std::initializer_list<U> il,
Args...&&... args) noexcept;
Synopsis
Declared in <mrdocs/Support/Expected.hpp>
template<class... Args>
requires std::is_nothrow_constructible_v<T, Args...>
constexpr
T&
emplace(Args...&&... args) noexcept;
Synopsis
Declared in <mrdocs/Support/Expected.hpp>
template<
class U,
class... Args>
requires std::is_nothrow_constructible_v<
T, std::initializer_list<U>&, Args...>
constexpr
T&
emplace(
std::initializer_list<U> il,
Args...&&... args) noexcept;
Synopses
Synopsis
Declared in <mrdocs/Support/Expected.hpp>
constexpr
E const&
error() const & noexcept;
Synopsis
Declared in <mrdocs/Support/Expected.hpp>
constexpr
E&
error() & noexcept;
Synopsis
Declared in <mrdocs/Support/Expected.hpp>
constexpr
E const&&
error() const && noexcept;
Synopsis
Declared in <mrdocs/Support/Expected.hpp>
constexpr
E&&
error() && noexcept;
Synopses
Declared in <mrdocs/Support/Expected.hpp>
template<class G = E>
constexpr
E
error_or(G&& e) const &;
template<class G = E>
constexpr
E
error_or(G&& e) &&;
Synopsis
Declared in <mrdocs/Support/Expected.hpp>
template<class G = E>
constexpr
E
error_or(G&& e) const &;
Synopsis
Declared in <mrdocs/Support/Expected.hpp>
template<class G = E>
constexpr
E
error_or(G&& e) &&;
Synopsis
Declared in <mrdocs/Support/Expected.hpp>
[[nodiscard]]
constexpr
bool
has_value() const noexcept;
Dereference operators
Synopses
Declared in <mrdocs/Support/Expected.hpp>
[[nodiscard]]
constexpr
T const&
operator*() const & noexcept;
[[nodiscard]]
constexpr
T&
operator*() & noexcept;
[[nodiscard]]
constexpr
T const&&
operator*() const && noexcept;
[[nodiscard]]
constexpr
T&&
operator*() && noexcept;
Synopsis
Declared in <mrdocs/Support/Expected.hpp>
[[nodiscard]]
constexpr
T const&
operator*() const & noexcept;
Synopsis
Declared in <mrdocs/Support/Expected.hpp>
[[nodiscard]]
constexpr
T&
operator*() & noexcept;
Synopsis
Declared in <mrdocs/Support/Expected.hpp>
[[nodiscard]]
constexpr
T const&&
operator*() const && noexcept;
Synopsis
Declared in <mrdocs/Support/Expected.hpp>
[[nodiscard]]
constexpr
T&&
operator*() && noexcept;
Member access operators
Synopses
Declared in <mrdocs/Support/Expected.hpp>
[[nodiscard]]
constexpr
T const*
operator‐>() const noexcept;
[[nodiscard]]
constexpr
T*
operator‐>() noexcept;
Synopsis
Declared in <mrdocs/Support/Expected.hpp>
[[nodiscard]]
constexpr
T const*
operator‐>() const noexcept;
Synopsis
Declared in <mrdocs/Support/Expected.hpp>
[[nodiscard]]
constexpr
T*
operator‐>() noexcept;
Synopses
Declared in <mrdocs/Support/Expected.hpp>
template<class Fn>
requires std::is_constructible_v<T, const T>
constexpr
auto
or_else(Fn&& f) const &&;
template<class Fn>
requires std::is_constructible_v<T, T>
constexpr
auto
or_else(Fn&& f) &&;
template<class Fn>
requires std::is_constructible_v<T, T const&>
constexpr
auto
or_else(Fn&& f) const &;
template<class Fn>
requires std::is_constructible_v<T, T&>
constexpr
auto
or_else(Fn&& f) &;
Synopsis
Declared in <mrdocs/Support/Expected.hpp>
template<class Fn>
requires std::is_constructible_v<T, const T>
constexpr
auto
or_else(Fn&& f) const &&;
Synopsis
Declared in <mrdocs/Support/Expected.hpp>
template<class Fn>
requires std::is_constructible_v<T, T>
constexpr
auto
or_else(Fn&& f) &&;
Synopsis
Declared in <mrdocs/Support/Expected.hpp>
template<class Fn>
requires std::is_constructible_v<T, T const&>
constexpr
auto
or_else(Fn&& f) const &;
Synopsis
Declared in <mrdocs/Support/Expected.hpp>
template<class Fn>
requires std::is_constructible_v<T, T&>
constexpr
auto
or_else(Fn&& f) &;
Synopsis
Declared in <mrdocs/Support/Expected.hpp>
constexpr
void
swap(Expected& x) noexcept(std::is_nothrow_move_constructible_v<T> && std::is_nothrow_move_constructible_v<E> && std::is_nothrow_swappable_v<T &> && std::is_nothrow_swappable_v<E &>)
requires std::is_swappable_v<T> &&
std::is_swappable_v<E> &&
std::is_move_constructible_v<T> &&
std::is_move_constructible_v<E> &&
(std::is_nothrow_move_constructible_v<T> ||
std::is_nothrow_move_constructible_v<E>);
Synopses
Declared in <mrdocs/Support/Expected.hpp>
template<class Fn>
requires std::is_constructible_v<E, const E>
constexpr
auto
transform(Fn&& f) const &&;
template<class Fn>
requires std::is_constructible_v<E, E>
constexpr
auto
transform(Fn&& f) &&;
template<class Fn>
requires std::is_constructible_v<E, E const&>
constexpr
auto
transform(Fn&& f) const &;
template<class Fn>
requires std::is_constructible_v<E, E&>
constexpr
auto
transform(Fn&& f) &;
Synopsis
Declared in <mrdocs/Support/Expected.hpp>
template<class Fn>
requires std::is_constructible_v<E, const E>
constexpr
auto
transform(Fn&& f) const &&;
Synopsis
Declared in <mrdocs/Support/Expected.hpp>
template<class Fn>
requires std::is_constructible_v<E, E>
constexpr
auto
transform(Fn&& f) &&;
Synopsis
Declared in <mrdocs/Support/Expected.hpp>
template<class Fn>
requires std::is_constructible_v<E, E const&>
constexpr
auto
transform(Fn&& f) const &;
Synopsis
Declared in <mrdocs/Support/Expected.hpp>
template<class Fn>
requires std::is_constructible_v<E, E&>
constexpr
auto
transform(Fn&& f) &;
Synopses
Declared in <mrdocs/Support/Expected.hpp>
template<class Fn>
requires std::is_constructible_v<T, const T>
constexpr
auto
transform_error(Fn&& f) const &&;
template<class Fn>
requires std::is_constructible_v<T, T>
constexpr
auto
transform_error(Fn&& f) &&;
template<class Fn>
requires std::is_constructible_v<T, T const&>
constexpr
auto
transform_error(Fn&& f) const &;
template<class Fn>
requires std::is_constructible_v<T, T&>
constexpr
auto
transform_error(Fn&& f) &;
Synopsis
Declared in <mrdocs/Support/Expected.hpp>
template<class Fn>
requires std::is_constructible_v<T, const T>
constexpr
auto
transform_error(Fn&& f) const &&;
Synopsis
Declared in <mrdocs/Support/Expected.hpp>
template<class Fn>
requires std::is_constructible_v<T, T>
constexpr
auto
transform_error(Fn&& f) &&;
Synopsis
Declared in <mrdocs/Support/Expected.hpp>
template<class Fn>
requires std::is_constructible_v<T, T const&>
constexpr
auto
transform_error(Fn&& f) const &;
Synopsis
Declared in <mrdocs/Support/Expected.hpp>
template<class Fn>
requires std::is_constructible_v<T, T&>
constexpr
auto
transform_error(Fn&& f) &;
Synopses
Synopsis
Declared in <mrdocs/Support/Expected.hpp>
constexpr
T const&
value() const &;
Synopsis
Declared in <mrdocs/Support/Expected.hpp>
constexpr
T&
value() &;
Synopsis
Declared in <mrdocs/Support/Expected.hpp>
constexpr
T const&&
value() const &&;
Synopsis
Declared in <mrdocs/Support/Expected.hpp>
constexpr
T&&
value() &&;
Synopses
Declared in <mrdocs/Support/Expected.hpp>
template<class U>
constexpr
T
value_or(U&& v) && noexcept(std::is_nothrow_move_constructible_v<T> && std::is_nothrow_convertible_v<U, T>);
template<class U>
constexpr
T
value_or(U&& v) const & noexcept(std::is_nothrow_copy_constructible_v<T> && std::is_nothrow_convertible_v<U, T>);
Synopsis
Declared in <mrdocs/Support/Expected.hpp>
template<class U>
constexpr
T
value_or(U&& v) && noexcept(std::is_nothrow_move_constructible_v<T> && std::is_nothrow_convertible_v<U, T>);
Synopsis
Declared in <mrdocs/Support/Expected.hpp>
template<class U>
constexpr
T
value_or(U&& v) const & noexcept(std::is_nothrow_copy_constructible_v<T> && std::is_nothrow_convertible_v<U, T>);
Conversion to bool
Synopsis
Declared in <mrdocs/Support/Expected.hpp>
[[nodiscard]]
constexpr
explicit
operator bool() const noexcept;
Return Value
The object converted to bool
Synopsis
Declared in <mrdocs/Support/Expected.hpp>
E unex_;
Synopsis
Declared in <mrdocs/Support/Expected.hpp>
T val_;
Synopsis
Declared in <mrdocs/Support/Expected.hpp>
template<
class T,
class E>
requires std::is_void_v<T>
class Expected<T, E>;
Member Functions
Name |
Description |
|
Constructors |
|
Destructors |
|
Assignment operators |
Conversion to |
Data Members
Name |
|
|
Friends
Name |
Description |
Equality operator |
|
Equality operator |
|
A container holding an error or a value. |
Synopsis
Declared in <mrdocs/Support/Expected.hpp>
using error_type = E;
Synopsis
Declared in <mrdocs/Support/Expected.hpp>
template<class U>
using rebind = Expected<U, error_type>;
Synopsis
Declared in <mrdocs/Support/Expected.hpp>
using unexpected_type = Unexpected<E>;
Synopsis
Declared in <mrdocs/Support/Expected.hpp>
using value_type = T;
Constructors
Synopses
Declared in <mrdocs/Support/Expected.hpp>
Default constructor
constexpr
Expected() noexcept;
Copy constructor
Copy constructor
Move constructor
Move constructor
Construct from in_place_t
constexpr
explicit
Expected(std::in_place_t value) noexcept;
Construct from Unexpected
template<class G = E>
requires std::is_constructible_v<E, G const&>
constexpr
explicit(!std::is_convertible_v<const G &, E>)
Expected(Unexpected<G> const& u) noexcept(std::is_nothrow_constructible_v<E, const G &>);
Construct from Unexpected
template<class G = E>
requires std::is_constructible_v<E, G>
constexpr
explicit(!std::is_convertible_v<G, E>)
Expected(Unexpected<G>&& u) noexcept(std::is_nothrow_constructible_v<E, G>);
Construct from Expected
template<
class U,
class G>
requires std::is_void_v<U> &&
std::is_constructible_v<E, G const&> &&
(!constructible_from_expected<U, G>)
constexpr
explicit(!std::is_convertible_v<const G &, E>)
Expected(Expected<U, G> const& x) noexcept(std::is_nothrow_constructible_v<E, const G &>);
Construct from Expected
template<
class U,
class G>
requires std::is_void_v<U> &&
std::is_constructible_v<E, G> &&
(!constructible_from_expected<U, G>)
constexpr
explicit(!std::is_convertible_v<G, E>)
Expected(Expected<U, G>&& x) noexcept(std::is_nothrow_constructible_v<E, G>);
template<class... Args>
requires std::is_constructible_v<E, Args...>
constexpr
explicit
Expected(
unexpect_t,
Args...&&... args) noexcept(std::is_nothrow_constructible_v<E, Args...>);
template<
class U,
class... Args>
requires std::is_constructible_v<E, std::initializer_list<U>&, Args...>
constexpr
explicit
Expected(
unexpect_t,
std::initializer_list<U> il,
Args...&&... args) noexcept(std::is_nothrow_constructible_v<E, std::initializer_list<U> &, Args...>);
Default constructor
Synopsis
Declared in <mrdocs/Support/Expected.hpp>
constexpr
Expected() noexcept;
Copy constructor
Synopsis
Declared in <mrdocs/Support/Expected.hpp>
Expected(Expected const& other) = default;
Parameters
Name |
Description |
other |
The object to copy construct from |
Copy constructor
Synopsis
Declared in <mrdocs/Support/Expected.hpp>
constexpr
Expected(Expected const& x) noexcept(std::is_nothrow_copy_constructible_v<E>)
requires std::is_copy_constructible_v<E> &&
(!std::is_trivially_copy_constructible_v<E>);
Parameters
Name |
Description |
x |
The object to copy construct from |
Move constructor
Synopsis
Declared in <mrdocs/Support/Expected.hpp>
Expected(Expected&& other) = default;
Parameters
Name |
Description |
other |
The object to move construct from |
Move constructor
Synopsis
Declared in <mrdocs/Support/Expected.hpp>
constexpr
Expected(Expected&& x) noexcept(std::is_nothrow_move_constructible_v<E>)
requires std::is_move_constructible_v<E> &&
(!std::is_trivially_move_constructible_v<E>);
Parameters
Name |
Description |
x |
The object to move construct from |
Construct from in_place_t
Synopsis
Declared in <mrdocs/Support/Expected.hpp>
constexpr
explicit
Expected(std::in_place_t value) noexcept;
Parameters
Name |
Description |
value |
The object to construct from |
Construct from Unexpected
Synopsis
Declared in <mrdocs/Support/Expected.hpp>
template<class G = E>
requires std::is_constructible_v<E, G const&>
constexpr
explicit(!std::is_convertible_v<const G &, E>)
Expected(Unexpected<G> const& u) noexcept(std::is_nothrow_constructible_v<E, const G &>);
Parameters
Name |
Description |
u |
The object to copy construct from |
Construct from Unexpected
Synopsis
Declared in <mrdocs/Support/Expected.hpp>
template<class G = E>
requires std::is_constructible_v<E, G>
constexpr
explicit(!std::is_convertible_v<G, E>)
Expected(Unexpected<G>&& u) noexcept(std::is_nothrow_constructible_v<E, G>);
Parameters
Name |
Description |
u |
The object to move construct from |
Construct from Expected
Synopsis
Declared in <mrdocs/Support/Expected.hpp>
template<
class U,
class G>
requires std::is_void_v<U> &&
std::is_constructible_v<E, G const&> &&
(!constructible_from_expected<U, G>)
constexpr
explicit(!std::is_convertible_v<const G &, E>)
Expected(Expected<U, G> const& x) noexcept(std::is_nothrow_constructible_v<E, const G &>);
Parameters
Name |
Description |
x |
The object to copy construct from |
Construct from Expected
Synopsis
Declared in <mrdocs/Support/Expected.hpp>
template<
class U,
class G>
requires std::is_void_v<U> &&
std::is_constructible_v<E, G> &&
(!constructible_from_expected<U, G>)
constexpr
explicit(!std::is_convertible_v<G, E>)
Expected(Expected<U, G>&& x) noexcept(std::is_nothrow_constructible_v<E, G>);
Parameters
Name |
Description |
x |
The object to move construct from |
Synopsis
Declared in <mrdocs/Support/Expected.hpp>
template<class... Args>
requires std::is_constructible_v<E, Args...>
constexpr
explicit
Expected(
unexpect_t,
Args...&&... args) noexcept(std::is_nothrow_constructible_v<E, Args...>);
Synopsis
Declared in <mrdocs/Support/Expected.hpp>
template<
class U,
class... Args>
requires std::is_constructible_v<E, std::initializer_list<U>&, Args...>
constexpr
explicit
Expected(
unexpect_t,
std::initializer_list<U> il,
Args...&&... args) noexcept(std::is_nothrow_constructible_v<E, std::initializer_list<U> &, Args...>);
Destructors
Synopses
Synopsis
Declared in <mrdocs/Support/Expected.hpp>
constexpr
~Expected() = default;
Destructor
Synopsis
Declared in <mrdocs/Support/Expected.hpp>
constexpr
~Expected()
requires (!std::is_trivially_destructible_v<E>);
Assignment operators
Synopses
Declared in <mrdocs/Support/Expected.hpp>
Copy assignment operator
Expected&
operator=(Expected const& other) = delete;
Copy assignment operator
constexpr
Expected&
operator=(Expected const& x) noexcept(std::is_nothrow_copy_constructible_v<E> && std::is_nothrow_copy_assignable_v<E>)
requires std::is_copy_constructible_v<E> &&
std::is_copy_assignable_v<E>;
Move assignment operator
constexpr
Expected&
operator=(Expected&& x) noexcept(std::is_nothrow_move_constructible_v<E> && std::is_nothrow_move_assignable_v<E>)
requires std::is_move_constructible_v<E> &&
std::is_move_assignable_v<E>;
Assignment operator
template<class G>
requires std::is_constructible_v<E, G const&> &&
std::is_assignable_v<E&, G const&>
constexpr
Expected&
operator=(Unexpected<G> const& e);
Assignment operator
template<class G>
requires std::is_constructible_v<E, G> &&
std::is_assignable_v<E&, G>
constexpr
Expected&
operator=(Unexpected<G>&& e);
Copy assignment operator
Synopsis
Return Value
Reference to the current object
Parameters
Name |
Description |
other |
The object to copy assign from |
Copy assignment operator
Synopsis
Declared in <mrdocs/Support/Expected.hpp>
constexpr
Expected&
operator=(Expected const& x) noexcept(std::is_nothrow_copy_constructible_v<E> && std::is_nothrow_copy_assignable_v<E>)
requires std::is_copy_constructible_v<E> &&
std::is_copy_assignable_v<E>;
Return Value
Reference to the current object
Parameters
Name |
Description |
x |
The object to copy assign from |
Move assignment operator
Synopsis
Declared in <mrdocs/Support/Expected.hpp>
constexpr
Expected&
operator=(Expected&& x) noexcept(std::is_nothrow_move_constructible_v<E> && std::is_nothrow_move_assignable_v<E>)
requires std::is_move_constructible_v<E> &&
std::is_move_assignable_v<E>;
Return Value
Reference to the current object
Parameters
Name |
Description |
x |
The object to move assign from |
Assignment operator
Synopsis
Declared in <mrdocs/Support/Expected.hpp>
template<class G>
requires std::is_constructible_v<E, G const&> &&
std::is_assignable_v<E&, G const&>
constexpr
Expected&
operator=(Unexpected<G> const& e);
Return Value
Reference to the current object
Parameters
Name |
Description |
e |
The object to copy assign from |
Assignment operator
Synopsis
Declared in <mrdocs/Support/Expected.hpp>
template<class G>
requires std::is_constructible_v<E, G> &&
std::is_assignable_v<E&, G>
constexpr
Expected&
operator=(Unexpected<G>&& e);
Return Value
Reference to the current object
Parameters
Name |
Description |
e |
The object to move assign from |
Synopses
Declared in <mrdocs/Support/Expected.hpp>
template<class Fn>
requires std::is_constructible_v<E, const E>
constexpr
auto
and_then(Fn&& f) const &&;
template<class Fn>
requires std::is_constructible_v<E, E>
constexpr
auto
and_then(Fn&& f) &&;
template<class Fn>
requires std::is_constructible_v<E, E const&>
constexpr
auto
and_then(Fn&& f) const &;
template<class Fn>
requires std::is_constructible_v<E, E&>
constexpr
auto
and_then(Fn&& f) &;
Synopsis
Declared in <mrdocs/Support/Expected.hpp>
template<class Fn>
requires std::is_constructible_v<E, const E>
constexpr
auto
and_then(Fn&& f) const &&;
Synopsis
Declared in <mrdocs/Support/Expected.hpp>
template<class Fn>
requires std::is_constructible_v<E, E>
constexpr
auto
and_then(Fn&& f) &&;
Synopsis
Declared in <mrdocs/Support/Expected.hpp>
template<class Fn>
requires std::is_constructible_v<E, E const&>
constexpr
auto
and_then(Fn&& f) const &;
Synopsis
Declared in <mrdocs/Support/Expected.hpp>
template<class Fn>
requires std::is_constructible_v<E, E&>
constexpr
auto
and_then(Fn&& f) &;
Synopsis
Declared in <mrdocs/Support/Expected.hpp>
constexpr
void
emplace() noexcept;
Synopses
Synopsis
Declared in <mrdocs/Support/Expected.hpp>
constexpr
E const&
error() const & noexcept;
Synopsis
Declared in <mrdocs/Support/Expected.hpp>
constexpr
E&
error() & noexcept;
Synopsis
Declared in <mrdocs/Support/Expected.hpp>
constexpr
E const&&
error() const && noexcept;
Synopsis
Declared in <mrdocs/Support/Expected.hpp>
constexpr
E&&
error() && noexcept;
Synopses
Declared in <mrdocs/Support/Expected.hpp>
template<class G = E>
constexpr
E
error_or(G&& e) const &;
template<class G = E>
constexpr
E
error_or(G&& e) &&;
Synopsis
Declared in <mrdocs/Support/Expected.hpp>
template<class G = E>
constexpr
E
error_or(G&& e) const &;
Synopsis
Declared in <mrdocs/Support/Expected.hpp>
template<class G = E>
constexpr
E
error_or(G&& e) &&;
Synopsis
Declared in <mrdocs/Support/Expected.hpp>
[[nodiscard]]
constexpr
bool
has_value() const noexcept;
Synopsis
Declared in <mrdocs/Support/Expected.hpp>
constexpr
void
operator*() const noexcept;
Synopses
Declared in <mrdocs/Support/Expected.hpp>
template<class Fn>
constexpr
auto
or_else(Fn&& f) const &&;
template<class Fn>
constexpr
auto
or_else(Fn&& f) &&;
template<class Fn>
constexpr
auto
or_else(Fn&& f) const &;
template<class Fn>
constexpr
auto
or_else(Fn&& f) &;
Synopsis
Declared in <mrdocs/Support/Expected.hpp>
template<class Fn>
constexpr
auto
or_else(Fn&& f) const &&;
Synopsis
Declared in <mrdocs/Support/Expected.hpp>
template<class Fn>
constexpr
auto
or_else(Fn&& f) &&;
Synopsis
Declared in <mrdocs/Support/Expected.hpp>
template<class Fn>
constexpr
auto
or_else(Fn&& f) const &;
Synopsis
Declared in <mrdocs/Support/Expected.hpp>
template<class Fn>
constexpr
auto
or_else(Fn&& f) &;
Synopsis
Declared in <mrdocs/Support/Expected.hpp>
constexpr
void
swap(Expected& x) noexcept(std::is_nothrow_swappable_v<E &> && std::is_nothrow_move_constructible_v<E>)
requires std::is_swappable_v<E> &&
std::is_move_constructible_v<E>;
Synopses
Declared in <mrdocs/Support/Expected.hpp>
template<class Fn>
requires std::is_constructible_v<E, const E>
constexpr
auto
transform(Fn&& f) const &&;
template<class Fn>
requires std::is_constructible_v<E, E>
constexpr
auto
transform(Fn&& f) &&;
template<class Fn>
requires std::is_constructible_v<E, E const&>
constexpr
auto
transform(Fn&& f) const &;
template<class Fn>
requires std::is_constructible_v<E, E&>
constexpr
auto
transform(Fn&& f) &;
Synopsis
Declared in <mrdocs/Support/Expected.hpp>
template<class Fn>
requires std::is_constructible_v<E, const E>
constexpr
auto
transform(Fn&& f) const &&;
Synopsis
Declared in <mrdocs/Support/Expected.hpp>
template<class Fn>
requires std::is_constructible_v<E, E>
constexpr
auto
transform(Fn&& f) &&;
Synopsis
Declared in <mrdocs/Support/Expected.hpp>
template<class Fn>
requires std::is_constructible_v<E, E const&>
constexpr
auto
transform(Fn&& f) const &;
Synopsis
Declared in <mrdocs/Support/Expected.hpp>
template<class Fn>
requires std::is_constructible_v<E, E&>
constexpr
auto
transform(Fn&& f) &;
Synopses
Declared in <mrdocs/Support/Expected.hpp>
template<class Fn>
constexpr
auto
transform_error(Fn&& f) const &&;
template<class Fn>
constexpr
auto
transform_error(Fn&& f) &&;
template<class Fn>
constexpr
auto
transform_error(Fn&& f) const &;
template<class Fn>
constexpr
auto
transform_error(Fn&& f) &;
Synopsis
Declared in <mrdocs/Support/Expected.hpp>
template<class Fn>
constexpr
auto
transform_error(Fn&& f) const &&;
Synopsis
Declared in <mrdocs/Support/Expected.hpp>
template<class Fn>
constexpr
auto
transform_error(Fn&& f) &&;
Synopsis
Declared in <mrdocs/Support/Expected.hpp>
template<class Fn>
constexpr
auto
transform_error(Fn&& f) const &;
Synopsis
Declared in <mrdocs/Support/Expected.hpp>
template<class Fn>
constexpr
auto
transform_error(Fn&& f) &;
Synopses
Synopsis
Declared in <mrdocs/Support/Expected.hpp>
constexpr
void
value() const &;
Synopsis
Declared in <mrdocs/Support/Expected.hpp>
constexpr
void
value() &&;
Conversion to bool
Synopsis
Declared in <mrdocs/Support/Expected.hpp>
[[nodiscard]]
constexpr
explicit
operator bool() const noexcept;
Return Value
The object converted to bool
Synopsis
Declared in <mrdocs/Support/Expected.hpp>
E unex_;
Synopsis
Declared in <mrdocs/Support/Expected.hpp>
/* implementation-defined */ void_;
Synopsis
Declared in <mrdocs/Metadata/Specifiers.hpp>
struct ExplicitInfo;
Member Functions
Name |
Description |
Three‐way comparison operator |
Data Members
Non-Member Functions
Name |
Description |
Convert ExplicitInfo to a string. |
Three‐way comparison operator
Synopsis
Declared in <mrdocs/Metadata/Specifiers.hpp>
constexpr
auto
operator<=>(ExplicitInfo const& rhs) const = default;
Return Value
The relative order of the objects
Parameters
Name |
Description |
rhs |
The right operand |
Whether an explicit‐specifier was user‐written.
Synopsis
Declared in <mrdocs/Metadata/Specifiers.hpp>
bool Implicit = true;
The evaluated exception specification.
Synopsis
Declared in <mrdocs/Metadata/Specifiers.hpp>
ExplicitKind Kind = ExplicitKind::False;
The operand of the explicit‐specifier, if any.
Synopsis
Declared in <mrdocs/Metadata/Specifiers.hpp>
std::string Operand;
Represents an expression
Synopsis
Declared in <mrdocs/Metadata/Expression.hpp>
struct ExprInfo;
Member Functions
Name |
Description |
Three‐way comparison operator |
Data Members
Name |
Description |
The expression, as written |
Derived Classes
Name |
Description |
Represents an expression with a (possibly known) value |
Three‐way comparison operator
Synopsis
Declared in <mrdocs/Metadata/Expression.hpp>
constexpr
auto
operator<=>(ExprInfo const& rhs) const = default;
Return Value
The relative order of the objects
Parameters
Name |
Description |
rhs |
The right operand |
The expression, as written
Synopsis
Declared in <mrdocs/Metadata/Expression.hpp>
std::string Written;
A format string with source location.
Synopsis
Declared in <mrdocs/Support/Error.hpp>
template<class... Args>
struct FormatString;
Member Functions
Name |
|
Non-Member Functions
Name |
Description |
Return a formatted error. |
Synopsis
Declared in <mrdocs/Support/Error.hpp>
template<class T>
FormatString(
T const& fs_,
std::source_location loc_ = source_location::current());
Synopsis
Declared in <mrdocs/Support/Error.hpp>
std::string_view fs;
Synopsis
Declared in <mrdocs/Support/Error.hpp>
std::source_location loc;
Info for friend declarations.
Synopsis
Declared in <mrdocs/Metadata/Info/Friend.hpp>
struct FriendInfo final
Description
‐ Friendship is not transitive ‐ Friendship is not inherited ‐ Access specifiers have no effect on the meaning of friend declarations
Befriended type.
Synopsis
Declared in <mrdocs/Metadata/Info/Friend.hpp>
Polymorphic<TypeInfo> Type = std::nullopt;
Befriended symbol.
Synopsis
Declared in <mrdocs/Metadata/Info/Friend.hpp>
SymbolID id = = SymbolID::invalid;
Synopsis
Declared in <mrdocs/Metadata/Info/Function.hpp>
struct FunctionInfo final
: InfoCommonBase<InfoKind::Function>
Base Classes
Name |
Description |
Base class for providing variant discriminator functions. |
Member Functions
Name |
Description |
|
Construct from |
Three‐way comparison operators |
Static Member Functions
Data Members
Name |
Description |
The class of function this is |
|
List of parameters. |
|
Info about the return type of this function. |
|
When present, this function is a template or specialization. |
Static Data Members
Name |
Non-Member Functions
Synopsis
Declared in <mrdocs/Metadata/Info/Function.hpp>
explicit
FunctionInfo(SymbolID const& ID) noexcept;
Parameters
Name |
Description |
ID |
The object to copy construct from |
Three‐way comparison operators
Synopses
Declared in <mrdocs/Metadata/Info/Function.hpp>
Three‐way comparison operator
std::strong_ordering
operator<=>(FunctionInfo const& other) const;
Three‐way comparison operator
auto
operator<=>(InfoCommonBase<clang::mrdocs::InfoKind::Function> const& rhs) const = default;
Three‐way comparison operator
Synopsis
Declared in <mrdocs/Metadata/Info/Function.hpp>
std::strong_ordering
operator<=>(FunctionInfo const& other) const;
Return Value
The relative order of the objects
Parameters
Name |
Description |
other |
The right operand |
Three‐way comparison operator
Synopsis
Declared in <mrdocs/Metadata/Info.hpp>
auto
operator<=>(InfoCommonBase<clang::mrdocs::InfoKind::Function> const& rhs) const = default;
Return Value
The relative order of the objects
Parameters
Name |
Description |
rhs |
The right operand |
Synopsis
Declared in <mrdocs/Metadata/Info/InfoNodes.inc>
constexpr
static
bool
isConcept() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Info/InfoNodes.inc>
constexpr
static
bool
isEnum() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Info/InfoNodes.inc>
constexpr
static
bool
isEnumConstant() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Info/InfoNodes.inc>
constexpr
static
bool
isFunction() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Info/InfoNodes.inc>
constexpr
static
bool
isGuide() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Info/InfoNodes.inc>
constexpr
static
bool
isNamespace() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Info/InfoNodes.inc>
constexpr
static
bool
isNamespaceAlias() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Info/InfoNodes.inc>
constexpr
static
bool
isOverloads() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Info/InfoNodes.inc>
constexpr
static
bool
isRecord() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Info/InfoNodes.inc>
constexpr
static
bool
isTypedef() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Info/InfoNodes.inc>
constexpr
static
bool
isUsing() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Info/InfoNodes.inc>
constexpr
static
bool
isVariable() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Info/Function.hpp>
std::vector<std::string> Attributes;
The class of function this is
Synopsis
Declared in <mrdocs/Metadata/Info/Function.hpp>
FunctionClass Class = FunctionClass::Normal;
Synopsis
Declared in <mrdocs/Metadata/Info/Function.hpp>
ConstexprKind Constexpr = ConstexprKind::None;
Synopsis
Declared in <mrdocs/Metadata/Info/Function.hpp>
ExplicitInfo Explicit;
Synopsis
Declared in <mrdocs/Metadata/Info/Function.hpp>
bool HasOverrideAttr = false;
Synopsis
Declared in <mrdocs/Metadata/Info/Function.hpp>
bool HasTrailingReturn = false;
Synopsis
Declared in <mrdocs/Metadata/Info/Function.hpp>
bool IsConst = false;
Synopsis
Declared in <mrdocs/Metadata/Info/Function.hpp>
bool IsDefaulted = false;
Synopsis
Declared in <mrdocs/Metadata/Info/Function.hpp>
bool IsDeleted = false;
Synopsis
Declared in <mrdocs/Metadata/Info/Function.hpp>
bool IsDeletedAsWritten = false;
Synopsis
Declared in <mrdocs/Metadata/Info/Function.hpp>
bool IsExplicitObjectMemberFunction = false;
Synopsis
Declared in <mrdocs/Metadata/Info/Function.hpp>
bool IsExplicitlyDefaulted = false;
Synopsis
Declared in <mrdocs/Metadata/Info/Function.hpp>
bool IsFinal = false;
Synopsis
Declared in <mrdocs/Metadata/Info/Function.hpp>
bool IsNoReturn = false;
Synopsis
Declared in <mrdocs/Metadata/Info/Function.hpp>
bool IsNodiscard = false;
Synopsis
Declared in <mrdocs/Metadata/Info/Function.hpp>
bool IsPure = false;
Synopsis
Declared in <mrdocs/Metadata/Info/Function.hpp>
bool IsRecordMethod = false;
Synopsis
Declared in <mrdocs/Metadata/Info/Function.hpp>
bool IsVariadic = false;
Synopsis
Declared in <mrdocs/Metadata/Info/Function.hpp>
bool IsVirtual = false;
Synopsis
Declared in <mrdocs/Metadata/Info/Function.hpp>
bool IsVirtualAsWritten = false;
Synopsis
Declared in <mrdocs/Metadata/Info/Function.hpp>
bool IsVolatile = false;
Synopsis
Declared in <mrdocs/Metadata/Info/Function.hpp>
NoexceptInfo Noexcept;
Synopsis
Declared in <mrdocs/Metadata/Info/Function.hpp>
OperatorKind OverloadedOperator = OperatorKind::None;
List of parameters.
Synopsis
Declared in <mrdocs/Metadata/Info/Function.hpp>
std::vector<Param> Params;
Synopsis
Declared in <mrdocs/Metadata/Info/Function.hpp>
ReferenceKind RefQualifier = ReferenceKind::None;
Synopsis
Declared in <mrdocs/Metadata/Info/Function.hpp>
ExprInfo Requires;
Info about the return type of this function.
Synopsis
Declared in <mrdocs/Metadata/Info/Function.hpp>
Polymorphic<TypeInfo> ReturnType = std::nullopt;
Synopsis
Declared in <mrdocs/Metadata/Info/Function.hpp>
StorageClassKind StorageClass = StorageClassKind::None;
When present, this function is a template or specialization.
Synopsis
Declared in <mrdocs/Metadata/Info/Function.hpp>
std::optional<TemplateInfo> Template;
Synopsis
Declared in <mrdocs/Metadata/Info.hpp>
constexpr static
InfoKind kind_id;
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
struct FunctionTypeInfo final
: TypeInfoCommonBase<TypeKind::Function>
Base Classes
Name |
Description |
Member Functions
Name |
Description |
Three‐way comparison operators |
Static Member Functions
Data Members
Static Data Members
Name |
Non-Member Functions
Name |
Description |
Return the inner type. |
|
Return the inner type. |
|
Return the inner type. |
|
Return the inner type. |
Three‐way comparison operators
Synopses
Declared in <mrdocs/Metadata/Type.hpp>
Three‐way comparison operator
std::strong_ordering
operator<=>(FunctionTypeInfo const& rhs) const;
Three‐way comparison operator
constexpr
auto
operator<=>(TypeInfoCommonBase<clang::mrdocs::TypeKind::Function> const& rhs) const = default;
Three‐way comparison operator
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
std::strong_ordering
operator<=>(FunctionTypeInfo const& rhs) const;
Return Value
The relative order of the objects
Parameters
Name |
Description |
rhs |
The right operand |
Three‐way comparison operator
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
constexpr
auto
operator<=>(TypeInfoCommonBase<clang::mrdocs::TypeKind::Function> const& rhs) const = default;
Return Value
The relative order of the objects
Parameters
Name |
Description |
rhs |
The right operand |
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
constexpr
static
bool
isArray() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
constexpr
static
bool
isAuto() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
constexpr
static
bool
isDecltype() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
constexpr
static
bool
isFunction() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
constexpr
static
bool
isLValueReference() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
constexpr
static
bool
isMemberPointer() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
constexpr
static
bool
isNamed() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
constexpr
static
bool
isPointer() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
constexpr
static
bool
isRValueReference() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
NoexceptInfo ExceptionSpec;
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
bool IsVariadic = false;
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
std::vector<Polymorphic<TypeInfo>> ParamTypes;
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
ReferenceKind RefQualifier = ReferenceKind::None;
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
Polymorphic<TypeInfo> ReturnType = std::nullopt;
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
constexpr static
TypeKind kind_id;
Base class for documentation generators.
Synopsis
Declared in <mrdocs/Generator.hpp>
class Generator;
Member Functions
Name |
Description |
|
Destructor. |
Build reference documentation for the corpus. |
|
|
|
Build the reference as a single page to a string. |
|
|
Return the display name of the generator. |
|
Return the extension or tag of the generator. |
|
Return the symbolic name of the generator. |
Destructor.
Synopsis
Declared in <mrdocs/Generator.hpp>
virtual
~Generator() noexcept;
Build reference documentation for the corpus.
Synopses
Declared in <mrdocs/Generator.hpp>
Build reference documentation for the corpus.
Expected<void>
build(Corpus const& corpus) const;
Build reference documentation for the corpus.
virtual
Expected<void>
build(
std::string_view outputPath,
Corpus const& corpus) const;
Return Value
The error, if any occurred.
Parameters
Name |
Description |
corpus |
The symbols to emit. The generator may modify the contents of the object before returning. |
outputPath |
A directory or filename. |
Build reference documentation for the corpus.
Synopsis
Declared in <mrdocs/Generator.hpp>
Expected<void>
build(Corpus const& corpus) const;
Description
This function invokes the generator to emit the documentation using the corpus configuration options to determine the output location.
Return Value
The error, if any occurred.
Parameters
Name |
Description |
corpus |
The symbols to emit. The generator may modify the contents of the object before returning. |
Build reference documentation for the corpus.
Synopsis
Declared in <mrdocs/Generator.hpp>
virtual
Expected<void>
build(
std::string_view outputPath,
Corpus const& corpus) const;
Description
This function invokes the generator to emit the documentation using outputPath
as a parameter indicating where the output should go. This can be a directory or a filename depending on the generator and how it is configured.
The default implentation assumes the output is single‐page and emits the file reference.ext
using buildOne
to generate the content.
The typical implementation will have behavior similar to the default implementation if the output is single‐page, or will iterate over the symbols in the corpus to generate multiple files if the output is multi‐page.
Return Value
The error, if any occurred.
Parameters
Name |
Description |
outputPath |
A directory or filename. |
corpus |
The symbols to emit. The generator may modify the contents of the object before returning. |
buildOne
overloads
Synopses
Declared in <mrdocs/Generator.hpp>
Build the reference as a single page to a file.
Expected<void>
buildOne(
std::string_view fileName,
Corpus const& corpus) const;
Build reference documentation for the corpus.
virtual
Expected<void>
buildOne(
std::ostream& os,
Corpus const& corpus) const = 0;
Return Value
The error, if any occurred.
Parameters
Name |
Description |
fileName |
The file to write. If the file already exists, it will be overwritten. |
corpus |
The metadata to emit. |
os |
The stream to write to. |
Build the reference as a single page to a file.
Synopsis
Declared in <mrdocs/Generator.hpp>
Expected<void>
buildOne(
std::string_view fileName,
Corpus const& corpus) const;
Description
Thread Safety
-
Different
corpus
object: may be called concurrently. -
Same
corpus
object: may not be called concurrently.
Return Value
The error, if any occurred.
Parameters
Name |
Description |
fileName |
The file to write. If the file already exists, it will be overwritten. |
corpus |
The metadata to emit. |
Build reference documentation for the corpus.
Synopsis
Declared in <mrdocs/Generator.hpp>
virtual
Expected<void>
buildOne(
std::ostream& os,
Corpus const& corpus) const = 0;
Description
This function invokes the generator to emit the full documentation to an output stream, as a single entity.
Thread Safety
-
Different
corpus
object: may be called concurrently. -
Same
corpus
object: may not be called concurrently.
Return Value
The error, if any occurred.
Parameters
Name |
Description |
os |
The stream to write to. |
corpus |
The metadata to emit. |
Build the reference as a single page to a string.
Synopsis
Declared in <mrdocs/Generator.hpp>
Expected<void>
buildOneString(
std::string& dest,
Corpus const& corpus) const;
Return Value
The error, if any occurred.
Parameters
Name |
Description |
dest |
The string to hold the result. For the duration of the call, this must not be accessed by any other threads. |
corpus |
The metadata to emit. |
Return the display name of the generator.
Synopsis
Declared in <mrdocs/Generator.hpp>
virtual
std::string_view
displayName() const noexcept = 0;
Return Value
the display name of the generator.
Return the extension or tag of the generator.
Synopsis
Declared in <mrdocs/Generator.hpp>
virtual
std::string_view
fileExtension() const noexcept = 0;
Description
This should be in all lower case. Examples of tags are:
-
"adoc" Asciidoctor
-
"xml" XML
-
"html" HTML
The returned string should not include a leading period.
Return Value
the extension or tag of the generator.
Return the symbolic name of the generator.
Synopsis
Declared in <mrdocs/Generator.hpp>
virtual
std::string_view
id() const noexcept = 0;
Description
This is a short, unique string which identifies the generator in command line options and in configuration files.
Return Value
the symbolic name of the generator.
A dynamic list of Generator
Synopsis
Declared in <mrdocs/Generators.hpp>
class Generators;
Types
Member Functions
Name |
Description |
|
Destructor. |
|
Return an iterator to the beginning. |
|
Return an iterator to the end. |
|
Return a pointer to the matching generator. |
Protected Member Functions
Name |
Description |
|
Default constructor |
Non-Member Functions
Name |
Description |
Return a reference to the global Generators instance. |
Synopsis
Declared in <mrdocs/Generators.hpp>
using const_iterator = iterator;
Synopsis
Declared in <mrdocs/Generators.hpp>
using const_reference = value_type const&;
Synopsis
Declared in <mrdocs/Generators.hpp>
using difference_type = std::ptrdiff_t;
Synopsis
Declared in <mrdocs/Generators.hpp>
using iterator = value_type const*;
Synopsis
Declared in <mrdocs/Generators.hpp>
using reference = value_type const&;
Synopsis
Declared in <mrdocs/Generators.hpp>
using size_type = std::size_t;
Synopsis
Declared in <mrdocs/Generators.hpp>
using value_type = Generator const*;
Destructor.
Synopsis
Declared in <mrdocs/Generators.hpp>
virtual
~Generators() noexcept;
Return an iterator to the beginning.
Synopsis
Declared in <mrdocs/Generators.hpp>
virtual
iterator
begin() const noexcept = 0;
Return Value
an iterator to the beginning.
Return an iterator to the end.
Synopsis
Declared in <mrdocs/Generators.hpp>
virtual
iterator
end() const noexcept = 0;
Return Value
an iterator to the end.
Return a pointer to the matching generator.
Synopsis
Declared in <mrdocs/Generators.hpp>
virtual
Generator const*
find(std::string_view name) const noexcept = 0;
Return Value
A pointer to the generator, or nullptr
.
Parameters
Name |
Description |
name |
The name of the generator. The name must be an exact match, including case. |
Default constructor
Synopsis
Declared in <mrdocs/Generators.hpp>
constexpr
Generators() noexcept = default;
A glob pattern matcher
Synopsis
Declared in <mrdocs/Support/Glob.hpp>
class GlobPattern;
Member Functions
Name |
Description |
|
Constructors |
|
Destructor |
Assignment operators |
|
Checks if the glob pattern is a literal string. |
|
Matches the given string against the glob pattern. |
|
Matches the start of a given string against the glob pattern. |
|
Returns the glob pattern. |
Static Member Functions
Name |
Description |
Constructs a GlobPattern with the given pattern. |
Description
-
"" matches all characters except delimiters.
-
"" matches all characters
-
"?" matches any single character.
-
"[<chars>]" matches one character in the bracket.
-
"[<char>‐<char>]" matches one character in the bracket range.
-
"[ˆ<chars>]" or "[!<chars>]" matches one character not in the bracket.
-
"{<glob>,...}" matches one of the globs in the list.
-
"" escapes the next character so it is treated as a literal.
Nested brace expansions "{<glob>,"{<glob>,...}",...}" are not supported.
Constructors
Synopses
Declared in <mrdocs/Support/Glob.hpp>
Construct an empty GlobPattern.
GlobPattern();
Copy constructor
GlobPattern(GlobPattern const& other);
Move constructor
GlobPattern(GlobPattern&& other) noexcept;
Construct an empty GlobPattern.
Synopsis
Declared in <mrdocs/Support/Glob.hpp>
GlobPattern();
Description
An empty GlobPattern will never match any string.
Copy constructor
Synopsis
Declared in <mrdocs/Support/Glob.hpp>
GlobPattern(GlobPattern const& other);
Parameters
Name |
Description |
other |
The object to copy construct from |
Move constructor
Synopsis
Declared in <mrdocs/Support/Glob.hpp>
GlobPattern(GlobPattern&& other) noexcept;
Parameters
Name |
Description |
other |
The object to move construct from |
Destructor
Synopsis
Declared in <mrdocs/Support/Glob.hpp>
~GlobPattern();
Assignment operators
Synopses
Declared in <mrdocs/Support/Glob.hpp>
Copy assignment
GlobPattern&
operator=(GlobPattern const& other);
Move assignment
GlobPattern&
operator=(GlobPattern&& other) noexcept;
Copy assignment
Synopsis
Declared in <mrdocs/Support/Glob.hpp>
GlobPattern&
operator=(GlobPattern const& other);
Return Value
Reference to the current object
Parameters
Name |
Description |
other |
The object to copy assign from |
Move assignment
Synopsis
Declared in <mrdocs/Support/Glob.hpp>
GlobPattern&
operator=(GlobPattern&& other) noexcept;
Return Value
Reference to the current object
Parameters
Name |
Description |
other |
The object to move assign from |
Checks if the glob pattern is a literal string.
Synopsis
Declared in <mrdocs/Support/Glob.hpp>
bool
isLiteral() const;
Description
This function determines if the glob pattern does not contain any special characters. In other words, it matches a single string.
Return Value
true if the glob pattern is a literal string, false otherwise.
Matches the given string against the glob pattern.
Synopsis
Declared in <mrdocs/Support/Glob.hpp>
bool
match(
std::string_view str,
char delimiter) const;
Return Value
true if the string matches the pattern, false otherwise.
Parameters
Name |
Description |
str |
The string to match against the pattern. |
delimiter |
The character that does not match. |
Matches the start of a given string against the glob pattern.
Synopsis
Declared in <mrdocs/Support/Glob.hpp>
bool
matchPatternPrefix(
std::string_view prefix,
char delimiter) const;
Description
This function determines if the given string with the specified prefix
can potentially match the glob pattern.
If the string matches the start of the pattern without failure, even if there are characters left in the string or the pattern, the function returns true.
Return Value
true if the string prefix matches the pattern, false otherwise.
Parameters
Name |
Description |
prefix |
The string to match against the pattern. |
delimiter |
The character that does not match. |
Returns the glob pattern.
Synopsis
Declared in <mrdocs/Support/Glob.hpp>
std::string_view
pattern() const;
Return Value
The glob pattern as a string view.
Constructs a GlobPattern with the given pattern.
Synopses
Declared in <mrdocs/Support/Glob.hpp>
static
Expected<GlobPattern>
create(std::string_view pattern);
Constructs a GlobPattern with the given pattern.
static
Expected<GlobPattern>
create(
std::string_view pattern,
std::optional<std::size_t> maxSubGlobs);
Return Value
The constructed GlobPattern, or an error if the pattern is invalid.
Parameters
Name |
Description |
pattern |
The glob pattern to use for matching. |
maxSubGlobs |
The maximum number of subpatterns allowed. If the pattern contains more subpatterns than this value, an error is returned. If not specified, there is no limit. |
Synopsis
Declared in <mrdocs/Support/Glob.hpp>
static
Expected<GlobPattern>
create(std::string_view pattern);
Constructs a GlobPattern with the given pattern.
Synopsis
Declared in <mrdocs/Support/Glob.hpp>
static
Expected<GlobPattern>
create(
std::string_view pattern,
std::optional<std::size_t> maxSubGlobs);
Return Value
The constructed GlobPattern, or an error if the pattern is invalid.
Parameters
Name |
Description |
pattern |
The glob pattern to use for matching. |
maxSubGlobs |
The maximum number of subpatterns allowed. If the pattern contains more subpatterns than this value, an error is returned. If not specified, there is no limit. |
Info for deduction guides.
Synopsis
Declared in <mrdocs/Metadata/Info/Guide.hpp>
struct GuideInfo final
: InfoCommonBase<InfoKind::Guide>
Base Classes
Name |
Description |
Base class for providing variant discriminator functions. |
Member Functions
Name |
Description |
|
Construct from |
Three‐way comparison operators |
Static Member Functions
Data Members
Static Data Members
Name |
Non-Member Functions
Name |
Description |
Merges two Info objects. |
Construct from SymbolID
Synopsis
Declared in <mrdocs/Metadata/Info/Guide.hpp>
explicit
GuideInfo(SymbolID ID) noexcept;
Parameters
Name |
Description |
ID |
The object to construct from |
Three‐way comparison operators
Synopses
Declared in <mrdocs/Metadata/Info/Guide.hpp>
Three‐way comparison operator
std::strong_ordering
operator<=>(GuideInfo const& other) const;
Three‐way comparison operator
auto
operator<=>(InfoCommonBase<clang::mrdocs::InfoKind::Guide> const& rhs) const = default;
Three‐way comparison operator
Synopsis
Declared in <mrdocs/Metadata/Info/Guide.hpp>
std::strong_ordering
operator<=>(GuideInfo const& other) const;
Return Value
The relative order of the objects
Parameters
Name |
Description |
other |
The right operand |
Three‐way comparison operator
Synopsis
Declared in <mrdocs/Metadata/Info.hpp>
auto
operator<=>(InfoCommonBase<clang::mrdocs::InfoKind::Guide> const& rhs) const = default;
Return Value
The relative order of the objects
Parameters
Name |
Description |
rhs |
The right operand |
Synopsis
Declared in <mrdocs/Metadata/Info/InfoNodes.inc>
constexpr
static
bool
isConcept() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Info/InfoNodes.inc>
constexpr
static
bool
isEnum() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Info/InfoNodes.inc>
constexpr
static
bool
isEnumConstant() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Info/InfoNodes.inc>
constexpr
static
bool
isFunction() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Info/InfoNodes.inc>
constexpr
static
bool
isGuide() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Info/InfoNodes.inc>
constexpr
static
bool
isNamespace() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Info/InfoNodes.inc>
constexpr
static
bool
isNamespaceAlias() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Info/InfoNodes.inc>
constexpr
static
bool
isOverloads() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Info/InfoNodes.inc>
constexpr
static
bool
isRecord() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Info/InfoNodes.inc>
constexpr
static
bool
isTypedef() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Info/InfoNodes.inc>
constexpr
static
bool
isUsing() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Info/InfoNodes.inc>
constexpr
static
bool
isVariable() noexcept;
The pattern for the deduced specialization.
Synopsis
Declared in <mrdocs/Metadata/Info/Guide.hpp>
Polymorphic<TypeInfo> Deduced = std::nullopt;
Description
This is always a SpecializationTypeInfo.
The explicit‐specifier, if any.
Synopsis
Declared in <mrdocs/Metadata/Info/Guide.hpp>
ExplicitInfo Explicit;
The parameters of the deduction guide.
Synopsis
Declared in <mrdocs/Metadata/Info/Guide.hpp>
std::vector<Param> Params;
Template head, if any.
Synopsis
Declared in <mrdocs/Metadata/Info/Guide.hpp>
std::optional<TemplateInfo> Template;
Synopsis
Declared in <mrdocs/Metadata/Info.hpp>
constexpr static
InfoKind kind_id;
A handlebars environment
Synopsis
Declared in <mrdocs/Support/Handlebars.hpp>
class Handlebars;
Types
Name |
Member Functions
Name |
Description |
|
Construct a handlebars environment |
Register a helper accessible by any template in the environment. |
|
Register a logger |
|
Register a partial |
|
Render a handlebars template |
|
Render a handlebars template |
|
Render a handlebars template |
|
Render a handlebars template |
|
Unregister a helper |
|
Unregister a partial |
Non-Member Functions
Name |
Description |
Register all the Antora helpers into a Handlebars instance |
|
Register all the built‐in helpers into a Handlebars instance |
|
Register contructor helpers into a Handlebars instance |
|
Register helpers to manipulate composite data types |
|
Register logical helpers into a Handlebars instance |
|
Register math helpers into a Handlebars instance |
|
Register string helpers into a Handlebars instance |
|
Register type helpers into a Handlebars instance |
|
Register a JavaScript helper function |
Description
This class implements a handlebars template environment.
It is analogous to the complete state held by the handlebars.js module, including registered helpers and partials.
In the general case, handlebars.js provides a global Handlebars
environment where helpers and partials are registered:
{.js}
let template = Handlebars.compile("{{foo}}");
let result = template({foo: "bar"});
but also provides a way to create a new isolated environment with its own helpers and partials:
{.js}
let OtherHandlebars = Handlebars.create();
let template = OtherHandlebars.compile("{{foo}}");
let result = template({foo: "bar"});
In this implementation, however, there's no global environment. A new environment needs to be created explicitly be instantiating this class:
{.cpp}
Handlebars env;
dom::Object context;
context["foo"] = "bar";
std::string result = env.render("{{ foo }}", context);
assert(result == "bar");
A handlebars template can be rendered using the context data provided as a dom::Value
, which is usually a dom::Object
at the first level when calling render
.
In the most general case, the result can returned as a string or rendered directly to a buffer or stream. The render function provides an overload that allows the caller to provide an output stream where the template will be rendered directly without allocating a string:
{.cpp}
Handlebars env;
dom::Object context;
context["foo"] = "bar";
env.render_to(std::cout, "{{ foo }}", context);
// prints "bar" to stdout
{.cpp}
Handlebars env;
dom::Object context;
context["foo"] = "bar";
std::string result;
env.render_to(result, "{{ foo }}", context);
assert(result == "bar");
Design considerations:
The following notes include some design considerations for the current implementation of this class. These are intended to describe the current state of the class rather than to provide the final specification of the class behavior.
Compiled templates:
Unlike handlebars.js, this implementation renders the template directly to the output stream, without requiring an intermediary object to store a representation of the compiled template (Handlebars.precompile
) or an intermediary callable object required to ultimately render the template (Handlebars.precompile
).
The rationale is that there is not much benefit in pre‐compiling templates in C++, since both iterating the input string and a pre‐compiled template would have very similar costs even in optimal implementations of the compiled template.
The most significant benefit of pre‐compiling templates in C++ would be the faster identification of the ends of blocks, which would allow the engine iterate the block only once. For this reason, compiled templates will still be considered in a future version of this sub‐library.
Also note that compiled templates cannot avoid exceptions, because a compiled template can still invoke a helper that throws exceptions and evaluate dynamic expressions that cannot be identified during the first pass.
Incremental rendering and compilation:
Although this is not supported by handlebars.js, it's common for C++ template engines to support incremental rendering, where the template is compiled or rendered in chunks as it is parsed. This implementation does not yet support this feature.
This is useful for streaming templates, where the template is rendered to a stream as it is parsed, without requiring the entire template to be parsed and compiled before rendering starts.
There are two types of incremental rendering and compilation supported by this implementation:
‐ Incremental rendering of a partial template input to a stream ‐ Incremental rendering into an output buffer of fixed size
In each of these cases, the template is rendered in chunks until the end of the partial template is reached or the output buffer is full.
In a scenario with compiled templates, the complexity of incremental rendering needs to be implemented for both compilation and rendering.
The main difficulty to implement incremental rendering for handlebars.js is that helpers can be invoked from anywhere in the template, and most content is actually rendered by helpers. This means that helpers would need to be able to interoperate with whatever mechanism is designed to support suspension in this recursive‐coroutine‐like interface.
Error propagation:
The main logic to render a template is implemented in the render
function, does not throws by itself. How identifying the next tag in a template string, the algorithms uses a loose implementation where unclosed tags are rendered as‐is instead of throwing errors.
However, helpers are allowed to throw exceptions to propagate errors, so the render
function is not noexcept
.
For this reason, exceptions thrown by helpers are in fact exceptional conditions that should be handled by the caller. In general, exceptions can be avoided completely by not throwing exceptions from helpers.
See Also
https://handlebarsjs.com/
Synopsis
Declared in <mrdocs/Support/Handlebars.hpp>
struct Tag;
Construct a handlebars environment
Synopsis
Declared in <mrdocs/Support/Handlebars.hpp>
Handlebars();
Description
This constructor creates a new handlebars environment with the built‐in helpers and default logger.
Each environment has its own helpers and partials. Multiple environments are only necessary for use cases that demand distinct helpers or partials.
See Also
helpers::registerBuiltinHelpers
Register a helper accessible by any template in the environment.
Synopsis
Declared in <mrdocs/Support/Handlebars.hpp>
void
registerHelper(
std::string_view name,
dom::Function const& helper);
Description
The helper type is a type erased function of type dom::Function
, which receives the resolved template arguments as parameters as a dom::Value
for each parameter.
The helper function also receives an object populated with variables that are accessible in the current context as its N+1‐th parameter. This object contains information about the current context and is useful for helpers that want to change the current context or render internal blocks.
As all instances of dom::Function
, the helper should also return a dom::Value
. If the function semantics does not require a return value, the function should return a dom::Value
of type dom::Kind::Undefined
.
When the helper is used in an subexpression, the dom::Value
return value is used as the intermediary result. When the helper is used in a block or a final expression, the dom::Value
return value will be formatted to the output.
Parameters
Name |
Description |
name |
The name of the helper in the handlebars template |
helper |
The helper function |
See Also
https://handlebarsjs.com/guide/expressions.html
https://handlebarsjs.com/guide/block‐helpers.html
https://handlebarsjs.com/guide/builtin‐helpers.html
Register a logger
Synopsis
Declared in <mrdocs/Support/Handlebars.hpp>
void
registerLogger(dom::Function fn);
Description
This function registers a logger with the handlebars environment. A logger is a function that is called from the built‐in "log" helper function.
The logger can also be called from any helper through the HandlebarsCallback
parameter.
The logger function is called with a dom::Value
indicating the current level and a dom::Array
containing values to be logged.
Parameters
Name |
Description |
fn |
The logger function |
Register a partial
Synopsis
Declared in <mrdocs/Support/Handlebars.hpp>
void
registerPartial(
std::string_view name,
std::string_view text);
Description
This function registers a partial with the handlebars environment.
A partial is a template that can be referenced from another template. The partial is rendered in the context of the template that references it.
For instance, a partial can be used to render a header or footer that is common to several pages. It can also be used to render a list of items that is used in several places.
The following example template uses the partial item
to render a list of items:
{.handlebars}
<ul>
{{#each items}}
{{> item}}
{{/each}}
</ul>
Parameters
Name |
Description |
name |
The name of the partial |
text |
The content of the partial |
See Also
https://handlebarsjs.com/guide/partials.html
Render a handlebars template
Synopses
Declared in <mrdocs/Support/Handlebars.hpp>
std::string
render(std::string_view templateText) const;
std::string
render(
std::string_view templateText,
dom::Value const& context) const;
Render a handlebars template
std::string
render(
std::string_view templateText,
dom::Value const& context,
HandlebarsOptions const& options) const;
Return Value
The rendered text
Parameters
Name |
Description |
templateText |
The handlebars template text |
context |
The data to render |
options |
The options to use |
Synopsis
Declared in <mrdocs/Support/Handlebars.hpp>
std::string
render(std::string_view templateText) const;
Synopsis
Declared in <mrdocs/Support/Handlebars.hpp>
std::string
render(
std::string_view templateText,
dom::Value const& context) const;
Render a handlebars template
Synopsis
Declared in <mrdocs/Support/Handlebars.hpp>
std::string
render(
std::string_view templateText,
dom::Value const& context,
HandlebarsOptions const& options) const;
Description
This function renders the specified handlebars template and returns the result as a string.
The context data to render is passed as a dom::Value, which is usually a dom::Object at the first level. When the context is not an object, it is accessed from the handlebars template with the this
keyword.
Return Value
The rendered text
Parameters
Name |
Description |
templateText |
The handlebars template text |
context |
The data to render |
options |
The options to use |
Render a handlebars template
Synopses
Declared in <mrdocs/Support/Handlebars.hpp>
void
render_to(
OutputRef& out,
std::string_view templateText) const;
void
render_to(
OutputRef& out,
std::string_view templateText,
dom::Value const& context) const;
Render a handlebars template
void
render_to(
OutputRef& out,
std::string_view templateText,
dom::Value const& context,
HandlebarsOptions const& options) const;
Return Value
The rendered text
Parameters
Name |
Description |
templateText |
The handlebars template text |
context |
The data to render |
options |
The options to use |
Synopsis
Declared in <mrdocs/Support/Handlebars.hpp>
void
render_to(
OutputRef& out,
std::string_view templateText) const;
Synopsis
Declared in <mrdocs/Support/Handlebars.hpp>
void
render_to(
OutputRef& out,
std::string_view templateText,
dom::Value const& context) const;
Render a handlebars template
Synopsis
Declared in <mrdocs/Support/Handlebars.hpp>
void
render_to(
OutputRef& out,
std::string_view templateText,
dom::Value const& context,
HandlebarsOptions const& options) const;
Description
This function renders the specified handlebars template and writes the result to the specified output stream.
The output stream can be any type convertible to OutputRef, which is a reference to a stream that can be written to with the << operator.
Return Value
The rendered text
Parameters
Name |
Description |
templateText |
The handlebars template text |
context |
The data to render |
options |
The options to use |
out |
Reference to output stream used by handlebars |
Render a handlebars template
Synopses
Declared in <mrdocs/Support/Handlebars.hpp>
Expected<std::string, HandlebarsError>
try_render(std::string_view templateText) const;
Expected<std::string, HandlebarsError>
try_render(
std::string_view templateText,
dom::Value const& context) const;
Render a handlebars template
Expected<std::string, HandlebarsError>
try_render(
std::string_view templateText,
dom::Value const& context,
HandlebarsOptions const& options) const;
Return Value
The rendered text
Parameters
Name |
Description |
templateText |
The handlebars template text |
context |
The data to render |
options |
The options to use |
Synopsis
Declared in <mrdocs/Support/Handlebars.hpp>
Expected<std::string, HandlebarsError>
try_render(std::string_view templateText) const;
Synopsis
Declared in <mrdocs/Support/Handlebars.hpp>
Expected<std::string, HandlebarsError>
try_render(
std::string_view templateText,
dom::Value const& context) const;
Render a handlebars template
Synopsis
Declared in <mrdocs/Support/Handlebars.hpp>
Expected<std::string, HandlebarsError>
try_render(
std::string_view templateText,
dom::Value const& context,
HandlebarsOptions const& options) const;
Description
This function renders the specified handlebars template and writes the result to the specified output stream.
The output stream can be any type convertible to OutputRef, which is a reference to a stream that can be written to with the << operator.
Return Value
The rendered text
Parameters
Name |
Description |
templateText |
The handlebars template text |
context |
The data to render |
options |
The options to use |
Render a handlebars template
Synopses
Declared in <mrdocs/Support/Handlebars.hpp>
Expected<void, HandlebarsError>
try_render_to(
OutputRef& out,
std::string_view templateText) const;
Expected<void, HandlebarsError>
try_render_to(
OutputRef& out,
std::string_view templateText,
dom::Value const& context) const;
Render a handlebars template
Expected<void, HandlebarsError>
try_render_to(
OutputRef& out,
std::string_view templateText,
dom::Value const& context,
HandlebarsOptions const& options) const;
Return Value
The rendered text
Parameters
Name |
Description |
templateText |
The handlebars template text |
context |
The data to render |
options |
The options to use |
Synopsis
Declared in <mrdocs/Support/Handlebars.hpp>
Expected<void, HandlebarsError>
try_render_to(
OutputRef& out,
std::string_view templateText) const;
Synopsis
Declared in <mrdocs/Support/Handlebars.hpp>
Expected<void, HandlebarsError>
try_render_to(
OutputRef& out,
std::string_view templateText,
dom::Value const& context) const;
Render a handlebars template
Synopsis
Declared in <mrdocs/Support/Handlebars.hpp>
Expected<void, HandlebarsError>
try_render_to(
OutputRef& out,
std::string_view templateText,
dom::Value const& context,
HandlebarsOptions const& options) const;
Description
This function renders the specified handlebars template and writes the result to the specified output stream.
The output stream can be any type convertible to OutputRef, which is a reference to a stream that can be written to with the << operator.
Return Value
The rendered text
Parameters
Name |
Description |
templateText |
The handlebars template text |
context |
The data to render |
options |
The options to use |
out |
Reference to output stream used by handlebars |
Unregister a helper
Synopsis
Declared in <mrdocs/Support/Handlebars.hpp>
void
unregisterHelper(std::string_view name);
Description
This function unregisters a helper with the handlebars environment.
Parameters
Name |
Description |
name |
The name of the helper |
Unregister a partial
Synopsis
Declared in <mrdocs/Support/Handlebars.hpp>
void
unregisterPartial(std::string_view name);
Description
This function unregisters a partial with the handlebars environment.
Parameters
Name |
Description |
name |
The name of the partial |
An error thrown or returned by Handlebars
Synopsis
Declared in <mrdocs/Support/Handlebars.hpp>
struct HandlebarsError
: std::runtime_error
Base Classes
Name |
Description |
|
Member Functions
Name |
Description |
|
Constructors |
|
Description
An error returned or thrown by Handlebars environment when an error occurs during template rendering.
The error message will be the same as the error message returned by Handlebars.js.
The object will also contain the line, column and position of the error in the template. These can be used to by the caller to provide more detailed error messages.
Constructors
Synopses
Declared in <mrdocs/Support/Handlebars.hpp>
Construct from string_view
HandlebarsError(std::string_view msg);
HandlebarsError(
std::string_view msg,
std::size_t line_,
std::size_t column_,
std::size_t pos_);
Construct from string_view
Synopsis
Declared in <mrdocs/Support/Handlebars.hpp>
HandlebarsError(std::string_view msg);
Parameters
Name |
Description |
msg |
The object to construct from |
Synopsis
Declared in <mrdocs/Support/Handlebars.hpp>
HandlebarsError(
std::string_view msg,
std::size_t line_,
std::size_t column_,
std::size_t pos_);
Synopsis
Declared in <stdexcept>
runtime_error&
operator=(runtime_error const& value) noexcept;
Synopsis
Declared in <stdexcept>
virtual
char const*
what() const noexcept override;
Synopsis
Declared in <mrdocs/Support/Handlebars.hpp>
std::size_t column = static_cast<std::size_t>(‐1);
Synopsis
Declared in <mrdocs/Support/Handlebars.hpp>
std::size_t line = static_cast<std::size_t>(‐1);
Synopsis
Declared in <mrdocs/Support/Handlebars.hpp>
std::size_t pos = static_cast<std::size_t>(‐1);
Options for handlebars
Synopsis
Declared in <mrdocs/Support/Handlebars.hpp>
struct HandlebarsOptions;
Data Members
Name |
Description |
Removes object existence checks when traversing paths |
|
Enable recursive field lookup |
|
Custom private data object |
|
Function to escape entities |
|
Disables implicit context for partials |
|
Disables standalone tag removal when set to true |
|
Escape HTML entities or entities defined by the escape function |
|
Disable the auto‐indent feature |
|
Templates will throw rather than ignore missing fields |
|
Enable tracking of ids |
Description
This struct is analogous to the Handlebars.compile options.
See Also
https://handlebarsjs.com/api‐reference/compilation.html
Removes object existence checks when traversing paths
Synopsis
Declared in <mrdocs/Support/Handlebars.hpp>
bool assumeObjects = false;
Description
This is a subset of strict mode that generates optimized templates when the data inputs are known to be safe.
Enable recursive field lookup
Synopsis
Declared in <mrdocs/Support/Handlebars.hpp>
bool compat = false;
Description
When enabled, fields will be looked up recursively in objects and arrays.
This mode should be used to enable complete compatibility with Mustache templates.
Custom private data object
Synopsis
Declared in <mrdocs/Support/Handlebars.hpp>
dom::Value data = nullptr;
Description
This variable can be used to pass in an object to define custom private variables.
Function to escape entities
Synopsis
Declared in <mrdocs/Support/Handlebars.hpp>
std::function<void(OutputRef&, std::string_view)> escapeFunction = static_cast<void(*)(OutputRef&, std::string_view)>(HTMLEscape);
Description
It's initialized with a reference to the HTMLEscape function overload that takes an OutputRef and a string_view. This function can be replaced with a custom function that escapes entities in a different way.
Disables implicit context for partials
Synopsis
Declared in <mrdocs/Support/Handlebars.hpp>
bool explicitPartialContext = false;
Description
When enabled, partials that are not passed a context value will execute against an empty object.
Disables standalone tag removal when set to true
Synopsis
Declared in <mrdocs/Support/Handlebars.hpp>
bool ignoreStandalone = false;
Description
By default, Handlebars removes whitespace around block and partial expressions. For instance, the partial:
{.handlebars}
A
and the template:
{.handlebars}
<div>
{{> partial}}
</div>
will render as:
{.html}
<div>
A</div>
because the whitespace up to the newline after the partial is removed.
A double newline is required to ensure that the whitespace is not removed. For instance, the template:
{.handlebars}
<div>
{{> partial}}
</div>
will render as:
{.html}
<div>
A
</div>
This can be disabled by setting this option to true.
When set, blocks and partials that are on their own line will not remove the whitespace on that line.
Escape HTML entities or entities defined by the escape function
Synopsis
Declared in <mrdocs/Support/Handlebars.hpp>
bool noEscape = false;
Disable the auto‐indent feature
Synopsis
Declared in <mrdocs/Support/Handlebars.hpp>
bool preventIndent = false;
Description
By default, an indented partial‐call causes the output of the whole partial being indented by the same amount.
For instance, the partial:
{.handlebars}
A
B
C
and the template:
{.handlebars}
<div>
{{> partial}}
</div>
will render as:
{.html}
<div>
A
B
C
</div>
because the partial is indented by the same amount as the partial call.
This can be disabled by setting this option to true. In this case, the partial above would be rendered as:
{.html}
<div>
A
B
C
</div>
Templates will throw rather than ignore missing fields
Synopsis
Declared in <mrdocs/Support/Handlebars.hpp>
bool strict = false;
Description
Run in strict mode. In this mode, templates will throw rather than silently ignore missing fields.
Enable tracking of ids
Synopsis
Declared in <mrdocs/Support/Handlebars.hpp>
bool trackIds = false;
Description
When enabled, the ids of the expressions are tracked and passed to the helpers.
Helpers often use this information to update the context path to the current expression, which can later be used to look up the value of the expression with ".." segments.
Base class with common properties of all symbols
Synopsis
Declared in <mrdocs/Metadata/Info.hpp>
struct Info
: SourceInfo
Base Classes
Name |
Description |
Stores source information for a declaration. |
Member Functions
Data Members
Name |
Description |
Declaration access. |
|
Location where the entity was defined |
|
Determine why a symbol is extracted. |
|
Kind of declaration. |
|
Locations where the entity was declared. |
|
The unqualified name. |
|
The parent symbol, if any. |
|
The unique identifier for this symbol. |
|
The extracted javadoc for this declaration. |
Non-Member Functions
Name |
Description |
Merges two Info objects. |
Derived Classes
Name |
Description |
Base class for providing variant discriminator functions. |
Constructors
Synopses
Declared in <mrdocs/Metadata/Info.hpp>
Copy constructor
Move constructor.
Construct an Info.
Parameters
Name |
Description |
kind |
The kind of symbol |
ID |
The unique identifier for this symbol |
Copy constructor
Synopsis
Declared in <mrdocs/Metadata/Info.hpp>
constexpr
Info(Info const& Other) = default;
Parameters
Name |
Description |
Other |
The object to copy construct from |
Move constructor.
Synopsis
Declared in <mrdocs/Metadata/Info.hpp>
constexpr
Info(Info&& Other) = default;
Parameters
Name |
Description |
Other |
The object to move construct from |
Construct an Info.
Synopsis
Parameters
Name |
Description |
kind |
The kind of symbol |
ID |
The unique identifier for this symbol |
Destructor
Synopsis
Declared in <mrdocs/Metadata/Info.hpp>
constexpr
virtual
~Info() override = default;
Synopses
Declared in <mrdocs/Metadata/Info.hpp>
Synopsis
Declared in <mrdocs/Metadata/Info.hpp>
constexpr
Info const&
asInfo() const noexcept;
Synopsis
Declared in <mrdocs/Metadata/Info.hpp>
constexpr
Info&
asInfo() noexcept;
Three‐way comparison operators
Synopses
Declared in <mrdocs/Metadata/Info.hpp>
Three‐way comparison operator
auto
operator<=>(Info const& rhs) const = default;
Three‐way comparison operator
constexpr
auto
operator<=>(SourceInfo const& rhs) const = default;
Three‐way comparison operator
Synopsis
Declared in <mrdocs/Metadata/Info.hpp>
auto
operator<=>(Info const& rhs) const = default;
Return Value
The relative order of the objects
Parameters
Name |
Description |
rhs |
The right operand |
Three‐way comparison operator
Synopsis
Declared in <mrdocs/Metadata/Source.hpp>
constexpr
auto
operator<=>(SourceInfo const& rhs) const = default;
Return Value
The relative order of the objects
Parameters
Name |
Description |
rhs |
The right operand |
Declaration access.
Synopsis
Declared in <mrdocs/Metadata/Info.hpp>
AccessKind Access = AccessKind::None;
Description
Class members use:
-
AccessKind::Public
, -
AccessKind::Protected
, and -
AccessKind::Private
.
Namespace members use AccessKind::None
.
Determine why a symbol is extracted.
Synopsis
Declared in <mrdocs/Metadata/Info.hpp>
ExtractionMode Extraction = ExtractionMode::Dependency;
Description
This flag distinguishes Info
from its dependencies and indicates why it was extracted.
Non‐dependencies can be extracted in normal mode, see‐below mode, or implementation‐defined mode.
A dependency is a symbol which does not meet the configured conditions for extraction, but had to be extracted due to it being used transitively by a primary Info
.
Kind of declaration.
Synopsis
Declared in <mrdocs/Metadata/Info.hpp>
InfoKind Kind = InfoKind::None;
The unqualified name.
Synopsis
Declared in <mrdocs/Metadata/Info.hpp>
std::string Name;
The parent symbol, if any.
Synopsis
Declared in <mrdocs/Metadata/Info.hpp>
SymbolID Parent;
Description
This is the parent namespace or record where the symbol is defined.
The unique identifier for this symbol.
Synopsis
Declared in <mrdocs/Metadata/Info.hpp>
SymbolID id;
The extracted javadoc for this declaration.
Synopsis
Declared in <mrdocs/Metadata/Info.hpp>
std::optional<Javadoc> javadoc;
Base class for providing variant discriminator functions.
Synopsis
Base Classes
Name |
Description |
Base class with common properties of all symbols |
Member Functions
Name |
Description |
Three‐way comparison operators |
Data Members
Name |
Description |
Declaration access. |
|
Location where the entity was defined |
|
Determine why a symbol is extracted. |
|
Kind of declaration. |
|
Locations where the entity was declared. |
|
The unqualified name. |
|
The parent symbol, if any. |
|
The unique identifier for this symbol. |
|
The extracted javadoc for this declaration. |
Static Data Members
Name |
Description |
The variant discriminator constant of the most‐derived class. |
Protected Member Functions
Name |
Description |
|
Construct from |
Non-Member Functions
Name |
Description |
Merges two Info objects. |
Derived Classes
Name |
Description |
Info for concepts. |
|
Info for enum constants. |
|
Info for deduction guides. |
|
Info for namespace aliases. |
|
Describes a namespace. |
|
Represents a set of function overloads. |
|
Metadata for struct, class, or union. |
|
Info for using declarations. |
|
A variable. |
Description
This offers functions that return a boolean at compile‐time, indicating if the most‐derived class is a certain type.
Three‐way comparison operators
Synopses
Declared in <mrdocs/Metadata/Info.hpp>
Three‐way comparison operator
auto
operator<=>(InfoCommonBase const& rhs) const = default;
Three‐way comparison operator
auto
operator<=>(Info const& rhs) const = default;
Three‐way comparison operator
constexpr
auto
operator<=>(SourceInfo const& rhs) const = default;
Three‐way comparison operator
Synopsis
Declared in <mrdocs/Metadata/Info.hpp>
auto
operator<=>(InfoCommonBase const& rhs) const = default;
Return Value
The relative order of the objects
Parameters
Name |
Description |
rhs |
The right operand |
Three‐way comparison operator
Synopsis
Declared in <mrdocs/Metadata/Info.hpp>
auto
operator<=>(Info const& rhs) const = default;
Return Value
The relative order of the objects
Parameters
Name |
Description |
rhs |
The right operand |
Three‐way comparison operator
Synopsis
Declared in <mrdocs/Metadata/Source.hpp>
constexpr
auto
operator<=>(SourceInfo const& rhs) const = default;
Return Value
The relative order of the objects
Parameters
Name |
Description |
rhs |
The right operand |
The variant discriminator constant of the most‐derived class.
Synopsis
Declared in <mrdocs/Metadata/Info.hpp>
inline constexpr static
InfoKind kind_id = K;
Description
It only distinguishes from Info::kind
in that it is a constant.
Construct from SymbolID
Synopsis
Declared in <mrdocs/Metadata/Info.hpp>
constexpr
explicit
InfoCommonBase(SymbolID const& ID);
Parameters
Name |
Description |
ID |
The object to copy construct from |
Synopsis
Base Classes
Name |
Description |
Member Functions
Name |
Description |
Three‐way comparison operator |
Static Member Functions
Name |
Data Members
Name |
Description |
Whether this template argument is a parameter expansion. |
|
The kind of template argument this is. |
Static Data Members
Name |
Protected Member Functions
Name |
Description |
|
Default constructor |
Derived Classes
Name |
Description |
Synopsis
Declared in <mrdocs/Metadata/Template.hpp>
constexpr
static
bool
isNonType() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Template.hpp>
constexpr
static
bool
isTemplate() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Template.hpp>
constexpr
static
bool
isType() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Template.hpp>
inline constexpr static
TArgKind kind_id = K;
Default constructor
Synopsis
Declared in <mrdocs/Metadata/Template.hpp>
constexpr
IsTArg() noexcept;
A processed Doxygen‐style comment attached to a declaration.
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
struct Javadoc;
Member Functions
Name |
Description |
|
Constructors |
|
|
Attempt to append a block. |
|
Return true if this is empty |
|
Return the list of top level blocks. |
|
Equality operator |
|
Inequality operator |
|
Comparison |
Data Members
Name |
Description |
The list of text blocks. |
|
A brief description of the symbol. |
|
The list of exceptions. |
|
The list of parameters. |
|
The list of postconditions. |
|
The list of preconditions. |
|
The list of "related" references. |
|
The list of "relates" references. |
|
The list of return type descriptions. |
|
The list of "see also" references. |
|
The list of template parameters. |
Constructors
Synopses
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
Javadoc() noexcept;
Constructor
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
explicit
Javadoc(std::vector<Polymorphic<doc::Block>> blocks);
Parameters
Name |
Description |
blocks |
The object to construct from |
append
overloads
Synopses
Declared in <mrdocs/Metadata/Javadoc.hpp>
Append blocks from another javadoc to this.
Append blocks from a list to this.
void
append(std::vector<Polymorphic<doc::Node>>&& blocks);
Parameters
Name |
Description |
blocks |
The blocks to append. |
Append blocks from another javadoc to this.
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
void
append(Javadoc&& other);
Parameters
Name |
Description |
other |
A processed Doxygen‐style comment attached to a declaration. |
Append blocks from a list to this.
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
void
append(std::vector<Polymorphic<doc::Node>>&& blocks);
Parameters
Name |
Description |
blocks |
The blocks to append. |
Attempt to append a block.
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
template<std::derived_from<doc::Block> T>
std::string
emplace_back(T&& block);
Return Value
An empty string on success, otherwise a string indicating the reason for the failure.
Parameters
Name |
Description |
block |
The block to append. |
Return true if this is empty
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
bool
empty() const noexcept;
Return Value
true if this is empty
Return the list of top level blocks.
Synopses
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
std::vector<Polymorphic<doc::Block>> const&
getBlocks() const noexcept;
Return Value
the list of top level blocks.
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
std::vector<Polymorphic<doc::Block>>&
getBlocks() noexcept;
Equality operator
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
bool
operator==(Javadoc const& rhs) const noexcept;
Return Value
true
if the objects are equal, false
otherwise
Parameters
Name |
Description |
rhs |
The right operand |
Inequality operator
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
bool
operator!=(Javadoc const& rhs) const noexcept;
Return Value
true
if the objects are not equal, false
otherwise
Parameters
Name |
Description |
rhs |
The right operand |
Comparison
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
auto
operator<=>(Javadoc const& other) const noexcept;
Description
These are used internally to impose a total ordering, and not visible in the output format.
@{
Return Value
The relative order of the objects
Parameters
Name |
Description |
other |
The right operand |
The list of text blocks.
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
std::vector<Polymorphic<doc::Block>> blocks;
A brief description of the symbol.
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
std::optional<doc::Brief> brief;
The list of exceptions.
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
std::vector<doc::Throws> exceptions;
The list of parameters.
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
std::vector<doc::Param> params;
The list of postconditions.
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
std::vector<doc::Postcondition> postconditions;
The list of preconditions.
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
std::vector<doc::Precondition> preconditions;
The list of "related" references.
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
std::vector<doc::Reference> related;
Description
These references are the inverse of the relates command.
The list of "relates" references.
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
std::vector<doc::Reference> relates;
Description
These references are creates with the relates command.
The list of return type descriptions.
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
std::vector<doc::Returns> returns;
Description
Multiple return descriptions are allowed.
The results are concatenated in the order they appear in the source code.
The list of "see also" references.
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
std::vector<doc::See> sees;
The list of template parameters.
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
std::vector<doc::TParam> tparams;
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
struct LValueReferenceTypeInfo final
: TypeInfoCommonBase<TypeKind::LValueReference>
Base Classes
Name |
Description |
Member Functions
Name |
Description |
Three‐way comparison operators |
Static Member Functions
Data Members
Name |
Static Data Members
Name |
Non-Member Functions
Name |
Description |
Return the inner type. |
|
Return the inner type. |
|
Return the inner type. |
|
Return the inner type. |
Three‐way comparison operators
Synopses
Declared in <mrdocs/Metadata/Type.hpp>
Three‐way comparison operator
std::strong_ordering
operator<=>(LValueReferenceTypeInfo const& rhs) const;
Three‐way comparison operator
constexpr
auto
operator<=>(TypeInfoCommonBase<clang::mrdocs::TypeKind::LValueReference> const& rhs) const = default;
Three‐way comparison operator
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
std::strong_ordering
operator<=>(LValueReferenceTypeInfo const& rhs) const;
Return Value
The relative order of the objects
Parameters
Name |
Description |
rhs |
The right operand |
Three‐way comparison operator
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
constexpr
auto
operator<=>(TypeInfoCommonBase<clang::mrdocs::TypeKind::LValueReference> const& rhs) const = default;
Return Value
The relative order of the objects
Parameters
Name |
Description |
rhs |
The right operand |
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
constexpr
static
bool
isArray() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
constexpr
static
bool
isAuto() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
constexpr
static
bool
isDecltype() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
constexpr
static
bool
isFunction() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
constexpr
static
bool
isLValueReference() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
constexpr
static
bool
isMemberPointer() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
constexpr
static
bool
isNamed() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
constexpr
static
bool
isPointer() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
constexpr
static
bool
isRValueReference() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
Polymorphic<TypeInfo> PointeeType = std::nullopt;
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
constexpr static
TypeKind kind_id;
Synopsis
Declared in <mrdocs/Metadata/Source.hpp>
struct Location;
Member Functions
Name |
Description |
|
|
Three‐way comparison operator |
Data Members
Name |
Description |
Whether this location has documentation. |
|
The full file path |
|
Line number within the file |
|
The file path relative to one of the search directories |
|
The file path relative to the source‐root directory |
Synopsis
Declared in <mrdocs/Metadata/Source.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,
bool const documented = false);
Three‐way comparison operator
Synopsis
Declared in <mrdocs/Metadata/Source.hpp>
constexpr
auto
operator<=>(Location const& rhs) const = default;
Return Value
The relative order of the objects
Parameters
Name |
Description |
rhs |
The right operand |
Whether this location has documentation.
Synopsis
Declared in <mrdocs/Metadata/Source.hpp>
bool Documented = false;
The full file path
Synopsis
Declared in <mrdocs/Metadata/Source.hpp>
std::string FullPath;
Line number within the file
Synopsis
Declared in <mrdocs/Metadata/Source.hpp>
unsigned int LineNumber = 0;
The file path relative to one of the search directories
Synopsis
Declared in <mrdocs/Metadata/Source.hpp>
std::string ShortPath;
The file path relative to the source‐root directory
Synopsis
Declared in <mrdocs/Metadata/Source.hpp>
std::string SourcePath;
Synopsis
Declared in <mrdocs/Metadata/Source.hpp>
struct LocationEmptyPredicate;
Member Functions
Name |
Synopsis
Declared in <mrdocs/Metadata/Source.hpp>
constexpr
bool
operator()(Location const& loc) const noexcept;
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
struct MemberPointerTypeInfo final
: TypeInfoCommonBase<TypeKind::MemberPointer>
Base Classes
Name |
Description |
Member Functions
Name |
Description |
Three‐way comparison operators |
Static Member Functions
Data Members
Name |
Static Data Members
Name |
Non-Member Functions
Name |
Description |
Return the inner type. |
|
Return the inner type. |
|
Return the inner type. |
|
Return the inner type. |
Three‐way comparison operators
Synopses
Declared in <mrdocs/Metadata/Type.hpp>
Three‐way comparison operator
std::strong_ordering
operator<=>(MemberPointerTypeInfo const& rhs) const;
Three‐way comparison operator
constexpr
auto
operator<=>(TypeInfoCommonBase<clang::mrdocs::TypeKind::MemberPointer> const& rhs) const = default;
Three‐way comparison operator
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
std::strong_ordering
operator<=>(MemberPointerTypeInfo const& rhs) const;
Return Value
The relative order of the objects
Parameters
Name |
Description |
rhs |
The right operand |
Three‐way comparison operator
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
constexpr
auto
operator<=>(TypeInfoCommonBase<clang::mrdocs::TypeKind::MemberPointer> const& rhs) const = default;
Return Value
The relative order of the objects
Parameters
Name |
Description |
rhs |
The right operand |
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
constexpr
static
bool
isArray() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
constexpr
static
bool
isAuto() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
constexpr
static
bool
isDecltype() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
constexpr
static
bool
isFunction() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
constexpr
static
bool
isLValueReference() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
constexpr
static
bool
isMemberPointer() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
constexpr
static
bool
isNamed() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
constexpr
static
bool
isPointer() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
constexpr
static
bool
isRValueReference() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
Polymorphic<TypeInfo> ParentType = std::nullopt;
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
Polymorphic<TypeInfo> PointeeType = std::nullopt;
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
constexpr static
TypeKind kind_id;
Represents a name for a named TypeInfo
Synopsis
Declared in <mrdocs/Metadata/Name.hpp>
struct NameInfo;
Member Functions
Data Members
Derived Classes
Name |
Description |
Represents a (possibly qualified) symbol name with template arguments. |
Description
When the TypeInfo
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 TypeInfo
to store either a NameInfo
or a SpecializationNameInfo
, which contains the arguments for a template specialization without requiring the application to extract an unnecessary symbol.
Constructors
Synopses
Declared in <mrdocs/Metadata/Name.hpp>
Default constructor
constexpr
NameInfo() noexcept;
Construct from NameKind
Default constructor
Synopsis
Declared in <mrdocs/Metadata/Name.hpp>
constexpr
NameInfo() noexcept;
Construct from NameKind
Synopsis
Declared in <mrdocs/Metadata/Name.hpp>
constexpr
explicit
NameInfo(NameKind const kind) noexcept;
Parameters
Name |
Description |
kind |
The object to construct from |
Destructor
Synopsis
Declared in <mrdocs/Metadata/Name.hpp>
constexpr
virtual
~NameInfo() = default;
Synopsis
Declared in <mrdocs/Metadata/Name.hpp>
constexpr
bool
isIdentifier() const noexcept;
Synopsis
Declared in <mrdocs/Metadata/Name.hpp>
constexpr
bool
isSpecialization() const noexcept;
Equality operator
Synopsis
Declared in <mrdocs/Metadata/Name.hpp>
bool
operator==(NameInfo const& other) const;
Return Value
true
if the objects are equal, false
otherwise
Parameters
Name |
Description |
other |
The right operand |
Three‐way comparison operator
Synopsis
Declared in <mrdocs/Metadata/Name.hpp>
std::strong_ordering
operator<=>(NameInfo const& other) const;
Return Value
The relative order of the objects
Parameters
Name |
Description |
other |
The right operand |
The kind of name this is.
Synopsis
Synopsis
Declared in <mrdocs/Metadata/Name.hpp>
std::string Name;
The parent name info, if any.
Synopsis
Declared in <mrdocs/Metadata/Name.hpp>
Polymorphic<NameInfo> Prefix = std::nullopt;
Description
This recursively includes information about the parent, such as the symbol ID and potentially template arguments, when the parent is a SpecializationNameInfo.
This is particularly useful because the parent of id
could be a primary template. In this case, the Prefix will contain this primary template information and the template arguments.
The SymbolID of the named symbol, if it exists.
Synopsis
Declared in <mrdocs/Metadata/Name.hpp>
SymbolID id = = SymbolID::invalid;
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
struct NamedTypeInfo final
: TypeInfoCommonBase<TypeKind::Named>
Base Classes
Name |
Description |
Member Functions
Name |
Description |
Three‐way comparison operators |
Static Member Functions
Data Members
Name |
Static Data Members
Name |
Non-Member Functions
Name |
Description |
Return the inner type. |
|
Return the inner type. |
|
Return the inner type. |
|
Return the inner type. |
Three‐way comparison operators
Synopses
Declared in <mrdocs/Metadata/Type.hpp>
Three‐way comparison operator
std::strong_ordering
operator<=>(NamedTypeInfo const& other) const;
Three‐way comparison operator
constexpr
auto
operator<=>(TypeInfoCommonBase<clang::mrdocs::TypeKind::Named> const& rhs) const = default;
Three‐way comparison operator
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
std::strong_ordering
operator<=>(NamedTypeInfo const& other) const;
Return Value
The relative order of the objects
Parameters
Name |
Description |
other |
The right operand |
Three‐way comparison operator
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
constexpr
auto
operator<=>(TypeInfoCommonBase<clang::mrdocs::TypeKind::Named> const& rhs) const = default;
Return Value
The relative order of the objects
Parameters
Name |
Description |
rhs |
The right operand |
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
constexpr
static
bool
isArray() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
constexpr
static
bool
isAuto() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
constexpr
static
bool
isDecltype() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
constexpr
static
bool
isFunction() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
constexpr
static
bool
isLValueReference() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
constexpr
static
bool
isMemberPointer() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
constexpr
static
bool
isNamed() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
constexpr
static
bool
isPointer() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
constexpr
static
bool
isRValueReference() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
std::optional<FundamentalTypeKind> FundamentalType;
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
Polymorphic<NameInfo> Name = std::nullopt;
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
constexpr static
TypeKind kind_id;
Info for namespace aliases.
Synopsis
Declared in <mrdocs/Metadata/Info/NamespaceAlias.hpp>
struct NamespaceAliasInfo final
: InfoCommonBase<InfoKind::NamespaceAlias>
Base Classes
Name |
Description |
Base class for providing variant discriminator functions. |
Member Functions
Name |
Description |
|
Construct from |
Three‐way comparison operator |
Static Member Functions
Data Members
Name |
Description |
The aliased symbol. |
Static Data Members
Name |
Non-Member Functions
Name |
Description |
Merges two Info objects. |
Construct from SymbolID
Synopsis
Declared in <mrdocs/Metadata/Info/NamespaceAlias.hpp>
explicit
NamespaceAliasInfo(SymbolID const& ID) noexcept;
Parameters
Name |
Description |
ID |
The object to copy construct from |
Three‐way comparison operator
Synopsis
Declared in <mrdocs/Metadata/Info.hpp>
auto
operator<=>(InfoCommonBase<clang::mrdocs::InfoKind::NamespaceAlias> const& rhs) const = default;
Return Value
The relative order of the objects
Parameters
Name |
Description |
rhs |
The right operand |
Synopsis
Declared in <mrdocs/Metadata/Info/InfoNodes.inc>
constexpr
static
bool
isConcept() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Info/InfoNodes.inc>
constexpr
static
bool
isEnum() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Info/InfoNodes.inc>
constexpr
static
bool
isEnumConstant() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Info/InfoNodes.inc>
constexpr
static
bool
isFunction() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Info/InfoNodes.inc>
constexpr
static
bool
isGuide() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Info/InfoNodes.inc>
constexpr
static
bool
isNamespace() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Info/InfoNodes.inc>
constexpr
static
bool
isNamespaceAlias() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Info/InfoNodes.inc>
constexpr
static
bool
isOverloads() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Info/InfoNodes.inc>
constexpr
static
bool
isRecord() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Info/InfoNodes.inc>
constexpr
static
bool
isTypedef() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Info/InfoNodes.inc>
constexpr
static
bool
isUsing() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Info/InfoNodes.inc>
constexpr
static
bool
isVariable() noexcept;
The aliased symbol.
Synopsis
Declared in <mrdocs/Metadata/Info/NamespaceAlias.hpp>
Polymorphic<NameInfo> AliasedSymbol;
Description
This is another namespace that might or might not be in the same project.
Synopsis
Declared in <mrdocs/Metadata/Info.hpp>
constexpr static
InfoKind kind_id;
Describes a namespace.
Synopsis
Declared in <mrdocs/Metadata/Info/Namespace.hpp>
struct NamespaceInfo final
: InfoCommonBase<InfoKind::Namespace>
Base Classes
Name |
Description |
Base class for providing variant discriminator functions. |
Member Functions
Name |
Description |
|
Construct from |
Three‐way comparison operators |
Static Member Functions
Data Members
Name |
Description |
The members of this namespace. |
|
Namespaces nominated by using‐directives. |
Static Data Members
Name |
Non-Member Functions
Name |
Description |
Merges two Info objects. |
Construct from SymbolID
Synopsis
Declared in <mrdocs/Metadata/Info/Namespace.hpp>
explicit
NamespaceInfo(SymbolID const& ID) noexcept;
Parameters
Name |
Description |
ID |
The object to copy construct from |
Three‐way comparison operators
Synopses
Declared in <mrdocs/Metadata/Info/Namespace.hpp>
Three‐way comparison operator
std::strong_ordering
operator<=>(NamespaceInfo const& rhs) const;
Three‐way comparison operator
auto
operator<=>(InfoCommonBase<clang::mrdocs::InfoKind::Namespace> const& rhs) const = default;
Three‐way comparison operator
Synopsis
Declared in <mrdocs/Metadata/Info/Namespace.hpp>
std::strong_ordering
operator<=>(NamespaceInfo const& rhs) const;
Return Value
The relative order of the objects
Parameters
Name |
Description |
rhs |
The right operand |
Three‐way comparison operator
Synopsis
Declared in <mrdocs/Metadata/Info.hpp>
auto
operator<=>(InfoCommonBase<clang::mrdocs::InfoKind::Namespace> const& rhs) const = default;
Return Value
The relative order of the objects
Parameters
Name |
Description |
rhs |
The right operand |
Synopsis
Declared in <mrdocs/Metadata/Info/InfoNodes.inc>
constexpr
static
bool
isConcept() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Info/InfoNodes.inc>
constexpr
static
bool
isEnum() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Info/InfoNodes.inc>
constexpr
static
bool
isEnumConstant() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Info/InfoNodes.inc>
constexpr
static
bool
isFunction() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Info/InfoNodes.inc>
constexpr
static
bool
isGuide() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Info/InfoNodes.inc>
constexpr
static
bool
isNamespace() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Info/InfoNodes.inc>
constexpr
static
bool
isNamespaceAlias() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Info/InfoNodes.inc>
constexpr
static
bool
isOverloads() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Info/InfoNodes.inc>
constexpr
static
bool
isRecord() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Info/InfoNodes.inc>
constexpr
static
bool
isTypedef() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Info/InfoNodes.inc>
constexpr
static
bool
isUsing() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Info/InfoNodes.inc>
constexpr
static
bool
isVariable() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Info/Namespace.hpp>
bool IsAnonymous = false;
Synopsis
Declared in <mrdocs/Metadata/Info/Namespace.hpp>
bool IsInline = false;
The members of this namespace.
Synopsis
Declared in <mrdocs/Metadata/Info/Namespace.hpp>
NamespaceTranche Members;
Namespaces nominated by using‐directives.
Synopsis
Declared in <mrdocs/Metadata/Info/Namespace.hpp>
std::vector<NameInfo> UsingDirectives;
Synopsis
Declared in <mrdocs/Metadata/Info.hpp>
constexpr static
InfoKind kind_id;
The members of a Namespace
Synopsis
Declared in <mrdocs/Metadata/Info/Namespace.hpp>
struct NamespaceTranche;
Member Functions
Name |
Description |
Three‐way comparison operator |
Data Members
Name |
Three‐way comparison operator
Synopsis
Declared in <mrdocs/Metadata/Info/Namespace.hpp>
constexpr
auto
operator<=>(NamespaceTranche const& rhs) const = default;
Return Value
The relative order of the objects
Parameters
Name |
Description |
rhs |
The right operand |
Synopsis
Declared in <mrdocs/Metadata/Info/Namespace.hpp>
std::vector<SymbolID> Concepts;
Synopsis
Declared in <mrdocs/Metadata/Info/Namespace.hpp>
std::vector<SymbolID> Enums;
Synopsis
Declared in <mrdocs/Metadata/Info/Namespace.hpp>
std::vector<SymbolID> Functions;
Synopsis
Declared in <mrdocs/Metadata/Info/Namespace.hpp>
std::vector<SymbolID> Guides;
Synopsis
Declared in <mrdocs/Metadata/Info/Namespace.hpp>
std::vector<SymbolID> NamespaceAliases;
Synopsis
Declared in <mrdocs/Metadata/Info/Namespace.hpp>
std::vector<SymbolID> Namespaces;
Synopsis
Declared in <mrdocs/Metadata/Info/Namespace.hpp>
std::vector<SymbolID> Records;
Synopsis
Declared in <mrdocs/Metadata/Info/Namespace.hpp>
std::vector<SymbolID> Typedefs;
Synopsis
Declared in <mrdocs/Metadata/Info/Namespace.hpp>
std::vector<SymbolID> Usings;
Synopsis
Declared in <mrdocs/Metadata/Info/Namespace.hpp>
std::vector<SymbolID> Variables;
Synopsis
Declared in <mrdocs/Metadata/Specifiers.hpp>
struct NoexceptInfo;
Member Functions
Name |
Description |
Three‐way comparison operator |
Data Members
Non-Member Functions
Name |
Description |
Convert NoexceptInfo to a string. |
Three‐way comparison operator
Synopsis
Declared in <mrdocs/Metadata/Specifiers.hpp>
constexpr
auto
operator<=>(NoexceptInfo const& rhs) const = default;
Return Value
The relative order of the objects
Parameters
Name |
Description |
rhs |
The right operand |
Whether a noexcept‐specifier was user‐written.
Synopsis
Declared in <mrdocs/Metadata/Specifiers.hpp>
bool Implicit = true;
The evaluated exception specification.
Synopsis
Declared in <mrdocs/Metadata/Specifiers.hpp>
NoexceptKind Kind = NoexceptKind::False;
The operand of the noexcept‐specifier, if any.
Synopsis
Declared in <mrdocs/Metadata/Specifiers.hpp>
std::string Operand;
Synopsis
Declared in <mrdocs/Metadata/Template.hpp>
struct NonTypeTArg final
: IsTArg<TArgKind::NonType>
Base Classes
Name |
Description |
Member Functions
Name |
Description |
Three‐way comparison operator |
Static Member Functions
Name |
Data Members
Name |
Description |
Template argument expression. |
Static Data Members
Name |
Three‐way comparison operator
Synopsis
Declared in <mrdocs/Metadata/Template.hpp>
constexpr
auto
operator<=>(NonTypeTArg const& rhs) const = default;
Return Value
The relative order of the objects
Parameters
Name |
Description |
rhs |
The right operand |
Synopsis
Declared in <mrdocs/Metadata/Template.hpp>
constexpr
static
bool
isNonType() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Template.hpp>
constexpr
static
bool
isTemplate() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Template.hpp>
constexpr
static
bool
isType() noexcept;
Template argument expression.
Synopsis
Declared in <mrdocs/Metadata/Template.hpp>
ExprInfo Value;
Synopsis
Declared in <mrdocs/Metadata/Template.hpp>
constexpr static
TArgKind kind_id;
Synopsis
Declared in <mrdocs/Metadata/Template.hpp>
struct NonTypeTParam final
: TParamCommonBase<TParamKind::NonType>
Base Classes
Name |
Description |
Member Functions
Name |
Description |
Three‐way comparison operators |
Static Member Functions
Name |
Data Members
Name |
Description |
Type of the non‐type template parameter |
Static Data Members
Name |
Three‐way comparison operators
Synopses
Declared in <mrdocs/Metadata/Template.hpp>
Three‐way comparison operator
std::strong_ordering
operator<=>(NonTypeTParam const& rhs) const;
Three‐way comparison operator
auto
operator<=>(TParamCommonBase<clang::mrdocs::TParamKind::NonType> const& rhs) const = default;
Three‐way comparison operator
Synopsis
Declared in <mrdocs/Metadata/Template.hpp>
std::strong_ordering
operator<=>(NonTypeTParam const& rhs) const;
Return Value
The relative order of the objects
Parameters
Name |
Description |
rhs |
The right operand |
Three‐way comparison operator
Synopsis
Declared in <mrdocs/Metadata/Template.hpp>
auto
operator<=>(TParamCommonBase<clang::mrdocs::TParamKind::NonType> const& rhs) const = default;
Return Value
The relative order of the objects
Parameters
Name |
Description |
rhs |
The right operand |
Synopsis
Declared in <mrdocs/Metadata/Template.hpp>
constexpr
static
bool
isNonType() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Template.hpp>
constexpr
static
bool
isTemplate() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Template.hpp>
constexpr
static
bool
isType() noexcept;
Type of the non‐type template parameter
Synopsis
Declared in <mrdocs/Metadata/Template.hpp>
Polymorphic<TypeInfo> Type = std::nullopt;
Synopsis
Declared in <mrdocs/Metadata/Template.hpp>
constexpr static
TParamKind kind_id;
A compact optional.
Synopsis
Declared in <mrdocs/ADT/Optional.hpp>
template<
class T,
class EmptyPredicate = DefaultEmptyPredicate>
class Optional;
Types
Name |
Member Functions
Name |
Description |
|
Constructors |
Assignment operators |
|
Dereference operators |
|
Member access operators |
|
Conversion to |
|
Three‐way comparison operator |
Description
This works like std::optional except the predicate is invoked to determine whether the optional is engaged. This is a space optimization.
Synopsis
Declared in <mrdocs/ADT/Optional.hpp>
using value_type = T;
Constructors
Synopses
Synopsis
Declared in <mrdocs/ADT/Optional.hpp>
constexpr
Optional() = default;
Copy constructor
Synopsis
Declared in <mrdocs/ADT/Optional.hpp>
constexpr
Optional(Optional const& other) = default;
Parameters
Name |
Description |
other |
The object to copy construct from |
Construct from U
Synopsis
Declared in <mrdocs/ADT/Optional.hpp>
template<class U>
requires std::is_constructible_v<T, U>
constexpr
explicit
Optional(U&& u);
Parameters
Name |
Description |
u |
The object to move construct from |
Assignment operators
Synopses
Declared in <mrdocs/ADT/Optional.hpp>
Copy assignment operator
constexpr
Optional&
operator=(Optional const& other) = default;
Move assignment operator
constexpr
Optional&
operator=(Optional&& other) = default;
Assignment operator
constexpr
Optional&
operator=(std::nullptr_t value);
Assignment operator
template<class U>
requires std::is_constructible_v<T, U>
constexpr
Optional&
operator=(U&& u);
Copy assignment operator
Synopsis
Return Value
Reference to the current object
Parameters
Name |
Description |
other |
The object to copy assign from |
Move assignment operator
Synopsis
Return Value
Reference to the current object
Parameters
Name |
Description |
other |
The object to move assign from |
Assignment operator
Synopsis
Declared in <mrdocs/ADT/Optional.hpp>
constexpr
Optional&
operator=(std::nullptr_t value);
Return Value
Reference to the current object
Parameters
Name |
Description |
value |
The object to assign from |
Assignment operator
Synopsis
Declared in <mrdocs/ADT/Optional.hpp>
template<class U>
requires std::is_constructible_v<T, U>
constexpr
Optional&
operator=(U&& u);
Return Value
Reference to the current object
Parameters
Name |
Description |
u |
The object to move assign from |
Synopsis
Declared in <mrdocs/ADT/Optional.hpp>
template<typename... Args>
requires std::is_constructible_v<T, Args...>
constexpr
value_type&
emplace(Args...&&... args);
Synopsis
Declared in <mrdocs/ADT/Optional.hpp>
constexpr
bool
has_value() const noexcept;
Dereference operators
Synopses
Declared in <mrdocs/ADT/Optional.hpp>
constexpr
value_type&
operator*() noexcept;
constexpr
value_type const&
operator*() const noexcept;
Synopsis
Declared in <mrdocs/ADT/Optional.hpp>
constexpr
value_type&
operator*() noexcept;
Synopsis
Declared in <mrdocs/ADT/Optional.hpp>
constexpr
value_type const&
operator*() const noexcept;
Member access operators
Synopses
Declared in <mrdocs/ADT/Optional.hpp>
constexpr
value_type*
operator‐>() noexcept;
constexpr
value_type const*
operator‐>() const noexcept;
Synopsis
Declared in <mrdocs/ADT/Optional.hpp>
constexpr
value_type*
operator‐>() noexcept;
Synopsis
Declared in <mrdocs/ADT/Optional.hpp>
constexpr
value_type const*
operator‐>() const noexcept;
Synopsis
Declared in <mrdocs/ADT/Optional.hpp>
constexpr
void
reset();
Synopses
Declared in <mrdocs/ADT/Optional.hpp>
constexpr
value_type&
value() & noexcept;
constexpr
value_type const&
value() const & noexcept;
constexpr
value_type&&
value() && noexcept;
constexpr
value_type const&&
value() const && noexcept;
Synopsis
Declared in <mrdocs/ADT/Optional.hpp>
constexpr
value_type&
value() & noexcept;
Synopsis
Declared in <mrdocs/ADT/Optional.hpp>
constexpr
value_type const&
value() const & noexcept;
Synopsis
Declared in <mrdocs/ADT/Optional.hpp>
constexpr
value_type&&
value() && noexcept;
Synopsis
Declared in <mrdocs/ADT/Optional.hpp>
constexpr
value_type const&&
value() const && noexcept;
Conversion to bool
Synopsis
Declared in <mrdocs/ADT/Optional.hpp>
constexpr
explicit
operator bool() const noexcept;
Return Value
The object converted to bool
Three‐way comparison operator
Synopsis
Declared in <mrdocs/ADT/Optional.hpp>
auto
operator<=>(Optional const& rhs) const = default;
Return Value
The relative order of the objects
Parameters
Name |
Description |
rhs |
The right operand |
Reference to output stream used by handlebars
Synopsis
Declared in <mrdocs/Support/Handlebars.hpp>
class OutputRef;
Friends
Name |
Description |
Write to output |
|
Write to output |
|
Write to output |
|
Write to output |
|
A handlebars environment |
Non-Member Functions
Name |
Description |
HTML escapes the specified string |
Description
This class is used to internally pass an output stream to the handlebars environment.
It allows many types to be used as output streams, including std::string, std::ostream, llvm::raw_string_ostream, and others.
Constructors
Synopses
Declared in <mrdocs/Support/Handlebars.hpp>
Constructor for std::ostream& output
template</* implementation-defined */ Os>
requires std::is_convertible_v<Os*, std::ostream*> &&
(!detail::StdLHROStreamable<Os>)
OutputRef(Os& os);
Constructor for llvm::raw_string_ostream output
template</* implementation-defined */ Os>
requires std::is_convertible_v<Os*, std::ostream*>
OutputRef(Os& os);
Constructor for std::string output
template</* implementation-defined */ St>
requires std::same_as<typename St::value_type, char>
OutputRef(St& st);
Parameters
Name |
Description |
os |
The output stream to write to |
st |
The string to append to |
Constructor for std::ostream& output
Synopsis
Declared in <mrdocs/Support/Handlebars.hpp>
template</* implementation-defined */ Os>
requires std::is_convertible_v<Os*, std::ostream*> &&
(!detail::StdLHROStreamable<Os>)
OutputRef(Os& os);
Parameters
Name |
Description |
os |
The output stream to write to |
Constructor for llvm::raw_string_ostream output
Synopsis
Declared in <mrdocs/Support/Handlebars.hpp>
template</* implementation-defined */ Os>
requires std::is_convertible_v<Os*, std::ostream*>
OutputRef(Os& os);
Parameters
Name |
Description |
os |
The output stream to write to |
Constructor for std::string output
Synopsis
Declared in <mrdocs/Support/Handlebars.hpp>
template</* implementation-defined */ St>
requires std::same_as<typename St::value_type, char>
OutputRef(St& st);
Parameters
Name |
Description |
st |
The string to append to |
Synopsis
Declared in <mrdocs/Support/Handlebars.hpp>
std::size_t
getIndent() const noexcept;
Synopsis
Declared in <mrdocs/Support/Handlebars.hpp>
void
setIndent(std::size_t indent);
Represents a set of function overloads.
Synopsis
Declared in <mrdocs/Metadata/Info/Overloads.hpp>
struct OverloadsInfo final
: InfoCommonBase<InfoKind::Overloads>
Base Classes
Name |
Description |
Base class for providing variant discriminator functions. |
Member Functions
Name |
Description |
|
Constructors |
Three‐way comparison operator |
Static Member Functions
Data Members
Name |
Description |
The class of the functions. |
|
The members of the overload set. |
|
The overloaded operator, if any. |
|
Info about the return type of this function. |
Static Data Members
Name |
Non-Member Functions
Name |
Description |
Merges two Info objects. |
Constructors
Synopses
Declared in <mrdocs/Metadata/Info/Overloads.hpp>
Construct from SymbolID
explicit
OverloadsInfo(SymbolID const& ID) noexcept;
explicit
OverloadsInfo(
SymbolID const& Parent,
std::string_view Name,
AccessKind Access,
bool isStatic) noexcept;
Construct from SymbolID
Synopsis
Declared in <mrdocs/Metadata/Info/Overloads.hpp>
explicit
OverloadsInfo(SymbolID const& ID) noexcept;
Parameters
Name |
Description |
ID |
The object to copy construct from |
Synopsis
Declared in <mrdocs/Metadata/Info/Overloads.hpp>
explicit
OverloadsInfo(
SymbolID const& Parent,
std::string_view Name,
AccessKind Access,
bool isStatic) noexcept;
Three‐way comparison operator
Synopsis
Declared in <mrdocs/Metadata/Info.hpp>
auto
operator<=>(InfoCommonBase<clang::mrdocs::InfoKind::Overloads> const& rhs) const = default;
Return Value
The relative order of the objects
Parameters
Name |
Description |
rhs |
The right operand |
Synopsis
Declared in <mrdocs/Metadata/Info/InfoNodes.inc>
constexpr
static
bool
isConcept() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Info/InfoNodes.inc>
constexpr
static
bool
isEnum() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Info/InfoNodes.inc>
constexpr
static
bool
isEnumConstant() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Info/InfoNodes.inc>
constexpr
static
bool
isFunction() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Info/InfoNodes.inc>
constexpr
static
bool
isGuide() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Info/InfoNodes.inc>
constexpr
static
bool
isNamespace() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Info/InfoNodes.inc>
constexpr
static
bool
isNamespaceAlias() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Info/InfoNodes.inc>
constexpr
static
bool
isOverloads() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Info/InfoNodes.inc>
constexpr
static
bool
isRecord() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Info/InfoNodes.inc>
constexpr
static
bool
isTypedef() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Info/InfoNodes.inc>
constexpr
static
bool
isUsing() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Info/InfoNodes.inc>
constexpr
static
bool
isVariable() noexcept;
The class of the functions.
Synopsis
Declared in <mrdocs/Metadata/Info/Overloads.hpp>
FunctionClass Class = FunctionClass::Normal;
The members of the overload set.
Synopsis
Declared in <mrdocs/Metadata/Info/Overloads.hpp>
std::vector<SymbolID> Members;
The overloaded operator, if any.
Synopsis
Declared in <mrdocs/Metadata/Info/Overloads.hpp>
OperatorKind OverloadedOperator = OperatorKind::None;
Info about the return type of this function.
Synopsis
Declared in <mrdocs/Metadata/Info/Overloads.hpp>
Polymorphic<TypeInfo> ReturnType = std::nullopt;
Synopsis
Declared in <mrdocs/Metadata/Info.hpp>
constexpr static
InfoKind kind_id;
Represents a single function parameter
Synopsis
Declared in <mrdocs/Metadata/Info/Function.hpp>
struct Param final
Member Functions
Name |
Description |
|
Constructors |
Three‐way comparison operator |
Data Members
Synopses
Declared in <mrdocs/Metadata/Info/Function.hpp>
Default constructor
constexpr
Param() = default;
Param(
Polymorphic<TypeInfo>&& type,
std::string&& name,
std::string&& def_arg);
Default constructor
Synopsis
Declared in <mrdocs/Metadata/Info/Function.hpp>
constexpr
Param() = default;
Synopsis
Declared in <mrdocs/Metadata/Info/Function.hpp>
Param(
Polymorphic<TypeInfo>&& type,
std::string&& name,
std::string&& def_arg);
Three‐way comparison operator
Synopsis
Declared in <mrdocs/Metadata/Info/Function.hpp>
auto
operator<=>(Param const& rhs) const = default;
Return Value
The relative order of the objects
Parameters
Name |
Description |
rhs |
The right operand |
The default argument for this parameter, if any
Synopsis
Declared in <mrdocs/Metadata/Info/Function.hpp>
Optional<std::string> Default;
The parameter name.
Synopsis
Declared in <mrdocs/Metadata/Info/Function.hpp>
Optional<std::string> Name;
The type of this parameter
Synopsis
Declared in <mrdocs/Metadata/Info/Function.hpp>
Polymorphic<TypeInfo> Type = std::nullopt;
The result of a parse operation.
Synopsis
Declared in <mrdocs/Support/Parse.hpp>
struct ParseResult;
Member Functions
Name |
Description |
Conversion to |
Friends
Name |
Description |
Equality operator |
Non-Member Functions
Name |
Description |
Parse a string view |
Description
This class holds the result of a parse operation. The structure is similar to std::from_chars_result
, where we have a ptr
member that points to the first character not parsed, and a ec
member that holds the error code.
If parsing was successful, then ec
stores a default constructed Error
object, which indicates success. The operator bool
can also be used to check for success.
The typical format of a parsing function is:
ParseResult
parseType(
char const* first,
char const* last,
Type& value);
where more parameters can be defined as needed for parsing options.
Conversion to bool
Synopsis
Declared in <mrdocs/Support/Parse.hpp>
constexpr
explicit
operator bool() const noexcept;
Return Value
The object converted to bool
Synopsis
Declared in <mrdocs/Support/Parse.hpp>
Error ec;
Synopsis
Declared in <mrdocs/Support/Parse.hpp>
char const* ptr;
A glob pattern matcher for paths
Synopsis
Declared in <mrdocs/Support/Glob.hpp>
class PathGlobPattern;
Member Functions
Name |
Description |
|
Construct an empty PathGlobPattern. |
Checks if the glob pattern is a literal string. |
|
Matches the given string against the glob pattern. |
|
Matches the start of a given string against the glob pattern. |
|
Returns the glob pattern. |
Static Member Functions
Name |
Description |
Constructs a PathGlobPattern with the given pattern. |
Description
A glob pattern matcher where "*" does not match path separators. The pattern "*" can be used to match any number of path separators.
Construct an empty PathGlobPattern.
Synopses
Declared in <mrdocs/Support/Glob.hpp>
Construct an empty PathGlobPattern.
constexpr
PathGlobPattern() = default;
Construct an empty PathGlobPattern.
explicit
PathGlobPattern(GlobPattern glob);
Construct an empty PathGlobPattern.
Synopsis
Declared in <mrdocs/Support/Glob.hpp>
constexpr
PathGlobPattern() = default;
Description
An empty PathGlobPattern will never match any string.
Construct an empty PathGlobPattern.
Synopsis
Declared in <mrdocs/Support/Glob.hpp>
explicit
PathGlobPattern(GlobPattern glob);
Description
An empty PathGlobPattern will never match any string.
Parameters
Name |
Description |
glob |
The object to construct from |
Checks if the glob pattern is a literal string.
Synopsis
Declared in <mrdocs/Support/Glob.hpp>
bool
isLiteral() const;
Description
This function determines if the glob pattern does not contain any special characters. In other words, it matches a single string.
Return Value
true if the glob pattern is a literal string, false otherwise.
Matches the given string against the glob pattern.
Synopsis
Declared in <mrdocs/Support/Glob.hpp>
bool
match(std::string_view const str) const;
Return Value
true if the string matches the pattern, false otherwise.
Parameters
Name |
Description |
str |
The string to match against the pattern. |
Matches the start of a given string against the glob pattern.
Synopsis
Declared in <mrdocs/Support/Glob.hpp>
bool
matchPatternPrefix(std::string_view prefix) const;
Description
This function determines if the given string with the specified prefix
can potentially match the glob pattern.
If the string matches the start of the pattern without failure, even if there are characters left in the string or the pattern, the function returns true.
Return Value
true if the string prefix matches the pattern, false otherwise.
Parameters
Name |
Description |
prefix |
The string to match against the pattern. |
Returns the glob pattern.
Synopsis
Declared in <mrdocs/Support/Glob.hpp>
std::string_view
pattern() const;
Return Value
The glob pattern as a string view.
Constructs a PathGlobPattern with the given pattern.
Synopses
Declared in <mrdocs/Support/Glob.hpp>
Constructs a PathGlobPattern with the given pattern.
static
Expected<PathGlobPattern>
create(std::string_view const pattern);
Constructs a PathGlobPattern with the given pattern.
static
Expected<PathGlobPattern>
create(
std::string_view const pattern,
std::optional<std::size_t> maxSubGlobs);
Parameters
Name |
Description |
pattern |
The glob pattern to use for matching. |
maxSubGlobs |
The maximum number of subpatterns allowed. |
Constructs a PathGlobPattern with the given pattern.
Synopsis
Declared in <mrdocs/Support/Glob.hpp>
static
Expected<PathGlobPattern>
create(std::string_view const pattern);
Return Value
A container holding an error or a value.
Parameters
Name |
Description |
pattern |
The glob pattern to use for matching. |
Constructs a PathGlobPattern with the given pattern.
Synopsis
Declared in <mrdocs/Support/Glob.hpp>
static
Expected<PathGlobPattern>
create(
std::string_view const pattern,
std::optional<std::size_t> maxSubGlobs);
Return Value
A container holding an error or a value.
Parameters
Name |
Description |
pattern |
The glob pattern to use for matching. |
maxSubGlobs |
The maximum number of subpatterns allowed. |
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
struct PointerTypeInfo final
: TypeInfoCommonBase<TypeKind::Pointer>
Base Classes
Name |
Description |
Member Functions
Name |
Description |
Three‐way comparison operators |
Static Member Functions
Data Members
Name |
Static Data Members
Name |
Non-Member Functions
Name |
Description |
Return the inner type. |
|
Return the inner type. |
|
Return the inner type. |
|
Return the inner type. |
Three‐way comparison operators
Synopses
Declared in <mrdocs/Metadata/Type.hpp>
Three‐way comparison operator
std::strong_ordering
operator<=>(PointerTypeInfo const& rhs) const;
Three‐way comparison operator
constexpr
auto
operator<=>(TypeInfoCommonBase<clang::mrdocs::TypeKind::Pointer> const& rhs) const = default;
Three‐way comparison operator
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
std::strong_ordering
operator<=>(PointerTypeInfo const& rhs) const;
Return Value
The relative order of the objects
Parameters
Name |
Description |
rhs |
The right operand |
Three‐way comparison operator
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
constexpr
auto
operator<=>(TypeInfoCommonBase<clang::mrdocs::TypeKind::Pointer> const& rhs) const = default;
Return Value
The relative order of the objects
Parameters
Name |
Description |
rhs |
The right operand |
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
constexpr
static
bool
isArray() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
constexpr
static
bool
isAuto() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
constexpr
static
bool
isDecltype() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
constexpr
static
bool
isFunction() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
constexpr
static
bool
isLValueReference() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
constexpr
static
bool
isMemberPointer() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
constexpr
static
bool
isNamed() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
constexpr
static
bool
isPointer() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
constexpr
static
bool
isRValueReference() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
Polymorphic<TypeInfo> PointeeType = std::nullopt;
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
constexpr static
TypeKind kind_id;
A polymorphic value‐type.
Synopsis
Declared in <mrdocs/ADT/Polymorphic.hpp>
template<class T>
class Polymorphic;
Types
Member Functions
Name |
Description |
|
Constructors |
|
Destructor |
Assignment operators |
|
Dereference operators |
|
Member access operators |
|
Conversion to |
Friends
Name |
Description |
Non-Member Functions
Name |
Description |
Compares two polymorphic objects that have visit functions |
|
Return the innermost type. |
|
Return the innermost type. |
Description
This class supports polymorphic objects with value‐like semantics.
It implements a tweaked version of std::polymorphic, based on the reference implementation for P3019R14. Differences are: It supports nullability, which was originally supported in P3019 through std::optional specializations, but was later removed from the paper. It implements comparison operators with a very project specific design. Fixed allocator, not parametrizable. No initializer_list constructor.
Deep copies
To copy polymorphic objects, the class uses the copy constructor of the owned derived‐type object when copying to another value. Similarly, to allow correct destruction of derived objects, it uses the destructor of the owned derived‐type object in the destructor.
Synopsis
Declared in <mrdocs/ADT/Polymorphic.hpp>
using const_pointer = T const*;
Synopsis
Declared in <mrdocs/ADT/Polymorphic.hpp>
using pointer = T*;
Synopsis
Declared in <mrdocs/ADT/Polymorphic.hpp>
using value_type = T;
Constructors
Synopses
Declared in <mrdocs/ADT/Polymorphic.hpp>
Default constructs the value type.
constexpr
explicit
Polymorphic();
Copy constructor
constexpr
Polymorphic(Polymorphic const& V);
Move constructor
constexpr
Polymorphic(Polymorphic&& V) noexcept;
Empty constructor.
constexpr
Polymorphic(std::nullopt_t value);
Forwarding constructor.
template<class U>
constexpr
explicit
Polymorphic(U&& u)
requires (not std::same_as<Polymorphic, std::remove_cvref_t<U>>) &&
std::copy_constructible<std::remove_cvref_t<U>> &&
std::derived_from<std::remove_cvref_t<U>, T>;
In place constructor
template<
class U,
class... Ts>
constexpr
explicit
Polymorphic(
std::in_place_type_t<U>,
Ts...&&... ts)
requires std::same_as<std::remove_cvref_t<U>, U> &&
std::constructible_from<U, Ts &&...> &&
std::copy_constructible<U> && std::derived_from<U, T>;
Parameters
Name |
Description |
u |
The object to copy. |
ts |
Arguments to forward to the constructor of U. |
Default constructs the value type.
Synopsis
Declared in <mrdocs/ADT/Polymorphic.hpp>
constexpr
explicit
Polymorphic();
Copy constructor
Synopsis
Declared in <mrdocs/ADT/Polymorphic.hpp>
constexpr
Polymorphic(Polymorphic const& V);
Parameters
Name |
Description |
V |
The object to copy construct from |
Move constructor
Synopsis
Declared in <mrdocs/ADT/Polymorphic.hpp>
constexpr
Polymorphic(Polymorphic&& V) noexcept;
Parameters
Name |
Description |
V |
The object to move construct from |
Empty constructor.
Synopsis
Declared in <mrdocs/ADT/Polymorphic.hpp>
constexpr
Polymorphic(std::nullopt_t value);
Description
Ensures: this is empty.
Parameters
Name |
Description |
value |
The object to construct from |
Forwarding constructor.
Synopsis
Declared in <mrdocs/ADT/Polymorphic.hpp>
template<class U>
constexpr
explicit
Polymorphic(U&& u)
requires (not std::same_as<Polymorphic, std::remove_cvref_t<U>>) &&
std::copy_constructible<std::remove_cvref_t<U>> &&
std::derived_from<std::remove_cvref_t<U>, T>;
Parameters
Name |
Description |
u |
The object to copy. |
In place constructor
Synopsis
Declared in <mrdocs/ADT/Polymorphic.hpp>
template<
class U,
class... Ts>
constexpr
explicit
Polymorphic(
std::in_place_type_t<U>,
Ts...&&... ts)
requires std::same_as<std::remove_cvref_t<U>, U> &&
std::constructible_from<U, Ts &&...> &&
std::copy_constructible<U> && std::derived_from<U, T>;
Parameters
Name |
Description |
ts |
Arguments to forward to the constructor of U. |
Destructor
Synopsis
Declared in <mrdocs/ADT/Polymorphic.hpp>
constexpr
~Polymorphic();
Assignment operators
Synopses
Declared in <mrdocs/ADT/Polymorphic.hpp>
Copy assignment operator
constexpr
Polymorphic&
operator=(Polymorphic const& V);
Move assignment operator
constexpr
Polymorphic&
operator=(Polymorphic&& V) noexcept;
Copy assignment operator
Synopsis
Declared in <mrdocs/ADT/Polymorphic.hpp>
constexpr
Polymorphic&
operator=(Polymorphic const& V);
Return Value
Reference to the current object
Parameters
Name |
Description |
V |
The object to copy assign from |
Move assignment operator
Synopsis
Declared in <mrdocs/ADT/Polymorphic.hpp>
constexpr
Polymorphic&
operator=(Polymorphic&& V) noexcept;
Return Value
Reference to the current object
Parameters
Name |
Description |
V |
The object to move assign from |
Dereference operators
Synopses
Declared in <mrdocs/ADT/Polymorphic.hpp>
[[nodiscard]]
constexpr
T&
operator*() noexcept;
[[nodiscard]]
constexpr
T const&
operator*() const noexcept;
Synopsis
Declared in <mrdocs/ADT/Polymorphic.hpp>
[[nodiscard]]
constexpr
T&
operator*() noexcept;
Synopsis
Declared in <mrdocs/ADT/Polymorphic.hpp>
[[nodiscard]]
constexpr
T const&
operator*() const noexcept;
Member access operators
Synopses
Declared in <mrdocs/ADT/Polymorphic.hpp>
[[nodiscard]]
constexpr
pointer
operator‐>() noexcept;
[[nodiscard]]
constexpr
const_pointer
operator‐>() const noexcept;
Synopsis
Declared in <mrdocs/ADT/Polymorphic.hpp>
[[nodiscard]]
constexpr
pointer
operator‐>() noexcept;
Synopsis
Declared in <mrdocs/ADT/Polymorphic.hpp>
[[nodiscard]]
constexpr
const_pointer
operator‐>() const noexcept;
Conversion to bool
Synopsis
Declared in <mrdocs/ADT/Polymorphic.hpp>
[[nodiscard]]
constexpr
explicit
operator bool() const noexcept;
Return Value
The object converted to bool
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
struct RValueReferenceTypeInfo final
: TypeInfoCommonBase<TypeKind::RValueReference>
Base Classes
Name |
Description |
Member Functions
Name |
Description |
Three‐way comparison operators |
Static Member Functions
Data Members
Name |
Static Data Members
Name |
Non-Member Functions
Name |
Description |
Return the inner type. |
|
Return the inner type. |
|
Return the inner type. |
|
Return the inner type. |
Three‐way comparison operators
Synopses
Declared in <mrdocs/Metadata/Type.hpp>
Three‐way comparison operator
std::strong_ordering
operator<=>(RValueReferenceTypeInfo const& rhs) const;
Three‐way comparison operator
constexpr
auto
operator<=>(TypeInfoCommonBase<clang::mrdocs::TypeKind::RValueReference> const& rhs) const = default;
Three‐way comparison operator
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
std::strong_ordering
operator<=>(RValueReferenceTypeInfo const& rhs) const;
Return Value
The relative order of the objects
Parameters
Name |
Description |
rhs |
The right operand |
Three‐way comparison operator
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
constexpr
auto
operator<=>(TypeInfoCommonBase<clang::mrdocs::TypeKind::RValueReference> const& rhs) const = default;
Return Value
The relative order of the objects
Parameters
Name |
Description |
rhs |
The right operand |
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
constexpr
static
bool
isArray() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
constexpr
static
bool
isAuto() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
constexpr
static
bool
isDecltype() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
constexpr
static
bool
isFunction() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
constexpr
static
bool
isLValueReference() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
constexpr
static
bool
isMemberPointer() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
constexpr
static
bool
isNamed() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
constexpr
static
bool
isPointer() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
constexpr
static
bool
isRValueReference() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
Polymorphic<TypeInfo> PointeeType = std::nullopt;
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
constexpr static
TypeKind kind_id;
Range to help range‐for loops identify first and last.
Synopsis
Declared in <mrdocs/Support/RangeFor.hpp>
template<class Container>
class RangeFor;
Types
Synopsis
Declared in <mrdocs/Support/RangeFor.hpp>
using const_pointer = value_type const*;
Synopsis
Declared in <mrdocs/Support/RangeFor.hpp>
using const_reference = value_type const&;
Synopsis
Declared in <mrdocs/Support/RangeFor.hpp>
using difference_type = std::ptrdiff_t;
Synopsis
Declared in <mrdocs/Support/RangeFor.hpp>
using pointer = value_type*;
Synopsis
Declared in <mrdocs/Support/RangeFor.hpp>
using reference = value_type&;
Synopsis
Declared in <mrdocs/Support/RangeFor.hpp>
using size_type = std::size_t;
Synopsis
Declared in <mrdocs/Support/RangeFor.hpp>
class iterator;
Member Functions
Name |
Description |
|
Constructors |
Copy assignment operator |
|
Increment operators |
|
Equality operator |
|
Inequality operator |
Friends
Name |
Description |
Range to help range‐for loops identify first and last. |
Synopsis
Declared in <mrdocs/Support/RangeFor.hpp>
using iterator_category = std::iterator_traits<Container::iterator>::iterator_category;
Synopsis
Declared in <mrdocs/Support/RangeFor.hpp>
using pointer = void;
Synopsis
Declared in <mrdocs/Support/RangeFor.hpp>
using reference = value_type;
Synopsis
Declared in <mrdocs/Support/RangeFor.hpp>
using size_type = std::size_t;
Synopsis
Declared in <mrdocs/Support/RangeFor.hpp>
using value_type = RangeFor<Container>::value_type;
Constructors
Synopses
Declared in <mrdocs/Support/RangeFor.hpp>
Default constructor
iterator() = default;
Copy constructor
Default constructor
Synopsis
Declared in <mrdocs/Support/RangeFor.hpp>
iterator() = default;
Copy constructor
Synopsis
Declared in <mrdocs/Support/RangeFor.hpp>
iterator(iterator const& other) = default;
Parameters
Name |
Description |
other |
The object to copy construct from |
Copy assignment operator
Synopsis
Return Value
Reference to the current object
Parameters
Name |
Description |
other |
The object to copy assign from |
Synopsis
Declared in <mrdocs/Support/RangeFor.hpp>
reference
operator*() const noexcept;
Increment operators
Synopses
Declared in <mrdocs/Support/RangeFor.hpp>
Increment operator
iterator&
operator++() noexcept;
Increment operator
iterator
operator++(int) noexcept;
Increment operator
Synopsis
Declared in <mrdocs/Support/RangeFor.hpp>
iterator&
operator++() noexcept;
Return Value
Reference to the current object
Increment operator
Synopsis
Declared in <mrdocs/Support/RangeFor.hpp>
iterator
operator++(int) noexcept;
Return Value
Another instance of the object
Synopsis
Declared in <mrdocs/Support/RangeFor.hpp>
reference
operator‐>() const noexcept;
Equality operator
Synopsis
Declared in <mrdocs/Support/RangeFor.hpp>
bool
operator==(iterator const& it) const noexcept;
Return Value
true
if the objects are equal, false
otherwise
Parameters
Name |
Description |
it |
The right operand |
Inequality operator
Synopsis
Declared in <mrdocs/Support/RangeFor.hpp>
bool
operator!=(iterator const& it) const noexcept;
Return Value
true
if the objects are not equal, false
otherwise
Parameters
Name |
Description |
it |
The right operand |
Synopsis
Declared in <mrdocs/Support/RangeFor.hpp>
struct value_type;
Member Functions
Name |
Description |
Member access operator |
Synopsis
Declared in <mrdocs/Support/RangeFor.hpp>
value_type const*
operator‐>() const noexcept;
Return Value
Pointer to the current object
Synopsis
Declared in <mrdocs/Support/RangeFor.hpp>
bool const first;
Synopsis
Declared in <mrdocs/Support/RangeFor.hpp>
bool const last;
Synopsis
Declared in <mrdocs/Support/RangeFor.hpp>
Container::value_type const& value;
Construct from Container
Synopsis
Declared in <mrdocs/Support/RangeFor.hpp>
explicit
RangeFor(Container const& C) noexcept;
Parameters
Name |
Description |
C |
The object to copy construct from |
Synopsis
Declared in <mrdocs/Support/RangeFor.hpp>
iterator
begin() const noexcept;
Synopsis
Declared in <mrdocs/Support/RangeFor.hpp>
iterator
end() const noexcept;
Metadata for struct, class, or union.
Synopsis
Declared in <mrdocs/Metadata/Info/Record.hpp>
struct RecordInfo final
: InfoCommonBase<InfoKind::Record>
Base Classes
Name |
Description |
Base class for providing variant discriminator functions. |
Member Functions
Name |
Description |
|
Construct from |
Three‐way comparison operators |
Static Member Functions
Data Members
Name |
Description |
List of immediate bases. |
|
List of derived classes |
|
List of friends. |
|
Lists of members. |
|
Kind of record this is (class, struct, or union). |
|
When present, this record is a template or specialization. |
Static Data Members
Name |
Non-Member Functions
Name |
Description |
Merges two Info objects. |
Construct from SymbolID
Synopsis
Declared in <mrdocs/Metadata/Info/Record.hpp>
explicit
RecordInfo(SymbolID const& ID) noexcept;
Parameters
Name |
Description |
ID |
The object to copy construct from |
Three‐way comparison operators
Synopses
Declared in <mrdocs/Metadata/Info/Record.hpp>
Three‐way comparison operator
std::strong_ordering
operator<=>(RecordInfo const& other) const;
Three‐way comparison operator
auto
operator<=>(InfoCommonBase<clang::mrdocs::InfoKind::Record> const& rhs) const = default;
Three‐way comparison operator
Synopsis
Declared in <mrdocs/Metadata/Info/Record.hpp>
std::strong_ordering
operator<=>(RecordInfo const& other) const;
Return Value
The relative order of the objects
Parameters
Name |
Description |
other |
The right operand |
Three‐way comparison operator
Synopsis
Declared in <mrdocs/Metadata/Info.hpp>
auto
operator<=>(InfoCommonBase<clang::mrdocs::InfoKind::Record> const& rhs) const = default;
Return Value
The relative order of the objects
Parameters
Name |
Description |
rhs |
The right operand |
Synopsis
Declared in <mrdocs/Metadata/Info/InfoNodes.inc>
constexpr
static
bool
isConcept() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Info/InfoNodes.inc>
constexpr
static
bool
isEnum() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Info/InfoNodes.inc>
constexpr
static
bool
isEnumConstant() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Info/InfoNodes.inc>
constexpr
static
bool
isFunction() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Info/InfoNodes.inc>
constexpr
static
bool
isGuide() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Info/InfoNodes.inc>
constexpr
static
bool
isNamespace() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Info/InfoNodes.inc>
constexpr
static
bool
isNamespaceAlias() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Info/InfoNodes.inc>
constexpr
static
bool
isOverloads() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Info/InfoNodes.inc>
constexpr
static
bool
isRecord() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Info/InfoNodes.inc>
constexpr
static
bool
isTypedef() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Info/InfoNodes.inc>
constexpr
static
bool
isUsing() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Info/InfoNodes.inc>
constexpr
static
bool
isVariable() noexcept;
List of immediate bases.
Synopsis
Declared in <mrdocs/Metadata/Info/Record.hpp>
std::vector<BaseInfo> Bases;
List of derived classes
Synopsis
Declared in <mrdocs/Metadata/Info/Record.hpp>
std::vector<SymbolID> Derived;
List of friends.
Synopsis
Declared in <mrdocs/Metadata/Info/Record.hpp>
std::vector<FriendInfo> Friends;
Lists of members.
Synopsis
Declared in <mrdocs/Metadata/Info/Record.hpp>
RecordInterface Interface;
Synopsis
Declared in <mrdocs/Metadata/Info/Record.hpp>
bool IsFinal = false;
Synopsis
Declared in <mrdocs/Metadata/Info/Record.hpp>
bool IsFinalDestructor = false;
Synopsis
Declared in <mrdocs/Metadata/Info/Record.hpp>
bool IsTypeDef = false;
Kind of record this is (class, struct, or union).
Synopsis
Declared in <mrdocs/Metadata/Info/Record.hpp>
RecordKeyKind KeyKind = RecordKeyKind::Struct;
When present, this record is a template or specialization.
Synopsis
Declared in <mrdocs/Metadata/Info/Record.hpp>
std::optional<TemplateInfo> Template;
Synopsis
Declared in <mrdocs/Metadata/Info.hpp>
constexpr static
InfoKind kind_id;
The aggregated interface for a given struct, class, or union.
Synopsis
Declared in <mrdocs/Metadata/Info/Record.hpp>
class RecordInterface;
Data Members
Description
This class represents the public, protected, and private interfaces of a record. It is used to generate the "interface" value of the DOM for symbols that represent records or namespaces.
The interface is not part of the Corpus. It is a temporary structure generated to aggregate the symbols of a record. This structure is provided to the user via the DOM.
While the members of a Namespace are directly represented with a Tranche, the members of a Record are represented with an Interface.
The aggregated private interfaces.
Synopsis
Declared in <mrdocs/Metadata/Info/Record.hpp>
RecordTranche Private;
Description
This tranche contains all private members of a record or namespace.
The aggregated protected interfaces.
Synopsis
Declared in <mrdocs/Metadata/Info/Record.hpp>
RecordTranche Protected;
Description
This tranche contains all protected members of a record or namespace.
The aggregated public interfaces.
Synopsis
Declared in <mrdocs/Metadata/Info/Record.hpp>
RecordTranche Public;
Description
This tranche contains all public members of a record or namespace.
A group of members that have the same access specifier.
Synopsis
Declared in <mrdocs/Metadata/Info/Record.hpp>
struct RecordTranche;
Data Members
Description
This struct represents a collection of symbols that share the same access specifier within a record.
It includes one vector for each info type allowed in a record, and individual vectors for static functions, types, and function overloads.
Synopsis
Declared in <mrdocs/Metadata/Info/Record.hpp>
std::vector<SymbolID> Concepts;
Synopsis
Declared in <mrdocs/Metadata/Info/Record.hpp>
std::vector<SymbolID> Enums;
Synopsis
Declared in <mrdocs/Metadata/Info/Record.hpp>
std::vector<SymbolID> Functions;
Synopsis
Declared in <mrdocs/Metadata/Info/Record.hpp>
std::vector<SymbolID> Guides;
Synopsis
Declared in <mrdocs/Metadata/Info/Record.hpp>
std::vector<SymbolID> NamespaceAliases;
Synopsis
Declared in <mrdocs/Metadata/Info/Record.hpp>
std::vector<SymbolID> Records;
Synopsis
Declared in <mrdocs/Metadata/Info/Record.hpp>
std::vector<SymbolID> StaticFunctions;
Synopsis
Declared in <mrdocs/Metadata/Info/Record.hpp>
std::vector<SymbolID> StaticVariables;
Synopsis
Declared in <mrdocs/Metadata/Info/Record.hpp>
std::vector<SymbolID> Typedefs;
Synopsis
Declared in <mrdocs/Metadata/Info/Record.hpp>
std::vector<SymbolID> Usings;
Synopsis
Declared in <mrdocs/Metadata/Info/Record.hpp>
std::vector<SymbolID> Variables;
Reference directories used to resolve paths
Synopsis
Declared in <mrdocs/Config/ReferenceDirectories.hpp>
struct ReferenceDirectories;
Data Members
Name |
Description
These are the main reference directories used to resolve paths in the application.
All other reference directories come directly from the configuration file.
Synopsis
Declared in <mrdocs/Config/ReferenceDirectories.hpp>
std::string cwd;
Synopsis
Declared in <mrdocs/Config/ReferenceDirectories.hpp>
std::string mrdocsRoot;
Synopsis
Declared in <mrdocs/Support/ScopeExit.hpp>
template<class F>
class ScopeExit;
Member Functions
Name |
Description |
|
Construct from |
|
Destructor |
Construct from F
Synopsis
Declared in <mrdocs/Support/ScopeExit.hpp>
explicit
ScopeExit(F onExitScope);
Parameters
Name |
Description |
onExitScope |
The object to construct from |
Destructor
Synopsis
Declared in <mrdocs/Support/ScopeExit.hpp>
~ScopeExit();
Synopsis
Declared in <mrdocs/Support/ScopeExit.hpp>
void
dismiss();
Synopsis
Declared in <mrdocs/Support/ScopeExit.hpp>
template<class T>
class ScopeExitRestore;
Member Functions
Name |
Description |
|
Constructors |
|
Destructor |
Constructors
Synopses
Declared in <mrdocs/Support/ScopeExit.hpp>
Construct from T
explicit
ScopeExitRestore(T& ref);
template<std::convertible_to<T> T2>
explicit
ScopeExitRestore(
T& ref,
T2 next);
Construct from T
Synopsis
Declared in <mrdocs/Support/ScopeExit.hpp>
explicit
ScopeExitRestore(T& ref);
Parameters
Name |
Description |
ref |
The object to copy construct from |
Synopsis
Declared in <mrdocs/Support/ScopeExit.hpp>
template<std::convertible_to<T> T2>
explicit
ScopeExitRestore(
T& ref,
T2 next);
Destructor
Synopsis
Declared in <mrdocs/Support/ScopeExit.hpp>
~ScopeExitRestore();
Synopsis
Declared in <mrdocs/Support/ScopeExit.hpp>
void
dismiss();
Stores source information for a declaration.
Synopsis
Declared in <mrdocs/Metadata/Source.hpp>
struct SourceInfo;
Member Functions
Name |
Description |
|
Destructor |
Three‐way comparison operator |
Data Members
Protected Member Functions
Name |
Description |
|
Default constructor |
Derived Classes
Name |
Description |
Base class with common properties of all symbols |
Destructor
Synopsis
Declared in <mrdocs/Metadata/Source.hpp>
constexpr
virtual
~SourceInfo() = default;
Synopses
Declared in <mrdocs/Metadata/Source.hpp>
constexpr
SourceInfo const&
asSourceInfo() const noexcept;
constexpr
SourceInfo&
asSourceInfo() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Source.hpp>
constexpr
SourceInfo const&
asSourceInfo() const noexcept;
Synopsis
Declared in <mrdocs/Metadata/Source.hpp>
constexpr
SourceInfo&
asSourceInfo() noexcept;
Three‐way comparison operator
Synopsis
Declared in <mrdocs/Metadata/Source.hpp>
constexpr
auto
operator<=>(SourceInfo const& rhs) const = default;
Return Value
The relative order of the objects
Parameters
Name |
Description |
rhs |
The right operand |
Location where the entity was defined
Synopsis
Declared in <mrdocs/Metadata/Source.hpp>
OptionalLocation DefLoc;
Description
KRYSTIAN NOTE: this is used for entities which cannot be redeclared ‐‐ regardless of whether such a declaration is actually a definition (e.g. alias‐declarations and typedef declarations are never definition).
Locations where the entity was declared.
Synopsis
Declared in <mrdocs/Metadata/Source.hpp>
std::vector<Location> Loc;
Description
This does not include the definition.
Default constructor
Synopsis
Declared in <mrdocs/Metadata/Source.hpp>
constexpr
SourceInfo() = default;
A source location with filename prettification.
Synopsis
Declared in <mrdocs/Support/Error.hpp>
class SourceLocation;
Member Functions
Name |
Description |
|
Construct from |
Construct from source_location
Synopsis
Declared in <mrdocs/Support/Error.hpp>
SourceLocation(std::source_location const& loc) noexcept;
Parameters
Name |
Description |
loc |
The object to copy construct from |
Synopsis
Declared in <mrdocs/Support/Error.hpp>
uint_least32_t
column() const noexcept;
Synopsis
Declared in <mrdocs/Support/Error.hpp>
std::string_view
file_name() const noexcept;
Synopsis
Declared in <mrdocs/Support/Error.hpp>
std::string_view
function_name() const noexcept;
Synopsis
Declared in <mrdocs/Support/Error.hpp>
uint_least32_t
line() const noexcept;
Represents a (possibly qualified) symbol name with template arguments.
Synopsis
Declared in <mrdocs/Metadata/Name.hpp>
struct SpecializationNameInfo final
: NameInfo
Base Classes
Name |
Description |
Represents a name for a named |
Member Functions
Name |
Description |
|
Default constructor |
Equality operator |
|
Three‐way comparison operators |
Data Members
Name |
Description |
The kind of name this is. |
|
The unqualified name. |
|
The parent name info, if any. |
|
The template arguments. |
|
The SymbolID of the named symbol, if it exists. |
|
The SymbolID of the named symbol, if it exists. |
Default constructor
Synopsis
Declared in <mrdocs/Metadata/Name.hpp>
constexpr
SpecializationNameInfo() noexcept;
Three‐way comparison operators
Synopses
Declared in <mrdocs/Metadata/Name.hpp>
Three‐way comparison operator
auto
operator<=>(SpecializationNameInfo const& other) const;
Three‐way comparison operator
std::strong_ordering
operator<=>(NameInfo const& other) const;
Three‐way comparison operator
Synopsis
Declared in <mrdocs/Metadata/Name.hpp>
auto
operator<=>(SpecializationNameInfo const& other) const;
Return Value
The relative order of the objects
Parameters
Name |
Description |
other |
The right operand |
Three‐way comparison operator
Synopsis
Declared in <mrdocs/Metadata/Name.hpp>
std::strong_ordering
operator<=>(NameInfo const& other) const;
Return Value
The relative order of the objects
Parameters
Name |
Description |
other |
The right operand |
The template arguments.
Synopsis
Declared in <mrdocs/Metadata/Name.hpp>
std::vector<Polymorphic<TArg>> TemplateArgs;
The SymbolID of the named symbol, if it exists.
Synopsis
Declared in <mrdocs/Metadata/Name.hpp>
SymbolID specializationID = = SymbolID::invalid;
Synopsis
Declared in <mrdocs/ADT/UnorderedStringMap.hpp>
struct StringHash;
Types
Member Functions
Name |
Description |
Function call operators |
Synopsis
Declared in <mrdocs/ADT/UnorderedStringMap.hpp>
using hash_type = std::hash<std::string_view>;
Synopsis
Declared in <mrdocs/ADT/UnorderedStringMap.hpp>
using is_transparent = void;
Function call operators
Synopses
Declared in <mrdocs/ADT/UnorderedStringMap.hpp>
std::size_t
operator()(std::string_view str) const;
std::size_t
operator()(std::string const& str) const;
std::size_t
operator()(char const* str) const;
Synopsis
Declared in <mrdocs/ADT/UnorderedStringMap.hpp>
std::size_t
operator()(std::string_view str) const;
Synopsis
Declared in <mrdocs/ADT/UnorderedStringMap.hpp>
std::size_t
operator()(std::string const& str) const;
Synopsis
Declared in <mrdocs/ADT/UnorderedStringMap.hpp>
std::size_t
operator()(char const* str) const;
A glob pattern matcher for C++ symbols
Synopsis
Declared in <mrdocs/Support/Glob.hpp>
class SymbolGlobPattern;
Member Functions
Name |
Description |
|
Construct an empty SymbolGlobPattern. |
Checks if the glob pattern is a literal string. |
|
Matches the given string against the glob pattern. |
|
Matches the start of a given string against the glob pattern. |
|
Returns the glob pattern. |
Static Member Functions
Name |
Description |
Constructs a SymbolGlobPattern with the given pattern. |
Description
A glob pattern matcher where "*" does not match "::". The pattern "*" can be used to match any number of "::".
Construct an empty SymbolGlobPattern.
Synopses
Declared in <mrdocs/Support/Glob.hpp>
Construct an empty SymbolGlobPattern.
constexpr
SymbolGlobPattern() = default;
Construct an empty SymbolGlobPattern.
explicit
SymbolGlobPattern(GlobPattern glob);
Construct an empty SymbolGlobPattern.
Synopsis
Declared in <mrdocs/Support/Glob.hpp>
constexpr
SymbolGlobPattern() = default;
Description
An empty SymbolGlobPattern will never match any string.
Construct an empty SymbolGlobPattern.
Synopsis
Declared in <mrdocs/Support/Glob.hpp>
explicit
SymbolGlobPattern(GlobPattern glob);
Description
An empty SymbolGlobPattern will never match any string.
Parameters
Name |
Description |
glob |
The object to construct from |
Checks if the glob pattern is a literal string.
Synopsis
Declared in <mrdocs/Support/Glob.hpp>
bool
isLiteral() const;
Description
This function determines if the glob pattern does not contain any special characters. In other words, it matches a single string.
Return Value
true if the glob pattern is a literal string, false otherwise.
Matches the given string against the glob pattern.
Synopsis
Declared in <mrdocs/Support/Glob.hpp>
bool
match(std::string_view const str) const;
Return Value
true if the string matches the pattern, false otherwise.
Parameters
Name |
Description |
str |
The string to match against the pattern. |
Matches the start of a given string against the glob pattern.
Synopsis
Declared in <mrdocs/Support/Glob.hpp>
bool
matchPatternPrefix(std::string_view prefix) const;
Description
This function determines if the given string with the specified prefix
can potentially match the glob pattern.
If the string matches the start of the pattern without failure, even if there are characters left in the string or the pattern, the function returns true.
Return Value
true if the string prefix matches the pattern, false otherwise.
Parameters
Name |
Description |
prefix |
The string to match against the pattern. |
Returns the glob pattern.
Synopsis
Declared in <mrdocs/Support/Glob.hpp>
std::string_view
pattern() const;
Return Value
The glob pattern as a string view.
Constructs a SymbolGlobPattern with the given pattern.
Synopses
Declared in <mrdocs/Support/Glob.hpp>
Constructs a SymbolGlobPattern with the given pattern.
static
Expected<SymbolGlobPattern>
create(std::string_view const pattern);
Constructs a SymbolGlobPattern with the given pattern.
static
Expected<SymbolGlobPattern>
create(
std::string_view const pattern,
std::optional<std::size_t> maxSubGlobs);
Parameters
Name |
Description |
pattern |
The glob pattern to use for matching. |
maxSubGlobs |
The maximum number of subpatterns allowed. |
Constructs a SymbolGlobPattern with the given pattern.
Synopsis
Declared in <mrdocs/Support/Glob.hpp>
static
Expected<SymbolGlobPattern>
create(std::string_view const pattern);
Return Value
A container holding an error or a value.
Parameters
Name |
Description |
pattern |
The glob pattern to use for matching. |
Constructs a SymbolGlobPattern with the given pattern.
Synopsis
Declared in <mrdocs/Support/Glob.hpp>
static
Expected<SymbolGlobPattern>
create(
std::string_view const pattern,
std::optional<std::size_t> maxSubGlobs);
Return Value
A container holding an error or a value.
Parameters
Name |
Description |
pattern |
The glob pattern to use for matching. |
maxSubGlobs |
The maximum number of subpatterns allowed. |
A unique identifier for a symbol.
Synopsis
Declared in <mrdocs/Metadata/SymbolID.hpp>
class SymbolID;
Types
Name |
Member Functions
Name |
Description |
|
Construct a SymbolID from a null‐terminated string. |
Return an iterator to the first byte of the SymbolID. |
|
Return the raw data for this SymbolID. |
|
Return an iterator to one past the last byte of the SymbolID. |
|
Return the size of the SymbolID. |
|
Return a string view of the SymbolID. |
|
Return true if this is a valid SymbolID. |
|
Compare two SymbolIDs for equality. |
|
Compare two SymbolIDs with strong ordering. |
Static Member Functions
Name |
Description |
Construct a SymbolID by hashing a string |
Non-Member Functions
Name |
Description |
Return a list of the parent symbols of the specified Info. |
|
Convert a SymbolID to a string |
Description
This is calculated as the SHA1 digest of the USR. A USRs is a string that provides an unambiguous reference to a symbol.
Synopsis
Declared in <mrdocs/Metadata/SymbolID.hpp>
using value_type = uint8_t;
Construct a SymbolID from a null‐terminated string.
Synopses
Parameters
Name |
Description |
src |
The string to construct from. |
Default constructor
Synopsis
Declared in <mrdocs/Metadata/SymbolID.hpp>
constexpr
SymbolID() = default;
Construct a SymbolID from a null‐terminated string.
Synopsis
Declared in <mrdocs/Metadata/SymbolID.hpp>
template<std::convertible_to<value_type> Char>
constexpr
SymbolID(Char const* src);
Description
This function constructs a SymbolID from a string. The string must be exactly 20 characters long.
Parameters
Name |
Description |
src |
The string to construct from. |
Return an iterator to the first byte of the SymbolID.
Synopsis
Declared in <mrdocs/Metadata/SymbolID.hpp>
constexpr
auto
begin() const noexcept;
Return Value
an iterator to the first byte of the SymbolID.
Return the raw data for this SymbolID.
Synopsis
Declared in <mrdocs/Metadata/SymbolID.hpp>
constexpr
auto
data() const noexcept;
Return Value
the raw data for this SymbolID.
Return an iterator to one past the last byte of the SymbolID.
Synopsis
Declared in <mrdocs/Metadata/SymbolID.hpp>
constexpr
auto
end() const noexcept;
Return Value
an iterator to one past the last byte of the SymbolID.
Return the size of the SymbolID.
Synopsis
Declared in <mrdocs/Metadata/SymbolID.hpp>
constexpr
std::size_t
size() const noexcept;
Description
The size of a SymbolID is always 20.
Return Value
the size of the SymbolID.
Return a string view of the SymbolID.
Synopsis
Declared in <mrdocs/Metadata/SymbolID.hpp>
operator std::string_view() const noexcept;
Return Value
a string view of the SymbolID.
Return true if this is a valid SymbolID.
Synopsis
Declared in <mrdocs/Metadata/SymbolID.hpp>
explicit
operator bool() const noexcept;
Return Value
true if this is a valid SymbolID.
Compare two SymbolIDs for equality.
Synopsis
Declared in <mrdocs/Metadata/SymbolID.hpp>
constexpr
bool
operator==(SymbolID const& other) const noexcept = default;
Return Value
true
if the objects are equal, false
otherwise
Parameters
Name |
Description |
other |
The right operand |
Compare two SymbolIDs with strong ordering.
Synopsis
Declared in <mrdocs/Metadata/SymbolID.hpp>
auto
operator<=>(SymbolID const& other) const noexcept;
Return Value
The relative order of the objects
Parameters
Name |
Description |
other |
The right operand |
Construct a SymbolID by hashing a string
Synopsis
Declared in <mrdocs/Metadata/SymbolID.hpp>
static
SymbolID
createFromString(std::string_view input);
Return Value
The SymbolID created by hashing the string.
Parameters
Name |
Description |
input |
The string to hash. |
Symbol ID of the global namespace.
Synopsis
Declared in <mrdocs/Metadata/SymbolID.hpp>
inline constexpr static
SymbolID global = "\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF"
"\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF";
Synopsis
Declared in <mrdocs/Metadata/SymbolID.hpp>
inline constexpr static
SymbolID invalid = SymbolID();
Synopsis
Declared in <mrdocs/Metadata/Template.hpp>
struct TArg;
Member Functions
Name |
Description |
|
Destructor |
Three‐way comparison operator |
Data Members
Name |
Description |
Whether this template argument is a parameter expansion. |
|
The kind of template argument this is. |
Protected Member Functions
Name |
Description |
|
Construct from |
Derived Classes
Name |
Description |
Destructor
Synopsis
Declared in <mrdocs/Metadata/Template.hpp>
constexpr
virtual
~TArg() = default;
Synopsis
Declared in <mrdocs/Metadata/Template.hpp>
constexpr
bool
isNonType() const noexcept;
Synopsis
Declared in <mrdocs/Metadata/Template.hpp>
constexpr
bool
isTemplate() const noexcept;
Synopsis
Declared in <mrdocs/Metadata/Template.hpp>
constexpr
bool
isType() const noexcept;
Three‐way comparison operator
Synopsis
Declared in <mrdocs/Metadata/Template.hpp>
constexpr
auto
operator<=>(TArg const& rhs) const = default;
Return Value
The relative order of the objects
Parameters
Name |
Description |
rhs |
The right operand |
Whether this template argument is a parameter expansion.
Synopsis
Declared in <mrdocs/Metadata/Template.hpp>
bool IsPackExpansion = false;
The kind of template argument this is.
Synopsis
Synopsis
Declared in <mrdocs/Metadata/Template.hpp>
constexpr
TArg(TArgKind kind) noexcept;
Parameters
Name |
Description |
kind |
The object to construct from |
Synopsis
Declared in <mrdocs/Metadata/Template.hpp>
struct TParam;
Member Functions
Name |
Description |
|
Destructor |
Three‐way comparison operator |
Data Members
Name |
Description |
The default template argument, if any |
|
Whether this template parameter is a parameter pack |
|
The kind of template parameter this is |
|
The template parameters name, if any |
Protected Member Functions
Name |
Description |
|
Construct from |
Derived Classes
Name |
Description |
Destructor
Synopsis
Declared in <mrdocs/Metadata/Template.hpp>
constexpr
virtual
~TParam() = default;
Synopsis
Declared in <mrdocs/Metadata/Template.hpp>
constexpr
bool
isNonType() const noexcept;
Synopsis
Declared in <mrdocs/Metadata/Template.hpp>
constexpr
bool
isTemplate() const noexcept;
Synopsis
Declared in <mrdocs/Metadata/Template.hpp>
constexpr
bool
isType() const noexcept;
Three‐way comparison operator
Synopsis
Declared in <mrdocs/Metadata/Template.hpp>
std::strong_ordering
operator<=>(TParam const& rhs) const;
Return Value
The relative order of the objects
Parameters
Name |
Description |
rhs |
The right operand |
The default template argument, if any
Synopsis
Declared in <mrdocs/Metadata/Template.hpp>
Polymorphic<TArg> Default = std::nullopt;
Whether this template parameter is a parameter pack
Synopsis
Declared in <mrdocs/Metadata/Template.hpp>
bool IsParameterPack = false;
The kind of template parameter this is
Synopsis
Declared in <mrdocs/Metadata/Template.hpp>
TParamKind Kind;
The template parameters name, if any
Synopsis
Declared in <mrdocs/Metadata/Template.hpp>
std::string Name;
Construct from TParamKind
Synopsis
Declared in <mrdocs/Metadata/Template.hpp>
constexpr
TParam(TParamKind kind) noexcept;
Parameters
Name |
Description |
kind |
The object to construct from |
Synopsis
Declared in <mrdocs/Metadata/Template.hpp>
template<TParamKind K>
struct TParamCommonBase
: TParam
Base Classes
Name |
Description |
Member Functions
Name |
Description |
Three‐way comparison operators |
Static Member Functions
Name |
Data Members
Name |
Description |
The default template argument, if any |
|
Whether this template parameter is a parameter pack |
|
The kind of template parameter this is |
|
The template parameters name, if any |
Static Data Members
Name |
Protected Member Functions
Name |
Description |
|
Default constructor |
Derived Classes
Name |
Description |
Three‐way comparison operators
Synopses
Declared in <mrdocs/Metadata/Template.hpp>
Three‐way comparison operator
auto
operator<=>(TParamCommonBase const& rhs) const = default;
Three‐way comparison operator
std::strong_ordering
operator<=>(TParam const& rhs) const;
Three‐way comparison operator
Synopsis
Declared in <mrdocs/Metadata/Template.hpp>
auto
operator<=>(TParamCommonBase const& rhs) const = default;
Return Value
The relative order of the objects
Parameters
Name |
Description |
rhs |
The right operand |
Three‐way comparison operator
Synopsis
Declared in <mrdocs/Metadata/Template.hpp>
std::strong_ordering
operator<=>(TParam const& rhs) const;
Return Value
The relative order of the objects
Parameters
Name |
Description |
rhs |
The right operand |
Synopsis
Declared in <mrdocs/Metadata/Template.hpp>
constexpr
static
bool
isNonType() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Template.hpp>
constexpr
static
bool
isTemplate() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Template.hpp>
constexpr
static
bool
isType() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Template.hpp>
inline constexpr static
TParamKind kind_id = K;
Default constructor
Synopsis
Declared in <mrdocs/Metadata/Template.hpp>
constexpr
TParamCommonBase() noexcept;
A subset of possible work in a thread pool.
Synopsis
Declared in <mrdocs/Support/ThreadPool.hpp>
class TaskGroup;
Member Functions
Name |
Description |
|
Constructor. |
|
Destructor. |
Submit work to be executed. |
|
Block until all work has completed. |
Constructor.
Synopsis
Declared in <mrdocs/Support/ThreadPool.hpp>
explicit
TaskGroup(ThreadPool& threadPool);
Parameters
Name |
Description |
threadPool |
The object to copy construct from |
Destructor.
Synopsis
Declared in <mrdocs/Support/ThreadPool.hpp>
~TaskGroup();
Submit work to be executed.
Synopsis
Declared in <mrdocs/Support/ThreadPool.hpp>
template<class F>
void
async(F&& f);
Description
The signature of the submitted function object should be void(void)
.
Parameters
Name |
Description |
f |
The function object to execute. |
Block until all work has completed.
Synopsis
Declared in <mrdocs/Support/ThreadPool.hpp>
[[nodiscard]]
std::vector<Error>
wait();
Return Value
Zero or more errors which were thrown from submitted work.
Information pertaining to templates and specializations thereof.
Synopsis
Declared in <mrdocs/Metadata/Template.hpp>
struct TemplateInfo;
Member Functions
Name |
Description |
Three‐way comparison operator |
Data Members
Synopsis
Declared in <mrdocs/Metadata/Template.hpp>
TemplateSpecKind
specializationKind() const noexcept;
Three‐way comparison operator
Synopsis
Declared in <mrdocs/Metadata/Template.hpp>
std::strong_ordering
operator<=>(TemplateInfo const& other) const;
Return Value
The relative order of the objects
Parameters
Name |
Description |
other |
The right operand |
Synopsis
Declared in <mrdocs/Metadata/Template.hpp>
std::vector<Polymorphic<TArg>> Args;
Synopsis
Declared in <mrdocs/Metadata/Template.hpp>
std::vector<Polymorphic<TParam>> Params;
Primary template ID for partial and explicit specializations.
Synopsis
Declared in <mrdocs/Metadata/Template.hpp>
SymbolID Primary = = SymbolID::invalid;
The requires‐clause for the template parameter list, if any.
Synopsis
Declared in <mrdocs/Metadata/Template.hpp>
ExprInfo Requires;
Synopsis
Declared in <mrdocs/Metadata/Template.hpp>
struct TemplateTArg final
: IsTArg<TArgKind::Template>
Base Classes
Name |
Description |
Member Functions
Name |
Description |
Three‐way comparison operator |
Static Member Functions
Name |
Data Members
Static Data Members
Name |
Three‐way comparison operator
Synopsis
Declared in <mrdocs/Metadata/Template.hpp>
auto
operator<=>(TemplateTArg const& rhs) const = default;
Return Value
The relative order of the objects
Parameters
Name |
Description |
rhs |
The right operand |
Synopsis
Declared in <mrdocs/Metadata/Template.hpp>
constexpr
static
bool
isNonType() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Template.hpp>
constexpr
static
bool
isTemplate() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Template.hpp>
constexpr
static
bool
isType() noexcept;
Name of the referenced template.
Synopsis
Declared in <mrdocs/Metadata/Template.hpp>
std::string Name;
SymbolID of the referenced template.
Synopsis
Declared in <mrdocs/Metadata/Template.hpp>
SymbolID Template;
Synopsis
Declared in <mrdocs/Metadata/Template.hpp>
constexpr static
TArgKind kind_id;
Synopsis
Declared in <mrdocs/Metadata/Template.hpp>
struct TemplateTParam final
: TParamCommonBase<TParamKind::Template>
Base Classes
Name |
Description |
Member Functions
Name |
Description |
Three‐way comparison operators |
Static Member Functions
Name |
Data Members
Name |
Description |
Template parameters for the template‐template parameter |
Static Data Members
Name |
Three‐way comparison operators
Synopses
Declared in <mrdocs/Metadata/Template.hpp>
Three‐way comparison operator
std::strong_ordering
operator<=>(TemplateTParam const& other) const;
Three‐way comparison operator
auto
operator<=>(TParamCommonBase<clang::mrdocs::TParamKind::Template> const& rhs) const = default;
Three‐way comparison operator
Synopsis
Declared in <mrdocs/Metadata/Template.hpp>
std::strong_ordering
operator<=>(TemplateTParam const& other) const;
Return Value
The relative order of the objects
Parameters
Name |
Description |
other |
The right operand |
Three‐way comparison operator
Synopsis
Declared in <mrdocs/Metadata/Template.hpp>
auto
operator<=>(TParamCommonBase<clang::mrdocs::TParamKind::Template> const& rhs) const = default;
Return Value
The relative order of the objects
Parameters
Name |
Description |
rhs |
The right operand |
Synopsis
Declared in <mrdocs/Metadata/Template.hpp>
constexpr
static
bool
isNonType() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Template.hpp>
constexpr
static
bool
isTemplate() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Template.hpp>
constexpr
static
bool
isType() noexcept;
Template parameters for the template‐template parameter
Synopsis
Declared in <mrdocs/Metadata/Template.hpp>
std::vector<Polymorphic<TParam>> Params;
Synopsis
Declared in <mrdocs/Metadata/Template.hpp>
constexpr static
TParamKind kind_id;
A pool of threads for executing work concurrently.
Synopsis
Declared in <mrdocs/Support/ThreadPool.hpp>
class ThreadPool;
Types
Member Functions
Name |
Description |
|
Constructor. |
|
Destructor. |
Submit work to be executed. |
|
Invoke a function object for each element of a range. |
|
Return the number of threads in the pool. |
|
Block until all work has completed. |
Friends
Name |
Description |
A subset of possible work in a thread pool. |
Synopsis
Declared in <mrdocs/Support/ThreadPool.hpp>
template<class T>
using arg_t = arg_ty<T>::type;
Synopsis
Declared in <mrdocs/Support/ThreadPool.hpp>
template<class T>
struct arg_ty;
Types
Name |
Synopsis
Declared in <mrdocs/Support/ThreadPool.hpp>
using type = T;
Synopsis
Declared in <mrdocs/Support/ThreadPool.hpp>
template<class T>
struct arg_ty<T&>;
Types
Name |
Synopsis
Declared in <mrdocs/Support/ThreadPool.hpp>
using type = std::conditional_t<std::is_const_v<T>, T, T&>;
Constructor.
Synopses
Declared in <mrdocs/Support/ThreadPool.hpp>
Constructor.
explicit
ThreadPool();
Constructor.
explicit
ThreadPool(unsigned int concurrency);
Constructor.
Synopsis
Declared in <mrdocs/Support/ThreadPool.hpp>
explicit
ThreadPool();
Description
Default constructed thread pools have concurrency equal to one and never spawn new threads. Submitted work blocks the caller until the work is complete.
Constructor.
Synopsis
Declared in <mrdocs/Support/ThreadPool.hpp>
explicit
ThreadPool(unsigned int concurrency);
Parameters
Name |
Description |
concurrency |
The value to construct from |
Destructor.
Synopsis
Declared in <mrdocs/Support/ThreadPool.hpp>
~ThreadPool();
Submit work to be executed.
Synopsis
Declared in <mrdocs/Support/ThreadPool.hpp>
template<class F>
void
async(F&& f);
Description
The signature of the submitted function object should be void(void)
.
Parameters
Name |
Description |
f |
The function object to execute. |
Invoke a function object for each element of a range.
Synopsis
Declared in <mrdocs/Support/ThreadPool.hpp>
template<
class Range,
class F>
[[nodiscard]]
std::vector<Error>
forEach(
Range&& range,
F const& f);
Return Value
Zero or more errors which were thrown from submitted work.
Parameters
Name |
Description |
range |
The range of elements to process. |
f |
The function object to invoke. |
Return the number of threads in the pool.
Synopsis
Declared in <mrdocs/Support/ThreadPool.hpp>
unsigned int
getThreadCount() const noexcept;
Return Value
the number of threads in the pool.
Block until all work has completed.
Synopsis
Declared in <mrdocs/Support/ThreadPool.hpp>
void
wait();
A possibly qualified type.
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
struct TypeInfo;
Member Functions
Name |
Description |
|
Destructor |
Return the symbol named by this type. |
|
Three‐way comparison operator |
Data Members
Name |
Description |
The constraints associated with the type |
|
The const qualifier |
|
Whether this is the pattern of a pack expansion. |
|
The volatile qualifier |
|
The kind of TypeInfo this is |
Protected Member Functions
Name |
Description |
|
Construct from |
Non-Member Functions
Name |
Description |
Return the inner type. |
|
Return the inner type. |
|
Return the inner type. |
|
Return the inner type. |
Derived Classes
Name |
Description |
Description
This class represents a type that may have qualifiers (e.g. const, volatile).
This base class is used to store the kind of type. Derived classes are used to store the type information according to the kind.
Destructor
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
constexpr
virtual
~TypeInfo() = default;
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
constexpr
bool
isArray() const noexcept;
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
constexpr
bool
isAuto() const noexcept;
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
constexpr
bool
isDecltype() const noexcept;
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
constexpr
bool
isFunction() const noexcept;
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
constexpr
bool
isLValueReference() const noexcept;
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
constexpr
bool
isMemberPointer() const noexcept;
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
constexpr
bool
isNamed() const noexcept;
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
constexpr
bool
isPointer() const noexcept;
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
constexpr
bool
isRValueReference() const noexcept;
Return the symbol named by this type.
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
SymbolID
namedSymbol() const noexcept;
Return Value
the symbol named by this type.
Three‐way comparison operator
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
constexpr
auto
operator<=>(TypeInfo const& rhs) const = default;
Return Value
The relative order of the objects
Parameters
Name |
Description |
rhs |
The right operand |
The constraints associated with the type
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
std::vector<ExprInfo> Constraints;
Description
This represents the constraints associated with the type, such as SFINAE constraints.
For instance, if SFINAE detection is enabled, the expression std::enable_if_t<std::is_integral_v<T>, T>
will have type T
(NamedType) and constraints {std::is_integral_v<T>}
.
The const qualifier
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
bool IsConst = false;
Whether this is the pattern of a pack expansion.
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
bool IsPackExpansion = false;
The volatile qualifier
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
bool IsVolatile = false;
The kind of TypeInfo this is
Synopsis
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
constexpr
TypeInfo(TypeKind kind) noexcept;
Parameters
Name |
Description |
kind |
The object to construct from |
Synopsis
Base Classes
Name |
Description |
A possibly qualified type. |
Member Functions
Name |
Description |
Return the symbol named by this type. |
|
Three‐way comparison operators |
Static Member Functions
Data Members
Name |
Description |
The constraints associated with the type |
|
The const qualifier |
|
Whether this is the pattern of a pack expansion. |
|
The volatile qualifier |
|
The kind of TypeInfo this is |
Static Data Members
Name |
Protected Member Functions
Name |
Description |
|
Default constructor |
Non-Member Functions
Name |
Description |
Return the inner type. |
|
Return the inner type. |
|
Return the inner type. |
|
Return the inner type. |
Derived Classes
Name |
Description |
Three‐way comparison operators
Synopses
Declared in <mrdocs/Metadata/Type.hpp>
Three‐way comparison operator
auto
operator<=>(TypeInfoCommonBase const& rhs) const = default;
Three‐way comparison operator
constexpr
auto
operator<=>(TypeInfo const& rhs) const = default;
Three‐way comparison operator
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
auto
operator<=>(TypeInfoCommonBase const& rhs) const = default;
Return Value
The relative order of the objects
Parameters
Name |
Description |
rhs |
The right operand |
Three‐way comparison operator
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
constexpr
auto
operator<=>(TypeInfo const& rhs) const = default;
Return Value
The relative order of the objects
Parameters
Name |
Description |
rhs |
The right operand |
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
constexpr
static
bool
isArray() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
constexpr
static
bool
isAuto() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
constexpr
static
bool
isDecltype() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
constexpr
static
bool
isFunction() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
constexpr
static
bool
isLValueReference() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
constexpr
static
bool
isMemberPointer() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
constexpr
static
bool
isNamed() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
constexpr
static
bool
isPointer() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
constexpr
static
bool
isRValueReference() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
inline constexpr static
TypeKind kind_id = K;
Default constructor
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
constexpr
TypeInfoCommonBase() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Template.hpp>
struct TypeTArg final
: IsTArg<TArgKind::Type>
Base Classes
Name |
Description |
Member Functions
Name |
Description |
Three‐way comparison operator |
Static Member Functions
Name |
Data Members
Name |
Description |
Template argument type. |
Static Data Members
Name |
Three‐way comparison operator
Synopsis
Declared in <mrdocs/Metadata/Template.hpp>
auto
operator<=>(TypeTArg const& rhs) const = default;
Return Value
The relative order of the objects
Parameters
Name |
Description |
rhs |
The right operand |
Synopsis
Declared in <mrdocs/Metadata/Template.hpp>
constexpr
static
bool
isNonType() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Template.hpp>
constexpr
static
bool
isTemplate() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Template.hpp>
constexpr
static
bool
isType() noexcept;
Template argument type.
Synopsis
Declared in <mrdocs/Metadata/Template.hpp>
Polymorphic<TypeInfo> Type = std::nullopt;
Synopsis
Declared in <mrdocs/Metadata/Template.hpp>
constexpr static
TArgKind kind_id;
Synopsis
Declared in <mrdocs/Metadata/Template.hpp>
struct TypeTParam final
: TParamCommonBase<TParamKind::Type>
Base Classes
Name |
Description |
Member Functions
Name |
Description |
Three‐way comparison operators |
Static Member Functions
Name |
Data Members
Name |
Description |
The type‐constraint for the parameter, if any. |
|
Keyword (class/typename) the parameter uses |
Static Data Members
Name |
Three‐way comparison operators
Synopses
Declared in <mrdocs/Metadata/Template.hpp>
Three‐way comparison operator
std::strong_ordering
operator<=>(TypeTParam const& rhs) const;
Three‐way comparison operator
auto
operator<=>(TParamCommonBase<clang::mrdocs::TParamKind::Type> const& rhs) const = default;
Three‐way comparison operator
Synopsis
Declared in <mrdocs/Metadata/Template.hpp>
std::strong_ordering
operator<=>(TypeTParam const& rhs) const;
Return Value
The relative order of the objects
Parameters
Name |
Description |
rhs |
The right operand |
Three‐way comparison operator
Synopsis
Declared in <mrdocs/Metadata/Template.hpp>
auto
operator<=>(TParamCommonBase<clang::mrdocs::TParamKind::Type> const& rhs) const = default;
Return Value
The relative order of the objects
Parameters
Name |
Description |
rhs |
The right operand |
Synopsis
Declared in <mrdocs/Metadata/Template.hpp>
constexpr
static
bool
isNonType() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Template.hpp>
constexpr
static
bool
isTemplate() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Template.hpp>
constexpr
static
bool
isType() noexcept;
The type‐constraint for the parameter, if any.
Synopsis
Declared in <mrdocs/Metadata/Template.hpp>
Polymorphic<NameInfo> Constraint = std::nullopt;
Keyword (class/typename) the parameter uses
Synopsis
Declared in <mrdocs/Metadata/Template.hpp>
TParamKeyKind KeyKind = TParamKeyKind::Class;
Synopsis
Declared in <mrdocs/Metadata/Template.hpp>
constexpr static
TParamKind kind_id;
Synopsis
Declared in <mrdocs/Metadata/Info/Typedef.hpp>
struct TypedefInfo final
: InfoCommonBase<InfoKind::Typedef>
Base Classes
Name |
Description |
Base class for providing variant discriminator functions. |
Member Functions
Name |
Description |
|
Construct from |
Three‐way comparison operators |
Static Member Functions
Data Members
Static Data Members
Name |
Non-Member Functions
Name |
Description |
Merges two Info objects. |
Construct from SymbolID
Synopsis
Declared in <mrdocs/Metadata/Info/Typedef.hpp>
explicit
TypedefInfo(SymbolID ID) noexcept;
Parameters
Name |
Description |
ID |
The object to construct from |
Three‐way comparison operators
Synopses
Declared in <mrdocs/Metadata/Info/Typedef.hpp>
Three‐way comparison operator
std::strong_ordering
operator<=>(TypedefInfo const& other) const;
Three‐way comparison operator
auto
operator<=>(InfoCommonBase<clang::mrdocs::InfoKind::Typedef> const& rhs) const = default;
Three‐way comparison operator
Synopsis
Declared in <mrdocs/Metadata/Info/Typedef.hpp>
std::strong_ordering
operator<=>(TypedefInfo const& other) const;
Return Value
The relative order of the objects
Parameters
Name |
Description |
other |
The right operand |
Three‐way comparison operator
Synopsis
Declared in <mrdocs/Metadata/Info.hpp>
auto
operator<=>(InfoCommonBase<clang::mrdocs::InfoKind::Typedef> const& rhs) const = default;
Return Value
The relative order of the objects
Parameters
Name |
Description |
rhs |
The right operand |
Synopsis
Declared in <mrdocs/Metadata/Info/InfoNodes.inc>
constexpr
static
bool
isConcept() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Info/InfoNodes.inc>
constexpr
static
bool
isEnum() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Info/InfoNodes.inc>
constexpr
static
bool
isEnumConstant() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Info/InfoNodes.inc>
constexpr
static
bool
isFunction() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Info/InfoNodes.inc>
constexpr
static
bool
isGuide() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Info/InfoNodes.inc>
constexpr
static
bool
isNamespace() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Info/InfoNodes.inc>
constexpr
static
bool
isNamespaceAlias() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Info/InfoNodes.inc>
constexpr
static
bool
isOverloads() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Info/InfoNodes.inc>
constexpr
static
bool
isRecord() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Info/InfoNodes.inc>
constexpr
static
bool
isTypedef() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Info/InfoNodes.inc>
constexpr
static
bool
isUsing() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Info/InfoNodes.inc>
constexpr
static
bool
isVariable() noexcept;
Indicates if this is a new C++ "using"‐style typedef
Synopsis
Declared in <mrdocs/Metadata/Info/Typedef.hpp>
bool IsUsing = false;
Description
using MyVector = std::vector<int>
False means it's a C‐style typedef:
typedef std::vector<int> MyVector;
Synopsis
Declared in <mrdocs/Metadata/Info/Typedef.hpp>
std::optional<TemplateInfo> Template;
Synopsis
Declared in <mrdocs/Metadata/Info/Typedef.hpp>
Polymorphic<TypeInfo> Type = std::nullopt;
Synopsis
Declared in <mrdocs/Metadata/Info.hpp>
constexpr static
InfoKind kind_id;
Synopsis
Declared in <mrdocs/Support/Expected.hpp>
template<class E>
class Unexpected;
Member Functions
Name |
Description |
|
Constructors |
Assignment operators |
|
Friends
Name |
Description |
Equality operator |
Constructors
Synopses
Declared in <mrdocs/Support/Expected.hpp>
Copy constructor
constexpr
Unexpected(Unexpected const& other) = default;
Move constructor
constexpr
Unexpected(Unexpected&& other) = default;
Construct from Er
template<class Er = E>
requires (!std::is_same_v<std::remove_cvref_t<Er>, Unexpected>) &&
(!std::is_same_v<std::remove_cvref_t<Er>, std::in_place_t>) &&
std::is_constructible_v<E, Er>
constexpr
explicit
Unexpected(Er&& e) noexcept(std::is_nothrow_constructible_v<E, Er>);
template<class... Args>
requires std::is_constructible_v<E, Args...>
constexpr
explicit
Unexpected(
std::in_place_t,
Args...&&... args) noexcept(std::is_nothrow_constructible_v<E, Args...>);
template<
class U,
class... Args>
requires std::is_constructible_v<E, std::initializer_list<U>&, Args...>
constexpr
explicit
Unexpected(
std::in_place_t,
std::initializer_list<U> il,
Args...&&... args) noexcept(std::is_nothrow_constructible_v<E, std::initializer_list<U> &, Args...>);
Copy constructor
Synopsis
Declared in <mrdocs/Support/Expected.hpp>
constexpr
Unexpected(Unexpected const& other) = default;
Parameters
Name |
Description |
other |
The object to copy construct from |
Move constructor
Synopsis
Declared in <mrdocs/Support/Expected.hpp>
constexpr
Unexpected(Unexpected&& other) = default;
Parameters
Name |
Description |
other |
The object to move construct from |
Construct from Er
Synopsis
Declared in <mrdocs/Support/Expected.hpp>
template<class Er = E>
requires (!std::is_same_v<std::remove_cvref_t<Er>, Unexpected>) &&
(!std::is_same_v<std::remove_cvref_t<Er>, std::in_place_t>) &&
std::is_constructible_v<E, Er>
constexpr
explicit
Unexpected(Er&& e) noexcept(std::is_nothrow_constructible_v<E, Er>);
Parameters
Name |
Description |
e |
The object to move construct from |
Synopsis
Declared in <mrdocs/Support/Expected.hpp>
template<class... Args>
requires std::is_constructible_v<E, Args...>
constexpr
explicit
Unexpected(
std::in_place_t,
Args...&&... args) noexcept(std::is_nothrow_constructible_v<E, Args...>);
Synopsis
Declared in <mrdocs/Support/Expected.hpp>
template<
class U,
class... Args>
requires std::is_constructible_v<E, std::initializer_list<U>&, Args...>
constexpr
explicit
Unexpected(
std::in_place_t,
std::initializer_list<U> il,
Args...&&... args) noexcept(std::is_nothrow_constructible_v<E, std::initializer_list<U> &, Args...>);
Assignment operators
Synopses
Declared in <mrdocs/Support/Expected.hpp>
Copy assignment operator
constexpr
Unexpected&
operator=(Unexpected const& other) = default;
Move assignment operator
constexpr
Unexpected&
operator=(Unexpected&& other) = default;
Copy assignment operator
Synopsis
Declared in <mrdocs/Support/Expected.hpp>
constexpr
Unexpected&
operator=(Unexpected const& other) = default;
Return Value
Reference to the current object
Parameters
Name |
Description |
other |
The object to copy assign from |
Move assignment operator
Synopsis
Declared in <mrdocs/Support/Expected.hpp>
constexpr
Unexpected&
operator=(Unexpected&& other) = default;
Return Value
Reference to the current object
Parameters
Name |
Description |
other |
The object to move assign from |
Synopses
Declared in <mrdocs/Support/Expected.hpp>
[[nodiscard]]
constexpr
E const&
error() const & noexcept;
[[nodiscard]]
constexpr
E&
error() & noexcept;
[[nodiscard]]
constexpr
E const&&
error() const && noexcept;
[[nodiscard]]
constexpr
E&&
error() && noexcept;
Synopsis
Declared in <mrdocs/Support/Expected.hpp>
[[nodiscard]]
constexpr
E const&
error() const & noexcept;
Synopsis
Declared in <mrdocs/Support/Expected.hpp>
[[nodiscard]]
constexpr
E&
error() & noexcept;
Synopsis
Declared in <mrdocs/Support/Expected.hpp>
[[nodiscard]]
constexpr
E const&&
error() const && noexcept;
Synopsis
Declared in <mrdocs/Support/Expected.hpp>
[[nodiscard]]
constexpr
E&&
error() && noexcept;
Synopsis
Declared in <mrdocs/Support/Expected.hpp>
constexpr
void
swap(Unexpected& other) noexcept(std::is_nothrow_swappable_v<E>)
requires std::is_swappable_v<E>;
Info for using declarations.
Synopsis
Declared in <mrdocs/Metadata/Info/Using.hpp>
struct UsingInfo final
: InfoCommonBase<InfoKind::Using>
Base Classes
Name |
Description |
Base class for providing variant discriminator functions. |
Member Functions
Name |
Description |
|
Construct from |
Three‐way comparison operator |
Static Member Functions
Data Members
Name |
Description |
The using declaration. |
|
The symbol being introduced. |
|
The shadow declarations. |
Static Data Members
Name |
Non-Member Functions
Name |
Description |
Merges two Info objects. |
Description
For instance, the following code:
using A::f; // where f is a function in namespace A
would be represented by a UsingInfo
object.
Using‐declarations can be used to introduce namespace members into other namespaces and block scopes, or to introduce base class members into derived class definitions, or to introduce enumerators into namespaces, block, and class scopes.
Construct from SymbolID
Synopsis
Declared in <mrdocs/Metadata/Info/Using.hpp>
explicit
UsingInfo(SymbolID ID) noexcept;
Parameters
Name |
Description |
ID |
The object to construct from |
Three‐way comparison operator
Synopsis
Declared in <mrdocs/Metadata/Info.hpp>
auto
operator<=>(InfoCommonBase<clang::mrdocs::InfoKind::Using> const& rhs) const = default;
Return Value
The relative order of the objects
Parameters
Name |
Description |
rhs |
The right operand |
Synopsis
Declared in <mrdocs/Metadata/Info/InfoNodes.inc>
constexpr
static
bool
isConcept() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Info/InfoNodes.inc>
constexpr
static
bool
isEnum() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Info/InfoNodes.inc>
constexpr
static
bool
isEnumConstant() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Info/InfoNodes.inc>
constexpr
static
bool
isFunction() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Info/InfoNodes.inc>
constexpr
static
bool
isGuide() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Info/InfoNodes.inc>
constexpr
static
bool
isNamespace() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Info/InfoNodes.inc>
constexpr
static
bool
isNamespaceAlias() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Info/InfoNodes.inc>
constexpr
static
bool
isOverloads() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Info/InfoNodes.inc>
constexpr
static
bool
isRecord() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Info/InfoNodes.inc>
constexpr
static
bool
isTypedef() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Info/InfoNodes.inc>
constexpr
static
bool
isUsing() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Info/InfoNodes.inc>
constexpr
static
bool
isVariable() noexcept;
The using declaration.
Synopsis
Declared in <mrdocs/Metadata/Info/Using.hpp>
UsingClass Class = UsingClass::Normal;
The symbol being introduced.
Synopsis
Declared in <mrdocs/Metadata/Info/Using.hpp>
Polymorphic<NameInfo> IntroducedName;
Description
This is the symbol that is being "used" or introduced into the current scope.
Note that this can be a qualified name, such as A::f
in the example above.
The shadow declarations.
Synopsis
Declared in <mrdocs/Metadata/Info/Using.hpp>
std::vector<SymbolID> ShadowDeclarations;
Description
A using declaration can refer to and introduce multiple symbols into the current context.
These multiple symbols are considered a special case of declarations: "shadow declarations".
This typically happens when there are conflicting symbol names in the scope being introduced, such as:
Overloaded functions: the base namespace contains overloaded functions. Name conflicts: the base scope contains a function and a type. Enums: a using enum declaration can refer to multiple enumerators.
Also note that more shadow declarations can be introduced later in the same scope, after the using declaration.
The shadow declarations here are only those that are shadowed at the point where the using declaration is located.
Synopsis
Declared in <mrdocs/Metadata/Info.hpp>
constexpr static
InfoKind kind_id;
A variable.
Synopsis
Declared in <mrdocs/Metadata/Info/Variable.hpp>
struct VariableInfo final
: InfoCommonBase<InfoKind::Variable>
Base Classes
Name |
Description |
Base class for providing variant discriminator functions. |
Member Functions
Name |
Description |
|
Construct from |
Three‐way comparison operators |
Static Member Functions
Data Members
Name |
Description |
The width of the bitfield |
|
The default member initializer, if any. |
|
Whether the field is a bitfield |
|
Whether the field is declared mutable |
|
Whether the field is a variant member |
|
The type of the variable |
Static Data Members
Name |
Non-Member Functions
Name |
Description |
Merges two Info objects. |
Description
This includes variables at namespace or record scope.
Construct from SymbolID
Synopsis
Declared in <mrdocs/Metadata/Info/Variable.hpp>
explicit
VariableInfo(SymbolID const& ID) noexcept;
Parameters
Name |
Description |
ID |
The object to copy construct from |
Three‐way comparison operators
Synopses
Declared in <mrdocs/Metadata/Info/Variable.hpp>
Three‐way comparison operator
std::strong_ordering
operator<=>(VariableInfo const& other) const;
Three‐way comparison operator
auto
operator<=>(InfoCommonBase<clang::mrdocs::InfoKind::Variable> const& rhs) const = default;
Three‐way comparison operator
Synopsis
Declared in <mrdocs/Metadata/Info/Variable.hpp>
std::strong_ordering
operator<=>(VariableInfo const& other) const;
Return Value
The relative order of the objects
Parameters
Name |
Description |
other |
The right operand |
Three‐way comparison operator
Synopsis
Declared in <mrdocs/Metadata/Info.hpp>
auto
operator<=>(InfoCommonBase<clang::mrdocs::InfoKind::Variable> const& rhs) const = default;
Return Value
The relative order of the objects
Parameters
Name |
Description |
rhs |
The right operand |
Synopsis
Declared in <mrdocs/Metadata/Info/InfoNodes.inc>
constexpr
static
bool
isConcept() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Info/InfoNodes.inc>
constexpr
static
bool
isEnum() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Info/InfoNodes.inc>
constexpr
static
bool
isEnumConstant() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Info/InfoNodes.inc>
constexpr
static
bool
isFunction() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Info/InfoNodes.inc>
constexpr
static
bool
isGuide() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Info/InfoNodes.inc>
constexpr
static
bool
isNamespace() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Info/InfoNodes.inc>
constexpr
static
bool
isNamespaceAlias() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Info/InfoNodes.inc>
constexpr
static
bool
isOverloads() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Info/InfoNodes.inc>
constexpr
static
bool
isRecord() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Info/InfoNodes.inc>
constexpr
static
bool
isTypedef() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Info/InfoNodes.inc>
constexpr
static
bool
isUsing() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Info/InfoNodes.inc>
constexpr
static
bool
isVariable() noexcept;
Synopsis
Declared in <mrdocs/Metadata/Info/Variable.hpp>
std::vector<std::string> Attributes;
The width of the bitfield
Synopsis
Declared in <mrdocs/Metadata/Info/Variable.hpp>
ConstantExprInfo<uint64_t> BitfieldWidth;
Synopsis
Declared in <mrdocs/Metadata/Info/Variable.hpp>
bool HasNoUniqueAddress = false;
The default member initializer, if any.
Synopsis
Declared in <mrdocs/Metadata/Info/Variable.hpp>
ExprInfo Initializer;
Whether the field is a bitfield
Synopsis
Declared in <mrdocs/Metadata/Info/Variable.hpp>
bool IsBitfield = false;
Synopsis
Declared in <mrdocs/Metadata/Info/Variable.hpp>
bool IsConstexpr = false;
Synopsis
Declared in <mrdocs/Metadata/Info/Variable.hpp>
bool IsConstinit = false;
Synopsis
Declared in <mrdocs/Metadata/Info/Variable.hpp>
bool IsDeprecated = false;
Synopsis
Declared in <mrdocs/Metadata/Info/Variable.hpp>
bool IsInline = false;
Synopsis
Declared in <mrdocs/Metadata/Info/Variable.hpp>
bool IsMaybeUnused = false;
Whether the field is declared mutable
Synopsis
Declared in <mrdocs/Metadata/Info/Variable.hpp>
bool IsMutable = false;
Synopsis
Declared in <mrdocs/Metadata/Info/Variable.hpp>
bool IsRecordField = false;
Synopsis
Declared in <mrdocs/Metadata/Info/Variable.hpp>
bool IsThreadLocal = false;
Whether the field is a variant member
Synopsis
Declared in <mrdocs/Metadata/Info/Variable.hpp>
bool IsVariant = false;
Synopsis
Declared in <mrdocs/Metadata/Info/Variable.hpp>
StorageClassKind StorageClass = StorageClassKind::None;
Synopsis
Declared in <mrdocs/Metadata/Info/Variable.hpp>
std::optional<TemplateInfo> Template;
The type of the variable
Synopsis
Declared in <mrdocs/Metadata/Info/Variable.hpp>
Polymorphic<TypeInfo> Type = std::nullopt;
Synopsis
Declared in <mrdocs/Metadata/Info.hpp>
constexpr static
InfoKind kind_id;
A visitor for a type
Synopsis
Declared in <mrdocs/Support/Visitor.hpp>
template<
typename Base,
typename Fn,
typename... Args>
class Visitor;
Description
This class is used to implement the visitor pattern. It stores a reference to an object of type Base
, and a function object Fn
which is called with the derived type as the first argument, followed by Args
.
The visitor is constructed with the object to visit, the function object, and the arguments to pass to the function object.
The method visit
is a template which accepts a derived type of Base
. It calls the function object with the derived type as the first argument, followed by the arguments passed to the constructor.
Template Parameters
Name |
Description |
Base |
The base type of the object |
Fn |
The function object type |
Args |
The argument types |
Constructor
Synopsis
Declared in <mrdocs/Support/Visitor.hpp>
Visitor(
Base&& obj,
Fn&& fn,
Args...&&... args);
Parameters
Name |
Description |
obj |
The object to visit |
fn |
The function object to call |
args |
The arguments to pass to the function object |
Visit a derived type
Synopsis
Declared in <mrdocs/Support/Visitor.hpp>
template<std::derived_from<std::remove_cvref_t<Base>> Derived>
decltype(auto)
visit();
Description
This method calls the function object with the derived type as the first argument, followed by the arguments passed to the constructor.
Return Value
The result of calling the function object
Template Parameters
Name |
Description |
Derived |
The derived type to visit |
Synopsis
Declared in <mrdocs/Support/TypeTraits.hpp>
template<
typename From,
typename To>
struct add_const_from
: std::conditional<std::is_const_v<std::remove_reference_t<From>>, add_reference_from_t<To, std::remove_reference_t<To> const>, To>
Base Classes
Name |
Description |
|
Derived Classes
Name |
Description |
Synopsis
Declared in <mrdocs/Support/TypeTraits.hpp>
template<
typename From,
typename To>
struct add_cv_from
: add_const_from<From, add_volatile_from_t<From, To>>
Base Classes
Synopsis
Declared in <mrdocs/Support/TypeTraits.hpp>
template<
typename From,
typename To>
struct add_cvref_from
: add_reference_from<From, add_cv_from_t<From, To>>
Base Classes
Synopsis
Declared in <mrdocs/Support/TypeTraits.hpp>
template<
typename From,
typename To>
struct add_lvalue_reference_from
: std::conditional<std::is_lvalue_reference_v<From>, std::add_lvalue_reference_t<To>, To>
Base Classes
Name |
Description |
|
Derived Classes
Name |
Description |
Synopsis
Declared in <mrdocs/Support/TypeTraits.hpp>
template<
typename From,
typename To>
struct add_reference_from
: add_lvalue_reference_from<From, add_rvalue_reference_from_t<From, To>>
Base Classes
Derived Classes
Name |
Description |
Synopsis
Declared in <mrdocs/Support/TypeTraits.hpp>
template<
typename From,
typename To>
struct add_rvalue_reference_from
: std::conditional<std::is_rvalue_reference_v<From>, std::add_rvalue_reference_t<To>, To>
Base Classes
Name |
Description |
|
Synopsis
Declared in <mrdocs/Support/TypeTraits.hpp>
template<
typename From,
typename To>
struct add_volatile_from
: std::conditional<std::is_volatile_v<std::remove_reference_t<From>>, add_reference_from_t<To, std::remove_reference_t<To> volatile>, To>
Base Classes
Name |
Description |
|
A movable, type‐erased function object.
Synopsis
Declared in <mrdocs/Support/any_callable.hpp>
template<class>
class any_callable;
Description
Usage:
any_callable<void(void)> f;
Synopsis
Declared in <mrdocs/Support/any_callable.hpp>
template<
class R,
class... Args>
class any_callable<R(Args...)>;
Member Functions
Name |
Description |
|
Constructors |
Constructors
Synopses
Declared in <mrdocs/Support/any_callable.hpp>
Default constructor
any_callable() = delete;
Construct from Callable
template<class Callable>
requires std::is_invocable_r_v<R, Callable, Args...>
any_callable(Callable&& f);
Default constructor
Synopsis
Declared in <mrdocs/Support/any_callable.hpp>
any_callable() = delete;
Construct from Callable
Synopsis
Declared in <mrdocs/Support/any_callable.hpp>
template<class Callable>
requires std::is_invocable_r_v<R, Callable, Args...>
any_callable(Callable&& f);
Parameters
Name |
Description |
f |
The object to move construct from |
Synopsis
Declared in <mrdocs/Support/any_callable.hpp>
R
operator()(Args...&&... args) const;
Synopsis
Declared in <mrdocs/Support/TypeTraits.hpp>
template<
typename T,
typename U>
struct make_dependent;
Types
Name |
Synopsis
Declared in <mrdocs/Support/TypeTraits.hpp>
using type = T;
Synopsis
Declared in <mrdocs/Support/Expected.hpp>
struct unexpect_t;
Member Functions
Name |
Description |
|
Default constructor |
Default constructor
Synopsis
Declared in <mrdocs/Support/Expected.hpp>
constexpr
explicit
unexpect_t() = default;
A scoped guard which unlocks a mutex.
Synopsis
Declared in <mrdocs/Support/unlock_guard.hpp>
class unlock_guard;
Member Functions
Name |
Description |
|
Constructor. |
|
Destructor. |
Constructor.
Synopsis
Declared in <mrdocs/Support/unlock_guard.hpp>
explicit
unlock_guard(std::mutex& m);
Parameters
Name |
Description |
m |
The object to copy construct from |
Destructor.
Synopsis
Declared in <mrdocs/Support/unlock_guard.hpp>
~unlock_guard();
Access specifier.
Synopsis
Declared in <mrdocs/Metadata/Specifiers.hpp>
enum class AccessKind : int;
Members
Name |
Description |
|
Unspecified access |
|
Public access |
|
Protected access |
|
Private access |
Description
None is set to zero since it is the most frequently occurring access, and it is elided by the bitstream encoder because it has an all‐zero bit pattern. This improves compression in the bitstream.
None is used for namespace members and friend; such declarations have no access.
The kind of auto
keyword used in a declaration.
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
enum class AutoKind : int;
Members
Name |
Description |
|
The |
|
The |
Description
This is either auto
or decltype(auto)
.
constexpr
/`consteval` specifier kinds
Synopsis
Declared in <mrdocs/Metadata/Specifiers.hpp>
enum class ConstexprKind : int;
Members
Name |
Description |
|
No |
|
The |
|
The |
Description
[dcl.spec.general] p2: At most one of the constexpr
, consteval
, and constinit
keywords shall appear in a decl‐specifier‐seq
Explicit specifier kinds
Synopsis
Declared in <mrdocs/Metadata/Specifiers.hpp>
enum class ExplicitKind : int;
Members
Name |
Description |
|
No explicit‐specifier or explicit‐specifier evaluated to false |
|
explicit‐specifier evaluates to true |
|
Dependent explicit‐specifier |
Determine why a symbol is extracted
Synopsis
Declared in <mrdocs/Metadata/ExtractionMode.hpp>
enum class ExtractionMode : int;
Members
Name |
Description |
|
We're extracting the current symbol because it passes all filters. |
|
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. |
|
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*/. |
|
We're extracting the current symbol even though it doesn't pass all filters because it's a direct dependency of a symbol that does pass all filters and needs information about it (e.g.: base classes outside the filters). This symbol has no page and it might even deleted from the corpus if no other symbol depends on it after we extracted the information we wanted from it in post‐processing steps. |
Non-Member Functions
Name |
Description |
Compare ExtractionModes and returns the least specific |
|
Compare ExtractionModes and returns the most specific |
|
Return the name of the InfoKind as a string. |
Description
The enum constants are ordered by specificity, with the least specific at the beginning and the most specific at the end.
Synopsis
Declared in <mrdocs/Metadata/Source.hpp>
enum class FileKind : int;
Members
Name |
Description |
|
File in the source directory |
|
File in a system include directory |
|
File outside the source directory |
Function classifications
Synopsis
Declared in <mrdocs/Metadata/Info/Function.hpp>
enum class FunctionClass : int;
Members
Name |
Description |
|
The function is a normal function. |
|
The function is a constructor. |
|
The function is a conversion operator. |
|
The function is a destructor. |
Categorically describes a fundamental type.
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
enum class FundamentalTypeKind : int;
Members
Name |
Description |
|
void |
|
std::nullptr_t |
|
bool |
|
char |
|
signed char |
|
unsigned char |
|
char8_t |
|
char16_t |
|
char32_t |
|
wchar_t |
|
short / short int / signed short / signed short int |
|
unsigned short / unsigned short int |
|
int / signed / signed int |
|
unsigned / unsigned int |
|
long / long int / signed long / signed long int |
|
unsigned long / unsigned long int |
|
long long / long long int / signed long long / signed long long int |
|
unsigned long long / unsigned long long int |
|
float |
|
double |
|
long double |
Non-Member Functions
Name |
Description |
Apply the "char" specifier to the type |
|
Apply the "long" specifier to the type |
|
Apply the "short" specifier to the type |
|
Apply the "signed" specifier to the type |
|
Apply the "unsigned" specifier to the type |
|
Convert a FundamentalTypeKind to a string. |
See Also
https://en.cppreference.com/w/cpp/language/types
Info variant discriminator
Synopsis
Declared in <mrdocs/Metadata/Info.hpp>
enum class InfoKind : int;
Members
Name |
Description |
|
Kind is not specified. |
Non-Member Functions
Name |
Description |
Return the name of the InfoKind as a string. |
Synopsis
Declared in <mrdocs/Metadata/Name.hpp>
enum class NameKind : int;
Members
Name |
Description |
|
A simple identifier |
|
A template instantiation |
Exception specification kinds
Synopsis
Declared in <mrdocs/Metadata/Specifiers.hpp>
enum class NoexceptKind : int;
Members
Name |
Description |
|
Potentially‐throwing exception specification |
|
Non‐throwing exception specification |
|
Dependent exception specification |
Operator kinds
Synopsis
Declared in <mrdocs/Metadata/Specifiers.hpp>
enum class OperatorKind : int;
Members
Name |
Description |
|
No operator |
|
The |
|
The |
|
The |
|
The |
|
The + Operator |
|
The ‐ Operator |
|
The Operator |
|
The / Operator |
|
The % Operator |
|
The ˆ Operator |
|
The & Operator |
|
The | Operator |
|
The ~ Operator |
|
The ! Operator |
|
The += Operator |
|
The ‐= Operator |
|
The = Operator |
|
The /= Operator |
|
The %= Operator |
|
The ˆ= Operator |
|
The &= Operator |
|
The |= Operator |
|
The << Operator |
|
The >> Operator |
|
The <<= Operator |
|
The >>= Operator |
|
The ! Operator |
|
The == Operator |
|
The != Operator |
|
The < Operator |
|
The <= Operator |
|
The > Operator |
|
The >= Operator |
|
The <=> Operator |
|
The && Operator |
|
The || Operator |
|
The ++ Operator |
|
The ‐‐ Operator |
|
The , Operator |
|
The ‐> Operator |
|
The ‐> Operator |
|
The () Operator |
|
The [] Operator |
|
The |
|
The |
Non-Member Functions
Name |
Description |
Return the short name of an operator as a string. |
|
Return the short name of an operator as a string. |
|
Return the name of an operator as a string. |
|
Return the human‐readable name of the operator |
|
Return the safe name of an operator as a string. |
|
Return the short name of an operator as a string. |
|
Determines whether the operator is potentially binary. |
|
Determines whether the operator is potentially unary. |
Type qualifiers
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
enum QualifierKind;
Members
Name |
Description |
|
No qualifiers |
|
The const qualifier |
|
The volatile qualifier |
The kind of record: struct, class, or union.
Synopsis
Declared in <mrdocs/Metadata/Info/Record.hpp>
enum class RecordKeyKind : int;
Members
Name |
Description |
|
A struct. |
|
A C++ class. |
|
A C‐style Union |
Reference type kinds
Synopsis
Declared in <mrdocs/Metadata/Specifiers.hpp>
enum class ReferenceKind : int;
Members
Name |
Description |
|
Not a reference |
|
An L‐Value reference |
|
An R‐Value reference |
Storage class kinds
Synopsis
Declared in <mrdocs/Metadata/Specifiers.hpp>
enum class StorageClassKind : int;
Members
Name |
Description |
|
No storage class specifier |
|
thread_local storage‐class‐specifier |
|
mutable storage‐class‐specifier |
|
auto storage‐class‐specifier (removed in C++11) only valid for variables |
|
register storage‐class‐specifier (removed in C++17) only valid for variables |
Description
[dcl.stc] p1: At most one storage‐class‐specifier shall appear in a given decl‐specifier‐seq, except that thread_local
may appear with static
or extern
.
The kind of template argument.
Synopsis
Declared in <mrdocs/Metadata/Template.hpp>
enum class TArgKind : int;
Members
Name |
Description |
|
type arguments |
|
non‐type arguments, i.e. expressions |
|
template template arguments, i.e. template names |
The keyword a template parameter was declared with
Synopsis
Declared in <mrdocs/Metadata/Template.hpp>
enum class TParamKeyKind : int;
Members
Name |
Description |
|
Class keyword |
|
Typename keyword |
Synopsis
Declared in <mrdocs/Metadata/Template.hpp>
enum class TParamKind : int;
Members
Name |
Description |
|
Template type parameter, e.g. "typename T" or "class T" |
|
Template non‐type parameter, e.g. "int N" or "auto N" |
|
Template‐template parameter, e.g. "template<typename> typename T" |
The kind of template or specialization.
Synopsis
Declared in <mrdocs/Metadata/Template.hpp>
enum class TemplateSpecKind : int;
Members
Name |
Description |
|
Primary template |
|
Full template specialization |
|
Partial template specialization |
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
enum class TypeKind : int;
Members
Name |
Description |
|
A Named type |
|
A decltype type |
|
An auto type |
|
An LValueReference type |
|
An RValueReference type |
|
A Pointer type |
|
A MemberPointer type |
|
An Array type |
|
A Function type |
The class of using declaration.
Synopsis
Declared in <mrdocs/Metadata/Info/Using.hpp>
enum class UsingClass : int;
Members
Name |
Description |
|
Using declaration class. |
|
Using typename declaration class. |
|
Using enum declaration class. |
Description
This indicates whether the using declaration is a normal using
, a using typename
, or a using enum
.
Compares two polymorphic objects that have visit functions
Synopses
Declared in <mrdocs/ADT/Polymorphic.hpp>
Compares two polymorphic objects that have visit functions
template<class Base>
requires (!detail::IsPolymorphic<Base>) && detail::CanVisitCompare<Base>
auto
CompareDerived(
Base const& lhs,
Base const& rhs);
Compares two polymorphic objects that have visit functions
template<class Base>
requires detail::CanVisitCompare<Base>
auto
CompareDerived(
Polymorphic<Base> const& lhs,
Polymorphic<Base> const& rhs);
Return Value
true if the two Polymorphic objects are equal, otherwise false.
Template Parameters
Name |
Description |
Base |
The type of the Polymorphic. |
Parameters
Name |
Description |
lhs |
The first Polymorphic to compare. |
rhs |
The second Polymorphic to compare. |
Compares two polymorphic objects that have visit functions
Synopsis
Declared in <mrdocs/ADT/Polymorphic.hpp>
template<class Base>
requires (!detail::IsPolymorphic<Base>) && detail::CanVisitCompare<Base>
auto
CompareDerived(
Base const& lhs,
Base const& rhs);
Description
This function compares two Polymorphic objects that have visit functions for the Base type.
The visit function is used to compare the two objects if they are of the same derived type.
If the two objects are of different derived types, the comparison is based on the type_info of the derived types.
If any of the objects is empty, the comparison is based on the emptiness of the objects.
Return Value
true if the two Polymorphic objects are equal, otherwise false.
Template Parameters
Name |
Description |
Base |
The type of the Polymorphic. |
Parameters
Name |
Description |
lhs |
The first Polymorphic to compare. |
rhs |
The second Polymorphic to compare. |
Compares two polymorphic objects that have visit functions
Synopsis
Declared in <mrdocs/ADT/Polymorphic.hpp>
template<class Base>
requires detail::CanVisitCompare<Base>
auto
CompareDerived(
Polymorphic<Base> const& lhs,
Polymorphic<Base> const& rhs);
Description
This function compares two Polymorphic objects that have visit functions for the Base type.
The visit function is used to compare the two objects if they are of the same derived type.
If the two objects are of different derived types, the comparison is based on the type_info of the derived types.
If any of the objects is empty, the comparison is based on the emptiness of the objects.
Return Value
true if the two Polymorphic objects are equal, otherwise false.
Template Parameters
Name |
Description |
Base |
The type of the Polymorphic. |
Parameters
Name |
Description |
lhs |
The first Polymorphic to compare. |
rhs |
The second Polymorphic to compare. |
HTMLEscape
overloads
Synopses
Declared in <mrdocs/Support/Handlebars.hpp>
HTML escapes the specified string.
std::string
HTMLEscape(std::string_view str);
HTML escapes the specified string
void
HTMLEscape(
OutputRef& out,
std::string_view str);
Return Value
The escaped string.
Parameters
Name |
Description |
str |
The string to escape. |
out |
The output stream reference where the escaped string will be written. |
See Also
https://github.com/handlebars‐lang/handlebars.js/blob/master/lib/handlebars/utils.js
HTML escapes the specified string.
Synopsis
Declared in <mrdocs/Support/Handlebars.hpp>
std::string
HTMLEscape(std::string_view str);
Description
This function HTML escapes the specified string, making it safe for rendering as text within HTML content.
Replaces &
, <
, >
, "
, '
, `, `= with the HTML entity equivalent value for string values.
The output of all expressions except for triple‐braced expressions are passed through this method. Helpers should also use this method when returning HTML content via a SafeString instance, to prevent possible code injection.
Helper values created by the SafeString function are left untouched by the template and are not passed through this function.
Return Value
The escaped string.
Parameters
Name |
Description |
str |
The string to escape. |
HTML escapes the specified string
Synopsis
Declared in <mrdocs/Support/Handlebars.hpp>
void
HTMLEscape(
OutputRef& out,
std::string_view str);
Description
This function HTML escapes the specified string, making it safe for rendering as text within HTML content.
Replaces &
, <
, >
, "
, '
, `, `= with the HTML entity equivalent value for string values.
The output of all expressions except for triple‐braced expressions are passed through this method. Helpers should also use this method when returning HTML content via a SafeString instance, to prevent possible code injection.
Helper values created by the SafeString function are left untouched by the template and are not passed through this function.
This function has the same behavior as the corresponding utility function in the Handlebars.js library.
Parameters
Name |
Description |
out |
The output stream reference where the escaped string will be written. |
str |
The string to escape. |
See Also
https://github.com/handlebars‐lang/handlebars.js/blob/master/lib/handlebars/utils.js
Synopsis
Declared in <mrdocs/Metadata/Info/Overloads.hpp>
void
addMember(
OverloadsInfo& I,
FunctionInfo const& Member);
Synopses
Declared in <mrdocs/Metadata/Info/Enum.hpp>
auto&
allMembers(EnumInfo const& T);
auto
allMembers(NamespaceInfo const& T);
auto
allMembers(NamespaceTranche const& T);
auto&
allMembers(OverloadsInfo const& T);
auto
allMembers(RecordInfo const& T);
auto
allMembers(RecordInterface const& T);
auto
allMembers(RecordTranche const& T);
Synopsis
Declared in <mrdocs/Metadata/Info/Enum.hpp>
auto&
allMembers(EnumInfo const& T);
Synopsis
Declared in <mrdocs/Metadata/Info/Namespace.hpp>
auto
allMembers(NamespaceInfo const& T);
Synopsis
Declared in <mrdocs/Metadata/Info/Namespace.hpp>
auto
allMembers(NamespaceTranche const& T);
Synopsis
Declared in <mrdocs/Metadata/Info/Overloads.hpp>
auto&
allMembers(OverloadsInfo const& T);
Synopsis
Declared in <mrdocs/Metadata/Info/Record.hpp>
auto
allMembers(RecordInfo const& T);
Synopsis
Declared in <mrdocs/Metadata/Info/Record.hpp>
auto
allMembers(RecordInterface const& T);
Synopsis
Declared in <mrdocs/Metadata/Info/Record.hpp>
auto
allMembers(RecordTranche const& T);
Synopsis
Declared in <mrdocs/Support/Assert.hpp>
void
assert_failed(
char const* msg,
char const* file,
uint_least32_t line);
Synopsis
Synopsis
Declared in <mrdocs/Metadata/SymbolID.hpp>
std::strong_ordering
compareSymbolNames(
std::string_view symbolName0,
std::string_view symbolName1) noexcept;
Description
This function returns true if the string s0 is less than the string s1. The comparison is first made without regard to case, unless the strings compare equal and then they are compared with lowercase letters coming before uppercase letters.
Return Value
The result of the comparison.
Parameters
Name |
Description |
symbolName0 |
The first symbol name to compare. |
symbolName1 |
The second symbol name to compare. |
Determine if a range contains a specific element.
Synopses
Declared in <mrdocs/Support/Algorithm.hpp>
Determine if a range contains a specific element.
template<
class T,
class U>
requires std::equality_comparable_with<T, U>
bool
contains(
std::initializer_list<T> const& range,
U const& el);
Determine if a range contains a specific element.
template<
std::ranges::range Range,
class El>
requires std::equality_comparable_with<El, std::ranges::range_value_t<Range>>
bool
contains(
Range&& range,
El const& el);
Return Value
True if the element is found, false otherwise.
Parameters
Name |
Description |
range |
The range to search. |
el |
The element to search for. |
Determine if a range contains a specific element.
Synopsis
Declared in <mrdocs/Support/Algorithm.hpp>
template<
class T,
class U>
requires std::equality_comparable_with<T, U>
bool
contains(
std::initializer_list<T> const& range,
U const& el);
Return Value
True if the element is found, false otherwise.
Parameters
Name |
Description |
range |
The range to search. |
el |
The element to search for. |
Determine if a range contains a specific element.
Synopsis
Declared in <mrdocs/Support/Algorithm.hpp>
template<
std::ranges::range Range,
class El>
requires std::equality_comparable_with<El, std::ranges::range_value_t<Range>>
bool
contains(
Range&& range,
El const& el);
Return Value
True if the element is found, false otherwise.
Parameters
Name |
Description |
range |
The range to search. |
el |
The element to search for. |
Determine if a range contains any of the specified elements.
Synopses
Declared in <mrdocs/Support/Algorithm.hpp>
Determine if a range contains any of the specified elements.
template<
std::ranges::range Range,
std::ranges::range Els>
requires std::equality_comparable_with<std::ranges::range_value_t<Els>, std::ranges::range_value_t<Range>>
bool
contains_any(
Range const& range,
Els const& els);
Determine if a range contains any of the specified elements.
template<
std::ranges::range Range,
class El>
requires std::equality_comparable_with<El, std::ranges::range_value_t<Range>>
bool
contains_any(
Range const& range,
std::initializer_list<El> const& els);
Return Value
True if any of the elements are found, false otherwise.
Parameters
Name |
Description |
range |
The range to search. |
els |
The elements to search for. |
Determine if a range contains any of the specified elements.
Synopsis
Declared in <mrdocs/Support/Algorithm.hpp>
template<
std::ranges::range Range,
std::ranges::range Els>
requires std::equality_comparable_with<std::ranges::range_value_t<Els>, std::ranges::range_value_t<Range>>
bool
contains_any(
Range const& range,
Els const& els);
Return Value
True if any of the elements are found, false otherwise.
Parameters
Name |
Description |
range |
The range to search. |
els |
The elements to search for. |
Determine if a range contains any of the specified elements.
Synopsis
Declared in <mrdocs/Support/Algorithm.hpp>
template<
std::ranges::range Range,
class El>
requires std::equality_comparable_with<El, std::ranges::range_value_t<Range>>
bool
contains_any(
Range const& range,
std::initializer_list<El> const& els);
Return Value
True if any of the elements are found, false otherwise.
Parameters
Name |
Description |
range |
The range to search. |
els |
The elements to search for. |
Determine if a range contains at least N instances of the specified element.
Synopsis
Declared in <mrdocs/Support/Algorithm.hpp>
template<
std::ranges::range Range,
class El>
requires std::equality_comparable_with<El, std::ranges::range_value_t<Range>>
bool
contains_n(
Range const& range,
El const& el,
std::size_t n);
Return Value
True if the element is found, false otherwise.
Parameters
Name |
Description |
range |
The range to search. |
el |
The element to search for. |
n |
The number of instances to search for. |
Determine if a range contains at least N instances of any of the specified elements.
Synopses
Declared in <mrdocs/Support/Algorithm.hpp>
Determine if a range contains at least N instances of any of the specified elements.
template<
std::ranges::range Range,
std::ranges::range Els>
requires std::equality_comparable_with<std::ranges::range_value_t<Els>, std::ranges::range_value_t<Range>>
bool
contains_n_any(
Range const& range,
Els const& els,
std::size_t n);
Determine if a range contains at least N instances of any of the specified elements.
template<
std::ranges::range Range,
class El>
requires std::equality_comparable_with<El, std::ranges::range_value_t<Range>>
bool
contains_n_any(
Range const& range,
std::initializer_list<El> const& els,
std::size_t n);
Return Value
True if the element is found, false otherwise.
Parameters
Name |
Description |
range |
The range to search. |
els |
The elements to search for. |
n |
The number of instances to search for. |
Determine if a range contains at least N instances of any of the specified elements.
Synopsis
Declared in <mrdocs/Support/Algorithm.hpp>
template<
std::ranges::range Range,
std::ranges::range Els>
requires std::equality_comparable_with<std::ranges::range_value_t<Els>, std::ranges::range_value_t<Range>>
bool
contains_n_any(
Range const& range,
Els const& els,
std::size_t n);
Return Value
True if the element is found, false otherwise.
Parameters
Name |
Description |
range |
The range to search. |
els |
The elements to search for. |
n |
The number of instances to search for. |
Determine if a range contains at least N instances of any of the specified elements.
Synopsis
Declared in <mrdocs/Support/Algorithm.hpp>
template<
std::ranges::range Range,
class El>
requires std::equality_comparable_with<El, std::ranges::range_value_t<Range>>
bool
contains_n_any(
Range const& range,
std::initializer_list<El> const& els,
std::size_t n);
Return Value
True if the element is found, false otherwise.
Parameters
Name |
Description |
range |
The range to search. |
els |
The elements to search for. |
n |
The number of instances to search for. |
Synopsis
Declared in <mrdocs/Metadata/Info.hpp>
consteval
std::underlying_type_t<InfoKind>
countInfoKind();
Create child data objects.
Synopses
Declared in <mrdocs/Support/Handlebars.hpp>
Create child data objects.
dom::Object
createFrame(dom::Object const& parent);
dom::Object
createFrame(dom::Value const& parent);
dom::Object
createFrame(
dom::Object const& child,
dom::Object const& parent);
Return Value
The overlay object
Parameters
Name |
Description |
parent |
The underlying frame object |
See Also
https://mustache.github.io/mustache.5.html#Sections
Create child data objects.
Synopsis
Declared in <mrdocs/Support/Handlebars.hpp>
dom::Object
createFrame(dom::Object const& parent);
Description
This function can be used by block helpers to create child data objects.
The child data object is an overlay frame object implementation that will first look for a value in the child object and if not found will look in the parent object.
Helpers that modify the data state should create a new frame object when doing so, to isolate themselves and avoid corrupting the state of any parents.
Generally, only one frame needs to be created per helper execution. For example, the each iterator creates a single frame which is reused for all child execution.
Return Value
The overlay object
Parameters
Name |
Description |
parent |
The underlying frame object |
See Also
https://mustache.github.io/mustache.5.html#Sections
Synopsis
Declared in <mrdocs/Support/Handlebars.hpp>
dom::Object
createFrame(dom::Value const& parent);
Synopsis
Declared in <mrdocs/Support/Handlebars.hpp>
dom::Object
createFrame(
dom::Object const& child,
dom::Object const& parent);
Determine if a string ends with one of the specified characters
Synopsis
Declared in <mrdocs/Support/String.hpp>
constexpr
bool
endsWithOneOf(
std::string_view s,
std::string_view chars) noexcept;
Return Value
if a string ends with one of the specified characters
Parameters
Name |
Description |
s |
The string to check. |
chars |
The characters to check for. |
Synopsis
Declared in <mrdocs/Support/Handlebars.hpp>
void
escapeExpression(
OutputRef out,
std::string_view str,
HandlebarsOptions const& opt);
Find the last element in a range that matches an element in the specified range.
Synopsis
Declared in <mrdocs/Support/Algorithm.hpp>
template<
std::ranges::range Range,
std::ranges::range Els>
requires std::equality_comparable_with<std::ranges::range_value_t<Els>, std::ranges::range_value_t<Range>>
auto
find_last_of(
Range&& range,
Els&& els);
Return Value
An iterator to the last element found, or std::ranges::end(range) if not found.
Parameters
Name |
Description |
range |
The range to search. |
els |
The elements to search for. |
forEachFile
overloads
Synopses
Declared in <mrdocs/Support/Path.hpp>
Call a function for each file in a directory.
Expected<void>
forEachFile(
std::string_view dirPath,
bool recursive,
AnyFileVisitor& visitor);
Visit each file in a directory.
template<class Visitor>
Expected<void>
forEachFile(
std::string_view dirPath,
bool recursive,
Visitor&& visitor);
Return Value
An error if any occurred.
Parameters
Name |
Description |
dirPath |
The path to the directory. |
recursive |
If true, files in subdirectories are also visited, recursively. |
visitor |
The visitor to invoke for each file. |
Call a function for each file in a directory.
Synopsis
Declared in <mrdocs/Support/Path.hpp>
Expected<void>
forEachFile(
std::string_view dirPath,
bool recursive,
AnyFileVisitor& visitor);
Description
This will iterate all the regular files in a directory and invoke the visitor with the path.
Return Value
An error if any occurred.
Parameters
Name |
Description |
dirPath |
The path to the directory. |
recursive |
If true, files in subdirectories are also visited, recursively. |
visitor |
The visitor to invoke for each file. |
Visit each file in a directory.
Synopsis
Declared in <mrdocs/Support/Path.hpp>
template<class Visitor>
Expected<void>
forEachFile(
std::string_view dirPath,
bool recursive,
Visitor&& visitor);
Return Value
An error if any occurred.
Parameters
Name |
Description |
dirPath |
The path to the directory. |
recursive |
If true, files in subdirectories are also visited, recursively. |
visitor |
A callable object which is invoked for each file. This visitor might return |
Return a formatted error.
Synopsis
Declared in <mrdocs/Support/Error.hpp>
template<class... Args>
Error
formatError(
FormatString<Args...> fs,
Args...&&... args);
Return Value
a formatted error.
Parameters
Name |
Description |
fs |
The format string. This must not be empty. |
args |
Zero or more values to substitute into the format string. |
Convert a string to a FundamentalTypeKind.
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
bool
fromString(
std::string_view str,
FundamentalTypeKind& kind) noexcept;
Description
This function converts a string to a FundamentalTypeKind.
All variations of the type specifiers are supported.
However, the "long long" specifier cannot be split into two separate specifiers.
Return Value
true if the string was successfully converted
Parameters
Name |
Description |
str |
The string to convert |
kind [out] |
The resulting FundamentalTypeKind |
Synopsis
Declared in <mrdocs/Metadata/Info/Record.hpp>
constexpr
std::string_view
getDefaultAccessString(RecordKeyKind const& kind) noexcept;
Return a reference to the global Generators instance.
Synopsis
Declared in <mrdocs/Generators.hpp>
Generators const&
getGenerators() noexcept;
Return Value
a reference to the global Generators instance.
Return the short name of an operator as a string.
Synopsis
Declared in <mrdocs/Metadata/Info/Function.hpp>
OperatorKind
getOperatorKind(std::string_view name) noexcept;
Return Value
The OperatorKind, or OperatorKind::None if not recognized.
Parameters
Name |
Description |
name |
The operator name, e.g. |
Return the short name of an operator as a string.
Synopsis
Declared in <mrdocs/Metadata/Info/Function.hpp>
OperatorKind
getOperatorKindFromSuffix(std::string_view suffix) noexcept;
Return Value
The OperatorKind, or OperatorKind::None if not recognized.
Parameters
Name |
Description |
suffix |
The operator suffix, e.g. |
Return the name of an operator as a string.
Synopsis
Declared in <mrdocs/Metadata/Info/Function.hpp>
std::string_view
getOperatorName(
OperatorKind kind,
bool include_keyword = false) noexcept;
Return Value
the name of an operator as a string.
Parameters
Name |
Description |
kind |
The kind of operator. |
include_keyword |
Whether the name should be prefixed with the |
Return the human‐readable name of the operator
Synopsis
Declared in <mrdocs/Metadata/Info/Function.hpp>
std::optional<std::string_view>
getOperatorReadableName(
OperatorKind kind,
int nParams);
Return Value
The readable name, or nullopt if the operator is not recognized.
Parameters
Name |
Description |
kind |
The kind of operator. |
nParams |
The number of parameters the operator takes. |
Return a list of the parent symbols of the specified Info.
Synopses
Declared in <mrdocs/Corpus.hpp>
Return a list of the parent symbols of the specified Info.
std::vector<SymbolID>
getParents(
Corpus const& C,
Info const& I);
Return a list of the parent symbols of the specified Info.
dom::Array
getParents(
DomCorpus const& C,
Info const& I);
Return a list of the parent symbols of the specified Info.
Synopsis
Return Value
a list of the parent symbols of the specified Info.
Parameters
Name |
Description |
C |
The collection of declarations in extracted form. |
I |
Base class with common properties of all symbols |
Return a list of the parent symbols of the specified Info.
Synopsis
Declared in <mrdocs/Metadata/DomCorpus.hpp>
dom::Array
getParents(
DomCorpus const& C,
Info const& I);
Return Value
a list of the parent symbols of the specified Info.
Parameters
Name |
Description |
C |
Front‐end factory for producing Dom nodes. |
I |
Base class with common properties of all symbols |
Synopses
Declared in <mrdocs/Metadata/Source.hpp>
OptionalLocation
getPrimaryLocation(Info const& I);
OptionalLocation
getPrimaryLocation(
SourceInfo const& I,
bool preferDefinition);
Synopsis
Declared in <mrdocs/Metadata/Info.hpp>
OptionalLocation
getPrimaryLocation(Info const& I);
Synopsis
Declared in <mrdocs/Metadata/Source.hpp>
OptionalLocation
getPrimaryLocation(
SourceInfo const& I,
bool preferDefinition);
Return the safe name of an operator as a string.
Synopsis
Declared in <mrdocs/Metadata/Info/Function.hpp>
std::string_view
getSafeOperatorName(
OperatorKind kind,
bool include_keyword = false) noexcept;
Return Value
the safe name of an operator as a string.
Parameters
Name |
Description |
kind |
The kind of operator. |
include_keyword |
Whether the name should be prefixed with |
Return the short name of an operator as a string.
Synopsis
Declared in <mrdocs/Metadata/Info/Function.hpp>
std::string_view
getShortOperatorName(OperatorKind kind) noexcept;
Return Value
the short name of an operator as a string.
Parameters
Name |
Description |
kind |
Operator kinds |
Return the full path for single page output.
Synopsis
Declared in <mrdocs/Generator.hpp>
Expected<std::string>
getSinglePageFullPath(
std::string_view outputPath,
std::string_view extension);
Description
This function determines the full path for a single‐page output file based on the provided outputPath
and file extension
.
If the outputPath
already exists: ‐ If it is a directory, appends the default file name with the provided extension. ‐ If it is a file, uses the provided outputPath
directly.
If the outputPath
does not exist: ‐ If it ends with a '/', assumes it is a directory and appends the default file name. ‐ Otherwise, it returns an error because the path is ambiguous.
Return Value
The full path or an error if the outputPath
is ambiguous.
Parameters
Name |
Description |
outputPath |
The specified output path, which can be a directory or file. |
extension |
The file extension to use for single‐page output. |
Return the inner type.
Synopses
Declared in <mrdocs/Metadata/Type.hpp>
Return the inner type.
Return the inner type.
Return the inner type.
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
std::optional<std::reference_wrapper<Polymorphic<TypeInfo>>>
innerType(TypeInfo& TI) noexcept;
Description
The inner type is the type which is modified by a specifier (e.g. "int" in "pointer to int".
Return Value
the inner type.
Parameters
Name |
Description |
TI |
A possibly qualified type. |
Return the inner type.
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
std::optional<std::reference_wrapper<Polymorphic<TypeInfo> const>>
innerType(TypeInfo const& TI) noexcept;
Description
The inner type is the type which is modified by a specifier (e.g. "int" in "pointer to int".
Return Value
the inner type.
Parameters
Name |
Description |
TI |
A possibly qualified type. |
Return the inner type.
Synopses
Declared in <mrdocs/Metadata/Type.hpp>
Return the inner type.
TypeInfo*
innerTypePtr(TypeInfo& TI) noexcept;
Return the inner type.
TypeInfo const*
innerTypePtr(TypeInfo const& TI) noexcept;
Return the inner type.
Synopsis
Description
The inner type is the type which is modified by a specifier (e.g. "int" in "pointer to int".
Return Value
the inner type.
Parameters
Name |
Description |
TI |
A possibly qualified type. |
Return the inner type.
Synopsis
Description
The inner type is the type which is modified by a specifier (e.g. "int" in "pointer to int".
Return Value
the inner type.
Parameters
Name |
Description |
TI |
A possibly qualified type. |
Return the innermost type.
Synopses
Declared in <mrdocs/Metadata/Type.hpp>
Return the innermost type.
Polymorphic<TypeInfo>&
innermostType(Polymorphic<TypeInfo>& TI) noexcept;
Return the innermost type.
Polymorphic<TypeInfo> const&
innermostType(Polymorphic<TypeInfo> const& TI) noexcept;
Return the innermost type.
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
Polymorphic<TypeInfo>&
innermostType(Polymorphic<TypeInfo>& TI) noexcept;
Description
The innermost type is the type which is not modified by any specifiers (e.g. "int" in "pointer to const int").
If the type has an inner type, we recursively call this function until we reach the innermost type. If the type has no inner type, we return the current type.
Return Value
the innermost type.
Parameters
Name |
Description |
TI |
A polymorphic value‐type. |
Return the innermost type.
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
Polymorphic<TypeInfo> const&
innermostType(Polymorphic<TypeInfo> const& TI) noexcept;
Description
The innermost type is the type which is not modified by any specifiers (e.g. "int" in "pointer to const int").
If the type has an inner type, we recursively call this function until we reach the innermost type. If the type has no inner type, we return the current type.
Return Value
the innermost type.
Parameters
Name |
Description |
TI |
A polymorphic value‐type. |
Synopses
Declared in <mrdocs/Support/String.hpp>
constexpr
bool
isAlphaNumeric(std::string_view const s) noexcept;
constexpr
bool
isAlphaNumeric(char const c) noexcept;
Synopsis
Declared in <mrdocs/Support/String.hpp>
constexpr
bool
isAlphaNumeric(std::string_view const s) noexcept;
Synopsis
Declared in <mrdocs/Support/String.hpp>
constexpr
bool
isAlphaNumeric(char const c) noexcept;
Synopses
Declared in <mrdocs/Support/String.hpp>
constexpr
bool
isAlphabetic(std::string_view const s) noexcept;
constexpr
bool
isAlphabetic(char const c) noexcept;
Synopsis
Declared in <mrdocs/Support/String.hpp>
constexpr
bool
isAlphabetic(std::string_view const s) noexcept;
Synopsis
Declared in <mrdocs/Support/String.hpp>
constexpr
bool
isAlphabetic(char const c) noexcept;
Determines whether the operator is potentially binary.
Synopsis
Declared in <mrdocs/Metadata/Specifiers.hpp>
bool
isBinaryOperator(OperatorKind kind) noexcept;
Return Value
whether the operator is potentially binary.
Parameters
Name |
Description |
kind |
Operator kinds |
Synopses
Synopsis
Declared in <mrdocs/Support/String.hpp>
constexpr
bool
isDigit(std::string_view const s) noexcept;
Synopsis
Declared in <mrdocs/Support/String.hpp>
constexpr
bool
isDigit(char const c) noexcept;
Determine if a value is empty
Synopsis
Declared in <mrdocs/Support/Handlebars.hpp>
bool
isEmpty(dom::Value const& arg);
Description
This is used by the built‐in if and with helpers to control their execution flow.
The Handlebars definition of empty is any of:
‐ Array with length 0 ‐ falsy values other than 0
This is intended to match the Mustache Behaviour.
Return Value
True if the value is empty, false otherwise
Parameters
Name |
Description |
arg |
The value to test |
See Also
https://mustache.github.io/mustache.5.html#Sections
Synopses
Declared in <mrdocs/Support/String.hpp>
constexpr
bool
isLowerCase(std::string_view const s) noexcept;
constexpr
bool
isLowerCase(char const c) noexcept;
Synopsis
Declared in <mrdocs/Support/String.hpp>
constexpr
bool
isLowerCase(std::string_view const s) noexcept;
Synopsis
Declared in <mrdocs/Support/String.hpp>
constexpr
bool
isLowerCase(char const c) noexcept;
Determines whether the operator is potentially unary.
Synopsis
Declared in <mrdocs/Metadata/Specifiers.hpp>
bool
isUnaryOperator(OperatorKind kind) noexcept;
Return Value
whether the operator is potentially unary.
Parameters
Name |
Description |
kind |
Operator kinds |
Synopses
Declared in <mrdocs/Support/String.hpp>
constexpr
bool
isUpperCase(std::string_view const s) noexcept;
constexpr
bool
isUpperCase(char const c) noexcept;
Synopsis
Declared in <mrdocs/Support/String.hpp>
constexpr
bool
isUpperCase(std::string_view const s) noexcept;
Synopsis
Declared in <mrdocs/Support/String.hpp>
constexpr
bool
isUpperCase(char const c) noexcept;
Determine if a string is only whitespace.
Synopsis
Declared in <mrdocs/Support/String.hpp>
constexpr
bool
isWhitespace(std::string_view s) noexcept;
Return Value
true if the string is empty or contains only whitespace characters (space, tab, newline, vertical tab, form feed, carriage return). false otherwise.
Parameters
Name |
Description |
s |
The string to check. |
Determine if an element is equal to any of the elements in the specified range.
Synopses
Declared in <mrdocs/Support/Algorithm.hpp>
Determine if an element is equal to any of the elements in the specified range.
template<
class El,
std::ranges::range Range>
requires std::equality_comparable_with<std::ranges::range_value_t<Range>, El>
bool
is_one_of(
El const& el,
Range const& range);
Determine if an element is equal to any of the elements in the specified range.
template<
class U,
class T>
requires std::equality_comparable_with<U, T>
bool
is_one_of(
U const& el,
std::initializer_list<T> const& range);
Return Value
True if the element is found, false otherwise.
Parameters
Name |
Description |
el |
The element to search for. |
range |
The range to search. |
Determine if an element is equal to any of the elements in the specified range.
Synopsis
Declared in <mrdocs/Support/Algorithm.hpp>
template<
class El,
std::ranges::range Range>
requires std::equality_comparable_with<std::ranges::range_value_t<Range>, El>
bool
is_one_of(
El const& el,
Range const& range);
Return Value
True if the element is found, false otherwise.
Parameters
Name |
Description |
el |
The element to search for. |
range |
The range to search. |
Determine if an element is equal to any of the elements in the specified range.
Synopsis
Declared in <mrdocs/Support/Algorithm.hpp>
template<
class U,
class T>
requires std::equality_comparable_with<U, T>
bool
is_one_of(
U const& el,
std::initializer_list<T> const& range);
Return Value
True if the element is found, false otherwise.
Parameters
Name |
Description |
el |
The element to search for. |
range |
The range to search. |
Compare ExtractionModes and returns the least specific
Synopsis
Declared in <mrdocs/Metadata/ExtractionMode.hpp>
constexpr
ExtractionMode
leastSpecific(
ExtractionMode const a,
ExtractionMode const b) noexcept;
Description
This function returns the least specific of the two ExtractionModes in terms of the number of filters passed.
If the symbol passes the filter that categorizes it as a
, then it also passes the filter that categorizes it as b
(or vice‐versa), then this function will return the final category for the symbol.
Return Value
Determine why a symbol is extracted
Parameters
Name |
Description |
a |
Determine why a symbol is extracted |
b |
Determine why a symbol is extracted |
ltrim
overloads
Synopses
Declared in <mrdocs/Support/String.hpp>
Return the substring without leading horizontal whitespace.
constexpr
std::string_view
ltrim(std::string_view const s) noexcept;
Return the substring without leading specified characters.
constexpr
std::string_view
ltrim(
std::string_view const s,
std::string_view const chars) noexcept;
Return Value
The modified string.
Parameters
Name |
Description |
s |
The string to trim. |
chars |
The characters to remove. |
Return the substring without leading horizontal whitespace.
Synopsis
Declared in <mrdocs/Support/String.hpp>
constexpr
std::string_view
ltrim(std::string_view const s) noexcept;
Return Value
The modified string.
Parameters
Name |
Description |
s |
The string to trim. |
Return the substring without leading specified characters.
Synopsis
Declared in <mrdocs/Support/String.hpp>
constexpr
std::string_view
ltrim(
std::string_view const s,
std::string_view const chars) noexcept;
Return Value
The modified string.
Parameters
Name |
Description |
s |
The string to trim. |
chars |
The characters to remove. |
Apply the "char" specifier to the type
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
bool
makeChar(FundamentalTypeKind& kind) noexcept;
Description
If applying the "char" specifier to a type that might have been declared only with "signed/unsigned" or "short/long" specifiers, the function changes the type and returns true.
For instance, applying "char" to FundamentalTypeKind::Int
("int", which could be declared as "signed") results in FundamentalTypeKind::SignedChar
("signed char").
Return Value
Whether the operation was successful
Parameters
Name |
Description |
kind [in] |
The type to modify |
Apply the "long" specifier to the type
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
bool
makeLong(FundamentalTypeKind& kind) noexcept;
Description
If applying "long" the specifier is a valid operation the function changes the type and returns true.
For instance, applying "long" to FundamentalTypeKind::Int
("int") results in FundamentalTypeKind::Long
("long int").
Return Value
Whether the operation was successful
Parameters
Name |
Description |
kind [in] |
The type to modify |
Apply the "short" specifier to the type
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
bool
makeShort(FundamentalTypeKind& kind) noexcept;
Description
If applying "short" the specifier is a valid operation the function changes the type and returns true.
For instance, applying "short" to FundamentalTypeKind::Int
("int") results in FundamentalTypeKind::Short
("short int").
Return Value
Whether the operation was successful
Parameters
Name |
Description |
kind [in] |
The type to modify |
Apply the "signed" specifier to the type
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
bool
makeSigned(FundamentalTypeKind& kind) noexcept;
Description
If applying the "signed" specifier is a valid operation the function changes the type and returns true.
For instance, applying "signed" to FundamentalTypeKind::Char
("char") results in FundamentalTypeKind::SignedChar
("signed char").
It also returns true if applying the "signed" specifier is a valid operation but doesn't affect the type.
For instance, applying "signed" to FundamentalTypeKind::Int
("int") doesn't change the type but returns true
, even though FundamentalTypeKind::Int
could be declared as "int" or "signed" and multiple "signed" specifiers are not allowed.
Return Value
Whether the operation was successful
Parameters
Name |
Description |
kind [in] |
The type to modify |
Apply the "unsigned" specifier to the type
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
bool
makeUnsigned(FundamentalTypeKind& kind) noexcept;
Description
If applying the "unsigned" specifier is a valid operation the function changes the type and returns true.
For instance, applying "unsigned" to FundamentalTypeKind::Char
("char") results in FundamentalTypeKind::UnsignedChar
("unsigned char") and applying "unsigned" to FundamentalTypeKind::Int
("int") results in FundamentalTypeKind::UnsignedInt
("unsigned int").
Return Value
Whether the operation was successful
Parameters
Name |
Description |
kind [in] |
The type to modify |
Make a visitor for a base type
Synopsis
Declared in <mrdocs/Support/Visitor.hpp>
template<
typename BaseTy,
typename ObjectTy,
typename FnTy,
typename... ArgsTy>
auto
makeVisitor(
ObjectTy&& obj,
FnTy&& fn,
ArgsTy...&&... args);
Description
The returned visitor is an object with a template method visit
which can be called with a derived type of the object being visited.
The visitor stores the arguments args
passed to this function, and its method visit
calls the function fn
with the derived type as the first argument, followed by args
.
Return Value
The common return type of fn
when called with a derived type of obj
and args
Parameters
Name |
Description |
obj |
The object to visit |
fn |
The function object to call |
args |
The arguments to pass to the function object |
merge
overloads
Synopses
Declared in <mrdocs/Metadata/Info.hpp>
void
merge(
ConceptInfo& I,
ConceptInfo&& Other);
void
merge(
EnumConstantInfo& I,
EnumConstantInfo&& Other);
void
merge(
FriendInfo& I,
FriendInfo&& Other);
void
merge(
FunctionInfo& I,
FunctionInfo&& Other);
Merges two Info objects.
void
merge(
NamespaceAliasInfo& I,
NamespaceAliasInfo&& Other);
void
merge(
NamespaceInfo& I,
NamespaceInfo&& Other);
void
merge(
NamespaceTranche& I,
NamespaceTranche&& Other);
void
merge(
OverloadsInfo& I,
OverloadsInfo&& Other);
void
merge(
RecordInfo& I,
RecordInfo&& Other);
void
merge(
RecordInterface& I,
RecordInterface&& Other);
void
merge(
RecordTranche& I,
RecordTranche&& Other);
void
merge(
SourceInfo& I,
SourceInfo const& Other);
void
merge(
SourceInfo& I,
SourceInfo&& Other);
void
merge(
TemplateInfo& I,
TemplateInfo&& Other);
void
merge(
TypedefInfo& I,
TypedefInfo&& Other);
void
merge(
VariableInfo& I,
VariableInfo&& Other);
Merges two Info objects according to the behavior of the derived class.
template<polymorphic_storage_for<Info> InfoTy>
void
merge(
InfoTy& I,
InfoTy&& Other);
template<class T>
static
void
merge(
ConstantExprInfo<T>& I,
ConstantExprInfo<T>&& Other);
Parameters
Name |
Description |
I |
The Info object to merge into. |
Other |
The Info object to merge from. |
Synopsis
Declared in <mrdocs/Metadata/Info/Concept.hpp>
void
merge(
ConceptInfo& I,
ConceptInfo&& Other);
Synopsis
Declared in <mrdocs/Metadata/Info/EnumConstant.hpp>
void
merge(
EnumConstantInfo& I,
EnumConstantInfo&& Other);
Synopsis
Synopsis
Synopsis
Declared in <mrdocs/Metadata/Info/Friend.hpp>
void
merge(
FriendInfo& I,
FriendInfo&& Other);
Synopsis
Declared in <mrdocs/Metadata/Info/Function.hpp>
void
merge(
FunctionInfo& I,
FunctionInfo&& Other);
Synopsis
Description
This function is used to merge two Info objects with the same SymbolID. The function assumes that the two Info objects are of the same type. If they are not, the function will fail.
Parameters
Name |
Description |
I |
The Info object to merge into. |
Other |
The Info object to merge from. |
Synopsis
Synopsis
Declared in <mrdocs/Metadata/Info/NamespaceAlias.hpp>
void
merge(
NamespaceAliasInfo& I,
NamespaceAliasInfo&& Other);
Synopsis
Declared in <mrdocs/Metadata/Info/Namespace.hpp>
void
merge(
NamespaceInfo& I,
NamespaceInfo&& Other);
Synopsis
Declared in <mrdocs/Metadata/Info/Namespace.hpp>
void
merge(
NamespaceTranche& I,
NamespaceTranche&& Other);
Synopsis
Declared in <mrdocs/Metadata/Info/Overloads.hpp>
void
merge(
OverloadsInfo& I,
OverloadsInfo&& Other);
Synopsis
Synopsis
Declared in <mrdocs/Metadata/Info/Record.hpp>
void
merge(
RecordInfo& I,
RecordInfo&& Other);
Synopsis
Declared in <mrdocs/Metadata/Info/Record.hpp>
void
merge(
RecordInterface& I,
RecordInterface&& Other);
Synopsis
Declared in <mrdocs/Metadata/Info/Record.hpp>
void
merge(
RecordTranche& I,
RecordTranche&& Other);
Synopsis
Declared in <mrdocs/Metadata/Source.hpp>
void
merge(
SourceInfo& I,
SourceInfo const& Other);
Synopsis
Declared in <mrdocs/Metadata/Source.hpp>
void
merge(
SourceInfo& I,
SourceInfo&& Other);
Synopsis
Declared in <mrdocs/Metadata/Template.hpp>
void
merge(
TemplateInfo& I,
TemplateInfo&& Other);
Synopsis
Declared in <mrdocs/Metadata/Info/Typedef.hpp>
void
merge(
TypedefInfo& I,
TypedefInfo&& Other);
Synopsis
Synopsis
Declared in <mrdocs/Metadata/Info/Variable.hpp>
void
merge(
VariableInfo& I,
VariableInfo&& Other);
Merges two Info objects according to the behavior of the derived class.
Synopsis
Declared in <mrdocs/Metadata/Info.hpp>
template<polymorphic_storage_for<Info> InfoTy>
void
merge(
InfoTy& I,
InfoTy&& Other);
Parameters
Name |
Description |
I |
The Info object to merge into. |
Other |
The Info object to merge from. |
Synopsis
Declared in <mrdocs/Metadata/Expression.hpp>
template<class T>
static
void
merge(
ConstantExprInfo<T>& I,
ConstantExprInfo<T>&& Other);
Compare ExtractionModes and returns the most specific
Synopsis
Declared in <mrdocs/Metadata/ExtractionMode.hpp>
constexpr
ExtractionMode
mostSpecific(
ExtractionMode const a,
ExtractionMode const b) noexcept;
Description
This function returns the most specific of the two ExtractionModes in terms of number of filters passed.
Return Value
Determine why a symbol is extracted
Parameters
Name |
Description |
a |
Determine why a symbol is extracted |
b |
Determine why a symbol is extracted |
Determine if one function would override the other
Synopsis
Declared in <mrdocs/Metadata/Info/Function.hpp>
bool
overrides(
FunctionInfo const& base,
FunctionInfo const& derived);
Return Value
if one function would override the other
Parameters
Name |
Description |
base |
The base function |
derived |
The derived function |
Parse a string view
Synopses
Declared in <mrdocs/Support/Parse.hpp>
Parse a string view
template<HasParse T>
Expected<T>
parse(std::string_view sv);
Parse a string view
template<HasParse T>
ParseResult
parse(
std::string_view sv,
T& value);
Parameters
Name |
Description |
sv |
The string view to parse |
value |
The value to store the result |
Parse a string view
Synopsis
Declared in <mrdocs/Support/Parse.hpp>
template<HasParse T>
Expected<T>
parse(std::string_view sv);
Description
Parse a string view sv
as an object of type T
. If parsing fails, the function returns an error.
This overload does not return the ParseResult
object containing the pointer to the first character not parsed. Instead, the position of the error is calculated and the error message is formatted with the error position.
This function parses a string view sv
into a value of type T
. The function calls the parse
function for the type T
with the sv.data()
and sv.data() + sv.size()
as the first and last pointers, respectively.
If the parse function returns an error, then the function returns the error.
If the parse function returns success, but there are characters left in the string view, then the function returns an error with the message "trailing characters".
Otherwise, it returns the value.
Return Value
A container holding an error or a value.
Parameters
Name |
Description |
sv |
The string view to parse |
Parse a string view
Synopsis
Declared in <mrdocs/Support/Parse.hpp>
template<HasParse T>
ParseResult
parse(
std::string_view sv,
T& value);
Description
This function parses a string view sv
into a value of type T
. The function calls the parse
function for the type T
with the sv.data()
and sv.data() + sv.size()
as the first and last pointers, respectively.
If the parse function returns an error, then the function returns the error.
If the parse function returns success, but there are characters left in the string view, then the function returns an error with the message "trailing characters".
Otherwise, it returns the value.
Return Value
The result of a parse operation.
Parameters
Name |
Description |
sv |
The string view to parse |
value |
The value to store the result |
Return the substring without leading and trailing horizontal whitespace.
Synopsis
Declared in <mrdocs/Support/String.hpp>
void
replace(
std::string& s,
std::string_view from,
std::string_view to);
Return Value
The modified string.
Parameters
Name |
Description |
s |
The string to trim. |
from |
The substring to remove. |
to |
The substring to replace with. If this is empty, the substring is removed. |
rtrim
overloads
Synopses
Declared in <mrdocs/Support/String.hpp>
Return the substring without trailing horizontal whitespace.
constexpr
std::string_view
rtrim(std::string_view const s) noexcept;
Return the substring without trailing specified characters.
constexpr
std::string_view
rtrim(
std::string_view const s,
std::string_view const chars) noexcept;
Return Value
The modified string.
Parameters
Name |
Description |
s |
The string to trim. |
chars |
The characters to remove. |
Return the substring without trailing horizontal whitespace.
Synopsis
Declared in <mrdocs/Support/String.hpp>
constexpr
std::string_view
rtrim(std::string_view const s) noexcept;
Return Value
The modified string.
Parameters
Name |
Description |
s |
The string to trim. |
Return the substring without trailing specified characters.
Synopsis
Declared in <mrdocs/Support/String.hpp>
constexpr
std::string_view
rtrim(
std::string_view const s,
std::string_view const chars) noexcept;
Return Value
The modified string.
Parameters
Name |
Description |
s |
The string to trim. |
chars |
The characters to remove. |
Create a wrapper for a safe string.
Synopses
Declared in <mrdocs/Dom/Value.hpp>
Create a wrapper for a safe string.
Value
safeString(std::string_view str);
dom::Value
safeString(dom::Value const& str);
template<std::convertible_to<std::string_view> SV>
dom::Value
safeString(SV const& str);
Return Value
The safe string wrapper
Parameters
Name |
Description |
str |
The string to mark as safe |
See Also
https://handlebarsjs.com/api‐reference/utilities.html#handlebars‐safestring‐string
Create a wrapper for a safe string.
Synopsis
Declared in <mrdocs/Dom/Value.hpp>
Value
safeString(std::string_view str);
Description
This string wrapper prevents the string from being escaped when the template is rendered.
When a helper returns a safe string, it will be marked as safe and will not be escaped when rendered. The string will be rendered as if converted to a dom::Value
and rendered as‐is.
When constructing the string that will be marked as safe, any external content should be properly escaped using the escapeExpression
function to avoid potential security concerns.
Return Value
The safe string wrapper
Parameters
Name |
Description |
str |
The string to mark as safe |
See Also
https://handlebarsjs.com/api‐reference/utilities.html#handlebars‐safestring‐string
Synopsis
Declared in <mrdocs/Dom/Value.hpp>
dom::Value
safeString(dom::Value const& str);
Synopsis
Declared in <mrdocs/Dom/Value.hpp>
template<std::convertible_to<std::string_view> SV>
dom::Value
safeString(SV const& str);
Determine if a string starts with one of the specified characters
Synopsis
Declared in <mrdocs/Support/String.hpp>
constexpr
bool
startsWithOneOf(
std::string_view s,
std::string_view chars) noexcept;
Return Value
if a string starts with one of the specified characters
Parameters
Name |
Description |
s |
The string to check. |
chars |
The characters to check for. |
Synopses
Declared in <mrdocs/ADT/Polymorphic.hpp>
constexpr
void
swap(
Polymorphic& lhs,
Polymorphic& rhs) noexcept;
constexpr
void
swap(
Unexpected& x,
Unexpected& y) noexcept(noexcept(x.swap(y)))
requires std::is_swappable_v<E>;
Synopsis
Synopsis
Synopsis
Declared in <mrdocs/ADT/Polymorphic.hpp>
constexpr
void
swap(
Polymorphic& lhs,
Polymorphic& rhs) noexcept;
Synopsis
Declared in <mrdocs/Support/Expected.hpp>
constexpr
void
swap(
Unexpected& x,
Unexpected& y) noexcept(noexcept(x.swap(y)))
requires std::is_swappable_v<E>;
tag_invoke
overloads
Synopses
Declared in <mrdocs/Metadata/Info/Function.hpp>
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
AutoKind kind);
Return the InfoKind from a dom::Value
string.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
ExtractionMode kind);
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
FileKind kind);
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
OperatorKind kind);
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
QualifierKind kind);
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
RecordKeyKind kind);
Return the ReferenceKind as a dom::Value
string.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
ReferenceKind kind);
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
TArgKind kind);
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
TParamKeyKind kind);
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
TypeKind kind);
Return the UsingClass as a dom::Value
string.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
UsingClass kind);
Return the AccessKind as a dom::Value
string.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
AccessKind const kind);
Return the ConstexprKind as a dom::Value
string.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
ConstexprKind const kind);
Return the FunctionClass from a dom::Value
string.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
FunctionClass const kind);
Return the InfoKind from a dom::Value
string.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
InfoKind const kind);
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
NameKind const kind);
Return the StorageClassKind as a dom::Value
string.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
StorageClassKind const kind);
Return the ExplicitInfo as a dom::Value
string.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
ExplicitInfo const& I);
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
Location const& loc);
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
NoexceptInfo const& info);
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
SourceInfo const& I);
Convert SymbolID to dom::Value string in the DOM using toBase16
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
SymbolID const& id);
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
BaseInfo const& I,
DomCorpus const* domCorpus);
Map the ConceptInfo to a dom::Value
object.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
ConceptInfo const& I,
DomCorpus const* domCorpus);
Map the EnumConstantInfo to a dom::Value
object.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
EnumConstantInfo const& I,
DomCorpus const* domCorpus);
Map the EnumInfo to a dom::Value
object.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
EnumInfo const& I,
DomCorpus const* domCorpus);
Map the FriendInfo to a dom::Value
object.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
FriendInfo const& I,
DomCorpus const* domCorpus);
Map the FunctionInfo to a dom::Value
object.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
FunctionInfo const& I,
DomCorpus const* domCorpus);
Map the GuideInfo to a dom::Value
object.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
GuideInfo const& I,
DomCorpus const* domCorpus);
Return the Info as a dom::Value
object.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
Info const& I,
DomCorpus const* domCorpus);
Return the Javadoc
as a dom::Value
object.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
Javadoc const& I,
DomCorpus const* domCorpus);
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
NameInfo const& I,
DomCorpus const* domCorpus);
Map the NamespaceAliasInfo to a dom::Value
object.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
NamespaceAliasInfo const& I,
DomCorpus const* domCorpus);
Map the NamespaceInfo to a dom::Value
object.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
NamespaceInfo const& I,
DomCorpus const* domCorpus);
Map the NamespaceTranche to a dom::Value
object.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
NamespaceTranche const& I,
DomCorpus const* domCorpus);
Map the OverloadsInfo to a dom::Value
object.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
OverloadsInfo const& I,
DomCorpus const* domCorpus);
Return the Param as a dom::Value
object.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
Param const& p,
DomCorpus const* domCorpus);
Map the RecordInfo to a dom::Value
object.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
RecordInfo const& I,
DomCorpus const* domCorpus);
Map the RecordInterface to a dom::Value
object.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
RecordInterface const& I,
DomCorpus const* domCorpus);
Map the RecordTranche to a dom::Value
object.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
RecordTranche const& I,
DomCorpus const* domCorpus);
Convert SymbolID to dom::Value object in the DOM using Corpus
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
SymbolID const& id,
DomCorpus const* domCorpus);
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
TArg const& I,
DomCorpus const* domCorpus);
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
TParam const& I,
DomCorpus const* domCorpus);
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
TemplateInfo const& I,
DomCorpus const* domCorpus);
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
TypeInfo const& I,
DomCorpus const* domCorpus);
Map the TypedefInfo to a dom::Value
object.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
TypedefInfo const& I,
DomCorpus const* domCorpus);
Map the UsingInfo to a dom::Value
object.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
UsingInfo const& I,
DomCorpus const* domCorpus);
Map the VariableInfo to a dom::Value
object.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
VariableInfo const& I,
DomCorpus const* domCorpus);
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
Polymorphic<NameInfo> const& I,
DomCorpus const* domCorpus);
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
Polymorphic<TArg> const& I,
DomCorpus const* domCorpus);
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
Polymorphic<TParam> const& I,
DomCorpus const* domCorpus);
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
Polymorphic<TypeInfo> const& I,
DomCorpus const* domCorpus);
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
std::optional<TemplateInfo> const& I,
DomCorpus const* domCorpus);
Convert SymbolID pointers to dom::Value or null.
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
std::unique_ptr<SymbolID> const& t,
DomCorpus const* domCorpus);
Map the Info to a dom::Object
.
template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag,
IO& io,
Info const& I,
DomCorpus const* domCorpus);
Map a NamespaceTranche to a dom::Object.
template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag,
IO& io,
NamespaceTranche const& I,
DomCorpus const* domCorpus);
Map a RecordInterface to a dom::Object.
template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag,
IO& io,
RecordInterface const& I,
DomCorpus const*);
Map a RecordTranche to a dom::Object.
template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag,
IO& io,
RecordTranche const& I,
DomCorpus const* domCorpus);
Map a ConceptInfo to a dom::Object.
template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
ConceptInfo const& I,
DomCorpus const* domCorpus);
Map a EnumConstantInfo to a dom::Object.
template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
EnumConstantInfo const& I,
DomCorpus const* domCorpus);
Map a EnumInfo to a dom::Object.
template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
EnumInfo const& I,
DomCorpus const* domCorpus);
Map a FriendInfo to a dom::Object.
template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
FriendInfo const& I,
DomCorpus const* domCorpus);
Map a FunctionInfo to a dom::Object.
template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
FunctionInfo const& I,
DomCorpus const* domCorpus);
Map a GuideInfo to a dom::Object.
template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
GuideInfo const& I,
DomCorpus const* domCorpus);
Map the Javadoc
to a dom::Object
.
template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
Javadoc const& I,
DomCorpus const* domCorpus);
Map a NamespaceAliasInfo to a dom::Object.
template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
NamespaceAliasInfo const& I,
DomCorpus const* domCorpus);
Map a NamespaceInfo to a dom::Object.
template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
NamespaceInfo const& I,
DomCorpus const* domCorpus);
Map a OverloadsInfo to a dom::Object.
template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
OverloadsInfo const& I,
DomCorpus const* domCorpus);
Map a RecordInfo to a dom::Object.
template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
RecordInfo const& I,
DomCorpus const* domCorpus);
Map a TypedefInfo to a dom::Object.
template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
TypedefInfo const& I,
DomCorpus const* domCorpus);
Map a UsingInfo to a dom::Object.
template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
UsingInfo const& I,
DomCorpus const* domCorpus);
Map a VariableInfo to a dom::Object.
template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
VariableInfo const& I,
DomCorpus const* domCorpus);
Map the Polymorphic Info to a dom::Object
.
template<
class IO,
polymorphic_storage_for<Info> PolymorphicInfo>
requires std::derived_from<PolymorphicInfo, Info>
void
tag_invoke(
dom::LazyObjectMapTag,
IO& io,
PolymorphicInfo const& I,
DomCorpus const* domCorpus);
Map the Polymorphic Info as a dom::Value
object.
template<
class IO,
polymorphic_storage_for<Info> InfoTy>
requires std::derived_from<InfoTy, Info>
void
tag_invoke(
dom::ValueFromTag,
IO& io,
InfoTy const& I,
DomCorpus const* domCorpus);
Parameters
Name |
Description |
v |
The output value. |
kind |
The UsingClass to convert. |
I |
The ExplicitInfo to convert. |
domCorpus |
The DomCorpus used to resolve references. |
t |
The SymbolID pointer to convert. If null, the dom::Value is set to null. |
io |
The output parameter to receive the dom::Object. |
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
AutoKind kind);
Return the InfoKind from a dom::Value
string.
Synopsis
Declared in <mrdocs/Metadata/ExtractionMode.hpp>
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
ExtractionMode kind);
Parameters
Name |
Description |
v |
A variant container for any kind of Dom value. |
kind |
Determine why a symbol is extracted |
Synopsis
Declared in <mrdocs/Metadata/Source.hpp>
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
FileKind kind);
Synopsis
Declared in <mrdocs/Metadata/Specifiers.hpp>
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
OperatorKind kind);
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
QualifierKind kind);
Synopsis
Declared in <mrdocs/Metadata/Info/Record.hpp>
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
RecordKeyKind kind);
Return the ReferenceKind as a dom::Value
string.
Synopsis
Declared in <mrdocs/Metadata/Specifiers.hpp>
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
ReferenceKind kind);
Parameters
Name |
Description |
v |
A variant container for any kind of Dom value. |
kind |
Reference type kinds |
Synopsis
Declared in <mrdocs/Metadata/Template.hpp>
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
TArgKind kind);
Synopsis
Declared in <mrdocs/Metadata/Template.hpp>
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
TParamKeyKind kind);
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
TypeKind kind);
Return the UsingClass as a dom::Value
string.
Synopsis
Declared in <mrdocs/Metadata/Info/Using.hpp>
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
UsingClass kind);
Parameters
Name |
Description |
v |
The output value. |
kind |
The UsingClass to convert. |
Return the AccessKind as a dom::Value
string.
Synopsis
Declared in <mrdocs/Metadata/Specifiers.hpp>
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
AccessKind const kind);
Parameters
Name |
Description |
v |
A variant container for any kind of Dom value. |
kind |
Access specifier. |
Return the ConstexprKind as a dom::Value
string.
Synopsis
Declared in <mrdocs/Metadata/Specifiers.hpp>
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
ConstexprKind const kind);
Parameters
Name |
Description |
v |
A variant container for any kind of Dom value. |
kind |
|
Return the FunctionClass from a dom::Value
string.
Synopsis
Declared in <mrdocs/Metadata/Info/Function.hpp>
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
FunctionClass const kind);
Parameters
Name |
Description |
v |
A variant container for any kind of Dom value. |
kind |
Function classifications |
Return the InfoKind from a dom::Value
string.
Synopsis
Declared in <mrdocs/Metadata/Info.hpp>
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
InfoKind const kind);
Parameters
Name |
Description |
v |
A variant container for any kind of Dom value. |
kind |
Info variant discriminator |
Synopsis
Declared in <mrdocs/Metadata/Name.hpp>
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
NameKind const kind);
Return the StorageClassKind as a dom::Value
string.
Synopsis
Declared in <mrdocs/Metadata/Specifiers.hpp>
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
StorageClassKind const kind);
Parameters
Name |
Description |
v |
A variant container for any kind of Dom value. |
kind |
Storage class kinds |
Return the ExplicitInfo as a dom::Value
string.
Synopsis
Declared in <mrdocs/Metadata/Specifiers.hpp>
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
ExplicitInfo const& I);
Parameters
Name |
Description |
v |
The output parameter to receive the dom::Value. |
I |
The ExplicitInfo to convert. |
Synopsis
Declared in <mrdocs/Metadata/Source.hpp>
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
Location const& loc);
Synopsis
Declared in <mrdocs/Metadata/Specifiers.hpp>
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
NoexceptInfo const& info);
Synopsis
Declared in <mrdocs/Metadata/Source.hpp>
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
SourceInfo const& I);
Convert SymbolID to dom::Value string in the DOM using toBase16
Synopsis
Declared in <mrdocs/Metadata/SymbolID.hpp>
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
SymbolID const& id);
Parameters
Name |
Description |
v |
A variant container for any kind of Dom value. |
id |
A unique identifier for a symbol. |
Synopsis
Declared in <mrdocs/Metadata/Info/Record.hpp>
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
BaseInfo const& I,
DomCorpus const* domCorpus);
Map the ConceptInfo to a dom::Value
object.
Synopsis
Declared in <mrdocs/Metadata/Info/Concept.hpp>
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
ConceptInfo const& I,
DomCorpus const* domCorpus);
Parameters
Name |
Description |
v |
A variant container for any kind of Dom value. |
I |
Info for concepts. |
domCorpus |
Front‐end factory for producing Dom nodes. |
Map the EnumConstantInfo to a dom::Value
object.
Synopsis
Declared in <mrdocs/Metadata/Info/EnumConstant.hpp>
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
EnumConstantInfo const& I,
DomCorpus const* domCorpus);
Parameters
Name |
Description |
v |
A variant container for any kind of Dom value. |
I |
Info for enum constants. |
domCorpus |
Front‐end factory for producing Dom nodes. |
Map the EnumInfo to a dom::Value
object.
Synopsis
Declared in <mrdocs/Metadata/Info/Enum.hpp>
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
EnumInfo const& I,
DomCorpus const* domCorpus);
Parameters
Name |
Description |
v |
The output parameter to receive the dom::Value. |
I |
The EnumInfo to convert. |
domCorpus |
The DomCorpus used to resolve references. |
Map the FriendInfo to a dom::Value
object.
Synopsis
Declared in <mrdocs/Metadata/Info/Friend.hpp>
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
FriendInfo const& I,
DomCorpus const* domCorpus);
Parameters
Name |
Description |
v |
A variant container for any kind of Dom value. |
I |
Info for friend declarations. |
domCorpus |
Front‐end factory for producing Dom nodes. |
Map the FunctionInfo to a dom::Value
object.
Synopsis
Declared in <mrdocs/Metadata/Info/Function.hpp>
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
FunctionInfo const& I,
DomCorpus const* domCorpus);
Parameters
Name |
Description |
v |
The output parameter to receive the dom::Value. |
I |
The FunctionInfo to convert. |
domCorpus |
The DomCorpus used to resolve references. |
Map the GuideInfo to a dom::Value
object.
Synopsis
Declared in <mrdocs/Metadata/Info/Guide.hpp>
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
GuideInfo const& I,
DomCorpus const* domCorpus);
Parameters
Name |
Description |
v |
A variant container for any kind of Dom value. |
I |
Info for deduction guides. |
domCorpus |
Front‐end factory for producing Dom nodes. |
Return the Info as a dom::Value
object.
Synopsis
Declared in <mrdocs/Metadata/Info.hpp>
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
Info const& I,
DomCorpus const* domCorpus);
Parameters
Name |
Description |
v |
A variant container for any kind of Dom value. |
I |
Base class with common properties of all symbols |
domCorpus |
Front‐end factory for producing Dom nodes. |
Return the Javadoc
as a dom::Value
object.
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
Javadoc const& I,
DomCorpus const* domCorpus);
Parameters
Name |
Description |
v |
A variant container for any kind of Dom value. |
I |
A processed Doxygen‐style comment attached to a declaration. |
domCorpus |
Front‐end factory for producing Dom nodes. |
Synopsis
Declared in <mrdocs/Metadata/Name.hpp>
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
NameInfo const& I,
DomCorpus const* domCorpus);
Map the NamespaceAliasInfo to a dom::Value
object.
Synopsis
Declared in <mrdocs/Metadata/Info/NamespaceAlias.hpp>
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
NamespaceAliasInfo const& I,
DomCorpus const* domCorpus);
Parameters
Name |
Description |
v |
A variant container for any kind of Dom value. |
I |
Info for namespace aliases. |
domCorpus |
Front‐end factory for producing Dom nodes. |
Map the NamespaceInfo to a dom::Value
object.
Synopsis
Declared in <mrdocs/Metadata/Info/Namespace.hpp>
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
NamespaceInfo const& I,
DomCorpus const* domCorpus);
Parameters
Name |
Description |
v |
A variant container for any kind of Dom value. |
I |
Describes a namespace. |
domCorpus |
Front‐end factory for producing Dom nodes. |
Map the NamespaceTranche to a dom::Value
object.
Synopsis
Declared in <mrdocs/Metadata/Info/Namespace.hpp>
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
NamespaceTranche const& I,
DomCorpus const* domCorpus);
Parameters
Name |
Description |
v |
A variant container for any kind of Dom value. |
I |
The members of a Namespace |
domCorpus |
Front‐end factory for producing Dom nodes. |
Map the OverloadsInfo to a dom::Value
object.
Synopsis
Declared in <mrdocs/Metadata/Info/Overloads.hpp>
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
OverloadsInfo const& I,
DomCorpus const* domCorpus);
Parameters
Name |
Description |
v |
A variant container for any kind of Dom value. |
I |
Represents a set of function overloads. |
domCorpus |
Front‐end factory for producing Dom nodes. |
Return the Param as a dom::Value
object.
Synopsis
Declared in <mrdocs/Metadata/Info/Function.hpp>
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
Param const& p,
DomCorpus const* domCorpus);
Parameters
Name |
Description |
v |
A variant container for any kind of Dom value. |
p |
Represents a single function parameter |
domCorpus |
Front‐end factory for producing Dom nodes. |
Map the RecordInfo to a dom::Value
object.
Synopsis
Declared in <mrdocs/Metadata/Info/Record.hpp>
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
RecordInfo const& I,
DomCorpus const* domCorpus);
Parameters
Name |
Description |
v |
A variant container for any kind of Dom value. |
I |
Metadata for struct, class, or union. |
domCorpus |
Front‐end factory for producing Dom nodes. |
Map the RecordInterface to a dom::Value
object.
Synopsis
Declared in <mrdocs/Metadata/Info/Record.hpp>
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
RecordInterface const& I,
DomCorpus const* domCorpus);
Parameters
Name |
Description |
v |
A variant container for any kind of Dom value. |
I |
The aggregated interface for a given struct, class, or union. |
domCorpus |
Front‐end factory for producing Dom nodes. |
Map the RecordTranche to a dom::Value
object.
Synopsis
Declared in <mrdocs/Metadata/Info/Record.hpp>
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
RecordTranche const& I,
DomCorpus const* domCorpus);
Parameters
Name |
Description |
v |
A variant container for any kind of Dom value. |
I |
A group of members that have the same access specifier. |
domCorpus |
Front‐end factory for producing Dom nodes. |
Convert SymbolID to dom::Value object in the DOM using Corpus
Synopsis
Declared in <mrdocs/Metadata/SymbolID.hpp>
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
SymbolID const& id,
DomCorpus const* domCorpus);
Parameters
Name |
Description |
v |
A variant container for any kind of Dom value. |
id |
A unique identifier for a symbol. |
domCorpus |
Front‐end factory for producing Dom nodes. |
Synopsis
Declared in <mrdocs/Metadata/Template.hpp>
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
TArg const& I,
DomCorpus const* domCorpus);
Synopsis
Declared in <mrdocs/Metadata/Template.hpp>
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
TParam const& I,
DomCorpus const* domCorpus);
Synopsis
Declared in <mrdocs/Metadata/Template.hpp>
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
TemplateInfo const& I,
DomCorpus const* domCorpus);
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
TypeInfo const& I,
DomCorpus const* domCorpus);
Map the TypedefInfo to a dom::Value
object.
Synopsis
Declared in <mrdocs/Metadata/Info/Typedef.hpp>
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
TypedefInfo const& I,
DomCorpus const* domCorpus);
Parameters
Name |
Description |
v |
The output parameter to receive the dom::Value. |
I |
The TypedefInfo to convert. |
domCorpus |
The DomCorpus used to resolve references. |
Map the UsingInfo to a dom::Value
object.
Synopsis
Declared in <mrdocs/Metadata/Info/Using.hpp>
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
UsingInfo const& I,
DomCorpus const* domCorpus);
Parameters
Name |
Description |
v |
A variant container for any kind of Dom value. |
I |
Info for using declarations. |
domCorpus |
Front‐end factory for producing Dom nodes. |
Map the VariableInfo to a dom::Value
object.
Synopsis
Declared in <mrdocs/Metadata/Info/Variable.hpp>
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
VariableInfo const& I,
DomCorpus const* domCorpus);
Parameters
Name |
Description |
v |
A variant container for any kind of Dom value. |
I |
A variable. |
domCorpus |
Front‐end factory for producing Dom nodes. |
Synopsis
Declared in <mrdocs/Metadata/Name.hpp>
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
Polymorphic<NameInfo> const& I,
DomCorpus const* domCorpus);
Synopsis
Declared in <mrdocs/Metadata/Template.hpp>
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
Polymorphic<TArg> const& I,
DomCorpus const* domCorpus);
Synopsis
Declared in <mrdocs/Metadata/Template.hpp>
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
Polymorphic<TParam> const& I,
DomCorpus const* domCorpus);
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
Polymorphic<TypeInfo> const& I,
DomCorpus const* domCorpus);
Synopsis
Declared in <mrdocs/Metadata/Template.hpp>
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
std::optional<TemplateInfo> const& I,
DomCorpus const* domCorpus);
Convert SymbolID pointers to dom::Value or null.
Synopsis
Declared in <mrdocs/Metadata/SymbolID.hpp>
void
tag_invoke(
dom::ValueFromTag,
dom::Value& v,
std::unique_ptr<SymbolID> const& t,
DomCorpus const* domCorpus);
Parameters
Name |
Description |
v |
The output parameter to receive the dom::Value. |
t |
The SymbolID pointer to convert. If null, the dom::Value is set to null. |
domCorpus |
The DomCorpus to use, or nullptr. If null, the SymbolID is converted to a base16 string. |
Map the Info to a dom::Object
.
Synopsis
Declared in <mrdocs/Metadata/Info.hpp>
template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag,
IO& io,
Info const& I,
DomCorpus const* domCorpus);
Parameters
Name |
Description |
io |
The output parameter to receive the dom::Object. |
I |
The Info to convert. |
domCorpus |
The DomCorpus used to resolve references. |
Map a NamespaceTranche to a dom::Object.
Synopsis
Declared in <mrdocs/Metadata/Info/Namespace.hpp>
template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag,
IO& io,
NamespaceTranche const& I,
DomCorpus const* domCorpus);
Parameters
Name |
Description |
io |
The IO object to use for mapping. |
I |
The NamespaceTranche to map. |
domCorpus |
The DomCorpus used to create |
Map a RecordInterface to a dom::Object.
Synopsis
Declared in <mrdocs/Metadata/Info/Record.hpp>
template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag,
IO& io,
RecordInterface const& I,
DomCorpus const*);
Parameters
Name |
Description |
io |
The output parameter to receive the dom::Object. |
I |
The RecordInterface to convert. |
Map a RecordTranche to a dom::Object.
Synopsis
Declared in <mrdocs/Metadata/Info/Record.hpp>
template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag,
IO& io,
RecordTranche const& I,
DomCorpus const* domCorpus);
Parameters
Name |
Description |
io |
The output parameter to receive the dom::Object. |
I |
The RecordTranche to convert. |
domCorpus |
The DomCorpus used to resolve references. |
Map a ConceptInfo to a dom::Object.
Synopsis
Declared in <mrdocs/Metadata/Info/Concept.hpp>
template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
ConceptInfo const& I,
DomCorpus const* domCorpus);
Parameters
Name |
Description |
t |
The tag type. |
io |
The IO object to use for mapping. |
I |
The ConceptInfo to map. |
domCorpus |
The DomCorpus used to create |
Map a EnumConstantInfo to a dom::Object.
Synopsis
Declared in <mrdocs/Metadata/Info/EnumConstant.hpp>
template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
EnumConstantInfo const& I,
DomCorpus const* domCorpus);
Parameters
Name |
Description |
t |
The tag type. |
io |
The IO object to use for mapping. |
I |
The EnumConstantInfo to map. |
domCorpus |
The DomCorpus used to create |
Map a EnumInfo to a dom::Object.
Synopsis
Declared in <mrdocs/Metadata/Info/Enum.hpp>
template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
EnumInfo const& I,
DomCorpus const* domCorpus);
Parameters
Name |
Description |
t |
The tag type. |
io |
The IO object to use for mapping. |
I |
The EnumInfo to map. |
domCorpus |
The DomCorpus used to create |
Map a FriendInfo to a dom::Object.
Synopsis
Declared in <mrdocs/Metadata/Info/Friend.hpp>
template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
FriendInfo const& I,
DomCorpus const* domCorpus);
Parameters
Name |
Description |
t |
The tag type. |
io |
The IO object to use for mapping. |
I |
The FriendInfo to map. |
domCorpus |
The DomCorpus used to create |
Map a FunctionInfo to a dom::Object.
Synopsis
Declared in <mrdocs/Metadata/Info/Function.hpp>
template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
FunctionInfo const& I,
DomCorpus const* domCorpus);
Parameters
Name |
Description |
t |
The tag type. |
io |
The IO object to use for mapping. |
I |
The FunctionInfo to map. |
domCorpus |
The DomCorpus used to create |
Map a GuideInfo to a dom::Object.
Synopsis
Declared in <mrdocs/Metadata/Info/Guide.hpp>
template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
GuideInfo const& I,
DomCorpus const* domCorpus);
Parameters
Name |
Description |
t |
The tag type. |
io |
The IO object to use for mapping. |
I |
The GuideInfo to map. |
domCorpus |
The DomCorpus used to create |
Map the Javadoc
to a dom::Object
.
Synopsis
Declared in <mrdocs/Metadata/Javadoc.hpp>
template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
Javadoc const& I,
DomCorpus const* domCorpus);
Parameters
Name |
Description |
t |
The tag. |
io |
The output object. |
I |
The javadoc to map. |
domCorpus |
The DOM corpus, or nullptr. |
Map a NamespaceAliasInfo to a dom::Object.
Synopsis
Declared in <mrdocs/Metadata/Info/NamespaceAlias.hpp>
template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
NamespaceAliasInfo const& I,
DomCorpus const* domCorpus);
Parameters
Name |
Description |
t |
The tag type. |
io |
The IO object to use for mapping. |
I |
The NamespaceAliasInfo to map. |
domCorpus |
The DomCorpus used to create |
Map a NamespaceInfo to a dom::Object.
Synopsis
Declared in <mrdocs/Metadata/Info/Namespace.hpp>
template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
NamespaceInfo const& I,
DomCorpus const* domCorpus);
Parameters
Name |
Description |
t |
The tag type. |
io |
The IO object to use for mapping. |
I |
The NamespaceInfo to map. |
domCorpus |
The DomCorpus used to create |
Map a OverloadsInfo to a dom::Object.
Synopsis
Declared in <mrdocs/Metadata/Info/Overloads.hpp>
template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
OverloadsInfo const& I,
DomCorpus const* domCorpus);
Parameters
Name |
Description |
t |
The tag type. |
io |
The IO object to use for mapping. |
I |
The OverloadsInfo to map. |
domCorpus |
The DomCorpus used to create |
Map a RecordInfo to a dom::Object.
Synopsis
Declared in <mrdocs/Metadata/Info/Record.hpp>
template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
RecordInfo const& I,
DomCorpus const* domCorpus);
Parameters
Name |
Description |
t |
The tag type. |
io |
The IO object to use for mapping. |
I |
The RecordInfo to map. |
domCorpus |
The DomCorpus used to create |
Map a TypedefInfo to a dom::Object.
Synopsis
Declared in <mrdocs/Metadata/Info/Typedef.hpp>
template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
TypedefInfo const& I,
DomCorpus const* domCorpus);
Parameters
Name |
Description |
t |
The tag type. |
io |
The IO object to use for mapping. |
I |
The TypedefInfo to map. |
domCorpus |
The DomCorpus used to create |
Map a UsingInfo to a dom::Object.
Synopsis
Declared in <mrdocs/Metadata/Info/Using.hpp>
template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
UsingInfo const& I,
DomCorpus const* domCorpus);
Parameters
Name |
Description |
t |
The tag type. |
io |
The IO object to use for mapping. |
I |
The UsingInfo to map. |
domCorpus |
The DomCorpus used to create |
Map a VariableInfo to a dom::Object.
Synopsis
Declared in <mrdocs/Metadata/Info/Variable.hpp>
template<class IO>
void
tag_invoke(
dom::LazyObjectMapTag t,
IO& io,
VariableInfo const& I,
DomCorpus const* domCorpus);
Parameters
Name |
Description |
t |
The tag type. |
io |
The IO object to use for mapping. |
I |
The VariableInfo to map. |
domCorpus |
The DomCorpus used to create |
Map the Polymorphic Info to a dom::Object
.
Synopsis
Declared in <mrdocs/Metadata/Info.hpp>
template<
class IO,
polymorphic_storage_for<Info> PolymorphicInfo>
requires std::derived_from<PolymorphicInfo, Info>
void
tag_invoke(
dom::LazyObjectMapTag,
IO& io,
PolymorphicInfo const& I,
DomCorpus const* domCorpus);
Parameters
Name |
Description |
io |
The output parameter to receive the dom::Object. |
I |
The polymorphic Info to convert. |
domCorpus |
The DomCorpus used to resolve references. |
Map the Polymorphic Info as a dom::Value
object.
Synopsis
Declared in <mrdocs/Metadata/Info.hpp>
template<
class IO,
polymorphic_storage_for<Info> InfoTy>
requires std::derived_from<InfoTy, Info>
void
tag_invoke(
dom::ValueFromTag,
IO& io,
InfoTy const& I,
DomCorpus const* domCorpus);
Parameters
Name |
Description |
io |
The output parameter to receive the dom::Value. |
I |
The polymorphic Info to convert. |
domCorpus |
The DomCorpus used to resolve references. |
Convert a SymbolID to a string
Synopsis
Declared in <mrdocs/Metadata/SymbolID.hpp>
std::string
toBase16Str(SymbolID const& id);
Return Value
The base16 string representation of the SymbolID.
Parameters
Name |
Description |
id |
The SymbolID to convert. |
Synopsis
Declared in <mrdocs/Support/String.hpp>
constexpr
std::string
toCamelCase(std::string_view const input);
Synopsis
Declared in <mrdocs/Support/String.hpp>
constexpr
std::string
toKebabCase(std::string_view const input);
Synopses
Declared in <mrdocs/Support/String.hpp>
constexpr
std::string
toLowerCase(std::string_view const s) noexcept;
constexpr
char
toLowerCase(char const c) noexcept;
Synopsis
Declared in <mrdocs/Support/String.hpp>
constexpr
std::string
toLowerCase(std::string_view const s) noexcept;
Synopsis
Declared in <mrdocs/Support/String.hpp>
constexpr
char
toLowerCase(char const c) noexcept;
Synopsis
Declared in <mrdocs/Support/String.hpp>
constexpr
std::string
toPascalCase(std::string_view const input);
Synopsis
Declared in <mrdocs/Support/String.hpp>
constexpr
std::string
toSnakeCase(std::string_view const input);
toString
overloads
Synopses
Declared in <mrdocs/Metadata/Info.hpp>
dom::String
toString(AccessKind kind) noexcept;
dom::String
toString(AutoKind kind) noexcept;
dom::String
toString(ConstexprKind kind) noexcept;
dom::String
toString(ExplicitKind kind) noexcept;
Return the name of the InfoKind as a string.
constexpr
std::string_view
toString(ExtractionMode kind) noexcept;
dom::String
toString(FunctionClass kind) noexcept;
Convert a FundamentalTypeKind to a string.
std::string_view
toString(FundamentalTypeKind kind) noexcept;
Return the name of the InfoKind as a string.
dom::String
toString(InfoKind kind) noexcept;
dom::String
toString(NameKind kind) noexcept;
dom::String
toString(NoexceptKind kind) noexcept;
dom::String
toString(QualifierKind kind) noexcept;
dom::String
toString(RecordKeyKind kind) noexcept;
dom::String
toString(ReferenceKind kind) noexcept;
dom::String
toString(StorageClassKind kind) noexcept;
std::string_view
toString(TParamKeyKind kind) noexcept;
std::string_view
toString(TParamKind kind) noexcept;
std::string_view
toString(TemplateSpecKind kind);
dom::String
toString(TypeKind kind) noexcept;
Convert ExplicitInfo to a string.
dom::String
toString(
ExplicitInfo const& info,
bool resolved = false,
bool implicit = false);
Convert NoexceptInfo to a string.
dom::String
toString(
NoexceptInfo const& info,
bool resolved = false,
bool implicit = false);
Return Value
-
The string representation of the kind
-
The string representation of the explicit‐specifier.
-
The string representation of the noexcept‐specifier.
Parameters
Name |
Description |
info |
The explicit‐specifier information. |
resolved |
If true, the operand is not shown when the explicit‐specifier is non‐dependent. |
implicit |
If true, implicit explicit‐specifiers are shown. |
Synopsis
Declared in <mrdocs/Metadata/Specifiers.hpp>
dom::String
toString(AccessKind kind) noexcept;
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
dom::String
toString(AutoKind kind) noexcept;
Synopsis
Declared in <mrdocs/Metadata/Specifiers.hpp>
dom::String
toString(ConstexprKind kind) noexcept;
Synopsis
Declared in <mrdocs/Metadata/Specifiers.hpp>
dom::String
toString(ExplicitKind kind) noexcept;
Return the name of the InfoKind as a string.
Synopsis
Declared in <mrdocs/Metadata/ExtractionMode.hpp>
constexpr
std::string_view
toString(ExtractionMode kind) noexcept;
Return Value
the name of the InfoKind as a string.
Parameters
Name |
Description |
kind |
Determine why a symbol is extracted |
Synopsis
Declared in <mrdocs/Metadata/Source.hpp>
std::string_view
toString(FileKind kind);
Synopsis
Declared in <mrdocs/Metadata/Info/Function.hpp>
dom::String
toString(FunctionClass kind) noexcept;
Convert a FundamentalTypeKind to a string.
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
std::string_view
toString(FundamentalTypeKind kind) noexcept;
Description
This function converts a FundamentalTypeKind to the shortest canonical string representing the type.
Return Value
The string representation of the kind
Parameters
Name |
Description |
kind |
Categorically describes a fundamental type. |
Return the name of the InfoKind as a string.
Synopsis
Declared in <mrdocs/Metadata/Info.hpp>
dom::String
toString(InfoKind kind) noexcept;
Return Value
the name of the InfoKind as a string.
Parameters
Name |
Description |
kind |
Info variant discriminator |
Synopsis
Declared in <mrdocs/Metadata/Name.hpp>
dom::String
toString(NameKind kind) noexcept;
Synopsis
Declared in <mrdocs/Metadata/Specifiers.hpp>
dom::String
toString(NoexceptKind kind) noexcept;
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
dom::String
toString(QualifierKind kind) noexcept;
Synopsis
Declared in <mrdocs/Metadata/Info/Record.hpp>
dom::String
toString(RecordKeyKind kind) noexcept;
Synopsis
Declared in <mrdocs/Metadata/Specifiers.hpp>
dom::String
toString(ReferenceKind kind) noexcept;
Synopsis
Declared in <mrdocs/Metadata/Specifiers.hpp>
dom::String
toString(StorageClassKind kind) noexcept;
Synopsis
Declared in <mrdocs/Metadata/Template.hpp>
std::string_view
toString(TArgKind kind) noexcept;
Synopsis
Declared in <mrdocs/Metadata/Template.hpp>
std::string_view
toString(TParamKeyKind kind) noexcept;
Synopsis
Declared in <mrdocs/Metadata/Template.hpp>
std::string_view
toString(TParamKind kind) noexcept;
Synopsis
Declared in <mrdocs/Metadata/Template.hpp>
std::string_view
toString(TemplateSpecKind kind);
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
dom::String
toString(TypeKind kind) noexcept;
Synopsis
Declared in <mrdocs/Metadata/Name.hpp>
std::string
toString(NameInfo const& N);
Synopsis
Declared in <mrdocs/Metadata/Template.hpp>
std::string
toString(TArg const& arg) noexcept;
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
std::string
toString(
TypeInfo const& T,
std::string_view Name = "");
Convert ExplicitInfo to a string.
Synopsis
Declared in <mrdocs/Metadata/Specifiers.hpp>
dom::String
toString(
ExplicitInfo const& info,
bool resolved = false,
bool implicit = false);
Return Value
The string representation of the explicit‐specifier.
Parameters
Name |
Description |
info |
The explicit‐specifier information. |
resolved |
If true, the operand is not shown when the explicit‐specifier is non‐dependent. |
implicit |
If true, implicit explicit‐specifiers are shown. |
Convert NoexceptInfo to a string.
Synopsis
Declared in <mrdocs/Metadata/Specifiers.hpp>
dom::String
toString(
NoexceptInfo const& info,
bool resolved = false,
bool implicit = false);
Return Value
The string representation of the noexcept‐specifier.
Parameters
Name |
Description |
info |
The noexcept‐specifier information. |
resolved |
If true, the operand is not shown when the exception specification is non‐dependent. |
implicit |
If true, implicit exception specifications are shown. |
Synopses
Declared in <mrdocs/Support/String.hpp>
constexpr
std::string
toUpperCase(std::string_view const s) noexcept;
constexpr
char
toUpperCase(char const c) noexcept;
Synopsis
Declared in <mrdocs/Support/String.hpp>
constexpr
std::string
toUpperCase(std::string_view const s) noexcept;
Synopsis
Declared in <mrdocs/Support/String.hpp>
constexpr
char
toUpperCase(char const c) noexcept;
Return the value as its underlying type.
Synopsis
Declared in <mrdocs/Support/TypeTraits.hpp>
template<class Enum>
requires std::is_enum_v<Enum>
constexpr
std::underlying_type_t<Enum>
to_underlying(Enum value) noexcept;
Return Value
the value as its underlying type.
Parameters
Name |
Description |
value |
The enum value to convert |
trim
overloads
Synopses
Declared in <mrdocs/Support/String.hpp>
Return the substring without leading and trailing horizontal whitespace.
constexpr
std::string_view
trim(std::string_view const s) noexcept;
Return the substring without leading and trailing specified characters.
constexpr
std::string_view
trim(
std::string_view const s,
std::string_view const chars) noexcept;
Return Value
The modified string.
Parameters
Name |
Description |
s |
The string to trim. |
chars |
The characters to remove. |
Return the substring without leading and trailing horizontal whitespace.
Synopsis
Declared in <mrdocs/Support/String.hpp>
constexpr
std::string_view
trim(std::string_view const s) noexcept;
Return Value
The modified string.
Parameters
Name |
Description |
s |
The string to trim. |
Return the substring without leading and trailing specified characters.
Synopsis
Declared in <mrdocs/Support/String.hpp>
constexpr
std::string_view
trim(
std::string_view const s,
std::string_view const chars) noexcept;
Return Value
The modified string.
Parameters
Name |
Description |
s |
The string to trim. |
chars |
The characters to remove. |
Invoke a function object with a type derived from Info
Synopses
Declared in <mrdocs/Metadata/Info.hpp>
Invoke a function object with a type derived from Info
template<
std::derived_from<NameInfo> InfoTy,
class Fn,
class... Args>
constexpr
decltype(auto)
visit(
InfoTy& info,
Fn&& fn,
Args...&&... args);
template<
typename TParamTy,
typename F,
typename... Args>
requires std::derived_from<TParamTy, TParam>
constexpr
decltype(auto)
visit(
TParamTy& P,
F&& f,
Args...&&... args);
Return Value
The result of calling the function object with the derived type
Parameters
Name |
Description |
info |
The Info object to visit |
fn |
The function object to call |
args |
Additional arguments to pass to the function object |
Invoke a function object with a type derived from Info
Synopsis
Declared in <mrdocs/Metadata/Info.hpp>
template<
std::derived_from<NameInfo> InfoTy,
class Fn,
class... Args>
constexpr
decltype(auto)
visit(
InfoTy& info,
Fn&& fn,
Args...&&... args);
Description
This function will invoke the function object fn
with a type derived from Info
as the first argument, followed by args...
. The type of the first argument is determined by the InfoKind
of the Info
object.
Return Value
The result of calling the function object with the derived type
Parameters
Name |
Description |
info |
The Info object to visit |
fn |
The function object to call |
args |
Additional arguments to pass to the function object |
Synopsis
Declared in <mrdocs/Metadata/Template.hpp>
template<
typename TParamTy,
typename F,
typename... Args>
requires std::derived_from<TParamTy, TParam>
constexpr
decltype(auto)
visit(
TParamTy& P,
F&& f,
Args...&&... args);
Write to output
Synopses
Declared in <mrdocs/Support/Handlebars.hpp>
Write to output
template<class T>
requires std::formattable<T, char>
OutputRef&
operator<<(
OutputRef& os,
T v);
Write to output
OutputRef&
operator<<(
OutputRef& os,
char const* c);
Write to output
OutputRef&
operator<<(
OutputRef& os,
char c);
Write to output
OutputRef&
operator<<(
OutputRef& os,
std::string_view sv);
Return Value
A reference to this object
Parameters
Name |
Description |
os |
The output stream reference |
v |
The character to write |
c |
The string to write |
sv |
The string to write |
Write to output
Synopsis
Return Value
A reference to this object
Parameters
Name |
Description |
os |
The output stream reference |
v |
The character to write |
Write to output
Synopsis
Return Value
A reference to this object
Parameters
Name |
Description |
os |
The output stream reference |
c |
The string to write |
Write to output
Synopsis
Return Value
A reference to this object
Parameters
Name |
Description |
os |
The output stream reference |
c |
The character to write |
Write to output
Synopsis
Return Value
A reference to this object
Parameters
Name |
Description |
os |
The output stream reference |
sv |
The string to write |
Equality operators
Synopses
Declared in <mrdocs/ADT/Polymorphic.hpp>
Equality operator
template<class Base>
requires detail::CanVisitCompare<Base>
bool
operator==(
Polymorphic<Base> const& lhs,
Polymorphic<Base> const& rhs);
Equality operator
template<class Er>
[[nodiscard]]
constexpr
bool
operator==(
Unexpected const& x,
Unexpected<Er> const& y);
Equality operator
template<class E2>
constexpr
bool
operator==(
Expected const& x,
Unexpected<E2> const& e) noexcept(noexcept(bool(x.error() == e.error())));
Equality operator
template<class U>
constexpr
bool
operator==(
Expected const& x,
U const& v) noexcept(noexcept(bool(*x == v)));
Equality operator
template<
class U,
class E2>
requires (!std::is_void_v<U>)
constexpr
bool
operator==(
Expected const& x,
Expected<U, E2> const& y) noexcept(noexcept(bool(*x == *y)) && noexcept(bool(x.error() == y.error())));
Equality operator
template<
class U,
class E2>
requires std::is_void_v<U>
constexpr
bool
operator==(
Expected const& x,
Expected<U, E2> const& y) noexcept(noexcept(bool(x.error() == y.error())));
Equality operator
bool
operator==(
Polymorphic<TypeInfo> const& lhs,
Polymorphic<TypeInfo> const& rhs);
Equality operator
bool
operator==(
Polymorphic<TParam> const& lhs,
Polymorphic<TParam> const& rhs);
Equality operator
bool
operator==(
std::optional<TemplateInfo> const& lhs,
std::optional<TemplateInfo> const& rhs);
Equality operator
bool
operator==(
Polymorphic<NameInfo> const& lhs,
Polymorphic<NameInfo> const& rhs);
Equality operator
constexpr
bool
operator==(
ParseResult const& lhs,
ParseResult const& rhs) = default;
Equality operator
Synopsis
Declared in <mrdocs/ADT/Polymorphic.hpp>
template<class Base>
requires detail::CanVisitCompare<Base>
bool
operator==(
Polymorphic<Base> const& lhs,
Polymorphic<Base> const& rhs);
Return Value
true
if the objects are equal, false
otherwise
Parameters
Name |
Description |
lhs |
The left operand |
rhs |
The right operand |
Equality operator
Synopsis
Declared in <mrdocs/Support/Expected.hpp>
template<class Er>
[[nodiscard]]
constexpr
bool
operator==(
Unexpected const& x,
Unexpected<Er> const& y);
Return Value
true
if the objects are equal, false
otherwise
Parameters
Name |
Description |
x |
The left operand |
y |
The right operand |
Equality operator
Synopsis
Declared in <mrdocs/Support/Expected.hpp>
template<class E2>
constexpr
bool
operator==(
Expected const& x,
Unexpected<E2> const& e) noexcept(noexcept(bool(x.error() == e.error())));
Return Value
true
if the objects are equal, false
otherwise
Parameters
Name |
Description |
x |
The left operand |
e |
The right operand |
Equality operator
Synopsis
Declared in <mrdocs/Support/Expected.hpp>
template<class U>
constexpr
bool
operator==(
Expected const& x,
U const& v) noexcept(noexcept(bool(*x == v)));
Return Value
true
if the objects are equal, false
otherwise
Parameters
Name |
Description |
x |
The left operand |
v |
The right operand |
Equality operator
Synopsis
Declared in <mrdocs/Support/Expected.hpp>
template<
class U,
class E2>
requires (!std::is_void_v<U>)
constexpr
bool
operator==(
Expected const& x,
Expected<U, E2> const& y) noexcept(noexcept(bool(*x == *y)) && noexcept(bool(x.error() == y.error())));
Return Value
true
if the objects are equal, false
otherwise
Parameters
Name |
Description |
x |
The left operand |
y |
The right operand |
Equality operator
Synopsis
Declared in <mrdocs/Support/Expected.hpp>
template<
class U,
class E2>
requires std::is_void_v<U>
constexpr
bool
operator==(
Expected const& x,
Expected<U, E2> const& y) noexcept(noexcept(bool(x.error() == y.error())));
Return Value
true
if the objects are equal, false
otherwise
Parameters
Name |
Description |
x |
The left operand |
y |
The right operand |
Equality operator
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
bool
operator==(
Polymorphic<TypeInfo> const& lhs,
Polymorphic<TypeInfo> const& rhs);
Return Value
true
if the objects are equal, false
otherwise
Parameters
Name |
Description |
lhs |
The left operand |
rhs |
The right operand |
Equality operator
Synopsis
Declared in <mrdocs/Metadata/Template.hpp>
bool
operator==(
Polymorphic<TParam> const& lhs,
Polymorphic<TParam> const& rhs);
Return Value
true
if the objects are equal, false
otherwise
Parameters
Name |
Description |
lhs |
The left operand |
rhs |
The right operand |
Equality operator
Synopsis
Declared in <mrdocs/Metadata/Template.hpp>
bool
operator==(
std::optional<TemplateInfo> const& lhs,
std::optional<TemplateInfo> const& rhs);
Return Value
true
if the objects are equal, false
otherwise
Parameters
Name |
Description |
lhs |
The left operand |
rhs |
The right operand |
Equality operator
Synopsis
Declared in <mrdocs/Metadata/Name.hpp>
bool
operator==(
Polymorphic<NameInfo> const& lhs,
Polymorphic<NameInfo> const& rhs);
Return Value
true
if the objects are equal, false
otherwise
Parameters
Name |
Description |
lhs |
The left operand |
rhs |
The right operand |
Equality operator
Synopsis
Declared in <mrdocs/Support/Parse.hpp>
constexpr
bool
operator==(
ParseResult const& lhs,
ParseResult const& rhs) = default;
Return Value
true
if the objects are equal, false
otherwise
Parameters
Name |
Description |
lhs |
The left operand |
rhs |
The right operand |
Three‐way comparison operators
Synopses
Declared in <mrdocs/Metadata/Name.hpp>
Three‐way comparison operator
template<class Base>
requires detail::CanVisitCompare<Base>
auto
operator<=>(
Polymorphic<Base> const& lhs,
Polymorphic<Base> const& rhs);
Three‐way comparison operator
std::strong_ordering
operator<=>(
Polymorphic<NameInfo> const& lhs,
Polymorphic<NameInfo> const& rhs);
Three‐way comparison operator
std::strong_ordering
operator<=>(
Polymorphic<TypeInfo> const& lhs,
Polymorphic<TypeInfo> const& rhs);
Three‐way comparison operator
std::strong_ordering
operator<=>(
Polymorphic<TArg> const& lhs,
Polymorphic<TArg> const& rhs);
Three‐way comparison operator
std::strong_ordering
operator<=>(
Polymorphic<TParam> const& lhs,
Polymorphic<TParam> const& rhs);
Three‐way comparison operator
auto
operator<=>(
std::optional<TemplateInfo> const& lhs,
std::optional<TemplateInfo> const& rhs);
Three‐way comparison operator
Synopsis
Declared in <mrdocs/ADT/Polymorphic.hpp>
template<class Base>
requires detail::CanVisitCompare<Base>
auto
operator<=>(
Polymorphic<Base> const& lhs,
Polymorphic<Base> const& rhs);
Return Value
The relative order of the objects
Parameters
Name |
Description |
lhs |
The left operand |
rhs |
The right operand |
Three‐way comparison operator
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
std::strong_ordering
operator<=>(
Polymorphic<NameInfo> const& lhs,
Polymorphic<NameInfo> const& rhs);
Return Value
The relative order of the objects
Parameters
Name |
Description |
lhs |
The left operand |
rhs |
The right operand |
Three‐way comparison operator
Synopsis
Declared in <mrdocs/Metadata/Type.hpp>
std::strong_ordering
operator<=>(
Polymorphic<TypeInfo> const& lhs,
Polymorphic<TypeInfo> const& rhs);
Return Value
The relative order of the objects
Parameters
Name |
Description |
lhs |
The left operand |
rhs |
The right operand |
Three‐way comparison operator
Synopsis
Declared in <mrdocs/Metadata/Template.hpp>
std::strong_ordering
operator<=>(
Polymorphic<TArg> const& lhs,
Polymorphic<TArg> const& rhs);
Return Value
The relative order of the objects
Parameters
Name |
Description |
lhs |
The left operand |
rhs |
The right operand |
Three‐way comparison operator
Synopsis
Declared in <mrdocs/Metadata/Template.hpp>
std::strong_ordering
operator<=>(
Polymorphic<TParam> const& lhs,
Polymorphic<TParam> const& rhs);
Return Value
The relative order of the objects
Parameters
Name |
Description |
lhs |
The left operand |
rhs |
The right operand |
Three‐way comparison operator
Synopsis
Declared in <mrdocs/Metadata/Template.hpp>
auto
operator<=>(
std::optional<TemplateInfo> const& lhs,
std::optional<TemplateInfo> const& rhs);
Return Value
The relative order of the objects
Parameters
Name |
Description |
lhs |
The left operand |
rhs |
The right operand |
Synopsis
Declared in <mrdocs/Support/Expected.hpp>
inline constexpr unexpect_t unexpect = unexpect{};
Concept to determine if there's a parse function for a type.
Synopsis
Declared in <mrdocs/Support/Parse.hpp>
template<class T>
concept HasParse = requires(
char const* first,
char const* last,
T& value)
{
{ parse(first, last, value) } ‐> std::same_as<ParseResult>;
};
Description
This concept checks if a type T
has a parse function with the signature:
ParseResult
parse(
char const* first,
char const* last,
T& value);
A concept for types that have Info
members.
Synopsis
Declared in <mrdocs/Metadata/Info.hpp>
template<class InfoTy>
concept InfoParent = requires(InfoTy const& I)
{
{ allMembers(I) } ‐> range_of<SymbolID>;
};
Description
In most cases T
is another Info
type that has a Members
member which is a range of SymbolID
values.
Determine if a type is dereferenceable
Synopsis
Declared in <mrdocs/Support/Concepts.hpp>
template<class T>
concept dereferenceable = requires(T const& t)
{
{ static_cast<bool>(t) };
{ *t };
};
Description
This concept checks if a type can be dereferenced to a value it represents and converted to a boolean value that represents if the object is in a valid state.
Examples of such types are std::optional, std::unique_ptr, std::shared_ptr, Polymorphic, pointers, etc.
Concept to check if a type is pair‐like
Synopsis
Declared in <mrdocs/Support/Concepts.hpp>
template<class T>
concept pair_like = tuple_like<T> &&
(std::tuple_size<std::remove_cvref_t<T>>::value == 2);
Description
This concept checks if a type is tuple‐like and has exactly two elements.
Examples of such types are std::pair, std::array with two elements, and user‐defined types that provide specializations for std::tuple_size and std::tuple_element with exactly two elements.
Concept to check if a type is representing a polymorphic storage
Synopsis
Declared in <mrdocs/Support/Concepts.hpp>
template<
class T,
class Base>
concept polymorphic_storage_for = requires(T const& t)
{
{ *t } ‐> std::convertible_to<Base const&>;
{ t.operator‐>() } ‐> std::convertible_to<Base const*>;
};
Description
This concept checks if a type is used to store derived objects of a base class.
Examples of such types are std::unique_ptr, std::shared_ptr, Polymorphic, etc.
The get()
function might not always be available, but operator and `operator‐>
should be available and return a reference to the Base class.
Concept to check if a type is a range of T
Synopsis
Declared in <mrdocs/Support/Concepts.hpp>
template<
class Range,
class T>
concept range_of = std::ranges::range<Range> && std::same_as<std::ranges::range_value_t<Range>, T>;
Concept to check if a range is a range of tuple‐like elements
Synopsis
Declared in <mrdocs/Support/Concepts.hpp>
template<class Range>
concept range_of_tuple_like = std::ranges::range<Range> && tuple_like<std::ranges::range_value_t<Range>>;
Description
This concept checks if a type is a range and all its elements are tuple‐like.
Examples of such types are std::vector<std::tuple<...>>, std::list<std::pair<...>>, and user‐defined types that provide specializations for std::tuple_size and std::tuple_element for their element type.
Concept to check if a type is tuple‐like
Synopsis
Declared in <mrdocs/Support/Concepts.hpp>
template<class T>
concept tuple_like = detail::has_tuple_size<T>::value &&
detail::all_tuple_elements<T>::value;
Description
This concept checks if a type has a specialization of std::tuple_size and std::tuple_element for all elements in the range [0, N), where N is the value of std::tuple_size.
Examples of such types are std::tuple, std::pair, std::array, and user‐defined types that provide specializations for std::tuple_size and std::tuple_element.
Synopsis
Declared in <mrdocs/Support/RangeFor.hpp>
template<class Container>
RangeFor<Container>(Container const&) → RangeFor<Container>;
Synopsis
Declared in <mrdocs/Support/ScopeExit.hpp>
template<class F>
ScopeExit<F>(F) → ScopeExit<F>;
Synopsis
Declared in <mrdocs/Support/ScopeExit.hpp>
template<class T>
ScopeExitRestore<T>(T&) → ScopeExitRestore<T>;
Synopsis
Declared in <mrdocs/Support/ScopeExit.hpp>
template<
class T,
std::convertible_to<T> T2>
ScopeExitRestore<T>(
T&,
T2) → ScopeExitRestore<T>;
Synopsis
Declared in <mrdocs/Support/Expected.hpp>
template<class E>
Unexpected<E>(E) → Unexpected<E>;
Synopsis
Declared in <mrdocs/Support/source_location.hpp>
using std::source_location;
Created with MrDocs