[#mrdocs-DocComment]
= xref:mrdocs.adoc[mrdocs]::DocComment
:relfileprefix: ../
:mrdocs:

A processed documentation comment attached to a declaration&period;

== Synopsis

Declared in `&lt;mrdocs&sol;Metadata&sol;DocComment&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
struct DocComment;
----

== Description

A complete documentation comment document consists of a sequence of text blocks&period; Blocks are the top&hyphen;level structural units that might contain other blocks or inline elements&period; These are analogous to markdown blocks&period;

Inline elements (text, emphasis, links, code spans, etc&period;) live inside certain block types, like paragraphs or headings&period; Inlines can contain other inlines (e&period;g&period;, emphasis contains text, link contains text), but they cannot directly contain blocks&period;

Some blocks contain metadata about the symbol being documented, such as parameters and return values&period; These blocks are parsed as usual, but are stored separately in the DocComment structure&period;

Each block in the document might contain&colon;

* No other blocks (leaf blocks)
* Other blocks (container blocks&colon; e&period;g&period; lists)

When they contain no other blocks, they might be&colon;

* Inlines only (e&period;g&period; paragraphs)
* No inlines (e&period;g&period; horizontal rule)

Inline content elements contain other inlines but cannot contain blocks&period;

== Member Functions

[cols="1,4"]
|===
| Name| Description
| xref:mrdocs/DocComment/2constructor-07.adoc[`DocComment`]         [.small]#[constructor]#
| Constructors
| xref:mrdocs/DocComment/append.adoc[`append`] 
| Append blocks from another DocComment to this&period;
| xref:mrdocs/DocComment/empty.adoc[`empty`] 
| Return true if this is empty
| xref:mrdocs/DocComment/operator_eq.adoc[`operator&equals;&equals;`] 
| Equality compares all stored blocks&period;
| xref:mrdocs/DocComment/operator_not_eq.adoc[`operator!&equals;`] 
| Inequality is the negation of equality&period;
| xref:mrdocs/DocComment/operator_3way.adoc[`operator&lt;&equals;&gt;`] 
| Three&hyphen;way comparison on the rendered block sequence&period;
|===


== Data Members

[cols="1,4"]
|===
| Name| Description
| xref:mrdocs/DocComment/Document.adoc[`Document`] 
| The list of text blocks&period;
| xref:mrdocs/DocComment/IsFunctionObject.adoc[`IsFunctionObject`] 
| True if the
| xref:mrdocs/DocComment/IsSeeBelow.adoc[`IsSeeBelow`] 
| True if the
| xref:mrdocs/DocComment/brief.adoc[`brief`] 
| A brief description of the symbol&period;
| xref:mrdocs/DocComment/exceptions.adoc[`exceptions`] 
| The list of exceptions&period;
| xref:mrdocs/DocComment/params.adoc[`params`] 
| The list of parameters&period;
| xref:mrdocs/DocComment/postconditions.adoc[`postconditions`] 
| The list of postconditions&period;
| xref:mrdocs/DocComment/preconditions.adoc[`preconditions`] 
| The list of preconditions&period;
| xref:mrdocs/DocComment/related.adoc[`related`] 
| The list of &quot;related&quot; references&period;
| xref:mrdocs/DocComment/relates.adoc[`relates`] 
| The list of &quot;relates&quot; references&period;
| xref:mrdocs/DocComment/returns.adoc[`returns`] 
| The list of return type descriptions&period;
| xref:mrdocs/DocComment/sees.adoc[`sees`] 
| The list of &quot;see also&quot; references&period;
| xref:mrdocs/DocComment/tparams.adoc[`tparams`] 
| The list of template parameters&period;
|===


== Non-Member Functions

[cols="1,4"]
|===
| Name| Description
| xref:mrdocs/merge-0b.adoc[`merge`]
| Append blocks from `other` into `I`, preserving order&period;
|===


[.small]#Created with https://www.mrdocs.com[MrDocs]#
