2025-01-15 15:39:26 +00:00
<!DOCTYPE html> < html lang = 'en' >< head >< title > [qty.dim]</ title >< meta charset = 'UTF-8' />< link rel = 'stylesheet' type = 'text/css' href = '14882.css' />< link rel = 'stylesheet' type = 'text/css' href = 'https://fonts.googleapis.com/css2?family=Noto+Serif' />< link rel = 'stylesheet' type = 'text/css' href = 'https://fonts.googleapis.com/css2?family=Noto+Sans' />< link rel = 'stylesheet' type = 'text/css' href = 'https://fonts.googleapis.com/css2?family=Noto+Sans+Mono' />< link rel = 'icon' href = 'icon.png' />< link rel = 'stylesheet' type = 'text/css' href = 'expanded.css' title = 'Normal' />< link rel = 'alternate stylesheet' type = 'text/css' href = 'colored.css' title = 'Notes and examples colored' />< link rel = 'alternate stylesheet' type = 'text/css' href = 'normative-only.css' title = 'Notes and examples hidden' /></ head >< body >< div class = 'wrapper' >< h1 >< a class = 'secnum' style = 'min-width:50pt' > 5</ a > Quantities and units library < a class = 'abbr_ref' href = 'index.html#quantities' > [quantities]</ a ></ h1 >< h2 >< a class = 'secnum' style = 'min-width:65pt' > 5.4</ a > Reference < a class = 'abbr_ref' href = 'qty.ref.html#qty.dim' > [qty.ref]</ a ></ h2 >< h3 >< a class = 'secnum' style = 'min-width:80pt' > 5.4.2</ a > Dimension < a class = 'abbr_ref' > [qty.dim]</ a ></ h3 >< div id = 'general' class = 'section' >< h4 >< a class = 'secnum' href = '#general' style = 'min-width:95pt' > 5.4.2.1</ a > General < a class = 'abbr_ref' href = 'qty.dim.general.html' > [qty.dim.general]</ a ></ h4 >< div class = 'para' id = 'general-1' >< div class = 'marginalizedparent' >< a class = 'marginalized' href = '#general-1' > 1</ a ></ div >< div class = 'sourceLinkParent' >< a class = 'sourceLink' href = 'https://github.com/mpusz/mp-units329ffdaacb1bd7bed08565ac80d9eef7ccb1e5b5/source/quantities.tex#L1344' > #</ a ></ div >< div class = 'texpara' >< div id = 'general-1.sentence-1' class = 'sentence' > Subclause [qty.< span class = 'shy' ></ span > dim] specifies the components
2024-12-08 08:57:12 +00:00
for defining the dimension of a quantity (< a href = "https://www.electropedia.org/iev/iev.nsf/display?openform&ievref=112-01-11" > IEC 60050, 112-01-11</ a > )< a class = 'hidden_link' href = '#general-1.sentence-1' > .</ a ></ div ></ div ></ div ></ div >< div id = 'concepts' class = 'section' >< h4 >< a class = 'secnum' href = '#concepts' style = 'min-width:95pt' > 5.4.2.2</ a > Concepts < a class = 'abbr_ref' href = 'qty.dim.concepts.html' > [qty.dim.concepts]</ a ></ h4 >< div class = 'texpara' >< div class = 'itemdecl' id = 'concepts-itemdecl:1' >< div class = 'marginalizedparent' >< a class = 'itemDeclLink' href = '#concepts-itemdecl:1' > 🔗</ a ></ div >< code class = 'itemdeclcode' >< span class = 'keyword' > template</ span >< span class = 'anglebracket' > < </ span >< span class = 'keyword' > typename</ span > T< span class = 'anglebracket' > > </ span >
< span class = 'keyword' > concept</ span > < a class = 'hidden_link' href = '#concept:Dimension' title = '5.4.2.2 Concepts [qty.dim.concepts]' >< span id = 'concept:Dimension' >< span id = 'lib:Dimension' >< span class = 'texttt' > Dimension</ span ></ span ></ span ></ a > < span class = 'operator' > =</ span > < a class = 'index' id = 'conceptref:SymbolicConstant' ></ a >< span class = 'texttt' >< i > SymbolicConstant</ i ></ span >< span class = 'anglebracket' > < </ span > T< span class = 'anglebracket' > > </ span > < span class = 'operator' > & </ span >< span class = 'operator' > & </ span > std< span class = 'operator' > ::</ span > derived_from< span class = 'anglebracket' > < </ span > T, < span class = 'texttt' >< i > dimension-interface</ i ></ span >< span class = 'anglebracket' > > </ span > ;
< span class = 'keyword' > template</ span >< span class = 'anglebracket' > < </ span >< span class = 'keyword' > typename</ span > T< span class = 'anglebracket' > > </ span >
< span class = 'keyword' > concept</ span > < span class = 'texttt' >< i > BaseDimension</ i ></ span >< a class = 'index' id = 'concept:BaseDimension' ></ a > < span class = 'operator' > =</ span > < span class = 'comment' > // < i > exposition only</ i ></ span >
< a href = '#concept:Dimension' title = '5.4.2.2 Concepts [qty.dim.concepts]' >< span id = 'conceptref:Dimension' >< span class = 'texttt' > Dimension</ span ></ span ></ a >< span class = 'anglebracket' > < </ span > T< span class = 'anglebracket' > > </ span > < span class = 'operator' > & </ span >< span class = 'operator' > & </ span > < span class = 'parenthesis' > (</ span >< span class = 'texttt' >< i > is-derived-from-specialization-of</ i ></ span >< span class = 'anglebracket' > < </ span > T, base_dimension< span class = 'anglebracket' > > </ span >< span class = 'parenthesis' > (</ span >< span class = 'parenthesis' > )</ span >< span class = 'parenthesis' > )</ span > ;
< span class = 'keyword' > template</ span >< span class = 'anglebracket' > < </ span >< span class = 'keyword' > typename</ span > T, < span class = 'keyword' > auto</ span > D< span class = 'anglebracket' > > </ span >
< span class = 'keyword' > concept</ span > < a class = 'hidden_link' href = '#concept:DimensionOf' title = '5.4.2.2 Concepts [qty.dim.concepts]' >< span id = 'concept:DimensionOf' >< span id = 'lib:DimensionOf' >< span class = 'texttt' > DimensionOf</ span ></ span ></ span ></ a > < span class = 'operator' > =</ span > < a href = '#concept:Dimension' title = '5.4.2.2 Concepts [qty.dim.concepts]' >< span id = 'conceptref:Dimension_' >< span class = 'texttt' > Dimension</ span ></ span ></ a >< span class = 'anglebracket' > < </ span > T< span class = 'anglebracket' > > </ span > < span class = 'operator' > & </ span >< span class = 'operator' > & </ span > < a href = '#concept:Dimension' title = '5.4.2.2 Concepts [qty.dim.concepts]' >< span id = 'conceptref:Dimension__' >< span class = 'texttt' > Dimension</ span ></ span ></ a >< span class = 'anglebracket' > < </ span >< span class = 'keyword' > decltype</ span >< span class = 'parenthesis' > (</ span > D< span class = 'parenthesis' > )</ span >< span class = 'anglebracket' > > </ span > < span class = 'operator' > & </ span >< span class = 'operator' > & </ span > < span class = 'parenthesis' > (</ span > T< span class = 'curlybracket' > {</ span >< span class = 'curlybracket' > }</ span > < span class = 'operator' > =</ span >< span class = 'operator' > =</ span > D< span class = 'parenthesis' > )</ span > ;
</ code ></ div ></ div ></ div >< div id = 'types' class = 'section' >< h4 >< a class = 'secnum' href = '#types' style = 'min-width:95pt' > 5.4.2.3</ a > Types < a class = 'abbr_ref' href = 'qty.dim.types.html' > [qty.dim.types]</ a ></ h4 >< div class = 'texpara' >< span class = 'codeblock' >< span class = 'keyword' > namespace</ span > mp_units < span class = 'curlybracket' > {</ span >
< span class = 'keyword' > template</ span >< span class = 'anglebracket' > < </ span > symbol_text Symbol< span class = 'anglebracket' > > </ span >
< span class = 'keyword' > struct</ span > < span id = 'lib:base_dimension' >< a class = 'hidden_link' href = '#lib:base_dimension' title = '5.4.2.3 Types [qty.dim.types]' > base_dimension</ a ></ span > < span class = 'operator' > :</ span > < i > dimension-interface</ i > < span class = 'curlybracket' > {</ span >
< span class = 'keyword' > static</ span > < span class = 'keyword' > constexpr</ span > < span class = 'keyword' > auto</ span > < i > symbol</ i > < span class = 'operator' > =</ span > Symbol; < span class = 'comment' > // < i > exposition only</ i ></ span >
< span class = 'curlybracket' > }</ span > ;
< span class = 'curlybracket' > }</ span >
2025-01-15 15:39:26 +00:00
</ span ></ div >< div class = 'para' id = 'types-1' >< div class = 'marginalizedparent' >< a class = 'marginalized' href = '#types-1' > 1</ a ></ div >< div class = 'sourceLinkParent' >< a class = 'sourceLink' href = 'https://github.com/mpusz/mp-units329ffdaacb1bd7bed08565ac80d9eef7ccb1e5b5/source/quantities.tex#L1375' > #</ a ></ div >< div class = 'texpara' >< div id = 'types-1.sentence-1' class = 'sentence' >< span class = 'texttt' > base_< span class = 'shy' ></ span > dimension</ span > is used
2024-12-08 08:57:12 +00:00
to define the dimension of a base quantity (< a href = "https://www.electropedia.org/iev/iev.nsf/display?openform&ievref=112-01-08" > IEC 60050, 112-01-08</ a > )< a class = 'hidden_link' href = '#types-1.sentence-1' > .</ a ></ div > < div id = 'types-1.sentence-2' class = 'sentence' >< span class = 'texttt' > Symbol</ span > is its symbolic representation< a class = 'hidden_link' href = '#types-1.sentence-2' > .</ a ></ div > < div id = 'types-example-1' class = 'example' >< div class = 'texpara' > [< i > Example < a href = '#types-example-1' > 1</ a ></ i > :  < span class = 'codeblock' >< span class = 'keyword' > inline</ span > < span class = 'keyword' > constexpr</ span > < span class = 'keyword' > struct</ span > dim_length < span class = 'keyword' > final</ span > < span class = 'operator' > :</ span > base_dimension< span class = 'anglebracket' > < </ span >< span class = 'literal' > "L"</ span >< span class = 'anglebracket' > > </ span > < span class = 'curlybracket' > {</ span >< span class = 'curlybracket' > }</ span > dim_length;
</ span > — < i > end example</ i > ]</ div ></ div ></ div >< div class = 'texpara' >< span id = 'lib:derived_dimension' >< div class = 'marginalizedparent' >< a class = 'itemDeclLink' href = '#lib:derived_dimension' > 🔗</ a ></ div >< span class = 'codeblock' >< span class = 'keyword' > namespace</ span > mp_units < span class = 'curlybracket' > {</ span >
< span class = 'keyword' > template</ span >< span class = 'anglebracket' > < </ span >< span class = 'keyword' > typename</ span >< span class = 'operator' > .</ span >< span class = 'operator' > .</ span >< span class = 'operator' > .</ span > Expr< span class = 'anglebracket' > > </ span >
< span class = 'keyword' > struct</ span > < i > derived-dimension-impl</ i > < span class = 'comment' > // < i > exposition only</ i ></ span >
< span class = 'operator' > :</ span > < i > expr-fractions</ i >< span class = 'anglebracket' > < </ span >< span class = 'keyword' > struct</ span > dimension_one, Expr< span class = 'operator' > .</ span >< span class = 'operator' > .</ span >< span class = 'operator' > .</ span >< span class = 'anglebracket' > > </ span > < span class = 'curlybracket' > {</ span >< span class = 'curlybracket' > }</ span > ;
< span class = 'keyword' > template</ span >< span class = 'anglebracket' > < </ span >< a class = 'index' id = 'conceptref:SymbolicConstant_' ></ a >< i > SymbolicConstant</ i >< span class = 'operator' > .</ span >< span class = 'operator' > .</ span >< span class = 'operator' > .</ span > Expr< span class = 'anglebracket' > > </ span >
< span class = 'keyword' > struct</ span > derived_dimension < span class = 'keyword' > final</ span > < span class = 'operator' > :</ span > < i > dimension-interface</ i > , < i > derived-dimension-impl</ i >< span class = 'anglebracket' > < </ span > Expr< span class = 'operator' > .</ span >< span class = 'operator' > .</ span >< span class = 'operator' > .</ span >< span class = 'anglebracket' > > </ span > < span class = 'curlybracket' > {</ span >< span class = 'curlybracket' > }</ span > ;
< span class = 'curlybracket' > }</ span >
2025-01-15 15:39:26 +00:00
</ span ></ span ></ div ></ div >< div class = 'para' id = 'types-2' >< div class = 'marginalizedparent' >< a class = 'marginalized' href = '#types-2' > 2</ a ></ div >< div class = 'sourceLinkParent' >< a class = 'sourceLink' href = 'https://github.com/mpusz/mp-units329ffdaacb1bd7bed08565ac80d9eef7ccb1e5b5/source/quantities.tex#L1399' > #</ a ></ div >< div class = 'texpara' >< div id = 'types-2.sentence-1' class = 'sentence' >< span class = 'texttt' > derived_< span class = 'shy' ></ span > dimension</ span > is used by the library
2024-12-08 08:57:12 +00:00
to represent the dimension of a derived quantity (< a href = "https://www.electropedia.org/iev/iev.nsf/display?openform&ievref=112-01-10" > IEC 60050, 112-01-10</ a > )< a class = 'hidden_link' href = '#types-2.sentence-1' > .</ a ></ div > < div id = 'types-example-2' class = 'example' >< div class = 'texpara' > [< i > Example < a href = '#types-example-2' > 2</ a ></ i > :  < span class = 'codeblock' >< span class = 'keyword' > constexpr</ span > < span class = 'keyword' > auto</ span > dim_acceleration < span class = 'operator' > =</ span > isq< span class = 'operator' > ::</ span > speed< span class = 'operator' > .</ span > dimension < span class = 'operator' > /</ span > isq< span class = 'operator' > ::</ span > dim_time;
< span class = 'keyword' > int</ span > x < span class = 'operator' > =</ span > dim_acceleration; < span class = 'comment' > // error: cannot construct from</ span >
< span class = 'comment' > // < span class = 'tcode_in_codeblock' > derived_< span class = 'shy' ></ span > dimension< isq​ ::​ dim_< span class = 'shy' ></ span > length, per< power< isq​ ::​ dim_< span class = 'shy' ></ span > time, 2>>> </ span ></ span >
</ span > — < i > end example</ i > ]</ div ></ div > < div id = 'types-2.sentence-2' class = 'sentence' >
A program that instantiates a specialization of < span class = 'texttt' > derived_< span class = 'shy' ></ span > dimension</ span >
that is not a possible result of the library specifications
is ill-formed, no diagnostic required< a class = 'hidden_link' href = '#types-2.sentence-2' > .</ a ></ div ></ div >< div class = 'texpara' >< span id = 'lib:dimension_one' >< div class = 'marginalizedparent' >< a class = 'itemDeclLink' href = '#lib:dimension_one' > 🔗</ a ></ div >< span class = 'codeblock' >< span class = 'keyword' > namespace</ span > mp_units < span class = 'curlybracket' > {</ span >
< span class = 'keyword' > struct</ span > dimension_one < span class = 'keyword' > final</ span > < span class = 'operator' > :</ span > < i > dimension-interface</ i > , < i > derived-dimension-impl</ i >< span class = 'anglebracket' > < </ span >< span class = 'anglebracket' > > </ span > < span class = 'curlybracket' > {</ span >< span class = 'curlybracket' > }</ span > ;
< span class = 'curlybracket' > }</ span >
2025-01-15 15:39:26 +00:00
</ span ></ span ></ div ></ div >< div class = 'para' id = 'types-3' >< div class = 'marginalizedparent' >< a class = 'marginalized' href = '#types-3' > 3</ a ></ div >< div class = 'sourceLinkParent' >< a class = 'sourceLink' href = 'https://github.com/mpusz/mp-units329ffdaacb1bd7bed08565ac80d9eef7ccb1e5b5/source/quantities.tex#L1422' > #</ a ></ div >< div class = 'texpara' >< div id = 'types-3.sentence-1' class = 'sentence' >< span class = 'texttt' > dimension_< span class = 'shy' ></ span > one</ span > represents the dimension of a quantity of dimension one (< a href = "https://www.electropedia.org/iev/iev.nsf/display?openform&ievref=112-01-13" > IEC 60050, 112-01-13</ a > )< a class = 'hidden_link' href = '#types-3.sentence-1' > .</ a ></ div ></ div ></ div ></ div >< div id = 'ops' class = 'section' >< h4 >< a class = 'secnum' href = '#ops' style = 'min-width:95pt' > 5.4.2.4</ a > Operations < a class = 'abbr_ref' href = 'qty.dim.ops.html' > [qty.dim.ops]</ a ></ h4 >< div class = 'texpara' >< span id = 'lib:dimension-interface' >< div class = 'marginalizedparent' >< a class = 'itemDeclLink' href = '#lib:dimension-interface' > 🔗</ a ></ div >< span class = 'codeblock' >< span class = 'keyword' > namespace</ span > mp_units < span class = 'curlybracket' > {</ span >
2024-12-08 08:57:12 +00:00
< span class = 'keyword' > struct</ span > < i > dimension-interface</ i > < span class = 'curlybracket' > {</ span > < span class = 'comment' > // < i > exposition only</ i ></ span >
< span class = 'keyword' > template</ span >< span class = 'anglebracket' > < </ span >< a href = '#concept:Dimension' title = '5.4.2.2 Concepts [qty.dim.concepts]' >< span id = 'conceptref:Dimension___' >< span class = 'tcode_in_codeblock' > Dimension</ span ></ span ></ a > Lhs, < a href = '#concept:Dimension' title = '5.4.2.2 Concepts [qty.dim.concepts]' >< span id = 'conceptref:Dimension____' >< span class = 'tcode_in_codeblock' > Dimension</ span ></ span ></ a > Rhs< span class = 'anglebracket' > > </ span >
< span class = 'keyword' > friend</ span > < span class = 'keyword' > consteval</ span > < a href = '#concept:Dimension' title = '5.4.2.2 Concepts [qty.dim.concepts]' >< span id = 'conceptref:Dimension_____' >< span class = 'tcode_in_codeblock' > Dimension</ span ></ span ></ a > < span class = 'keyword' > auto</ span > < span class = 'keyword' > operator</ span >< span class = 'operator' > *</ span >< span class = 'parenthesis' > (</ span > Lhs, Rhs< span class = 'parenthesis' > )</ span > ;
< span class = 'keyword' > template</ span >< span class = 'anglebracket' > < </ span >< a href = '#concept:Dimension' title = '5.4.2.2 Concepts [qty.dim.concepts]' >< span id = 'conceptref:Dimension______' >< span class = 'tcode_in_codeblock' > Dimension</ span ></ span ></ a > Lhs, < a href = '#concept:Dimension' title = '5.4.2.2 Concepts [qty.dim.concepts]' >< span id = 'conceptref:Dimension_______' >< span class = 'tcode_in_codeblock' > Dimension</ span ></ span ></ a > Rhs< span class = 'anglebracket' > > </ span >
< span class = 'keyword' > friend</ span > < span class = 'keyword' > consteval</ span > < a href = '#concept:Dimension' title = '5.4.2.2 Concepts [qty.dim.concepts]' >< span id = 'conceptref:Dimension________' >< span class = 'tcode_in_codeblock' > Dimension</ span ></ span ></ a > < span class = 'keyword' > auto</ span > < span class = 'keyword' > operator</ span >< span class = 'operator' > /</ span >< span class = 'parenthesis' > (</ span > Lhs, Rhs< span class = 'parenthesis' > )</ span > ;
< span class = 'keyword' > template</ span >< span class = 'anglebracket' > < </ span >< a href = '#concept:Dimension' title = '5.4.2.2 Concepts [qty.dim.concepts]' >< span id = 'conceptref:Dimension_________' >< span class = 'tcode_in_codeblock' > Dimension</ span ></ span ></ a > Lhs, < a href = '#concept:Dimension' title = '5.4.2.2 Concepts [qty.dim.concepts]' >< span id = 'conceptref:Dimension__________' >< span class = 'tcode_in_codeblock' > Dimension</ span ></ span ></ a > Rhs< span class = 'anglebracket' > > </ span >
< span class = 'keyword' > friend</ span > < span class = 'keyword' > consteval</ span > < span class = 'keyword' > bool</ span > < span class = 'keyword' > operator</ span >< span class = 'operator' > =</ span >< span class = 'operator' > =</ span >< span class = 'parenthesis' > (</ span > Lhs, Rhs< span class = 'parenthesis' > )</ span > ;
< span class = 'curlybracket' > }</ span > ;
< span class = 'curlybracket' > }</ span >
</ span ></ span ></ div >< div class = 'texpara' >< div id = 'lib:Dimension,operator*' >< div id = 'lib:operator*,Dimension' >< div class = 'itemdecl' >< div class = 'marginalizedparent' >< a class = 'itemDeclLink' href = '#lib:operator*,Dimension' > 🔗</ a ></ div >< code class = 'itemdeclcode' >< span class = 'keyword' > template</ span >< span class = 'anglebracket' > < </ span >< a href = '#concept:Dimension' title = '5.4.2.2 Concepts [qty.dim.concepts]' >< span id = 'conceptref:Dimension___________' >< span class = 'texttt' > Dimension</ span ></ span ></ a > Lhs, < a href = '#concept:Dimension' title = '5.4.2.2 Concepts [qty.dim.concepts]' >< span id = 'conceptref:Dimension____________' >< span class = 'texttt' > Dimension</ span ></ span ></ a > Rhs< span class = 'anglebracket' > > </ span >
< span class = 'keyword' > friend</ span > < span class = 'keyword' > consteval</ span > < a href = '#concept:Dimension' title = '5.4.2.2 Concepts [qty.dim.concepts]' >< span id = 'conceptref:Dimension_____________' >< span class = 'texttt' > Dimension</ span ></ span ></ a > < span class = 'keyword' > auto</ span > < span class = 'keyword' > operator</ span >< span class = 'operator' > *</ span >< span class = 'parenthesis' > (</ span > Lhs, Rhs< span class = 'parenthesis' > )</ span > ;
2025-01-15 15:39:26 +00:00
</ code ></ div ></ div ></ div ></ div >< div class = 'para' id = 'ops-1' >< div class = 'marginalizedparent' >< a class = 'marginalized' href = '#ops-1' > 1</ a ></ div >< div class = 'itemdescr' >< div class = 'sourceLinkParent' >< a class = 'sourceLink' href = 'https://github.com/mpusz/mp-units329ffdaacb1bd7bed08565ac80d9eef7ccb1e5b5/source/quantities.tex#L1452' > #</ a ></ div >< div class = 'texpara' >< div id = 'ops-1.sentence-1' class = 'sentence' >< i > Returns</ i > : < span class = 'texttt' >< span class = 'texttt' >< i > expr-multiply</ i ></ span >< span class = 'anglebracket' > < </ span > derived_< span class = 'shy' ></ span > dimension, < span class = 'keyword' > struct</ span > dimension_< span class = 'shy' ></ span > one< span class = 'anglebracket' > > </ span >< span class = 'parenthesis' > (</ span > Lhs< span class = 'curlybracket' > {</ span >< span class = 'curlybracket' > }</ span > , Rhs< span class = 'curlybracket' > {</ span >< span class = 'curlybracket' > }</ span >< span class = 'parenthesis' > )</ span ></ span >< a class = 'hidden_link' href = '#ops-1.sentence-1' > .</ a ></ div ></ div ></ div ></ div >< div class = 'texpara' >< div id = 'lib:Dimension,operator/' >< div id = 'lib:operator/,Dimension' >< div class = 'itemdecl' >< div class = 'marginalizedparent' >< a class = 'itemDeclLink' href = '#lib:operator/,Dimension' > 🔗</ a ></ div >< code class = 'itemdeclcode' >< span class = 'keyword' > template</ span >< span class = 'anglebracket' > < </ span >< a href = '#concept:Dimension' title = '5.4.2.2 Concepts [qty.dim.concepts]' >< span id = 'conceptref:Dimension______________' >< span class = 'texttt' > Dimension</ span ></ span ></ a > Lhs, < a href = '#concept:Dimension' title = '5.4.2.2 Concepts [qty.dim.concepts]' >< span id = 'conceptref:Dimension_______________' >< span class = 'texttt' > Dimension</ span ></ span ></ a > Rhs< span class = 'anglebracket' > > </ span >
2024-12-08 08:57:12 +00:00
< span class = 'keyword' > friend</ span > < span class = 'keyword' > consteval</ span > < a href = '#concept:Dimension' title = '5.4.2.2 Concepts [qty.dim.concepts]' >< span id = 'conceptref:Dimension________________' >< span class = 'texttt' > Dimension</ span ></ span ></ a > < span class = 'keyword' > auto</ span > < span class = 'keyword' > operator</ span >< span class = 'operator' > /</ span >< span class = 'parenthesis' > (</ span > Lhs, Rhs< span class = 'parenthesis' > )</ span > ;
2025-01-15 15:39:26 +00:00
</ code ></ div ></ div ></ div ></ div >< div class = 'para' id = 'ops-2' >< div class = 'marginalizedparent' >< a class = 'marginalized' href = '#ops-2' > 2</ a ></ div >< div class = 'itemdescr' >< div class = 'sourceLinkParent' >< a class = 'sourceLink' href = 'https://github.com/mpusz/mp-units329ffdaacb1bd7bed08565ac80d9eef7ccb1e5b5/source/quantities.tex#L1464' > #</ a ></ div >< div class = 'texpara' >< div id = 'ops-2.sentence-1' class = 'sentence' >< i > Returns</ i > : < span class = 'texttt' >< span class = 'texttt' >< i > expr-divide</ i ></ span >< span class = 'anglebracket' > < </ span > derived_< span class = 'shy' ></ span > dimension, < span class = 'keyword' > struct</ span > dimension_< span class = 'shy' ></ span > one< span class = 'anglebracket' > > </ span >< span class = 'parenthesis' > (</ span > Lhs< span class = 'curlybracket' > {</ span >< span class = 'curlybracket' > }</ span > , Rhs< span class = 'curlybracket' > {</ span >< span class = 'curlybracket' > }</ span >< span class = 'parenthesis' > )</ span ></ span >< a class = 'hidden_link' href = '#ops-2.sentence-1' > .</ a ></ div ></ div ></ div ></ div >< div class = 'texpara' >< div id = 'lib:Dimension,operator==' >< div id = 'lib:operator==,Dimension' >< div class = 'itemdecl' >< div class = 'marginalizedparent' >< a class = 'itemDeclLink' href = '#lib:operator==,Dimension' > 🔗</ a ></ div >< code class = 'itemdeclcode' >< span class = 'keyword' > template</ span >< span class = 'anglebracket' > < </ span >< a href = '#concept:Dimension' title = '5.4.2.2 Concepts [qty.dim.concepts]' >< span id = 'conceptref:Dimension_________________' >< span class = 'texttt' > Dimension</ span ></ span ></ a > Lhs, < a href = '#concept:Dimension' title = '5.4.2.2 Concepts [qty.dim.concepts]' >< span id = 'conceptref:Dimension__________________' >< span class = 'texttt' > Dimension</ span ></ span ></ a > Rhs< span class = 'anglebracket' > > </ span >
2024-12-08 08:57:12 +00:00
< span class = 'keyword' > friend</ span > < span class = 'keyword' > consteval</ span > < span class = 'keyword' > bool</ span > < span class = 'keyword' > operator</ span >< span class = 'operator' > =</ span >< span class = 'operator' > =</ span >< span class = 'parenthesis' > (</ span > Lhs, Rhs< span class = 'parenthesis' > )</ span > ;
2025-01-15 15:39:26 +00:00
</ code ></ div ></ div ></ div ></ div >< div class = 'para' id = 'ops-3' >< div class = 'marginalizedparent' >< a class = 'marginalized' href = '#ops-3' > 3</ a ></ div >< div class = 'itemdescr' >< div class = 'sourceLinkParent' >< a class = 'sourceLink' href = 'https://github.com/mpusz/mp-units329ffdaacb1bd7bed08565ac80d9eef7ccb1e5b5/source/quantities.tex#L1476' > #</ a ></ div >< div class = 'texpara' >< div id = 'ops-3.sentence-1' class = 'sentence' >< i > Returns</ i > : < span class = 'texttt' > std< span class = 'operator' > ​ ::​ </ span > is_< span class = 'shy' ></ span > same_< span class = 'shy' ></ span > v< span class = 'anglebracket' > < </ span > Lhs, Rhs< span class = 'anglebracket' > > </ span ></ span >< a class = 'hidden_link' href = '#ops-3.sentence-1' > .</ a ></ div ></ div ></ div ></ div >< div class = 'texpara' >< div id = 'lib:Dimension,inverse' >< div id = 'lib:inverse,Dimension' >< div class = 'itemdecl' >< div class = 'marginalizedparent' >< a class = 'itemDeclLink' href = '#lib:inverse,Dimension' > 🔗</ a ></ div >< code class = 'itemdeclcode' >< span class = 'keyword' > consteval</ span > < a href = '#concept:Dimension' title = '5.4.2.2 Concepts [qty.dim.concepts]' >< span id = 'conceptref:Dimension___________________' >< span class = 'texttt' > Dimension</ span ></ span ></ a > < span class = 'keyword' > auto</ span > inverse< span class = 'parenthesis' > (</ span >< a href = '#concept:Dimension' title = '5.4.2.2 Concepts [qty.dim.concepts]' >< span id = 'conceptref:Dimension____________________' >< span class = 'texttt' > Dimension</ span ></ span ></ a > < span class = 'keyword' > auto</ span > d< span class = 'parenthesis' > )</ span > ;
</ code ></ div ></ div ></ div ></ div >< div class = 'para' id = 'ops-4' >< div class = 'marginalizedparent' >< a class = 'marginalized' href = '#ops-4' > 4</ a ></ div >< div class = 'itemdescr' >< div class = 'sourceLinkParent' >< a class = 'sourceLink' href = 'https://github.com/mpusz/mp-units329ffdaacb1bd7bed08565ac80d9eef7ccb1e5b5/source/quantities.tex#L1487' > #</ a ></ div >< div class = 'texpara' >< div id = 'ops-4.sentence-1' class = 'sentence' >< i > Returns</ i > : < span class = 'texttt' > dimension_< span class = 'shy' ></ span > one < span class = 'operator' > /</ span > d</ span >< a class = 'hidden_link' href = '#ops-4.sentence-1' > .</ a ></ div ></ div ></ div ></ div >< div class = 'texpara' >< div id = 'lib:Dimension,pow' >< div id = 'lib:pow,Dimension' >< div class = 'itemdecl' >< div class = 'marginalizedparent' >< a class = 'itemDeclLink' href = '#lib:pow,Dimension' > 🔗</ a ></ div >< code class = 'itemdeclcode' >< span class = 'keyword' > template</ span >< span class = 'anglebracket' > < </ span > std< span class = 'operator' > ::</ span > intmax_t Num, std< span class = 'operator' > ::</ span > intmax_t Den < span class = 'operator' > =</ span > < span class = 'literal' > 1</ span > , < a href = '#concept:Dimension' title = '5.4.2.2 Concepts [qty.dim.concepts]' >< span id = 'conceptref:Dimension_____________________' >< span class = 'texttt' > Dimension</ span ></ span ></ a > D< span class = 'anglebracket' > > </ span >
2024-12-08 08:57:12 +00:00
< span class = 'keyword' > requires</ span >< span class = 'parenthesis' > (</ span > Den < span class = 'operator' > !</ span >< span class = 'operator' > =</ span > < span class = 'literal' > 0</ span >< span class = 'parenthesis' > )</ span >
< span class = 'keyword' > consteval</ span > < a href = '#concept:Dimension' title = '5.4.2.2 Concepts [qty.dim.concepts]' >< span id = 'conceptref:Dimension______________________' >< span class = 'texttt' > Dimension</ span ></ span ></ a > < span class = 'keyword' > auto</ span > pow< span class = 'parenthesis' > (</ span > D d< span class = 'parenthesis' > )</ span > ;
2025-01-15 15:39:26 +00:00
</ code ></ div ></ div ></ div ></ div >< div class = 'para' id = 'ops-5' >< div class = 'marginalizedparent' >< a class = 'marginalized' href = '#ops-5' > 5</ a ></ div >< div class = 'itemdescr' >< div class = 'sourceLinkParent' >< a class = 'sourceLink' href = 'https://github.com/mpusz/mp-units329ffdaacb1bd7bed08565ac80d9eef7ccb1e5b5/source/quantities.tex#L1500' > #</ a ></ div >< div class = 'texpara' >< div id = 'ops-5.sentence-1' class = 'sentence' >< i > Returns</ i > : < span class = 'texttt' >< span class = 'texttt' >< i > expr-pow</ i ></ span >< span class = 'anglebracket' > < </ span > Num, Den, derived_< span class = 'shy' ></ span > dimension, < span class = 'keyword' > struct</ span > dimension_< span class = 'shy' ></ span > one< span class = 'anglebracket' > > </ span >< span class = 'parenthesis' > (</ span > d< span class = 'parenthesis' > )</ span ></ span >< a class = 'hidden_link' href = '#ops-5.sentence-1' > .</ a ></ div ></ div ></ div ></ div >< div class = 'texpara' >< div id = 'lib:Dimension,sqrt' >< div id = 'lib:sqrt,Dimension' >< div class = 'itemdecl' >< div class = 'marginalizedparent' >< a class = 'itemDeclLink' href = '#lib:sqrt,Dimension' > 🔗</ a ></ div >< code class = 'itemdeclcode' >< span class = 'keyword' > consteval</ span > < a href = '#concept:Dimension' title = '5.4.2.2 Concepts [qty.dim.concepts]' >< span id = 'conceptref:Dimension_______________________' >< span class = 'texttt' > Dimension</ span ></ span ></ a > < span class = 'keyword' > auto</ span > sqrt< span class = 'parenthesis' > (</ span >< a href = '#concept:Dimension' title = '5.4.2.2 Concepts [qty.dim.concepts]' >< span id = 'conceptref:Dimension________________________' >< span class = 'texttt' > Dimension</ span ></ span ></ a > < span class = 'keyword' > auto</ span > d< span class = 'parenthesis' > )</ span > ;
</ code ></ div ></ div ></ div ></ div >< div class = 'para' id = 'ops-6' >< div class = 'marginalizedparent' >< a class = 'marginalized' href = '#ops-6' > 6</ a ></ div >< div class = 'itemdescr' >< div class = 'sourceLinkParent' >< a class = 'sourceLink' href = 'https://github.com/mpusz/mp-units329ffdaacb1bd7bed08565ac80d9eef7ccb1e5b5/source/quantities.tex#L1511' > #</ a ></ div >< div class = 'texpara' >< div id = 'ops-6.sentence-1' class = 'sentence' >< i > Returns</ i > : < span class = 'texttt' > pow< span class = 'anglebracket' > < </ span >< span class = 'literal' > 1</ span > , < span class = 'literal' > 2</ span >< span class = 'anglebracket' > > </ span >< span class = 'parenthesis' > (</ span > d< span class = 'parenthesis' > )</ span ></ span >< a class = 'hidden_link' href = '#ops-6.sentence-1' > .</ a ></ div ></ div ></ div ></ div >< div class = 'texpara' >< div id = 'lib:Dimension,cbrt' >< div id = 'lib:cbrt,Dimension' >< div class = 'itemdecl' >< div class = 'marginalizedparent' >< a class = 'itemDeclLink' href = '#lib:cbrt,Dimension' > 🔗</ a ></ div >< code class = 'itemdeclcode' >< span class = 'keyword' > consteval</ span > < a href = '#concept:Dimension' title = '5.4.2.2 Concepts [qty.dim.concepts]' >< span id = 'conceptref:Dimension_________________________' >< span class = 'texttt' > Dimension</ span ></ span ></ a > < span class = 'keyword' > auto</ span > cbrt< span class = 'parenthesis' > (</ span >< a href = '#concept:Dimension' title = '5.4.2.2 Concepts [qty.dim.concepts]' >< span id = 'conceptref:Dimension__________________________' >< span class = 'texttt' > Dimension</ span ></ span ></ a > < span class = 'keyword' > auto</ span > d< span class = 'parenthesis' > )</ span > ;
</ code ></ div ></ div ></ div ></ div >< div class = 'para' id = 'ops-7' >< div class = 'marginalizedparent' >< a class = 'marginalized' href = '#ops-7' > 7</ a ></ div >< div class = 'itemdescr' >< div class = 'sourceLinkParent' >< a class = 'sourceLink' href = 'https://github.com/mpusz/mp-units329ffdaacb1bd7bed08565ac80d9eef7ccb1e5b5/source/quantities.tex#L1522' > #</ a ></ div >< div class = 'texpara' >< div id = 'ops-7.sentence-1' class = 'sentence' >< i > Returns</ i > : < span class = 'texttt' > pow< span class = 'anglebracket' > < </ span >< span class = 'literal' > 1</ span > , < span class = 'literal' > 3</ span >< span class = 'anglebracket' > > </ span >< span class = 'parenthesis' > (</ span > d< span class = 'parenthesis' > )</ span ></ span >< a class = 'hidden_link' href = '#ops-7.sentence-1' > .</ a ></ div ></ div ></ div ></ div ></ div >< div id = 'sym.fmt' class = 'section' >< h4 >< a class = 'secnum' href = '#sym.fmt' style = 'min-width:95pt' > 5.4.2.5</ a > Symbol formatting < a class = 'abbr_ref' href = 'qty.dim.sym.fmt.html' > [qty.dim.sym.fmt]</ a ></ h4 >< div class = 'texpara' >< div id = 'lib:Dimension,dimension_symbol_to' >< div id = 'lib:dimension_symbol_to,Dimension' >< div class = 'itemdecl' >< div class = 'marginalizedparent' >< a class = 'itemDeclLink' href = '#lib:dimension_symbol_to,Dimension' > 🔗</ a ></ div >< code class = 'itemdeclcode' >< span class = 'keyword' > template</ span >< span class = 'anglebracket' > < </ span >< span class = 'keyword' > typename</ span > CharT < span class = 'operator' > =</ span > < span class = 'keyword' > char</ span > , std< span class = 'operator' > ::</ span > output_iterator< span class = 'anglebracket' > < </ span > CharT< span class = 'anglebracket' > > </ span > Out, < a href = '#concept:Dimension' title = '5.4.2.2 Concepts [qty.dim.concepts]' >< span id = 'conceptref:Dimension___________________________' >< span class = 'texttt' > Dimension</ span ></ span ></ a > D< span class = 'anglebracket' > > </ span >
2024-12-08 08:57:12 +00:00
< span class = 'keyword' > constexpr</ span > Out dimension_symbol_to< span class = 'parenthesis' > (</ span > Out out, D d, < span class = 'keyword' > const</ span > dimension_symbol_formatting< span class = 'operator' > & </ span > fmt < span class = 'operator' > =</ span > < span class = 'curlybracket' > {</ span >< span class = 'curlybracket' > }</ span >< span class = 'parenthesis' > )</ span > ;
2025-01-15 15:39:26 +00:00
</ code ></ div ></ div ></ div ></ div >< div class = 'para' id = 'sym.fmt-1' >< div class = 'marginalizedparent' >< a class = 'marginalized' href = '#sym.fmt-1' > 1</ a ></ div >< div class = 'itemdescr' >< div class = 'sourceLinkParent' >< a class = 'sourceLink' href = 'https://github.com/mpusz/mp-units329ffdaacb1bd7bed08565ac80d9eef7ccb1e5b5/source/quantities.tex#L1536' > #</ a ></ div >< div class = 'texpara' >< div id = 'sym.fmt-1.sentence-1' class = 'sentence' >< i > Effects</ i > : TBD< a class = 'hidden_link' href = '#sym.fmt-1.sentence-1' > .</ a ></ div ></ div ></ div ></ div >< div class = 'para' id = 'sym.fmt-2' >< div class = 'marginalizedparent' >< a class = 'marginalized' href = '#sym.fmt-2' > 2</ a ></ div >< div class = 'itemdescr' >< div class = 'sourceLinkParent' >< a class = 'sourceLink' href = 'https://github.com/mpusz/mp-units329ffdaacb1bd7bed08565ac80d9eef7ccb1e5b5/source/quantities.tex#L1540' > #</ a ></ div >< div class = 'texpara' >< div id = 'sym.fmt-2.sentence-1' class = 'sentence' >< i > Returns</ i > : TBD< a class = 'hidden_link' href = '#sym.fmt-2.sentence-1' > .</ a ></ div ></ div ></ div ></ div >< div class = 'texpara' >< div id = 'lib:Dimension,dimension_symbol' >< div id = 'lib:dimension_symbol,Dimension' >< div class = 'itemdecl' >< div class = 'marginalizedparent' >< a class = 'itemDeclLink' href = '#lib:dimension_symbol,Dimension' > 🔗</ a ></ div >< code class = 'itemdeclcode' >< span class = 'keyword' > template</ span >< span class = 'anglebracket' > < </ span > dimension_symbol_formatting fmt < span class = 'operator' > =</ span > < span class = 'curlybracket' > {</ span >< span class = 'curlybracket' > }</ span > , < span class = 'keyword' > typename</ span > CharT < span class = 'operator' > =</ span > < span class = 'keyword' > char</ span > , < a href = '#concept:Dimension' title = '5.4.2.2 Concepts [qty.dim.concepts]' >< span id = 'conceptref:Dimension____________________________' >< span class = 'texttt' > Dimension</ span ></ span ></ a > D< span class = 'anglebracket' > > </ span >
2024-12-08 08:57:12 +00:00
< span class = 'keyword' > consteval</ span > std< span class = 'operator' > ::</ span > string_view dimension_symbol< span class = 'parenthesis' > (</ span > D< span class = 'parenthesis' > )</ span > ;
2025-01-15 15:39:26 +00:00
</ code ></ div ></ div ></ div ></ div >< div class = 'para' id = 'sym.fmt-3' >< div class = 'marginalizedparent' >< a class = 'marginalized' href = '#sym.fmt-3' > 3</ a ></ div >< div class = 'itemdescr' >< div class = 'sourceLinkParent' >< a class = 'sourceLink' href = 'https://github.com/mpusz/mp-units329ffdaacb1bd7bed08565ac80d9eef7ccb1e5b5/source/quantities.tex#L1552' > #</ a ></ div >< div class = 'texpara' >< div id = 'sym.fmt-3.sentence-1' class = 'sentence' >< i > Effects</ i > : Equivalent to:
2024-12-08 08:57:12 +00:00
< span class = 'codeblock' > TBD< span class = 'operator' > .</ span >
</ span ></ div ></ div ></ div ></ div ></ div ></ div ></ body ></ html >