[#mp_units-relative_standard_uncertainty]
= xref:mp_units.adoc[mp&lowbar;units]::relative&lowbar;standard&lowbar;uncertainty
:relfileprefix: ../
:mrdocs:

Relative standard uncertainty of a measured constant

== Synopsis

Declared in `&lt;mp&hyphen;units&sol;framework&sol;unit&lowbar;definitions&period;h&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;xref:mp_units/UnitMagnitude.adoc[UnitMagnitude] M&gt;
struct relative&lowbar;standard&lowbar;uncertainty;
----

== Description

Wraps the relative standard uncertainty (GUM&sol;CODATA `u&lowbar;r`) of a measured constant as an exact symbolic magnitude so that no representation type is imposed at the definition point&period; It is metadata only &hyphen; it never participates in unit equality, conversion factors, or symbolic simplification&period;

A measured constant declares exactly one of `relative&lowbar;standard&lowbar;uncertainty` and `standard&lowbar;uncertainty` &hyphen; whichever form its source publishes&period; The published pair is mutually rounded, so carrying both would embed a contradiction&period; This form is invariant under a change of unit, so it is the right choice for a constant whose defining unit has no published absolute uncertainty&period;

For example&colon;

[,cpp]
----
{.cpp}
 inline constexpr struct newtonian_constant_of_gravitation final :
     named_constant<"G", mag_ratio<667'430, 100'000> * mag_power<10, -11> * m3 / kg / s2,
                    relative_standard_uncertainty{mag_ratio<22, 10> * mag_power<10, -5>}> {}
 newtonian_constant_of_gravitation;
----
== Data Members

[cols="1"]
|===
| Name
| xref:mp_units/relative_standard_uncertainty/magnitude.adoc[`magnitude`] 
|===


== Template Parameters

[cols="1,4"]
|===
| Name| Description
| *M*
| an exact magnitude representing the relative standard uncertainty
|===


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