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

A unique identifier for a symbol&period;

== Synopsis

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

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
class SymbolID;
----

== Description

This is calculated as the SHA1 digest of the USR&period; A USRs is a string that provides an unambiguous reference to a symbol&period;

== Type Aliases

[cols="1,4"]
|===
| Name| Description
| xref:mrdocs/SymbolID/value_type.adoc[`value&lowbar;type`] 
| Underlying byte storage&period;
|===


== Member Functions

[cols="1,4"]
|===
| Name| Description
| xref:mrdocs/SymbolID/2constructor-0b.adoc[`SymbolID`]         [.small]#[constructor]#
| Constructors
| xref:mrdocs/SymbolID/begin.adoc[`begin`] 
| Return an iterator to the first byte of the SymbolID&period;
| xref:mrdocs/SymbolID/data.adoc[`data`] 
| Return the raw data for this SymbolID&period;
| xref:mrdocs/SymbolID/end.adoc[`end`] 
| Return an iterator to one past the last byte of the SymbolID&period;
| xref:mrdocs/SymbolID/size.adoc[`size`] 
| Return the size of the SymbolID&period;
| xref:mrdocs/SymbolID/2conversion-0e.adoc[`operator std::string&lowbar;view`] 
| Return a string view of the SymbolID&period;
| xref:mrdocs/SymbolID/2conversion-0a.adoc[`operator bool`] 
| Return true if this is a valid SymbolID&period;
| xref:mrdocs/SymbolID/operator_eq.adoc[`operator&equals;&equals;`] 
| Compare two SymbolIDs for equality&period;
| xref:mrdocs/SymbolID/operator_3way.adoc[`operator&lt;&equals;&gt;`] 
| Compare two SymbolIDs with strong ordering&period;
|===


== Static Member Functions

[cols="1,4"]
|===
| Name| Description
| xref:mrdocs/SymbolID/createFromString.adoc[`createFromString`] 
| Construct a SymbolID by hashing a string
|===


== Static Data Members

[cols="1,4"]
|===
| Name| Description
| xref:mrdocs/SymbolID/global.adoc[`global`] 
| Sentinel ID representing the global namespace&period;
| xref:mrdocs/SymbolID/invalid.adoc[`invalid`] 
| Sentinel ID used to represent “no symbol&period;”
|===


== Non-Member Functions

[cols="1,4"]
|===
| Name| Description
| xref:mrdocs/getParents-04.adoc[`getParents`]
| Return a list of the parent symbols of the specified Symbol&period;
| xref:mrdocs/toBase16Str.adoc[`toBase16Str`]
| Convert a SymbolID to a string
|===


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