Deployed e9c5f723 to HEAD with MkDocs 1.6.1 and mike 2.1.3

This commit is contained in:
github-actions
2025-02-11 20:35:14 +00:00
parent 146f5e89ab
commit bf355182ca
127 changed files with 1395 additions and 1394 deletions

View File

@ -1,6 +1,6 @@
<!DOCTYPE html><html lang='en'><head><title>[assoc.qty]</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#assoc.qty'>[qty.ref]</a></h2><h3 ><a class='secnum' style='min-width:80pt'>5.4.4</a> Unit <a class='abbr_ref' href='qty.unit.html#assoc.qty'>[qty.unit]</a></h3><h4 ><a class='secnum' style='min-width:95pt'>5.4.4.9</a> Associated quantity <a class='abbr_ref'>[assoc.qty]</a></h4><div class='texpara'><div id='lib:has-associated-quantity,Unit'><div id='lib:Unit,has-associated-quantity'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:Unit,has-associated-quantity'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><a href='qty.unit.concepts.html#concept:Unit' title='5.4.4.4&emsp;Concepts&emsp;[qty.unit.concepts]'><span id='conceptref:Unit'><span class='texttt'>Unit</span></span></a> U<span class='anglebracket'>&gt;</span>
<span class='keyword'>consteval</span> <span class='keyword'>bool</span> <span class='texttt'><i >has-associated-quantity</i></span><span class='parenthesis'>(</span>U<span class='parenthesis'>)</span>; <span class='comment'>// <i >exposition only</i></span>
</code></div></div></div></div><div class='para' id='1'><div class='marginalizedparent'><a class='marginalized' href='#1'>1</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L3237'>#</a></div><div class='texpara'><div id='1.sentence-1' class='sentence'><i >Returns</i>: <ul class='itemize'><li id='1.1'><div class='marginalizedparent' style='left:-39mm'><a class='marginalized' href='#1.1'>(1.1)</a></div><div class='texpara'><div id='1.1.sentence-1' class='sentence'>If <span class='texttt'>U<span class='operator'>&#x200b;::&#x200b;</span><span class='texttt'><i >quantity-spec</i></span></span> is a valid expression,
</code></div></div></div></div><div class='para' id='1'><div class='marginalizedparent'><a class='marginalized' href='#1'>1</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L3237'>#</a></div><div class='texpara'><div id='1.sentence-1' class='sentence'><i >Returns</i>: <ul class='itemize'><li id='1.1'><div class='marginalizedparent' style='left:-39mm'><a class='marginalized' href='#1.1'>(1.1)</a></div><div class='texpara'><div id='1.1.sentence-1' class='sentence'>If <span class='texttt'>U<span class='operator'>&#x200b;::&#x200b;</span><span class='texttt'><i >quantity-spec</i></span></span> is a valid expression,
returns <span class='texttt'><span class='literal'>true</span></span><a class='hidden_link' href='#1.1.sentence-1'>.</a></div></div></li><li id='1.2'><div class='marginalizedparent' style='left:-39mm'><a class='marginalized' href='#1.2'>(1.2)</a></div><div class='texpara'><div id='1.2.sentence-1' class='sentence'>Otherwise, if <span class='texttt'>U<span class='operator'>&#x200b;::&#x200b;</span><span class='texttt'><i >reference-unit</i></span></span> is a valid expression,
returns
<span class='codeblock'><i >has-associated-quantity</i><span class='parenthesis'>(</span>U<span class='operator'>::</span><i >reference-unit</i><span class='parenthesis'>)</span>
@ -14,7 +14,7 @@ be packs denoting the template arguments of
<span class='parenthesis'>(</span><span class='operator'>.</span><span class='operator'>.</span><span class='operator'>.</span> <span class='operator'>&amp;</span><span class='operator'>&amp;</span> <i >has-associated-quantity</i><span class='parenthesis'>(</span><i >expr-type</i><span class='anglebracket'>&lt;</span>Dens<span class='anglebracket'>&gt;</span><span class='curlybracket'>{</span><span class='curlybracket'>}</span><span class='parenthesis'>)</span><span class='parenthesis'>)</span>
</span></div></div></li><li id='1.4'><div class='marginalizedparent' style='left:-39mm'><a class='marginalized' href='#1.4'>(1.4)</a></div><div class='texpara'><div id='1.4.sentence-1' class='sentence'>Otherwise, returns <span class='texttt'><span class='literal'>false</span></span><a class='hidden_link' href='#1.4.sentence-1'>.</a></div></div></li></ul></div></div></div></div><div class='texpara'><div id='lib:get-associated-quantity,AssociatedUnit'><div id='lib:AssociatedUnit,get-associated-quantity'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:AssociatedUnit,get-associated-quantity'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><a href='qty.unit.concepts.html#concept:AssociatedUnit' title='5.4.4.4&emsp;Concepts&emsp;[qty.unit.concepts]'><span id='conceptref:AssociatedUnit'><span class='texttt'>AssociatedUnit</span></span></a> U<span class='anglebracket'>&gt;</span>
<span class='keyword'>consteval</span> <span class='keyword'>auto</span> <span class='texttt'><i >get-associated-quantity</i></span><span class='parenthesis'>(</span>U u<span class='parenthesis'>)</span>; <span class='comment'>// <i >exposition only</i></span>
</code></div></div></div></div><div class='para' id='2'><div class='marginalizedparent'><a class='marginalized' href='#2'>2</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L3273'>#</a></div><div class='texpara'><div id='2.sentence-1' class='sentence'><i >Returns</i>: <ul class='itemize'><li id='2.1'><div class='marginalizedparent' style='left:-39mm'><a class='marginalized' href='#2.1'>(2.1)</a></div>If <span class='texttt'>U</span> is of the form <span class='texttt'>common_<span class='shy'></span>unit<span class='anglebracket'>&lt;</span>Us<span class='operator'>.</span><span class='operator'>.</span><span class='operator'>.</span><span class='anglebracket'>&gt;</span></span>,
</code></div></div></div></div><div class='para' id='2'><div class='marginalizedparent'><a class='marginalized' href='#2'>2</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L3273'>#</a></div><div class='texpara'><div id='2.sentence-1' class='sentence'><i >Returns</i>: <ul class='itemize'><li id='2.1'><div class='marginalizedparent' style='left:-39mm'><a class='marginalized' href='#2.1'>(2.1)</a></div>If <span class='texttt'>U</span> is of the form <span class='texttt'>common_<span class='shy'></span>unit<span class='anglebracket'>&lt;</span>Us<span class='operator'>.</span><span class='operator'>.</span><span class='operator'>.</span><span class='anglebracket'>&gt;</span></span>,
returns
<span class='codeblock'>get_common_quantity_spec<span class='parenthesis'>(</span><i >get-associated-quantity</i><span class='parenthesis'>(</span>Us<span class='curlybracket'>{</span><span class='curlybracket'>}</span><span class='parenthesis'>)</span><span class='operator'>.</span><span class='operator'>.</span><span class='operator'>.</span><span class='parenthesis'>)</span>
</span></li><li id='2.2'><div class='marginalizedparent' style='left:-39mm'><a class='marginalized' href='#2.2'>(2.2)</a></div>Otherwise, if <span class='texttt'>U<span class='operator'>&#x200b;::&#x200b;</span><span class='texttt'><i >quantity-spec</i></span></span> is a valid expression,

View File

@ -1,11 +1,11 @@
<!DOCTYPE html><html lang='en'><head><title>[defs]</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'>3</a> Terms and definitions <a class='abbr_ref' href='index.html#defs'>[defs]</a></h1><div class='para' id='1'><div class='marginalizedparent'><a class='marginalized' href='#1'>1</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/intro.tex#L55'>#</a></div><div class='texpara'><div id='1.sentence-1' class='sentence'><a class='index' id=':definitions'></a>For the purposes of this document,
<!DOCTYPE html><html lang='en'><head><title>[defs]</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'>3</a> Terms and definitions <a class='abbr_ref' href='index.html#defs'>[defs]</a></h1><div class='para' id='1'><div class='marginalizedparent'><a class='marginalized' href='#1'>1</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/intro.tex#L55'>#</a></div><div class='texpara'><div id='1.sentence-1' class='sentence'><a class='index' id=':definitions'></a>For the purposes of this document,
the terms and definitions given in
IEC 60050-102:2007/AMD3:2021,
IEC 60050-112:2010/AMD2:2020,
ISO 80000-2:2019,
and
N4971,
and the following apply<a class='hidden_link' href='#1.sentence-1'>.</a></div></div></div><div class='para' id='2'><div class='marginalizedparent'><a class='marginalized' href='#2'>2</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/intro.tex#L66'>#</a></div><div class='texpara'><div id='2.sentence-1' class='sentence'>ISO and IEC maintain terminology databases
and the following apply<a class='hidden_link' href='#1.sentence-1'>.</a></div></div></div><div class='para' id='2'><div class='marginalizedparent'><a class='marginalized' href='#2'>2</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/intro.tex#L66'>#</a></div><div class='texpara'><div id='2.sentence-1' class='sentence'>ISO and IEC maintain terminology databases
for use in standardization
at the following addresses:
<ul class='itemize'><li id='2.1'><div class='marginalizedparent' style='left:-27mm'><a class='marginalized' href='#2.1'>(2.1)</a></div>ISO Online browsing platform: available at <a href='https://www.iso.org/obp'>https://www.iso.org/obp</a></li><li id='2.2'><div class='marginalizedparent' style='left:-27mm'><a class='marginalized' href='#2.2'>(2.2)</a></div>IEC Electropedia: available at <a href='http://www.electropedia.org'>http://www.electropedia.org</a></li></ul>

View File

@ -19,13 +19,13 @@
<span class='keyword'>struct</span> derived_quantity_spec <span class='keyword'>final</span> <span class='operator'>:</span> <i >derived-quantity-spec-impl</i><span class='anglebracket'>&lt;</span>Expr<span class='operator'>.</span><span class='operator'>.</span><span class='operator'>.</span><span class='anglebracket'>&gt;</span> <span class='curlybracket'>{</span><span class='curlybracket'>}</span>;
<span class='curlybracket'>}</span>
</span></span></div><div class='para' id='1'><div class='marginalizedparent'><a class='marginalized' href='#1'>1</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L1768'>#</a></div><div class='texpara'><div id='1.sentence-1' class='sentence'><span class='texttt'>derived_<span class='shy'></span>quantity_<span class='shy'></span>spec</span> is used by the library
</span></span></div><div class='para' id='1'><div class='marginalizedparent'><a class='marginalized' href='#1'>1</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L1768'>#</a></div><div class='texpara'><div id='1.sentence-1' class='sentence'><span class='texttt'>derived_<span class='shy'></span>quantity_<span class='shy'></span>spec</span> is used by the library
to represent the result of a quantity calculus not equal to a named quantity<a class='hidden_link' href='#1.sentence-1'>.</a></div> <div id='example-1' class='example'><div class='texpara'>[<i>Example&nbsp;<a href='#example-1'>1</a></i>:&ensp;<span class='codeblock'><span class='keyword'>constexpr</span> <span class='keyword'>auto</span> area <span class='operator'>=</span> pow<span class='anglebracket'>&lt;</span><span class='literal'>2</span><span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span>isq<span class='operator'>::</span>length<span class='parenthesis'>)</span>;
<span class='keyword'>int</span> x <span class='operator'>=</span> area; <span class='comment'>// error: cannot construct from <span class='tcode_in_codeblock'>derived_<span class='shy'></span>quantity_<span class='shy'></span>spec&lt;power&lt;isq&#x200b;::&#x200b;length, 2&gt;&gt;</span></span>
</span>&nbsp;<i>end example</i>]</div></div> <div id='1.sentence-2' class='sentence'>
A program that instantiates a specialization of <span class='texttt'>derived_<span class='shy'></span>quantity_<span class='shy'></span>spec</span>
that is not a possible result of the library specifications
is ill-formed, no diagnostic required<a class='hidden_link' href='#1.sentence-2'>.</a></div></div></div><div class='para' id='2'><div class='marginalizedparent'><a class='marginalized' href='#2'>2</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L1781'>#</a></div><div class='texpara'><div id='2.sentence-1' class='sentence'>Let
is ill-formed, no diagnostic required<a class='hidden_link' href='#1.sentence-2'>.</a></div></div></div><div class='para' id='2'><div class='marginalizedparent'><a class='marginalized' href='#2'>2</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L1781'>#</a></div><div class='texpara'><div id='2.sentence-1' class='sentence'>Let
<ul class='itemize'><li id='2.1'><div class='marginalizedparent' style='left:-27mm'><a class='marginalized' href='#2.1'>(2.1)</a></div><span class='texttt'>Nums</span> and <span class='texttt'>Dens</span>
be packs denoting the template arguments of
<span class='texttt'><span class='texttt'><i >base</i></span><span class='operator'>&#x200b;::&#x200b;</span><span class='texttt'><i >nums</i></span></span> and <span class='texttt'><span class='texttt'><i >base</i></span><span class='operator'>&#x200b;::&#x200b;</span><span class='texttt'><i >dens</i></span></span>, respectively,</li><li id='2.2'><div class='marginalizedparent' style='left:-27mm'><a class='marginalized' href='#2.2'>(2.2)</a></div><span class='texttt'><i >QUANTITY-CHARACTER-OF</i><span class='parenthesis'>(</span>Pack<span class='parenthesis'>)</span></span> be

View File

@ -3,4 +3,4 @@
<span class='keyword'>struct</span> dimensionless <span class='keyword'>final</span> <span class='operator'>:</span> quantity_spec<span class='anglebracket'>&lt;</span>derived_quantity_spec<span class='anglebracket'>&lt;</span><span class='anglebracket'>&gt;</span><span class='anglebracket'>&gt;</span> <span class='curlybracket'>{</span><span class='curlybracket'>}</span>;
<span class='curlybracket'>}</span>
</span></span></div><div class='para' id='1'><div class='marginalizedparent'><a class='marginalized' href='#1'>1</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L1813'>#</a></div><div class='texpara'><div id='1.sentence-1' class='sentence'><span class='texttt'>dimensionless</span> represents the base 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='#1.sentence-1'>.</a></div></div></div></div></body></html>
</span></span></div><div class='para' id='1'><div class='marginalizedparent'><a class='marginalized' href='#1'>1</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L1813'>#</a></div><div class='texpara'><div id='1.sentence-1' class='sentence'><span class='texttt'>dimensionless</span> represents the base 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='#1.sentence-1'>.</a></div></div></div></div></body></html>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,7 +1,7 @@
<!DOCTYPE html><html lang='en'><head><title>[get.common.qty.spec]</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#get.common.qty.spec'>[qty.ref]</a></h2><h3 ><a class='secnum' style='min-width:80pt'>5.4.3</a> Quantity specification <a class='abbr_ref' href='qty.spec.html#get.common.qty.spec'>[qty.spec]</a></h3><h4 ><a class='secnum' style='min-width:95pt'>5.4.3.6</a> Hierarchy algorithms <a class='abbr_ref' href='qty.spec.hier.algos.html#get.common.qty.spec'>[qty.spec.hier.algos]</a></h4><h4 ><a class='secnum' style='min-width:110pt'>5.4.3.6.3</a> Get common quantity specification <a class='abbr_ref'>[get.common.qty.spec]</a></h4><div class='texpara'><div id='lib:QuantitySpec,get_common_quantity_spec'><div id='lib:get_common_quantity_spec,QuantitySpec'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:get_common_quantity_spec,QuantitySpec'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>consteval</span> <a href='qty.spec.concepts.html#concept:QuantitySpec' title='5.4.3.2&emsp;Concepts&emsp;[qty.spec.concepts]'><span id='conceptref:QuantitySpec'><span class='texttt'>QuantitySpec</span></span></a> <span class='keyword'>auto</span> get_common_quantity_spec<span class='parenthesis'>(</span><a href='qty.spec.concepts.html#concept:QuantitySpec' title='5.4.3.2&emsp;Concepts&emsp;[qty.spec.concepts]'><span id='conceptref:QuantitySpec_'><span class='texttt'>QuantitySpec</span></span></a> <span class='keyword'>auto</span><span class='operator'>.</span><span class='operator'>.</span><span class='operator'>.</span> qs<span class='parenthesis'>)</span>
<span class='keyword'>requires</span> <i ><span class='texttt'>see below</span></i>;
</code></div></div></div></div><div class='para' id='1'><div class='marginalizedparent'><a class='marginalized' href='#1'>1</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L2147'>#</a></div><div class='texpara'><div id='1.sentence-1' class='sentence'>Let
<ul class='itemize'><li id='1.1'><div class='marginalizedparent' style='left:-39mm'><a class='marginalized' href='#1.1'>(1.1)</a></div><span class='texttt'>q1</span> be <span class='texttt'>qs<span class='operator'>.</span><span class='operator'>.</span><span class='operator'>.</span><span class='squarebracket'>[</span><span class='literal'>0</span><span class='squarebracket'>]</span></span>,</li><li id='1.2'><div class='marginalizedparent' style='left:-39mm'><a class='marginalized' href='#1.2'>(1.2)</a></div><span class='texttt'>q2</span> be <span class='texttt'>qs<span class='operator'>.</span><span class='operator'>.</span><span class='operator'>.</span><span class='squarebracket'>[</span><span class='literal'>1</span><span class='squarebracket'>]</span></span>,</li><li id='1.3'><div class='marginalizedparent' style='left:-39mm'><a class='marginalized' href='#1.3'>(1.3)</a></div><span class='texttt'>Q1</span> be <span class='texttt'><span class='keyword'>decltype</span><span class='parenthesis'>(</span>q1<span class='parenthesis'>)</span></span>,</li><li id='1.4'><div class='marginalizedparent' style='left:-39mm'><a class='marginalized' href='#1.4'>(1.4)</a></div><span class='texttt'>Q2</span> be <span class='texttt'><span class='keyword'>decltype</span><span class='parenthesis'>(</span>q2<span class='parenthesis'>)</span></span>, and</li><li id='1.5'><div class='marginalizedparent' style='left:-39mm'><a class='marginalized' href='#1.5'>(1.5)</a></div><span class='texttt'>rest</span> be a pack denoting the elements of <span class='texttt'>qs</span> without <span class='texttt'>q1</span> and <span class='texttt'>q2</span><a class='hidden_link' href='#1.sentence-1'>.</a></li></ul></div></div></div></div><div class='para' id='2'><div class='marginalizedparent'><a class='marginalized' href='#2'>2</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L2162'>#</a></div><div class='texpara'><div id='2.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
</code></div></div></div></div><div class='para' id='1'><div class='marginalizedparent'><a class='marginalized' href='#1'>1</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L2147'>#</a></div><div class='texpara'><div id='1.sentence-1' class='sentence'>Let
<ul class='itemize'><li id='1.1'><div class='marginalizedparent' style='left:-39mm'><a class='marginalized' href='#1.1'>(1.1)</a></div><span class='texttt'>q1</span> be <span class='texttt'>qs<span class='operator'>.</span><span class='operator'>.</span><span class='operator'>.</span><span class='squarebracket'>[</span><span class='literal'>0</span><span class='squarebracket'>]</span></span>,</li><li id='1.2'><div class='marginalizedparent' style='left:-39mm'><a class='marginalized' href='#1.2'>(1.2)</a></div><span class='texttt'>q2</span> be <span class='texttt'>qs<span class='operator'>.</span><span class='operator'>.</span><span class='operator'>.</span><span class='squarebracket'>[</span><span class='literal'>1</span><span class='squarebracket'>]</span></span>,</li><li id='1.3'><div class='marginalizedparent' style='left:-39mm'><a class='marginalized' href='#1.3'>(1.3)</a></div><span class='texttt'>Q1</span> be <span class='texttt'><span class='keyword'>decltype</span><span class='parenthesis'>(</span>q1<span class='parenthesis'>)</span></span>,</li><li id='1.4'><div class='marginalizedparent' style='left:-39mm'><a class='marginalized' href='#1.4'>(1.4)</a></div><span class='texttt'>Q2</span> be <span class='texttt'><span class='keyword'>decltype</span><span class='parenthesis'>(</span>q2<span class='parenthesis'>)</span></span>, and</li><li id='1.5'><div class='marginalizedparent' style='left:-39mm'><a class='marginalized' href='#1.5'>(1.5)</a></div><span class='texttt'>rest</span> be a pack denoting the elements of <span class='texttt'>qs</span> without <span class='texttt'>q1</span> and <span class='texttt'>q2</span><a class='hidden_link' href='#1.sentence-1'>.</a></li></ul></div></div></div></div><div class='para' id='2'><div class='marginalizedparent'><a class='marginalized' href='#2'>2</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L2162'>#</a></div><div class='texpara'><div id='2.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
<span class='codeblock'><span class='keyword'>if</span> <span class='keyword'>constexpr</span> <span class='parenthesis'>(</span><span class='keyword'>sizeof</span><span class='operator'>.</span><span class='operator'>.</span><span class='operator'>.</span><span class='parenthesis'>(</span>qs<span class='parenthesis'>)</span> <span class='operator'>=</span><span class='operator'>=</span> <span class='literal'>1</span><span class='parenthesis'>)</span>
<span class='keyword'>return</span> q1;
<span class='keyword'>else</span> <span class='keyword'>if</span> <span class='keyword'>constexpr</span> <span class='parenthesis'>(</span><span class='keyword'>sizeof</span><span class='operator'>.</span><span class='operator'>.</span><span class='operator'>.</span><span class='parenthesis'>(</span>qs<span class='parenthesis'>)</span> <span class='operator'>=</span><span class='operator'>=</span> <span class='literal'>2</span><span class='parenthesis'>)</span> <span class='curlybracket'>{</span>
@ -35,7 +35,7 @@
<span class='keyword'>return</span> <i >get-kind-tree-root</i><span class='parenthesis'>(</span>q1<span class='parenthesis'>)</span>;
<span class='curlybracket'>}</span> <span class='keyword'>else</span>
<span class='keyword'>return</span> get_common_quantity_spec<span class='parenthesis'>(</span>get_common_quantity_spec<span class='parenthesis'>(</span>q1, q2<span class='parenthesis'>)</span>, rest<span class='operator'>.</span><span class='operator'>.</span><span class='operator'>.</span><span class='parenthesis'>)</span>;
</span></div></div></div></div><div class='para' id='3'><div class='marginalizedparent'><a class='marginalized' href='#3'>3</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L2201'>#</a></div><div class='texpara'><div id='3.sentence-1' class='sentence'><i >Remarks</i>: The expression in the <span class='textsf'><i >requires-clause</i></span> is equivalent to:
</span></div></div></div></div><div class='para' id='3'><div class='marginalizedparent'><a class='marginalized' href='#3'>3</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L2201'>#</a></div><div class='texpara'><div id='3.sentence-1' class='sentence'><i >Remarks</i>: The expression in the <span class='textsf'><i >requires-clause</i></span> is equivalent to:
<span class='codeblock'><span class='parenthesis'>(</span><span class='keyword'>sizeof</span><span class='operator'>.</span><span class='operator'>.</span><span class='operator'>.</span><span class='parenthesis'>(</span>qs<span class='parenthesis'>)</span> <span class='operator'>!</span><span class='operator'>=</span> <span class='literal'>0</span> <span class='operator'>&amp;</span><span class='operator'>&amp;</span>
<span class='parenthesis'>(</span><span class='keyword'>sizeof</span><span class='operator'>.</span><span class='operator'>.</span><span class='operator'>.</span><span class='parenthesis'>(</span>qs<span class='parenthesis'>)</span> <span class='operator'>=</span><span class='operator'>=</span> <span class='literal'>1</span> <span class='operator'>|</span><span class='operator'>|</span>
<span class='parenthesis'>(</span><span class='keyword'>sizeof</span><span class='operator'>.</span><span class='operator'>.</span><span class='operator'>.</span><span class='parenthesis'>(</span>qs<span class='parenthesis'>)</span> <span class='operator'>=</span><span class='operator'>=</span> <span class='literal'>2</span> <span class='operator'>&amp;</span><span class='operator'>&amp;</span>

File diff suppressed because one or more lines are too long

View File

@ -8,4 +8,4 @@
<span class='curlybracket'>}</span>;
<span class='curlybracket'>}</span>
</span></span></div><div class='para' id='1'><div class='marginalizedparent'><a class='marginalized' href='#1'>1</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L1832'>#</a></div><div class='texpara'><div id='1.sentence-1' class='sentence'><span class='texttt'>kind_<span class='shy'></span>of<span class='anglebracket'>&lt;</span>Q<span class='anglebracket'>&gt;</span></span> represents a kind of quantity (<a href="https://www.electropedia.org/iev/iev.nsf/display?openform&ievref=112-01-04">IEC 60050, 112-01-04</a>) <span class='texttt'>Q</span><a class='hidden_link' href='#1.sentence-1'>.</a></div></div></div></div></body></html>
</span></span></div><div class='para' id='1'><div class='marginalizedparent'><a class='marginalized' href='#1'>1</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L1832'>#</a></div><div class='texpara'><div id='1.sentence-1' class='sentence'><span class='texttt'>kind_<span class='shy'></span>of<span class='anglebracket'>&lt;</span>Q<span class='anglebracket'>&gt;</span></span> represents a kind of quantity (<a href="https://www.electropedia.org/iev/iev.nsf/display?openform&ievref=112-01-04">IEC 60050, 112-01-04</a>) <span class='texttt'>Q</span><a class='hidden_link' href='#1.sentence-1'>.</a></div></div></div></div></body></html>

File diff suppressed because one or more lines are too long

View File

@ -6,5 +6,5 @@
<span class='curlybracket'>}</span>;
<span class='curlybracket'>}</span>
</span></div><div class='para' id='1'><div class='marginalizedparent'><a class='marginalized' href='#1'>1</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L5491'>#</a></div><div class='texpara'><div id='1.sentence-1' class='sentence'>An <a class='hidden_link' href='#def:origin,absolute' title='5.7.2.3.1&emsp;Absolute&emsp;[qty.abs.pt.orig]'><span id='def:origin,absolute'><i >absolute origin</i></span></a> is an origin
</span></div><div class='para' id='1'><div class='marginalizedparent'><a class='marginalized' href='#1'>1</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L5491'>#</a></div><div class='texpara'><div id='1.sentence-1' class='sentence'>An <a class='hidden_link' href='#def:origin,absolute' title='5.7.2.3.1&emsp;Absolute&emsp;[qty.abs.pt.orig]'><span id='def:origin,absolute'><i >absolute origin</i></span></a> is an origin
chosen by convention and not defined in terms of another origin<a class='hidden_link' href='#1.sentence-1'>.</a></div> <div id='1.sentence-2' class='sentence'>A specialization of <span class='texttt'>absolute_<span class='shy'></span>point_<span class='shy'></span>origin</span> is used as a base type when defining an absolute origin<a class='hidden_link' href='#1.sentence-2'>.</a></div> <div id='1.sentence-3' class='sentence'><span class='texttt'>QS</span> is the quantity the origin represents<a class='hidden_link' href='#1.sentence-3'>.</a></div></div></div></div></body></html>

View File

@ -1,4 +1,4 @@
<!DOCTYPE html><html lang='en'><head><title>[qty.arith.ops]</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.6</a> Quantity <a class='abbr_ref' href='qty.html#arith.ops'>[qty]</a></h2><h3 ><a class='secnum' style='min-width:80pt'>5.6.11</a> Arithmetic operations <a class='abbr_ref'>[qty.arith.ops]</a></h3><div class='para' id='1'><div class='marginalizedparent'><a class='marginalized' href='#1'>1</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L4983'>#</a></div><div class='texpara'><div id='1.sentence-1' class='sentence'>In the following descriptions,
<!DOCTYPE html><html lang='en'><head><title>[qty.arith.ops]</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.6</a> Quantity <a class='abbr_ref' href='qty.html#arith.ops'>[qty]</a></h2><h3 ><a class='secnum' style='min-width:80pt'>5.6.11</a> Arithmetic operations <a class='abbr_ref'>[qty.arith.ops]</a></h3><div class='para' id='1'><div class='marginalizedparent'><a class='marginalized' href='#1'>1</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L4983'>#</a></div><div class='texpara'><div id='1.sentence-1' class='sentence'>In the following descriptions,
let <span class='texttt'>@</span> be the <span class='textsf'><i >operator</i></span><a class='hidden_link' href='#1.sentence-1'>.</a></div></div></div><div class='texpara'><div id='lib:quantity,operator%'><div id='lib:operator%,quantity'><div id='lib:quantity,operator-'><div id='lib:operator-,quantity'><div id='lib:quantity,operator+'><div id='lib:operator+,quantity'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:operator+,quantity'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span>std<span class='operator'>::</span>derived_from<span class='anglebracket'>&lt;</span>quantity<span class='anglebracket'>&gt;</span> Q, <span class='keyword'>auto</span> R2, <span class='keyword'>typename</span> Rep2<span class='anglebracket'>&gt;</span>
<span class='keyword'>requires</span> <a class='index' id='conceptref:CommonlyInvocableQuantities'></a><span class='texttt'><i >CommonlyInvocableQuantities</i></span><span class='anglebracket'>&lt;</span>std<span class='operator'>::</span>plus<span class='anglebracket'>&lt;</span><span class='anglebracket'>&gt;</span>, quantity, quantity<span class='anglebracket'>&lt;</span>R2, Rep2<span class='anglebracket'>&gt;</span><span class='anglebracket'>&gt;</span>
<span class='keyword'>friend</span> <span class='keyword'>constexpr</span> <a href='qty.syn.html#concept:Quantity' title='5.6.3&emsp;Class template quantity&emsp;[qty.syn]'><span id='conceptref:Quantity'><span class='texttt'>Quantity</span></span></a> <span class='keyword'>auto</span> <span class='keyword'>operator</span><span class='operator'>+</span><span class='parenthesis'>(</span><span class='keyword'>const</span> Q<span class='operator'>&amp;</span> lhs, <span class='keyword'>const</span> quantity<span class='anglebracket'>&lt;</span>R2, Rep2<span class='anglebracket'>&gt;</span><span class='operator'>&amp;</span> rhs<span class='parenthesis'>)</span>;
@ -9,7 +9,7 @@ let <span class='texttt'>@</span> be the <span class='textsf'><i >operator</i></
<span class='keyword'>requires</span><span class='parenthesis'>(</span><span class='operator'>!</span>treat_as_floating_point<span class='anglebracket'>&lt;</span>Rep<span class='anglebracket'>&gt;</span><span class='parenthesis'>)</span> <span class='operator'>&amp;</span><span class='operator'>&amp;</span> <span class='parenthesis'>(</span><span class='operator'>!</span>treat_as_floating_point<span class='anglebracket'>&lt;</span>Rep2<span class='anglebracket'>&gt;</span><span class='parenthesis'>)</span> <span class='operator'>&amp;</span><span class='operator'>&amp;</span>
<a class='index' id='conceptref:CommonlyInvocableQuantities__'></a><span class='texttt'><i >CommonlyInvocableQuantities</i></span><span class='anglebracket'>&lt;</span>std<span class='operator'>::</span>modulus<span class='anglebracket'>&lt;</span><span class='anglebracket'>&gt;</span>, quantity, quantity<span class='anglebracket'>&lt;</span>R2, Rep2<span class='anglebracket'>&gt;</span><span class='anglebracket'>&gt;</span>
<span class='keyword'>friend</span> <span class='keyword'>constexpr</span> <a href='qty.syn.html#concept:Quantity' title='5.6.3&emsp;Class template quantity&emsp;[qty.syn]'><span id='conceptref:Quantity__'><span class='texttt'>Quantity</span></span></a> <span class='keyword'>auto</span> <span class='keyword'>operator</span><span class='operator'>%</span><span class='parenthesis'>(</span><span class='keyword'>const</span> Q<span class='operator'>&amp;</span> lhs, <span class='keyword'>const</span> quantity<span class='anglebracket'>&lt;</span>R2, Rep2<span class='anglebracket'>&gt;</span><span class='operator'>&amp;</span> rhs<span class='parenthesis'>)</span>;
</code></div></div></div></div></div></div></div></div><div class='para' id='2'><div class='marginalizedparent'><a class='marginalized' href='#2'>2</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L5004'>#</a></div><div class='texpara'><div id='2.sentence-1' class='sentence'>Let <i >F</i> be the first argument to <a class='index' id='conceptref:CommonlyInvocableQuantities___'></a><span class='texttt'><i >CommonlyInvocableQuantities</i></span><a class='hidden_link' href='#2.sentence-1'>.</a></div></div></div></div><div class='para' id='3'><div class='marginalizedparent'><a class='marginalized' href='#3'>3</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L5007'>#</a></div><div class='texpara'><div id='3.sentence-1' class='sentence'><i >Preconditions</i>: If <span class='texttt'>@</span> is <span class='texttt'><span class='operator'>%</span></span>, then <span class='texttt'>is_<span class='shy'></span>neq_<span class='shy'></span>zero<span class='parenthesis'>(</span>rhs<span class='parenthesis'>)</span></span> is <span class='texttt'><span class='literal'>true</span></span><a class='hidden_link' href='#3.sentence-1'>.</a></div></div></div></div><div class='para' id='4'><div class='marginalizedparent'><a class='marginalized' href='#4'>4</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L5011'>#</a></div><div class='texpara'><div id='4.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
</code></div></div></div></div></div></div></div></div><div class='para' id='2'><div class='marginalizedparent'><a class='marginalized' href='#2'>2</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L5004'>#</a></div><div class='texpara'><div id='2.sentence-1' class='sentence'>Let <i >F</i> be the first argument to <a class='index' id='conceptref:CommonlyInvocableQuantities___'></a><span class='texttt'><i >CommonlyInvocableQuantities</i></span><a class='hidden_link' href='#2.sentence-1'>.</a></div></div></div></div><div class='para' id='3'><div class='marginalizedparent'><a class='marginalized' href='#3'>3</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L5007'>#</a></div><div class='texpara'><div id='3.sentence-1' class='sentence'><i >Preconditions</i>: If <span class='texttt'>@</span> is <span class='texttt'><span class='operator'>%</span></span>, then <span class='texttt'>is_<span class='shy'></span>neq_<span class='shy'></span>zero<span class='parenthesis'>(</span>rhs<span class='parenthesis'>)</span></span> is <span class='texttt'><span class='literal'>true</span></span><a class='hidden_link' href='#3.sentence-1'>.</a></div></div></div></div><div class='para' id='4'><div class='marginalizedparent'><a class='marginalized' href='#4'>4</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L5011'>#</a></div><div class='texpara'><div id='4.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
<span class='codeblock'><span class='keyword'>using</span> ret <span class='operator'>=</span> <i >common-quantity-for</i><span class='anglebracket'>&lt;</span><i >F</i>, quantity, quantity<span class='anglebracket'>&lt;</span>R2, Rep2<span class='anglebracket'>&gt;</span><span class='anglebracket'>&gt;</span>;
<span class='keyword'>const</span> ret ret_lhs<span class='parenthesis'>(</span>lhs<span class='parenthesis'>)</span>;
<span class='keyword'>const</span> ret ret_rhs<span class='parenthesis'>(</span>rhs<span class='parenthesis'>)</span>;
@ -28,7 +28,7 @@ let <span class='texttt'>@</span> be the <span class='textsf'><i >operator</i></
<span class='keyword'>requires</span><span class='parenthesis'>(</span>Q<span class='operator'>::</span>unit <span class='operator'>=</span><span class='operator'>=</span> <span class='operator'>::</span>mp_units<span class='operator'>::</span>one<span class='parenthesis'>)</span> <span class='operator'>&amp;</span><span class='operator'>&amp;</span>
<a class='index' id='conceptref:InvokeResultOf__'></a><span class='texttt'><i >InvokeResultOf</i></span><span class='anglebracket'>&lt;</span>quantity_spec, std<span class='operator'>::</span>modulus<span class='anglebracket'>&lt;</span><span class='anglebracket'>&gt;</span>, Rep, <span class='keyword'>const</span> Value<span class='operator'>&amp;</span><span class='anglebracket'>&gt;</span>
<span class='keyword'>friend</span> <span class='keyword'>constexpr</span> <a href='qty.syn.html#concept:Quantity' title='5.6.3&emsp;Class template quantity&emsp;[qty.syn]'><span id='conceptref:Quantity_____'><span class='texttt'>Quantity</span></span></a> <span class='keyword'>auto</span> <span class='keyword'>operator</span><span class='operator'>%</span><span class='parenthesis'>(</span><span class='keyword'>const</span> Q<span class='operator'>&amp;</span> lhs, <span class='keyword'>const</span> Value<span class='operator'>&amp;</span> rhs<span class='parenthesis'>)</span>;
</code></div></div></div></div></div></div></div></div><div class='para' id='5'><div class='marginalizedparent'><a class='marginalized' href='#5'>5</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L5043'>#</a></div><div class='texpara'><div id='5.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
</code></div></div></div></div></div></div></div></div><div class='para' id='5'><div class='marginalizedparent'><a class='marginalized' href='#5'>5</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L5043'>#</a></div><div class='texpara'><div id='5.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
<span class='texttt'><span class='keyword'>return</span> lhs @ <span class='operator'>&#x200b;::&#x200b;</span>mp_<span class='shy'></span>units<span class='operator'>&#x200b;::&#x200b;</span>quantity<span class='curlybracket'>{</span>rhs<span class='curlybracket'>}</span>;</span></div></div></div></div><div class='texpara'><div id='lib:quantity,operator%__'><div id='lib:operator%,quantity__'><div id='lib:quantity,operator-__'><div id='lib:operator-,quantity__'><div id='lib:quantity,operator+__'><div id='lib:operator+,quantity__'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:operator+,quantity__'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span>std<span class='operator'>::</span>derived_from<span class='anglebracket'>&lt;</span>quantity<span class='anglebracket'>&gt;</span> Q, <a href='qty.rep.concepts.html#concept:Representation' title='5.5.4&emsp;Concepts&emsp;[qty.rep.concepts]'><span id='conceptref:Representation___'><span class='texttt'>Representation</span></span></a> Value<span class='anglebracket'>&gt;</span>
<span class='keyword'>requires</span><span class='parenthesis'>(</span>Q<span class='operator'>::</span>unit <span class='operator'>=</span><span class='operator'>=</span> <span class='operator'>::</span>mp_units<span class='operator'>::</span>one<span class='parenthesis'>)</span> <span class='operator'>&amp;</span><span class='operator'>&amp;</span>
<a class='index' id='conceptref:InvokeResultOf___'></a><span class='texttt'><i >InvokeResultOf</i></span><span class='anglebracket'>&lt;</span>quantity_spec, std<span class='operator'>::</span>plus<span class='anglebracket'>&lt;</span><span class='anglebracket'>&gt;</span>, Rep, <span class='keyword'>const</span> Value<span class='operator'>&amp;</span><span class='anglebracket'>&gt;</span>
@ -41,14 +41,14 @@ let <span class='texttt'>@</span> be the <span class='textsf'><i >operator</i></
<span class='keyword'>requires</span><span class='parenthesis'>(</span>Q<span class='operator'>::</span>unit <span class='operator'>=</span><span class='operator'>=</span> <span class='operator'>::</span>mp_units<span class='operator'>::</span>one<span class='parenthesis'>)</span> <span class='operator'>&amp;</span><span class='operator'>&amp;</span>
<a class='index' id='conceptref:InvokeResultOf_____'></a><span class='texttt'><i >InvokeResultOf</i></span><span class='anglebracket'>&lt;</span>quantity_spec, std<span class='operator'>::</span>modulus<span class='anglebracket'>&lt;</span><span class='anglebracket'>&gt;</span>, Rep, <span class='keyword'>const</span> Value<span class='operator'>&amp;</span><span class='anglebracket'>&gt;</span>
<span class='keyword'>friend</span> <span class='keyword'>constexpr</span> <a href='qty.syn.html#concept:Quantity' title='5.6.3&emsp;Class template quantity&emsp;[qty.syn]'><span id='conceptref:Quantity________'><span class='texttt'>Quantity</span></span></a> <span class='keyword'>auto</span> <span class='keyword'>operator</span><span class='operator'>%</span><span class='parenthesis'>(</span><span class='keyword'>const</span> Value<span class='operator'>&amp;</span> lhs, <span class='keyword'>const</span> Q<span class='operator'>&amp;</span> rhs<span class='parenthesis'>)</span>;
</code></div></div></div></div></div></div></div></div><div class='para' id='6'><div class='marginalizedparent'><a class='marginalized' href='#6'>6</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L5068'>#</a></div><div class='texpara'><div id='6.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
</code></div></div></div></div></div></div></div></div><div class='para' id='6'><div class='marginalizedparent'><a class='marginalized' href='#6'>6</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L5068'>#</a></div><div class='texpara'><div id='6.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
<span class='texttt'><span class='keyword'>return</span> <span class='operator'>&#x200b;::&#x200b;</span>mp_<span class='shy'></span>units<span class='operator'>&#x200b;::&#x200b;</span>quantity<span class='curlybracket'>{</span>lhs<span class='curlybracket'>}</span> @ rhs;</span></div></div></div></div><div class='texpara'><div id='lib:quantity,operator/'><div id='lib:operator/,quantity'><div id='lib:quantity,operator*'><div id='lib:operator*,quantity'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:operator*,quantity'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span>std<span class='operator'>::</span>derived_from<span class='anglebracket'>&lt;</span>quantity<span class='anglebracket'>&gt;</span> Q, <span class='keyword'>auto</span> R2, <span class='keyword'>typename</span> Rep2<span class='anglebracket'>&gt;</span>
<span class='keyword'>requires</span> <a class='index' id='conceptref:InvocableQuantities'></a><span class='texttt'><i >InvocableQuantities</i></span><span class='anglebracket'>&lt;</span>std<span class='operator'>::</span>multiplies<span class='anglebracket'>&lt;</span><span class='anglebracket'>&gt;</span>, quantity, quantity<span class='anglebracket'>&lt;</span>R2, Rep2<span class='anglebracket'>&gt;</span><span class='anglebracket'>&gt;</span>
<span class='keyword'>friend</span> <span class='keyword'>constexpr</span> <a href='qty.syn.html#concept:Quantity' title='5.6.3&emsp;Class template quantity&emsp;[qty.syn]'><span id='conceptref:Quantity_________'><span class='texttt'>Quantity</span></span></a> <span class='keyword'>auto</span> <span class='keyword'>operator</span><span class='operator'>*</span><span class='parenthesis'>(</span><span class='keyword'>const</span> Q<span class='operator'>&amp;</span> lhs, <span class='keyword'>const</span> quantity<span class='anglebracket'>&lt;</span>R2, Rep2<span class='anglebracket'>&gt;</span><span class='operator'>&amp;</span> rhs<span class='parenthesis'>)</span>;
<span class='keyword'>template</span><span class='anglebracket'>&lt;</span>std<span class='operator'>::</span>derived_from<span class='anglebracket'>&lt;</span>quantity<span class='anglebracket'>&gt;</span> Q, <span class='keyword'>auto</span> R2, <span class='keyword'>typename</span> Rep2<span class='anglebracket'>&gt;</span>
<span class='keyword'>requires</span> <a class='index' id='conceptref:InvocableQuantities_'></a><span class='texttt'><i >InvocableQuantities</i></span><span class='anglebracket'>&lt;</span>std<span class='operator'>::</span>divides<span class='anglebracket'>&lt;</span><span class='anglebracket'>&gt;</span>, quantity, quantity<span class='anglebracket'>&lt;</span>R2, Rep2<span class='anglebracket'>&gt;</span><span class='anglebracket'>&gt;</span>
<span class='keyword'>friend</span> <span class='keyword'>constexpr</span> <a href='qty.syn.html#concept:Quantity' title='5.6.3&emsp;Class template quantity&emsp;[qty.syn]'><span id='conceptref:Quantity__________'><span class='texttt'>Quantity</span></span></a> <span class='keyword'>auto</span> <span class='keyword'>operator</span><span class='operator'>/</span><span class='parenthesis'>(</span><span class='keyword'>const</span> Q<span class='operator'>&amp;</span> lhs, <span class='keyword'>const</span> quantity<span class='anglebracket'>&lt;</span>R2, Rep2<span class='anglebracket'>&gt;</span><span class='operator'>&amp;</span> rhs<span class='parenthesis'>)</span>;
</code></div></div></div></div></div></div><div class='para' id='7'><div class='marginalizedparent'><a class='marginalized' href='#7'>7</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L5086'>#</a></div><div class='texpara'><div id='7.sentence-1' class='sentence'><i >Preconditions</i>: If <span class='texttt'>@</span> is <span class='texttt'><span class='operator'>/</span></span>, then <span class='texttt'>is_<span class='shy'></span>neq_<span class='shy'></span>zero<span class='parenthesis'>(</span>rhs<span class='parenthesis'>)</span></span> is <span class='texttt'><span class='literal'>true</span></span><a class='hidden_link' href='#7.sentence-1'>.</a></div></div></div></div><div class='para' id='8'><div class='marginalizedparent'><a class='marginalized' href='#8'>8</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L5090'>#</a></div><div class='texpara'><div id='8.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
</code></div></div></div></div></div></div><div class='para' id='7'><div class='marginalizedparent'><a class='marginalized' href='#7'>7</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L5086'>#</a></div><div class='texpara'><div id='7.sentence-1' class='sentence'><i >Preconditions</i>: If <span class='texttt'>@</span> is <span class='texttt'><span class='operator'>/</span></span>, then <span class='texttt'>is_<span class='shy'></span>neq_<span class='shy'></span>zero<span class='parenthesis'>(</span>rhs<span class='parenthesis'>)</span></span> is <span class='texttt'><span class='literal'>true</span></span><a class='hidden_link' href='#7.sentence-1'>.</a></div></div></div></div><div class='para' id='8'><div class='marginalizedparent'><a class='marginalized' href='#8'>8</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L5090'>#</a></div><div class='texpara'><div id='8.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
<span class='codeblock'><span class='keyword'>return</span> <span class='operator'>::</span>mp_units<span class='operator'>::</span>quantity<span class='curlybracket'>{</span>
lhs<span class='operator'>.</span>numerical_value_ref_in<span class='parenthesis'>(</span>unit<span class='parenthesis'>)</span> @ rhs<span class='operator'>.</span>numerical_value_ref_in<span class='parenthesis'>(</span>rhs<span class='operator'>.</span>unit<span class='parenthesis'>)</span>, R @ R2<span class='curlybracket'>}</span>;
</span></div></div></div></div><div class='texpara'><div id='lib:quantity,operator/_'><div id='lib:operator/,quantity_'><div id='lib:quantity,operator*_'><div id='lib:operator*,quantity_'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:operator*,quantity_'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span>std<span class='operator'>::</span>derived_from<span class='anglebracket'>&lt;</span>quantity<span class='anglebracket'>&gt;</span> Q, <span class='keyword'>typename</span> Value<span class='anglebracket'>&gt;</span>
@ -59,7 +59,7 @@ let <span class='texttt'>@</span> be the <span class='textsf'><i >operator</i></
<span class='keyword'>requires</span><span class='parenthesis'>(</span><span class='operator'>!</span><a href='qty.syn.html#concept:Quantity' title='5.6.3&emsp;Class template quantity&emsp;[qty.syn]'><span id='conceptref:Quantity____________'><span class='texttt'>Quantity</span></span></a><span class='anglebracket'>&lt;</span>Value<span class='anglebracket'>&gt;</span><span class='parenthesis'>)</span> <span class='operator'>&amp;</span><span class='operator'>&amp;</span> <span class='parenthesis'>(</span><span class='operator'>!</span><a href='qty.ref.concepts.html#concept:Reference' title='5.4.5&emsp;Concepts&emsp;[qty.ref.concepts]'><span id='conceptref:Reference_'><span class='texttt'>Reference</span></span></a><span class='anglebracket'>&lt;</span>Value<span class='anglebracket'>&gt;</span><span class='parenthesis'>)</span> <span class='operator'>&amp;</span><span class='operator'>&amp;</span>
<a class='index' id='conceptref:InvokeResultOf_______'></a><span class='texttt'><i >InvokeResultOf</i></span><span class='anglebracket'>&lt;</span>quantity_spec, std<span class='operator'>::</span>divides<span class='anglebracket'>&lt;</span><span class='anglebracket'>&gt;</span>, Rep, <span class='keyword'>const</span> Value<span class='operator'>&amp;</span><span class='anglebracket'>&gt;</span>
<span class='keyword'>friend</span> <span class='keyword'>constexpr</span> <a href='qty.syn.html#concept:QuantityOf' title='5.6.3&emsp;Class template quantity&emsp;[qty.syn]'><span id='conceptref:QuantityOf_'><span class='texttt'>QuantityOf</span></span></a><span class='anglebracket'>&lt;</span>quantity_spec<span class='anglebracket'>&gt;</span> <span class='keyword'>auto</span> <span class='keyword'>operator</span><span class='operator'>/</span><span class='parenthesis'>(</span><span class='keyword'>const</span> Q<span class='operator'>&amp;</span> lhs, <span class='keyword'>const</span> Value<span class='operator'>&amp;</span> rhs<span class='parenthesis'>)</span>;
</code></div></div></div></div></div></div><div class='para' id='9'><div class='marginalizedparent'><a class='marginalized' href='#9'>9</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L5113'>#</a></div><div class='texpara'><div id='9.sentence-1' class='sentence'><i >Preconditions</i>: If <span class='texttt'>@</span> is <span class='texttt'><span class='operator'>/</span></span>, then <span class='texttt'>rhs <span class='operator'>!</span><span class='operator'>=</span> representation_<span class='shy'></span>values<span class='anglebracket'>&lt;</span>Value<span class='anglebracket'>&gt;</span><span class='operator'>&#x200b;::&#x200b;</span>zero<span class='parenthesis'>(</span><span class='parenthesis'>)</span></span> is <span class='texttt'><span class='literal'>true</span></span><a class='hidden_link' href='#9.sentence-1'>.</a></div></div></div></div><div class='para' id='10'><div class='marginalizedparent'><a class='marginalized' href='#10'>10</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L5117'>#</a></div><div class='texpara'><div id='10.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
</code></div></div></div></div></div></div><div class='para' id='9'><div class='marginalizedparent'><a class='marginalized' href='#9'>9</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L5113'>#</a></div><div class='texpara'><div id='9.sentence-1' class='sentence'><i >Preconditions</i>: If <span class='texttt'>@</span> is <span class='texttt'><span class='operator'>/</span></span>, then <span class='texttt'>rhs <span class='operator'>!</span><span class='operator'>=</span> representation_<span class='shy'></span>values<span class='anglebracket'>&lt;</span>Value<span class='anglebracket'>&gt;</span><span class='operator'>&#x200b;::&#x200b;</span>zero<span class='parenthesis'>(</span><span class='parenthesis'>)</span></span> is <span class='texttt'><span class='literal'>true</span></span><a class='hidden_link' href='#9.sentence-1'>.</a></div></div></div></div><div class='para' id='10'><div class='marginalizedparent'><a class='marginalized' href='#10'>10</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L5117'>#</a></div><div class='texpara'><div id='10.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
<span class='codeblock'><span class='keyword'>return</span> <span class='operator'>::</span>mp_units<span class='operator'>::</span>quantity<span class='curlybracket'>{</span>lhs<span class='operator'>.</span>numerical_value_ref_in<span class='parenthesis'>(</span>unit<span class='parenthesis'>)</span> @ rhs, R<span class='curlybracket'>}</span>;
</span></div></div></div></div><div class='texpara'><div id='lib:quantity,operator/__'><div id='lib:operator/,quantity__'><div id='lib:quantity,operator*__'><div id='lib:operator*,quantity__'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:operator*,quantity__'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><span class='keyword'>typename</span> Value, std<span class='operator'>::</span>derived_from<span class='anglebracket'>&lt;</span>quantity<span class='anglebracket'>&gt;</span> Q<span class='anglebracket'>&gt;</span>
<span class='keyword'>requires</span><span class='parenthesis'>(</span><span class='operator'>!</span><a href='qty.syn.html#concept:Quantity' title='5.6.3&emsp;Class template quantity&emsp;[qty.syn]'><span id='conceptref:Quantity_____________'><span class='texttt'>Quantity</span></span></a><span class='anglebracket'>&lt;</span>Value<span class='anglebracket'>&gt;</span><span class='parenthesis'>)</span> <span class='operator'>&amp;</span><span class='operator'>&amp;</span> <span class='parenthesis'>(</span><span class='operator'>!</span><a href='qty.ref.concepts.html#concept:Reference' title='5.4.5&emsp;Concepts&emsp;[qty.ref.concepts]'><span id='conceptref:Reference__'><span class='texttt'>Reference</span></span></a><span class='anglebracket'>&lt;</span>Value<span class='anglebracket'>&gt;</span><span class='parenthesis'>)</span> <span class='operator'>&amp;</span><span class='operator'>&amp;</span>
@ -69,6 +69,6 @@ let <span class='texttt'>@</span> be the <span class='textsf'><i >operator</i></
<span class='keyword'>requires</span><span class='parenthesis'>(</span><span class='operator'>!</span><a href='qty.syn.html#concept:Quantity' title='5.6.3&emsp;Class template quantity&emsp;[qty.syn]'><span id='conceptref:Quantity______________'><span class='texttt'>Quantity</span></span></a><span class='anglebracket'>&lt;</span>Value<span class='anglebracket'>&gt;</span><span class='parenthesis'>)</span> <span class='operator'>&amp;</span><span class='operator'>&amp;</span> <span class='parenthesis'>(</span><span class='operator'>!</span><a href='qty.ref.concepts.html#concept:Reference' title='5.4.5&emsp;Concepts&emsp;[qty.ref.concepts]'><span id='conceptref:Reference___'><span class='texttt'>Reference</span></span></a><span class='anglebracket'>&lt;</span>Value<span class='anglebracket'>&gt;</span><span class='parenthesis'>)</span> <span class='operator'>&amp;</span><span class='operator'>&amp;</span>
<a class='index' id='conceptref:InvokeResultOf_________'></a><span class='texttt'><i >InvokeResultOf</i></span><span class='anglebracket'>&lt;</span>quantity_spec, std<span class='operator'>::</span>divides<span class='anglebracket'>&lt;</span><span class='anglebracket'>&gt;</span>, <span class='keyword'>const</span> Value<span class='operator'>&amp;</span>, Rep<span class='anglebracket'>&gt;</span>
<span class='keyword'>friend</span> <span class='keyword'>constexpr</span> <a href='qty.syn.html#concept:Quantity' title='5.6.3&emsp;Class template quantity&emsp;[qty.syn]'><span id='conceptref:Quantity_______________'><span class='texttt'>Quantity</span></span></a> <span class='keyword'>auto</span> <span class='keyword'>operator</span><span class='operator'>/</span><span class='parenthesis'>(</span><span class='keyword'>const</span> Value<span class='operator'>&amp;</span> lhs, <span class='keyword'>const</span> Q<span class='operator'>&amp;</span> rhs<span class='parenthesis'>)</span>;
</code></div></div></div></div></div></div><div class='para' id='11'><div class='marginalizedparent'><a class='marginalized' href='#11'>11</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L5139'>#</a></div><div class='texpara'><div id='11.sentence-1' class='sentence'><i >Preconditions</i>: If <span class='texttt'>@</span> is <span class='texttt'><span class='operator'>/</span></span>, then <span class='texttt'>is_<span class='shy'></span>neq_<span class='shy'></span>zero<span class='parenthesis'>(</span>rhs<span class='parenthesis'>)</span></span> is <span class='texttt'><span class='literal'>true</span></span><a class='hidden_link' href='#11.sentence-1'>.</a></div></div></div></div><div class='para' id='12'><div class='marginalizedparent'><a class='marginalized' href='#12'>12</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L5143'>#</a></div><div class='texpara'><div id='12.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
</code></div></div></div></div></div></div><div class='para' id='11'><div class='marginalizedparent'><a class='marginalized' href='#11'>11</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L5139'>#</a></div><div class='texpara'><div id='11.sentence-1' class='sentence'><i >Preconditions</i>: If <span class='texttt'>@</span> is <span class='texttt'><span class='operator'>/</span></span>, then <span class='texttt'>is_<span class='shy'></span>neq_<span class='shy'></span>zero<span class='parenthesis'>(</span>rhs<span class='parenthesis'>)</span></span> is <span class='texttt'><span class='literal'>true</span></span><a class='hidden_link' href='#11.sentence-1'>.</a></div></div></div></div><div class='para' id='12'><div class='marginalizedparent'><a class='marginalized' href='#12'>12</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L5143'>#</a></div><div class='texpara'><div id='12.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
<span class='codeblock'><span class='keyword'>return</span> <span class='operator'>::</span>mp_units<span class='operator'>::</span>quantity<span class='curlybracket'>{</span>lhs @ rhs<span class='operator'>.</span>numerical_value_ref_in<span class='parenthesis'>(</span>unit<span class='parenthesis'>)</span>, <span class='operator'>::</span>mp_units<span class='operator'>::</span>one @ R<span class='curlybracket'>}</span>;
</span></div></div></div></div></div></body></html>

View File

@ -1,4 +1,4 @@
<!DOCTYPE html><html lang='en'><head><title>[qty.assign.ops]</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.6</a> Quantity <a class='abbr_ref' href='qty.html#assign.ops'>[qty]</a></h2><h3 ><a class='secnum' style='min-width:80pt'>5.6.10</a> Compound assignment operations <a class='abbr_ref'>[qty.assign.ops]</a></h3><div class='para' id='1'><div class='marginalizedparent'><a class='marginalized' href='#1'>1</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L4862'>#</a></div><div class='texpara'><div id='1.sentence-1' class='sentence'>In the following descriptions,
<!DOCTYPE html><html lang='en'><head><title>[qty.assign.ops]</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.6</a> Quantity <a class='abbr_ref' href='qty.html#assign.ops'>[qty]</a></h2><h3 ><a class='secnum' style='min-width:80pt'>5.6.10</a> Compound assignment operations <a class='abbr_ref'>[qty.assign.ops]</a></h3><div class='para' id='1'><div class='marginalizedparent'><a class='marginalized' href='#1'>1</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L4862'>#</a></div><div class='texpara'><div id='1.sentence-1' class='sentence'>In the following descriptions,
let <span class='texttt'>@</span> be the <span class='textsf'><i >operator</i></span><a class='hidden_link' href='#1.sentence-1'>.</a></div></div></div><div class='texpara'><div id='lib:quantity,operator%='><div id='lib:operator%=,quantity'><div id='lib:quantity,operator-='><div id='lib:operator-=,quantity'><div id='lib:quantity,operator+='><div id='lib:operator+=,quantity'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:operator+=,quantity'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><a class='index' id='conceptref:Mutable'></a><span class='texttt'><i >Mutable</i></span><span class='anglebracket'>&lt;</span>quantity<span class='anglebracket'>&gt;</span> Q, <span class='keyword'>auto</span> R2, <span class='keyword'>typename</span> Rep2<span class='anglebracket'>&gt;</span>
<span class='keyword'>requires</span> <i ><span class='texttt'>see below</span></i>
<span class='keyword'>friend</span> <span class='keyword'>constexpr</span> <span class='keyword'>decltype</span><span class='parenthesis'>(</span><span class='keyword'>auto</span><span class='parenthesis'>)</span> <span class='keyword'>operator</span><span class='operator'>+</span><span class='operator'>=</span><span class='parenthesis'>(</span>Q<span class='operator'>&amp;</span><span class='operator'>&amp;</span> lhs, <span class='keyword'>const</span> quantity<span class='anglebracket'>&lt;</span>R2, Rep2<span class='anglebracket'>&gt;</span><span class='operator'>&amp;</span> rhs<span class='parenthesis'>)</span>;
@ -8,23 +8,23 @@ let <span class='texttt'>@</span> be the <span class='textsf'><i >operator</i></
<span class='keyword'>template</span><span class='anglebracket'>&lt;</span><a class='index' id='conceptref:Mutable__'></a><span class='texttt'><i >Mutable</i></span><span class='anglebracket'>&lt;</span>quantity<span class='anglebracket'>&gt;</span> Q, <span class='keyword'>auto</span> R2, <span class='keyword'>typename</span> Rep2<span class='anglebracket'>&gt;</span>
<span class='keyword'>requires</span> <i ><span class='texttt'>see below</span></i>
<span class='keyword'>friend</span> <span class='keyword'>constexpr</span> <span class='keyword'>decltype</span><span class='parenthesis'>(</span><span class='keyword'>auto</span><span class='parenthesis'>)</span> <span class='keyword'>operator</span><span class='operator'>%</span><span class='operator'>=</span><span class='parenthesis'>(</span>Q<span class='operator'>&amp;</span><span class='operator'>&amp;</span> lhs, <span class='keyword'>const</span> quantity<span class='anglebracket'>&lt;</span>R2, Rep2<span class='anglebracket'>&gt;</span><span class='operator'>&amp;</span> rhs<span class='parenthesis'>)</span>;
</code></div></div></div></div></div></div></div></div><div class='para' id='2'><div class='marginalizedparent'><a class='marginalized' href='#2'>2</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L4882'>#</a></div><div class='texpara'><div id='2.sentence-1' class='sentence'><i >Preconditions</i>: If <span class='texttt'>@</span> is <span class='texttt'><span class='operator'>%</span><span class='operator'>=</span></span>, then <span class='texttt'>is_<span class='shy'></span>neq_<span class='shy'></span>zero<span class='parenthesis'>(</span>rhs<span class='parenthesis'>)</span></span> is <span class='texttt'><span class='literal'>true</span></span><a class='hidden_link' href='#2.sentence-1'>.</a></div></div></div></div><div class='para' id='3'><div class='marginalizedparent'><a class='marginalized' href='#3'>3</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L4886'>#</a></div><div class='texpara'><div id='3.sentence-1' class='sentence'><i >Effects</i>: Equivalent to
<span class='texttt'>lhs<span class='operator'>.</span><span class='texttt'><i >numerical-value</i></span> @ rhs<span class='operator'>.</span>in<span class='parenthesis'>(</span>lhs<span class='operator'>.</span>unit<span class='parenthesis'>)</span><span class='operator'>.</span><span class='texttt'><i >numerical-value</i></span></span><a class='hidden_link' href='#3.sentence-1'>.</a></div></div></div></div><div class='para' id='4'><div class='marginalizedparent'><a class='marginalized' href='#4'>4</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L4891'>#</a></div><div class='texpara'><div id='4.sentence-1' class='sentence'><i >Returns</i>: <span class='texttt'>std<span class='operator'>&#x200b;::&#x200b;</span>forward<span class='anglebracket'>&lt;</span>Q<span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span>lhs<span class='parenthesis'>)</span></span><a class='hidden_link' href='#4.sentence-1'>.</a></div></div></div></div><div class='para' id='5'><div class='marginalizedparent'><a class='marginalized' href='#5'>5</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L4895'>#</a></div><div class='texpara'><div id='5.sentence-1' class='sentence'><i >Remarks</i>: Let <i >C</i> be
</code></div></div></div></div></div></div></div></div><div class='para' id='2'><div class='marginalizedparent'><a class='marginalized' href='#2'>2</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L4882'>#</a></div><div class='texpara'><div id='2.sentence-1' class='sentence'><i >Preconditions</i>: If <span class='texttt'>@</span> is <span class='texttt'><span class='operator'>%</span><span class='operator'>=</span></span>, then <span class='texttt'>is_<span class='shy'></span>neq_<span class='shy'></span>zero<span class='parenthesis'>(</span>rhs<span class='parenthesis'>)</span></span> is <span class='texttt'><span class='literal'>true</span></span><a class='hidden_link' href='#2.sentence-1'>.</a></div></div></div></div><div class='para' id='3'><div class='marginalizedparent'><a class='marginalized' href='#3'>3</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L4886'>#</a></div><div class='texpara'><div id='3.sentence-1' class='sentence'><i >Effects</i>: Equivalent to
<span class='texttt'>lhs<span class='operator'>.</span><span class='texttt'><i >numerical-value</i></span> @ rhs<span class='operator'>.</span>in<span class='parenthesis'>(</span>lhs<span class='operator'>.</span>unit<span class='parenthesis'>)</span><span class='operator'>.</span><span class='texttt'><i >numerical-value</i></span></span><a class='hidden_link' href='#3.sentence-1'>.</a></div></div></div></div><div class='para' id='4'><div class='marginalizedparent'><a class='marginalized' href='#4'>4</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L4891'>#</a></div><div class='texpara'><div id='4.sentence-1' class='sentence'><i >Returns</i>: <span class='texttt'>std<span class='operator'>&#x200b;::&#x200b;</span>forward<span class='anglebracket'>&lt;</span>Q<span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span>lhs<span class='parenthesis'>)</span></span><a class='hidden_link' href='#4.sentence-1'>.</a></div></div></div></div><div class='para' id='5'><div class='marginalizedparent'><a class='marginalized' href='#5'>5</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L4895'>#</a></div><div class='texpara'><div id='5.sentence-1' class='sentence'><i >Remarks</i>: Let <i >C</i> be
<ul class='itemize'><li id='5.1'><div class='marginalizedparent' style='left:-39mm'><a class='marginalized' href='#5.1'>(5.1)</a></div><span class='texttt'><span class='parenthesis'>(</span><span class='operator'>!</span>treat_<span class='shy'></span>as_<span class='shy'></span>floating_<span class='shy'></span>point<span class='anglebracket'>&lt;</span>rep<span class='anglebracket'>&gt;</span><span class='parenthesis'>)</span></span> if <span class='texttt'>@</span> is <span class='texttt'><span class='operator'>%</span><span class='operator'>=</span></span>, and</li><li id='5.2'><div class='marginalizedparent' style='left:-39mm'><a class='marginalized' href='#5.2'>(5.2)</a></div><span class='texttt'><span class='literal'>true</span></span> otherwise<a class='hidden_link' href='#5.sentence-1'>.</a></li></ul></div> <div id='5.sentence-2' class='sentence'>
The expression in the <span class='textsf'><i >requires-clause</i></span> is equivalent to:
<span class='codeblock'><a class='index' id='conceptref:QuantityConvertibleTo'></a><i >QuantityConvertibleTo</i><span class='anglebracket'>&lt;</span>quantity<span class='anglebracket'>&lt;</span>R2, Rep2<span class='anglebracket'>&gt;</span>, quantity<span class='anglebracket'>&gt;</span> <span class='operator'>&amp;</span><span class='operator'>&amp;</span> <i >C</i> <span class='operator'>&amp;</span><span class='operator'>&amp;</span>
<span class='keyword'>requires</span><span class='parenthesis'>(</span>rep<span class='operator'>&amp;</span> a, <span class='keyword'>const</span> Rep2 b<span class='parenthesis'>)</span> <span class='curlybracket'>{</span>
<span class='curlybracket'>{</span> a @ b <span class='curlybracket'>}</span> <span class='operator'>-</span><span class='anglebracket'>&gt;</span> std<span class='operator'>::</span>same_as<span class='anglebracket'>&lt;</span>rep<span class='operator'>&amp;</span><span class='anglebracket'>&gt;</span>;
<span class='curlybracket'>}</span>
</span></div></div></div></div><div class='para' id='6'><div class='marginalizedparent'><a class='marginalized' href='#6'>6</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L4912'>#</a></div><div class='texpara'><div id='6.sentence-1' class='sentence'><i >Recommended practice</i>: If <span class='texttt'>equivalent<span class='parenthesis'>(</span>unit, get_<span class='shy'></span>unit<span class='parenthesis'>(</span>rhs<span class='operator'>.</span>reference<span class='parenthesis'>)</span><span class='parenthesis'>)</span></span> is <span class='texttt'><span class='literal'>true</span></span>,
</span></div></div></div></div><div class='para' id='6'><div class='marginalizedparent'><a class='marginalized' href='#6'>6</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L4912'>#</a></div><div class='texpara'><div id='6.sentence-1' class='sentence'><i >Recommended practice</i>: If <span class='texttt'>equivalent<span class='parenthesis'>(</span>unit, get_<span class='shy'></span>unit<span class='parenthesis'>(</span>rhs<span class='operator'>.</span>reference<span class='parenthesis'>)</span><span class='parenthesis'>)</span></span> is <span class='texttt'><span class='literal'>true</span></span>,
then the expression <span class='texttt'>rhs<span class='operator'>.</span>in<span class='parenthesis'>(</span>lhs<span class='operator'>.</span>unit<span class='parenthesis'>)</span></span> is replaced with <span class='texttt'>rhs</span><a class='hidden_link' href='#6.sentence-1'>.</a></div></div></div></div><div class='texpara'><div id='lib:quantity,operator/='><div id='lib:operator/=,quantity'><div id='lib:quantity,operator*='><div id='lib:operator*=,quantity'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:operator*=,quantity'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><a class='index' id='conceptref:Mutable___'></a><span class='texttt'><i >Mutable</i></span><span class='anglebracket'>&lt;</span>quantity<span class='anglebracket'>&gt;</span> Q, <a class='index' id='conceptref:ValuePreservingTo'></a><span class='texttt'><i >ValuePreservingTo</i></span><span class='anglebracket'>&lt;</span>Rep<span class='anglebracket'>&gt;</span> Value<span class='anglebracket'>&gt;</span>
<span class='keyword'>requires</span> <i ><span class='texttt'>see below</span></i>
<span class='keyword'>friend</span> <span class='keyword'>constexpr</span> <span class='keyword'>decltype</span><span class='parenthesis'>(</span><span class='keyword'>auto</span><span class='parenthesis'>)</span> <span class='keyword'>operator</span><span class='operator'>*</span><span class='operator'>=</span><span class='parenthesis'>(</span>Q<span class='operator'>&amp;</span><span class='operator'>&amp;</span> lhs, <span class='keyword'>const</span> Value<span class='operator'>&amp;</span> rhs<span class='parenthesis'>)</span>;
<span class='keyword'>template</span><span class='anglebracket'>&lt;</span><a class='index' id='conceptref:Mutable____'></a><span class='texttt'><i >Mutable</i></span><span class='anglebracket'>&lt;</span>quantity<span class='anglebracket'>&gt;</span> Q, <a class='index' id='conceptref:ValuePreservingTo_'></a><span class='texttt'><i >ValuePreservingTo</i></span><span class='anglebracket'>&lt;</span>Rep<span class='anglebracket'>&gt;</span> Value<span class='anglebracket'>&gt;</span>
<span class='keyword'>requires</span> <i ><span class='texttt'>see below</span></i>
<span class='keyword'>friend</span> <span class='keyword'>constexpr</span> <span class='keyword'>decltype</span><span class='parenthesis'>(</span><span class='keyword'>auto</span><span class='parenthesis'>)</span> <span class='keyword'>operator</span><span class='operator'>/</span><span class='operator'>=</span><span class='parenthesis'>(</span>Q<span class='operator'>&amp;</span><span class='operator'>&amp;</span> lhs, <span class='keyword'>const</span> Value<span class='operator'>&amp;</span> rhs<span class='parenthesis'>)</span>;
</code></div></div></div></div></div></div><div class='para' id='7'><div class='marginalizedparent'><a class='marginalized' href='#7'>7</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L4930'>#</a></div><div class='texpara'><div id='7.sentence-1' class='sentence'><i >Preconditions</i>: If <span class='texttt'>@</span> is <span class='texttt'><span class='operator'>/</span><span class='operator'>=</span></span>, then <span class='texttt'>rhs <span class='operator'>!</span><span class='operator'>=</span> representation_<span class='shy'></span>values<span class='anglebracket'>&lt;</span>Value<span class='anglebracket'>&gt;</span><span class='operator'>&#x200b;::&#x200b;</span>zero<span class='parenthesis'>(</span><span class='parenthesis'>)</span></span> is <span class='texttt'><span class='literal'>true</span></span><a class='hidden_link' href='#7.sentence-1'>.</a></div></div></div></div><div class='para' id='8'><div class='marginalizedparent'><a class='marginalized' href='#8'>8</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L4934'>#</a></div><div class='texpara'><div id='8.sentence-1' class='sentence'><i >Effects</i>: Equivalent to
<span class='texttt'>lhs<span class='operator'>.</span><span class='texttt'><i >numerical-value</i></span> @ rhs</span><a class='hidden_link' href='#8.sentence-1'>.</a></div></div></div></div><div class='para' id='9'><div class='marginalizedparent'><a class='marginalized' href='#9'>9</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L4939'>#</a></div><div class='texpara'><div id='9.sentence-1' class='sentence'><i >Returns</i>: <span class='texttt'>std<span class='operator'>&#x200b;::&#x200b;</span>forward<span class='anglebracket'>&lt;</span>Q<span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span>lhs<span class='parenthesis'>)</span></span><a class='hidden_link' href='#9.sentence-1'>.</a></div></div></div></div><div class='para' id='10'><div class='marginalizedparent'><a class='marginalized' href='#10'>10</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L4943'>#</a></div><div class='texpara'><div id='10.sentence-1' class='sentence'><i >Remarks</i>: The expression in the <span class='textsf'><i >requires-clause</i></span> is equivalent to:
</code></div></div></div></div></div></div><div class='para' id='7'><div class='marginalizedparent'><a class='marginalized' href='#7'>7</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L4930'>#</a></div><div class='texpara'><div id='7.sentence-1' class='sentence'><i >Preconditions</i>: If <span class='texttt'>@</span> is <span class='texttt'><span class='operator'>/</span><span class='operator'>=</span></span>, then <span class='texttt'>rhs <span class='operator'>!</span><span class='operator'>=</span> representation_<span class='shy'></span>values<span class='anglebracket'>&lt;</span>Value<span class='anglebracket'>&gt;</span><span class='operator'>&#x200b;::&#x200b;</span>zero<span class='parenthesis'>(</span><span class='parenthesis'>)</span></span> is <span class='texttt'><span class='literal'>true</span></span><a class='hidden_link' href='#7.sentence-1'>.</a></div></div></div></div><div class='para' id='8'><div class='marginalizedparent'><a class='marginalized' href='#8'>8</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L4934'>#</a></div><div class='texpara'><div id='8.sentence-1' class='sentence'><i >Effects</i>: Equivalent to
<span class='texttt'>lhs<span class='operator'>.</span><span class='texttt'><i >numerical-value</i></span> @ rhs</span><a class='hidden_link' href='#8.sentence-1'>.</a></div></div></div></div><div class='para' id='9'><div class='marginalizedparent'><a class='marginalized' href='#9'>9</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L4939'>#</a></div><div class='texpara'><div id='9.sentence-1' class='sentence'><i >Returns</i>: <span class='texttt'>std<span class='operator'>&#x200b;::&#x200b;</span>forward<span class='anglebracket'>&lt;</span>Q<span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span>lhs<span class='parenthesis'>)</span></span><a class='hidden_link' href='#9.sentence-1'>.</a></div></div></div></div><div class='para' id='10'><div class='marginalizedparent'><a class='marginalized' href='#10'>10</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L4943'>#</a></div><div class='texpara'><div id='10.sentence-1' class='sentence'><i >Remarks</i>: The expression in the <span class='textsf'><i >requires-clause</i></span> is equivalent to:
<span class='codeblock'><span class='parenthesis'>(</span><span class='operator'>!</span><a href='qty.syn.html#concept:Quantity' title='5.6.3&emsp;Class template quantity&emsp;[qty.syn]'><span id='conceptref:Quantity'><span class='tcode_in_codeblock'>Quantity</span></span></a><span class='anglebracket'>&lt;</span>Value<span class='anglebracket'>&gt;</span><span class='parenthesis'>)</span> <span class='operator'>&amp;</span><span class='operator'>&amp;</span> <span class='keyword'>requires</span><span class='parenthesis'>(</span>rep<span class='operator'>&amp;</span> a, <span class='keyword'>const</span> Value b<span class='parenthesis'>)</span> <span class='curlybracket'>{</span>
<span class='curlybracket'>{</span> a @ b <span class='curlybracket'>}</span> <span class='operator'>-</span><span class='anglebracket'>&gt;</span> std<span class='operator'>::</span>same_as<span class='anglebracket'>&lt;</span>rep<span class='operator'>&amp;</span><span class='anglebracket'>&gt;</span>;
<span class='curlybracket'>}</span>
@ -34,8 +34,8 @@ then the expression <span class='texttt'>rhs<span class='operator'>.</span>in<sp
<span class='keyword'>template</span><span class='anglebracket'>&lt;</span><a class='index' id='conceptref:Mutable______'></a><span class='texttt'><i >Mutable</i></span><span class='anglebracket'>&lt;</span>quantity<span class='anglebracket'>&gt;</span> Q, <a href='qty.syn.html#concept:QuantityOf' title='5.6.3&emsp;Class template quantity&emsp;[qty.syn]'><span id='conceptref:QuantityOf_'><span class='texttt'>QuantityOf</span></span></a><span class='anglebracket'>&lt;</span>dimensionless<span class='anglebracket'>&gt;</span> Q2<span class='anglebracket'>&gt;</span>
<span class='keyword'>requires</span> <i ><span class='texttt'>see below</span></i>
<span class='keyword'>friend</span> <span class='keyword'>constexpr</span> <span class='keyword'>decltype</span><span class='parenthesis'>(</span><span class='keyword'>auto</span><span class='parenthesis'>)</span> <span class='keyword'>operator</span><span class='operator'>/</span><span class='operator'>=</span><span class='parenthesis'>(</span>Q<span class='operator'>&amp;</span><span class='operator'>&amp;</span> lhs, <span class='keyword'>const</span> Q2<span class='operator'>&amp;</span> rhs<span class='parenthesis'>)</span>;
</code></div></div></div></div></div></div><div class='para' id='11'><div class='marginalizedparent'><a class='marginalized' href='#11'>11</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L4965'>#</a></div><div class='texpara'><div id='11.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
<span class='texttt'><span class='keyword'>return</span> std<span class='operator'>&#x200b;::&#x200b;</span>forward<span class='anglebracket'>&lt;</span>Q<span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span>lhs<span class='parenthesis'>)</span> @ rhs<span class='operator'>.</span><span class='texttt'><i >numerical-value</i></span>;</span></div></div></div></div><div class='para' id='12'><div class='marginalizedparent'><a class='marginalized' href='#12'>12</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L4970'>#</a></div><div class='texpara'><div id='12.sentence-1' class='sentence'><i >Remarks</i>: The expression in the <span class='textsf'><i >requires-clause</i></span> is equivalent to:
</code></div></div></div></div></div></div><div class='para' id='11'><div class='marginalizedparent'><a class='marginalized' href='#11'>11</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L4965'>#</a></div><div class='texpara'><div id='11.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
<span class='texttt'><span class='keyword'>return</span> std<span class='operator'>&#x200b;::&#x200b;</span>forward<span class='anglebracket'>&lt;</span>Q<span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span>lhs<span class='parenthesis'>)</span> @ rhs<span class='operator'>.</span><span class='texttt'><i >numerical-value</i></span>;</span></div></div></div></div><div class='para' id='12'><div class='marginalizedparent'><a class='marginalized' href='#12'>12</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L4970'>#</a></div><div class='texpara'><div id='12.sentence-1' class='sentence'><i >Remarks</i>: The expression in the <span class='textsf'><i >requires-clause</i></span> is equivalent to:
<span class='codeblock'><span class='parenthesis'>(</span>Q2<span class='operator'>::</span>unit <span class='operator'>=</span><span class='operator'>=</span> <span class='operator'>::</span>mp_units<span class='operator'>::</span>one<span class='parenthesis'>)</span> <span class='operator'>&amp;</span><span class='operator'>&amp;</span> <a class='index' id='conceptref:ValuePreservingTo__'></a><i >ValuePreservingTo</i><span class='anglebracket'>&lt;</span><span class='keyword'>typename</span> Q2<span class='operator'>::</span>rep, Rep<span class='anglebracket'>&gt;</span> <span class='operator'>&amp;</span><span class='operator'>&amp;</span>
<span class='keyword'>requires</span><span class='parenthesis'>(</span>rep<span class='operator'>&amp;</span> a, <span class='keyword'>const</span> Q2<span class='operator'>::</span>rep b<span class='parenthesis'>)</span> <span class='curlybracket'>{</span>
<span class='curlybracket'>{</span> a @ b <span class='curlybracket'>}</span> <span class='operator'>-</span><span class='anglebracket'>&gt;</span> std<span class='operator'>::</span>same_as<span class='anglebracket'>&lt;</span>rep<span class='operator'>&amp;</span><span class='anglebracket'>&gt;</span>;

View File

@ -7,5 +7,5 @@
<span class='curlybracket'>}</span>;
<span class='curlybracket'>}</span>
</span></span></div><div class='para' id='1'><div class='marginalizedparent'><a class='marginalized' href='#1'>1</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L2597'>#</a></div><div class='texpara'><div id='1.sentence-1' class='sentence'><span class='texttt'><i >canonical-unit</i></span> represents a unit expressed in terms of base units (<a href="https://www.electropedia.org/iev/iev.nsf/display?openform&ievref=112-01-18">IEC 60050, 112-01-18</a>)<a class='hidden_link' href='#1.sentence-1'>.</a></div> <div id='note-1' class='note'><div class='texpara'>[<i>Note&nbsp;<a href='#note-1'>1</a></i>:&ensp;<div id='1.sentence-2' class='sentence'>Other types representing units are equal only if they have the same type<a class='hidden_link' href='#1.sentence-2'>.</a></div> <div id='1.sentence-3' class='sentence'><span class='texttt'><i >canonical-unit</i></span> is used to implement binary relations other than equality<a class='hidden_link' href='#1.sentence-3'>.</a></div>&nbsp;<i>end note</i>]</div></div> <div id='1.sentence-4' class='sentence'><span class='texttt'>reference_<span class='shy'></span>unit</span> is simplified (<a href='qty.sym.expr.algos.html' title='5.3.4.4&emsp;Algorithms'>[qty.<span class='shy'></span>sym.<span class='shy'></span>expr.<span class='shy'></span>algos]</a>)<a class='hidden_link' href='#1.sentence-4'>.</a></div></div></div><div class='texpara'><div id='lib:get-canonical-unit,Unit'><div id='lib:Unit,get-canonical-unit'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:Unit,get-canonical-unit'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>consteval</span> <span class='keyword'>auto</span> <span class='texttt'><i >get-canonical-unit</i></span><span class='parenthesis'>(</span><a href='qty.unit.concepts.html#concept:Unit' title='5.4.4.4&emsp;Concepts&emsp;[qty.unit.concepts]'><span id='conceptref:Unit_'><span class='texttt'>Unit</span></span></a> <span class='keyword'>auto</span> u<span class='parenthesis'>)</span>; <span class='comment'>// <i >exposition only</i></span>
</code></div></div></div></div><div class='para' id='2'><div class='marginalizedparent'><a class='marginalized' href='#2'>2</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L2611'>#</a></div><div class='texpara'><div id='2.sentence-1' class='sentence'><i >Returns</i>: The instantiation of <span class='texttt'><i >canonical-unit</i></span> for <span class='texttt'>u</span><a class='hidden_link' href='#2.sentence-1'>.</a></div></div></div></div></div></body></html>
</span></span></div><div class='para' id='1'><div class='marginalizedparent'><a class='marginalized' href='#1'>1</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L2597'>#</a></div><div class='texpara'><div id='1.sentence-1' class='sentence'><span class='texttt'><i >canonical-unit</i></span> represents a unit expressed in terms of base units (<a href="https://www.electropedia.org/iev/iev.nsf/display?openform&ievref=112-01-18">IEC 60050, 112-01-18</a>)<a class='hidden_link' href='#1.sentence-1'>.</a></div> <div id='note-1' class='note'><div class='texpara'>[<i>Note&nbsp;<a href='#note-1'>1</a></i>:&ensp;<div id='1.sentence-2' class='sentence'>Other types representing units are equal only if they have the same type<a class='hidden_link' href='#1.sentence-2'>.</a></div> <div id='1.sentence-3' class='sentence'><span class='texttt'><i >canonical-unit</i></span> is used to implement binary relations other than equality<a class='hidden_link' href='#1.sentence-3'>.</a></div>&nbsp;<i>end note</i>]</div></div> <div id='1.sentence-4' class='sentence'><span class='texttt'>reference_<span class='shy'></span>unit</span> is simplified (<a href='qty.sym.expr.algos.html' title='5.3.4.4&emsp;Algorithms'>[qty.<span class='shy'></span>sym.<span class='shy'></span>expr.<span class='shy'></span>algos]</a>)<a class='hidden_link' href='#1.sentence-4'>.</a></div></div></div><div class='texpara'><div id='lib:get-canonical-unit,Unit'><div id='lib:Unit,get-canonical-unit'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:Unit,get-canonical-unit'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>consteval</span> <span class='keyword'>auto</span> <span class='texttt'><i >get-canonical-unit</i></span><span class='parenthesis'>(</span><a href='qty.unit.concepts.html#concept:Unit' title='5.4.4.4&emsp;Concepts&emsp;[qty.unit.concepts]'><span id='conceptref:Unit_'><span class='texttt'>Unit</span></span></a> <span class='keyword'>auto</span> u<span class='parenthesis'>)</span>; <span class='comment'>// <i >exposition only</i></span>
</code></div></div></div></div><div class='para' id='2'><div class='marginalizedparent'><a class='marginalized' href='#2'>2</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L2611'>#</a></div><div class='texpara'><div id='2.sentence-1' class='sentence'><i >Returns</i>: The instantiation of <span class='texttt'><i >canonical-unit</i></span> for <span class='texttt'>u</span><a class='hidden_link' href='#2.sentence-1'>.</a></div></div></div></div></div></body></html>

View File

@ -4,9 +4,9 @@
<span class='keyword'>constexpr</span> <span class='keyword'>bool</span> disable_complex <span class='operator'>=</span> <span class='literal'>false</span>;
<span class='keyword'>template</span><span class='anglebracket'>&lt;</span><span class='keyword'>typename</span> T<span class='anglebracket'>&gt;</span>
<span class='keyword'>constexpr</span> <span class='keyword'>bool</span> disable_vector <span class='operator'>=</span> <span class='literal'>false</span>;
</code></div></div></div></div></div><div class='para' id='1'><div class='marginalizedparent'><a class='marginalized' href='#1'>1</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L3736'>#</a></div><div class='texpara'><div id='1.sentence-1' class='sentence'>Some quantities are defined as having a numerical value (<a href="https://www.electropedia.org/iev/iev.nsf/display?openform&ievref=112-01-29">IEC 60050, 112-01-29</a>) of a specific set (<a href="https://www.electropedia.org/iev/iev.nsf/display?openform&ievref=102-01-02">IEC 60050, 102-01-02</a>)<a class='hidden_link' href='#1.sentence-1'>.</a></div> <div id='1.sentence-2' class='sentence'>The representation concepts use these traits
to help determine the sets <span class='texttt'>T</span> represents<a class='hidden_link' href='#1.sentence-2'>.</a></div></div></div></div><div class='para' id='2'><div class='marginalizedparent'><a class='marginalized' href='#2'>2</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L3741'>#</a></div><div class='texpara'><div id='2.sentence-1' class='sentence'><i >Remarks</i>: Pursuant to <a href="https://wg21.link/namespace.std">N4971, [namespace.std]</a> (<a href='spec.ext.html' title='4.1&emsp;External'>[spec.<span class='shy'></span>ext]</a>),
</code></div></div></div></div></div><div class='para' id='1'><div class='marginalizedparent'><a class='marginalized' href='#1'>1</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L3736'>#</a></div><div class='texpara'><div id='1.sentence-1' class='sentence'>Some quantities are defined as having a numerical value (<a href="https://www.electropedia.org/iev/iev.nsf/display?openform&ievref=112-01-29">IEC 60050, 112-01-29</a>) of a specific set (<a href="https://www.electropedia.org/iev/iev.nsf/display?openform&ievref=102-01-02">IEC 60050, 102-01-02</a>)<a class='hidden_link' href='#1.sentence-1'>.</a></div> <div id='1.sentence-2' class='sentence'>The representation concepts use these traits
to help determine the sets <span class='texttt'>T</span> represents<a class='hidden_link' href='#1.sentence-2'>.</a></div></div></div></div><div class='para' id='2'><div class='marginalizedparent'><a class='marginalized' href='#2'>2</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L3741'>#</a></div><div class='texpara'><div id='2.sentence-1' class='sentence'><i >Remarks</i>: Pursuant to <a href="https://wg21.link/namespace.std">N4971, [namespace.std]</a> (<a href='spec.ext.html' title='4.1&emsp;External'>[spec.<span class='shy'></span>ext]</a>),
users may specialize these templates
for cv-unqualified program-defined types<a class='hidden_link' href='#2.sentence-1'>.</a></div> <div id='2.sentence-2' class='sentence'>Such specializations shall be usable in constant expressions (<a href="https://wg21.link/expr.const">N4971, [expr.const]</a>)
and have type <span class='texttt'><span class='keyword'>const</span> <span class='keyword'>bool</span></span><a class='hidden_link' href='#2.sentence-2'>.</a></div></div></div></div><div class='para nonNormativeOnly' id='3'><div class='marginalizedparent'><a class='marginalized' href='#3'>3</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L3749'>#</a></div><div class='texpara'><div id='note-1' class='note'><div class='texpara'>[<i>Note&nbsp;<a href='#note-1'>1</a></i>:&ensp;<div id='3.sentence-1' class='sentence'>These templates prevent use of representation types with the library
and have type <span class='texttt'><span class='keyword'>const</span> <span class='keyword'>bool</span></span><a class='hidden_link' href='#2.sentence-2'>.</a></div></div></div></div><div class='para nonNormativeOnly' id='3'><div class='marginalizedparent'><a class='marginalized' href='#3'>3</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L3749'>#</a></div><div class='texpara'><div id='note-1' class='note'><div class='texpara'>[<i>Note&nbsp;<a href='#note-1'>1</a></i>:&ensp;<div id='3.sentence-1' class='sentence'>These templates prevent use of representation types with the library
that satisfy but do not in fact model their corresponding concept<a class='hidden_link' href='#3.sentence-1'>.</a></div>&nbsp;<i>end note</i>]</div></div></div></div></div></div></body></html>

View File

@ -1,18 +1,18 @@
<!DOCTYPE html><html lang='en'><head><title>[qty.cmp]</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.6</a> Quantity <a class='abbr_ref' href='qty.html#cmp'>[qty]</a></h2><h3 ><a class='secnum' style='min-width:80pt'>5.6.12</a> Comparison <a class='abbr_ref'>[qty.cmp]</a></h3><div class='para' id='1'><div class='marginalizedparent'><a class='marginalized' href='#1'>1</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L5153'>#</a></div><div class='texpara'><div id='1.sentence-1' class='sentence'>In the following descriptions,
<!DOCTYPE html><html lang='en'><head><title>[qty.cmp]</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.6</a> Quantity <a class='abbr_ref' href='qty.html#cmp'>[qty]</a></h2><h3 ><a class='secnum' style='min-width:80pt'>5.6.12</a> Comparison <a class='abbr_ref'>[qty.cmp]</a></h3><div class='para' id='1'><div class='marginalizedparent'><a class='marginalized' href='#1'>1</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L5153'>#</a></div><div class='texpara'><div id='1.sentence-1' class='sentence'>In the following descriptions,
let <span class='texttt'>@</span> be the <span class='textsf'><i >operator</i></span><a class='hidden_link' href='#1.sentence-1'>.</a></div></div></div><div class='texpara'><div id='lib:quantity,operator<=>'><div id='lib:operator<=>,quantity'><div id='lib:quantity,operator=='><div id='lib:operator==,quantity'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:operator==,quantity'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span>std<span class='operator'>::</span>derived_from<span class='anglebracket'>&lt;</span>quantity<span class='anglebracket'>&gt;</span> Q, <span class='keyword'>auto</span> R2, <span class='keyword'>typename</span> Rep2<span class='anglebracket'>&gt;</span>
<span class='keyword'>requires</span> <i ><span class='texttt'>see below</span></i>
<span class='keyword'>friend</span> <span class='keyword'>constexpr</span> <span class='keyword'>bool</span> <span class='keyword'>operator</span><span class='operator'>=</span><span class='operator'>=</span><span class='parenthesis'>(</span><span class='keyword'>const</span> Q<span class='operator'>&amp;</span> lhs, <span class='keyword'>const</span> quantity<span class='anglebracket'>&lt;</span>R2, Rep2<span class='anglebracket'>&gt;</span><span class='operator'>&amp;</span> rhs<span class='parenthesis'>)</span>;
<span class='keyword'>template</span><span class='anglebracket'>&lt;</span>std<span class='operator'>::</span>derived_from<span class='anglebracket'>&lt;</span>quantity<span class='anglebracket'>&gt;</span> Q, <span class='keyword'>auto</span> R2, <span class='keyword'>typename</span> Rep2<span class='anglebracket'>&gt;</span>
<span class='keyword'>requires</span> <i ><span class='texttt'>see below</span></i>
<span class='keyword'>friend</span> <span class='keyword'>constexpr</span> <span class='keyword'>auto</span> <span class='keyword'>operator</span><span class='anglebracket'>&lt;</span><span class='operator'>=</span><span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span><span class='keyword'>const</span> Q<span class='operator'>&amp;</span> lhs, <span class='keyword'>const</span> quantity<span class='anglebracket'>&lt;</span>R2, Rep2<span class='anglebracket'>&gt;</span><span class='operator'>&amp;</span> rhs<span class='parenthesis'>)</span>;
</code></div></div></div></div></div></div><div class='para' id='2'><div class='marginalizedparent'><a class='marginalized' href='#2'>2</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L5169'>#</a></div><div class='texpara'><div id='2.sentence-1' class='sentence'>Let <i >C</i> be
</code></div></div></div></div></div></div><div class='para' id='2'><div class='marginalizedparent'><a class='marginalized' href='#2'>2</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L5169'>#</a></div><div class='texpara'><div id='2.sentence-1' class='sentence'>Let <i >C</i> be
<span class='texttt'>std<span class='operator'>&#x200b;::&#x200b;</span>equality_<span class='shy'></span>comparable</span> if <span class='texttt'>@</span> is <span class='texttt'><span class='operator'>=</span><span class='operator'>=</span></span>, and
<span class='texttt'>std<span class='operator'>&#x200b;::&#x200b;</span>three_<span class='shy'></span>way_<span class='shy'></span>comparable</span> if <span class='texttt'>@</span> is <span class='texttt'><span class='anglebracket'>&lt;</span><span class='operator'>=</span><span class='anglebracket'>&gt;</span></span><a class='hidden_link' href='#2.sentence-1'>.</a></div></div></div></div><div class='para' id='3'><div class='marginalizedparent'><a class='marginalized' href='#3'>3</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L5174'>#</a></div><div class='texpara'><div id='3.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
<span class='texttt'>std<span class='operator'>&#x200b;::&#x200b;</span>three_<span class='shy'></span>way_<span class='shy'></span>comparable</span> if <span class='texttt'>@</span> is <span class='texttt'><span class='anglebracket'>&lt;</span><span class='operator'>=</span><span class='anglebracket'>&gt;</span></span><a class='hidden_link' href='#2.sentence-1'>.</a></div></div></div></div><div class='para' id='3'><div class='marginalizedparent'><a class='marginalized' href='#3'>3</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L5174'>#</a></div><div class='texpara'><div id='3.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
<span class='codeblock'><span class='keyword'>using</span> ct <span class='operator'>=</span> std<span class='operator'>::</span>common_type_t<span class='anglebracket'>&lt;</span>quantity, quantity<span class='anglebracket'>&lt;</span>R2, Rep2<span class='anglebracket'>&gt;</span><span class='anglebracket'>&gt;</span>;
<span class='keyword'>const</span> ct ct_lhs<span class='parenthesis'>(</span>lhs<span class='parenthesis'>)</span>;
<span class='keyword'>const</span> ct ct_rhs<span class='parenthesis'>(</span>rhs<span class='parenthesis'>)</span>;
<span class='keyword'>return</span> ct_lhs<span class='operator'>.</span>numerical_value_ref_in<span class='parenthesis'>(</span>ct<span class='operator'>::</span>unit<span class='parenthesis'>)</span> @ ct_rhs<span class='operator'>.</span>numerical_value_ref_in<span class='parenthesis'>(</span>ct<span class='operator'>::</span>unit<span class='parenthesis'>)</span>;
</span></div></div></div></div><div class='para' id='4'><div class='marginalizedparent'><a class='marginalized' href='#4'>4</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L5184'>#</a></div><div class='texpara'><div id='4.sentence-1' class='sentence'><i >Remarks</i>: The expression in the <span class='textsf'><i >requires-clause</i></span> is equivalent to:
</span></div></div></div></div><div class='para' id='4'><div class='marginalizedparent'><a class='marginalized' href='#4'>4</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L5184'>#</a></div><div class='texpara'><div id='4.sentence-1' class='sentence'><i >Remarks</i>: The expression in the <span class='textsf'><i >requires-clause</i></span> is equivalent to:
<span class='codeblock'><span class='keyword'>requires</span> <span class='curlybracket'>{</span>
<span class='keyword'>typename</span> std<span class='operator'>::</span>common_type_t<span class='anglebracket'>&lt;</span>quantity, quantity<span class='anglebracket'>&lt;</span>R2, Rep2<span class='anglebracket'>&gt;</span><span class='anglebracket'>&gt;</span>;
<span class='curlybracket'>}</span> <span class='operator'>&amp;</span><span class='operator'>&amp;</span> <i >C</i><span class='anglebracket'>&lt;</span><span class='keyword'>typename</span> std<span class='operator'>::</span>common_type_t<span class='anglebracket'>&lt;</span>quantity, quantity<span class='anglebracket'>&lt;</span>R2, Rep2<span class='anglebracket'>&gt;</span><span class='anglebracket'>&gt;</span><span class='operator'>::</span>rep<span class='anglebracket'>&gt;</span>
@ -22,8 +22,8 @@ let <span class='texttt'>@</span> be the <span class='textsf'><i >operator</i></
<span class='keyword'>template</span><span class='anglebracket'>&lt;</span>std<span class='operator'>::</span>derived_from<span class='anglebracket'>&lt;</span>quantity<span class='anglebracket'>&gt;</span> Q, <a href='qty.rep.concepts.html#concept:Representation' title='5.5.4&emsp;Concepts&emsp;[qty.rep.concepts]'><span id='conceptref:Representation_'><span class='texttt'>Representation</span></span></a> Value<span class='anglebracket'>&gt;</span>
<span class='keyword'>requires</span> <i ><span class='texttt'>see below</span></i>
<span class='keyword'>friend</span> <span class='keyword'>constexpr</span> <span class='keyword'>auto</span> <span class='keyword'>operator</span><span class='anglebracket'>&lt;</span><span class='operator'>=</span><span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span><span class='keyword'>const</span> Q<span class='operator'>&amp;</span> lhs, <span class='keyword'>const</span> Value<span class='operator'>&amp;</span> rhs<span class='parenthesis'>)</span>;
</code></div></div></div></div></div></div><div class='para' id='5'><div class='marginalizedparent'><a class='marginalized' href='#5'>5</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L5206'>#</a></div><div class='texpara'><div id='5.sentence-1' class='sentence'>Let <i >C</i> be
</code></div></div></div></div></div></div><div class='para' id='5'><div class='marginalizedparent'><a class='marginalized' href='#5'>5</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L5206'>#</a></div><div class='texpara'><div id='5.sentence-1' class='sentence'>Let <i >C</i> be
<span class='texttt'>std<span class='operator'>&#x200b;::&#x200b;</span>equality_<span class='shy'></span>comparable_<span class='shy'></span>with</span> if <span class='texttt'>@</span> is <span class='texttt'><span class='operator'>=</span><span class='operator'>=</span></span>, and
<span class='texttt'>std<span class='operator'>&#x200b;::&#x200b;</span>three_<span class='shy'></span>way_<span class='shy'></span>comparable_<span class='shy'></span>with</span> if <span class='texttt'>@</span> is <span class='texttt'><span class='anglebracket'>&lt;</span><span class='operator'>=</span><span class='anglebracket'>&gt;</span></span><a class='hidden_link' href='#5.sentence-1'>.</a></div></div></div></div><div class='para' id='6'><div class='marginalizedparent'><a class='marginalized' href='#6'>6</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L5211'>#</a></div><div class='texpara'><div id='6.sentence-1' class='sentence'><i >Returns</i>: <span class='texttt'>lhs<span class='operator'>.</span>numerical_<span class='shy'></span>value_<span class='shy'></span>ref_<span class='shy'></span>in<span class='parenthesis'>(</span>unit<span class='parenthesis'>)</span> @ rhs</span><a class='hidden_link' href='#6.sentence-1'>.</a></div></div></div></div><div class='para' id='7'><div class='marginalizedparent'><a class='marginalized' href='#7'>7</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L5215'>#</a></div><div class='texpara'><div id='7.sentence-1' class='sentence'><i >Remarks</i>: The expression in the <span class='textsf'><i >requires-clause</i></span> is equivalent to:
<span class='texttt'>std<span class='operator'>&#x200b;::&#x200b;</span>three_<span class='shy'></span>way_<span class='shy'></span>comparable_<span class='shy'></span>with</span> if <span class='texttt'>@</span> is <span class='texttt'><span class='anglebracket'>&lt;</span><span class='operator'>=</span><span class='anglebracket'>&gt;</span></span><a class='hidden_link' href='#5.sentence-1'>.</a></div></div></div></div><div class='para' id='6'><div class='marginalizedparent'><a class='marginalized' href='#6'>6</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L5211'>#</a></div><div class='texpara'><div id='6.sentence-1' class='sentence'><i >Returns</i>: <span class='texttt'>lhs<span class='operator'>.</span>numerical_<span class='shy'></span>value_<span class='shy'></span>ref_<span class='shy'></span>in<span class='parenthesis'>(</span>unit<span class='parenthesis'>)</span> @ rhs</span><a class='hidden_link' href='#6.sentence-1'>.</a></div></div></div></div><div class='para' id='7'><div class='marginalizedparent'><a class='marginalized' href='#7'>7</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L5215'>#</a></div><div class='texpara'><div id='7.sentence-1' class='sentence'><i >Remarks</i>: The expression in the <span class='textsf'><i >requires-clause</i></span> is equivalent to:
<span class='codeblock'><span class='parenthesis'>(</span>Q<span class='operator'>::</span>unit <span class='operator'>=</span><span class='operator'>=</span> <span class='operator'>::</span>mp_units<span class='operator'>::</span>one<span class='parenthesis'>)</span> <span class='operator'>&amp;</span><span class='operator'>&amp;</span> <i >C</i><span class='anglebracket'>&lt;</span>Rep, Value<span class='anglebracket'>&gt;</span>
</span></div></div></div></div></div></body></html>

View File

@ -9,7 +9,7 @@
<span class='curlybracket'>}</span>;
<span class='curlybracket'>}</span>
</span></span></div><div class='para' id='1'><div class='marginalizedparent'><a class='marginalized' href='#1'>1</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L2811'>#</a></div><div class='texpara'><div id='1.sentence-1' class='sentence'><span class='texttt'>common_<span class='shy'></span>unit</span> is used by the library
</span></span></div><div class='para' id='1'><div class='marginalizedparent'><a class='marginalized' href='#1'>1</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L2811'>#</a></div><div class='texpara'><div id='1.sentence-1' class='sentence'><span class='texttt'>common_<span class='shy'></span>unit</span> is used by the library
to encapsulate a conversion factor between units (<a href="https://www.electropedia.org/iev/iev.nsf/display?openform&ievref=112-01-33">IEC 60050, 112-01-33</a>)
common to the operands of quantity addition<a class='hidden_link' href='#1.sentence-1'>.</a></div> <div id='example-1' class='example'><div class='texpara'>[<i>Example&nbsp;<a href='#example-1'>1</a></i>:&ensp;<div id='1.sentence-2' class='sentence'>The result of <span class='texttt'><span class='literal'>1</span> <span class='operator'>*</span> km <span class='operator'>+</span> <span class='literal'>1</span> <span class='operator'>*</span> mi</span>
has a common unit <span class="mjx-chtml"><span class="mjx-math"><span class="mjx-mrow" aria-hidden="true"><span class="mjx-mo"><span class="mjx-char MJXc-TeX-main-R" style="padding-top: 0.446em; padding-bottom: 0.593em;">[</span></span><span class="mjx-mn"><span class="mjx-char MJXc-TeX-main-R" style="padding-top: 0.372em; padding-bottom: 0.372em;">8</span></span><span class="mjx-texatom"><span class="mjx-mrow"><span class="mjx-mo"><span class="mjx-char MJXc-TeX-main-R" style="padding-top: 0.446em; padding-bottom: 0.593em;">/</span></span></span></span><span class="mjx-mn"><span class="mjx-char MJXc-TeX-main-R" style="padding-top: 0.372em; padding-bottom: 0.372em;">125</span></span><span class="mjx-mo"><span class="mjx-char MJXc-TeX-main-R" style="padding-top: 0.446em; padding-bottom: 0.593em;">]</span></span><span class="mjx-texatom"><span class="mjx-mrow"><span class="mjx-mtext"><span class="mjx-char MJXc-TeX-main-R" style="padding-top: 0.151em; padding-bottom: 0.372em;"> m</span></span></span></span></span></span></span>
@ -19,7 +19,7 @@ that is not a possible result of the library specifications
is ill-formed, no diagnostic required<a class='hidden_link' href='#1.sentence-3'>.</a></div></div></div><div class='texpara'><div class='itemdecl' id='itemdecl:1'><div class='marginalizedparent'><a class='itemDeclLink' href='#itemdecl:1'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><a href='qty.unit.concepts.html#concept:Unit' title='5.4.4.4&emsp;Concepts&emsp;[qty.unit.concepts]'><span id='conceptref:Unit___'><span class='texttt'>Unit</span></span></a> U1, <a href='qty.unit.concepts.html#concept:Unit' title='5.4.4.4&emsp;Concepts&emsp;[qty.unit.concepts]'><span id='conceptref:Unit____'><span class='texttt'>Unit</span></span></a> U2, <a href='qty.unit.concepts.html#concept:Unit' title='5.4.4.4&emsp;Concepts&emsp;[qty.unit.concepts]'><span id='conceptref:Unit_____'><span class='texttt'>Unit</span></span></a><span class='operator'>.</span><span class='operator'>.</span><span class='operator'>.</span> Rest<span class='anglebracket'>&gt;</span>
<span class='keyword'>consteval</span> <a href='qty.unit.concepts.html#concept:Unit' title='5.4.4.4&emsp;Concepts&emsp;[qty.unit.concepts]'><span id='conceptref:Unit______'><span class='texttt'>Unit</span></span></a> <span class='keyword'>auto</span> <span class='texttt'><i >get-common-scaled-unit</i></span><span class='parenthesis'>(</span>U1, U2, Rest<span class='operator'>.</span><span class='operator'>.</span><span class='operator'>.</span> rest<span class='parenthesis'>)</span> <span class='comment'>// <i >exposition only</i></span>
<span class='keyword'>requires</span> <i ><span class='texttt'>see below</span></i>;
</code></div></div><div class='para' id='2'><div class='marginalizedparent'><a class='marginalized' href='#2'>2</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L2831'>#</a></div><div class='texpara'><div id='2.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
</code></div></div><div class='para' id='2'><div class='marginalizedparent'><a class='marginalized' href='#2'>2</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L2831'>#</a></div><div class='texpara'><div id='2.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
<span class='codeblock'><span class='keyword'>constexpr</span> <span class='keyword'>auto</span> res <span class='operator'>=</span> <span class='squarebracket'>[</span><span class='squarebracket'>]</span> <span class='curlybracket'>{</span>
<span class='keyword'>constexpr</span> <span class='keyword'>auto</span> canonical_lhs <span class='operator'>=</span> <i >get-canonical-unit</i><span class='parenthesis'>(</span>U1<span class='curlybracket'>{</span><span class='curlybracket'>}</span><span class='parenthesis'>)</span>;
<span class='keyword'>constexpr</span> <span class='keyword'>auto</span> canonical_rhs <span class='operator'>=</span> <i >get-canonical-unit</i><span class='parenthesis'>(</span>U2<span class='curlybracket'>{</span><span class='curlybracket'>}</span><span class='parenthesis'>)</span>;
@ -33,7 +33,7 @@ is ill-formed, no diagnostic required<a class='hidden_link' href='#1.sentence-3'
<span class='keyword'>return</span> res;
<span class='keyword'>else</span>
<span class='keyword'>return</span> <i >get-common-scaled-unit</i><span class='parenthesis'>(</span>res, rest<span class='operator'>.</span><span class='operator'>.</span><span class='operator'>.</span><span class='parenthesis'>)</span>;
</span></div></div></div></div><div class='para' id='3'><div class='marginalizedparent'><a class='marginalized' href='#3'>3</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L2850'>#</a></div><div class='texpara'><div id='3.sentence-1' class='sentence'><i >Remarks</i>: The expression in the <span class='textsf'><i >requires-clause</i></span> is equivalent to:
</span></div></div></div></div><div class='para' id='3'><div class='marginalizedparent'><a class='marginalized' href='#3'>3</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L2850'>#</a></div><div class='texpara'><div id='3.sentence-1' class='sentence'><i >Remarks</i>: The expression in the <span class='textsf'><i >requires-clause</i></span> is equivalent to:
<span class='codeblock'><span class='parenthesis'>(</span>convertible<span class='parenthesis'>(</span>U1<span class='curlybracket'>{</span><span class='curlybracket'>}</span>, U2<span class='curlybracket'>{</span><span class='curlybracket'>}</span><span class='parenthesis'>)</span> <span class='operator'>&amp;</span><span class='operator'>&amp;</span> <span class='parenthesis'>(</span><span class='keyword'>sizeof</span><span class='operator'>.</span><span class='operator'>.</span><span class='operator'>.</span><span class='parenthesis'>(</span>Rest<span class='parenthesis'>)</span> <span class='operator'>=</span><span class='operator'>=</span> <span class='literal'>0</span> <span class='operator'>|</span><span class='operator'>|</span> <span class='keyword'>requires</span> <span class='curlybracket'>{</span>
<i >get-common-scaled-unit</i><span class='parenthesis'>(</span><i >get-common-scaled-unit</i><span class='parenthesis'>(</span>u1, u2<span class='parenthesis'>)</span>, rest<span class='operator'>.</span><span class='operator'>.</span><span class='operator'>.</span><span class='parenthesis'>)</span>;
<span class='curlybracket'>}</span><span class='parenthesis'>)</span><span class='parenthesis'>)</span>

View File

@ -5,23 +5,23 @@
<span class='keyword'>template</span><span class='anglebracket'>&lt;</span><a class='index' id='conceptref:ValuePreservingTo'></a><span class='texttt'><i >ValuePreservingTo</i></span><span class='anglebracket'>&lt;</span>Rep<span class='anglebracket'>&gt;</span> FwdValue<span class='anglebracket'>&gt;</span>
<span class='keyword'>requires</span><span class='parenthesis'>(</span>unit <span class='operator'>=</span><span class='operator'>=</span> <span class='operator'>::</span>mp_units<span class='operator'>::</span>one<span class='parenthesis'>)</span>
<span class='keyword'>constexpr</span> quantity<span class='parenthesis'>(</span>FwdValue<span class='operator'>&amp;</span><span class='operator'>&amp;</span> v<span class='parenthesis'>)</span>;
</code></div></div></div><div class='para' id='1'><div class='marginalizedparent'><a class='marginalized' href='#1'>1</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L4517'>#</a></div><div class='texpara'><div id='1.sentence-1' class='sentence'><i >Effects</i>: Initializes <span class='texttt'><i >numerical-value</i></span> with <span class='texttt'>std<span class='operator'>&#x200b;::&#x200b;</span>forward<span class='anglebracket'>&lt;</span>FwdValue<span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span>v<span class='parenthesis'>)</span></span><a class='hidden_link' href='#1.sentence-1'>.</a></div></div></div></div><div class='texpara'><div id='lib:quantity,constructor_'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:quantity,constructor_'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><span class='keyword'>typename</span> FwdValue, <a href='qty.ref.concepts.html#concept:Reference' title='5.4.5&emsp;Concepts&emsp;[qty.ref.concepts]'><span id='conceptref:Reference_'><span class='texttt'>Reference</span></span></a> R2, <span class='keyword'>typename</span> Value <span class='operator'>=</span> std<span class='operator'>::</span>remove_cvref_t<span class='anglebracket'>&lt;</span>FwdValue<span class='anglebracket'>&gt;</span><span class='anglebracket'>&gt;</span>
</code></div></div></div><div class='para' id='1'><div class='marginalizedparent'><a class='marginalized' href='#1'>1</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L4517'>#</a></div><div class='texpara'><div id='1.sentence-1' class='sentence'><i >Effects</i>: Initializes <span class='texttt'><i >numerical-value</i></span> with <span class='texttt'>std<span class='operator'>&#x200b;::&#x200b;</span>forward<span class='anglebracket'>&lt;</span>FwdValue<span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span>v<span class='parenthesis'>)</span></span><a class='hidden_link' href='#1.sentence-1'>.</a></div></div></div></div><div class='texpara'><div id='lib:quantity,constructor_'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:quantity,constructor_'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><span class='keyword'>typename</span> FwdValue, <a href='qty.ref.concepts.html#concept:Reference' title='5.4.5&emsp;Concepts&emsp;[qty.ref.concepts]'><span id='conceptref:Reference_'><span class='texttt'>Reference</span></span></a> R2, <span class='keyword'>typename</span> Value <span class='operator'>=</span> std<span class='operator'>::</span>remove_cvref_t<span class='anglebracket'>&lt;</span>FwdValue<span class='anglebracket'>&gt;</span><span class='anglebracket'>&gt;</span>
<span class='keyword'>requires</span><span class='parenthesis'>(</span><span class='operator'>!</span><a class='index' id='conceptref:SameValueAs_'></a><span class='texttt'><i >SameValueAs</i></span><span class='anglebracket'>&lt;</span>R2<span class='curlybracket'>{</span><span class='curlybracket'>}</span>, R, Value, Rep<span class='anglebracket'>&gt;</span><span class='parenthesis'>)</span> <span class='operator'>&amp;</span><span class='operator'>&amp;</span>
<a class='index' id='conceptref:QuantityConvertibleTo'></a><span class='texttt'><i >QuantityConvertibleTo</i></span><span class='anglebracket'>&lt;</span>quantity<span class='anglebracket'>&lt;</span>R2<span class='curlybracket'>{</span><span class='curlybracket'>}</span>, Value<span class='anglebracket'>&gt;</span>, quantity<span class='anglebracket'>&gt;</span>
<span class='keyword'>constexpr</span> quantity<span class='parenthesis'>(</span>FwdValue<span class='operator'>&amp;</span><span class='operator'>&amp;</span> v, R2<span class='parenthesis'>)</span>;
</code></div></div></div><div class='para' id='2'><div class='marginalizedparent'><a class='marginalized' href='#2'>2</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L4531'>#</a></div><div class='texpara'><div id='2.sentence-1' class='sentence'><i >Effects</i>: Equivalent to
</code></div></div></div><div class='para' id='2'><div class='marginalizedparent'><a class='marginalized' href='#2'>2</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L4531'>#</a></div><div class='texpara'><div id='2.sentence-1' class='sentence'><i >Effects</i>: Equivalent to
<span class='texttt'>quantity<span class='parenthesis'>(</span>quantity<span class='anglebracket'>&lt;</span>R2<span class='curlybracket'>{</span><span class='curlybracket'>}</span>, Value<span class='anglebracket'>&gt;</span><span class='curlybracket'>{</span>std<span class='operator'>&#x200b;::&#x200b;</span>forward<span class='anglebracket'>&lt;</span>FwdValue<span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span>v<span class='parenthesis'>)</span>, R2<span class='curlybracket'>{</span><span class='curlybracket'>}</span><span class='curlybracket'>}</span><span class='parenthesis'>)</span></span><a class='hidden_link' href='#2.sentence-1'>.</a></div></div></div></div><div class='texpara'><div id='lib:quantity,constructor__'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:quantity,constructor__'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><a class='index' id='conceptref:QuantityConvertibleTo_'></a><span class='texttt'><i >QuantityConvertibleTo</i></span><span class='anglebracket'>&lt;</span>quantity<span class='anglebracket'>&gt;</span> Q<span class='anglebracket'>&gt;</span>
<span class='keyword'>constexpr</span> <span class='keyword'>explicit</span><span class='parenthesis'>(</span><span class='operator'>!</span>std<span class='operator'>::</span>convertible_to<span class='anglebracket'>&lt;</span><span class='keyword'>typename</span> Q<span class='operator'>::</span>rep, Rep<span class='anglebracket'>&gt;</span><span class='parenthesis'>)</span> quantity<span class='parenthesis'>(</span><span class='keyword'>const</span> Q<span class='operator'>&amp;</span> q<span class='parenthesis'>)</span>;
</code></div></div></div><div class='para' id='3'><div class='marginalizedparent'><a class='marginalized' href='#3'>3</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L4544'>#</a></div><div class='texpara'><div id='3.sentence-1' class='sentence'><i >Effects</i>: Equivalent to <span class='texttt'><span class='texttt'><i >sudo-cast</i></span><span class='anglebracket'>&lt;</span>quantity<span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span>q<span class='parenthesis'>)</span></span> (<a href='qty.non.mem.conv.html' title='5.6.15&emsp;Non-member conversions'>[qty.<span class='shy'></span>non.<span class='shy'></span>mem.<span class='shy'></span>conv]</a>)<a class='hidden_link' href='#3.sentence-1'>.</a></div></div></div></div><div class='texpara'><div id='lib:quantity,constructor___'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:quantity,constructor___'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><a href='qty.like.html#concept:QuantityLike' title='5.6.2&emsp;Interoperability&emsp;[qty.like]'><span id='conceptref:QuantityLike'><span class='texttt'>QuantityLike</span></span></a> Q<span class='anglebracket'>&gt;</span>
</code></div></div></div><div class='para' id='3'><div class='marginalizedparent'><a class='marginalized' href='#3'>3</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L4544'>#</a></div><div class='texpara'><div id='3.sentence-1' class='sentence'><i >Effects</i>: Equivalent to <span class='texttt'><span class='texttt'><i >sudo-cast</i></span><span class='anglebracket'>&lt;</span>quantity<span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span>q<span class='parenthesis'>)</span></span> (<a href='qty.non.mem.conv.html' title='5.6.15&emsp;Non-member conversions'>[qty.<span class='shy'></span>non.<span class='shy'></span>mem.<span class='shy'></span>conv]</a>)<a class='hidden_link' href='#3.sentence-1'>.</a></div></div></div></div><div class='texpara'><div id='lib:quantity,constructor___'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:quantity,constructor___'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><a href='qty.like.html#concept:QuantityLike' title='5.6.2&emsp;Interoperability&emsp;[qty.like]'><span id='conceptref:QuantityLike'><span class='texttt'>QuantityLike</span></span></a> Q<span class='anglebracket'>&gt;</span>
<span class='keyword'>requires</span> <a class='index' id='conceptref:QuantityConvertibleTo__'></a><span class='texttt'><i >QuantityConvertibleTo</i></span><span class='anglebracket'>&lt;</span><span class='texttt'><i >quantity-like-type</i></span><span class='anglebracket'>&lt;</span>Q<span class='anglebracket'>&gt;</span>, quantity<span class='anglebracket'>&gt;</span>
<span class='keyword'>constexpr</span> <span class='keyword'>explicit</span><span class='parenthesis'>(</span><i ><span class='texttt'>see below</span></i><span class='parenthesis'>)</span> quantity<span class='parenthesis'>(</span><span class='keyword'>const</span> Q<span class='operator'>&amp;</span> q<span class='parenthesis'>)</span>;
</code></div></div></div><div class='para' id='4'><div class='marginalizedparent'><a class='marginalized' href='#4'>4</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L4557'>#</a></div><div class='texpara'><div id='4.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
</code></div></div></div><div class='para' id='4'><div class='marginalizedparent'><a class='marginalized' href='#4'>4</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L4557'>#</a></div><div class='texpara'><div id='4.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
<span class='codeblock'>quantity<span class='parenthesis'>(</span><span class='operator'>::</span>mp_units<span class='operator'>::</span>quantity<span class='curlybracket'>{</span>quantity_like_traits<span class='anglebracket'>&lt;</span>Q<span class='anglebracket'>&gt;</span><span class='operator'>::</span>to_numerical_value<span class='parenthesis'>(</span>q<span class='parenthesis'>)</span>,
quantity_like_traits<span class='anglebracket'>&lt;</span>Q<span class='anglebracket'>&gt;</span><span class='operator'>::</span>reference<span class='curlybracket'>}</span><span class='parenthesis'>)</span>
</span></div></div></div></div><div class='para' id='5'><div class='marginalizedparent'><a class='marginalized' href='#5'>5</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L4565'>#</a></div><div class='texpara'><div id='5.sentence-1' class='sentence'><i >Remarks</i>: The expression inside <span class='texttt'><span class='keyword'>explicit</span></span> is equivalent to:
</span></div></div></div></div><div class='para' id='5'><div class='marginalizedparent'><a class='marginalized' href='#5'>5</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L4565'>#</a></div><div class='texpara'><div id='5.sentence-1' class='sentence'><i >Remarks</i>: The expression inside <span class='texttt'><span class='keyword'>explicit</span></span> is equivalent to:
<span class='codeblock'>quantity_like_traits<span class='anglebracket'>&lt;</span>Q<span class='anglebracket'>&gt;</span><span class='operator'>::</span>explicit_import <span class='operator'>|</span><span class='operator'>|</span>
<span class='operator'>!</span>std<span class='operator'>::</span>convertible_to<span class='anglebracket'>&lt;</span><span class='keyword'>typename</span> quantity_like_traits<span class='anglebracket'>&lt;</span>Q<span class='anglebracket'>&gt;</span><span class='operator'>::</span>rep, Rep<span class='anglebracket'>&gt;</span>
</span></div></div></div></div><div class='texpara'><div id='lib:quantity,operator='><div id='lib:operator=,quantity'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:operator=,quantity'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><a class='index' id='conceptref:ValuePreservingTo_'></a><span class='texttt'><i >ValuePreservingTo</i></span><span class='anglebracket'>&lt;</span>Rep<span class='anglebracket'>&gt;</span> FwdValue<span class='anglebracket'>&gt;</span>
<span class='keyword'>requires</span><span class='parenthesis'>(</span>unit <span class='operator'>=</span><span class='operator'>=</span> <span class='operator'>::</span>mp_units<span class='operator'>::</span>one<span class='parenthesis'>)</span>
<span class='keyword'>constexpr</span> quantity<span class='operator'>&amp;</span> <span class='keyword'>operator</span><span class='operator'>=</span><span class='parenthesis'>(</span>FwdValue<span class='operator'>&amp;</span><span class='operator'>&amp;</span> v<span class='parenthesis'>)</span>;
</code></div></div></div></div><div class='para' id='6'><div class='marginalizedparent'><a class='marginalized' href='#6'>6</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L4582'>#</a></div><div class='texpara'><div id='6.sentence-1' class='sentence'><i >Effects</i>: Equivalent to <span class='texttt'><span class='texttt'><i >numerical-value</i></span> <span class='operator'>=</span> std<span class='operator'>&#x200b;::&#x200b;</span>forward<span class='anglebracket'>&lt;</span>FwdValue<span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span>v<span class='parenthesis'>)</span></span><a class='hidden_link' href='#6.sentence-1'>.</a></div></div></div></div><div class='para' id='7'><div class='marginalizedparent'><a class='marginalized' href='#7'>7</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L4586'>#</a></div><div class='texpara'><div id='7.sentence-1' class='sentence'><i >Returns</i>: <span class='texttt'><span class='operator'>*</span><span class='keyword'>this</span></span><a class='hidden_link' href='#7.sentence-1'>.</a></div></div></div></div></div></body></html>
</code></div></div></div></div><div class='para' id='6'><div class='marginalizedparent'><a class='marginalized' href='#6'>6</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L4582'>#</a></div><div class='texpara'><div id='6.sentence-1' class='sentence'><i >Effects</i>: Equivalent to <span class='texttt'><span class='texttt'><i >numerical-value</i></span> <span class='operator'>=</span> std<span class='operator'>&#x200b;::&#x200b;</span>forward<span class='anglebracket'>&lt;</span>FwdValue<span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span>v<span class='parenthesis'>)</span></span><a class='hidden_link' href='#6.sentence-1'>.</a></div></div></div></div><div class='para' id='7'><div class='marginalizedparent'><a class='marginalized' href='#7'>7</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L4586'>#</a></div><div class='texpara'><div id='7.sentence-1' class='sentence'><i >Returns</i>: <span class='texttt'><span class='operator'>*</span><span class='keyword'>this</span></span><a class='hidden_link' href='#7.sentence-1'>.</a></div></div></div></div></div></body></html>

View File

@ -1,29 +1,29 @@
<!DOCTYPE html><html lang='en'><head><title>[qty.conv]</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.6</a> Quantity <a class='abbr_ref' href='qty.html#conv'>[qty]</a></h2><h3 ><a class='secnum' style='min-width:80pt'>5.6.6</a> Conversions <a class='abbr_ref'>[qty.conv]</a></h3><div class='texpara'><div id='lib:quantity,in'><div id='lib:in,quantity'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:in,quantity'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><a class='index' id='conceptref:UnitCompatibleWith'></a><span class='texttt'><i >UnitCompatibleWith</i></span><span class='anglebracket'>&lt;</span>unit, quantity_spec<span class='anglebracket'>&gt;</span> ToU<span class='anglebracket'>&gt;</span>
<span class='keyword'>requires</span> <a class='index' id='conceptref:QuantityConvertibleTo'></a><span class='texttt'><i >QuantityConvertibleTo</i></span><span class='anglebracket'>&lt;</span>quantity, quantity<span class='anglebracket'>&lt;</span><span class='texttt'><i >make-reference</i></span><span class='parenthesis'>(</span>quantity_spec, ToU<span class='curlybracket'>{</span><span class='curlybracket'>}</span><span class='parenthesis'>)</span>, Rep<span class='anglebracket'>&gt;</span><span class='anglebracket'>&gt;</span>
<span class='keyword'>constexpr</span> <a href='qty.syn.html#concept:QuantityOf' title='5.6.3&emsp;Class template quantity&emsp;[qty.syn]'><span id='conceptref:QuantityOf'><span class='texttt'>QuantityOf</span></span></a><span class='anglebracket'>&lt;</span>quantity_spec<span class='anglebracket'>&gt;</span> <span class='keyword'>auto</span> in<span class='parenthesis'>(</span>ToU<span class='parenthesis'>)</span> <span class='keyword'>const</span>;
</code></div></div></div></div><div class='para' id='1'><div class='marginalizedparent'><a class='marginalized' href='#1'>1</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L4601'>#</a></div><div class='texpara'><div id='1.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
</code></div></div></div></div><div class='para' id='1'><div class='marginalizedparent'><a class='marginalized' href='#1'>1</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L4601'>#</a></div><div class='texpara'><div id='1.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
<span class='texttt'><span class='keyword'>return</span> quantity<span class='anglebracket'>&lt;</span><span class='texttt'><i >make-reference</i></span><span class='parenthesis'>(</span>quantity_<span class='shy'></span>spec, ToU<span class='curlybracket'>{</span><span class='curlybracket'>}</span><span class='parenthesis'>)</span>, Rep<span class='anglebracket'>&gt;</span><span class='curlybracket'>{</span><span class='operator'>*</span><span class='keyword'>this</span><span class='curlybracket'>}</span>;</span></div></div></div></div><div class='texpara'><div id='lib:quantity,in_'><div id='lib:in,quantity_'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:in,quantity_'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><a href='qty.rep.concepts.html#concept:RepresentationOf' title='5.5.4&emsp;Concepts&emsp;[qty.rep.concepts]'><span id='conceptref:RepresentationOf'><span class='texttt'>RepresentationOf</span></span></a><span class='anglebracket'>&lt;</span>quantity_spec<span class='anglebracket'>&gt;</span> ToRep<span class='anglebracket'>&gt;</span>
<span class='keyword'>requires</span> <a class='index' id='conceptref:QuantityConvertibleTo_'></a><span class='texttt'><i >QuantityConvertibleTo</i></span><span class='anglebracket'>&lt;</span>quantity, quantity<span class='anglebracket'>&lt;</span>reference, ToRep<span class='anglebracket'>&gt;</span><span class='anglebracket'>&gt;</span>
<span class='keyword'>constexpr</span> <a href='qty.syn.html#concept:QuantityOf' title='5.6.3&emsp;Class template quantity&emsp;[qty.syn]'><span id='conceptref:QuantityOf_'><span class='texttt'>QuantityOf</span></span></a><span class='anglebracket'>&lt;</span>quantity_spec<span class='anglebracket'>&gt;</span> <span class='keyword'>auto</span> in<span class='parenthesis'>(</span><span class='parenthesis'>)</span> <span class='keyword'>const</span>;
</code></div></div></div></div><div class='para' id='2'><div class='marginalizedparent'><a class='marginalized' href='#2'>2</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L4615'>#</a></div><div class='texpara'><div id='2.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
</code></div></div></div></div><div class='para' id='2'><div class='marginalizedparent'><a class='marginalized' href='#2'>2</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L4615'>#</a></div><div class='texpara'><div id='2.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
<span class='texttt'><span class='keyword'>return</span> quantity<span class='anglebracket'>&lt;</span>reference, ToRep<span class='anglebracket'>&gt;</span><span class='curlybracket'>{</span><span class='operator'>*</span><span class='keyword'>this</span><span class='curlybracket'>}</span>;</span></div></div></div></div><div class='texpara'><div id='lib:quantity,in__'><div id='lib:in,quantity__'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:in,quantity__'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><a href='qty.rep.concepts.html#concept:RepresentationOf' title='5.5.4&emsp;Concepts&emsp;[qty.rep.concepts]'><span id='conceptref:RepresentationOf_'><span class='texttt'>RepresentationOf</span></span></a><span class='anglebracket'>&lt;</span>quantity_spec<span class='anglebracket'>&gt;</span> ToRep,
<a class='index' id='conceptref:UnitCompatibleWith_'></a><span class='texttt'><i >UnitCompatibleWith</i></span><span class='anglebracket'>&lt;</span>unit, quantity_spec<span class='anglebracket'>&gt;</span> ToU<span class='anglebracket'>&gt;</span>
<span class='keyword'>requires</span> <a class='index' id='conceptref:QuantityConvertibleTo__'></a><span class='texttt'><i >QuantityConvertibleTo</i></span><span class='anglebracket'>&lt;</span>quantity,
quantity<span class='anglebracket'>&lt;</span><span class='texttt'><i >make-reference</i></span><span class='parenthesis'>(</span>quantity_spec, ToU<span class='curlybracket'>{</span><span class='curlybracket'>}</span><span class='parenthesis'>)</span>, ToRep<span class='anglebracket'>&gt;</span><span class='anglebracket'>&gt;</span>
<span class='keyword'>constexpr</span> <a href='qty.syn.html#concept:QuantityOf' title='5.6.3&emsp;Class template quantity&emsp;[qty.syn]'><span id='conceptref:QuantityOf__'><span class='texttt'>QuantityOf</span></span></a><span class='anglebracket'>&lt;</span>quantity_spec<span class='anglebracket'>&gt;</span> <span class='keyword'>auto</span> in<span class='parenthesis'>(</span>ToU<span class='parenthesis'>)</span> <span class='keyword'>const</span>;
</code></div></div></div></div><div class='para' id='3'><div class='marginalizedparent'><a class='marginalized' href='#3'>3</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L4631'>#</a></div><div class='texpara'><div id='3.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
</code></div></div></div></div><div class='para' id='3'><div class='marginalizedparent'><a class='marginalized' href='#3'>3</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L4631'>#</a></div><div class='texpara'><div id='3.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
<span class='codeblock'><span class='keyword'>return</span> quantity<span class='anglebracket'>&lt;</span><i >make-reference</i><span class='parenthesis'>(</span>quantity_spec, ToU<span class='curlybracket'>{</span><span class='curlybracket'>}</span><span class='parenthesis'>)</span>, ToRep<span class='anglebracket'>&gt;</span><span class='curlybracket'>{</span><span class='operator'>*</span><span class='keyword'>this</span><span class='curlybracket'>}</span>;
</span></div></div></div></div><div class='texpara'><div id='lib:quantity,force_in'><div id='lib:force_in,quantity'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:force_in,quantity'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><a class='index' id='conceptref:UnitCompatibleWith__'></a><span class='texttt'><i >UnitCompatibleWith</i></span><span class='anglebracket'>&lt;</span>unit, quantity_spec<span class='anglebracket'>&gt;</span> ToU<span class='anglebracket'>&gt;</span>
<span class='keyword'>requires</span> <span class='keyword'>requires</span><span class='parenthesis'>(</span><span class='keyword'>const</span> quantity q<span class='parenthesis'>)</span> <span class='curlybracket'>{</span> value_cast<span class='anglebracket'>&lt;</span>ToU<span class='curlybracket'>{</span><span class='curlybracket'>}</span><span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span>q<span class='parenthesis'>)</span>; <span class='curlybracket'>}</span>
<span class='keyword'>constexpr</span> <a href='qty.syn.html#concept:QuantityOf' title='5.6.3&emsp;Class template quantity&emsp;[qty.syn]'><span id='conceptref:QuantityOf___'><span class='texttt'>QuantityOf</span></span></a><span class='anglebracket'>&lt;</span>quantity_spec<span class='anglebracket'>&gt;</span> <span class='keyword'>auto</span> force_in<span class='parenthesis'>(</span>ToU<span class='parenthesis'>)</span> <span class='keyword'>const</span>;
</code></div></div></div></div><div class='para' id='4'><div class='marginalizedparent'><a class='marginalized' href='#4'>4</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L4647'>#</a></div><div class='texpara'><div id='4.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
</code></div></div></div></div><div class='para' id='4'><div class='marginalizedparent'><a class='marginalized' href='#4'>4</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L4647'>#</a></div><div class='texpara'><div id='4.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
<span class='texttt'><span class='keyword'>return</span> value_<span class='shy'></span>cast<span class='anglebracket'>&lt;</span>ToU<span class='curlybracket'>{</span><span class='curlybracket'>}</span><span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span><span class='operator'>*</span><span class='keyword'>this</span><span class='parenthesis'>)</span>;</span></div></div></div></div><div class='texpara'><div id='lib:quantity,force_in_'><div id='lib:force_in,quantity_'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:force_in,quantity_'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><a href='qty.rep.concepts.html#concept:RepresentationOf' title='5.5.4&emsp;Concepts&emsp;[qty.rep.concepts]'><span id='conceptref:RepresentationOf__'><span class='texttt'>RepresentationOf</span></span></a><span class='anglebracket'>&lt;</span>quantity_spec<span class='anglebracket'>&gt;</span> ToRep<span class='anglebracket'>&gt;</span>
<span class='keyword'>requires</span> <span class='keyword'>requires</span><span class='parenthesis'>(</span><span class='keyword'>const</span> quantity q<span class='parenthesis'>)</span> <span class='curlybracket'>{</span> value_cast<span class='anglebracket'>&lt;</span>ToRep<span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span>q<span class='parenthesis'>)</span>; <span class='curlybracket'>}</span>
<span class='keyword'>constexpr</span> <a href='qty.syn.html#concept:QuantityOf' title='5.6.3&emsp;Class template quantity&emsp;[qty.syn]'><span id='conceptref:QuantityOf____'><span class='texttt'>QuantityOf</span></span></a><span class='anglebracket'>&lt;</span>quantity_spec<span class='anglebracket'>&gt;</span> <span class='keyword'>auto</span> force_in<span class='parenthesis'>(</span><span class='parenthesis'>)</span> <span class='keyword'>const</span>;
</code></div></div></div></div><div class='para' id='5'><div class='marginalizedparent'><a class='marginalized' href='#5'>5</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L4661'>#</a></div><div class='texpara'><div id='5.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
</code></div></div></div></div><div class='para' id='5'><div class='marginalizedparent'><a class='marginalized' href='#5'>5</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L4661'>#</a></div><div class='texpara'><div id='5.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
<span class='texttt'><span class='keyword'>return</span> value_<span class='shy'></span>cast<span class='anglebracket'>&lt;</span>ToRep<span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span><span class='operator'>*</span><span class='keyword'>this</span><span class='parenthesis'>)</span>;</span></div></div></div></div><div class='texpara'><div id='lib:quantity,force_in__'><div id='lib:force_in,quantity__'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:force_in,quantity__'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><a href='qty.rep.concepts.html#concept:RepresentationOf' title='5.5.4&emsp;Concepts&emsp;[qty.rep.concepts]'><span id='conceptref:RepresentationOf___'><span class='texttt'>RepresentationOf</span></span></a><span class='anglebracket'>&lt;</span>quantity_spec<span class='anglebracket'>&gt;</span> ToRep,
<a class='index' id='conceptref:UnitCompatibleWith___'></a><span class='texttt'><i >UnitCompatibleWith</i></span><span class='anglebracket'>&lt;</span>unit, quantity_spec<span class='anglebracket'>&gt;</span> ToU<span class='anglebracket'>&gt;</span>
<span class='keyword'>requires</span> <span class='keyword'>requires</span><span class='parenthesis'>(</span><span class='keyword'>const</span> quantity q<span class='parenthesis'>)</span> <span class='curlybracket'>{</span> value_cast<span class='anglebracket'>&lt;</span>ToU<span class='curlybracket'>{</span><span class='curlybracket'>}</span>, ToRep<span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span>q<span class='parenthesis'>)</span>; <span class='curlybracket'>}</span>
<span class='keyword'>constexpr</span> <a href='qty.syn.html#concept:QuantityOf' title='5.6.3&emsp;Class template quantity&emsp;[qty.syn]'><span id='conceptref:QuantityOf_____'><span class='texttt'>QuantityOf</span></span></a><span class='anglebracket'>&lt;</span>quantity_spec<span class='anglebracket'>&gt;</span> <span class='keyword'>auto</span> force_in<span class='parenthesis'>(</span>ToU<span class='parenthesis'>)</span> <span class='keyword'>const</span>;
</code></div></div></div></div><div class='para' id='6'><div class='marginalizedparent'><a class='marginalized' href='#6'>6</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L4676'>#</a></div><div class='texpara'><div id='6.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
</code></div></div></div></div><div class='para' id='6'><div class='marginalizedparent'><a class='marginalized' href='#6'>6</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L4676'>#</a></div><div class='texpara'><div id='6.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
<span class='texttt'><span class='keyword'>return</span> value_<span class='shy'></span>cast<span class='anglebracket'>&lt;</span>ToU<span class='curlybracket'>{</span><span class='curlybracket'>}</span>, ToRep<span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span><span class='operator'>*</span><span class='keyword'>this</span><span class='parenthesis'>)</span>;</span></div></div></div></div></div></body></html>

View File

@ -1,13 +1,13 @@
<!DOCTYPE html><html lang='en'><head><title>[qty.conv.ops]</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.6</a> Quantity <a class='abbr_ref' href='qty.html#conv.ops'>[qty]</a></h2><h3 ><a class='secnum' style='min-width:80pt'>5.6.8</a> Conversion operations <a class='abbr_ref'>[qty.conv.ops]</a></h3><div class='texpara'><div id='lib:quantity,operator_constructible_from<Rep>'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:quantity,operator_constructible_from%3cRep%3e'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><span class='keyword'>typename</span> V_, std<span class='operator'>::</span>constructible_from<span class='anglebracket'>&lt;</span>Rep<span class='anglebracket'>&gt;</span> Value <span class='operator'>=</span> std<span class='operator'>::</span>remove_cvref_t<span class='anglebracket'>&lt;</span>V_<span class='anglebracket'>&gt;</span><span class='anglebracket'>&gt;</span>
<span class='keyword'>requires</span><span class='parenthesis'>(</span>unit <span class='operator'>=</span><span class='operator'>=</span> <span class='operator'>::</span>mp_units<span class='operator'>::</span>one<span class='parenthesis'>)</span>
<span class='keyword'>explicit</span> <span class='keyword'>operator</span> V_<span class='parenthesis'>(</span><span class='parenthesis'>)</span> <span class='keyword'>const</span> <span class='operator'>&amp;</span> <span class='keyword'>noexcept</span>;
</code></div></div></div><div class='para' id='1'><div class='marginalizedparent'><a class='marginalized' href='#1'>1</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L4738'>#</a></div><div class='texpara'><div id='1.sentence-1' class='sentence'><i >Returns</i>: <span class='texttt'><i >numerical-value</i></span><a class='hidden_link' href='#1.sentence-1'>.</a></div></div></div></div><div class='texpara'><div id='lib:quantity,operator_QuantityLike'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:quantity,operator_QuantityLike'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><span class='keyword'>typename</span> Q_, <a href='qty.like.html#concept:QuantityLike' title='5.6.2&emsp;Interoperability&emsp;[qty.like]'><span id='conceptref:QuantityLike'><span class='texttt'>QuantityLike</span></span></a> Q <span class='operator'>=</span> std<span class='operator'>::</span>remove_cvref_t<span class='anglebracket'>&lt;</span>Q_<span class='anglebracket'>&gt;</span><span class='anglebracket'>&gt;</span>
</code></div></div></div><div class='para' id='1'><div class='marginalizedparent'><a class='marginalized' href='#1'>1</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L4738'>#</a></div><div class='texpara'><div id='1.sentence-1' class='sentence'><i >Returns</i>: <span class='texttt'><i >numerical-value</i></span><a class='hidden_link' href='#1.sentence-1'>.</a></div></div></div></div><div class='texpara'><div id='lib:quantity,operator_QuantityLike'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:quantity,operator_QuantityLike'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><span class='keyword'>typename</span> Q_, <a href='qty.like.html#concept:QuantityLike' title='5.6.2&emsp;Interoperability&emsp;[qty.like]'><span id='conceptref:QuantityLike'><span class='texttt'>QuantityLike</span></span></a> Q <span class='operator'>=</span> std<span class='operator'>::</span>remove_cvref_t<span class='anglebracket'>&lt;</span>Q_<span class='anglebracket'>&gt;</span><span class='anglebracket'>&gt;</span>
<span class='keyword'>requires</span> <a class='index' id='conceptref:QuantityConvertibleTo'></a><span class='texttt'><i >QuantityConvertibleTo</i></span><span class='anglebracket'>&lt;</span>quantity, <span class='texttt'><i >quantity-like-type</i></span><span class='anglebracket'>&lt;</span>Q<span class='anglebracket'>&gt;</span><span class='anglebracket'>&gt;</span>
<span class='keyword'>constexpr</span> <span class='keyword'>explicit</span><span class='parenthesis'>(</span><i ><span class='texttt'>see below</span></i><span class='parenthesis'>)</span> <span class='keyword'>operator</span> Q_<span class='parenthesis'>(</span><span class='parenthesis'>)</span> <span class='keyword'>const</span> <span class='keyword'>noexcept</span><span class='parenthesis'>(</span><i ><span class='texttt'>see below</span></i><span class='parenthesis'>)</span>;
</code></div></div></div><div class='para' id='2'><div class='marginalizedparent'><a class='marginalized' href='#2'>2</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L4751'>#</a></div><div class='texpara'><div id='2.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
</code></div></div></div><div class='para' id='2'><div class='marginalizedparent'><a class='marginalized' href='#2'>2</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L4751'>#</a></div><div class='texpara'><div id='2.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
<span class='codeblock'><span class='keyword'>return</span> quantity_like_traits<span class='anglebracket'>&lt;</span>Q<span class='anglebracket'>&gt;</span><span class='operator'>::</span>from_numerical_value<span class='parenthesis'>(</span>
numerical_value_in<span class='parenthesis'>(</span>get_unit<span class='parenthesis'>(</span>quantity_like_traits<span class='anglebracket'>&lt;</span>Q<span class='anglebracket'>&gt;</span><span class='operator'>::</span>reference<span class='parenthesis'>)</span><span class='parenthesis'>)</span><span class='parenthesis'>)</span>;
</span></div></div></div></div><div class='para' id='3'><div class='marginalizedparent'><a class='marginalized' href='#3'>3</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L4759'>#</a></div><div class='texpara'><div id='3.sentence-1' class='sentence'><i >Remarks</i>: The expression inside <span class='texttt'><span class='keyword'>explicit</span></span> is equivalent to:
</span></div></div></div></div><div class='para' id='3'><div class='marginalizedparent'><a class='marginalized' href='#3'>3</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L4759'>#</a></div><div class='texpara'><div id='3.sentence-1' class='sentence'><i >Remarks</i>: The expression inside <span class='texttt'><span class='keyword'>explicit</span></span> is equivalent to:
<span class='codeblock'>quantity_like_traits<span class='anglebracket'>&lt;</span>Q<span class='anglebracket'>&gt;</span><span class='operator'>::</span>explicit_export <span class='operator'>|</span><span class='operator'>|</span>
<span class='operator'>!</span>std<span class='operator'>::</span>convertible_to<span class='anglebracket'>&lt;</span>Rep, <span class='keyword'>typename</span> quantity_like_traits<span class='anglebracket'>&lt;</span>Q<span class='anglebracket'>&gt;</span><span class='operator'>::</span>rep<span class='anglebracket'>&gt;</span>
</span></div> <div id='3.sentence-2' class='sentence'>

View File

@ -1,6 +1,6 @@
<!DOCTYPE html><html lang='en'><head><title>[qty.def.pt.orig]</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.7</a> Quantity point <a class='abbr_ref' href='qty.pt.html#qty.def.pt.orig'>[qty.pt]</a></h2><h3 ><a class='secnum' style='min-width:80pt'>5.7.2</a> Point origin <a class='abbr_ref' href='qty.pt.orig.html#qty.def.pt.orig'>[qty.pt.orig]</a></h3><h4 ><a class='secnum' style='min-width:95pt'>5.7.2.5</a> Utilities <a class='abbr_ref' href='qty.pt.orig.utils.html#qty.def.pt.orig'>[qty.pt.orig.utils]</a></h4><h4 ><a class='secnum' style='min-width:110pt'>5.7.2.5.2</a> Default <a class='abbr_ref'>[qty.def.pt.orig]</a></h4><div class='texpara'><div id='lib:default_point_origin,Reference'><div id='lib:Reference,default_point_origin'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:Reference,default_point_origin'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><a href='qty.ref.concepts.html#concept:Reference' title='5.4.5&emsp;Concepts&emsp;[qty.ref.concepts]'><span id='conceptref:Reference'><span class='texttt'>Reference</span></span></a> R<span class='anglebracket'>&gt;</span>
<span class='keyword'>consteval</span> <a href='qty.pt.orig.concepts.html#concept:PointOriginFor' title='5.7.2.2&emsp;Concepts&emsp;[qty.pt.orig.concepts]'><span id='conceptref:PointOriginFor'><span class='texttt'>PointOriginFor</span></span></a><span class='anglebracket'>&lt;</span>get_quantity_spec<span class='parenthesis'>(</span>R<span class='curlybracket'>{</span><span class='curlybracket'>}</span><span class='parenthesis'>)</span><span class='anglebracket'>&gt;</span> <span class='keyword'>auto</span> default_point_origin<span class='parenthesis'>(</span>R<span class='parenthesis'>)</span>;
</code></div></div></div></div><div class='para' id='1'><div class='marginalizedparent'><a class='marginalized' href='#1'>1</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L5705'>#</a></div><div class='texpara'><div id='1.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
</code></div></div></div></div><div class='para' id='1'><div class='marginalizedparent'><a class='marginalized' href='#1'>1</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L5705'>#</a></div><div class='texpara'><div id='1.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
<span class='codeblock'><span class='keyword'>if</span> <span class='keyword'>constexpr</span> <span class='parenthesis'>(</span><span class='keyword'>requires</span> <span class='curlybracket'>{</span> get_unit<span class='parenthesis'>(</span>R<span class='curlybracket'>{</span><span class='curlybracket'>}</span><span class='parenthesis'>)</span><span class='operator'>.</span><i >point-origin</i>; <span class='curlybracket'>}</span><span class='parenthesis'>)</span>
<span class='keyword'>return</span> get_unit<span class='parenthesis'>(</span>R<span class='curlybracket'>{</span><span class='curlybracket'>}</span><span class='parenthesis'>)</span><span class='operator'>.</span><i >point-origin</i>;
<span class='keyword'>else</span>

View File

@ -11,5 +11,5 @@
</span></span></div><div class='texpara'><div id='lib:delta_,operator()'><div id='lib:operator(),delta_'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:operator(),delta_'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><span class='keyword'>typename</span> FwdRep,
<a href='qty.rep.concepts.html#concept:RepresentationOf' title='5.5.4&emsp;Concepts&emsp;[qty.rep.concepts]'><span id='conceptref:RepresentationOf_'><span class='texttt'>RepresentationOf</span></span></a><span class='anglebracket'>&lt;</span>get_quantity_spec<span class='parenthesis'>(</span>R<span class='curlybracket'>{</span><span class='curlybracket'>}</span><span class='parenthesis'>)</span><span class='anglebracket'>&gt;</span> Rep <span class='operator'>=</span> std<span class='operator'>::</span>remove_cvref_t<span class='anglebracket'>&lt;</span>FwdRep<span class='anglebracket'>&gt;</span><span class='anglebracket'>&gt;</span>
<span class='keyword'>constexpr</span> quantity<span class='anglebracket'>&lt;</span>R<span class='curlybracket'>{</span><span class='curlybracket'>}</span>, Rep<span class='anglebracket'>&gt;</span> <span class='keyword'>operator</span><span class='parenthesis'>(</span><span class='parenthesis'>)</span><span class='parenthesis'>(</span>FwdRep<span class='operator'>&amp;</span><span class='operator'>&amp;</span> lhs<span class='parenthesis'>)</span> <span class='keyword'>const</span>;
</code></div></div></div></div><div class='para' id='1'><div class='marginalizedparent'><a class='marginalized' href='#1'>1</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L5292'>#</a></div><div class='texpara'><div id='1.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
</code></div></div></div></div><div class='para' id='1'><div class='marginalizedparent'><a class='marginalized' href='#1'>1</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L5292'>#</a></div><div class='texpara'><div id='1.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
<span class='texttt'><span class='keyword'>return</span> quantity<span class='curlybracket'>{</span>std<span class='operator'>&#x200b;::&#x200b;</span>forward<span class='anglebracket'>&lt;</span>FwdRep<span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span>lhs<span class='parenthesis'>)</span>, R<span class='curlybracket'>{</span><span class='curlybracket'>}</span><span class='curlybracket'>}</span>;</span></div></div></div></div></div></body></html>

View File

@ -11,7 +11,7 @@
<span class='keyword'>struct</span> derived_unit <span class='keyword'>final</span> <span class='operator'>:</span> <i >derived-unit-impl</i><span class='anglebracket'>&lt;</span>Expr<span class='operator'>.</span><span class='operator'>.</span><span class='operator'>.</span><span class='anglebracket'>&gt;</span> <span class='curlybracket'>{</span><span class='curlybracket'>}</span>;
<span class='curlybracket'>}</span>
</span></span></div><div class='para' id='1'><div class='marginalizedparent'><a class='marginalized' href='#1'>1</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L2879'>#</a></div><div class='texpara'><div id='1.sentence-1' class='sentence'><span class='texttt'>derived_<span class='shy'></span>unit</span> is used by the library
</span></span></div><div class='para' id='1'><div class='marginalizedparent'><a class='marginalized' href='#1'>1</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L2879'>#</a></div><div class='texpara'><div id='1.sentence-1' class='sentence'><span class='texttt'>derived_<span class='shy'></span>unit</span> is used by the library
to represent a derived unit (<a href="https://www.electropedia.org/iev/iev.nsf/display?openform&ievref=112-01-19">IEC 60050, 112-01-19</a>)<a class='hidden_link' href='#1.sentence-1'>.</a></div> <div id='example-1' class='example'><div class='texpara'>[<i>Example&nbsp;<a href='#example-1'>1</a></i>:&ensp;<span class='codeblock'><span class='keyword'>using</span> <span class='keyword'>namespace</span> si<span class='operator'>::</span>unit_symbols;
<span class='keyword'>int</span> x <span class='operator'>=</span> m <span class='operator'>*</span> m; <span class='comment'>// error: cannot construct from <span class='tcode_in_codeblock'>derived_<span class='shy'></span>unit&lt;power&lt;si&#x200b;::&#x200b;metre, 2&gt;&gt;</span></span>
<span class='keyword'>int</span> y <span class='operator'>=</span> m <span class='operator'>*</span> s; <span class='comment'>// error: cannot construct from <span class='tcode_in_codeblock'>derived_<span class='shy'></span>unit&lt;si&#x200b;::&#x200b;metre, si&#x200b;::&#x200b;second&gt;</span></span>

View File

@ -1,2 +1,2 @@
<!DOCTYPE html><html lang='en'><head><title>[qty.dim.general]</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.general'>[qty.ref]</a></h2><h3 ><a class='secnum' style='min-width:80pt'>5.4.2</a> Dimension <a class='abbr_ref' href='qty.dim.html#general'>[qty.dim]</a></h3><h4 ><a class='secnum' style='min-width:95pt'>5.4.2.1</a> General <a class='abbr_ref'>[qty.dim.general]</a></h4><div class='para' id='1'><div class='marginalizedparent'><a class='marginalized' href='#1'>1</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L1344'>#</a></div><div class='texpara'><div id='1.sentence-1' class='sentence'>Subclause <a href='qty.dim.html' title='5.4.2&emsp;Dimension'>[qty.<span class='shy'></span>dim]</a> specifies the components
<!DOCTYPE html><html lang='en'><head><title>[qty.dim.general]</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.general'>[qty.ref]</a></h2><h3 ><a class='secnum' style='min-width:80pt'>5.4.2</a> Dimension <a class='abbr_ref' href='qty.dim.html#general'>[qty.dim]</a></h3><h4 ><a class='secnum' style='min-width:95pt'>5.4.2.1</a> General <a class='abbr_ref'>[qty.dim.general]</a></h4><div class='para' id='1'><div class='marginalizedparent'><a class='marginalized' href='#1'>1</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L1344'>#</a></div><div class='texpara'><div id='1.sentence-1' class='sentence'>Subclause <a href='qty.dim.html' title='5.4.2&emsp;Dimension'>[qty.<span class='shy'></span>dim]</a> specifies the components
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='#1.sentence-1'>.</a></div></div></div></div></body></html>

View File

@ -1,4 +1,4 @@
<!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-units47a82f466ceb0260363bccd02316efdb5db830ff/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
<!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-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/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
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'>&lt;</span><span class='keyword'>typename</span> T<span class='anglebracket'>&gt;</span>
<span class='keyword'>concept</span> <a class='hidden_link' href='#concept:Dimension' title='5.4.2.2&emsp;Concepts&emsp;[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'>&lt;</span>T<span class='anglebracket'>&gt;</span> <span class='operator'>&amp;</span><span class='operator'>&amp;</span> std<span class='operator'>::</span>derived_from<span class='anglebracket'>&lt;</span>T, <span class='texttt'><i >dimension-interface</i></span><span class='anglebracket'>&gt;</span>;
@ -16,7 +16,7 @@ for defining the dimension of a quantity (<a href="https://www.electropedia.org/
<span class='curlybracket'>}</span>;
<span class='curlybracket'>}</span>
</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-units47a82f466ceb0260363bccd02316efdb5db830ff/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
</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-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/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
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&nbsp;<a href='#types-example-1'>1</a></i>:&ensp;<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'>&lt;</span><span class='literal'>"L"</span><span class='anglebracket'>&gt;</span> <span class='curlybracket'>{</span><span class='curlybracket'>}</span> dim_length;
</span>&nbsp;<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>
@ -28,7 +28,7 @@ to define the dimension of a base quantity (<a href="https://www.electropedia.or
<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'>&lt;</span>Expr<span class='operator'>.</span><span class='operator'>.</span><span class='operator'>.</span><span class='anglebracket'>&gt;</span> <span class='curlybracket'>{</span><span class='curlybracket'>}</span>;
<span class='curlybracket'>}</span>
</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-units47a82f466ceb0260363bccd02316efdb5db830ff/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
</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-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/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
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&nbsp;<a href='#types-example-2'>2</a></i>:&ensp;<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&lt;isq&#x200b;::&#x200b;dim_<span class='shy'></span>length, per&lt;power&lt;isq&#x200b;::&#x200b;dim_<span class='shy'></span>time, 2&gt;&gt;&gt;</span></span>
@ -40,7 +40,7 @@ is ill-formed, no diagnostic required<a class='hidden_link' href='#types-2.sente
<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'>&lt;</span><span class='anglebracket'>&gt;</span> <span class='curlybracket'>{</span><span class='curlybracket'>}</span>;
<span class='curlybracket'>}</span>
</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-units47a82f466ceb0260363bccd02316efdb5db830ff/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>
</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-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/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>
<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'>&lt;</span><a href='#concept:Dimension' title='5.4.2.2&emsp;Concepts&emsp;[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&emsp;Concepts&emsp;[qty.dim.concepts]'><span id='conceptref:Dimension____'><span class='tcode_in_codeblock'>Dimension</span></span></a> Rhs<span class='anglebracket'>&gt;</span>
@ -56,20 +56,20 @@ is ill-formed, no diagnostic required<a class='hidden_link' href='#types-2.sente
<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'>&lt;</span><a href='#concept:Dimension' title='5.4.2.2&emsp;Concepts&emsp;[qty.dim.concepts]'><span id='conceptref:Dimension___________'><span class='texttt'>Dimension</span></span></a> Lhs, <a href='#concept:Dimension' title='5.4.2.2&emsp;Concepts&emsp;[qty.dim.concepts]'><span id='conceptref:Dimension____________'><span class='texttt'>Dimension</span></span></a> Rhs<span class='anglebracket'>&gt;</span>
<span class='keyword'>friend</span> <span class='keyword'>consteval</span> <a href='#concept:Dimension' title='5.4.2.2&emsp;Concepts&emsp;[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>;
</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-units47a82f466ceb0260363bccd02316efdb5db830ff/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'>&lt;</span>derived_<span class='shy'></span>dimension, <span class='keyword'>struct</span> dimension_<span class='shy'></span>one<span class='anglebracket'>&gt;</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'>&lt;</span><a href='#concept:Dimension' title='5.4.2.2&emsp;Concepts&emsp;[qty.dim.concepts]'><span id='conceptref:Dimension______________'><span class='texttt'>Dimension</span></span></a> Lhs, <a href='#concept:Dimension' title='5.4.2.2&emsp;Concepts&emsp;[qty.dim.concepts]'><span id='conceptref:Dimension_______________'><span class='texttt'>Dimension</span></span></a> Rhs<span class='anglebracket'>&gt;</span>
</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-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/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'>&lt;</span>derived_<span class='shy'></span>dimension, <span class='keyword'>struct</span> dimension_<span class='shy'></span>one<span class='anglebracket'>&gt;</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'>&lt;</span><a href='#concept:Dimension' title='5.4.2.2&emsp;Concepts&emsp;[qty.dim.concepts]'><span id='conceptref:Dimension______________'><span class='texttt'>Dimension</span></span></a> Lhs, <a href='#concept:Dimension' title='5.4.2.2&emsp;Concepts&emsp;[qty.dim.concepts]'><span id='conceptref:Dimension_______________'><span class='texttt'>Dimension</span></span></a> Rhs<span class='anglebracket'>&gt;</span>
<span class='keyword'>friend</span> <span class='keyword'>consteval</span> <a href='#concept:Dimension' title='5.4.2.2&emsp;Concepts&emsp;[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>;
</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-units47a82f466ceb0260363bccd02316efdb5db830ff/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'>&lt;</span>derived_<span class='shy'></span>dimension, <span class='keyword'>struct</span> dimension_<span class='shy'></span>one<span class='anglebracket'>&gt;</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'>&lt;</span><a href='#concept:Dimension' title='5.4.2.2&emsp;Concepts&emsp;[qty.dim.concepts]'><span id='conceptref:Dimension_________________'><span class='texttt'>Dimension</span></span></a> Lhs, <a href='#concept:Dimension' title='5.4.2.2&emsp;Concepts&emsp;[qty.dim.concepts]'><span id='conceptref:Dimension__________________'><span class='texttt'>Dimension</span></span></a> Rhs<span class='anglebracket'>&gt;</span>
</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-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/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'>&lt;</span>derived_<span class='shy'></span>dimension, <span class='keyword'>struct</span> dimension_<span class='shy'></span>one<span class='anglebracket'>&gt;</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'>&lt;</span><a href='#concept:Dimension' title='5.4.2.2&emsp;Concepts&emsp;[qty.dim.concepts]'><span id='conceptref:Dimension_________________'><span class='texttt'>Dimension</span></span></a> Lhs, <a href='#concept:Dimension' title='5.4.2.2&emsp;Concepts&emsp;[qty.dim.concepts]'><span id='conceptref:Dimension__________________'><span class='texttt'>Dimension</span></span></a> Rhs<span class='anglebracket'>&gt;</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>;
</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-units47a82f466ceb0260363bccd02316efdb5db830ff/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'>&#x200b;::&#x200b;</span>is_<span class='shy'></span>same_<span class='shy'></span>v<span class='anglebracket'>&lt;</span>Lhs, Rhs<span class='anglebracket'>&gt;</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&emsp;Concepts&emsp;[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&emsp;Concepts&emsp;[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-units47a82f466ceb0260363bccd02316efdb5db830ff/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'>&lt;</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&emsp;Concepts&emsp;[qty.dim.concepts]'><span id='conceptref:Dimension_____________________'><span class='texttt'>Dimension</span></span></a> D<span class='anglebracket'>&gt;</span>
</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-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/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'>&#x200b;::&#x200b;</span>is_<span class='shy'></span>same_<span class='shy'></span>v<span class='anglebracket'>&lt;</span>Lhs, Rhs<span class='anglebracket'>&gt;</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&emsp;Concepts&emsp;[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&emsp;Concepts&emsp;[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-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/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'>&lt;</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&emsp;Concepts&emsp;[qty.dim.concepts]'><span id='conceptref:Dimension_____________________'><span class='texttt'>Dimension</span></span></a> D<span class='anglebracket'>&gt;</span>
<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&emsp;Concepts&emsp;[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>;
</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-units47a82f466ceb0260363bccd02316efdb5db830ff/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'>&lt;</span>Num, Den, derived_<span class='shy'></span>dimension, <span class='keyword'>struct</span> dimension_<span class='shy'></span>one<span class='anglebracket'>&gt;</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&emsp;Concepts&emsp;[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&emsp;Concepts&emsp;[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-units47a82f466ceb0260363bccd02316efdb5db830ff/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'>&lt;</span><span class='literal'>1</span>, <span class='literal'>2</span><span class='anglebracket'>&gt;</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&emsp;Concepts&emsp;[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&emsp;Concepts&emsp;[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-units47a82f466ceb0260363bccd02316efdb5db830ff/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'>&lt;</span><span class='literal'>1</span>, <span class='literal'>3</span><span class='anglebracket'>&gt;</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'>&lt;</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'>&lt;</span>CharT<span class='anglebracket'>&gt;</span> Out, <a href='#concept:Dimension' title='5.4.2.2&emsp;Concepts&emsp;[qty.dim.concepts]'><span id='conceptref:Dimension___________________________'><span class='texttt'>Dimension</span></span></a> D<span class='anglebracket'>&gt;</span>
</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-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/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'>&lt;</span>Num, Den, derived_<span class='shy'></span>dimension, <span class='keyword'>struct</span> dimension_<span class='shy'></span>one<span class='anglebracket'>&gt;</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&emsp;Concepts&emsp;[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&emsp;Concepts&emsp;[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-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/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'>&lt;</span><span class='literal'>1</span>, <span class='literal'>2</span><span class='anglebracket'>&gt;</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&emsp;Concepts&emsp;[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&emsp;Concepts&emsp;[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-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/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'>&lt;</span><span class='literal'>1</span>, <span class='literal'>3</span><span class='anglebracket'>&gt;</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'>&lt;</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'>&lt;</span>CharT<span class='anglebracket'>&gt;</span> Out, <a href='#concept:Dimension' title='5.4.2.2&emsp;Concepts&emsp;[qty.dim.concepts]'><span id='conceptref:Dimension___________________________'><span class='texttt'>Dimension</span></span></a> D<span class='anglebracket'>&gt;</span>
<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'>&amp;</span> fmt <span class='operator'>=</span> <span class='curlybracket'>{</span><span class='curlybracket'>}</span><span class='parenthesis'>)</span>;
</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-units47a82f466ceb0260363bccd02316efdb5db830ff/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-units47a82f466ceb0260363bccd02316efdb5db830ff/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'>&lt;</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&emsp;Concepts&emsp;[qty.dim.concepts]'><span id='conceptref:Dimension____________________________'><span class='texttt'>Dimension</span></span></a> D<span class='anglebracket'>&gt;</span>
</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-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/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-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/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'>&lt;</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&emsp;Concepts&emsp;[qty.dim.concepts]'><span id='conceptref:Dimension____________________________'><span class='texttt'>Dimension</span></span></a> D<span class='anglebracket'>&gt;</span>
<span class='keyword'>consteval</span> std<span class='operator'>::</span>string_view dimension_symbol<span class='parenthesis'>(</span>D<span class='parenthesis'>)</span>;
</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-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L1552'>#</a></div><div class='texpara'><div id='sym.fmt-3.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
</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-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L1552'>#</a></div><div class='texpara'><div id='sym.fmt-3.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
<span class='codeblock'>TBD<span class='operator'>.</span>
</span></div></div></div></div></div></div></body></html>

View File

@ -14,14 +14,14 @@
<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'>&lt;</span><a href='qty.dim.concepts.html#concept:Dimension' title='5.4.2.2&emsp;Concepts&emsp;[qty.dim.concepts]'><span id='conceptref:Dimension________'><span class='texttt'>Dimension</span></span></a> Lhs, <a href='qty.dim.concepts.html#concept:Dimension' title='5.4.2.2&emsp;Concepts&emsp;[qty.dim.concepts]'><span id='conceptref:Dimension_________'><span class='texttt'>Dimension</span></span></a> Rhs<span class='anglebracket'>&gt;</span>
<span class='keyword'>friend</span> <span class='keyword'>consteval</span> <a href='qty.dim.concepts.html#concept:Dimension' title='5.4.2.2&emsp;Concepts&emsp;[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>;
</code></div></div></div></div><div class='para' id='1'><div class='marginalizedparent'><a class='marginalized' href='#1'>1</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L1452'>#</a></div><div class='texpara'><div id='1.sentence-1' class='sentence'><i >Returns</i>: <span class='texttt'><span class='texttt'><i >expr-multiply</i></span><span class='anglebracket'>&lt;</span>derived_<span class='shy'></span>dimension, <span class='keyword'>struct</span> dimension_<span class='shy'></span>one<span class='anglebracket'>&gt;</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='#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'>&lt;</span><a href='qty.dim.concepts.html#concept:Dimension' title='5.4.2.2&emsp;Concepts&emsp;[qty.dim.concepts]'><span id='conceptref:Dimension___________'><span class='texttt'>Dimension</span></span></a> Lhs, <a href='qty.dim.concepts.html#concept:Dimension' title='5.4.2.2&emsp;Concepts&emsp;[qty.dim.concepts]'><span id='conceptref:Dimension____________'><span class='texttt'>Dimension</span></span></a> Rhs<span class='anglebracket'>&gt;</span>
</code></div></div></div></div><div class='para' id='1'><div class='marginalizedparent'><a class='marginalized' href='#1'>1</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L1452'>#</a></div><div class='texpara'><div id='1.sentence-1' class='sentence'><i >Returns</i>: <span class='texttt'><span class='texttt'><i >expr-multiply</i></span><span class='anglebracket'>&lt;</span>derived_<span class='shy'></span>dimension, <span class='keyword'>struct</span> dimension_<span class='shy'></span>one<span class='anglebracket'>&gt;</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='#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'>&lt;</span><a href='qty.dim.concepts.html#concept:Dimension' title='5.4.2.2&emsp;Concepts&emsp;[qty.dim.concepts]'><span id='conceptref:Dimension___________'><span class='texttt'>Dimension</span></span></a> Lhs, <a href='qty.dim.concepts.html#concept:Dimension' title='5.4.2.2&emsp;Concepts&emsp;[qty.dim.concepts]'><span id='conceptref:Dimension____________'><span class='texttt'>Dimension</span></span></a> Rhs<span class='anglebracket'>&gt;</span>
<span class='keyword'>friend</span> <span class='keyword'>consteval</span> <a href='qty.dim.concepts.html#concept:Dimension' title='5.4.2.2&emsp;Concepts&emsp;[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>;
</code></div></div></div></div><div class='para' id='2'><div class='marginalizedparent'><a class='marginalized' href='#2'>2</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L1464'>#</a></div><div class='texpara'><div id='2.sentence-1' class='sentence'><i >Returns</i>: <span class='texttt'><span class='texttt'><i >expr-divide</i></span><span class='anglebracket'>&lt;</span>derived_<span class='shy'></span>dimension, <span class='keyword'>struct</span> dimension_<span class='shy'></span>one<span class='anglebracket'>&gt;</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='#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'>&lt;</span><a href='qty.dim.concepts.html#concept:Dimension' title='5.4.2.2&emsp;Concepts&emsp;[qty.dim.concepts]'><span id='conceptref:Dimension______________'><span class='texttt'>Dimension</span></span></a> Lhs, <a href='qty.dim.concepts.html#concept:Dimension' title='5.4.2.2&emsp;Concepts&emsp;[qty.dim.concepts]'><span id='conceptref:Dimension_______________'><span class='texttt'>Dimension</span></span></a> Rhs<span class='anglebracket'>&gt;</span>
</code></div></div></div></div><div class='para' id='2'><div class='marginalizedparent'><a class='marginalized' href='#2'>2</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L1464'>#</a></div><div class='texpara'><div id='2.sentence-1' class='sentence'><i >Returns</i>: <span class='texttt'><span class='texttt'><i >expr-divide</i></span><span class='anglebracket'>&lt;</span>derived_<span class='shy'></span>dimension, <span class='keyword'>struct</span> dimension_<span class='shy'></span>one<span class='anglebracket'>&gt;</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='#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'>&lt;</span><a href='qty.dim.concepts.html#concept:Dimension' title='5.4.2.2&emsp;Concepts&emsp;[qty.dim.concepts]'><span id='conceptref:Dimension______________'><span class='texttt'>Dimension</span></span></a> Lhs, <a href='qty.dim.concepts.html#concept:Dimension' title='5.4.2.2&emsp;Concepts&emsp;[qty.dim.concepts]'><span id='conceptref:Dimension_______________'><span class='texttt'>Dimension</span></span></a> Rhs<span class='anglebracket'>&gt;</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>;
</code></div></div></div></div><div class='para' id='3'><div class='marginalizedparent'><a class='marginalized' href='#3'>3</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L1476'>#</a></div><div class='texpara'><div id='3.sentence-1' class='sentence'><i >Returns</i>: <span class='texttt'>std<span class='operator'>&#x200b;::&#x200b;</span>is_<span class='shy'></span>same_<span class='shy'></span>v<span class='anglebracket'>&lt;</span>Lhs, Rhs<span class='anglebracket'>&gt;</span></span><a class='hidden_link' href='#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='qty.dim.concepts.html#concept:Dimension' title='5.4.2.2&emsp;Concepts&emsp;[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='qty.dim.concepts.html#concept:Dimension' title='5.4.2.2&emsp;Concepts&emsp;[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='4'><div class='marginalizedparent'><a class='marginalized' href='#4'>4</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L1487'>#</a></div><div class='texpara'><div id='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='#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'>&lt;</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='qty.dim.concepts.html#concept:Dimension' title='5.4.2.2&emsp;Concepts&emsp;[qty.dim.concepts]'><span id='conceptref:Dimension__________________'><span class='texttt'>Dimension</span></span></a> D<span class='anglebracket'>&gt;</span>
</code></div></div></div></div><div class='para' id='3'><div class='marginalizedparent'><a class='marginalized' href='#3'>3</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L1476'>#</a></div><div class='texpara'><div id='3.sentence-1' class='sentence'><i >Returns</i>: <span class='texttt'>std<span class='operator'>&#x200b;::&#x200b;</span>is_<span class='shy'></span>same_<span class='shy'></span>v<span class='anglebracket'>&lt;</span>Lhs, Rhs<span class='anglebracket'>&gt;</span></span><a class='hidden_link' href='#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='qty.dim.concepts.html#concept:Dimension' title='5.4.2.2&emsp;Concepts&emsp;[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='qty.dim.concepts.html#concept:Dimension' title='5.4.2.2&emsp;Concepts&emsp;[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='4'><div class='marginalizedparent'><a class='marginalized' href='#4'>4</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L1487'>#</a></div><div class='texpara'><div id='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='#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'>&lt;</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='qty.dim.concepts.html#concept:Dimension' title='5.4.2.2&emsp;Concepts&emsp;[qty.dim.concepts]'><span id='conceptref:Dimension__________________'><span class='texttt'>Dimension</span></span></a> D<span class='anglebracket'>&gt;</span>
<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='qty.dim.concepts.html#concept:Dimension' title='5.4.2.2&emsp;Concepts&emsp;[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>;
</code></div></div></div></div><div class='para' id='5'><div class='marginalizedparent'><a class='marginalized' href='#5'>5</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L1500'>#</a></div><div class='texpara'><div id='5.sentence-1' class='sentence'><i >Returns</i>: <span class='texttt'><span class='texttt'><i >expr-pow</i></span><span class='anglebracket'>&lt;</span>Num, Den, derived_<span class='shy'></span>dimension, <span class='keyword'>struct</span> dimension_<span class='shy'></span>one<span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span>d<span class='parenthesis'>)</span></span><a class='hidden_link' href='#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='qty.dim.concepts.html#concept:Dimension' title='5.4.2.2&emsp;Concepts&emsp;[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='qty.dim.concepts.html#concept:Dimension' title='5.4.2.2&emsp;Concepts&emsp;[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='6'><div class='marginalizedparent'><a class='marginalized' href='#6'>6</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L1511'>#</a></div><div class='texpara'><div id='6.sentence-1' class='sentence'><i >Returns</i>: <span class='texttt'>pow<span class='anglebracket'>&lt;</span><span class='literal'>1</span>, <span class='literal'>2</span><span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span>d<span class='parenthesis'>)</span></span><a class='hidden_link' href='#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='qty.dim.concepts.html#concept:Dimension' title='5.4.2.2&emsp;Concepts&emsp;[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='qty.dim.concepts.html#concept:Dimension' title='5.4.2.2&emsp;Concepts&emsp;[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='7'><div class='marginalizedparent'><a class='marginalized' href='#7'>7</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L1522'>#</a></div><div class='texpara'><div id='7.sentence-1' class='sentence'><i >Returns</i>: <span class='texttt'>pow<span class='anglebracket'>&lt;</span><span class='literal'>1</span>, <span class='literal'>3</span><span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span>d<span class='parenthesis'>)</span></span><a class='hidden_link' href='#7.sentence-1'>.</a></div></div></div></div></div></body></html>
</code></div></div></div></div><div class='para' id='5'><div class='marginalizedparent'><a class='marginalized' href='#5'>5</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L1500'>#</a></div><div class='texpara'><div id='5.sentence-1' class='sentence'><i >Returns</i>: <span class='texttt'><span class='texttt'><i >expr-pow</i></span><span class='anglebracket'>&lt;</span>Num, Den, derived_<span class='shy'></span>dimension, <span class='keyword'>struct</span> dimension_<span class='shy'></span>one<span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span>d<span class='parenthesis'>)</span></span><a class='hidden_link' href='#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='qty.dim.concepts.html#concept:Dimension' title='5.4.2.2&emsp;Concepts&emsp;[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='qty.dim.concepts.html#concept:Dimension' title='5.4.2.2&emsp;Concepts&emsp;[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='6'><div class='marginalizedparent'><a class='marginalized' href='#6'>6</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L1511'>#</a></div><div class='texpara'><div id='6.sentence-1' class='sentence'><i >Returns</i>: <span class='texttt'>pow<span class='anglebracket'>&lt;</span><span class='literal'>1</span>, <span class='literal'>2</span><span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span>d<span class='parenthesis'>)</span></span><a class='hidden_link' href='#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='qty.dim.concepts.html#concept:Dimension' title='5.4.2.2&emsp;Concepts&emsp;[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='qty.dim.concepts.html#concept:Dimension' title='5.4.2.2&emsp;Concepts&emsp;[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='7'><div class='marginalizedparent'><a class='marginalized' href='#7'>7</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L1522'>#</a></div><div class='texpara'><div id='7.sentence-1' class='sentence'><i >Returns</i>: <span class='texttt'>pow<span class='anglebracket'>&lt;</span><span class='literal'>1</span>, <span class='literal'>3</span><span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span>d<span class='parenthesis'>)</span></span><a class='hidden_link' href='#7.sentence-1'>.</a></div></div></div></div></div></body></html>

View File

@ -1,7 +1,7 @@
<!DOCTYPE html><html lang='en'><head><title>[qty.dim.sym.fmt]</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.sym.fmt'>[qty.ref]</a></h2><h3 ><a class='secnum' style='min-width:80pt'>5.4.2</a> Dimension <a class='abbr_ref' href='qty.dim.html#sym.fmt'>[qty.dim]</a></h3><h4 ><a class='secnum' style='min-width:95pt'>5.4.2.5</a> Symbol formatting <a class='abbr_ref'>[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'>&lt;</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'>&lt;</span>CharT<span class='anglebracket'>&gt;</span> Out, <a href='qty.dim.concepts.html#concept:Dimension' title='5.4.2.2&emsp;Concepts&emsp;[qty.dim.concepts]'><span id='conceptref:Dimension'><span class='texttt'>Dimension</span></span></a> D<span class='anglebracket'>&gt;</span>
<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'>&amp;</span> fmt <span class='operator'>=</span> <span class='curlybracket'>{</span><span class='curlybracket'>}</span><span class='parenthesis'>)</span>;
</code></div></div></div></div><div class='para' id='1'><div class='marginalizedparent'><a class='marginalized' href='#1'>1</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L1536'>#</a></div><div class='texpara'><div id='1.sentence-1' class='sentence'><i >Effects</i>: TBD<a class='hidden_link' href='#1.sentence-1'>.</a></div></div></div></div><div class='para' id='2'><div class='marginalizedparent'><a class='marginalized' href='#2'>2</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L1540'>#</a></div><div class='texpara'><div id='2.sentence-1' class='sentence'><i >Returns</i>: TBD<a class='hidden_link' href='#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'>&lt;</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='qty.dim.concepts.html#concept:Dimension' title='5.4.2.2&emsp;Concepts&emsp;[qty.dim.concepts]'><span id='conceptref:Dimension_'><span class='texttt'>Dimension</span></span></a> D<span class='anglebracket'>&gt;</span>
</code></div></div></div></div><div class='para' id='1'><div class='marginalizedparent'><a class='marginalized' href='#1'>1</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L1536'>#</a></div><div class='texpara'><div id='1.sentence-1' class='sentence'><i >Effects</i>: TBD<a class='hidden_link' href='#1.sentence-1'>.</a></div></div></div></div><div class='para' id='2'><div class='marginalizedparent'><a class='marginalized' href='#2'>2</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L1540'>#</a></div><div class='texpara'><div id='2.sentence-1' class='sentence'><i >Returns</i>: TBD<a class='hidden_link' href='#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'>&lt;</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='qty.dim.concepts.html#concept:Dimension' title='5.4.2.2&emsp;Concepts&emsp;[qty.dim.concepts]'><span id='conceptref:Dimension_'><span class='texttt'>Dimension</span></span></a> D<span class='anglebracket'>&gt;</span>
<span class='keyword'>consteval</span> std<span class='operator'>::</span>string_view dimension_symbol<span class='parenthesis'>(</span>D<span class='parenthesis'>)</span>;
</code></div></div></div></div><div class='para' id='3'><div class='marginalizedparent'><a class='marginalized' href='#3'>3</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L1552'>#</a></div><div class='texpara'><div id='3.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
</code></div></div></div></div><div class='para' id='3'><div class='marginalizedparent'><a class='marginalized' href='#3'>3</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L1552'>#</a></div><div class='texpara'><div id='3.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
<span class='codeblock'>TBD<span class='operator'>.</span>
</span></div></div></div></div></div></body></html>

View File

@ -6,7 +6,7 @@
<span class='curlybracket'>}</span>;
<span class='curlybracket'>}</span>
</span></div><div class='para' id='1'><div class='marginalizedparent'><a class='marginalized' href='#1'>1</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L1375'>#</a></div><div class='texpara'><div id='1.sentence-1' class='sentence'><span class='texttt'>base_<span class='shy'></span>dimension</span> is used
</span></div><div class='para' id='1'><div class='marginalizedparent'><a class='marginalized' href='#1'>1</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L1375'>#</a></div><div class='texpara'><div id='1.sentence-1' class='sentence'><span class='texttt'>base_<span class='shy'></span>dimension</span> is used
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='#1.sentence-1'>.</a></div> <div id='1.sentence-2' class='sentence'><span class='texttt'>Symbol</span> is its symbolic representation<a class='hidden_link' href='#1.sentence-2'>.</a></div> <div id='example-1' class='example'><div class='texpara'>[<i>Example&nbsp;<a href='#example-1'>1</a></i>:&ensp;<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'>&lt;</span><span class='literal'>"L"</span><span class='anglebracket'>&gt;</span> <span class='curlybracket'>{</span><span class='curlybracket'>}</span> dim_length;
</span>&nbsp;<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>
@ -18,7 +18,7 @@ to define the dimension of a base quantity (<a href="https://www.electropedia.or
<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'>&lt;</span>Expr<span class='operator'>.</span><span class='operator'>.</span><span class='operator'>.</span><span class='anglebracket'>&gt;</span> <span class='curlybracket'>{</span><span class='curlybracket'>}</span>;
<span class='curlybracket'>}</span>
</span></span></div></div><div class='para' id='2'><div class='marginalizedparent'><a class='marginalized' href='#2'>2</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L1399'>#</a></div><div class='texpara'><div id='2.sentence-1' class='sentence'><span class='texttt'>derived_<span class='shy'></span>dimension</span> is used by the library
</span></span></div></div><div class='para' id='2'><div class='marginalizedparent'><a class='marginalized' href='#2'>2</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L1399'>#</a></div><div class='texpara'><div id='2.sentence-1' class='sentence'><span class='texttt'>derived_<span class='shy'></span>dimension</span> is used by the library
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='#2.sentence-1'>.</a></div> <div id='example-2' class='example'><div class='texpara'>[<i>Example&nbsp;<a href='#example-2'>2</a></i>:&ensp;<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&lt;isq&#x200b;::&#x200b;dim_<span class='shy'></span>length, per&lt;power&lt;isq&#x200b;::&#x200b;dim_<span class='shy'></span>time, 2&gt;&gt;&gt;</span></span>
@ -30,4 +30,4 @@ is ill-formed, no diagnostic required<a class='hidden_link' href='#2.sentence-2'
<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'>&lt;</span><span class='anglebracket'>&gt;</span> <span class='curlybracket'>{</span><span class='curlybracket'>}</span>;
<span class='curlybracket'>}</span>
</span></span></div></div><div class='para' id='3'><div class='marginalizedparent'><a class='marginalized' href='#3'>3</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L1422'>#</a></div><div class='texpara'><div id='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='#3.sentence-1'>.</a></div></div></div></div></body></html>
</span></span></div></div><div class='para' id='3'><div class='marginalizedparent'><a class='marginalized' href='#3'>3</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L1422'>#</a></div><div class='texpara'><div id='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='#3.sentence-1'>.</a></div></div></div></div></body></html>

View File

@ -12,8 +12,8 @@
<span class='keyword'>template</span><span class='anglebracket'>&lt;</span><span class='keyword'>typename</span> Rep<span class='anglebracket'>&gt;</span>
<span class='keyword'>constexpr</span> <span class='keyword'>bool</span> <span id='lib:treat_as_floating_point'><a class='hidden_link' href='#lib:treat_as_floating_point' title='5.5.2.1&emsp;Floating-point&emsp;[qty.fp.traits]'>treat_as_floating_point</a></span> <span class='operator'>=</span>
std<span class='operator'>::</span>chrono<span class='operator'>::</span>treat_as_floating_point_v<span class='anglebracket'>&lt;</span><span class='texttt'><i >actual-value-type-t</i></span><span class='anglebracket'>&lt;</span>Rep<span class='anglebracket'>&gt;</span><span class='anglebracket'>&gt;</span>;
</code></div></div><div class='para' id='1'><div class='marginalizedparent'><a class='marginalized' href='#1'>1</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L3708'>#</a></div><div class='texpara'><div id='1.sentence-1' class='sentence'><span class='texttt'>quantity</span> and <span class='texttt'>quantity_<span class='shy'></span>point</span> use <span class='texttt'>treat_<span class='shy'></span>as_<span class='shy'></span>floating_<span class='shy'></span>point</span>
to help determine whether implicit conversions are allowed among them<a class='hidden_link' href='#1.sentence-1'>.</a></div></div></div></div><div class='para' id='2'><div class='marginalizedparent'><a class='marginalized' href='#2'>2</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L3712'>#</a></div><div class='texpara'><div id='2.sentence-1' class='sentence'><i >Remarks</i>: Pursuant to <a href="https://wg21.link/namespace.std">N4971, [namespace.std]</a> (<a href='spec.ext.html' title='4.1&emsp;External'>[spec.<span class='shy'></span>ext]</a>),
</code></div></div><div class='para' id='1'><div class='marginalizedparent'><a class='marginalized' href='#1'>1</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L3708'>#</a></div><div class='texpara'><div id='1.sentence-1' class='sentence'><span class='texttt'>quantity</span> and <span class='texttt'>quantity_<span class='shy'></span>point</span> use <span class='texttt'>treat_<span class='shy'></span>as_<span class='shy'></span>floating_<span class='shy'></span>point</span>
to help determine whether implicit conversions are allowed among them<a class='hidden_link' href='#1.sentence-1'>.</a></div></div></div></div><div class='para' id='2'><div class='marginalizedparent'><a class='marginalized' href='#2'>2</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L3712'>#</a></div><div class='texpara'><div id='2.sentence-1' class='sentence'><i >Remarks</i>: Pursuant to <a href="https://wg21.link/namespace.std">N4971, [namespace.std]</a> (<a href='spec.ext.html' title='4.1&emsp;External'>[spec.<span class='shy'></span>ext]</a>),
users may specialize <span class='texttt'>treat_<span class='shy'></span>as_<span class='shy'></span>floating_<span class='shy'></span>point</span>
for cv-unqualified program-defined types<a class='hidden_link' href='#2.sentence-1'>.</a></div> <div id='2.sentence-2' class='sentence'>Such specializations shall be usable in constant expressions (<a href="https://wg21.link/expr.const">N4971, [expr.const]</a>)
and have type <span class='texttt'><span class='keyword'>const</span> <span class='keyword'>bool</span></span><a class='hidden_link' href='#2.sentence-2'>.</a></div></div></div></div></div></body></html>

View File

@ -1,3 +1,3 @@
<!DOCTYPE html><html lang='en'><head><title>[qty.general]</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.6</a> Quantity <a class='abbr_ref' href='qty.html#general'>[qty]</a></h2><h3 ><a class='secnum' style='min-width:80pt'>5.6.1</a> General <a class='abbr_ref'>[qty.general]</a></h3><div class='para' id='1'><div class='marginalizedparent'><a class='marginalized' href='#1'>1</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L4063'>#</a></div><div class='texpara'><div id='1.sentence-1' class='sentence'>Subclause <a href='qty.html' title='5.6&emsp;Quantity'>[qty]</a> describes the class template <span class='texttt'>quantity</span>
<!DOCTYPE html><html lang='en'><head><title>[qty.general]</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.6</a> Quantity <a class='abbr_ref' href='qty.html#general'>[qty]</a></h2><h3 ><a class='secnum' style='min-width:80pt'>5.6.1</a> General <a class='abbr_ref'>[qty.general]</a></h3><div class='para' id='1'><div class='marginalizedparent'><a class='marginalized' href='#1'>1</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L4063'>#</a></div><div class='texpara'><div id='1.sentence-1' class='sentence'>Subclause <a href='qty.html' title='5.6&emsp;Quantity'>[qty]</a> describes the class template <span class='texttt'>quantity</span>
that represents the value of a quantity (<a href="https://www.electropedia.org/iev/iev.nsf/display?openform&ievref=112-01-28">IEC 60050, 112-01-28</a>)
that is an element of a vector space (<a href="https://www.electropedia.org/iev/iev.nsf/display?openform&ievref=102-03-01,102-03-04">IEC 60050, 102-03-01,102-03-04</a>)<a class='hidden_link' href='#1.sentence-1'>.</a></div></div></div></div></body></html>

File diff suppressed because one or more lines are too long

View File

@ -1,6 +1,6 @@
<!DOCTYPE html><html lang='en'><head><title>[qty.get.kind]</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.get.kind'>[qty.ref]</a></h2><h3 ><a class='secnum' style='min-width:80pt'>5.4.3</a> Quantity specification <a class='abbr_ref' href='qty.spec.html#qty.get.kind'>[qty.spec]</a></h3><h4 ><a class='secnum' style='min-width:95pt'>5.4.3.6</a> Hierarchy algorithms <a class='abbr_ref' href='qty.spec.hier.algos.html#qty.get.kind'>[qty.spec.hier.algos]</a></h4><h4 ><a class='secnum' style='min-width:110pt'>5.4.3.6.2</a> Get kind <a class='abbr_ref'>[qty.get.kind]</a></h4><div class='texpara'><div id='lib:get-kind-tree-root,QuantitySpec'><div id='lib:QuantitySpec,get-kind-tree-root'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:QuantitySpec,get-kind-tree-root'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><a href='qty.spec.concepts.html#concept:QuantitySpec' title='5.4.3.2&emsp;Concepts&emsp;[qty.spec.concepts]'><span id='conceptref:QuantitySpec'><span class='texttt'>QuantitySpec</span></span></a> Q<span class='anglebracket'>&gt;</span>
<span class='keyword'>consteval</span> <a href='qty.spec.concepts.html#concept:QuantitySpec' title='5.4.3.2&emsp;Concepts&emsp;[qty.spec.concepts]'><span id='conceptref:QuantitySpec_'><span class='texttt'>QuantitySpec</span></span></a> <span class='keyword'>auto</span> <span class='texttt'><i >get-kind-tree-root</i></span><span class='parenthesis'>(</span>Q q<span class='parenthesis'>)</span>; <span class='comment'>// <i >exposition only</i></span>
</code></div></div></div></div><div class='para' id='1'><div class='marginalizedparent'><a class='marginalized' href='#1'>1</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L2095'>#</a></div><div class='texpara'><div id='1.sentence-1' class='sentence'><i >Returns</i>: <ul class='itemize'><li id='1.1'><div class='marginalizedparent' style='left:-39mm'><a class='marginalized' href='#1.1'>(1.1)</a></div><div class='texpara'><div id='1.1.sentence-1' class='sentence'>If <span class='texttt'><a class='index' id='conceptref:QuantityKindSpec'></a><span class='texttt'><i >QuantityKindSpec</i></span><span class='anglebracket'>&lt;</span>Q<span class='anglebracket'>&gt;</span></span> is <span class='texttt'><span class='literal'>true</span></span>,
</code></div></div></div></div><div class='para' id='1'><div class='marginalizedparent'><a class='marginalized' href='#1'>1</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L2095'>#</a></div><div class='texpara'><div id='1.sentence-1' class='sentence'><i >Returns</i>: <ul class='itemize'><li id='1.1'><div class='marginalizedparent' style='left:-39mm'><a class='marginalized' href='#1.1'>(1.1)</a></div><div class='texpara'><div id='1.1.sentence-1' class='sentence'>If <span class='texttt'><a class='index' id='conceptref:QuantityKindSpec'></a><span class='texttt'><i >QuantityKindSpec</i></span><span class='anglebracket'>&lt;</span>Q<span class='anglebracket'>&gt;</span></span> is <span class='texttt'><span class='literal'>true</span></span>,
returns <span class='texttt'><span class='texttt'><i >remove-kind</i></span><span class='parenthesis'>(</span>q<span class='parenthesis'>)</span></span><a class='hidden_link' href='#1.1.sentence-1'>.</a></div></div></li><li id='1.2'><div class='marginalizedparent' style='left:-39mm'><a class='marginalized' href='#1.2'>(1.2)</a></div><div class='texpara'><div id='1.2.sentence-1' class='sentence'>Otherwise, if
<span class='texttt'><span class='texttt'><i >is-derived-from-specialization-of</i></span><span class='anglebracket'>&lt;</span>Q, quantity_<span class='shy'></span>spec<span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span><span class='parenthesis'>)</span></span>
is <span class='texttt'><span class='literal'>true</span></span>, and
@ -15,4 +15,4 @@ where <span class='texttt'><i >to-kind</i></span> is defined as follows:
<span class='keyword'>using</span> <i >to-kind</i> <span class='operator'>=</span> <span class='keyword'>decltype</span><span class='parenthesis'>(</span><i >get-kind-tree-root</i><span class='parenthesis'>(</span>Q<span class='curlybracket'>{</span><span class='curlybracket'>}</span><span class='parenthesis'>)</span><span class='parenthesis'>)</span>; <span class='comment'>// <i >exposition only</i></span>
</span></div></div></li><li id='1.5'><div class='marginalizedparent' style='left:-39mm'><a class='marginalized' href='#1.5'>(1.5)</a></div><div class='texpara'><div id='1.5.sentence-1' class='sentence'>Otherwise, returns <span class='texttt'>q</span><a class='hidden_link' href='#1.5.sentence-1'>.</a></div></div></li></ul></div></div></div></div><div class='texpara'><div id='lib:QuantitySpec,get_kind'><div id='lib:get_kind,QuantitySpec'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:get_kind,QuantitySpec'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><a href='qty.spec.concepts.html#concept:QuantitySpec' title='5.4.3.2&emsp;Concepts&emsp;[qty.spec.concepts]'><span id='conceptref:QuantitySpec___'><span class='texttt'>QuantitySpec</span></span></a> Q<span class='anglebracket'>&gt;</span>
<span class='keyword'>consteval</span> <a class='index' id='conceptref:QuantityKindSpec_'></a><span class='texttt'><i >QuantityKindSpec</i></span> <span class='keyword'>auto</span> get_kind<span class='parenthesis'>(</span>Q<span class='parenthesis'>)</span>;
</code></div></div></div></div><div class='para' id='2'><div class='marginalizedparent'><a class='marginalized' href='#2'>2</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L2133'>#</a></div><div class='texpara'><div id='2.sentence-1' class='sentence'><i >Returns</i>: <span class='texttt'>kind_<span class='shy'></span>of<span class='anglebracket'>&lt;</span><span class='texttt'><i >get-kind-tree-root</i></span><span class='parenthesis'>(</span>Q<span class='curlybracket'>{</span><span class='curlybracket'>}</span><span class='parenthesis'>)</span><span class='anglebracket'>&gt;</span></span><a class='hidden_link' href='#2.sentence-1'>.</a></div></div></div></div></div></body></html>
</code></div></div></div></div><div class='para' id='2'><div class='marginalizedparent'><a class='marginalized' href='#2'>2</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L2133'>#</a></div><div class='texpara'><div id='2.sentence-1' class='sentence'><i >Returns</i>: <span class='texttt'>kind_<span class='shy'></span>of<span class='anglebracket'>&lt;</span><span class='texttt'><i >get-kind-tree-root</i></span><span class='parenthesis'>(</span>Q<span class='curlybracket'>{</span><span class='curlybracket'>}</span><span class='parenthesis'>)</span><span class='anglebracket'>&gt;</span></span><a class='hidden_link' href='#2.sentence-1'>.</a></div></div></div></div></div></body></html>

View File

@ -1,6 +1,6 @@
<!DOCTYPE html><html lang='en'><head><title>[qty]</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.6</a> Quantity <a class='abbr_ref'>[qty]</a></h2><div id='general' class='section'><h3 ><a class='secnum' href='#general' style='min-width:80pt'>5.6.1</a> General <a class='abbr_ref' href='qty.general.html'>[qty.general]</a></h3><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-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L4063'>#</a></div><div class='texpara'><div id='general-1.sentence-1' class='sentence'>Subclause [qty] describes the class template <span class='texttt'>quantity</span>
<!DOCTYPE html><html lang='en'><head><title>[qty]</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.6</a> Quantity <a class='abbr_ref'>[qty]</a></h2><div id='general' class='section'><h3 ><a class='secnum' href='#general' style='min-width:80pt'>5.6.1</a> General <a class='abbr_ref' href='qty.general.html'>[qty.general]</a></h3><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-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L4063'>#</a></div><div class='texpara'><div id='general-1.sentence-1' class='sentence'>Subclause [qty] describes the class template <span class='texttt'>quantity</span>
that represents the value of a quantity (<a href="https://www.electropedia.org/iev/iev.nsf/display?openform&ievref=112-01-28">IEC 60050, 112-01-28</a>)
that is an element of a vector space (<a href="https://www.electropedia.org/iev/iev.nsf/display?openform&ievref=102-03-01,102-03-04">IEC 60050, 102-03-01,102-03-04</a>)<a class='hidden_link' href='#general-1.sentence-1'>.</a></div></div></div></div><div id='like' class='section'><h3 ><a class='secnum' href='#like' style='min-width:80pt'>5.6.2</a> Interoperability <a class='abbr_ref' href='qty.like.html'>[qty.like]</a></h3><div class='para' id='like-1'><div class='marginalizedparent'><a class='marginalized' href='#like-1'>1</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L4070'>#</a></div><div class='texpara'><div id='like-1.sentence-1' class='sentence'>The interfaces specified in this subclause and subclause <a href='qty.pt.like.html' title='5.7.3&emsp;Interoperability'>[qty.<span class='shy'></span>pt.<span class='shy'></span>like]</a>
that is an element of a vector space (<a href="https://www.electropedia.org/iev/iev.nsf/display?openform&ievref=102-03-01,102-03-04">IEC 60050, 102-03-01,102-03-04</a>)<a class='hidden_link' href='#general-1.sentence-1'>.</a></div></div></div></div><div id='like' class='section'><h3 ><a class='secnum' href='#like' style='min-width:80pt'>5.6.2</a> Interoperability <a class='abbr_ref' href='qty.like.html'>[qty.like]</a></h3><div class='para' id='like-1'><div class='marginalizedparent'><a class='marginalized' href='#like-1'>1</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L4070'>#</a></div><div class='texpara'><div id='like-1.sentence-1' class='sentence'>The interfaces specified in this subclause and subclause <a href='qty.pt.like.html' title='5.7.3&emsp;Interoperability'>[qty.<span class='shy'></span>pt.<span class='shy'></span>like]</a>
are used by <span class='texttt'>quantity</span> and <span class='texttt'>quantity_<span class='shy'></span>point</span>
to specify conversions with other types representing quantities<a class='hidden_link' href='#like-1.sentence-1'>.</a></div> <div id='like-note-1' class='note'><div class='texpara'>[<i>Note&nbsp;<a href='#like-note-1'>1</a></i>:&ensp;<div id='like-1.sentence-2' class='sentence'><a href='qty.chrono.html' title='5.9&emsp;std&#x200b;::&#x200b;chrono interoperability'>[qty.<span class='shy'></span>chrono]</a> implements them for <span class='texttt'>std<span class='operator'>&#x200b;::&#x200b;</span>chrono<span class='operator'>&#x200b;::&#x200b;</span>duration</span> and <span class='texttt'>std<span class='operator'>&#x200b;::&#x200b;</span>chrono<span class='operator'>&#x200b;::&#x200b;</span>time_<span class='shy'></span>point</span><a class='hidden_link' href='#like-1.sentence-2'>.</a></div>&nbsp;<i>end note</i>]</div></div></div></div><div class='texpara'><div class='itemdecl' id='like-itemdecl:1'><div class='marginalizedparent'><a class='itemDeclLink' href='#like-itemdecl:1'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><span class='keyword'>typename</span> T, <span class='keyword'>template</span><span class='anglebracket'>&lt;</span><span class='keyword'>typename</span><span class='anglebracket'>&gt;</span> <span class='keyword'>typename</span> Traits<span class='anglebracket'>&gt;</span>
<span class='keyword'>concept</span> <span class='texttt'><i >qty-like-impl</i></span><a class='index' id='concept:qty-like-impl'></a> <span class='operator'>=</span> <span class='keyword'>requires</span><span class='parenthesis'>(</span><span class='keyword'>const</span> T<span class='operator'>&amp;</span> qty, <span class='keyword'>const</span> Traits<span class='anglebracket'>&lt;</span>T<span class='anglebracket'>&gt;</span><span class='operator'>::</span>rep<span class='operator'>&amp;</span> num<span class='parenthesis'>)</span> <span class='curlybracket'>{</span> <span class='comment'>// <i >exposition only</i></span>
@ -16,10 +16,10 @@ to specify conversions with other types representing quantities<a class='hidden_
<span class='keyword'>concept</span> <a class='hidden_link' href='#concept:QuantityLike' title='5.6.2&emsp;Interoperability&emsp;[qty.like]'><span id='concept:QuantityLike'><span id='lib:QuantityLike'><span class='texttt'>QuantityLike</span></span></span></a> <span class='operator'>=</span> <span class='operator'>!</span><a href='#concept:Quantity' title='5.6.3&emsp;Class template quantity&emsp;[qty.syn]'><span id='conceptref:Quantity'><span class='texttt'>Quantity</span></span></a><span class='anglebracket'>&lt;</span>T<span class='anglebracket'>&gt;</span> <span class='operator'>&amp;</span><span class='operator'>&amp;</span> <a class='index' id='conceptref:qty-like-impl'></a><span class='texttt'><i >qty-like-impl</i></span><span class='anglebracket'>&lt;</span>T, quantity_like_traits<span class='anglebracket'>&gt;</span> <span class='operator'>&amp;</span><span class='operator'>&amp;</span> <span class='keyword'>requires</span> <span class='curlybracket'>{</span>
<span class='keyword'>typename</span> quantity<span class='anglebracket'>&lt;</span>quantity_like_traits<span class='anglebracket'>&lt;</span>T<span class='anglebracket'>&gt;</span><span class='operator'>::</span>reference, <span class='keyword'>typename</span> quantity_like_traits<span class='anglebracket'>&lt;</span>T<span class='anglebracket'>&gt;</span><span class='operator'>::</span>rep<span class='anglebracket'>&gt;</span>;
<span class='curlybracket'>}</span>;
</code></div></div><div class='para' id='like-2'><div class='marginalizedparent'><a class='marginalized' href='#like-2'>2</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L4095'>#</a></div><div class='texpara'><div id='like-2.sentence-1' class='sentence'>In the following descriptions, let
<ul class='itemize'><li id='like-2.1'><div class='marginalizedparent' style='left:-27mm'><a class='marginalized' href='#like-2.1'>(2.1)</a></div><span class='texttt'>Traits</span> be <span class='texttt'>quantity_<span class='shy'></span>like_<span class='shy'></span>traits</span> or <span class='texttt'>quantity_<span class='shy'></span>point_<span class='shy'></span>like_<span class='shy'></span>traits</span>,</li><li id='like-2.2'><div class='marginalizedparent' style='left:-27mm'><a class='marginalized' href='#like-2.2'>(2.2)</a></div><span class='texttt'>Q</span> be a type for which <span class='texttt'>Traits<span class='anglebracket'>&lt;</span>Q<span class='anglebracket'>&gt;</span></span> is specialized,</li><li id='like-2.3'><div class='marginalizedparent' style='left:-27mm'><a class='marginalized' href='#like-2.3'>(2.3)</a></div><span class='texttt'>qty</span> be an lvalue of type <span class='texttt'><span class='keyword'>const</span> Q</span>, and</li><li id='like-2.4'><div class='marginalizedparent' style='left:-27mm'><a class='marginalized' href='#like-2.4'>(2.4)</a></div><span class='texttt'>num</span> be an lvalue of type <span class='texttt'><span class='keyword'>const</span> Traits<span class='anglebracket'>&lt;</span>Q<span class='anglebracket'>&gt;</span><span class='operator'>&#x200b;::&#x200b;</span>rep</span><a class='hidden_link' href='#like-2.sentence-1'>.</a></li></ul></div></div></div><div class='para' id='like-3'><div class='marginalizedparent'><a class='marginalized' href='#like-3'>3</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L4108'>#</a></div><div class='texpara'><div id='like-3.sentence-1' class='sentence'><span class='texttt'>Q</span> models <span class='texttt'><a class='index' id='conceptref:qty-like-impl_'></a><span class='texttt'><i >qty-like-impl</i></span><span class='anglebracket'>&lt;</span>Traits<span class='anglebracket'>&gt;</span></span> if and only if:
</code></div></div><div class='para' id='like-2'><div class='marginalizedparent'><a class='marginalized' href='#like-2'>2</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L4095'>#</a></div><div class='texpara'><div id='like-2.sentence-1' class='sentence'>In the following descriptions, let
<ul class='itemize'><li id='like-2.1'><div class='marginalizedparent' style='left:-27mm'><a class='marginalized' href='#like-2.1'>(2.1)</a></div><span class='texttt'>Traits</span> be <span class='texttt'>quantity_<span class='shy'></span>like_<span class='shy'></span>traits</span> or <span class='texttt'>quantity_<span class='shy'></span>point_<span class='shy'></span>like_<span class='shy'></span>traits</span>,</li><li id='like-2.2'><div class='marginalizedparent' style='left:-27mm'><a class='marginalized' href='#like-2.2'>(2.2)</a></div><span class='texttt'>Q</span> be a type for which <span class='texttt'>Traits<span class='anglebracket'>&lt;</span>Q<span class='anglebracket'>&gt;</span></span> is specialized,</li><li id='like-2.3'><div class='marginalizedparent' style='left:-27mm'><a class='marginalized' href='#like-2.3'>(2.3)</a></div><span class='texttt'>qty</span> be an lvalue of type <span class='texttt'><span class='keyword'>const</span> Q</span>, and</li><li id='like-2.4'><div class='marginalizedparent' style='left:-27mm'><a class='marginalized' href='#like-2.4'>(2.4)</a></div><span class='texttt'>num</span> be an lvalue of type <span class='texttt'><span class='keyword'>const</span> Traits<span class='anglebracket'>&lt;</span>Q<span class='anglebracket'>&gt;</span><span class='operator'>&#x200b;::&#x200b;</span>rep</span><a class='hidden_link' href='#like-2.sentence-1'>.</a></li></ul></div></div></div><div class='para' id='like-3'><div class='marginalizedparent'><a class='marginalized' href='#like-3'>3</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L4108'>#</a></div><div class='texpara'><div id='like-3.sentence-1' class='sentence'><span class='texttt'>Q</span> models <span class='texttt'><a class='index' id='conceptref:qty-like-impl_'></a><span class='texttt'><i >qty-like-impl</i></span><span class='anglebracket'>&lt;</span>Traits<span class='anglebracket'>&gt;</span></span> if and only if:
<ul class='itemize'><li id='like-3.1'><div class='marginalizedparent' style='left:-27mm'><a class='marginalized' href='#like-3.1'>(3.1)</a></div><div class='texpara'><div id='like-3.1.sentence-1' class='sentence'><span class='texttt'>Traits<span class='anglebracket'>&lt;</span>Q<span class='anglebracket'>&gt;</span><span class='operator'>&#x200b;::&#x200b;</span>to_<span class='shy'></span>numerical_<span class='shy'></span>value<span class='parenthesis'>(</span>qty<span class='parenthesis'>)</span></span> returns the numerical value (<a href="https://www.electropedia.org/iev/iev.nsf/display?openform&ievref=112-01-29">IEC 60050, 112-01-29</a>) of <span class='texttt'>qty</span><a class='hidden_link' href='#like-3.1.sentence-1'>.</a></div></div></li><li id='like-3.2'><div class='marginalizedparent' style='left:-27mm'><a class='marginalized' href='#like-3.2'>(3.2)</a></div><div class='texpara'><div id='like-3.2.sentence-1' class='sentence'><span class='texttt'>Traits<span class='anglebracket'>&lt;</span>Q<span class='anglebracket'>&gt;</span><span class='operator'>&#x200b;::&#x200b;</span>from_<span class='shy'></span>numerical_<span class='shy'></span>value<span class='parenthesis'>(</span>num<span class='parenthesis'>)</span></span> returns a <span class='texttt'>Q</span> with numerical value <span class='texttt'>num</span><a class='hidden_link' href='#like-3.2.sentence-1'>.</a></div></div></li><li id='like-3.3'><div class='marginalizedparent' style='left:-27mm'><a class='marginalized' href='#like-3.3'>(3.3)</a></div><div class='texpara'><div id='like-3.3.sentence-1' class='sentence'>If <span class='texttt'>Traits</span> is <span class='texttt'>quantity_<span class='shy'></span>point_<span class='shy'></span>like_<span class='shy'></span>traits</span>,
both numerical values are offset from <span class='texttt'>Traits<span class='anglebracket'>&lt;</span>Q<span class='anglebracket'>&gt;</span><span class='operator'>&#x200b;::&#x200b;</span>point_<span class='shy'></span>origin</span><a class='hidden_link' href='#like-3.3.sentence-1'>.</a></div></div></li></ul></div></div></div><div class='para' id='like-4'><div class='marginalizedparent'><a class='marginalized' href='#like-4'>4</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L4120'>#</a></div><div class='texpara'><div id='like-4.sentence-1' class='sentence'>If the following expression is <span class='texttt'><span class='literal'>true</span></span>, the specified conversion will be explicit<a class='hidden_link' href='#like-4.sentence-1'>.</a></div> <ul class='itemize'><li id='like-4.1'><div class='marginalizedparent' style='left:-27mm'><a class='marginalized' href='#like-4.1'>(4.1)</a></div><div class='texpara'><div id='like-4.1.sentence-1' class='sentence'><span class='texttt'>Traits<span class='anglebracket'>&lt;</span>Q<span class='anglebracket'>&gt;</span><span class='operator'>&#x200b;::&#x200b;</span>explicit_<span class='shy'></span>import</span> for the conversion from <span class='texttt'>Q</span> to this library's type<a class='hidden_link' href='#like-4.1.sentence-1'>.</a></div></div></li><li id='like-4.2'><div class='marginalizedparent' style='left:-27mm'><a class='marginalized' href='#like-4.2'>(4.2)</a></div><div class='texpara'><div id='like-4.2.sentence-1' class='sentence'><span class='texttt'>Traits<span class='anglebracket'>&lt;</span>Q<span class='anglebracket'>&gt;</span><span class='operator'>&#x200b;::&#x200b;</span>explicit_<span class='shy'></span>export</span> for the conversion from this library's type to <span class='texttt'>Q</span><a class='hidden_link' href='#like-4.2.sentence-1'>.</a></div></div></li></ul></div></div></div><div id='syn' class='section'><h3 ><a class='secnum' href='#syn' style='min-width:80pt'>5.6.3</a> Class template <span class='texttt'>quantity</span> <a class='abbr_ref' href='qty.syn.html'>[qty.syn]</a></h3><div class='texpara'><span class='codeblock'><span class='keyword'>namespace</span> mp_units <span class='curlybracket'>{</span>
both numerical values are offset from <span class='texttt'>Traits<span class='anglebracket'>&lt;</span>Q<span class='anglebracket'>&gt;</span><span class='operator'>&#x200b;::&#x200b;</span>point_<span class='shy'></span>origin</span><a class='hidden_link' href='#like-3.3.sentence-1'>.</a></div></div></li></ul></div></div></div><div class='para' id='like-4'><div class='marginalizedparent'><a class='marginalized' href='#like-4'>4</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L4120'>#</a></div><div class='texpara'><div id='like-4.sentence-1' class='sentence'>If the following expression is <span class='texttt'><span class='literal'>true</span></span>, the specified conversion will be explicit<a class='hidden_link' href='#like-4.sentence-1'>.</a></div> <ul class='itemize'><li id='like-4.1'><div class='marginalizedparent' style='left:-27mm'><a class='marginalized' href='#like-4.1'>(4.1)</a></div><div class='texpara'><div id='like-4.1.sentence-1' class='sentence'><span class='texttt'>Traits<span class='anglebracket'>&lt;</span>Q<span class='anglebracket'>&gt;</span><span class='operator'>&#x200b;::&#x200b;</span>explicit_<span class='shy'></span>import</span> for the conversion from <span class='texttt'>Q</span> to this library's type<a class='hidden_link' href='#like-4.1.sentence-1'>.</a></div></div></li><li id='like-4.2'><div class='marginalizedparent' style='left:-27mm'><a class='marginalized' href='#like-4.2'>(4.2)</a></div><div class='texpara'><div id='like-4.2.sentence-1' class='sentence'><span class='texttt'>Traits<span class='anglebracket'>&lt;</span>Q<span class='anglebracket'>&gt;</span><span class='operator'>&#x200b;::&#x200b;</span>explicit_<span class='shy'></span>export</span> for the conversion from this library's type to <span class='texttt'>Q</span><a class='hidden_link' href='#like-4.2.sentence-1'>.</a></div></div></li></ul></div></div></div><div id='syn' class='section'><h3 ><a class='secnum' href='#syn' style='min-width:80pt'>5.6.3</a> Class template <span class='texttt'>quantity</span> <a class='abbr_ref' href='qty.syn.html'>[qty.syn]</a></h3><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'>&lt;</span><span class='keyword'>typename</span> T<span class='anglebracket'>&gt;</span>
<span class='keyword'>concept</span> <a class='hidden_link' href='#concept:Quantity' title='5.6.3&emsp;Class template quantity&emsp;[qty.syn]'><span id='concept:Quantity'><span id='lib:Quantity'><span class='tcode_in_codeblock'>Quantity</span></span></span></a> <span class='operator'>=</span> <span class='parenthesis'>(</span><i >is-derived-from-specialization-of</i><span class='anglebracket'>&lt;</span>T, quantity<span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span><span class='parenthesis'>)</span><span class='parenthesis'>)</span>; <span class='comment'>// <i >exposition only</i></span>
@ -351,7 +351,7 @@ quantity<span class='parenthesis'>(</span>Value<span class='parenthesis'>)</span
<span class='operator'>-</span><span class='anglebracket'>&gt;</span> quantity<span class='anglebracket'>&lt;</span>quantity_like_traits<span class='anglebracket'>&lt;</span>Q<span class='anglebracket'>&gt;</span><span class='operator'>::</span>reference, <span class='keyword'>typename</span> quantity_like_traits<span class='anglebracket'>&lt;</span>Q<span class='anglebracket'>&gt;</span><span class='operator'>::</span>rep<span class='anglebracket'>&gt;</span>;
<span class='curlybracket'>}</span>
</span></div><div class='para' id='syn-1'><div class='marginalizedparent'><a class='marginalized' href='#syn-1'>1</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L4466'>#</a></div><div class='texpara'><div id='syn-1.sentence-1' class='sentence'><span class='texttt'>quantity<span class='anglebracket'>&lt;</span>R, Rep<span class='anglebracket'>&gt;</span></span> is a structural type (<a href="https://wg21.link/temp.paramterm.structural.type">N4971, [temp.param]</a>)
</span></div><div class='para' id='syn-1'><div class='marginalizedparent'><a class='marginalized' href='#syn-1'>1</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L4466'>#</a></div><div class='texpara'><div id='syn-1.sentence-1' class='sentence'><span class='texttt'>quantity<span class='anglebracket'>&lt;</span>R, Rep<span class='anglebracket'>&gt;</span></span> is a structural type (<a href="https://wg21.link/temp.paramterm.structural.type">N4971, [temp.param]</a>)
if <span class='texttt'>Rep</span> is a structural type<a class='hidden_link' href='#syn-1.sentence-1'>.</a></div></div></div></div><div id='static' class='section'><h3 ><a class='secnum' href='#static' style='min-width:80pt'>5.6.4</a> Static member functions <a class='abbr_ref' href='qty.static.html'>[qty.static]</a></h3><div class='texpara'><div id='lib:quantity,max'><div id='lib:max,quantity'><div id='lib:quantity,min'><div id='lib:min,quantity'><div id='lib:quantity,one'><div id='lib:one,quantity'><div id='lib:quantity,zero'><div id='lib:zero,quantity'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:zero,quantity'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>static</span> <span class='keyword'>constexpr</span> quantity zero<span class='parenthesis'>(</span><span class='parenthesis'>)</span> <span class='keyword'>noexcept</span>
<span class='keyword'>requires</span> <i ><span class='texttt'>see below</span></i>;
<span class='keyword'>static</span> <span class='keyword'>constexpr</span> quantity one<span class='parenthesis'>(</span><span class='parenthesis'>)</span> <span class='keyword'>noexcept</span>
@ -360,7 +360,7 @@ if <span class='texttt'>Rep</span> is a structural type<a class='hidden_link' hr
<span class='keyword'>requires</span> <i ><span class='texttt'>see below</span></i>;
<span class='keyword'>static</span> <span class='keyword'>constexpr</span> quantity max<span class='parenthesis'>(</span><span class='parenthesis'>)</span> <span class='keyword'>noexcept</span>
<span class='keyword'>requires</span> <i ><span class='texttt'>see below</span></i>;
</code></div></div></div></div></div></div></div></div></div></div><div class='para' id='static-1'><div class='marginalizedparent'><a class='marginalized' href='#static-1'>1</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L4488'>#</a></div><div class='texpara'><div id='static-1.sentence-1' class='sentence'>Let <i >F</i> be one of <span class='texttt'>zero</span>, <span class='texttt'>one</span>, <span class='texttt'>min</span>, and <span class='texttt'>max</span><a class='hidden_link' href='#static-1.sentence-1'>.</a></div></div></div></div><div class='para' id='static-2'><div class='marginalizedparent'><a class='marginalized' href='#static-2'>2</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L4491'>#</a></div><div class='texpara'><div id='static-2.sentence-1' class='sentence'><i >Returns</i>: <span class='texttt'><span class='curlybracket'>{</span>representation_<span class='shy'></span>values<span class='anglebracket'>&lt;</span>rep<span class='anglebracket'>&gt;</span><span class='operator'>&#x200b;::&#x200b;</span><i >F</i><span class='parenthesis'>(</span><span class='parenthesis'>)</span>, R<span class='curlybracket'>}</span></span><a class='hidden_link' href='#static-2.sentence-1'>.</a></div></div></div></div><div class='para' id='static-3'><div class='marginalizedparent'><a class='marginalized' href='#static-3'>3</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L4495'>#</a></div><div class='texpara'><div id='static-3.sentence-1' class='sentence'><i >Remarks</i>: The expression in the <span class='textsf'><i >requires-clause</i></span> is equivalent to:
</code></div></div></div></div></div></div></div></div></div></div><div class='para' id='static-1'><div class='marginalizedparent'><a class='marginalized' href='#static-1'>1</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L4488'>#</a></div><div class='texpara'><div id='static-1.sentence-1' class='sentence'>Let <i >F</i> be one of <span class='texttt'>zero</span>, <span class='texttt'>one</span>, <span class='texttt'>min</span>, and <span class='texttt'>max</span><a class='hidden_link' href='#static-1.sentence-1'>.</a></div></div></div></div><div class='para' id='static-2'><div class='marginalizedparent'><a class='marginalized' href='#static-2'>2</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L4491'>#</a></div><div class='texpara'><div id='static-2.sentence-1' class='sentence'><i >Returns</i>: <span class='texttt'><span class='curlybracket'>{</span>representation_<span class='shy'></span>values<span class='anglebracket'>&lt;</span>rep<span class='anglebracket'>&gt;</span><span class='operator'>&#x200b;::&#x200b;</span><i >F</i><span class='parenthesis'>(</span><span class='parenthesis'>)</span>, R<span class='curlybracket'>}</span></span><a class='hidden_link' href='#static-2.sentence-1'>.</a></div></div></div></div><div class='para' id='static-3'><div class='marginalizedparent'><a class='marginalized' href='#static-3'>3</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L4495'>#</a></div><div class='texpara'><div id='static-3.sentence-1' class='sentence'><i >Remarks</i>: The expression in the <span class='textsf'><i >requires-clause</i></span> is equivalent to:
<span class='codeblock'><span class='keyword'>requires</span> <span class='curlybracket'>{</span> representation_values<span class='anglebracket'>&lt;</span>rep<span class='anglebracket'>&gt;</span><span class='operator'>::</span><i >F</i><span class='parenthesis'>(</span><span class='parenthesis'>)</span>; <span class='curlybracket'>}</span>
</span></div></div></div></div></div><div id='cons' class='section'><h3 ><a class='secnum' href='#cons' style='min-width:80pt'>5.6.5</a> Constructors and assignment <a class='abbr_ref' href='qty.cons.html'>[qty.cons]</a></h3><div class='texpara'><div id='lib:quantity,constructor'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:quantity,constructor'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><span class='keyword'>typename</span> FwdValue, <a href='qty.ref.concepts.html#concept:Reference' title='5.4.5&emsp;Concepts&emsp;[qty.ref.concepts]'><span id='conceptref:Reference_________'><span class='texttt'>Reference</span></span></a> R2<span class='anglebracket'>&gt;</span>
<span class='keyword'>requires</span> <a class='index' id='conceptref:SameValueAs__'></a><span class='texttt'><i >SameValueAs</i></span><span class='anglebracket'>&lt;</span>R2<span class='curlybracket'>{</span><span class='curlybracket'>}</span>, R, std<span class='operator'>::</span>remove_cvref_t<span class='anglebracket'>&lt;</span>FwdValue<span class='anglebracket'>&gt;</span>, Rep<span class='anglebracket'>&gt;</span>
@ -369,90 +369,90 @@ if <span class='texttt'>Rep</span> is a structural type<a class='hidden_link' hr
<span class='keyword'>template</span><span class='anglebracket'>&lt;</span><a class='index' id='conceptref:ValuePreservingTo____'></a><span class='texttt'><i >ValuePreservingTo</i></span><span class='anglebracket'>&lt;</span>Rep<span class='anglebracket'>&gt;</span> FwdValue<span class='anglebracket'>&gt;</span>
<span class='keyword'>requires</span><span class='parenthesis'>(</span>unit <span class='operator'>=</span><span class='operator'>=</span> <span class='operator'>::</span>mp_units<span class='operator'>::</span>one<span class='parenthesis'>)</span>
<span class='keyword'>constexpr</span> quantity<span class='parenthesis'>(</span>FwdValue<span class='operator'>&amp;</span><span class='operator'>&amp;</span> v<span class='parenthesis'>)</span>;
</code></div></div></div><div class='para' id='cons-1'><div class='marginalizedparent'><a class='marginalized' href='#cons-1'>1</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L4517'>#</a></div><div class='texpara'><div id='cons-1.sentence-1' class='sentence'><i >Effects</i>: Initializes <span class='texttt'><i >numerical-value</i></span> with <span class='texttt'>std<span class='operator'>&#x200b;::&#x200b;</span>forward<span class='anglebracket'>&lt;</span>FwdValue<span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span>v<span class='parenthesis'>)</span></span><a class='hidden_link' href='#cons-1.sentence-1'>.</a></div></div></div></div><div class='texpara'><div id='lib:quantity,constructor_'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:quantity,constructor_'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><span class='keyword'>typename</span> FwdValue, <a href='qty.ref.concepts.html#concept:Reference' title='5.4.5&emsp;Concepts&emsp;[qty.ref.concepts]'><span id='conceptref:Reference__________'><span class='texttt'>Reference</span></span></a> R2, <span class='keyword'>typename</span> Value <span class='operator'>=</span> std<span class='operator'>::</span>remove_cvref_t<span class='anglebracket'>&lt;</span>FwdValue<span class='anglebracket'>&gt;</span><span class='anglebracket'>&gt;</span>
</code></div></div></div><div class='para' id='cons-1'><div class='marginalizedparent'><a class='marginalized' href='#cons-1'>1</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L4517'>#</a></div><div class='texpara'><div id='cons-1.sentence-1' class='sentence'><i >Effects</i>: Initializes <span class='texttt'><i >numerical-value</i></span> with <span class='texttt'>std<span class='operator'>&#x200b;::&#x200b;</span>forward<span class='anglebracket'>&lt;</span>FwdValue<span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span>v<span class='parenthesis'>)</span></span><a class='hidden_link' href='#cons-1.sentence-1'>.</a></div></div></div></div><div class='texpara'><div id='lib:quantity,constructor_'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:quantity,constructor_'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><span class='keyword'>typename</span> FwdValue, <a href='qty.ref.concepts.html#concept:Reference' title='5.4.5&emsp;Concepts&emsp;[qty.ref.concepts]'><span id='conceptref:Reference__________'><span class='texttt'>Reference</span></span></a> R2, <span class='keyword'>typename</span> Value <span class='operator'>=</span> std<span class='operator'>::</span>remove_cvref_t<span class='anglebracket'>&lt;</span>FwdValue<span class='anglebracket'>&gt;</span><span class='anglebracket'>&gt;</span>
<span class='keyword'>requires</span><span class='parenthesis'>(</span><span class='operator'>!</span><a class='index' id='conceptref:SameValueAs___'></a><span class='texttt'><i >SameValueAs</i></span><span class='anglebracket'>&lt;</span>R2<span class='curlybracket'>{</span><span class='curlybracket'>}</span>, R, Value, Rep<span class='anglebracket'>&gt;</span><span class='parenthesis'>)</span> <span class='operator'>&amp;</span><span class='operator'>&amp;</span>
<a class='index' id='conceptref:QuantityConvertibleTo________'></a><span class='texttt'><i >QuantityConvertibleTo</i></span><span class='anglebracket'>&lt;</span>quantity<span class='anglebracket'>&lt;</span>R2<span class='curlybracket'>{</span><span class='curlybracket'>}</span>, Value<span class='anglebracket'>&gt;</span>, quantity<span class='anglebracket'>&gt;</span>
<span class='keyword'>constexpr</span> quantity<span class='parenthesis'>(</span>FwdValue<span class='operator'>&amp;</span><span class='operator'>&amp;</span> v, R2<span class='parenthesis'>)</span>;
</code></div></div></div><div class='para' id='cons-2'><div class='marginalizedparent'><a class='marginalized' href='#cons-2'>2</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L4531'>#</a></div><div class='texpara'><div id='cons-2.sentence-1' class='sentence'><i >Effects</i>: Equivalent to
</code></div></div></div><div class='para' id='cons-2'><div class='marginalizedparent'><a class='marginalized' href='#cons-2'>2</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L4531'>#</a></div><div class='texpara'><div id='cons-2.sentence-1' class='sentence'><i >Effects</i>: Equivalent to
<span class='texttt'>quantity<span class='parenthesis'>(</span>quantity<span class='anglebracket'>&lt;</span>R2<span class='curlybracket'>{</span><span class='curlybracket'>}</span>, Value<span class='anglebracket'>&gt;</span><span class='curlybracket'>{</span>std<span class='operator'>&#x200b;::&#x200b;</span>forward<span class='anglebracket'>&lt;</span>FwdValue<span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span>v<span class='parenthesis'>)</span>, R2<span class='curlybracket'>{</span><span class='curlybracket'>}</span><span class='curlybracket'>}</span><span class='parenthesis'>)</span></span><a class='hidden_link' href='#cons-2.sentence-1'>.</a></div></div></div></div><div class='texpara'><div id='lib:quantity,constructor__'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:quantity,constructor__'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><a class='index' id='conceptref:QuantityConvertibleTo_________'></a><span class='texttt'><i >QuantityConvertibleTo</i></span><span class='anglebracket'>&lt;</span>quantity<span class='anglebracket'>&gt;</span> Q<span class='anglebracket'>&gt;</span>
<span class='keyword'>constexpr</span> <span class='keyword'>explicit</span><span class='parenthesis'>(</span><span class='operator'>!</span>std<span class='operator'>::</span>convertible_to<span class='anglebracket'>&lt;</span><span class='keyword'>typename</span> Q<span class='operator'>::</span>rep, Rep<span class='anglebracket'>&gt;</span><span class='parenthesis'>)</span> quantity<span class='parenthesis'>(</span><span class='keyword'>const</span> Q<span class='operator'>&amp;</span> q<span class='parenthesis'>)</span>;
</code></div></div></div><div class='para' id='cons-3'><div class='marginalizedparent'><a class='marginalized' href='#cons-3'>3</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L4544'>#</a></div><div class='texpara'><div id='cons-3.sentence-1' class='sentence'><i >Effects</i>: Equivalent to <span class='texttt'><span class='texttt'><i >sudo-cast</i></span><span class='anglebracket'>&lt;</span>quantity<span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span>q<span class='parenthesis'>)</span></span> (<a href='#non.mem.conv' title='5.6.15&emsp;Non-member conversions'>[qty.<span class='shy'></span>non.<span class='shy'></span>mem.<span class='shy'></span>conv]</a>)<a class='hidden_link' href='#cons-3.sentence-1'>.</a></div></div></div></div><div class='texpara'><div id='lib:quantity,constructor___'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:quantity,constructor___'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><a href='#concept:QuantityLike' title='5.6.2&emsp;Interoperability&emsp;[qty.like]'><span id='conceptref:QuantityLike___'><span class='texttt'>QuantityLike</span></span></a> Q<span class='anglebracket'>&gt;</span>
</code></div></div></div><div class='para' id='cons-3'><div class='marginalizedparent'><a class='marginalized' href='#cons-3'>3</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L4544'>#</a></div><div class='texpara'><div id='cons-3.sentence-1' class='sentence'><i >Effects</i>: Equivalent to <span class='texttt'><span class='texttt'><i >sudo-cast</i></span><span class='anglebracket'>&lt;</span>quantity<span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span>q<span class='parenthesis'>)</span></span> (<a href='#non.mem.conv' title='5.6.15&emsp;Non-member conversions'>[qty.<span class='shy'></span>non.<span class='shy'></span>mem.<span class='shy'></span>conv]</a>)<a class='hidden_link' href='#cons-3.sentence-1'>.</a></div></div></div></div><div class='texpara'><div id='lib:quantity,constructor___'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:quantity,constructor___'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><a href='#concept:QuantityLike' title='5.6.2&emsp;Interoperability&emsp;[qty.like]'><span id='conceptref:QuantityLike___'><span class='texttt'>QuantityLike</span></span></a> Q<span class='anglebracket'>&gt;</span>
<span class='keyword'>requires</span> <a class='index' id='conceptref:QuantityConvertibleTo__________'></a><span class='texttt'><i >QuantityConvertibleTo</i></span><span class='anglebracket'>&lt;</span><span class='texttt'><i >quantity-like-type</i></span><span class='anglebracket'>&lt;</span>Q<span class='anglebracket'>&gt;</span>, quantity<span class='anglebracket'>&gt;</span>
<span class='keyword'>constexpr</span> <span class='keyword'>explicit</span><span class='parenthesis'>(</span><i ><span class='texttt'>see below</span></i><span class='parenthesis'>)</span> quantity<span class='parenthesis'>(</span><span class='keyword'>const</span> Q<span class='operator'>&amp;</span> q<span class='parenthesis'>)</span>;
</code></div></div></div><div class='para' id='cons-4'><div class='marginalizedparent'><a class='marginalized' href='#cons-4'>4</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L4557'>#</a></div><div class='texpara'><div id='cons-4.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
</code></div></div></div><div class='para' id='cons-4'><div class='marginalizedparent'><a class='marginalized' href='#cons-4'>4</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L4557'>#</a></div><div class='texpara'><div id='cons-4.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
<span class='codeblock'>quantity<span class='parenthesis'>(</span><span class='operator'>::</span>mp_units<span class='operator'>::</span>quantity<span class='curlybracket'>{</span>quantity_like_traits<span class='anglebracket'>&lt;</span>Q<span class='anglebracket'>&gt;</span><span class='operator'>::</span>to_numerical_value<span class='parenthesis'>(</span>q<span class='parenthesis'>)</span>,
quantity_like_traits<span class='anglebracket'>&lt;</span>Q<span class='anglebracket'>&gt;</span><span class='operator'>::</span>reference<span class='curlybracket'>}</span><span class='parenthesis'>)</span>
</span></div></div></div></div><div class='para' id='cons-5'><div class='marginalizedparent'><a class='marginalized' href='#cons-5'>5</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L4565'>#</a></div><div class='texpara'><div id='cons-5.sentence-1' class='sentence'><i >Remarks</i>: The expression inside <span class='texttt'><span class='keyword'>explicit</span></span> is equivalent to:
</span></div></div></div></div><div class='para' id='cons-5'><div class='marginalizedparent'><a class='marginalized' href='#cons-5'>5</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L4565'>#</a></div><div class='texpara'><div id='cons-5.sentence-1' class='sentence'><i >Remarks</i>: The expression inside <span class='texttt'><span class='keyword'>explicit</span></span> is equivalent to:
<span class='codeblock'>quantity_like_traits<span class='anglebracket'>&lt;</span>Q<span class='anglebracket'>&gt;</span><span class='operator'>::</span>explicit_import <span class='operator'>|</span><span class='operator'>|</span>
<span class='operator'>!</span>std<span class='operator'>::</span>convertible_to<span class='anglebracket'>&lt;</span><span class='keyword'>typename</span> quantity_like_traits<span class='anglebracket'>&lt;</span>Q<span class='anglebracket'>&gt;</span><span class='operator'>::</span>rep, Rep<span class='anglebracket'>&gt;</span>
</span></div></div></div></div><div class='texpara'><div id='lib:quantity,operator='><div id='lib:operator=,quantity'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:operator=,quantity'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><a class='index' id='conceptref:ValuePreservingTo_____'></a><span class='texttt'><i >ValuePreservingTo</i></span><span class='anglebracket'>&lt;</span>Rep<span class='anglebracket'>&gt;</span> FwdValue<span class='anglebracket'>&gt;</span>
<span class='keyword'>requires</span><span class='parenthesis'>(</span>unit <span class='operator'>=</span><span class='operator'>=</span> <span class='operator'>::</span>mp_units<span class='operator'>::</span>one<span class='parenthesis'>)</span>
<span class='keyword'>constexpr</span> quantity<span class='operator'>&amp;</span> <span class='keyword'>operator</span><span class='operator'>=</span><span class='parenthesis'>(</span>FwdValue<span class='operator'>&amp;</span><span class='operator'>&amp;</span> v<span class='parenthesis'>)</span>;
</code></div></div></div></div><div class='para' id='cons-6'><div class='marginalizedparent'><a class='marginalized' href='#cons-6'>6</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L4582'>#</a></div><div class='texpara'><div id='cons-6.sentence-1' class='sentence'><i >Effects</i>: Equivalent to <span class='texttt'><span class='texttt'><i >numerical-value</i></span> <span class='operator'>=</span> std<span class='operator'>&#x200b;::&#x200b;</span>forward<span class='anglebracket'>&lt;</span>FwdValue<span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span>v<span class='parenthesis'>)</span></span><a class='hidden_link' href='#cons-6.sentence-1'>.</a></div></div></div></div><div class='para' id='cons-7'><div class='marginalizedparent'><a class='marginalized' href='#cons-7'>7</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L4586'>#</a></div><div class='texpara'><div id='cons-7.sentence-1' class='sentence'><i >Returns</i>: <span class='texttt'><span class='operator'>*</span><span class='keyword'>this</span></span><a class='hidden_link' href='#cons-7.sentence-1'>.</a></div></div></div></div></div><div id='conv' class='section'><h3 ><a class='secnum' href='#conv' style='min-width:80pt'>5.6.6</a> Conversions <a class='abbr_ref' href='qty.conv.html'>[qty.conv]</a></h3><div class='texpara'><div id='lib:quantity,in'><div id='lib:in,quantity'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:in,quantity'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><a class='index' id='conceptref:UnitCompatibleWith______'></a><span class='texttt'><i >UnitCompatibleWith</i></span><span class='anglebracket'>&lt;</span>unit, quantity_spec<span class='anglebracket'>&gt;</span> ToU<span class='anglebracket'>&gt;</span>
</code></div></div></div></div><div class='para' id='cons-6'><div class='marginalizedparent'><a class='marginalized' href='#cons-6'>6</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L4582'>#</a></div><div class='texpara'><div id='cons-6.sentence-1' class='sentence'><i >Effects</i>: Equivalent to <span class='texttt'><span class='texttt'><i >numerical-value</i></span> <span class='operator'>=</span> std<span class='operator'>&#x200b;::&#x200b;</span>forward<span class='anglebracket'>&lt;</span>FwdValue<span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span>v<span class='parenthesis'>)</span></span><a class='hidden_link' href='#cons-6.sentence-1'>.</a></div></div></div></div><div class='para' id='cons-7'><div class='marginalizedparent'><a class='marginalized' href='#cons-7'>7</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L4586'>#</a></div><div class='texpara'><div id='cons-7.sentence-1' class='sentence'><i >Returns</i>: <span class='texttt'><span class='operator'>*</span><span class='keyword'>this</span></span><a class='hidden_link' href='#cons-7.sentence-1'>.</a></div></div></div></div></div><div id='conv' class='section'><h3 ><a class='secnum' href='#conv' style='min-width:80pt'>5.6.6</a> Conversions <a class='abbr_ref' href='qty.conv.html'>[qty.conv]</a></h3><div class='texpara'><div id='lib:quantity,in'><div id='lib:in,quantity'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:in,quantity'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><a class='index' id='conceptref:UnitCompatibleWith______'></a><span class='texttt'><i >UnitCompatibleWith</i></span><span class='anglebracket'>&lt;</span>unit, quantity_spec<span class='anglebracket'>&gt;</span> ToU<span class='anglebracket'>&gt;</span>
<span class='keyword'>requires</span> <a class='index' id='conceptref:QuantityConvertibleTo___________'></a><span class='texttt'><i >QuantityConvertibleTo</i></span><span class='anglebracket'>&lt;</span>quantity, quantity<span class='anglebracket'>&lt;</span><span class='texttt'><i >make-reference</i></span><span class='parenthesis'>(</span>quantity_spec, ToU<span class='curlybracket'>{</span><span class='curlybracket'>}</span><span class='parenthesis'>)</span>, Rep<span class='anglebracket'>&gt;</span><span class='anglebracket'>&gt;</span>
<span class='keyword'>constexpr</span> <a href='#concept:QuantityOf' title='5.6.3&emsp;Class template quantity&emsp;[qty.syn]'><span id='conceptref:QuantityOf_______________'><span class='texttt'>QuantityOf</span></span></a><span class='anglebracket'>&lt;</span>quantity_spec<span class='anglebracket'>&gt;</span> <span class='keyword'>auto</span> in<span class='parenthesis'>(</span>ToU<span class='parenthesis'>)</span> <span class='keyword'>const</span>;
</code></div></div></div></div><div class='para' id='conv-1'><div class='marginalizedparent'><a class='marginalized' href='#conv-1'>1</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L4601'>#</a></div><div class='texpara'><div id='conv-1.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
</code></div></div></div></div><div class='para' id='conv-1'><div class='marginalizedparent'><a class='marginalized' href='#conv-1'>1</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L4601'>#</a></div><div class='texpara'><div id='conv-1.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
<span class='texttt'><span class='keyword'>return</span> quantity<span class='anglebracket'>&lt;</span><span class='texttt'><i >make-reference</i></span><span class='parenthesis'>(</span>quantity_<span class='shy'></span>spec, ToU<span class='curlybracket'>{</span><span class='curlybracket'>}</span><span class='parenthesis'>)</span>, Rep<span class='anglebracket'>&gt;</span><span class='curlybracket'>{</span><span class='operator'>*</span><span class='keyword'>this</span><span class='curlybracket'>}</span>;</span></div></div></div></div><div class='texpara'><div id='lib:quantity,in_'><div id='lib:in,quantity_'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:in,quantity_'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><a href='qty.rep.concepts.html#concept:RepresentationOf' title='5.5.4&emsp;Concepts&emsp;[qty.rep.concepts]'><span id='conceptref:RepresentationOf______'><span class='texttt'>RepresentationOf</span></span></a><span class='anglebracket'>&lt;</span>quantity_spec<span class='anglebracket'>&gt;</span> ToRep<span class='anglebracket'>&gt;</span>
<span class='keyword'>requires</span> <a class='index' id='conceptref:QuantityConvertibleTo____________'></a><span class='texttt'><i >QuantityConvertibleTo</i></span><span class='anglebracket'>&lt;</span>quantity, quantity<span class='anglebracket'>&lt;</span>reference, ToRep<span class='anglebracket'>&gt;</span><span class='anglebracket'>&gt;</span>
<span class='keyword'>constexpr</span> <a href='#concept:QuantityOf' title='5.6.3&emsp;Class template quantity&emsp;[qty.syn]'><span id='conceptref:QuantityOf________________'><span class='texttt'>QuantityOf</span></span></a><span class='anglebracket'>&lt;</span>quantity_spec<span class='anglebracket'>&gt;</span> <span class='keyword'>auto</span> in<span class='parenthesis'>(</span><span class='parenthesis'>)</span> <span class='keyword'>const</span>;
</code></div></div></div></div><div class='para' id='conv-2'><div class='marginalizedparent'><a class='marginalized' href='#conv-2'>2</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L4615'>#</a></div><div class='texpara'><div id='conv-2.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
</code></div></div></div></div><div class='para' id='conv-2'><div class='marginalizedparent'><a class='marginalized' href='#conv-2'>2</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L4615'>#</a></div><div class='texpara'><div id='conv-2.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
<span class='texttt'><span class='keyword'>return</span> quantity<span class='anglebracket'>&lt;</span>reference, ToRep<span class='anglebracket'>&gt;</span><span class='curlybracket'>{</span><span class='operator'>*</span><span class='keyword'>this</span><span class='curlybracket'>}</span>;</span></div></div></div></div><div class='texpara'><div id='lib:quantity,in__'><div id='lib:in,quantity__'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:in,quantity__'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><a href='qty.rep.concepts.html#concept:RepresentationOf' title='5.5.4&emsp;Concepts&emsp;[qty.rep.concepts]'><span id='conceptref:RepresentationOf_______'><span class='texttt'>RepresentationOf</span></span></a><span class='anglebracket'>&lt;</span>quantity_spec<span class='anglebracket'>&gt;</span> ToRep,
<a class='index' id='conceptref:UnitCompatibleWith_______'></a><span class='texttt'><i >UnitCompatibleWith</i></span><span class='anglebracket'>&lt;</span>unit, quantity_spec<span class='anglebracket'>&gt;</span> ToU<span class='anglebracket'>&gt;</span>
<span class='keyword'>requires</span> <a class='index' id='conceptref:QuantityConvertibleTo_____________'></a><span class='texttt'><i >QuantityConvertibleTo</i></span><span class='anglebracket'>&lt;</span>quantity,
quantity<span class='anglebracket'>&lt;</span><span class='texttt'><i >make-reference</i></span><span class='parenthesis'>(</span>quantity_spec, ToU<span class='curlybracket'>{</span><span class='curlybracket'>}</span><span class='parenthesis'>)</span>, ToRep<span class='anglebracket'>&gt;</span><span class='anglebracket'>&gt;</span>
<span class='keyword'>constexpr</span> <a href='#concept:QuantityOf' title='5.6.3&emsp;Class template quantity&emsp;[qty.syn]'><span id='conceptref:QuantityOf_________________'><span class='texttt'>QuantityOf</span></span></a><span class='anglebracket'>&lt;</span>quantity_spec<span class='anglebracket'>&gt;</span> <span class='keyword'>auto</span> in<span class='parenthesis'>(</span>ToU<span class='parenthesis'>)</span> <span class='keyword'>const</span>;
</code></div></div></div></div><div class='para' id='conv-3'><div class='marginalizedparent'><a class='marginalized' href='#conv-3'>3</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L4631'>#</a></div><div class='texpara'><div id='conv-3.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
</code></div></div></div></div><div class='para' id='conv-3'><div class='marginalizedparent'><a class='marginalized' href='#conv-3'>3</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L4631'>#</a></div><div class='texpara'><div id='conv-3.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
<span class='codeblock'><span class='keyword'>return</span> quantity<span class='anglebracket'>&lt;</span><i >make-reference</i><span class='parenthesis'>(</span>quantity_spec, ToU<span class='curlybracket'>{</span><span class='curlybracket'>}</span><span class='parenthesis'>)</span>, ToRep<span class='anglebracket'>&gt;</span><span class='curlybracket'>{</span><span class='operator'>*</span><span class='keyword'>this</span><span class='curlybracket'>}</span>;
</span></div></div></div></div><div class='texpara'><div id='lib:quantity,force_in'><div id='lib:force_in,quantity'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:force_in,quantity'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><a class='index' id='conceptref:UnitCompatibleWith________'></a><span class='texttt'><i >UnitCompatibleWith</i></span><span class='anglebracket'>&lt;</span>unit, quantity_spec<span class='anglebracket'>&gt;</span> ToU<span class='anglebracket'>&gt;</span>
<span class='keyword'>requires</span> <span class='keyword'>requires</span><span class='parenthesis'>(</span><span class='keyword'>const</span> quantity q<span class='parenthesis'>)</span> <span class='curlybracket'>{</span> value_cast<span class='anglebracket'>&lt;</span>ToU<span class='curlybracket'>{</span><span class='curlybracket'>}</span><span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span>q<span class='parenthesis'>)</span>; <span class='curlybracket'>}</span>
<span class='keyword'>constexpr</span> <a href='#concept:QuantityOf' title='5.6.3&emsp;Class template quantity&emsp;[qty.syn]'><span id='conceptref:QuantityOf__________________'><span class='texttt'>QuantityOf</span></span></a><span class='anglebracket'>&lt;</span>quantity_spec<span class='anglebracket'>&gt;</span> <span class='keyword'>auto</span> force_in<span class='parenthesis'>(</span>ToU<span class='parenthesis'>)</span> <span class='keyword'>const</span>;
</code></div></div></div></div><div class='para' id='conv-4'><div class='marginalizedparent'><a class='marginalized' href='#conv-4'>4</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L4647'>#</a></div><div class='texpara'><div id='conv-4.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
</code></div></div></div></div><div class='para' id='conv-4'><div class='marginalizedparent'><a class='marginalized' href='#conv-4'>4</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L4647'>#</a></div><div class='texpara'><div id='conv-4.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
<span class='texttt'><span class='keyword'>return</span> value_<span class='shy'></span>cast<span class='anglebracket'>&lt;</span>ToU<span class='curlybracket'>{</span><span class='curlybracket'>}</span><span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span><span class='operator'>*</span><span class='keyword'>this</span><span class='parenthesis'>)</span>;</span></div></div></div></div><div class='texpara'><div id='lib:quantity,force_in_'><div id='lib:force_in,quantity_'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:force_in,quantity_'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><a href='qty.rep.concepts.html#concept:RepresentationOf' title='5.5.4&emsp;Concepts&emsp;[qty.rep.concepts]'><span id='conceptref:RepresentationOf________'><span class='texttt'>RepresentationOf</span></span></a><span class='anglebracket'>&lt;</span>quantity_spec<span class='anglebracket'>&gt;</span> ToRep<span class='anglebracket'>&gt;</span>
<span class='keyword'>requires</span> <span class='keyword'>requires</span><span class='parenthesis'>(</span><span class='keyword'>const</span> quantity q<span class='parenthesis'>)</span> <span class='curlybracket'>{</span> value_cast<span class='anglebracket'>&lt;</span>ToRep<span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span>q<span class='parenthesis'>)</span>; <span class='curlybracket'>}</span>
<span class='keyword'>constexpr</span> <a href='#concept:QuantityOf' title='5.6.3&emsp;Class template quantity&emsp;[qty.syn]'><span id='conceptref:QuantityOf___________________'><span class='texttt'>QuantityOf</span></span></a><span class='anglebracket'>&lt;</span>quantity_spec<span class='anglebracket'>&gt;</span> <span class='keyword'>auto</span> force_in<span class='parenthesis'>(</span><span class='parenthesis'>)</span> <span class='keyword'>const</span>;
</code></div></div></div></div><div class='para' id='conv-5'><div class='marginalizedparent'><a class='marginalized' href='#conv-5'>5</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L4661'>#</a></div><div class='texpara'><div id='conv-5.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
</code></div></div></div></div><div class='para' id='conv-5'><div class='marginalizedparent'><a class='marginalized' href='#conv-5'>5</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L4661'>#</a></div><div class='texpara'><div id='conv-5.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
<span class='texttt'><span class='keyword'>return</span> value_<span class='shy'></span>cast<span class='anglebracket'>&lt;</span>ToRep<span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span><span class='operator'>*</span><span class='keyword'>this</span><span class='parenthesis'>)</span>;</span></div></div></div></div><div class='texpara'><div id='lib:quantity,force_in__'><div id='lib:force_in,quantity__'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:force_in,quantity__'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><a href='qty.rep.concepts.html#concept:RepresentationOf' title='5.5.4&emsp;Concepts&emsp;[qty.rep.concepts]'><span id='conceptref:RepresentationOf_________'><span class='texttt'>RepresentationOf</span></span></a><span class='anglebracket'>&lt;</span>quantity_spec<span class='anglebracket'>&gt;</span> ToRep,
<a class='index' id='conceptref:UnitCompatibleWith_________'></a><span class='texttt'><i >UnitCompatibleWith</i></span><span class='anglebracket'>&lt;</span>unit, quantity_spec<span class='anglebracket'>&gt;</span> ToU<span class='anglebracket'>&gt;</span>
<span class='keyword'>requires</span> <span class='keyword'>requires</span><span class='parenthesis'>(</span><span class='keyword'>const</span> quantity q<span class='parenthesis'>)</span> <span class='curlybracket'>{</span> value_cast<span class='anglebracket'>&lt;</span>ToU<span class='curlybracket'>{</span><span class='curlybracket'>}</span>, ToRep<span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span>q<span class='parenthesis'>)</span>; <span class='curlybracket'>}</span>
<span class='keyword'>constexpr</span> <a href='#concept:QuantityOf' title='5.6.3&emsp;Class template quantity&emsp;[qty.syn]'><span id='conceptref:QuantityOf____________________'><span class='texttt'>QuantityOf</span></span></a><span class='anglebracket'>&lt;</span>quantity_spec<span class='anglebracket'>&gt;</span> <span class='keyword'>auto</span> force_in<span class='parenthesis'>(</span>ToU<span class='parenthesis'>)</span> <span class='keyword'>const</span>;
</code></div></div></div></div><div class='para' id='conv-6'><div class='marginalizedparent'><a class='marginalized' href='#conv-6'>6</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L4676'>#</a></div><div class='texpara'><div id='conv-6.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
</code></div></div></div></div><div class='para' id='conv-6'><div class='marginalizedparent'><a class='marginalized' href='#conv-6'>6</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L4676'>#</a></div><div class='texpara'><div id='conv-6.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
<span class='texttt'><span class='keyword'>return</span> value_<span class='shy'></span>cast<span class='anglebracket'>&lt;</span>ToU<span class='curlybracket'>{</span><span class='curlybracket'>}</span>, ToRep<span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span><span class='operator'>*</span><span class='keyword'>this</span><span class='parenthesis'>)</span>;</span></div></div></div></div></div><div id='obs' class='section'><h3 ><a class='secnum' href='#obs' style='min-width:80pt'>5.6.7</a> Numerical value observers <a class='abbr_ref' href='qty.obs.html'>[qty.obs]</a></h3><div class='texpara'><div id='lib:quantity,numerical_value_ref_in'><div id='lib:numerical_value_ref_in,quantity'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:numerical_value_ref_in,quantity'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><a href='qty.unit.concepts.html#concept:Unit' title='5.4.4.4&emsp;Concepts&emsp;[qty.unit.concepts]'><span id='conceptref:Unit________'><span class='texttt'>Unit</span></span></a> U<span class='anglebracket'>&gt;</span>
<span class='keyword'>requires</span><span class='parenthesis'>(</span>equivalent<span class='parenthesis'>(</span>U<span class='curlybracket'>{</span><span class='curlybracket'>}</span>, unit<span class='parenthesis'>)</span><span class='parenthesis'>)</span>
<span class='keyword'>constexpr</span> rep<span class='operator'>&amp;</span> numerical_value_ref_in<span class='parenthesis'>(</span>U<span class='parenthesis'>)</span> <span class='operator'>&amp;</span> <span class='keyword'>noexcept</span>;
<span class='keyword'>template</span><span class='anglebracket'>&lt;</span><a href='qty.unit.concepts.html#concept:Unit' title='5.4.4.4&emsp;Concepts&emsp;[qty.unit.concepts]'><span id='conceptref:Unit_________'><span class='texttt'>Unit</span></span></a> U<span class='anglebracket'>&gt;</span>
<span class='keyword'>requires</span><span class='parenthesis'>(</span>equivalent<span class='parenthesis'>(</span>U<span class='curlybracket'>{</span><span class='curlybracket'>}</span>, unit<span class='parenthesis'>)</span><span class='parenthesis'>)</span>
<span class='keyword'>constexpr</span> <span class='keyword'>const</span> rep<span class='operator'>&amp;</span> numerical_value_ref_in<span class='parenthesis'>(</span>U<span class='parenthesis'>)</span> <span class='keyword'>const</span> <span class='operator'>&amp;</span> <span class='keyword'>noexcept</span>;
</code></div></div></div></div><div class='para' id='obs-1'><div class='marginalizedparent'><a class='marginalized' href='#obs-1'>1</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L4695'>#</a></div><div class='texpara'><div id='obs-1.sentence-1' class='sentence'><i >Returns</i>: <span class='texttt'><i >numerical-value</i></span><a class='hidden_link' href='#obs-1.sentence-1'>.</a></div></div></div></div><div class='texpara'><div id='lib:quantity,numerical_value_in'><div id='lib:numerical_value_in,quantity'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:numerical_value_in,quantity'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><a class='index' id='conceptref:UnitCompatibleWith__________'></a><span class='texttt'><i >UnitCompatibleWith</i></span><span class='anglebracket'>&lt;</span>unit, quantity_spec<span class='anglebracket'>&gt;</span> U<span class='anglebracket'>&gt;</span>
</code></div></div></div></div><div class='para' id='obs-1'><div class='marginalizedparent'><a class='marginalized' href='#obs-1'>1</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L4695'>#</a></div><div class='texpara'><div id='obs-1.sentence-1' class='sentence'><i >Returns</i>: <span class='texttt'><i >numerical-value</i></span><a class='hidden_link' href='#obs-1.sentence-1'>.</a></div></div></div></div><div class='texpara'><div id='lib:quantity,numerical_value_in'><div id='lib:numerical_value_in,quantity'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:numerical_value_in,quantity'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><a class='index' id='conceptref:UnitCompatibleWith__________'></a><span class='texttt'><i >UnitCompatibleWith</i></span><span class='anglebracket'>&lt;</span>unit, quantity_spec<span class='anglebracket'>&gt;</span> U<span class='anglebracket'>&gt;</span>
<span class='keyword'>requires</span> <a class='index' id='conceptref:QuantityConvertibleTo______________'></a><span class='texttt'><i >QuantityConvertibleTo</i></span><span class='anglebracket'>&lt;</span>quantity, quantity<span class='anglebracket'>&lt;</span><span class='texttt'><i >make-reference</i></span><span class='parenthesis'>(</span>quantity_spec, U<span class='curlybracket'>{</span><span class='curlybracket'>}</span><span class='parenthesis'>)</span>, Rep<span class='anglebracket'>&gt;</span><span class='anglebracket'>&gt;</span>
<span class='keyword'>constexpr</span> rep numerical_value_in<span class='parenthesis'>(</span>U<span class='parenthesis'>)</span> <span class='keyword'>const</span> <span class='keyword'>noexcept</span>;
</code></div></div></div></div><div class='para' id='obs-2'><div class='marginalizedparent'><a class='marginalized' href='#obs-2'>2</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L4708'>#</a></div><div class='texpara'><div id='obs-2.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
</code></div></div></div></div><div class='para' id='obs-2'><div class='marginalizedparent'><a class='marginalized' href='#obs-2'>2</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L4708'>#</a></div><div class='texpara'><div id='obs-2.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
<span class='texttt'><span class='keyword'>return</span> <span class='parenthesis'>(</span><span class='operator'>*</span><span class='keyword'>this</span><span class='parenthesis'>)</span><span class='operator'>.</span>in<span class='parenthesis'>(</span>U<span class='curlybracket'>{</span><span class='curlybracket'>}</span><span class='parenthesis'>)</span><span class='operator'>.</span><span class='texttt'><i >numerical-value</i></span>;</span></div></div></div></div><div class='texpara'><div id='lib:quantity,force_numerical_value_in'><div id='lib:force_numerical_value_in,quantity'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:force_numerical_value_in,quantity'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><a class='index' id='conceptref:UnitCompatibleWith___________'></a><span class='texttt'><i >UnitCompatibleWith</i></span><span class='anglebracket'>&lt;</span>unit, quantity_spec<span class='anglebracket'>&gt;</span> U<span class='anglebracket'>&gt;</span>
<span class='keyword'>requires</span> <span class='keyword'>requires</span><span class='parenthesis'>(</span><span class='keyword'>const</span> quantity q<span class='parenthesis'>)</span> <span class='curlybracket'>{</span> value_cast<span class='anglebracket'>&lt;</span>U<span class='curlybracket'>{</span><span class='curlybracket'>}</span><span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span>q<span class='parenthesis'>)</span>; <span class='curlybracket'>}</span>
<span class='keyword'>constexpr</span> rep force_numerical_value_in<span class='parenthesis'>(</span>U<span class='parenthesis'>)</span> <span class='keyword'>const</span> <span class='keyword'>noexcept</span>;
</code></div></div></div></div><div class='para' id='obs-3'><div class='marginalizedparent'><a class='marginalized' href='#obs-3'>3</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L4722'>#</a></div><div class='texpara'><div id='obs-3.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
</code></div></div></div></div><div class='para' id='obs-3'><div class='marginalizedparent'><a class='marginalized' href='#obs-3'>3</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L4722'>#</a></div><div class='texpara'><div id='obs-3.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
<span class='texttt'><span class='keyword'>return</span> <span class='parenthesis'>(</span><span class='operator'>*</span><span class='keyword'>this</span><span class='parenthesis'>)</span><span class='operator'>.</span>force_<span class='shy'></span>in<span class='parenthesis'>(</span>U<span class='curlybracket'>{</span><span class='curlybracket'>}</span><span class='parenthesis'>)</span><span class='operator'>.</span><span class='texttt'><i >numerical-value</i></span>;</span></div></div></div></div></div><div id='conv.ops' class='section'><h3 ><a class='secnum' href='#conv.ops' style='min-width:80pt'>5.6.8</a> Conversion operations <a class='abbr_ref' href='qty.conv.ops.html'>[qty.conv.ops]</a></h3><div class='texpara'><div id='lib:quantity,operator_constructible_from<Rep>'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:quantity,operator_constructible_from%3cRep%3e'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><span class='keyword'>typename</span> V_, std<span class='operator'>::</span>constructible_from<span class='anglebracket'>&lt;</span>Rep<span class='anglebracket'>&gt;</span> Value <span class='operator'>=</span> std<span class='operator'>::</span>remove_cvref_t<span class='anglebracket'>&lt;</span>V_<span class='anglebracket'>&gt;</span><span class='anglebracket'>&gt;</span>
<span class='keyword'>requires</span><span class='parenthesis'>(</span>unit <span class='operator'>=</span><span class='operator'>=</span> <span class='operator'>::</span>mp_units<span class='operator'>::</span>one<span class='parenthesis'>)</span>
<span class='keyword'>explicit</span> <span class='keyword'>operator</span> V_<span class='parenthesis'>(</span><span class='parenthesis'>)</span> <span class='keyword'>const</span> <span class='operator'>&amp;</span> <span class='keyword'>noexcept</span>;
</code></div></div></div><div class='para' id='conv.ops-1'><div class='marginalizedparent'><a class='marginalized' href='#conv.ops-1'>1</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L4738'>#</a></div><div class='texpara'><div id='conv.ops-1.sentence-1' class='sentence'><i >Returns</i>: <span class='texttt'><i >numerical-value</i></span><a class='hidden_link' href='#conv.ops-1.sentence-1'>.</a></div></div></div></div><div class='texpara'><div id='lib:quantity,operator_QuantityLike'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:quantity,operator_QuantityLike'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><span class='keyword'>typename</span> Q_, <a href='#concept:QuantityLike' title='5.6.2&emsp;Interoperability&emsp;[qty.like]'><span id='conceptref:QuantityLike____'><span class='texttt'>QuantityLike</span></span></a> Q <span class='operator'>=</span> std<span class='operator'>::</span>remove_cvref_t<span class='anglebracket'>&lt;</span>Q_<span class='anglebracket'>&gt;</span><span class='anglebracket'>&gt;</span>
</code></div></div></div><div class='para' id='conv.ops-1'><div class='marginalizedparent'><a class='marginalized' href='#conv.ops-1'>1</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L4738'>#</a></div><div class='texpara'><div id='conv.ops-1.sentence-1' class='sentence'><i >Returns</i>: <span class='texttt'><i >numerical-value</i></span><a class='hidden_link' href='#conv.ops-1.sentence-1'>.</a></div></div></div></div><div class='texpara'><div id='lib:quantity,operator_QuantityLike'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:quantity,operator_QuantityLike'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><span class='keyword'>typename</span> Q_, <a href='#concept:QuantityLike' title='5.6.2&emsp;Interoperability&emsp;[qty.like]'><span id='conceptref:QuantityLike____'><span class='texttt'>QuantityLike</span></span></a> Q <span class='operator'>=</span> std<span class='operator'>::</span>remove_cvref_t<span class='anglebracket'>&lt;</span>Q_<span class='anglebracket'>&gt;</span><span class='anglebracket'>&gt;</span>
<span class='keyword'>requires</span> <a class='index' id='conceptref:QuantityConvertibleTo_______________'></a><span class='texttt'><i >QuantityConvertibleTo</i></span><span class='anglebracket'>&lt;</span>quantity, <span class='texttt'><i >quantity-like-type</i></span><span class='anglebracket'>&lt;</span>Q<span class='anglebracket'>&gt;</span><span class='anglebracket'>&gt;</span>
<span class='keyword'>constexpr</span> <span class='keyword'>explicit</span><span class='parenthesis'>(</span><i ><span class='texttt'>see below</span></i><span class='parenthesis'>)</span> <span class='keyword'>operator</span> Q_<span class='parenthesis'>(</span><span class='parenthesis'>)</span> <span class='keyword'>const</span> <span class='keyword'>noexcept</span><span class='parenthesis'>(</span><i ><span class='texttt'>see below</span></i><span class='parenthesis'>)</span>;
</code></div></div></div><div class='para' id='conv.ops-2'><div class='marginalizedparent'><a class='marginalized' href='#conv.ops-2'>2</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L4751'>#</a></div><div class='texpara'><div id='conv.ops-2.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
</code></div></div></div><div class='para' id='conv.ops-2'><div class='marginalizedparent'><a class='marginalized' href='#conv.ops-2'>2</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L4751'>#</a></div><div class='texpara'><div id='conv.ops-2.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
<span class='codeblock'><span class='keyword'>return</span> quantity_like_traits<span class='anglebracket'>&lt;</span>Q<span class='anglebracket'>&gt;</span><span class='operator'>::</span>from_numerical_value<span class='parenthesis'>(</span>
numerical_value_in<span class='parenthesis'>(</span>get_unit<span class='parenthesis'>(</span>quantity_like_traits<span class='anglebracket'>&lt;</span>Q<span class='anglebracket'>&gt;</span><span class='operator'>::</span>reference<span class='parenthesis'>)</span><span class='parenthesis'>)</span><span class='parenthesis'>)</span>;
</span></div></div></div></div><div class='para' id='conv.ops-3'><div class='marginalizedparent'><a class='marginalized' href='#conv.ops-3'>3</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L4759'>#</a></div><div class='texpara'><div id='conv.ops-3.sentence-1' class='sentence'><i >Remarks</i>: The expression inside <span class='texttt'><span class='keyword'>explicit</span></span> is equivalent to:
</span></div></div></div></div><div class='para' id='conv.ops-3'><div class='marginalizedparent'><a class='marginalized' href='#conv.ops-3'>3</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L4759'>#</a></div><div class='texpara'><div id='conv.ops-3.sentence-1' class='sentence'><i >Remarks</i>: The expression inside <span class='texttt'><span class='keyword'>explicit</span></span> is equivalent to:
<span class='codeblock'>quantity_like_traits<span class='anglebracket'>&lt;</span>Q<span class='anglebracket'>&gt;</span><span class='operator'>::</span>explicit_export <span class='operator'>|</span><span class='operator'>|</span>
<span class='operator'>!</span>std<span class='operator'>::</span>convertible_to<span class='anglebracket'>&lt;</span>Rep, <span class='keyword'>typename</span> quantity_like_traits<span class='anglebracket'>&lt;</span>Q<span class='anglebracket'>&gt;</span><span class='operator'>::</span>rep<span class='anglebracket'>&gt;</span>
</span></div> <div id='conv.ops-3.sentence-2' class='sentence'>
The exception specification is equivalent to:
<span class='codeblock'><span class='keyword'>noexcept</span><span class='parenthesis'>(</span>quantity_like_traits<span class='anglebracket'>&lt;</span>Q<span class='anglebracket'>&gt;</span><span class='operator'>::</span>from_numerical_value<span class='parenthesis'>(</span><i >numerical-value</i><span class='parenthesis'>)</span><span class='parenthesis'>)</span> <span class='operator'>&amp;</span><span class='operator'>&amp;</span>
std<span class='operator'>::</span>is_nothrow_copy_constructible_v<span class='anglebracket'>&lt;</span>rep<span class='anglebracket'>&gt;</span>
</span></div></div></div></div></div><div id='unary.ops' class='section'><h3 ><a class='secnum' href='#unary.ops' style='min-width:80pt'>5.6.9</a> Unary operations <a class='abbr_ref' href='qty.unary.ops.html'>[qty.unary.ops]</a></h3><div class='para' id='unary.ops-1'><div class='marginalizedparent'><a class='marginalized' href='#unary.ops-1'>1</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L4775'>#</a></div><div class='texpara'><div id='unary.ops-1.sentence-1' class='sentence'>In the following descriptions,
</span></div></div></div></div></div><div id='unary.ops' class='section'><h3 ><a class='secnum' href='#unary.ops' style='min-width:80pt'>5.6.9</a> Unary operations <a class='abbr_ref' href='qty.unary.ops.html'>[qty.unary.ops]</a></h3><div class='para' id='unary.ops-1'><div class='marginalizedparent'><a class='marginalized' href='#unary.ops-1'>1</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L4775'>#</a></div><div class='texpara'><div id='unary.ops-1.sentence-1' class='sentence'>In the following descriptions,
let <span class='texttt'>@</span> be the <span class='textsf'><i >operator</i></span><a class='hidden_link' href='#unary.ops-1.sentence-1'>.</a></div></div></div><div class='texpara'><div id='lib:quantity,operator-'><div id='lib:operator-,quantity'><div id='lib:quantity,operator+'><div id='lib:operator+,quantity'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:operator+,quantity'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>constexpr</span> <a href='#concept:QuantityOf' title='5.6.3&emsp;Class template quantity&emsp;[qty.syn]'><span id='conceptref:QuantityOf_____________________'><span class='texttt'>QuantityOf</span></span></a><span class='anglebracket'>&lt;</span>quantity_spec<span class='anglebracket'>&gt;</span> <span class='keyword'>auto</span> <span class='keyword'>operator</span><span class='operator'>+</span><span class='parenthesis'>(</span><span class='parenthesis'>)</span> <span class='keyword'>const</span>
<span class='keyword'>requires</span> <i ><span class='texttt'>see below</span></i>;
<span class='keyword'>constexpr</span> <a href='#concept:QuantityOf' title='5.6.3&emsp;Class template quantity&emsp;[qty.syn]'><span id='conceptref:QuantityOf______________________'><span class='texttt'>QuantityOf</span></span></a><span class='anglebracket'>&lt;</span>quantity_spec<span class='anglebracket'>&gt;</span> <span class='keyword'>auto</span> <span class='keyword'>operator</span><span class='operator'>-</span><span class='parenthesis'>(</span><span class='parenthesis'>)</span> <span class='keyword'>const</span>
<span class='keyword'>requires</span> <i ><span class='texttt'>see below</span></i>;
</code></div></div></div></div></div></div><div class='para' id='unary.ops-2'><div class='marginalizedparent'><a class='marginalized' href='#unary.ops-2'>2</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L4789'>#</a></div><div class='texpara'><div id='unary.ops-2.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
<span class='texttt'><span class='keyword'>return</span> <span class='operator'>&#x200b;::&#x200b;</span>mp_<span class='shy'></span>units<span class='operator'>&#x200b;::&#x200b;</span>quantity<span class='curlybracket'>{</span>@<span class='texttt'><i >numerical-value</i></span>, reference<span class='curlybracket'>}</span>;</span></div></div></div></div><div class='para' id='unary.ops-3'><div class='marginalizedparent'><a class='marginalized' href='#unary.ops-3'>3</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L4794'>#</a></div><div class='texpara'><div id='unary.ops-3.sentence-1' class='sentence'><i >Remarks</i>: The expression in the <span class='textsf'><i >requires-clause</i></span> is equivalent to:
</code></div></div></div></div></div></div><div class='para' id='unary.ops-2'><div class='marginalizedparent'><a class='marginalized' href='#unary.ops-2'>2</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L4789'>#</a></div><div class='texpara'><div id='unary.ops-2.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
<span class='texttt'><span class='keyword'>return</span> <span class='operator'>&#x200b;::&#x200b;</span>mp_<span class='shy'></span>units<span class='operator'>&#x200b;::&#x200b;</span>quantity<span class='curlybracket'>{</span>@<span class='texttt'><i >numerical-value</i></span>, reference<span class='curlybracket'>}</span>;</span></div></div></div></div><div class='para' id='unary.ops-3'><div class='marginalizedparent'><a class='marginalized' href='#unary.ops-3'>3</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L4794'>#</a></div><div class='texpara'><div id='unary.ops-3.sentence-1' class='sentence'><i >Remarks</i>: The expression in the <span class='textsf'><i >requires-clause</i></span> is equivalent to:
<span class='codeblock'><span class='keyword'>requires</span><span class='parenthesis'>(</span><span class='keyword'>const</span> rep v<span class='parenthesis'>)</span> <span class='curlybracket'>{</span>
<span class='curlybracket'>{</span> @v <span class='curlybracket'>}</span> <span class='operator'>-</span><span class='anglebracket'>&gt;</span> std<span class='operator'>::</span>common_with<span class='anglebracket'>&lt;</span>rep<span class='anglebracket'>&gt;</span>;
<span class='curlybracket'>}</span>
@ -462,8 +462,8 @@ let <span class='texttt'>@</span> be the <span class='textsf'><i >operator</i></
<span class='keyword'>template</span><span class='anglebracket'>&lt;</span><a class='index' id='conceptref:Mutable__________'></a><span class='texttt'><i >Mutable</i></span><span class='anglebracket'>&lt;</span>quantity<span class='anglebracket'>&gt;</span> Q<span class='anglebracket'>&gt;</span>
<span class='keyword'>friend</span> <span class='keyword'>constexpr</span> <span class='keyword'>decltype</span><span class='parenthesis'>(</span><span class='keyword'>auto</span><span class='parenthesis'>)</span> <span class='keyword'>operator</span><span class='operator'>-</span><span class='operator'>-</span><span class='parenthesis'>(</span>Q<span class='operator'>&amp;</span><span class='operator'>&amp;</span> q<span class='parenthesis'>)</span>
<span class='keyword'>requires</span> <i ><span class='texttt'>see below</span></i>;
</code></div></div></div></div></div></div><div class='para' id='unary.ops-4'><div class='marginalizedparent'><a class='marginalized' href='#unary.ops-4'>4</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L4816'>#</a></div><div class='texpara'><div id='unary.ops-4.sentence-1' class='sentence'><i >Effects</i>: Equivalent to
<span class='texttt'>@q<span class='operator'>.</span><span class='texttt'><i >numerical-value</i></span></span><a class='hidden_link' href='#unary.ops-4.sentence-1'>.</a></div></div></div></div><div class='para' id='unary.ops-5'><div class='marginalizedparent'><a class='marginalized' href='#unary.ops-5'>5</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L4821'>#</a></div><div class='texpara'><div id='unary.ops-5.sentence-1' class='sentence'><i >Returns</i>: <span class='texttt'>std<span class='operator'>&#x200b;::&#x200b;</span>forward<span class='anglebracket'>&lt;</span>Q<span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span>q<span class='parenthesis'>)</span></span><a class='hidden_link' href='#unary.ops-5.sentence-1'>.</a></div></div></div></div><div class='para' id='unary.ops-6'><div class='marginalizedparent'><a class='marginalized' href='#unary.ops-6'>6</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L4825'>#</a></div><div class='texpara'><div id='unary.ops-6.sentence-1' class='sentence'><i >Remarks</i>: The expression in the <span class='textsf'><i >requires-clause</i></span> is equivalent to:
</code></div></div></div></div></div></div><div class='para' id='unary.ops-4'><div class='marginalizedparent'><a class='marginalized' href='#unary.ops-4'>4</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L4816'>#</a></div><div class='texpara'><div id='unary.ops-4.sentence-1' class='sentence'><i >Effects</i>: Equivalent to
<span class='texttt'>@q<span class='operator'>.</span><span class='texttt'><i >numerical-value</i></span></span><a class='hidden_link' href='#unary.ops-4.sentence-1'>.</a></div></div></div></div><div class='para' id='unary.ops-5'><div class='marginalizedparent'><a class='marginalized' href='#unary.ops-5'>5</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L4821'>#</a></div><div class='texpara'><div id='unary.ops-5.sentence-1' class='sentence'><i >Returns</i>: <span class='texttt'>std<span class='operator'>&#x200b;::&#x200b;</span>forward<span class='anglebracket'>&lt;</span>Q<span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span>q<span class='parenthesis'>)</span></span><a class='hidden_link' href='#unary.ops-5.sentence-1'>.</a></div></div></div></div><div class='para' id='unary.ops-6'><div class='marginalizedparent'><a class='marginalized' href='#unary.ops-6'>6</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L4825'>#</a></div><div class='texpara'><div id='unary.ops-6.sentence-1' class='sentence'><i >Remarks</i>: The expression in the <span class='textsf'><i >requires-clause</i></span> is equivalent to:
<span class='codeblock'><span class='keyword'>requires</span><span class='parenthesis'>(</span>rep<span class='operator'>&amp;</span> v<span class='parenthesis'>)</span> <span class='curlybracket'>{</span>
<span class='curlybracket'>{</span> @v <span class='curlybracket'>}</span> <span class='operator'>-</span><span class='anglebracket'>&gt;</span> std<span class='operator'>::</span>same_as<span class='anglebracket'>&lt;</span>rep<span class='operator'>&amp;</span><span class='anglebracket'>&gt;</span>;
<span class='curlybracket'>}</span>
@ -471,12 +471,12 @@ let <span class='texttt'>@</span> be the <span class='textsf'><i >operator</i></
<span class='keyword'>requires</span> <i ><span class='texttt'>see below</span></i>;
<span class='keyword'>constexpr</span> <a href='#concept:QuantityOf' title='5.6.3&emsp;Class template quantity&emsp;[qty.syn]'><span id='conceptref:QuantityOf________________________'><span class='texttt'>QuantityOf</span></span></a><span class='anglebracket'>&lt;</span>quantity_spec<span class='anglebracket'>&gt;</span> <span class='keyword'>auto</span> <span class='keyword'>operator</span><span class='operator'>-</span><span class='operator'>-</span><span class='parenthesis'>(</span><span class='keyword'>int</span><span class='parenthesis'>)</span>
<span class='keyword'>requires</span> <i ><span class='texttt'>see below</span></i>;
</code></div></div></div></div></div></div><div class='para' id='unary.ops-7'><div class='marginalizedparent'><a class='marginalized' href='#unary.ops-7'>7</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L4845'>#</a></div><div class='texpara'><div id='unary.ops-7.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
<span class='texttt'><span class='keyword'>return</span> <span class='operator'>&#x200b;::&#x200b;</span>mp_<span class='shy'></span>units<span class='operator'>&#x200b;::&#x200b;</span>quantity<span class='curlybracket'>{</span><span class='texttt'><i >numerical-value</i></span>@, reference<span class='curlybracket'>}</span>;</span></div></div></div></div><div class='para' id='unary.ops-8'><div class='marginalizedparent'><a class='marginalized' href='#unary.ops-8'>8</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L4850'>#</a></div><div class='texpara'><div id='unary.ops-8.sentence-1' class='sentence'><i >Remarks</i>: The expression in the <span class='textsf'><i >requires-clause</i></span> is equivalent to:
</code></div></div></div></div></div></div><div class='para' id='unary.ops-7'><div class='marginalizedparent'><a class='marginalized' href='#unary.ops-7'>7</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L4845'>#</a></div><div class='texpara'><div id='unary.ops-7.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
<span class='texttt'><span class='keyword'>return</span> <span class='operator'>&#x200b;::&#x200b;</span>mp_<span class='shy'></span>units<span class='operator'>&#x200b;::&#x200b;</span>quantity<span class='curlybracket'>{</span><span class='texttt'><i >numerical-value</i></span>@, reference<span class='curlybracket'>}</span>;</span></div></div></div></div><div class='para' id='unary.ops-8'><div class='marginalizedparent'><a class='marginalized' href='#unary.ops-8'>8</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L4850'>#</a></div><div class='texpara'><div id='unary.ops-8.sentence-1' class='sentence'><i >Remarks</i>: The expression in the <span class='textsf'><i >requires-clause</i></span> is equivalent to:
<span class='codeblock'><span class='keyword'>requires</span><span class='parenthesis'>(</span>rep<span class='operator'>&amp;</span> v<span class='parenthesis'>)</span> <span class='curlybracket'>{</span>
<span class='curlybracket'>{</span> v@ <span class='curlybracket'>}</span> <span class='operator'>-</span><span class='anglebracket'>&gt;</span> std<span class='operator'>::</span>common_with<span class='anglebracket'>&lt;</span>rep<span class='anglebracket'>&gt;</span>;
<span class='curlybracket'>}</span>
</span></div></div></div></div></div><div id='assign.ops' class='section'><h3 ><a class='secnum' href='#assign.ops' style='min-width:80pt'>5.6.10</a> Compound assignment operations <a class='abbr_ref' href='qty.assign.ops.html'>[qty.assign.ops]</a></h3><div class='para' id='assign.ops-1'><div class='marginalizedparent'><a class='marginalized' href='#assign.ops-1'>1</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L4862'>#</a></div><div class='texpara'><div id='assign.ops-1.sentence-1' class='sentence'>In the following descriptions,
</span></div></div></div></div></div><div id='assign.ops' class='section'><h3 ><a class='secnum' href='#assign.ops' style='min-width:80pt'>5.6.10</a> Compound assignment operations <a class='abbr_ref' href='qty.assign.ops.html'>[qty.assign.ops]</a></h3><div class='para' id='assign.ops-1'><div class='marginalizedparent'><a class='marginalized' href='#assign.ops-1'>1</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L4862'>#</a></div><div class='texpara'><div id='assign.ops-1.sentence-1' class='sentence'>In the following descriptions,
let <span class='texttt'>@</span> be the <span class='textsf'><i >operator</i></span><a class='hidden_link' href='#assign.ops-1.sentence-1'>.</a></div></div></div><div class='texpara'><div id='lib:quantity,operator%='><div id='lib:operator%=,quantity'><div id='lib:quantity,operator-='><div id='lib:operator-=,quantity'><div id='lib:quantity,operator+='><div id='lib:operator+=,quantity'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:operator+=,quantity'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><a class='index' id='conceptref:Mutable___________'></a><span class='texttt'><i >Mutable</i></span><span class='anglebracket'>&lt;</span>quantity<span class='anglebracket'>&gt;</span> Q, <span class='keyword'>auto</span> R2, <span class='keyword'>typename</span> Rep2<span class='anglebracket'>&gt;</span>
<span class='keyword'>requires</span> <i ><span class='texttt'>see below</span></i>
<span class='keyword'>friend</span> <span class='keyword'>constexpr</span> <span class='keyword'>decltype</span><span class='parenthesis'>(</span><span class='keyword'>auto</span><span class='parenthesis'>)</span> <span class='keyword'>operator</span><span class='operator'>+</span><span class='operator'>=</span><span class='parenthesis'>(</span>Q<span class='operator'>&amp;</span><span class='operator'>&amp;</span> lhs, <span class='keyword'>const</span> quantity<span class='anglebracket'>&lt;</span>R2, Rep2<span class='anglebracket'>&gt;</span><span class='operator'>&amp;</span> rhs<span class='parenthesis'>)</span>;
@ -486,23 +486,23 @@ let <span class='texttt'>@</span> be the <span class='textsf'><i >operator</i></
<span class='keyword'>template</span><span class='anglebracket'>&lt;</span><a class='index' id='conceptref:Mutable_____________'></a><span class='texttt'><i >Mutable</i></span><span class='anglebracket'>&lt;</span>quantity<span class='anglebracket'>&gt;</span> Q, <span class='keyword'>auto</span> R2, <span class='keyword'>typename</span> Rep2<span class='anglebracket'>&gt;</span>
<span class='keyword'>requires</span> <i ><span class='texttt'>see below</span></i>
<span class='keyword'>friend</span> <span class='keyword'>constexpr</span> <span class='keyword'>decltype</span><span class='parenthesis'>(</span><span class='keyword'>auto</span><span class='parenthesis'>)</span> <span class='keyword'>operator</span><span class='operator'>%</span><span class='operator'>=</span><span class='parenthesis'>(</span>Q<span class='operator'>&amp;</span><span class='operator'>&amp;</span> lhs, <span class='keyword'>const</span> quantity<span class='anglebracket'>&lt;</span>R2, Rep2<span class='anglebracket'>&gt;</span><span class='operator'>&amp;</span> rhs<span class='parenthesis'>)</span>;
</code></div></div></div></div></div></div></div></div><div class='para' id='assign.ops-2'><div class='marginalizedparent'><a class='marginalized' href='#assign.ops-2'>2</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L4882'>#</a></div><div class='texpara'><div id='assign.ops-2.sentence-1' class='sentence'><i >Preconditions</i>: If <span class='texttt'>@</span> is <span class='texttt'><span class='operator'>%</span><span class='operator'>=</span></span>, then <span class='texttt'>is_<span class='shy'></span>neq_<span class='shy'></span>zero<span class='parenthesis'>(</span>rhs<span class='parenthesis'>)</span></span> is <span class='texttt'><span class='literal'>true</span></span><a class='hidden_link' href='#assign.ops-2.sentence-1'>.</a></div></div></div></div><div class='para' id='assign.ops-3'><div class='marginalizedparent'><a class='marginalized' href='#assign.ops-3'>3</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L4886'>#</a></div><div class='texpara'><div id='assign.ops-3.sentence-1' class='sentence'><i >Effects</i>: Equivalent to
<span class='texttt'>lhs<span class='operator'>.</span><span class='texttt'><i >numerical-value</i></span> @ rhs<span class='operator'>.</span>in<span class='parenthesis'>(</span>lhs<span class='operator'>.</span>unit<span class='parenthesis'>)</span><span class='operator'>.</span><span class='texttt'><i >numerical-value</i></span></span><a class='hidden_link' href='#assign.ops-3.sentence-1'>.</a></div></div></div></div><div class='para' id='assign.ops-4'><div class='marginalizedparent'><a class='marginalized' href='#assign.ops-4'>4</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L4891'>#</a></div><div class='texpara'><div id='assign.ops-4.sentence-1' class='sentence'><i >Returns</i>: <span class='texttt'>std<span class='operator'>&#x200b;::&#x200b;</span>forward<span class='anglebracket'>&lt;</span>Q<span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span>lhs<span class='parenthesis'>)</span></span><a class='hidden_link' href='#assign.ops-4.sentence-1'>.</a></div></div></div></div><div class='para' id='assign.ops-5'><div class='marginalizedparent'><a class='marginalized' href='#assign.ops-5'>5</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L4895'>#</a></div><div class='texpara'><div id='assign.ops-5.sentence-1' class='sentence'><i >Remarks</i>: Let <i >C</i> be
</code></div></div></div></div></div></div></div></div><div class='para' id='assign.ops-2'><div class='marginalizedparent'><a class='marginalized' href='#assign.ops-2'>2</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L4882'>#</a></div><div class='texpara'><div id='assign.ops-2.sentence-1' class='sentence'><i >Preconditions</i>: If <span class='texttt'>@</span> is <span class='texttt'><span class='operator'>%</span><span class='operator'>=</span></span>, then <span class='texttt'>is_<span class='shy'></span>neq_<span class='shy'></span>zero<span class='parenthesis'>(</span>rhs<span class='parenthesis'>)</span></span> is <span class='texttt'><span class='literal'>true</span></span><a class='hidden_link' href='#assign.ops-2.sentence-1'>.</a></div></div></div></div><div class='para' id='assign.ops-3'><div class='marginalizedparent'><a class='marginalized' href='#assign.ops-3'>3</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L4886'>#</a></div><div class='texpara'><div id='assign.ops-3.sentence-1' class='sentence'><i >Effects</i>: Equivalent to
<span class='texttt'>lhs<span class='operator'>.</span><span class='texttt'><i >numerical-value</i></span> @ rhs<span class='operator'>.</span>in<span class='parenthesis'>(</span>lhs<span class='operator'>.</span>unit<span class='parenthesis'>)</span><span class='operator'>.</span><span class='texttt'><i >numerical-value</i></span></span><a class='hidden_link' href='#assign.ops-3.sentence-1'>.</a></div></div></div></div><div class='para' id='assign.ops-4'><div class='marginalizedparent'><a class='marginalized' href='#assign.ops-4'>4</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L4891'>#</a></div><div class='texpara'><div id='assign.ops-4.sentence-1' class='sentence'><i >Returns</i>: <span class='texttt'>std<span class='operator'>&#x200b;::&#x200b;</span>forward<span class='anglebracket'>&lt;</span>Q<span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span>lhs<span class='parenthesis'>)</span></span><a class='hidden_link' href='#assign.ops-4.sentence-1'>.</a></div></div></div></div><div class='para' id='assign.ops-5'><div class='marginalizedparent'><a class='marginalized' href='#assign.ops-5'>5</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L4895'>#</a></div><div class='texpara'><div id='assign.ops-5.sentence-1' class='sentence'><i >Remarks</i>: Let <i >C</i> be
<ul class='itemize'><li id='assign.ops-5.1'><div class='marginalizedparent' style='left:-39mm'><a class='marginalized' href='#assign.ops-5.1'>(5.1)</a></div><span class='texttt'><span class='parenthesis'>(</span><span class='operator'>!</span>treat_<span class='shy'></span>as_<span class='shy'></span>floating_<span class='shy'></span>point<span class='anglebracket'>&lt;</span>rep<span class='anglebracket'>&gt;</span><span class='parenthesis'>)</span></span> if <span class='texttt'>@</span> is <span class='texttt'><span class='operator'>%</span><span class='operator'>=</span></span>, and</li><li id='assign.ops-5.2'><div class='marginalizedparent' style='left:-39mm'><a class='marginalized' href='#assign.ops-5.2'>(5.2)</a></div><span class='texttt'><span class='literal'>true</span></span> otherwise<a class='hidden_link' href='#assign.ops-5.sentence-1'>.</a></li></ul></div> <div id='assign.ops-5.sentence-2' class='sentence'>
The expression in the <span class='textsf'><i >requires-clause</i></span> is equivalent to:
<span class='codeblock'><a class='index' id='conceptref:QuantityConvertibleTo________________'></a><i >QuantityConvertibleTo</i><span class='anglebracket'>&lt;</span>quantity<span class='anglebracket'>&lt;</span>R2, Rep2<span class='anglebracket'>&gt;</span>, quantity<span class='anglebracket'>&gt;</span> <span class='operator'>&amp;</span><span class='operator'>&amp;</span> <i >C</i> <span class='operator'>&amp;</span><span class='operator'>&amp;</span>
<span class='keyword'>requires</span><span class='parenthesis'>(</span>rep<span class='operator'>&amp;</span> a, <span class='keyword'>const</span> Rep2 b<span class='parenthesis'>)</span> <span class='curlybracket'>{</span>
<span class='curlybracket'>{</span> a @ b <span class='curlybracket'>}</span> <span class='operator'>-</span><span class='anglebracket'>&gt;</span> std<span class='operator'>::</span>same_as<span class='anglebracket'>&lt;</span>rep<span class='operator'>&amp;</span><span class='anglebracket'>&gt;</span>;
<span class='curlybracket'>}</span>
</span></div></div></div></div><div class='para' id='assign.ops-6'><div class='marginalizedparent'><a class='marginalized' href='#assign.ops-6'>6</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L4912'>#</a></div><div class='texpara'><div id='assign.ops-6.sentence-1' class='sentence'><i >Recommended practice</i>: If <span class='texttt'>equivalent<span class='parenthesis'>(</span>unit, get_<span class='shy'></span>unit<span class='parenthesis'>(</span>rhs<span class='operator'>.</span>reference<span class='parenthesis'>)</span><span class='parenthesis'>)</span></span> is <span class='texttt'><span class='literal'>true</span></span>,
</span></div></div></div></div><div class='para' id='assign.ops-6'><div class='marginalizedparent'><a class='marginalized' href='#assign.ops-6'>6</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L4912'>#</a></div><div class='texpara'><div id='assign.ops-6.sentence-1' class='sentence'><i >Recommended practice</i>: If <span class='texttt'>equivalent<span class='parenthesis'>(</span>unit, get_<span class='shy'></span>unit<span class='parenthesis'>(</span>rhs<span class='operator'>.</span>reference<span class='parenthesis'>)</span><span class='parenthesis'>)</span></span> is <span class='texttt'><span class='literal'>true</span></span>,
then the expression <span class='texttt'>rhs<span class='operator'>.</span>in<span class='parenthesis'>(</span>lhs<span class='operator'>.</span>unit<span class='parenthesis'>)</span></span> is replaced with <span class='texttt'>rhs</span><a class='hidden_link' href='#assign.ops-6.sentence-1'>.</a></div></div></div></div><div class='texpara'><div id='lib:quantity,operator/='><div id='lib:operator/=,quantity'><div id='lib:quantity,operator*='><div id='lib:operator*=,quantity'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:operator*=,quantity'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><a class='index' id='conceptref:Mutable______________'></a><span class='texttt'><i >Mutable</i></span><span class='anglebracket'>&lt;</span>quantity<span class='anglebracket'>&gt;</span> Q, <a class='index' id='conceptref:ValuePreservingTo______'></a><span class='texttt'><i >ValuePreservingTo</i></span><span class='anglebracket'>&lt;</span>Rep<span class='anglebracket'>&gt;</span> Value<span class='anglebracket'>&gt;</span>
<span class='keyword'>requires</span> <i ><span class='texttt'>see below</span></i>
<span class='keyword'>friend</span> <span class='keyword'>constexpr</span> <span class='keyword'>decltype</span><span class='parenthesis'>(</span><span class='keyword'>auto</span><span class='parenthesis'>)</span> <span class='keyword'>operator</span><span class='operator'>*</span><span class='operator'>=</span><span class='parenthesis'>(</span>Q<span class='operator'>&amp;</span><span class='operator'>&amp;</span> lhs, <span class='keyword'>const</span> Value<span class='operator'>&amp;</span> rhs<span class='parenthesis'>)</span>;
<span class='keyword'>template</span><span class='anglebracket'>&lt;</span><a class='index' id='conceptref:Mutable_______________'></a><span class='texttt'><i >Mutable</i></span><span class='anglebracket'>&lt;</span>quantity<span class='anglebracket'>&gt;</span> Q, <a class='index' id='conceptref:ValuePreservingTo_______'></a><span class='texttt'><i >ValuePreservingTo</i></span><span class='anglebracket'>&lt;</span>Rep<span class='anglebracket'>&gt;</span> Value<span class='anglebracket'>&gt;</span>
<span class='keyword'>requires</span> <i ><span class='texttt'>see below</span></i>
<span class='keyword'>friend</span> <span class='keyword'>constexpr</span> <span class='keyword'>decltype</span><span class='parenthesis'>(</span><span class='keyword'>auto</span><span class='parenthesis'>)</span> <span class='keyword'>operator</span><span class='operator'>/</span><span class='operator'>=</span><span class='parenthesis'>(</span>Q<span class='operator'>&amp;</span><span class='operator'>&amp;</span> lhs, <span class='keyword'>const</span> Value<span class='operator'>&amp;</span> rhs<span class='parenthesis'>)</span>;
</code></div></div></div></div></div></div><div class='para' id='assign.ops-7'><div class='marginalizedparent'><a class='marginalized' href='#assign.ops-7'>7</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L4930'>#</a></div><div class='texpara'><div id='assign.ops-7.sentence-1' class='sentence'><i >Preconditions</i>: If <span class='texttt'>@</span> is <span class='texttt'><span class='operator'>/</span><span class='operator'>=</span></span>, then <span class='texttt'>rhs <span class='operator'>!</span><span class='operator'>=</span> representation_<span class='shy'></span>values<span class='anglebracket'>&lt;</span>Value<span class='anglebracket'>&gt;</span><span class='operator'>&#x200b;::&#x200b;</span>zero<span class='parenthesis'>(</span><span class='parenthesis'>)</span></span> is <span class='texttt'><span class='literal'>true</span></span><a class='hidden_link' href='#assign.ops-7.sentence-1'>.</a></div></div></div></div><div class='para' id='assign.ops-8'><div class='marginalizedparent'><a class='marginalized' href='#assign.ops-8'>8</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L4934'>#</a></div><div class='texpara'><div id='assign.ops-8.sentence-1' class='sentence'><i >Effects</i>: Equivalent to
<span class='texttt'>lhs<span class='operator'>.</span><span class='texttt'><i >numerical-value</i></span> @ rhs</span><a class='hidden_link' href='#assign.ops-8.sentence-1'>.</a></div></div></div></div><div class='para' id='assign.ops-9'><div class='marginalizedparent'><a class='marginalized' href='#assign.ops-9'>9</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L4939'>#</a></div><div class='texpara'><div id='assign.ops-9.sentence-1' class='sentence'><i >Returns</i>: <span class='texttt'>std<span class='operator'>&#x200b;::&#x200b;</span>forward<span class='anglebracket'>&lt;</span>Q<span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span>lhs<span class='parenthesis'>)</span></span><a class='hidden_link' href='#assign.ops-9.sentence-1'>.</a></div></div></div></div><div class='para' id='assign.ops-10'><div class='marginalizedparent'><a class='marginalized' href='#assign.ops-10'>10</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L4943'>#</a></div><div class='texpara'><div id='assign.ops-10.sentence-1' class='sentence'><i >Remarks</i>: The expression in the <span class='textsf'><i >requires-clause</i></span> is equivalent to:
</code></div></div></div></div></div></div><div class='para' id='assign.ops-7'><div class='marginalizedparent'><a class='marginalized' href='#assign.ops-7'>7</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L4930'>#</a></div><div class='texpara'><div id='assign.ops-7.sentence-1' class='sentence'><i >Preconditions</i>: If <span class='texttt'>@</span> is <span class='texttt'><span class='operator'>/</span><span class='operator'>=</span></span>, then <span class='texttt'>rhs <span class='operator'>!</span><span class='operator'>=</span> representation_<span class='shy'></span>values<span class='anglebracket'>&lt;</span>Value<span class='anglebracket'>&gt;</span><span class='operator'>&#x200b;::&#x200b;</span>zero<span class='parenthesis'>(</span><span class='parenthesis'>)</span></span> is <span class='texttt'><span class='literal'>true</span></span><a class='hidden_link' href='#assign.ops-7.sentence-1'>.</a></div></div></div></div><div class='para' id='assign.ops-8'><div class='marginalizedparent'><a class='marginalized' href='#assign.ops-8'>8</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L4934'>#</a></div><div class='texpara'><div id='assign.ops-8.sentence-1' class='sentence'><i >Effects</i>: Equivalent to
<span class='texttt'>lhs<span class='operator'>.</span><span class='texttt'><i >numerical-value</i></span> @ rhs</span><a class='hidden_link' href='#assign.ops-8.sentence-1'>.</a></div></div></div></div><div class='para' id='assign.ops-9'><div class='marginalizedparent'><a class='marginalized' href='#assign.ops-9'>9</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L4939'>#</a></div><div class='texpara'><div id='assign.ops-9.sentence-1' class='sentence'><i >Returns</i>: <span class='texttt'>std<span class='operator'>&#x200b;::&#x200b;</span>forward<span class='anglebracket'>&lt;</span>Q<span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span>lhs<span class='parenthesis'>)</span></span><a class='hidden_link' href='#assign.ops-9.sentence-1'>.</a></div></div></div></div><div class='para' id='assign.ops-10'><div class='marginalizedparent'><a class='marginalized' href='#assign.ops-10'>10</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L4943'>#</a></div><div class='texpara'><div id='assign.ops-10.sentence-1' class='sentence'><i >Remarks</i>: The expression in the <span class='textsf'><i >requires-clause</i></span> is equivalent to:
<span class='codeblock'><span class='parenthesis'>(</span><span class='operator'>!</span><a href='#concept:Quantity' title='5.6.3&emsp;Class template quantity&emsp;[qty.syn]'><span id='conceptref:Quantity________________________'><span class='tcode_in_codeblock'>Quantity</span></span></a><span class='anglebracket'>&lt;</span>Value<span class='anglebracket'>&gt;</span><span class='parenthesis'>)</span> <span class='operator'>&amp;</span><span class='operator'>&amp;</span> <span class='keyword'>requires</span><span class='parenthesis'>(</span>rep<span class='operator'>&amp;</span> a, <span class='keyword'>const</span> Value b<span class='parenthesis'>)</span> <span class='curlybracket'>{</span>
<span class='curlybracket'>{</span> a @ b <span class='curlybracket'>}</span> <span class='operator'>-</span><span class='anglebracket'>&gt;</span> std<span class='operator'>::</span>same_as<span class='anglebracket'>&lt;</span>rep<span class='operator'>&amp;</span><span class='anglebracket'>&gt;</span>;
<span class='curlybracket'>}</span>
@ -512,13 +512,13 @@ then the expression <span class='texttt'>rhs<span class='operator'>.</span>in<sp
<span class='keyword'>template</span><span class='anglebracket'>&lt;</span><a class='index' id='conceptref:Mutable_________________'></a><span class='texttt'><i >Mutable</i></span><span class='anglebracket'>&lt;</span>quantity<span class='anglebracket'>&gt;</span> Q, <a href='#concept:QuantityOf' title='5.6.3&emsp;Class template quantity&emsp;[qty.syn]'><span id='conceptref:QuantityOf__________________________'><span class='texttt'>QuantityOf</span></span></a><span class='anglebracket'>&lt;</span>dimensionless<span class='anglebracket'>&gt;</span> Q2<span class='anglebracket'>&gt;</span>
<span class='keyword'>requires</span> <i ><span class='texttt'>see below</span></i>
<span class='keyword'>friend</span> <span class='keyword'>constexpr</span> <span class='keyword'>decltype</span><span class='parenthesis'>(</span><span class='keyword'>auto</span><span class='parenthesis'>)</span> <span class='keyword'>operator</span><span class='operator'>/</span><span class='operator'>=</span><span class='parenthesis'>(</span>Q<span class='operator'>&amp;</span><span class='operator'>&amp;</span> lhs, <span class='keyword'>const</span> Q2<span class='operator'>&amp;</span> rhs<span class='parenthesis'>)</span>;
</code></div></div></div></div></div></div><div class='para' id='assign.ops-11'><div class='marginalizedparent'><a class='marginalized' href='#assign.ops-11'>11</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L4965'>#</a></div><div class='texpara'><div id='assign.ops-11.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
<span class='texttt'><span class='keyword'>return</span> std<span class='operator'>&#x200b;::&#x200b;</span>forward<span class='anglebracket'>&lt;</span>Q<span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span>lhs<span class='parenthesis'>)</span> @ rhs<span class='operator'>.</span><span class='texttt'><i >numerical-value</i></span>;</span></div></div></div></div><div class='para' id='assign.ops-12'><div class='marginalizedparent'><a class='marginalized' href='#assign.ops-12'>12</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L4970'>#</a></div><div class='texpara'><div id='assign.ops-12.sentence-1' class='sentence'><i >Remarks</i>: The expression in the <span class='textsf'><i >requires-clause</i></span> is equivalent to:
</code></div></div></div></div></div></div><div class='para' id='assign.ops-11'><div class='marginalizedparent'><a class='marginalized' href='#assign.ops-11'>11</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L4965'>#</a></div><div class='texpara'><div id='assign.ops-11.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
<span class='texttt'><span class='keyword'>return</span> std<span class='operator'>&#x200b;::&#x200b;</span>forward<span class='anglebracket'>&lt;</span>Q<span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span>lhs<span class='parenthesis'>)</span> @ rhs<span class='operator'>.</span><span class='texttt'><i >numerical-value</i></span>;</span></div></div></div></div><div class='para' id='assign.ops-12'><div class='marginalizedparent'><a class='marginalized' href='#assign.ops-12'>12</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L4970'>#</a></div><div class='texpara'><div id='assign.ops-12.sentence-1' class='sentence'><i >Remarks</i>: The expression in the <span class='textsf'><i >requires-clause</i></span> is equivalent to:
<span class='codeblock'><span class='parenthesis'>(</span>Q2<span class='operator'>::</span>unit <span class='operator'>=</span><span class='operator'>=</span> <span class='operator'>::</span>mp_units<span class='operator'>::</span>one<span class='parenthesis'>)</span> <span class='operator'>&amp;</span><span class='operator'>&amp;</span> <a class='index' id='conceptref:ValuePreservingTo________'></a><i >ValuePreservingTo</i><span class='anglebracket'>&lt;</span><span class='keyword'>typename</span> Q2<span class='operator'>::</span>rep, Rep<span class='anglebracket'>&gt;</span> <span class='operator'>&amp;</span><span class='operator'>&amp;</span>
<span class='keyword'>requires</span><span class='parenthesis'>(</span>rep<span class='operator'>&amp;</span> a, <span class='keyword'>const</span> Q2<span class='operator'>::</span>rep b<span class='parenthesis'>)</span> <span class='curlybracket'>{</span>
<span class='curlybracket'>{</span> a @ b <span class='curlybracket'>}</span> <span class='operator'>-</span><span class='anglebracket'>&gt;</span> std<span class='operator'>::</span>same_as<span class='anglebracket'>&lt;</span>rep<span class='operator'>&amp;</span><span class='anglebracket'>&gt;</span>;
<span class='curlybracket'>}</span>
</span></div></div></div></div></div><div id='arith.ops' class='section'><h3 ><a class='secnum' href='#arith.ops' style='min-width:80pt'>5.6.11</a> Arithmetic operations <a class='abbr_ref' href='qty.arith.ops.html'>[qty.arith.ops]</a></h3><div class='para' id='arith.ops-1'><div class='marginalizedparent'><a class='marginalized' href='#arith.ops-1'>1</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L4983'>#</a></div><div class='texpara'><div id='arith.ops-1.sentence-1' class='sentence'>In the following descriptions,
</span></div></div></div></div></div><div id='arith.ops' class='section'><h3 ><a class='secnum' href='#arith.ops' style='min-width:80pt'>5.6.11</a> Arithmetic operations <a class='abbr_ref' href='qty.arith.ops.html'>[qty.arith.ops]</a></h3><div class='para' id='arith.ops-1'><div class='marginalizedparent'><a class='marginalized' href='#arith.ops-1'>1</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L4983'>#</a></div><div class='texpara'><div id='arith.ops-1.sentence-1' class='sentence'>In the following descriptions,
let <span class='texttt'>@</span> be the <span class='textsf'><i >operator</i></span><a class='hidden_link' href='#arith.ops-1.sentence-1'>.</a></div></div></div><div class='texpara'><div id='lib:quantity,operator%'><div id='lib:operator%,quantity'><div id='lib:quantity,operator-_'><div id='lib:operator-,quantity_'><div id='lib:quantity,operator+_'><div id='lib:operator+,quantity_'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:operator+,quantity_'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span>std<span class='operator'>::</span>derived_from<span class='anglebracket'>&lt;</span>quantity<span class='anglebracket'>&gt;</span> Q, <span class='keyword'>auto</span> R2, <span class='keyword'>typename</span> Rep2<span class='anglebracket'>&gt;</span>
<span class='keyword'>requires</span> <a class='index' id='conceptref:CommonlyInvocableQuantities___'></a><span class='texttt'><i >CommonlyInvocableQuantities</i></span><span class='anglebracket'>&lt;</span>std<span class='operator'>::</span>plus<span class='anglebracket'>&lt;</span><span class='anglebracket'>&gt;</span>, quantity, quantity<span class='anglebracket'>&lt;</span>R2, Rep2<span class='anglebracket'>&gt;</span><span class='anglebracket'>&gt;</span>
<span class='keyword'>friend</span> <span class='keyword'>constexpr</span> <a href='#concept:Quantity' title='5.6.3&emsp;Class template quantity&emsp;[qty.syn]'><span id='conceptref:Quantity_________________________'><span class='texttt'>Quantity</span></span></a> <span class='keyword'>auto</span> <span class='keyword'>operator</span><span class='operator'>+</span><span class='parenthesis'>(</span><span class='keyword'>const</span> Q<span class='operator'>&amp;</span> lhs, <span class='keyword'>const</span> quantity<span class='anglebracket'>&lt;</span>R2, Rep2<span class='anglebracket'>&gt;</span><span class='operator'>&amp;</span> rhs<span class='parenthesis'>)</span>;
@ -529,7 +529,7 @@ let <span class='texttt'>@</span> be the <span class='textsf'><i >operator</i></
<span class='keyword'>requires</span><span class='parenthesis'>(</span><span class='operator'>!</span>treat_as_floating_point<span class='anglebracket'>&lt;</span>Rep<span class='anglebracket'>&gt;</span><span class='parenthesis'>)</span> <span class='operator'>&amp;</span><span class='operator'>&amp;</span> <span class='parenthesis'>(</span><span class='operator'>!</span>treat_as_floating_point<span class='anglebracket'>&lt;</span>Rep2<span class='anglebracket'>&gt;</span><span class='parenthesis'>)</span> <span class='operator'>&amp;</span><span class='operator'>&amp;</span>
<a class='index' id='conceptref:CommonlyInvocableQuantities_____'></a><span class='texttt'><i >CommonlyInvocableQuantities</i></span><span class='anglebracket'>&lt;</span>std<span class='operator'>::</span>modulus<span class='anglebracket'>&lt;</span><span class='anglebracket'>&gt;</span>, quantity, quantity<span class='anglebracket'>&lt;</span>R2, Rep2<span class='anglebracket'>&gt;</span><span class='anglebracket'>&gt;</span>
<span class='keyword'>friend</span> <span class='keyword'>constexpr</span> <a href='#concept:Quantity' title='5.6.3&emsp;Class template quantity&emsp;[qty.syn]'><span id='conceptref:Quantity___________________________'><span class='texttt'>Quantity</span></span></a> <span class='keyword'>auto</span> <span class='keyword'>operator</span><span class='operator'>%</span><span class='parenthesis'>(</span><span class='keyword'>const</span> Q<span class='operator'>&amp;</span> lhs, <span class='keyword'>const</span> quantity<span class='anglebracket'>&lt;</span>R2, Rep2<span class='anglebracket'>&gt;</span><span class='operator'>&amp;</span> rhs<span class='parenthesis'>)</span>;
</code></div></div></div></div></div></div></div></div><div class='para' id='arith.ops-2'><div class='marginalizedparent'><a class='marginalized' href='#arith.ops-2'>2</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L5004'>#</a></div><div class='texpara'><div id='arith.ops-2.sentence-1' class='sentence'>Let <i >F</i> be the first argument to <a class='index' id='conceptref:CommonlyInvocableQuantities______'></a><span class='texttt'><i >CommonlyInvocableQuantities</i></span><a class='hidden_link' href='#arith.ops-2.sentence-1'>.</a></div></div></div></div><div class='para' id='arith.ops-3'><div class='marginalizedparent'><a class='marginalized' href='#arith.ops-3'>3</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L5007'>#</a></div><div class='texpara'><div id='arith.ops-3.sentence-1' class='sentence'><i >Preconditions</i>: If <span class='texttt'>@</span> is <span class='texttt'><span class='operator'>%</span></span>, then <span class='texttt'>is_<span class='shy'></span>neq_<span class='shy'></span>zero<span class='parenthesis'>(</span>rhs<span class='parenthesis'>)</span></span> is <span class='texttt'><span class='literal'>true</span></span><a class='hidden_link' href='#arith.ops-3.sentence-1'>.</a></div></div></div></div><div class='para' id='arith.ops-4'><div class='marginalizedparent'><a class='marginalized' href='#arith.ops-4'>4</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L5011'>#</a></div><div class='texpara'><div id='arith.ops-4.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
</code></div></div></div></div></div></div></div></div><div class='para' id='arith.ops-2'><div class='marginalizedparent'><a class='marginalized' href='#arith.ops-2'>2</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L5004'>#</a></div><div class='texpara'><div id='arith.ops-2.sentence-1' class='sentence'>Let <i >F</i> be the first argument to <a class='index' id='conceptref:CommonlyInvocableQuantities______'></a><span class='texttt'><i >CommonlyInvocableQuantities</i></span><a class='hidden_link' href='#arith.ops-2.sentence-1'>.</a></div></div></div></div><div class='para' id='arith.ops-3'><div class='marginalizedparent'><a class='marginalized' href='#arith.ops-3'>3</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L5007'>#</a></div><div class='texpara'><div id='arith.ops-3.sentence-1' class='sentence'><i >Preconditions</i>: If <span class='texttt'>@</span> is <span class='texttt'><span class='operator'>%</span></span>, then <span class='texttt'>is_<span class='shy'></span>neq_<span class='shy'></span>zero<span class='parenthesis'>(</span>rhs<span class='parenthesis'>)</span></span> is <span class='texttt'><span class='literal'>true</span></span><a class='hidden_link' href='#arith.ops-3.sentence-1'>.</a></div></div></div></div><div class='para' id='arith.ops-4'><div class='marginalizedparent'><a class='marginalized' href='#arith.ops-4'>4</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L5011'>#</a></div><div class='texpara'><div id='arith.ops-4.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
<span class='codeblock'><span class='keyword'>using</span> ret <span class='operator'>=</span> <i >common-quantity-for</i><span class='anglebracket'>&lt;</span><i >F</i>, quantity, quantity<span class='anglebracket'>&lt;</span>R2, Rep2<span class='anglebracket'>&gt;</span><span class='anglebracket'>&gt;</span>;
<span class='keyword'>const</span> ret ret_lhs<span class='parenthesis'>(</span>lhs<span class='parenthesis'>)</span>;
<span class='keyword'>const</span> ret ret_rhs<span class='parenthesis'>(</span>rhs<span class='parenthesis'>)</span>;
@ -548,7 +548,7 @@ let <span class='texttt'>@</span> be the <span class='textsf'><i >operator</i></
<span class='keyword'>requires</span><span class='parenthesis'>(</span>Q<span class='operator'>::</span>unit <span class='operator'>=</span><span class='operator'>=</span> <span class='operator'>::</span>mp_units<span class='operator'>::</span>one<span class='parenthesis'>)</span> <span class='operator'>&amp;</span><span class='operator'>&amp;</span>
<a class='index' id='conceptref:InvokeResultOf_____________'></a><span class='texttt'><i >InvokeResultOf</i></span><span class='anglebracket'>&lt;</span>quantity_spec, std<span class='operator'>::</span>modulus<span class='anglebracket'>&lt;</span><span class='anglebracket'>&gt;</span>, Rep, <span class='keyword'>const</span> Value<span class='operator'>&amp;</span><span class='anglebracket'>&gt;</span>
<span class='keyword'>friend</span> <span class='keyword'>constexpr</span> <a href='#concept:Quantity' title='5.6.3&emsp;Class template quantity&emsp;[qty.syn]'><span id='conceptref:Quantity______________________________'><span class='texttt'>Quantity</span></span></a> <span class='keyword'>auto</span> <span class='keyword'>operator</span><span class='operator'>%</span><span class='parenthesis'>(</span><span class='keyword'>const</span> Q<span class='operator'>&amp;</span> lhs, <span class='keyword'>const</span> Value<span class='operator'>&amp;</span> rhs<span class='parenthesis'>)</span>;
</code></div></div></div></div></div></div></div></div><div class='para' id='arith.ops-5'><div class='marginalizedparent'><a class='marginalized' href='#arith.ops-5'>5</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L5043'>#</a></div><div class='texpara'><div id='arith.ops-5.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
</code></div></div></div></div></div></div></div></div><div class='para' id='arith.ops-5'><div class='marginalizedparent'><a class='marginalized' href='#arith.ops-5'>5</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L5043'>#</a></div><div class='texpara'><div id='arith.ops-5.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
<span class='texttt'><span class='keyword'>return</span> lhs @ <span class='operator'>&#x200b;::&#x200b;</span>mp_<span class='shy'></span>units<span class='operator'>&#x200b;::&#x200b;</span>quantity<span class='curlybracket'>{</span>rhs<span class='curlybracket'>}</span>;</span></div></div></div></div><div class='texpara'><div id='lib:quantity,operator%__'><div id='lib:operator%,quantity__'><div id='lib:quantity,operator-___'><div id='lib:operator-,quantity___'><div id='lib:quantity,operator+___'><div id='lib:operator+,quantity___'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:operator+,quantity___'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span>std<span class='operator'>::</span>derived_from<span class='anglebracket'>&lt;</span>quantity<span class='anglebracket'>&gt;</span> Q, <a href='qty.rep.concepts.html#concept:Representation' title='5.5.4&emsp;Concepts&emsp;[qty.rep.concepts]'><span id='conceptref:Representation_______________'><span class='texttt'>Representation</span></span></a> Value<span class='anglebracket'>&gt;</span>
<span class='keyword'>requires</span><span class='parenthesis'>(</span>Q<span class='operator'>::</span>unit <span class='operator'>=</span><span class='operator'>=</span> <span class='operator'>::</span>mp_units<span class='operator'>::</span>one<span class='parenthesis'>)</span> <span class='operator'>&amp;</span><span class='operator'>&amp;</span>
<a class='index' id='conceptref:InvokeResultOf______________'></a><span class='texttt'><i >InvokeResultOf</i></span><span class='anglebracket'>&lt;</span>quantity_spec, std<span class='operator'>::</span>plus<span class='anglebracket'>&lt;</span><span class='anglebracket'>&gt;</span>, Rep, <span class='keyword'>const</span> Value<span class='operator'>&amp;</span><span class='anglebracket'>&gt;</span>
@ -561,14 +561,14 @@ let <span class='texttt'>@</span> be the <span class='textsf'><i >operator</i></
<span class='keyword'>requires</span><span class='parenthesis'>(</span>Q<span class='operator'>::</span>unit <span class='operator'>=</span><span class='operator'>=</span> <span class='operator'>::</span>mp_units<span class='operator'>::</span>one<span class='parenthesis'>)</span> <span class='operator'>&amp;</span><span class='operator'>&amp;</span>
<a class='index' id='conceptref:InvokeResultOf________________'></a><span class='texttt'><i >InvokeResultOf</i></span><span class='anglebracket'>&lt;</span>quantity_spec, std<span class='operator'>::</span>modulus<span class='anglebracket'>&lt;</span><span class='anglebracket'>&gt;</span>, Rep, <span class='keyword'>const</span> Value<span class='operator'>&amp;</span><span class='anglebracket'>&gt;</span>
<span class='keyword'>friend</span> <span class='keyword'>constexpr</span> <a href='#concept:Quantity' title='5.6.3&emsp;Class template quantity&emsp;[qty.syn]'><span id='conceptref:Quantity_________________________________'><span class='texttt'>Quantity</span></span></a> <span class='keyword'>auto</span> <span class='keyword'>operator</span><span class='operator'>%</span><span class='parenthesis'>(</span><span class='keyword'>const</span> Value<span class='operator'>&amp;</span> lhs, <span class='keyword'>const</span> Q<span class='operator'>&amp;</span> rhs<span class='parenthesis'>)</span>;
</code></div></div></div></div></div></div></div></div><div class='para' id='arith.ops-6'><div class='marginalizedparent'><a class='marginalized' href='#arith.ops-6'>6</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L5068'>#</a></div><div class='texpara'><div id='arith.ops-6.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
</code></div></div></div></div></div></div></div></div><div class='para' id='arith.ops-6'><div class='marginalizedparent'><a class='marginalized' href='#arith.ops-6'>6</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L5068'>#</a></div><div class='texpara'><div id='arith.ops-6.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
<span class='texttt'><span class='keyword'>return</span> <span class='operator'>&#x200b;::&#x200b;</span>mp_<span class='shy'></span>units<span class='operator'>&#x200b;::&#x200b;</span>quantity<span class='curlybracket'>{</span>lhs<span class='curlybracket'>}</span> @ rhs;</span></div></div></div></div><div class='texpara'><div id='lib:quantity,operator/'><div id='lib:operator/,quantity'><div id='lib:quantity,operator*'><div id='lib:operator*,quantity'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:operator*,quantity'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span>std<span class='operator'>::</span>derived_from<span class='anglebracket'>&lt;</span>quantity<span class='anglebracket'>&gt;</span> Q, <span class='keyword'>auto</span> R2, <span class='keyword'>typename</span> Rep2<span class='anglebracket'>&gt;</span>
<span class='keyword'>requires</span> <a class='index' id='conceptref:InvocableQuantities___'></a><span class='texttt'><i >InvocableQuantities</i></span><span class='anglebracket'>&lt;</span>std<span class='operator'>::</span>multiplies<span class='anglebracket'>&lt;</span><span class='anglebracket'>&gt;</span>, quantity, quantity<span class='anglebracket'>&lt;</span>R2, Rep2<span class='anglebracket'>&gt;</span><span class='anglebracket'>&gt;</span>
<span class='keyword'>friend</span> <span class='keyword'>constexpr</span> <a href='#concept:Quantity' title='5.6.3&emsp;Class template quantity&emsp;[qty.syn]'><span id='conceptref:Quantity__________________________________'><span class='texttt'>Quantity</span></span></a> <span class='keyword'>auto</span> <span class='keyword'>operator</span><span class='operator'>*</span><span class='parenthesis'>(</span><span class='keyword'>const</span> Q<span class='operator'>&amp;</span> lhs, <span class='keyword'>const</span> quantity<span class='anglebracket'>&lt;</span>R2, Rep2<span class='anglebracket'>&gt;</span><span class='operator'>&amp;</span> rhs<span class='parenthesis'>)</span>;
<span class='keyword'>template</span><span class='anglebracket'>&lt;</span>std<span class='operator'>::</span>derived_from<span class='anglebracket'>&lt;</span>quantity<span class='anglebracket'>&gt;</span> Q, <span class='keyword'>auto</span> R2, <span class='keyword'>typename</span> Rep2<span class='anglebracket'>&gt;</span>
<span class='keyword'>requires</span> <a class='index' id='conceptref:InvocableQuantities____'></a><span class='texttt'><i >InvocableQuantities</i></span><span class='anglebracket'>&lt;</span>std<span class='operator'>::</span>divides<span class='anglebracket'>&lt;</span><span class='anglebracket'>&gt;</span>, quantity, quantity<span class='anglebracket'>&lt;</span>R2, Rep2<span class='anglebracket'>&gt;</span><span class='anglebracket'>&gt;</span>
<span class='keyword'>friend</span> <span class='keyword'>constexpr</span> <a href='#concept:Quantity' title='5.6.3&emsp;Class template quantity&emsp;[qty.syn]'><span id='conceptref:Quantity___________________________________'><span class='texttt'>Quantity</span></span></a> <span class='keyword'>auto</span> <span class='keyword'>operator</span><span class='operator'>/</span><span class='parenthesis'>(</span><span class='keyword'>const</span> Q<span class='operator'>&amp;</span> lhs, <span class='keyword'>const</span> quantity<span class='anglebracket'>&lt;</span>R2, Rep2<span class='anglebracket'>&gt;</span><span class='operator'>&amp;</span> rhs<span class='parenthesis'>)</span>;
</code></div></div></div></div></div></div><div class='para' id='arith.ops-7'><div class='marginalizedparent'><a class='marginalized' href='#arith.ops-7'>7</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L5086'>#</a></div><div class='texpara'><div id='arith.ops-7.sentence-1' class='sentence'><i >Preconditions</i>: If <span class='texttt'>@</span> is <span class='texttt'><span class='operator'>/</span></span>, then <span class='texttt'>is_<span class='shy'></span>neq_<span class='shy'></span>zero<span class='parenthesis'>(</span>rhs<span class='parenthesis'>)</span></span> is <span class='texttt'><span class='literal'>true</span></span><a class='hidden_link' href='#arith.ops-7.sentence-1'>.</a></div></div></div></div><div class='para' id='arith.ops-8'><div class='marginalizedparent'><a class='marginalized' href='#arith.ops-8'>8</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L5090'>#</a></div><div class='texpara'><div id='arith.ops-8.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
</code></div></div></div></div></div></div><div class='para' id='arith.ops-7'><div class='marginalizedparent'><a class='marginalized' href='#arith.ops-7'>7</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L5086'>#</a></div><div class='texpara'><div id='arith.ops-7.sentence-1' class='sentence'><i >Preconditions</i>: If <span class='texttt'>@</span> is <span class='texttt'><span class='operator'>/</span></span>, then <span class='texttt'>is_<span class='shy'></span>neq_<span class='shy'></span>zero<span class='parenthesis'>(</span>rhs<span class='parenthesis'>)</span></span> is <span class='texttt'><span class='literal'>true</span></span><a class='hidden_link' href='#arith.ops-7.sentence-1'>.</a></div></div></div></div><div class='para' id='arith.ops-8'><div class='marginalizedparent'><a class='marginalized' href='#arith.ops-8'>8</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L5090'>#</a></div><div class='texpara'><div id='arith.ops-8.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
<span class='codeblock'><span class='keyword'>return</span> <span class='operator'>::</span>mp_units<span class='operator'>::</span>quantity<span class='curlybracket'>{</span>
lhs<span class='operator'>.</span>numerical_value_ref_in<span class='parenthesis'>(</span>unit<span class='parenthesis'>)</span> @ rhs<span class='operator'>.</span>numerical_value_ref_in<span class='parenthesis'>(</span>rhs<span class='operator'>.</span>unit<span class='parenthesis'>)</span>, R @ R2<span class='curlybracket'>}</span>;
</span></div></div></div></div><div class='texpara'><div id='lib:quantity,operator/_'><div id='lib:operator/,quantity_'><div id='lib:quantity,operator*_'><div id='lib:operator*,quantity_'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:operator*,quantity_'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span>std<span class='operator'>::</span>derived_from<span class='anglebracket'>&lt;</span>quantity<span class='anglebracket'>&gt;</span> Q, <span class='keyword'>typename</span> Value<span class='anglebracket'>&gt;</span>
@ -579,7 +579,7 @@ let <span class='texttt'>@</span> be the <span class='textsf'><i >operator</i></
<span class='keyword'>requires</span><span class='parenthesis'>(</span><span class='operator'>!</span><a href='#concept:Quantity' title='5.6.3&emsp;Class template quantity&emsp;[qty.syn]'><span id='conceptref:Quantity_____________________________________'><span class='texttt'>Quantity</span></span></a><span class='anglebracket'>&lt;</span>Value<span class='anglebracket'>&gt;</span><span class='parenthesis'>)</span> <span class='operator'>&amp;</span><span class='operator'>&amp;</span> <span class='parenthesis'>(</span><span class='operator'>!</span><a href='qty.ref.concepts.html#concept:Reference' title='5.4.5&emsp;Concepts&emsp;[qty.ref.concepts]'><span id='conceptref:Reference____________'><span class='texttt'>Reference</span></span></a><span class='anglebracket'>&lt;</span>Value<span class='anglebracket'>&gt;</span><span class='parenthesis'>)</span> <span class='operator'>&amp;</span><span class='operator'>&amp;</span>
<a class='index' id='conceptref:InvokeResultOf__________________'></a><span class='texttt'><i >InvokeResultOf</i></span><span class='anglebracket'>&lt;</span>quantity_spec, std<span class='operator'>::</span>divides<span class='anglebracket'>&lt;</span><span class='anglebracket'>&gt;</span>, Rep, <span class='keyword'>const</span> Value<span class='operator'>&amp;</span><span class='anglebracket'>&gt;</span>
<span class='keyword'>friend</span> <span class='keyword'>constexpr</span> <a href='#concept:QuantityOf' title='5.6.3&emsp;Class template quantity&emsp;[qty.syn]'><span id='conceptref:QuantityOf____________________________'><span class='texttt'>QuantityOf</span></span></a><span class='anglebracket'>&lt;</span>quantity_spec<span class='anglebracket'>&gt;</span> <span class='keyword'>auto</span> <span class='keyword'>operator</span><span class='operator'>/</span><span class='parenthesis'>(</span><span class='keyword'>const</span> Q<span class='operator'>&amp;</span> lhs, <span class='keyword'>const</span> Value<span class='operator'>&amp;</span> rhs<span class='parenthesis'>)</span>;
</code></div></div></div></div></div></div><div class='para' id='arith.ops-9'><div class='marginalizedparent'><a class='marginalized' href='#arith.ops-9'>9</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L5113'>#</a></div><div class='texpara'><div id='arith.ops-9.sentence-1' class='sentence'><i >Preconditions</i>: If <span class='texttt'>@</span> is <span class='texttt'><span class='operator'>/</span></span>, then <span class='texttt'>rhs <span class='operator'>!</span><span class='operator'>=</span> representation_<span class='shy'></span>values<span class='anglebracket'>&lt;</span>Value<span class='anglebracket'>&gt;</span><span class='operator'>&#x200b;::&#x200b;</span>zero<span class='parenthesis'>(</span><span class='parenthesis'>)</span></span> is <span class='texttt'><span class='literal'>true</span></span><a class='hidden_link' href='#arith.ops-9.sentence-1'>.</a></div></div></div></div><div class='para' id='arith.ops-10'><div class='marginalizedparent'><a class='marginalized' href='#arith.ops-10'>10</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L5117'>#</a></div><div class='texpara'><div id='arith.ops-10.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
</code></div></div></div></div></div></div><div class='para' id='arith.ops-9'><div class='marginalizedparent'><a class='marginalized' href='#arith.ops-9'>9</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L5113'>#</a></div><div class='texpara'><div id='arith.ops-9.sentence-1' class='sentence'><i >Preconditions</i>: If <span class='texttt'>@</span> is <span class='texttt'><span class='operator'>/</span></span>, then <span class='texttt'>rhs <span class='operator'>!</span><span class='operator'>=</span> representation_<span class='shy'></span>values<span class='anglebracket'>&lt;</span>Value<span class='anglebracket'>&gt;</span><span class='operator'>&#x200b;::&#x200b;</span>zero<span class='parenthesis'>(</span><span class='parenthesis'>)</span></span> is <span class='texttt'><span class='literal'>true</span></span><a class='hidden_link' href='#arith.ops-9.sentence-1'>.</a></div></div></div></div><div class='para' id='arith.ops-10'><div class='marginalizedparent'><a class='marginalized' href='#arith.ops-10'>10</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L5117'>#</a></div><div class='texpara'><div id='arith.ops-10.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
<span class='codeblock'><span class='keyword'>return</span> <span class='operator'>::</span>mp_units<span class='operator'>::</span>quantity<span class='curlybracket'>{</span>lhs<span class='operator'>.</span>numerical_value_ref_in<span class='parenthesis'>(</span>unit<span class='parenthesis'>)</span> @ rhs, R<span class='curlybracket'>}</span>;
</span></div></div></div></div><div class='texpara'><div id='lib:quantity,operator/__'><div id='lib:operator/,quantity__'><div id='lib:quantity,operator*__'><div id='lib:operator*,quantity__'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:operator*,quantity__'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><span class='keyword'>typename</span> Value, std<span class='operator'>::</span>derived_from<span class='anglebracket'>&lt;</span>quantity<span class='anglebracket'>&gt;</span> Q<span class='anglebracket'>&gt;</span>
<span class='keyword'>requires</span><span class='parenthesis'>(</span><span class='operator'>!</span><a href='#concept:Quantity' title='5.6.3&emsp;Class template quantity&emsp;[qty.syn]'><span id='conceptref:Quantity______________________________________'><span class='texttt'>Quantity</span></span></a><span class='anglebracket'>&lt;</span>Value<span class='anglebracket'>&gt;</span><span class='parenthesis'>)</span> <span class='operator'>&amp;</span><span class='operator'>&amp;</span> <span class='parenthesis'>(</span><span class='operator'>!</span><a href='qty.ref.concepts.html#concept:Reference' title='5.4.5&emsp;Concepts&emsp;[qty.ref.concepts]'><span id='conceptref:Reference_____________'><span class='texttt'>Reference</span></span></a><span class='anglebracket'>&lt;</span>Value<span class='anglebracket'>&gt;</span><span class='parenthesis'>)</span> <span class='operator'>&amp;</span><span class='operator'>&amp;</span>
@ -589,23 +589,23 @@ let <span class='texttt'>@</span> be the <span class='textsf'><i >operator</i></
<span class='keyword'>requires</span><span class='parenthesis'>(</span><span class='operator'>!</span><a href='#concept:Quantity' title='5.6.3&emsp;Class template quantity&emsp;[qty.syn]'><span id='conceptref:Quantity_______________________________________'><span class='texttt'>Quantity</span></span></a><span class='anglebracket'>&lt;</span>Value<span class='anglebracket'>&gt;</span><span class='parenthesis'>)</span> <span class='operator'>&amp;</span><span class='operator'>&amp;</span> <span class='parenthesis'>(</span><span class='operator'>!</span><a href='qty.ref.concepts.html#concept:Reference' title='5.4.5&emsp;Concepts&emsp;[qty.ref.concepts]'><span id='conceptref:Reference______________'><span class='texttt'>Reference</span></span></a><span class='anglebracket'>&lt;</span>Value<span class='anglebracket'>&gt;</span><span class='parenthesis'>)</span> <span class='operator'>&amp;</span><span class='operator'>&amp;</span>
<a class='index' id='conceptref:InvokeResultOf____________________'></a><span class='texttt'><i >InvokeResultOf</i></span><span class='anglebracket'>&lt;</span>quantity_spec, std<span class='operator'>::</span>divides<span class='anglebracket'>&lt;</span><span class='anglebracket'>&gt;</span>, <span class='keyword'>const</span> Value<span class='operator'>&amp;</span>, Rep<span class='anglebracket'>&gt;</span>
<span class='keyword'>friend</span> <span class='keyword'>constexpr</span> <a href='#concept:Quantity' title='5.6.3&emsp;Class template quantity&emsp;[qty.syn]'><span id='conceptref:Quantity________________________________________'><span class='texttt'>Quantity</span></span></a> <span class='keyword'>auto</span> <span class='keyword'>operator</span><span class='operator'>/</span><span class='parenthesis'>(</span><span class='keyword'>const</span> Value<span class='operator'>&amp;</span> lhs, <span class='keyword'>const</span> Q<span class='operator'>&amp;</span> rhs<span class='parenthesis'>)</span>;
</code></div></div></div></div></div></div><div class='para' id='arith.ops-11'><div class='marginalizedparent'><a class='marginalized' href='#arith.ops-11'>11</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L5139'>#</a></div><div class='texpara'><div id='arith.ops-11.sentence-1' class='sentence'><i >Preconditions</i>: If <span class='texttt'>@</span> is <span class='texttt'><span class='operator'>/</span></span>, then <span class='texttt'>is_<span class='shy'></span>neq_<span class='shy'></span>zero<span class='parenthesis'>(</span>rhs<span class='parenthesis'>)</span></span> is <span class='texttt'><span class='literal'>true</span></span><a class='hidden_link' href='#arith.ops-11.sentence-1'>.</a></div></div></div></div><div class='para' id='arith.ops-12'><div class='marginalizedparent'><a class='marginalized' href='#arith.ops-12'>12</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L5143'>#</a></div><div class='texpara'><div id='arith.ops-12.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
</code></div></div></div></div></div></div><div class='para' id='arith.ops-11'><div class='marginalizedparent'><a class='marginalized' href='#arith.ops-11'>11</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L5139'>#</a></div><div class='texpara'><div id='arith.ops-11.sentence-1' class='sentence'><i >Preconditions</i>: If <span class='texttt'>@</span> is <span class='texttt'><span class='operator'>/</span></span>, then <span class='texttt'>is_<span class='shy'></span>neq_<span class='shy'></span>zero<span class='parenthesis'>(</span>rhs<span class='parenthesis'>)</span></span> is <span class='texttt'><span class='literal'>true</span></span><a class='hidden_link' href='#arith.ops-11.sentence-1'>.</a></div></div></div></div><div class='para' id='arith.ops-12'><div class='marginalizedparent'><a class='marginalized' href='#arith.ops-12'>12</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L5143'>#</a></div><div class='texpara'><div id='arith.ops-12.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
<span class='codeblock'><span class='keyword'>return</span> <span class='operator'>::</span>mp_units<span class='operator'>::</span>quantity<span class='curlybracket'>{</span>lhs @ rhs<span class='operator'>.</span>numerical_value_ref_in<span class='parenthesis'>(</span>unit<span class='parenthesis'>)</span>, <span class='operator'>::</span>mp_units<span class='operator'>::</span>one @ R<span class='curlybracket'>}</span>;
</span></div></div></div></div></div><div id='cmp' class='section'><h3 ><a class='secnum' href='#cmp' style='min-width:80pt'>5.6.12</a> Comparison <a class='abbr_ref' href='qty.cmp.html'>[qty.cmp]</a></h3><div class='para' id='cmp-1'><div class='marginalizedparent'><a class='marginalized' href='#cmp-1'>1</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L5153'>#</a></div><div class='texpara'><div id='cmp-1.sentence-1' class='sentence'>In the following descriptions,
</span></div></div></div></div></div><div id='cmp' class='section'><h3 ><a class='secnum' href='#cmp' style='min-width:80pt'>5.6.12</a> Comparison <a class='abbr_ref' href='qty.cmp.html'>[qty.cmp]</a></h3><div class='para' id='cmp-1'><div class='marginalizedparent'><a class='marginalized' href='#cmp-1'>1</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L5153'>#</a></div><div class='texpara'><div id='cmp-1.sentence-1' class='sentence'>In the following descriptions,
let <span class='texttt'>@</span> be the <span class='textsf'><i >operator</i></span><a class='hidden_link' href='#cmp-1.sentence-1'>.</a></div></div></div><div class='texpara'><div id='lib:quantity,operator<=>'><div id='lib:operator<=>,quantity'><div id='lib:quantity,operator=='><div id='lib:operator==,quantity'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:operator==,quantity'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span>std<span class='operator'>::</span>derived_from<span class='anglebracket'>&lt;</span>quantity<span class='anglebracket'>&gt;</span> Q, <span class='keyword'>auto</span> R2, <span class='keyword'>typename</span> Rep2<span class='anglebracket'>&gt;</span>
<span class='keyword'>requires</span> <i ><span class='texttt'>see below</span></i>
<span class='keyword'>friend</span> <span class='keyword'>constexpr</span> <span class='keyword'>bool</span> <span class='keyword'>operator</span><span class='operator'>=</span><span class='operator'>=</span><span class='parenthesis'>(</span><span class='keyword'>const</span> Q<span class='operator'>&amp;</span> lhs, <span class='keyword'>const</span> quantity<span class='anglebracket'>&lt;</span>R2, Rep2<span class='anglebracket'>&gt;</span><span class='operator'>&amp;</span> rhs<span class='parenthesis'>)</span>;
<span class='keyword'>template</span><span class='anglebracket'>&lt;</span>std<span class='operator'>::</span>derived_from<span class='anglebracket'>&lt;</span>quantity<span class='anglebracket'>&gt;</span> Q, <span class='keyword'>auto</span> R2, <span class='keyword'>typename</span> Rep2<span class='anglebracket'>&gt;</span>
<span class='keyword'>requires</span> <i ><span class='texttt'>see below</span></i>
<span class='keyword'>friend</span> <span class='keyword'>constexpr</span> <span class='keyword'>auto</span> <span class='keyword'>operator</span><span class='anglebracket'>&lt;</span><span class='operator'>=</span><span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span><span class='keyword'>const</span> Q<span class='operator'>&amp;</span> lhs, <span class='keyword'>const</span> quantity<span class='anglebracket'>&lt;</span>R2, Rep2<span class='anglebracket'>&gt;</span><span class='operator'>&amp;</span> rhs<span class='parenthesis'>)</span>;
</code></div></div></div></div></div></div><div class='para' id='cmp-2'><div class='marginalizedparent'><a class='marginalized' href='#cmp-2'>2</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L5169'>#</a></div><div class='texpara'><div id='cmp-2.sentence-1' class='sentence'>Let <i >C</i> be
</code></div></div></div></div></div></div><div class='para' id='cmp-2'><div class='marginalizedparent'><a class='marginalized' href='#cmp-2'>2</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L5169'>#</a></div><div class='texpara'><div id='cmp-2.sentence-1' class='sentence'>Let <i >C</i> be
<span class='texttt'>std<span class='operator'>&#x200b;::&#x200b;</span>equality_<span class='shy'></span>comparable</span> if <span class='texttt'>@</span> is <span class='texttt'><span class='operator'>=</span><span class='operator'>=</span></span>, and
<span class='texttt'>std<span class='operator'>&#x200b;::&#x200b;</span>three_<span class='shy'></span>way_<span class='shy'></span>comparable</span> if <span class='texttt'>@</span> is <span class='texttt'><span class='anglebracket'>&lt;</span><span class='operator'>=</span><span class='anglebracket'>&gt;</span></span><a class='hidden_link' href='#cmp-2.sentence-1'>.</a></div></div></div></div><div class='para' id='cmp-3'><div class='marginalizedparent'><a class='marginalized' href='#cmp-3'>3</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L5174'>#</a></div><div class='texpara'><div id='cmp-3.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
<span class='texttt'>std<span class='operator'>&#x200b;::&#x200b;</span>three_<span class='shy'></span>way_<span class='shy'></span>comparable</span> if <span class='texttt'>@</span> is <span class='texttt'><span class='anglebracket'>&lt;</span><span class='operator'>=</span><span class='anglebracket'>&gt;</span></span><a class='hidden_link' href='#cmp-2.sentence-1'>.</a></div></div></div></div><div class='para' id='cmp-3'><div class='marginalizedparent'><a class='marginalized' href='#cmp-3'>3</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L5174'>#</a></div><div class='texpara'><div id='cmp-3.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
<span class='codeblock'><span class='keyword'>using</span> ct <span class='operator'>=</span> std<span class='operator'>::</span>common_type_t<span class='anglebracket'>&lt;</span>quantity, quantity<span class='anglebracket'>&lt;</span>R2, Rep2<span class='anglebracket'>&gt;</span><span class='anglebracket'>&gt;</span>;
<span class='keyword'>const</span> ct ct_lhs<span class='parenthesis'>(</span>lhs<span class='parenthesis'>)</span>;
<span class='keyword'>const</span> ct ct_rhs<span class='parenthesis'>(</span>rhs<span class='parenthesis'>)</span>;
<span class='keyword'>return</span> ct_lhs<span class='operator'>.</span>numerical_value_ref_in<span class='parenthesis'>(</span>ct<span class='operator'>::</span>unit<span class='parenthesis'>)</span> @ ct_rhs<span class='operator'>.</span>numerical_value_ref_in<span class='parenthesis'>(</span>ct<span class='operator'>::</span>unit<span class='parenthesis'>)</span>;
</span></div></div></div></div><div class='para' id='cmp-4'><div class='marginalizedparent'><a class='marginalized' href='#cmp-4'>4</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L5184'>#</a></div><div class='texpara'><div id='cmp-4.sentence-1' class='sentence'><i >Remarks</i>: The expression in the <span class='textsf'><i >requires-clause</i></span> is equivalent to:
</span></div></div></div></div><div class='para' id='cmp-4'><div class='marginalizedparent'><a class='marginalized' href='#cmp-4'>4</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L5184'>#</a></div><div class='texpara'><div id='cmp-4.sentence-1' class='sentence'><i >Remarks</i>: The expression in the <span class='textsf'><i >requires-clause</i></span> is equivalent to:
<span class='codeblock'><span class='keyword'>requires</span> <span class='curlybracket'>{</span>
<span class='keyword'>typename</span> std<span class='operator'>::</span>common_type_t<span class='anglebracket'>&lt;</span>quantity, quantity<span class='anglebracket'>&lt;</span>R2, Rep2<span class='anglebracket'>&gt;</span><span class='anglebracket'>&gt;</span>;
<span class='curlybracket'>}</span> <span class='operator'>&amp;</span><span class='operator'>&amp;</span> <i >C</i><span class='anglebracket'>&lt;</span><span class='keyword'>typename</span> std<span class='operator'>::</span>common_type_t<span class='anglebracket'>&lt;</span>quantity, quantity<span class='anglebracket'>&lt;</span>R2, Rep2<span class='anglebracket'>&gt;</span><span class='anglebracket'>&gt;</span><span class='operator'>::</span>rep<span class='anglebracket'>&gt;</span>
@ -615,9 +615,9 @@ let <span class='texttt'>@</span> be the <span class='textsf'><i >operator</i></
<span class='keyword'>template</span><span class='anglebracket'>&lt;</span>std<span class='operator'>::</span>derived_from<span class='anglebracket'>&lt;</span>quantity<span class='anglebracket'>&gt;</span> Q, <a href='qty.rep.concepts.html#concept:Representation' title='5.5.4&emsp;Concepts&emsp;[qty.rep.concepts]'><span id='conceptref:Representation___________________'><span class='texttt'>Representation</span></span></a> Value<span class='anglebracket'>&gt;</span>
<span class='keyword'>requires</span> <i ><span class='texttt'>see below</span></i>
<span class='keyword'>friend</span> <span class='keyword'>constexpr</span> <span class='keyword'>auto</span> <span class='keyword'>operator</span><span class='anglebracket'>&lt;</span><span class='operator'>=</span><span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span><span class='keyword'>const</span> Q<span class='operator'>&amp;</span> lhs, <span class='keyword'>const</span> Value<span class='operator'>&amp;</span> rhs<span class='parenthesis'>)</span>;
</code></div></div></div></div></div></div><div class='para' id='cmp-5'><div class='marginalizedparent'><a class='marginalized' href='#cmp-5'>5</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L5206'>#</a></div><div class='texpara'><div id='cmp-5.sentence-1' class='sentence'>Let <i >C</i> be
</code></div></div></div></div></div></div><div class='para' id='cmp-5'><div class='marginalizedparent'><a class='marginalized' href='#cmp-5'>5</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L5206'>#</a></div><div class='texpara'><div id='cmp-5.sentence-1' class='sentence'>Let <i >C</i> be
<span class='texttt'>std<span class='operator'>&#x200b;::&#x200b;</span>equality_<span class='shy'></span>comparable_<span class='shy'></span>with</span> if <span class='texttt'>@</span> is <span class='texttt'><span class='operator'>=</span><span class='operator'>=</span></span>, and
<span class='texttt'>std<span class='operator'>&#x200b;::&#x200b;</span>three_<span class='shy'></span>way_<span class='shy'></span>comparable_<span class='shy'></span>with</span> if <span class='texttt'>@</span> is <span class='texttt'><span class='anglebracket'>&lt;</span><span class='operator'>=</span><span class='anglebracket'>&gt;</span></span><a class='hidden_link' href='#cmp-5.sentence-1'>.</a></div></div></div></div><div class='para' id='cmp-6'><div class='marginalizedparent'><a class='marginalized' href='#cmp-6'>6</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L5211'>#</a></div><div class='texpara'><div id='cmp-6.sentence-1' class='sentence'><i >Returns</i>: <span class='texttt'>lhs<span class='operator'>.</span>numerical_<span class='shy'></span>value_<span class='shy'></span>ref_<span class='shy'></span>in<span class='parenthesis'>(</span>unit<span class='parenthesis'>)</span> @ rhs</span><a class='hidden_link' href='#cmp-6.sentence-1'>.</a></div></div></div></div><div class='para' id='cmp-7'><div class='marginalizedparent'><a class='marginalized' href='#cmp-7'>7</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L5215'>#</a></div><div class='texpara'><div id='cmp-7.sentence-1' class='sentence'><i >Remarks</i>: The expression in the <span class='textsf'><i >requires-clause</i></span> is equivalent to:
<span class='texttt'>std<span class='operator'>&#x200b;::&#x200b;</span>three_<span class='shy'></span>way_<span class='shy'></span>comparable_<span class='shy'></span>with</span> if <span class='texttt'>@</span> is <span class='texttt'><span class='anglebracket'>&lt;</span><span class='operator'>=</span><span class='anglebracket'>&gt;</span></span><a class='hidden_link' href='#cmp-5.sentence-1'>.</a></div></div></div></div><div class='para' id='cmp-6'><div class='marginalizedparent'><a class='marginalized' href='#cmp-6'>6</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L5211'>#</a></div><div class='texpara'><div id='cmp-6.sentence-1' class='sentence'><i >Returns</i>: <span class='texttt'>lhs<span class='operator'>.</span>numerical_<span class='shy'></span>value_<span class='shy'></span>ref_<span class='shy'></span>in<span class='parenthesis'>(</span>unit<span class='parenthesis'>)</span> @ rhs</span><a class='hidden_link' href='#cmp-6.sentence-1'>.</a></div></div></div></div><div class='para' id='cmp-7'><div class='marginalizedparent'><a class='marginalized' href='#cmp-7'>7</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L5215'>#</a></div><div class='texpara'><div id='cmp-7.sentence-1' class='sentence'><i >Remarks</i>: The expression in the <span class='textsf'><i >requires-clause</i></span> is equivalent to:
<span class='codeblock'><span class='parenthesis'>(</span>Q<span class='operator'>::</span>unit <span class='operator'>=</span><span class='operator'>=</span> <span class='operator'>::</span>mp_units<span class='operator'>::</span>one<span class='parenthesis'>)</span> <span class='operator'>&amp;</span><span class='operator'>&amp;</span> <i >C</i><span class='anglebracket'>&lt;</span>Rep, Value<span class='anglebracket'>&gt;</span>
</span></div></div></div></div></div><div id='val.cmp' class='section'><h3 ><a class='secnum' href='#val.cmp' style='min-width:80pt'>5.6.13</a> Value comparison <a class='abbr_ref' href='qty.val.cmp.html'>[qty.val.cmp]</a></h3><div class='texpara'><div id='lib:quantity,is_gteq_zero'><div id='lib:is_gteq_zero,quantity'><div id='lib:quantity,is_lteq_zero'><div id='lib:is_lteq_zero,quantity'><div id='lib:quantity,is_gt_zero'><div id='lib:is_gt_zero,quantity'><div id='lib:quantity,is_lt_zero'><div id='lib:is_lt_zero,quantity'><div id='lib:quantity,is_neq_zero'><div id='lib:is_neq_zero,quantity'><div id='lib:quantity,is_eq_zero'><div id='lib:is_eq_zero,quantity'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:is_eq_zero,quantity'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>friend</span> <span class='keyword'>constexpr</span> <span class='keyword'>bool</span> is_eq_zero<span class='parenthesis'>(</span><span class='keyword'>const</span> quantity<span class='operator'>&amp;</span> q<span class='parenthesis'>)</span> <span class='keyword'>requires</span> <i ><span class='texttt'>see below</span></i>;
<span class='keyword'>friend</span> <span class='keyword'>constexpr</span> <span class='keyword'>bool</span> is_neq_zero<span class='parenthesis'>(</span><span class='keyword'>const</span> quantity<span class='operator'>&amp;</span> q<span class='parenthesis'>)</span> <span class='keyword'>requires</span> <i ><span class='texttt'>see below</span></i>;
@ -625,7 +625,7 @@ let <span class='texttt'>@</span> be the <span class='textsf'><i >operator</i></
<span class='keyword'>friend</span> <span class='keyword'>constexpr</span> <span class='keyword'>bool</span> is_gt_zero<span class='parenthesis'>(</span><span class='keyword'>const</span> quantity<span class='operator'>&amp;</span> q<span class='parenthesis'>)</span> <span class='keyword'>requires</span> <i ><span class='texttt'>see below</span></i>;
<span class='keyword'>friend</span> <span class='keyword'>constexpr</span> <span class='keyword'>bool</span> is_lteq_zero<span class='parenthesis'>(</span><span class='keyword'>const</span> quantity<span class='operator'>&amp;</span> q<span class='parenthesis'>)</span> <span class='keyword'>requires</span> <i ><span class='texttt'>see below</span></i>;
<span class='keyword'>friend</span> <span class='keyword'>constexpr</span> <span class='keyword'>bool</span> is_gteq_zero<span class='parenthesis'>(</span><span class='keyword'>const</span> quantity<span class='operator'>&amp;</span> q<span class='parenthesis'>)</span> <span class='keyword'>requires</span> <i ><span class='texttt'>see below</span></i>;
</code></div></div></div></div></div></div></div></div></div></div></div></div></div></div><div class='para' id='val.cmp-1'><div class='marginalizedparent'><a class='marginalized' href='#val.cmp-1'>1</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L5241'>#</a></div><div class='texpara'><div id='val.cmp-1.sentence-1' class='sentence'>Let <span class='texttt'>is_<span class='shy'></span><i >F</i>_<span class='shy'></span>zero</span> be the function name<a class='hidden_link' href='#val.cmp-1.sentence-1'>.</a></div></div></div></div><div class='para' id='val.cmp-2'><div class='marginalizedparent'><a class='marginalized' href='#val.cmp-2'>2</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L5244'>#</a></div><div class='texpara'><div id='val.cmp-2.sentence-1' class='sentence'><i >Returns</i>: <ul class='itemize'><li id='val.cmp-2.1'><div class='marginalizedparent' style='left:-39mm'><a class='marginalized' href='#val.cmp-2.1'>(2.1)</a></div><div class='texpara'><div id='val.cmp-2.1.sentence-1' class='sentence'>If <span class='texttt'><i >F</i></span> is <span class='texttt'>eq</span>, returns <span class='texttt'>q <span class='operator'>=</span><span class='operator'>=</span> zero<span class='parenthesis'>(</span><span class='parenthesis'>)</span></span><a class='hidden_link' href='#val.cmp-2.1.sentence-1'>.</a></div></div></li><li id='val.cmp-2.2'><div class='marginalizedparent' style='left:-39mm'><a class='marginalized' href='#val.cmp-2.2'>(2.2)</a></div><div class='texpara'><div id='val.cmp-2.2.sentence-1' class='sentence'>Otherwise, if <span class='texttt'><i >F</i></span> is <span class='texttt'>neq</span>, returns <span class='texttt'>q <span class='operator'>!</span><span class='operator'>=</span> zero<span class='parenthesis'>(</span><span class='parenthesis'>)</span></span><a class='hidden_link' href='#val.cmp-2.2.sentence-1'>.</a></div></div></li><li id='val.cmp-2.3'><div class='marginalizedparent' style='left:-39mm'><a class='marginalized' href='#val.cmp-2.3'>(2.3)</a></div><div class='texpara'><div id='val.cmp-2.3.sentence-1' class='sentence'>Otherwise, returns <span class='texttt'>is_<span class='shy'></span><i >F</i><span class='parenthesis'>(</span>q <span class='anglebracket'>&lt;</span><span class='operator'>=</span><span class='anglebracket'>&gt;</span> zero<span class='parenthesis'>(</span><span class='parenthesis'>)</span><span class='parenthesis'>)</span></span> (<a href="https://wg21.link/compare.syn">N4971, [compare.syn]</a>)<a class='hidden_link' href='#val.cmp-2.3.sentence-1'>.</a></div></div></li></ul></div></div></div></div><div class='para' id='val.cmp-3'><div class='marginalizedparent'><a class='marginalized' href='#val.cmp-3'>3</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L5255'>#</a></div><div class='texpara'><div id='val.cmp-3.sentence-1' class='sentence'><i >Remarks</i>: Let <i >C</i> be
</code></div></div></div></div></div></div></div></div></div></div></div></div></div></div><div class='para' id='val.cmp-1'><div class='marginalizedparent'><a class='marginalized' href='#val.cmp-1'>1</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L5241'>#</a></div><div class='texpara'><div id='val.cmp-1.sentence-1' class='sentence'>Let <span class='texttt'>is_<span class='shy'></span><i >F</i>_<span class='shy'></span>zero</span> be the function name<a class='hidden_link' href='#val.cmp-1.sentence-1'>.</a></div></div></div></div><div class='para' id='val.cmp-2'><div class='marginalizedparent'><a class='marginalized' href='#val.cmp-2'>2</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L5244'>#</a></div><div class='texpara'><div id='val.cmp-2.sentence-1' class='sentence'><i >Returns</i>: <ul class='itemize'><li id='val.cmp-2.1'><div class='marginalizedparent' style='left:-39mm'><a class='marginalized' href='#val.cmp-2.1'>(2.1)</a></div><div class='texpara'><div id='val.cmp-2.1.sentence-1' class='sentence'>If <span class='texttt'><i >F</i></span> is <span class='texttt'>eq</span>, returns <span class='texttt'>q <span class='operator'>=</span><span class='operator'>=</span> zero<span class='parenthesis'>(</span><span class='parenthesis'>)</span></span><a class='hidden_link' href='#val.cmp-2.1.sentence-1'>.</a></div></div></li><li id='val.cmp-2.2'><div class='marginalizedparent' style='left:-39mm'><a class='marginalized' href='#val.cmp-2.2'>(2.2)</a></div><div class='texpara'><div id='val.cmp-2.2.sentence-1' class='sentence'>Otherwise, if <span class='texttt'><i >F</i></span> is <span class='texttt'>neq</span>, returns <span class='texttt'>q <span class='operator'>!</span><span class='operator'>=</span> zero<span class='parenthesis'>(</span><span class='parenthesis'>)</span></span><a class='hidden_link' href='#val.cmp-2.2.sentence-1'>.</a></div></div></li><li id='val.cmp-2.3'><div class='marginalizedparent' style='left:-39mm'><a class='marginalized' href='#val.cmp-2.3'>(2.3)</a></div><div class='texpara'><div id='val.cmp-2.3.sentence-1' class='sentence'>Otherwise, returns <span class='texttt'>is_<span class='shy'></span><i >F</i><span class='parenthesis'>(</span>q <span class='anglebracket'>&lt;</span><span class='operator'>=</span><span class='anglebracket'>&gt;</span> zero<span class='parenthesis'>(</span><span class='parenthesis'>)</span><span class='parenthesis'>)</span></span> (<a href="https://wg21.link/compare.syn">N4971, [compare.syn]</a>)<a class='hidden_link' href='#val.cmp-2.3.sentence-1'>.</a></div></div></li></ul></div></div></div></div><div class='para' id='val.cmp-3'><div class='marginalizedparent'><a class='marginalized' href='#val.cmp-3'>3</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L5255'>#</a></div><div class='texpara'><div id='val.cmp-3.sentence-1' class='sentence'><i >Remarks</i>: Let <i >C</i> be
<span class='texttt'>std<span class='operator'>&#x200b;::&#x200b;</span>equality_<span class='shy'></span>comparable_<span class='shy'></span>with</span> if <i >F</i> is <span class='texttt'>eq</span> or <span class='texttt'>neq</span>, and
<span class='texttt'>std<span class='operator'>&#x200b;::&#x200b;</span>three_<span class='shy'></span>way_<span class='shy'></span>comparable_<span class='shy'></span>with</span> otherwise<a class='hidden_link' href='#val.cmp-3.sentence-1'>.</a></div> <div id='val.cmp-3.sentence-2' class='sentence'>The expression in the <span class='textsf'><i >requires-clause</i></span> is equivalent to:
<span class='codeblock'><span class='keyword'>requires</span> <span class='curlybracket'>{</span>
@ -644,21 +644,21 @@ let <span class='texttt'>@</span> be the <span class='textsf'><i >operator</i></
</span></span></div><div class='texpara'><div id='lib:delta_,operator()'><div id='lib:operator(),delta_'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:operator(),delta_'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><span class='keyword'>typename</span> FwdRep,
<a href='qty.rep.concepts.html#concept:RepresentationOf' title='5.5.4&emsp;Concepts&emsp;[qty.rep.concepts]'><span id='conceptref:RepresentationOf___________'><span class='texttt'>RepresentationOf</span></span></a><span class='anglebracket'>&lt;</span>get_quantity_spec<span class='parenthesis'>(</span>R<span class='curlybracket'>{</span><span class='curlybracket'>}</span><span class='parenthesis'>)</span><span class='anglebracket'>&gt;</span> Rep <span class='operator'>=</span> std<span class='operator'>::</span>remove_cvref_t<span class='anglebracket'>&lt;</span>FwdRep<span class='anglebracket'>&gt;</span><span class='anglebracket'>&gt;</span>
<span class='keyword'>constexpr</span> quantity<span class='anglebracket'>&lt;</span>R<span class='curlybracket'>{</span><span class='curlybracket'>}</span>, Rep<span class='anglebracket'>&gt;</span> <span class='keyword'>operator</span><span class='parenthesis'>(</span><span class='parenthesis'>)</span><span class='parenthesis'>(</span>FwdRep<span class='operator'>&amp;</span><span class='operator'>&amp;</span> lhs<span class='parenthesis'>)</span> <span class='keyword'>const</span>;
</code></div></div></div></div><div class='para' id='delta-1'><div class='marginalizedparent'><a class='marginalized' href='#delta-1'>1</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L5292'>#</a></div><div class='texpara'><div id='delta-1.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
</code></div></div></div></div><div class='para' id='delta-1'><div class='marginalizedparent'><a class='marginalized' href='#delta-1'>1</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L5292'>#</a></div><div class='texpara'><div id='delta-1.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
<span class='texttt'><span class='keyword'>return</span> quantity<span class='curlybracket'>{</span>std<span class='operator'>&#x200b;::&#x200b;</span>forward<span class='anglebracket'>&lt;</span>FwdRep<span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span>lhs<span class='parenthesis'>)</span>, R<span class='curlybracket'>{</span><span class='curlybracket'>}</span><span class='curlybracket'>}</span>;</span></div></div></div></div></div><div id='non.mem.conv' class='section'><h3 ><a class='secnum' href='#non.mem.conv' style='min-width:80pt'>5.6.15</a> Non-member conversions <a class='abbr_ref' href='qty.non.mem.conv.html'>[qty.non.mem.conv]</a></h3><div class='texpara'><div id='lib:sudo-cast,quantity'><div id='lib:quantity,sudo-cast'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:quantity,sudo-cast'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><a href='#concept:Quantity' title='5.6.3&emsp;Class template quantity&emsp;[qty.syn]'><span id='conceptref:Quantity_________________________________________'><span class='texttt'>Quantity</span></span></a> To, <span class='keyword'>typename</span> FwdFrom, <a href='#concept:Quantity' title='5.6.3&emsp;Class template quantity&emsp;[qty.syn]'><span id='conceptref:Quantity__________________________________________'><span class='texttt'>Quantity</span></span></a> From <span class='operator'>=</span> std<span class='operator'>::</span>remove_cvref_t<span class='anglebracket'>&lt;</span>FwdFrom<span class='anglebracket'>&gt;</span><span class='anglebracket'>&gt;</span>
<span class='keyword'>requires</span> <i ><span class='texttt'>see below</span></i>
<span class='keyword'>constexpr</span> To <span class='texttt'><i >sudo-cast</i></span><span class='parenthesis'>(</span>FwdFrom<span class='operator'>&amp;</span><span class='operator'>&amp;</span> q<span class='parenthesis'>)</span>; <span class='comment'>// <i >exposition only</i></span>
</code></div></div></div></div><div class='para' id='non.mem.conv-1'><div class='marginalizedparent'><a class='marginalized' href='#non.mem.conv-1'>1</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L5308'>#</a></div><div class='texpara'><div id='non.mem.conv-1.sentence-1' class='sentence'><i >Returns</i>: TBD<a class='hidden_link' href='#non.mem.conv-1.sentence-1'>.</a></div></div></div></div><div class='para' id='non.mem.conv-2'><div class='marginalizedparent'><a class='marginalized' href='#non.mem.conv-2'>2</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L5313'>#</a></div><div class='texpara'><div id='non.mem.conv-2.sentence-1' class='sentence'><span class='texttt'>value_<span class='shy'></span>cast</span> is an explicit cast that allows truncation<a class='hidden_link' href='#non.mem.conv-2.sentence-1'>.</a></div></div></div><div class='texpara'><div id='lib:quantity,value_cast'><div id='lib:value_cast,quantity'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:value_cast,quantity'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><a href='qty.unit.concepts.html#concept:Unit' title='5.4.4.4&emsp;Concepts&emsp;[qty.unit.concepts]'><span id='conceptref:Unit__________'><span class='texttt'>Unit</span></span></a> <span class='keyword'>auto</span> ToU, <span class='keyword'>typename</span> FwdQ, <a href='#concept:Quantity' title='5.6.3&emsp;Class template quantity&emsp;[qty.syn]'><span id='conceptref:Quantity___________________________________________'><span class='texttt'>Quantity</span></span></a> Q <span class='operator'>=</span> std<span class='operator'>::</span>remove_cvref_t<span class='anglebracket'>&lt;</span>FwdQ<span class='anglebracket'>&gt;</span><span class='anglebracket'>&gt;</span>
</code></div></div></div></div><div class='para' id='non.mem.conv-1'><div class='marginalizedparent'><a class='marginalized' href='#non.mem.conv-1'>1</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L5308'>#</a></div><div class='texpara'><div id='non.mem.conv-1.sentence-1' class='sentence'><i >Returns</i>: TBD<a class='hidden_link' href='#non.mem.conv-1.sentence-1'>.</a></div></div></div></div><div class='para' id='non.mem.conv-2'><div class='marginalizedparent'><a class='marginalized' href='#non.mem.conv-2'>2</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L5313'>#</a></div><div class='texpara'><div id='non.mem.conv-2.sentence-1' class='sentence'><span class='texttt'>value_<span class='shy'></span>cast</span> is an explicit cast that allows truncation<a class='hidden_link' href='#non.mem.conv-2.sentence-1'>.</a></div></div></div><div class='texpara'><div id='lib:quantity,value_cast'><div id='lib:value_cast,quantity'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:value_cast,quantity'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><a href='qty.unit.concepts.html#concept:Unit' title='5.4.4.4&emsp;Concepts&emsp;[qty.unit.concepts]'><span id='conceptref:Unit__________'><span class='texttt'>Unit</span></span></a> <span class='keyword'>auto</span> ToU, <span class='keyword'>typename</span> FwdQ, <a href='#concept:Quantity' title='5.6.3&emsp;Class template quantity&emsp;[qty.syn]'><span id='conceptref:Quantity___________________________________________'><span class='texttt'>Quantity</span></span></a> Q <span class='operator'>=</span> std<span class='operator'>::</span>remove_cvref_t<span class='anglebracket'>&lt;</span>FwdQ<span class='anglebracket'>&gt;</span><span class='anglebracket'>&gt;</span>
<span class='keyword'>requires</span><span class='parenthesis'>(</span>convertible<span class='parenthesis'>(</span>Q<span class='operator'>::</span>reference, ToU<span class='parenthesis'>)</span><span class='parenthesis'>)</span>
<span class='keyword'>constexpr</span> <a href='#concept:Quantity' title='5.6.3&emsp;Class template quantity&emsp;[qty.syn]'><span id='conceptref:Quantity____________________________________________'><span class='texttt'>Quantity</span></span></a> <span class='keyword'>auto</span> value_cast<span class='parenthesis'>(</span>FwdQ<span class='operator'>&amp;</span><span class='operator'>&amp;</span> q<span class='parenthesis'>)</span>;
</code></div></div></div></div><div class='para' id='non.mem.conv-3'><div class='marginalizedparent'><a class='marginalized' href='#non.mem.conv-3'>3</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L5324'>#</a></div><div class='texpara'><div id='non.mem.conv-3.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
</code></div></div></div></div><div class='para' id='non.mem.conv-3'><div class='marginalizedparent'><a class='marginalized' href='#non.mem.conv-3'>3</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L5324'>#</a></div><div class='texpara'><div id='non.mem.conv-3.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
<span class='codeblock'><span class='keyword'>return</span> <i >sudo-cast</i><span class='anglebracket'>&lt;</span>quantity<span class='anglebracket'>&lt;</span><i >make-reference</i><span class='parenthesis'>(</span>Q<span class='operator'>::</span>quantity_spec, ToU<span class='parenthesis'>)</span>, <span class='keyword'>typename</span> Q<span class='operator'>::</span>rep<span class='anglebracket'>&gt;</span><span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span>
std<span class='operator'>::</span>forward<span class='anglebracket'>&lt;</span>FwdQ<span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span>q<span class='parenthesis'>)</span><span class='parenthesis'>)</span>;
</span></div></div></div></div><div class='texpara'><div id='lib:quantity,value_cast_'><div id='lib:value_cast,quantity_'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:value_cast,quantity_'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><a href='qty.rep.concepts.html#concept:Representation' title='5.5.4&emsp;Concepts&emsp;[qty.rep.concepts]'><span id='conceptref:Representation____________________'><span class='texttt'>Representation</span></span></a> ToRep, <span class='keyword'>typename</span> FwdQ, <a href='#concept:Quantity' title='5.6.3&emsp;Class template quantity&emsp;[qty.syn]'><span id='conceptref:Quantity_____________________________________________'><span class='texttt'>Quantity</span></span></a> Q <span class='operator'>=</span> std<span class='operator'>::</span>remove_cvref_t<span class='anglebracket'>&lt;</span>FwdQ<span class='anglebracket'>&gt;</span><span class='anglebracket'>&gt;</span>
<span class='keyword'>requires</span> <a href='qty.rep.concepts.html#concept:RepresentationOf' title='5.5.4&emsp;Concepts&emsp;[qty.rep.concepts]'><span id='conceptref:RepresentationOf____________'><span class='texttt'>RepresentationOf</span></span></a><span class='anglebracket'>&lt;</span>ToRep, Q<span class='operator'>::</span>quantity_spec<span class='anglebracket'>&gt;</span> <span class='operator'>&amp;</span><span class='operator'>&amp;</span>
std<span class='operator'>::</span>constructible_from<span class='anglebracket'>&lt;</span>ToRep, <span class='keyword'>typename</span> Q<span class='operator'>::</span>rep<span class='anglebracket'>&gt;</span>
<span class='keyword'>constexpr</span> quantity<span class='anglebracket'>&lt;</span>Q<span class='operator'>::</span>reference, ToRep<span class='anglebracket'>&gt;</span> value_cast<span class='parenthesis'>(</span>FwdQ<span class='operator'>&amp;</span><span class='operator'>&amp;</span> q<span class='parenthesis'>)</span>;
</code></div></div></div></div><div class='para' id='non.mem.conv-4'><div class='marginalizedparent'><a class='marginalized' href='#non.mem.conv-4'>4</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L5342'>#</a></div><div class='texpara'><div id='non.mem.conv-4.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
</code></div></div></div></div><div class='para' id='non.mem.conv-4'><div class='marginalizedparent'><a class='marginalized' href='#non.mem.conv-4'>4</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L5342'>#</a></div><div class='texpara'><div id='non.mem.conv-4.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
<span class='codeblock'><span class='keyword'>return</span> <i >sudo-cast</i><span class='anglebracket'>&lt;</span>quantity<span class='anglebracket'>&lt;</span>Q<span class='operator'>::</span>reference, ToRep<span class='anglebracket'>&gt;</span><span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span>std<span class='operator'>::</span>forward<span class='anglebracket'>&lt;</span>FwdQ<span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span>q<span class='parenthesis'>)</span><span class='parenthesis'>)</span>;
</span></div></div></div></div><div class='texpara'><div id='lib:quantity,value_cast__'><div id='lib:value_cast,quantity__'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:value_cast,quantity__'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><a href='qty.unit.concepts.html#concept:Unit' title='5.4.4.4&emsp;Concepts&emsp;[qty.unit.concepts]'><span id='conceptref:Unit___________'><span class='texttt'>Unit</span></span></a> <span class='keyword'>auto</span> ToU, <a href='qty.rep.concepts.html#concept:Representation' title='5.5.4&emsp;Concepts&emsp;[qty.rep.concepts]'><span id='conceptref:Representation_____________________'><span class='texttt'>Representation</span></span></a> ToRep, <span class='keyword'>typename</span> FwdQ,
<a href='#concept:Quantity' title='5.6.3&emsp;Class template quantity&emsp;[qty.syn]'><span id='conceptref:Quantity______________________________________________'><span class='texttt'>Quantity</span></span></a> Q <span class='operator'>=</span> std<span class='operator'>::</span>remove_cvref_t<span class='anglebracket'>&lt;</span>FwdQ<span class='anglebracket'>&gt;</span><span class='anglebracket'>&gt;</span>
@ -668,22 +668,22 @@ let <span class='texttt'>@</span> be the <span class='textsf'><i >operator</i></
<a href='#concept:Quantity' title='5.6.3&emsp;Class template quantity&emsp;[qty.syn]'><span id='conceptref:Quantity________________________________________________'><span class='texttt'>Quantity</span></span></a> Q <span class='operator'>=</span> std<span class='operator'>::</span>remove_cvref_t<span class='anglebracket'>&lt;</span>FwdQ<span class='anglebracket'>&gt;</span><span class='anglebracket'>&gt;</span>
<span class='keyword'>requires</span> <i ><span class='texttt'>see below</span></i>
<span class='keyword'>constexpr</span> <a href='#concept:Quantity' title='5.6.3&emsp;Class template quantity&emsp;[qty.syn]'><span id='conceptref:Quantity_________________________________________________'><span class='texttt'>Quantity</span></span></a> <span class='keyword'>auto</span> value_cast<span class='parenthesis'>(</span>FwdQ<span class='operator'>&amp;</span><span class='operator'>&amp;</span> q<span class='parenthesis'>)</span>;
</code></div></div></div></div><div class='para' id='non.mem.conv-5'><div class='marginalizedparent'><a class='marginalized' href='#non.mem.conv-5'>5</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L5363'>#</a></div><div class='texpara'><div id='non.mem.conv-5.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
</code></div></div></div></div><div class='para' id='non.mem.conv-5'><div class='marginalizedparent'><a class='marginalized' href='#non.mem.conv-5'>5</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L5363'>#</a></div><div class='texpara'><div id='non.mem.conv-5.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
<span class='codeblock'><span class='keyword'>return</span> <i >sudo-cast</i><span class='anglebracket'>&lt;</span>quantity<span class='anglebracket'>&lt;</span><i >make-reference</i><span class='parenthesis'>(</span>Q<span class='operator'>::</span>quantity_spec, ToU<span class='parenthesis'>)</span>, ToRep<span class='anglebracket'>&gt;</span><span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span>
std<span class='operator'>::</span>forward<span class='anglebracket'>&lt;</span>FwdQ<span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span>q<span class='parenthesis'>)</span><span class='parenthesis'>)</span>;
</span></div></div></div></div><div class='para' id='non.mem.conv-6'><div class='marginalizedparent'><a class='marginalized' href='#non.mem.conv-6'>6</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L5371'>#</a></div><div class='texpara'><div id='non.mem.conv-6.sentence-1' class='sentence'><i >Remarks</i>: The expression in the <span class='textsf'><i >requires-clause</i></span> is equivalent to:
</span></div></div></div></div><div class='para' id='non.mem.conv-6'><div class='marginalizedparent'><a class='marginalized' href='#non.mem.conv-6'>6</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L5371'>#</a></div><div class='texpara'><div id='non.mem.conv-6.sentence-1' class='sentence'><i >Remarks</i>: The expression in the <span class='textsf'><i >requires-clause</i></span> is equivalent to:
<span class='codeblock'><span class='parenthesis'>(</span>convertible<span class='parenthesis'>(</span>Q<span class='operator'>::</span>reference, ToU<span class='parenthesis'>)</span><span class='parenthesis'>)</span> <span class='operator'>&amp;</span><span class='operator'>&amp;</span> <a href='qty.rep.concepts.html#concept:RepresentationOf' title='5.5.4&emsp;Concepts&emsp;[qty.rep.concepts]'><span id='conceptref:RepresentationOf_____________'><span class='tcode_in_codeblock'>RepresentationOf</span></span></a><span class='anglebracket'>&lt;</span>ToRep, Q<span class='operator'>::</span>quantity_spec<span class='anglebracket'>&gt;</span> <span class='operator'>&amp;</span><span class='operator'>&amp;</span>
std<span class='operator'>::</span>constructible_from<span class='anglebracket'>&lt;</span>ToRep, <span class='keyword'>typename</span> Q<span class='operator'>::</span>rep<span class='anglebracket'>&gt;</span>
</span></div></div></div></div><div class='texpara'><div id='lib:quantity,value_cast___'><div id='lib:value_cast,quantity___'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:value_cast,quantity___'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><a href='#concept:Quantity' title='5.6.3&emsp;Class template quantity&emsp;[qty.syn]'><span id='conceptref:Quantity__________________________________________________'><span class='texttt'>Quantity</span></span></a> ToQ, <span class='keyword'>typename</span> FwdQ, <a href='#concept:Quantity' title='5.6.3&emsp;Class template quantity&emsp;[qty.syn]'><span id='conceptref:Quantity___________________________________________________'><span class='texttt'>Quantity</span></span></a> Q <span class='operator'>=</span> std<span class='operator'>::</span>remove_cvref_t<span class='anglebracket'>&lt;</span>FwdQ<span class='anglebracket'>&gt;</span><span class='anglebracket'>&gt;</span>
<span class='keyword'>requires</span><span class='parenthesis'>(</span>convertible<span class='parenthesis'>(</span>Q<span class='operator'>::</span>reference, ToQ<span class='operator'>::</span>unit<span class='parenthesis'>)</span><span class='parenthesis'>)</span> <span class='operator'>&amp;</span><span class='operator'>&amp;</span> <span class='parenthesis'>(</span>ToQ<span class='operator'>::</span>quantity_spec <span class='operator'>=</span><span class='operator'>=</span> Q<span class='operator'>::</span>quantity_spec<span class='parenthesis'>)</span> <span class='operator'>&amp;</span><span class='operator'>&amp;</span>
std<span class='operator'>::</span>constructible_from<span class='anglebracket'>&lt;</span><span class='keyword'>typename</span> ToQ<span class='operator'>::</span>rep, <span class='keyword'>typename</span> Q<span class='operator'>::</span>rep<span class='anglebracket'>&gt;</span>
<span class='keyword'>constexpr</span> <a href='#concept:Quantity' title='5.6.3&emsp;Class template quantity&emsp;[qty.syn]'><span id='conceptref:Quantity____________________________________________________'><span class='texttt'>Quantity</span></span></a> <span class='keyword'>auto</span> value_cast<span class='parenthesis'>(</span>FwdQ<span class='operator'>&amp;</span><span class='operator'>&amp;</span> q<span class='parenthesis'>)</span>;
</code></div></div></div></div><div class='para' id='non.mem.conv-7'><div class='marginalizedparent'><a class='marginalized' href='#non.mem.conv-7'>7</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L5389'>#</a></div><div class='texpara'><div id='non.mem.conv-7.sentence-1' class='sentence'><i >Effects</i>: Equivalent to: <span class='texttt'><span class='keyword'>return</span> <span class='texttt'><i >sudo-cast</i></span><span class='anglebracket'>&lt;</span>ToQ<span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span>std<span class='operator'>&#x200b;::&#x200b;</span>forward<span class='anglebracket'>&lt;</span>FwdQ<span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span>q<span class='parenthesis'>)</span><span class='parenthesis'>)</span>;</span></div></div></div></div><div class='para' id='non.mem.conv-8'><div class='marginalizedparent'><a class='marginalized' href='#non.mem.conv-8'>8</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L5394'>#</a></div><div class='texpara'><div id='non.mem.conv-8.sentence-1' class='sentence'><span class='texttt'>quantity_<span class='shy'></span>cast</span> is an explicit cast that allows converting to more specific quantities<a class='hidden_link' href='#non.mem.conv-8.sentence-1'>.</a></div> <div id='non.mem.conv-example-1' class='example'><div class='texpara'>[<i>Example&nbsp;<a href='#non.mem.conv-example-1'>1</a></i>:&ensp;<span class='codeblock'><span class='keyword'>auto</span> length <span class='operator'>=</span> isq<span class='operator'>::</span>length<span class='parenthesis'>(</span><span class='literal'>42</span> <span class='operator'>*</span> m<span class='parenthesis'>)</span>;
</code></div></div></div></div><div class='para' id='non.mem.conv-7'><div class='marginalizedparent'><a class='marginalized' href='#non.mem.conv-7'>7</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L5389'>#</a></div><div class='texpara'><div id='non.mem.conv-7.sentence-1' class='sentence'><i >Effects</i>: Equivalent to: <span class='texttt'><span class='keyword'>return</span> <span class='texttt'><i >sudo-cast</i></span><span class='anglebracket'>&lt;</span>ToQ<span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span>std<span class='operator'>&#x200b;::&#x200b;</span>forward<span class='anglebracket'>&lt;</span>FwdQ<span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span>q<span class='parenthesis'>)</span><span class='parenthesis'>)</span>;</span></div></div></div></div><div class='para' id='non.mem.conv-8'><div class='marginalizedparent'><a class='marginalized' href='#non.mem.conv-8'>8</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L5394'>#</a></div><div class='texpara'><div id='non.mem.conv-8.sentence-1' class='sentence'><span class='texttt'>quantity_<span class='shy'></span>cast</span> is an explicit cast that allows converting to more specific quantities<a class='hidden_link' href='#non.mem.conv-8.sentence-1'>.</a></div> <div id='non.mem.conv-example-1' class='example'><div class='texpara'>[<i>Example&nbsp;<a href='#non.mem.conv-example-1'>1</a></i>:&ensp;<span class='codeblock'><span class='keyword'>auto</span> length <span class='operator'>=</span> isq<span class='operator'>::</span>length<span class='parenthesis'>(</span><span class='literal'>42</span> <span class='operator'>*</span> m<span class='parenthesis'>)</span>;
<span class='keyword'>auto</span> distance <span class='operator'>=</span> quantity_cast<span class='anglebracket'>&lt;</span>isq<span class='operator'>::</span>distance<span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span>length<span class='parenthesis'>)</span>;
</span>&nbsp;<i>end example</i>]</div></div></div></div><div class='texpara'><div id='lib:quantity,quantity_cast'><div id='lib:quantity_cast,quantity'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:quantity_cast,quantity'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><a href='qty.spec.concepts.html#concept:QuantitySpec' title='5.4.3.2&emsp;Concepts&emsp;[qty.spec.concepts]'><span id='conceptref:QuantitySpec___'><span class='texttt'>QuantitySpec</span></span></a> <span class='keyword'>auto</span> ToQS, <span class='keyword'>typename</span> FwdQ, <a href='#concept:Quantity' title='5.6.3&emsp;Class template quantity&emsp;[qty.syn]'><span id='conceptref:Quantity_____________________________________________________'><span class='texttt'>Quantity</span></span></a> Q <span class='operator'>=</span> std<span class='operator'>::</span>remove_cvref_t<span class='anglebracket'>&lt;</span>FwdQ<span class='anglebracket'>&gt;</span><span class='anglebracket'>&gt;</span>
<span class='keyword'>requires</span> <a class='index' id='conceptref:QuantitySpecCastableTo'></a><span class='texttt'><i >QuantitySpecCastableTo</i></span><span class='anglebracket'>&lt;</span>Q<span class='operator'>::</span>quantity_spec, ToQS<span class='anglebracket'>&gt;</span>
<span class='keyword'>constexpr</span> <a href='#concept:Quantity' title='5.6.3&emsp;Class template quantity&emsp;[qty.syn]'><span id='conceptref:Quantity______________________________________________________'><span class='texttt'>Quantity</span></span></a> <span class='keyword'>auto</span> quantity_cast<span class='parenthesis'>(</span>FwdQ<span class='operator'>&amp;</span><span class='operator'>&amp;</span> q<span class='parenthesis'>)</span>;
</code></div></div></div></div><div class='para' id='non.mem.conv-9'><div class='marginalizedparent'><a class='marginalized' href='#non.mem.conv-9'>9</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L5411'>#</a></div><div class='texpara'><div id='non.mem.conv-9.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
</code></div></div></div></div><div class='para' id='non.mem.conv-9'><div class='marginalizedparent'><a class='marginalized' href='#non.mem.conv-9'>9</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L5411'>#</a></div><div class='texpara'><div id='non.mem.conv-9.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
<span class='codeblock'><span class='keyword'>return</span> quantity<span class='curlybracket'>{</span>std<span class='operator'>::</span>forward<span class='anglebracket'>&lt;</span>FwdQ<span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span>q<span class='parenthesis'>)</span><span class='operator'>.</span><i >numerical-value</i>, <i >make-reference</i><span class='parenthesis'>(</span>ToQS, Q<span class='operator'>::</span>unit<span class='parenthesis'>)</span><span class='curlybracket'>}</span>;
</span></div></div></div></div></div><div id='common.type' class='section'><h3 ><a class='secnum' href='#common.type' style='min-width:80pt'>5.6.16</a> <span class='texttt'>std&#x200b;::&#x200b;common_<span class='shy'></span>type</span> specializations <a class='abbr_ref' href='qty.common.type.html'>[qty.common.type]</a></h3><div class='texpara'><span class='codeblock'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span>mp_units<span class='operator'>::</span><a href='#concept:Quantity' title='5.6.3&emsp;Class template quantity&emsp;[qty.syn]'><span id='conceptref:Quantity_______________________________________________________'><span class='tcode_in_codeblock'>Quantity</span></span></a> Q1, mp_units<span class='operator'>::</span><a href='#concept:Quantity' title='5.6.3&emsp;Class template quantity&emsp;[qty.syn]'><span id='conceptref:Quantity________________________________________________________'><span class='tcode_in_codeblock'>Quantity</span></span></a> Q2<span class='anglebracket'>&gt;</span>
<span class='keyword'>requires</span> <span class='keyword'>requires</span> <span class='curlybracket'>{</span>

View File

@ -1,4 +1,4 @@
<!DOCTYPE html><html lang='en'><head><title>[qty.imag.cpo]</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.5</a> Representation <a class='abbr_ref' href='qty.rep.html#qty.imag.cpo'>[qty.rep]</a></h2><h3 ><a class='secnum' style='min-width:80pt'>5.5.3</a> Customization point objects <a class='abbr_ref' href='qty.rep.cpos.html#qty.imag.cpo'>[qty.rep.cpos]</a></h3><h4 ><a class='secnum' style='min-width:95pt'>5.5.3.3</a> <span class='texttt'>mp_<span class='shy'></span>units&#x200b;::&#x200b;imag</span> <a class='abbr_ref'>[qty.imag.cpo]</a></h4><div class='para' id='1'><div class='marginalizedparent'><a class='marginalized' href='#1'>1</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L3826'>#</a></div><div class='texpara'><div id='1.sentence-1' class='sentence'>The name <span class='texttt'>mp_<span class='shy'></span>units<span class='operator'>&#x200b;::&#x200b;</span>imag</span> denotes a customization point object (<a href="https://wg21.link/customization.point.object">N4971, [customization.point.object]</a>)<a class='hidden_link' href='#1.sentence-1'>.</a></div></div></div><div class='para' id='2'><div class='marginalizedparent'><a class='marginalized' href='#2'>2</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L3829'>#</a></div><div class='texpara'><div id='2.sentence-1' class='sentence'>Given a subexpression <span class='texttt'>E</span> with type <span class='texttt'>T</span>,
<!DOCTYPE html><html lang='en'><head><title>[qty.imag.cpo]</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.5</a> Representation <a class='abbr_ref' href='qty.rep.html#qty.imag.cpo'>[qty.rep]</a></h2><h3 ><a class='secnum' style='min-width:80pt'>5.5.3</a> Customization point objects <a class='abbr_ref' href='qty.rep.cpos.html#qty.imag.cpo'>[qty.rep.cpos]</a></h3><h4 ><a class='secnum' style='min-width:95pt'>5.5.3.3</a> <span class='texttt'>mp_<span class='shy'></span>units&#x200b;::&#x200b;imag</span> <a class='abbr_ref'>[qty.imag.cpo]</a></h4><div class='para' id='1'><div class='marginalizedparent'><a class='marginalized' href='#1'>1</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L3826'>#</a></div><div class='texpara'><div id='1.sentence-1' class='sentence'>The name <span class='texttt'>mp_<span class='shy'></span>units<span class='operator'>&#x200b;::&#x200b;</span>imag</span> denotes a customization point object (<a href="https://wg21.link/customization.point.object">N4971, [customization.point.object]</a>)<a class='hidden_link' href='#1.sentence-1'>.</a></div></div></div><div class='para' id='2'><div class='marginalizedparent'><a class='marginalized' href='#2'>2</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L3829'>#</a></div><div class='texpara'><div id='2.sentence-1' class='sentence'>Given a subexpression <span class='texttt'>E</span> with type <span class='texttt'>T</span>,
let <span class='texttt'>t</span> be an lvalue that denotes the reified object for <span class='texttt'>E</span><a class='hidden_link' href='#2.sentence-1'>.</a></div> <div id='2.sentence-2' class='sentence'>Then:
<ul class='itemize'><li id='2.1'><div class='marginalizedparent' style='left:-27mm'><a class='marginalized' href='#2.1'>(2.1)</a></div><div class='texpara'><div id='2.1.sentence-1' class='sentence'>If <span class='texttt'>T</span> does not model <a href='qty.rep.concepts.html#concept:WeaklyRegular' title='5.5.4&emsp;Concepts&emsp;[qty.rep.concepts]'><span id='conceptref:WeaklyRegular'><span class='texttt'><i >WeaklyRegular</i></span></span></a>,
<span class='texttt'>mp_<span class='shy'></span>units<span class='operator'>&#x200b;::&#x200b;</span>imag<span class='parenthesis'>(</span>E<span class='parenthesis'>)</span></span> is ill-formed<a class='hidden_link' href='#2.1.sentence-1'>.</a></div></div></li><li id='2.2'><div class='marginalizedparent' style='left:-27mm'><a class='marginalized' href='#2.2'>(2.2)</a></div><div class='texpara'><div id='2.2.sentence-1' class='sentence'>If <span class='texttt'><span class='keyword'>auto</span><span class='parenthesis'>(</span>t<span class='operator'>.</span>imag<span class='parenthesis'>(</span><span class='parenthesis'>)</span><span class='parenthesis'>)</span></span> is a valid expression whose type models <a href='qty.rep.concepts.html#concept:Scalar' title='5.5.4&emsp;Concepts&emsp;[qty.rep.concepts]'><span id='conceptref:Scalar'><span class='texttt'><i >Scalar</i></span></span></a>,

View File

@ -1,4 +1,4 @@
<!DOCTYPE html><html lang='en'><head><title>[qty.is.child.of]</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.is.child.of'>[qty.ref]</a></h2><h3 ><a class='secnum' style='min-width:80pt'>5.4.3</a> Quantity specification <a class='abbr_ref' href='qty.spec.html#qty.is.child.of'>[qty.spec]</a></h3><h4 ><a class='secnum' style='min-width:95pt'>5.4.3.6</a> Hierarchy algorithms <a class='abbr_ref' href='qty.spec.hier.algos.html#qty.is.child.of'>[qty.spec.hier.algos]</a></h4><h4 ><a class='secnum' style='min-width:110pt'>5.4.3.6.5</a> Is child of <a class='abbr_ref'>[qty.is.child.of]</a></h4><div class='texpara'><div id='lib:is-child-of,QuantitySpec'><div id='lib:QuantitySpec,is-child-of'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:QuantitySpec,is-child-of'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><a href='qty.spec.concepts.html#concept:QuantitySpec' title='5.4.3.2&emsp;Concepts&emsp;[qty.spec.concepts]'><span id='conceptref:QuantitySpec'><span class='texttt'>QuantitySpec</span></span></a> Child, <a href='qty.spec.concepts.html#concept:QuantitySpec' title='5.4.3.2&emsp;Concepts&emsp;[qty.spec.concepts]'><span id='conceptref:QuantitySpec_'><span class='texttt'>QuantitySpec</span></span></a> Parent<span class='anglebracket'>&gt;</span>
<span class='keyword'>consteval</span> <span class='keyword'>bool</span> <span class='texttt'><i >is-child-of</i></span><span class='parenthesis'>(</span>Child ch, Parent p<span class='parenthesis'>)</span>; <span class='comment'>// <i >exposition only</i></span>
</code></div></div></div></div><div class='para' id='1'><div class='marginalizedparent'><a class='marginalized' href='#1'>1</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L2262'>#</a></div><div class='texpara'><div id='1.sentence-1' class='sentence'><i >Returns</i>: If <span class='math'><span class='mathalpha'>h</span>(<span class='texttt'>p</span>)</span> has more elements than <span class='math'><span class='mathalpha'>h</span>(<span class='texttt'>ch</span>)</span>, returns <span class='texttt'><span class='literal'>false</span></span><a class='hidden_link' href='#1.sentence-1'>.</a></div> <div id='1.sentence-2' class='sentence'>Otherwise, let <span class='math'><span class='mathalpha'>C</span></span> be a tuple of the last <span class='math'><span class='mathalpha'>s</span></span> elements of <span class='math'><span class='mathalpha'>h</span>(<span class='texttt'>ch</span>)</span>,
</code></div></div></div></div><div class='para' id='1'><div class='marginalizedparent'><a class='marginalized' href='#1'>1</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L2262'>#</a></div><div class='texpara'><div id='1.sentence-1' class='sentence'><i >Returns</i>: If <span class='math'><span class='mathalpha'>h</span>(<span class='texttt'>p</span>)</span> has more elements than <span class='math'><span class='mathalpha'>h</span>(<span class='texttt'>ch</span>)</span>, returns <span class='texttt'><span class='literal'>false</span></span><a class='hidden_link' href='#1.sentence-1'>.</a></div> <div id='1.sentence-2' class='sentence'>Otherwise, let <span class='math'><span class='mathalpha'>C</span></span> be a tuple of the last <span class='math'><span class='mathalpha'>s</span></span> elements of <span class='math'><span class='mathalpha'>h</span>(<span class='texttt'>ch</span>)</span>,
where <span class='math'><span class='mathalpha'>s</span></span> is the number of elements in <span class='math'><span class='mathalpha'>h</span>(<span class='texttt'>p</span>)</span><a class='hidden_link' href='#1.sentence-2'>.</a></div> <div id='1.sentence-3' class='sentence'>Returns <span class='texttt'><span class="mjx-chtml"><span class="mjx-math"><span class="mjx-mrow" aria-hidden="true"><span class="mjx-msubsup"><span class="mjx-base" style="margin-right: -0.045em;"><span class="mjx-mi"><span class="mjx-char MJXc-TeX-math-I" style="padding-top: 0.519em; padding-bottom: 0.298em; padding-right: 0.045em;">C</span></span></span><span class="mjx-sub" style="font-size: 70.7%; vertical-align: -0.212em; padding-right: 0.071em;"><span class="mjx-mn"><span class="mjx-char MJXc-TeX-main-R" style="padding-top: 0.372em; padding-bottom: 0.372em;">0</span></span></span></span></span></span></span> <span class='operator'>=</span><span class='operator'>=</span> p</span><a class='hidden_link' href='#1.sentence-3'>.</a></div></div></div></div></div></body></html>

View File

@ -1,4 +1,4 @@
<!DOCTYPE html><html lang='en'><head><title>[qty.like]</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.6</a> Quantity <a class='abbr_ref' href='qty.html#like'>[qty]</a></h2><h3 ><a class='secnum' style='min-width:80pt'>5.6.2</a> Interoperability <a class='abbr_ref'>[qty.like]</a></h3><div class='para' id='1'><div class='marginalizedparent'><a class='marginalized' href='#1'>1</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L4070'>#</a></div><div class='texpara'><div id='1.sentence-1' class='sentence'>The interfaces specified in this subclause and subclause <a href='qty.pt.like.html' title='5.7.3&emsp;Interoperability'>[qty.<span class='shy'></span>pt.<span class='shy'></span>like]</a>
<!DOCTYPE html><html lang='en'><head><title>[qty.like]</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.6</a> Quantity <a class='abbr_ref' href='qty.html#like'>[qty]</a></h2><h3 ><a class='secnum' style='min-width:80pt'>5.6.2</a> Interoperability <a class='abbr_ref'>[qty.like]</a></h3><div class='para' id='1'><div class='marginalizedparent'><a class='marginalized' href='#1'>1</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L4070'>#</a></div><div class='texpara'><div id='1.sentence-1' class='sentence'>The interfaces specified in this subclause and subclause <a href='qty.pt.like.html' title='5.7.3&emsp;Interoperability'>[qty.<span class='shy'></span>pt.<span class='shy'></span>like]</a>
are used by <span class='texttt'>quantity</span> and <span class='texttt'>quantity_<span class='shy'></span>point</span>
to specify conversions with other types representing quantities<a class='hidden_link' href='#1.sentence-1'>.</a></div> <div id='note-1' class='note'><div class='texpara'>[<i>Note&nbsp;<a href='#note-1'>1</a></i>:&ensp;<div id='1.sentence-2' class='sentence'><a href='qty.chrono.html' title='5.9&emsp;std&#x200b;::&#x200b;chrono interoperability'>[qty.<span class='shy'></span>chrono]</a> implements them for <span class='texttt'>std<span class='operator'>&#x200b;::&#x200b;</span>chrono<span class='operator'>&#x200b;::&#x200b;</span>duration</span> and <span class='texttt'>std<span class='operator'>&#x200b;::&#x200b;</span>chrono<span class='operator'>&#x200b;::&#x200b;</span>time_<span class='shy'></span>point</span><a class='hidden_link' href='#1.sentence-2'>.</a></div>&nbsp;<i>end note</i>]</div></div></div></div><div class='texpara'><div class='itemdecl' id='itemdecl:1'><div class='marginalizedparent'><a class='itemDeclLink' href='#itemdecl:1'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><span class='keyword'>typename</span> T, <span class='keyword'>template</span><span class='anglebracket'>&lt;</span><span class='keyword'>typename</span><span class='anglebracket'>&gt;</span> <span class='keyword'>typename</span> Traits<span class='anglebracket'>&gt;</span>
<span class='keyword'>concept</span> <span class='texttt'><i >qty-like-impl</i></span><a class='index' id='concept:qty-like-impl'></a> <span class='operator'>=</span> <span class='keyword'>requires</span><span class='parenthesis'>(</span><span class='keyword'>const</span> T<span class='operator'>&amp;</span> qty, <span class='keyword'>const</span> Traits<span class='anglebracket'>&lt;</span>T<span class='anglebracket'>&gt;</span><span class='operator'>::</span>rep<span class='operator'>&amp;</span> num<span class='parenthesis'>)</span> <span class='curlybracket'>{</span> <span class='comment'>// <i >exposition only</i></span>
@ -14,7 +14,7 @@ to specify conversions with other types representing quantities<a class='hidden_
<span class='keyword'>concept</span> <a class='hidden_link' href='#concept:QuantityLike' title='5.6.2&emsp;Interoperability&emsp;[qty.like]'><span id='concept:QuantityLike'><span id='lib:QuantityLike'><span class='texttt'>QuantityLike</span></span></span></a> <span class='operator'>=</span> <span class='operator'>!</span><a href='qty.syn.html#concept:Quantity' title='5.6.3&emsp;Class template quantity&emsp;[qty.syn]'><span id='conceptref:Quantity'><span class='texttt'>Quantity</span></span></a><span class='anglebracket'>&lt;</span>T<span class='anglebracket'>&gt;</span> <span class='operator'>&amp;</span><span class='operator'>&amp;</span> <a class='index' id='conceptref:qty-like-impl'></a><span class='texttt'><i >qty-like-impl</i></span><span class='anglebracket'>&lt;</span>T, quantity_like_traits<span class='anglebracket'>&gt;</span> <span class='operator'>&amp;</span><span class='operator'>&amp;</span> <span class='keyword'>requires</span> <span class='curlybracket'>{</span>
<span class='keyword'>typename</span> quantity<span class='anglebracket'>&lt;</span>quantity_like_traits<span class='anglebracket'>&lt;</span>T<span class='anglebracket'>&gt;</span><span class='operator'>::</span>reference, <span class='keyword'>typename</span> quantity_like_traits<span class='anglebracket'>&lt;</span>T<span class='anglebracket'>&gt;</span><span class='operator'>::</span>rep<span class='anglebracket'>&gt;</span>;
<span class='curlybracket'>}</span>;
</code></div></div><div class='para' id='2'><div class='marginalizedparent'><a class='marginalized' href='#2'>2</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L4095'>#</a></div><div class='texpara'><div id='2.sentence-1' class='sentence'>In the following descriptions, let
<ul class='itemize'><li id='2.1'><div class='marginalizedparent' style='left:-27mm'><a class='marginalized' href='#2.1'>(2.1)</a></div><span class='texttt'>Traits</span> be <span class='texttt'>quantity_<span class='shy'></span>like_<span class='shy'></span>traits</span> or <span class='texttt'>quantity_<span class='shy'></span>point_<span class='shy'></span>like_<span class='shy'></span>traits</span>,</li><li id='2.2'><div class='marginalizedparent' style='left:-27mm'><a class='marginalized' href='#2.2'>(2.2)</a></div><span class='texttt'>Q</span> be a type for which <span class='texttt'>Traits<span class='anglebracket'>&lt;</span>Q<span class='anglebracket'>&gt;</span></span> is specialized,</li><li id='2.3'><div class='marginalizedparent' style='left:-27mm'><a class='marginalized' href='#2.3'>(2.3)</a></div><span class='texttt'>qty</span> be an lvalue of type <span class='texttt'><span class='keyword'>const</span> Q</span>, and</li><li id='2.4'><div class='marginalizedparent' style='left:-27mm'><a class='marginalized' href='#2.4'>(2.4)</a></div><span class='texttt'>num</span> be an lvalue of type <span class='texttt'><span class='keyword'>const</span> Traits<span class='anglebracket'>&lt;</span>Q<span class='anglebracket'>&gt;</span><span class='operator'>&#x200b;::&#x200b;</span>rep</span><a class='hidden_link' href='#2.sentence-1'>.</a></li></ul></div></div></div><div class='para' id='3'><div class='marginalizedparent'><a class='marginalized' href='#3'>3</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L4108'>#</a></div><div class='texpara'><div id='3.sentence-1' class='sentence'><span class='texttt'>Q</span> models <span class='texttt'><a class='index' id='conceptref:qty-like-impl_'></a><span class='texttt'><i >qty-like-impl</i></span><span class='anglebracket'>&lt;</span>Traits<span class='anglebracket'>&gt;</span></span> if and only if:
</code></div></div><div class='para' id='2'><div class='marginalizedparent'><a class='marginalized' href='#2'>2</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L4095'>#</a></div><div class='texpara'><div id='2.sentence-1' class='sentence'>In the following descriptions, let
<ul class='itemize'><li id='2.1'><div class='marginalizedparent' style='left:-27mm'><a class='marginalized' href='#2.1'>(2.1)</a></div><span class='texttt'>Traits</span> be <span class='texttt'>quantity_<span class='shy'></span>like_<span class='shy'></span>traits</span> or <span class='texttt'>quantity_<span class='shy'></span>point_<span class='shy'></span>like_<span class='shy'></span>traits</span>,</li><li id='2.2'><div class='marginalizedparent' style='left:-27mm'><a class='marginalized' href='#2.2'>(2.2)</a></div><span class='texttt'>Q</span> be a type for which <span class='texttt'>Traits<span class='anglebracket'>&lt;</span>Q<span class='anglebracket'>&gt;</span></span> is specialized,</li><li id='2.3'><div class='marginalizedparent' style='left:-27mm'><a class='marginalized' href='#2.3'>(2.3)</a></div><span class='texttt'>qty</span> be an lvalue of type <span class='texttt'><span class='keyword'>const</span> Q</span>, and</li><li id='2.4'><div class='marginalizedparent' style='left:-27mm'><a class='marginalized' href='#2.4'>(2.4)</a></div><span class='texttt'>num</span> be an lvalue of type <span class='texttt'><span class='keyword'>const</span> Traits<span class='anglebracket'>&lt;</span>Q<span class='anglebracket'>&gt;</span><span class='operator'>&#x200b;::&#x200b;</span>rep</span><a class='hidden_link' href='#2.sentence-1'>.</a></li></ul></div></div></div><div class='para' id='3'><div class='marginalizedparent'><a class='marginalized' href='#3'>3</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L4108'>#</a></div><div class='texpara'><div id='3.sentence-1' class='sentence'><span class='texttt'>Q</span> models <span class='texttt'><a class='index' id='conceptref:qty-like-impl_'></a><span class='texttt'><i >qty-like-impl</i></span><span class='anglebracket'>&lt;</span>Traits<span class='anglebracket'>&gt;</span></span> if and only if:
<ul class='itemize'><li id='3.1'><div class='marginalizedparent' style='left:-27mm'><a class='marginalized' href='#3.1'>(3.1)</a></div><div class='texpara'><div id='3.1.sentence-1' class='sentence'><span class='texttt'>Traits<span class='anglebracket'>&lt;</span>Q<span class='anglebracket'>&gt;</span><span class='operator'>&#x200b;::&#x200b;</span>to_<span class='shy'></span>numerical_<span class='shy'></span>value<span class='parenthesis'>(</span>qty<span class='parenthesis'>)</span></span> returns the numerical value (<a href="https://www.electropedia.org/iev/iev.nsf/display?openform&ievref=112-01-29">IEC 60050, 112-01-29</a>) of <span class='texttt'>qty</span><a class='hidden_link' href='#3.1.sentence-1'>.</a></div></div></li><li id='3.2'><div class='marginalizedparent' style='left:-27mm'><a class='marginalized' href='#3.2'>(3.2)</a></div><div class='texpara'><div id='3.2.sentence-1' class='sentence'><span class='texttt'>Traits<span class='anglebracket'>&lt;</span>Q<span class='anglebracket'>&gt;</span><span class='operator'>&#x200b;::&#x200b;</span>from_<span class='shy'></span>numerical_<span class='shy'></span>value<span class='parenthesis'>(</span>num<span class='parenthesis'>)</span></span> returns a <span class='texttt'>Q</span> with numerical value <span class='texttt'>num</span><a class='hidden_link' href='#3.2.sentence-1'>.</a></div></div></li><li id='3.3'><div class='marginalizedparent' style='left:-27mm'><a class='marginalized' href='#3.3'>(3.3)</a></div><div class='texpara'><div id='3.3.sentence-1' class='sentence'>If <span class='texttt'>Traits</span> is <span class='texttt'>quantity_<span class='shy'></span>point_<span class='shy'></span>like_<span class='shy'></span>traits</span>,
both numerical values are offset from <span class='texttt'>Traits<span class='anglebracket'>&lt;</span>Q<span class='anglebracket'>&gt;</span><span class='operator'>&#x200b;::&#x200b;</span>point_<span class='shy'></span>origin</span><a class='hidden_link' href='#3.3.sentence-1'>.</a></div></div></li></ul></div></div></div><div class='para' id='4'><div class='marginalizedparent'><a class='marginalized' href='#4'>4</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L4120'>#</a></div><div class='texpara'><div id='4.sentence-1' class='sentence'>If the following expression is <span class='texttt'><span class='literal'>true</span></span>, the specified conversion will be explicit<a class='hidden_link' href='#4.sentence-1'>.</a></div> <ul class='itemize'><li id='4.1'><div class='marginalizedparent' style='left:-27mm'><a class='marginalized' href='#4.1'>(4.1)</a></div><div class='texpara'><div id='4.1.sentence-1' class='sentence'><span class='texttt'>Traits<span class='anglebracket'>&lt;</span>Q<span class='anglebracket'>&gt;</span><span class='operator'>&#x200b;::&#x200b;</span>explicit_<span class='shy'></span>import</span> for the conversion from <span class='texttt'>Q</span> to this library's type<a class='hidden_link' href='#4.1.sentence-1'>.</a></div></div></li><li id='4.2'><div class='marginalizedparent' style='left:-27mm'><a class='marginalized' href='#4.2'>(4.2)</a></div><div class='texpara'><div id='4.2.sentence-1' class='sentence'><span class='texttt'>Traits<span class='anglebracket'>&lt;</span>Q<span class='anglebracket'>&gt;</span><span class='operator'>&#x200b;::&#x200b;</span>explicit_<span class='shy'></span>export</span> for the conversion from this library's type to <span class='texttt'>Q</span><a class='hidden_link' href='#4.2.sentence-1'>.</a></div></div></li></ul></div></div></div></body></html>
both numerical values are offset from <span class='texttt'>Traits<span class='anglebracket'>&lt;</span>Q<span class='anglebracket'>&gt;</span><span class='operator'>&#x200b;::&#x200b;</span>point_<span class='shy'></span>origin</span><a class='hidden_link' href='#3.3.sentence-1'>.</a></div></div></li></ul></div></div></div><div class='para' id='4'><div class='marginalizedparent'><a class='marginalized' href='#4'>4</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L4120'>#</a></div><div class='texpara'><div id='4.sentence-1' class='sentence'>If the following expression is <span class='texttt'><span class='literal'>true</span></span>, the specified conversion will be explicit<a class='hidden_link' href='#4.sentence-1'>.</a></div> <ul class='itemize'><li id='4.1'><div class='marginalizedparent' style='left:-27mm'><a class='marginalized' href='#4.1'>(4.1)</a></div><div class='texpara'><div id='4.1.sentence-1' class='sentence'><span class='texttt'>Traits<span class='anglebracket'>&lt;</span>Q<span class='anglebracket'>&gt;</span><span class='operator'>&#x200b;::&#x200b;</span>explicit_<span class='shy'></span>import</span> for the conversion from <span class='texttt'>Q</span> to this library's type<a class='hidden_link' href='#4.1.sentence-1'>.</a></div></div></li><li id='4.2'><div class='marginalizedparent' style='left:-27mm'><a class='marginalized' href='#4.2'>(4.2)</a></div><div class='texpara'><div id='4.2.sentence-1' class='sentence'><span class='texttt'>Traits<span class='anglebracket'>&lt;</span>Q<span class='anglebracket'>&gt;</span><span class='operator'>&#x200b;::&#x200b;</span>explicit_<span class='shy'></span>export</span> for the conversion from this library's type to <span class='texttt'>Q</span><a class='hidden_link' href='#4.2.sentence-1'>.</a></div></div></li></ul></div></div></div></body></html>

View File

@ -1,4 +1,4 @@
<!DOCTYPE html><html lang='en'><head><title>[qty.mag.cpo]</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.5</a> Representation <a class='abbr_ref' href='qty.rep.html#qty.mag.cpo'>[qty.rep]</a></h2><h3 ><a class='secnum' style='min-width:80pt'>5.5.3</a> Customization point objects <a class='abbr_ref' href='qty.rep.cpos.html#qty.mag.cpo'>[qty.rep.cpos]</a></h3><h4 ><a class='secnum' style='min-width:95pt'>5.5.3.5</a> <span class='texttt'>mp_<span class='shy'></span>units&#x200b;::&#x200b;magnitude</span> <a class='abbr_ref'>[qty.mag.cpo]</a></h4><div class='para' id='1'><div class='marginalizedparent'><a class='marginalized' href='#1'>1</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L3884'>#</a></div><div class='texpara'><div id='1.sentence-1' class='sentence'>The name <span class='texttt'>mp_<span class='shy'></span>units<span class='operator'>&#x200b;::&#x200b;</span>magnitude</span> denotes a customization point object (<a href="https://wg21.link/customization.point.object">N4971, [customization.point.object]</a>)<a class='hidden_link' href='#1.sentence-1'>.</a></div></div></div><div class='para' id='2'><div class='marginalizedparent'><a class='marginalized' href='#2'>2</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L3887'>#</a></div><div class='texpara'><div id='2.sentence-1' class='sentence'>Given a subexpression <span class='texttt'>E</span> with type <span class='texttt'>T</span>,
<!DOCTYPE html><html lang='en'><head><title>[qty.mag.cpo]</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.5</a> Representation <a class='abbr_ref' href='qty.rep.html#qty.mag.cpo'>[qty.rep]</a></h2><h3 ><a class='secnum' style='min-width:80pt'>5.5.3</a> Customization point objects <a class='abbr_ref' href='qty.rep.cpos.html#qty.mag.cpo'>[qty.rep.cpos]</a></h3><h4 ><a class='secnum' style='min-width:95pt'>5.5.3.5</a> <span class='texttt'>mp_<span class='shy'></span>units&#x200b;::&#x200b;magnitude</span> <a class='abbr_ref'>[qty.mag.cpo]</a></h4><div class='para' id='1'><div class='marginalizedparent'><a class='marginalized' href='#1'>1</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L3884'>#</a></div><div class='texpara'><div id='1.sentence-1' class='sentence'>The name <span class='texttt'>mp_<span class='shy'></span>units<span class='operator'>&#x200b;::&#x200b;</span>magnitude</span> denotes a customization point object (<a href="https://wg21.link/customization.point.object">N4971, [customization.point.object]</a>)<a class='hidden_link' href='#1.sentence-1'>.</a></div></div></div><div class='para' id='2'><div class='marginalizedparent'><a class='marginalized' href='#2'>2</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L3887'>#</a></div><div class='texpara'><div id='2.sentence-1' class='sentence'>Given a subexpression <span class='texttt'>E</span> with type <span class='texttt'>T</span>,
let <span class='texttt'>t</span> be an lvalue that denotes the reified object for <span class='texttt'>E</span><a class='hidden_link' href='#2.sentence-1'>.</a></div> <div id='2.sentence-2' class='sentence'>Then:
<ul class='itemize'><li id='2.1'><div class='marginalizedparent' style='left:-27mm'><a class='marginalized' href='#2.1'>(2.1)</a></div><div class='texpara'><div id='2.1.sentence-1' class='sentence'>If <span class='texttt'>T</span> does not model <a href='qty.rep.concepts.html#concept:WeaklyRegular' title='5.5.4&emsp;Concepts&emsp;[qty.rep.concepts]'><span id='conceptref:WeaklyRegular'><span class='texttt'><i >WeaklyRegular</i></span></span></a>,
<span class='texttt'>mp_<span class='shy'></span>units<span class='operator'>&#x200b;::&#x200b;</span>magnitude<span class='parenthesis'>(</span>E<span class='parenthesis'>)</span></span> is ill-formed<a class='hidden_link' href='#2.1.sentence-1'>.</a></div></div></li><li id='2.2'><div class='marginalizedparent' style='left:-27mm'><a class='marginalized' href='#2.2'>(2.2)</a></div><div class='texpara'><div id='2.2.sentence-1' class='sentence'>If <span class='texttt'><span class='keyword'>auto</span><span class='parenthesis'>(</span>t<span class='operator'>.</span>magnitude<span class='parenthesis'>(</span><span class='parenthesis'>)</span><span class='parenthesis'>)</span></span> is a valid expression whose type models <a href='qty.rep.concepts.html#concept:Scalar' title='5.5.4&emsp;Concepts&emsp;[qty.rep.concepts]'><span id='conceptref:Scalar'><span class='texttt'><i >Scalar</i></span></span></a>,

View File

@ -1,4 +1,4 @@
<!DOCTYPE html><html lang='en'><head><title>[qty.modulus.cpo]</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.5</a> Representation <a class='abbr_ref' href='qty.rep.html#qty.modulus.cpo'>[qty.rep]</a></h2><h3 ><a class='secnum' style='min-width:80pt'>5.5.3</a> Customization point objects <a class='abbr_ref' href='qty.rep.cpos.html#qty.modulus.cpo'>[qty.rep.cpos]</a></h3><h4 ><a class='secnum' style='min-width:95pt'>5.5.3.4</a> <span class='texttt'>mp_<span class='shy'></span>units&#x200b;::&#x200b;modulus</span> <a class='abbr_ref'>[qty.modulus.cpo]</a></h4><div class='para' id='1'><div class='marginalizedparent'><a class='marginalized' href='#1'>1</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L3851'>#</a></div><div class='texpara'><div id='1.sentence-1' class='sentence'>The name <span class='texttt'>mp_<span class='shy'></span>units<span class='operator'>&#x200b;::&#x200b;</span>modulus</span> denotes a customization point object (<a href="https://wg21.link/customization.point.object">N4971, [customization.point.object]</a>)<a class='hidden_link' href='#1.sentence-1'>.</a></div></div></div><div class='para' id='2'><div class='marginalizedparent'><a class='marginalized' href='#2'>2</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L3854'>#</a></div><div class='texpara'><div id='2.sentence-1' class='sentence'>Given a subexpression <span class='texttt'>E</span> with type <span class='texttt'>T</span>,
<!DOCTYPE html><html lang='en'><head><title>[qty.modulus.cpo]</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.5</a> Representation <a class='abbr_ref' href='qty.rep.html#qty.modulus.cpo'>[qty.rep]</a></h2><h3 ><a class='secnum' style='min-width:80pt'>5.5.3</a> Customization point objects <a class='abbr_ref' href='qty.rep.cpos.html#qty.modulus.cpo'>[qty.rep.cpos]</a></h3><h4 ><a class='secnum' style='min-width:95pt'>5.5.3.4</a> <span class='texttt'>mp_<span class='shy'></span>units&#x200b;::&#x200b;modulus</span> <a class='abbr_ref'>[qty.modulus.cpo]</a></h4><div class='para' id='1'><div class='marginalizedparent'><a class='marginalized' href='#1'>1</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L3851'>#</a></div><div class='texpara'><div id='1.sentence-1' class='sentence'>The name <span class='texttt'>mp_<span class='shy'></span>units<span class='operator'>&#x200b;::&#x200b;</span>modulus</span> denotes a customization point object (<a href="https://wg21.link/customization.point.object">N4971, [customization.point.object]</a>)<a class='hidden_link' href='#1.sentence-1'>.</a></div></div></div><div class='para' id='2'><div class='marginalizedparent'><a class='marginalized' href='#2'>2</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L3854'>#</a></div><div class='texpara'><div id='2.sentence-1' class='sentence'>Given a subexpression <span class='texttt'>E</span> with type <span class='texttt'>T</span>,
let <span class='texttt'>t</span> be an lvalue that denotes the reified object for <span class='texttt'>E</span><a class='hidden_link' href='#2.sentence-1'>.</a></div> <div id='2.sentence-2' class='sentence'>Then:
<ul class='itemize'><li id='2.1'><div class='marginalizedparent' style='left:-27mm'><a class='marginalized' href='#2.1'>(2.1)</a></div><div class='texpara'><div id='2.1.sentence-1' class='sentence'>If <span class='texttt'>T</span> does not model <a href='qty.rep.concepts.html#concept:WeaklyRegular' title='5.5.4&emsp;Concepts&emsp;[qty.rep.concepts]'><span id='conceptref:WeaklyRegular'><span class='texttt'><i >WeaklyRegular</i></span></span></a>,
<span class='texttt'>mp_<span class='shy'></span>units<span class='operator'>&#x200b;::&#x200b;</span>modulus<span class='parenthesis'>(</span>E<span class='parenthesis'>)</span></span> is ill-formed<a class='hidden_link' href='#2.1.sentence-1'>.</a></div></div></li><li id='2.2'><div class='marginalizedparent' style='left:-27mm'><a class='marginalized' href='#2.2'>(2.2)</a></div><div class='texpara'><div id='2.2.sentence-1' class='sentence'>If <span class='texttt'><span class='keyword'>auto</span><span class='parenthesis'>(</span>t<span class='operator'>.</span>modulus<span class='parenthesis'>(</span><span class='parenthesis'>)</span><span class='parenthesis'>)</span></span> is a valid expression whose type models <a href='qty.rep.concepts.html#concept:Scalar' title='5.5.4&emsp;Concepts&emsp;[qty.rep.concepts]'><span id='conceptref:Scalar'><span class='texttt'><i >Scalar</i></span></span></a>,

File diff suppressed because one or more lines are too long

View File

@ -1,17 +1,17 @@
<!DOCTYPE html><html lang='en'><head><title>[qty.non.mem.conv]</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.6</a> Quantity <a class='abbr_ref' href='qty.html#non.mem.conv'>[qty]</a></h2><h3 ><a class='secnum' style='min-width:80pt'>5.6.15</a> Non-member conversions <a class='abbr_ref'>[qty.non.mem.conv]</a></h3><div class='texpara'><div id='lib:sudo-cast,quantity'><div id='lib:quantity,sudo-cast'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:quantity,sudo-cast'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><a href='qty.syn.html#concept:Quantity' title='5.6.3&emsp;Class template quantity&emsp;[qty.syn]'><span id='conceptref:Quantity'><span class='texttt'>Quantity</span></span></a> To, <span class='keyword'>typename</span> FwdFrom, <a href='qty.syn.html#concept:Quantity' title='5.6.3&emsp;Class template quantity&emsp;[qty.syn]'><span id='conceptref:Quantity_'><span class='texttt'>Quantity</span></span></a> From <span class='operator'>=</span> std<span class='operator'>::</span>remove_cvref_t<span class='anglebracket'>&lt;</span>FwdFrom<span class='anglebracket'>&gt;</span><span class='anglebracket'>&gt;</span>
<span class='keyword'>requires</span> <i ><span class='texttt'>see below</span></i>
<span class='keyword'>constexpr</span> To <span class='texttt'><i >sudo-cast</i></span><span class='parenthesis'>(</span>FwdFrom<span class='operator'>&amp;</span><span class='operator'>&amp;</span> q<span class='parenthesis'>)</span>; <span class='comment'>// <i >exposition only</i></span>
</code></div></div></div></div><div class='para' id='1'><div class='marginalizedparent'><a class='marginalized' href='#1'>1</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L5308'>#</a></div><div class='texpara'><div id='1.sentence-1' class='sentence'><i >Returns</i>: TBD<a class='hidden_link' href='#1.sentence-1'>.</a></div></div></div></div><div class='para' id='2'><div class='marginalizedparent'><a class='marginalized' href='#2'>2</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L5313'>#</a></div><div class='texpara'><div id='2.sentence-1' class='sentence'><span class='texttt'>value_<span class='shy'></span>cast</span> is an explicit cast that allows truncation<a class='hidden_link' href='#2.sentence-1'>.</a></div></div></div><div class='texpara'><div id='lib:quantity,value_cast'><div id='lib:value_cast,quantity'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:value_cast,quantity'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><a href='qty.unit.concepts.html#concept:Unit' title='5.4.4.4&emsp;Concepts&emsp;[qty.unit.concepts]'><span id='conceptref:Unit'><span class='texttt'>Unit</span></span></a> <span class='keyword'>auto</span> ToU, <span class='keyword'>typename</span> FwdQ, <a href='qty.syn.html#concept:Quantity' title='5.6.3&emsp;Class template quantity&emsp;[qty.syn]'><span id='conceptref:Quantity__'><span class='texttt'>Quantity</span></span></a> Q <span class='operator'>=</span> std<span class='operator'>::</span>remove_cvref_t<span class='anglebracket'>&lt;</span>FwdQ<span class='anglebracket'>&gt;</span><span class='anglebracket'>&gt;</span>
</code></div></div></div></div><div class='para' id='1'><div class='marginalizedparent'><a class='marginalized' href='#1'>1</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L5308'>#</a></div><div class='texpara'><div id='1.sentence-1' class='sentence'><i >Returns</i>: TBD<a class='hidden_link' href='#1.sentence-1'>.</a></div></div></div></div><div class='para' id='2'><div class='marginalizedparent'><a class='marginalized' href='#2'>2</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L5313'>#</a></div><div class='texpara'><div id='2.sentence-1' class='sentence'><span class='texttt'>value_<span class='shy'></span>cast</span> is an explicit cast that allows truncation<a class='hidden_link' href='#2.sentence-1'>.</a></div></div></div><div class='texpara'><div id='lib:quantity,value_cast'><div id='lib:value_cast,quantity'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:value_cast,quantity'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><a href='qty.unit.concepts.html#concept:Unit' title='5.4.4.4&emsp;Concepts&emsp;[qty.unit.concepts]'><span id='conceptref:Unit'><span class='texttt'>Unit</span></span></a> <span class='keyword'>auto</span> ToU, <span class='keyword'>typename</span> FwdQ, <a href='qty.syn.html#concept:Quantity' title='5.6.3&emsp;Class template quantity&emsp;[qty.syn]'><span id='conceptref:Quantity__'><span class='texttt'>Quantity</span></span></a> Q <span class='operator'>=</span> std<span class='operator'>::</span>remove_cvref_t<span class='anglebracket'>&lt;</span>FwdQ<span class='anglebracket'>&gt;</span><span class='anglebracket'>&gt;</span>
<span class='keyword'>requires</span><span class='parenthesis'>(</span>convertible<span class='parenthesis'>(</span>Q<span class='operator'>::</span>reference, ToU<span class='parenthesis'>)</span><span class='parenthesis'>)</span>
<span class='keyword'>constexpr</span> <a href='qty.syn.html#concept:Quantity' title='5.6.3&emsp;Class template quantity&emsp;[qty.syn]'><span id='conceptref:Quantity___'><span class='texttt'>Quantity</span></span></a> <span class='keyword'>auto</span> value_cast<span class='parenthesis'>(</span>FwdQ<span class='operator'>&amp;</span><span class='operator'>&amp;</span> q<span class='parenthesis'>)</span>;
</code></div></div></div></div><div class='para' id='3'><div class='marginalizedparent'><a class='marginalized' href='#3'>3</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L5324'>#</a></div><div class='texpara'><div id='3.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
</code></div></div></div></div><div class='para' id='3'><div class='marginalizedparent'><a class='marginalized' href='#3'>3</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L5324'>#</a></div><div class='texpara'><div id='3.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
<span class='codeblock'><span class='keyword'>return</span> <i >sudo-cast</i><span class='anglebracket'>&lt;</span>quantity<span class='anglebracket'>&lt;</span><i >make-reference</i><span class='parenthesis'>(</span>Q<span class='operator'>::</span>quantity_spec, ToU<span class='parenthesis'>)</span>, <span class='keyword'>typename</span> Q<span class='operator'>::</span>rep<span class='anglebracket'>&gt;</span><span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span>
std<span class='operator'>::</span>forward<span class='anglebracket'>&lt;</span>FwdQ<span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span>q<span class='parenthesis'>)</span><span class='parenthesis'>)</span>;
</span></div></div></div></div><div class='texpara'><div id='lib:quantity,value_cast_'><div id='lib:value_cast,quantity_'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:value_cast,quantity_'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><a href='qty.rep.concepts.html#concept:Representation' title='5.5.4&emsp;Concepts&emsp;[qty.rep.concepts]'><span id='conceptref:Representation'><span class='texttt'>Representation</span></span></a> ToRep, <span class='keyword'>typename</span> FwdQ, <a href='qty.syn.html#concept:Quantity' title='5.6.3&emsp;Class template quantity&emsp;[qty.syn]'><span id='conceptref:Quantity____'><span class='texttt'>Quantity</span></span></a> Q <span class='operator'>=</span> std<span class='operator'>::</span>remove_cvref_t<span class='anglebracket'>&lt;</span>FwdQ<span class='anglebracket'>&gt;</span><span class='anglebracket'>&gt;</span>
<span class='keyword'>requires</span> <a href='qty.rep.concepts.html#concept:RepresentationOf' title='5.5.4&emsp;Concepts&emsp;[qty.rep.concepts]'><span id='conceptref:RepresentationOf'><span class='texttt'>RepresentationOf</span></span></a><span class='anglebracket'>&lt;</span>ToRep, Q<span class='operator'>::</span>quantity_spec<span class='anglebracket'>&gt;</span> <span class='operator'>&amp;</span><span class='operator'>&amp;</span>
std<span class='operator'>::</span>constructible_from<span class='anglebracket'>&lt;</span>ToRep, <span class='keyword'>typename</span> Q<span class='operator'>::</span>rep<span class='anglebracket'>&gt;</span>
<span class='keyword'>constexpr</span> quantity<span class='anglebracket'>&lt;</span>Q<span class='operator'>::</span>reference, ToRep<span class='anglebracket'>&gt;</span> value_cast<span class='parenthesis'>(</span>FwdQ<span class='operator'>&amp;</span><span class='operator'>&amp;</span> q<span class='parenthesis'>)</span>;
</code></div></div></div></div><div class='para' id='4'><div class='marginalizedparent'><a class='marginalized' href='#4'>4</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L5342'>#</a></div><div class='texpara'><div id='4.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
</code></div></div></div></div><div class='para' id='4'><div class='marginalizedparent'><a class='marginalized' href='#4'>4</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L5342'>#</a></div><div class='texpara'><div id='4.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
<span class='codeblock'><span class='keyword'>return</span> <i >sudo-cast</i><span class='anglebracket'>&lt;</span>quantity<span class='anglebracket'>&lt;</span>Q<span class='operator'>::</span>reference, ToRep<span class='anglebracket'>&gt;</span><span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span>std<span class='operator'>::</span>forward<span class='anglebracket'>&lt;</span>FwdQ<span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span>q<span class='parenthesis'>)</span><span class='parenthesis'>)</span>;
</span></div></div></div></div><div class='texpara'><div id='lib:quantity,value_cast__'><div id='lib:value_cast,quantity__'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:value_cast,quantity__'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><a href='qty.unit.concepts.html#concept:Unit' title='5.4.4.4&emsp;Concepts&emsp;[qty.unit.concepts]'><span id='conceptref:Unit_'><span class='texttt'>Unit</span></span></a> <span class='keyword'>auto</span> ToU, <a href='qty.rep.concepts.html#concept:Representation' title='5.5.4&emsp;Concepts&emsp;[qty.rep.concepts]'><span id='conceptref:Representation_'><span class='texttt'>Representation</span></span></a> ToRep, <span class='keyword'>typename</span> FwdQ,
<a href='qty.syn.html#concept:Quantity' title='5.6.3&emsp;Class template quantity&emsp;[qty.syn]'><span id='conceptref:Quantity_____'><span class='texttt'>Quantity</span></span></a> Q <span class='operator'>=</span> std<span class='operator'>::</span>remove_cvref_t<span class='anglebracket'>&lt;</span>FwdQ<span class='anglebracket'>&gt;</span><span class='anglebracket'>&gt;</span>
@ -21,21 +21,21 @@
<a href='qty.syn.html#concept:Quantity' title='5.6.3&emsp;Class template quantity&emsp;[qty.syn]'><span id='conceptref:Quantity_______'><span class='texttt'>Quantity</span></span></a> Q <span class='operator'>=</span> std<span class='operator'>::</span>remove_cvref_t<span class='anglebracket'>&lt;</span>FwdQ<span class='anglebracket'>&gt;</span><span class='anglebracket'>&gt;</span>
<span class='keyword'>requires</span> <i ><span class='texttt'>see below</span></i>
<span class='keyword'>constexpr</span> <a href='qty.syn.html#concept:Quantity' title='5.6.3&emsp;Class template quantity&emsp;[qty.syn]'><span id='conceptref:Quantity________'><span class='texttt'>Quantity</span></span></a> <span class='keyword'>auto</span> value_cast<span class='parenthesis'>(</span>FwdQ<span class='operator'>&amp;</span><span class='operator'>&amp;</span> q<span class='parenthesis'>)</span>;
</code></div></div></div></div><div class='para' id='5'><div class='marginalizedparent'><a class='marginalized' href='#5'>5</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L5363'>#</a></div><div class='texpara'><div id='5.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
</code></div></div></div></div><div class='para' id='5'><div class='marginalizedparent'><a class='marginalized' href='#5'>5</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L5363'>#</a></div><div class='texpara'><div id='5.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
<span class='codeblock'><span class='keyword'>return</span> <i >sudo-cast</i><span class='anglebracket'>&lt;</span>quantity<span class='anglebracket'>&lt;</span><i >make-reference</i><span class='parenthesis'>(</span>Q<span class='operator'>::</span>quantity_spec, ToU<span class='parenthesis'>)</span>, ToRep<span class='anglebracket'>&gt;</span><span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span>
std<span class='operator'>::</span>forward<span class='anglebracket'>&lt;</span>FwdQ<span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span>q<span class='parenthesis'>)</span><span class='parenthesis'>)</span>;
</span></div></div></div></div><div class='para' id='6'><div class='marginalizedparent'><a class='marginalized' href='#6'>6</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L5371'>#</a></div><div class='texpara'><div id='6.sentence-1' class='sentence'><i >Remarks</i>: The expression in the <span class='textsf'><i >requires-clause</i></span> is equivalent to:
</span></div></div></div></div><div class='para' id='6'><div class='marginalizedparent'><a class='marginalized' href='#6'>6</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L5371'>#</a></div><div class='texpara'><div id='6.sentence-1' class='sentence'><i >Remarks</i>: The expression in the <span class='textsf'><i >requires-clause</i></span> is equivalent to:
<span class='codeblock'><span class='parenthesis'>(</span>convertible<span class='parenthesis'>(</span>Q<span class='operator'>::</span>reference, ToU<span class='parenthesis'>)</span><span class='parenthesis'>)</span> <span class='operator'>&amp;</span><span class='operator'>&amp;</span> <a href='qty.rep.concepts.html#concept:RepresentationOf' title='5.5.4&emsp;Concepts&emsp;[qty.rep.concepts]'><span id='conceptref:RepresentationOf_'><span class='tcode_in_codeblock'>RepresentationOf</span></span></a><span class='anglebracket'>&lt;</span>ToRep, Q<span class='operator'>::</span>quantity_spec<span class='anglebracket'>&gt;</span> <span class='operator'>&amp;</span><span class='operator'>&amp;</span>
std<span class='operator'>::</span>constructible_from<span class='anglebracket'>&lt;</span>ToRep, <span class='keyword'>typename</span> Q<span class='operator'>::</span>rep<span class='anglebracket'>&gt;</span>
</span></div></div></div></div><div class='texpara'><div id='lib:quantity,value_cast___'><div id='lib:value_cast,quantity___'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:value_cast,quantity___'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><a href='qty.syn.html#concept:Quantity' title='5.6.3&emsp;Class template quantity&emsp;[qty.syn]'><span id='conceptref:Quantity_________'><span class='texttt'>Quantity</span></span></a> ToQ, <span class='keyword'>typename</span> FwdQ, <a href='qty.syn.html#concept:Quantity' title='5.6.3&emsp;Class template quantity&emsp;[qty.syn]'><span id='conceptref:Quantity__________'><span class='texttt'>Quantity</span></span></a> Q <span class='operator'>=</span> std<span class='operator'>::</span>remove_cvref_t<span class='anglebracket'>&lt;</span>FwdQ<span class='anglebracket'>&gt;</span><span class='anglebracket'>&gt;</span>
<span class='keyword'>requires</span><span class='parenthesis'>(</span>convertible<span class='parenthesis'>(</span>Q<span class='operator'>::</span>reference, ToQ<span class='operator'>::</span>unit<span class='parenthesis'>)</span><span class='parenthesis'>)</span> <span class='operator'>&amp;</span><span class='operator'>&amp;</span> <span class='parenthesis'>(</span>ToQ<span class='operator'>::</span>quantity_spec <span class='operator'>=</span><span class='operator'>=</span> Q<span class='operator'>::</span>quantity_spec<span class='parenthesis'>)</span> <span class='operator'>&amp;</span><span class='operator'>&amp;</span>
std<span class='operator'>::</span>constructible_from<span class='anglebracket'>&lt;</span><span class='keyword'>typename</span> ToQ<span class='operator'>::</span>rep, <span class='keyword'>typename</span> Q<span class='operator'>::</span>rep<span class='anglebracket'>&gt;</span>
<span class='keyword'>constexpr</span> <a href='qty.syn.html#concept:Quantity' title='5.6.3&emsp;Class template quantity&emsp;[qty.syn]'><span id='conceptref:Quantity___________'><span class='texttt'>Quantity</span></span></a> <span class='keyword'>auto</span> value_cast<span class='parenthesis'>(</span>FwdQ<span class='operator'>&amp;</span><span class='operator'>&amp;</span> q<span class='parenthesis'>)</span>;
</code></div></div></div></div><div class='para' id='7'><div class='marginalizedparent'><a class='marginalized' href='#7'>7</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L5389'>#</a></div><div class='texpara'><div id='7.sentence-1' class='sentence'><i >Effects</i>: Equivalent to: <span class='texttt'><span class='keyword'>return</span> <span class='texttt'><i >sudo-cast</i></span><span class='anglebracket'>&lt;</span>ToQ<span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span>std<span class='operator'>&#x200b;::&#x200b;</span>forward<span class='anglebracket'>&lt;</span>FwdQ<span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span>q<span class='parenthesis'>)</span><span class='parenthesis'>)</span>;</span></div></div></div></div><div class='para' id='8'><div class='marginalizedparent'><a class='marginalized' href='#8'>8</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L5394'>#</a></div><div class='texpara'><div id='8.sentence-1' class='sentence'><span class='texttt'>quantity_<span class='shy'></span>cast</span> is an explicit cast that allows converting to more specific quantities<a class='hidden_link' href='#8.sentence-1'>.</a></div> <div id='example-1' class='example'><div class='texpara'>[<i>Example&nbsp;<a href='#example-1'>1</a></i>:&ensp;<span class='codeblock'><span class='keyword'>auto</span> length <span class='operator'>=</span> isq<span class='operator'>::</span>length<span class='parenthesis'>(</span><span class='literal'>42</span> <span class='operator'>*</span> m<span class='parenthesis'>)</span>;
</code></div></div></div></div><div class='para' id='7'><div class='marginalizedparent'><a class='marginalized' href='#7'>7</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L5389'>#</a></div><div class='texpara'><div id='7.sentence-1' class='sentence'><i >Effects</i>: Equivalent to: <span class='texttt'><span class='keyword'>return</span> <span class='texttt'><i >sudo-cast</i></span><span class='anglebracket'>&lt;</span>ToQ<span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span>std<span class='operator'>&#x200b;::&#x200b;</span>forward<span class='anglebracket'>&lt;</span>FwdQ<span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span>q<span class='parenthesis'>)</span><span class='parenthesis'>)</span>;</span></div></div></div></div><div class='para' id='8'><div class='marginalizedparent'><a class='marginalized' href='#8'>8</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L5394'>#</a></div><div class='texpara'><div id='8.sentence-1' class='sentence'><span class='texttt'>quantity_<span class='shy'></span>cast</span> is an explicit cast that allows converting to more specific quantities<a class='hidden_link' href='#8.sentence-1'>.</a></div> <div id='example-1' class='example'><div class='texpara'>[<i>Example&nbsp;<a href='#example-1'>1</a></i>:&ensp;<span class='codeblock'><span class='keyword'>auto</span> length <span class='operator'>=</span> isq<span class='operator'>::</span>length<span class='parenthesis'>(</span><span class='literal'>42</span> <span class='operator'>*</span> m<span class='parenthesis'>)</span>;
<span class='keyword'>auto</span> distance <span class='operator'>=</span> quantity_cast<span class='anglebracket'>&lt;</span>isq<span class='operator'>::</span>distance<span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span>length<span class='parenthesis'>)</span>;
</span>&nbsp;<i>end example</i>]</div></div></div></div><div class='texpara'><div id='lib:quantity,quantity_cast'><div id='lib:quantity_cast,quantity'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:quantity_cast,quantity'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><a href='qty.spec.concepts.html#concept:QuantitySpec' title='5.4.3.2&emsp;Concepts&emsp;[qty.spec.concepts]'><span id='conceptref:QuantitySpec'><span class='texttt'>QuantitySpec</span></span></a> <span class='keyword'>auto</span> ToQS, <span class='keyword'>typename</span> FwdQ, <a href='qty.syn.html#concept:Quantity' title='5.6.3&emsp;Class template quantity&emsp;[qty.syn]'><span id='conceptref:Quantity____________'><span class='texttt'>Quantity</span></span></a> Q <span class='operator'>=</span> std<span class='operator'>::</span>remove_cvref_t<span class='anglebracket'>&lt;</span>FwdQ<span class='anglebracket'>&gt;</span><span class='anglebracket'>&gt;</span>
<span class='keyword'>requires</span> <a class='index' id='conceptref:QuantitySpecCastableTo'></a><span class='texttt'><i >QuantitySpecCastableTo</i></span><span class='anglebracket'>&lt;</span>Q<span class='operator'>::</span>quantity_spec, ToQS<span class='anglebracket'>&gt;</span>
<span class='keyword'>constexpr</span> <a href='qty.syn.html#concept:Quantity' title='5.6.3&emsp;Class template quantity&emsp;[qty.syn]'><span id='conceptref:Quantity_____________'><span class='texttt'>Quantity</span></span></a> <span class='keyword'>auto</span> quantity_cast<span class='parenthesis'>(</span>FwdQ<span class='operator'>&amp;</span><span class='operator'>&amp;</span> q<span class='parenthesis'>)</span>;
</code></div></div></div></div><div class='para' id='9'><div class='marginalizedparent'><a class='marginalized' href='#9'>9</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L5411'>#</a></div><div class='texpara'><div id='9.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
</code></div></div></div></div><div class='para' id='9'><div class='marginalizedparent'><a class='marginalized' href='#9'>9</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L5411'>#</a></div><div class='texpara'><div id='9.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
<span class='codeblock'><span class='keyword'>return</span> quantity<span class='curlybracket'>{</span>std<span class='operator'>::</span>forward<span class='anglebracket'>&lt;</span>FwdQ<span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span>q<span class='parenthesis'>)</span><span class='operator'>.</span><i >numerical-value</i>, <i >make-reference</i><span class='parenthesis'>(</span>ToQS, Q<span class='operator'>::</span>unit<span class='parenthesis'>)</span><span class='curlybracket'>}</span>;
</span></div></div></div></div></div></body></html>

View File

@ -4,12 +4,12 @@
<span class='keyword'>template</span><span class='anglebracket'>&lt;</span><a href='qty.unit.concepts.html#concept:Unit' title='5.4.4.4&emsp;Concepts&emsp;[qty.unit.concepts]'><span id='conceptref:Unit_'><span class='texttt'>Unit</span></span></a> U<span class='anglebracket'>&gt;</span>
<span class='keyword'>requires</span><span class='parenthesis'>(</span>equivalent<span class='parenthesis'>(</span>U<span class='curlybracket'>{</span><span class='curlybracket'>}</span>, unit<span class='parenthesis'>)</span><span class='parenthesis'>)</span>
<span class='keyword'>constexpr</span> <span class='keyword'>const</span> rep<span class='operator'>&amp;</span> numerical_value_ref_in<span class='parenthesis'>(</span>U<span class='parenthesis'>)</span> <span class='keyword'>const</span> <span class='operator'>&amp;</span> <span class='keyword'>noexcept</span>;
</code></div></div></div></div><div class='para' id='1'><div class='marginalizedparent'><a class='marginalized' href='#1'>1</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L4695'>#</a></div><div class='texpara'><div id='1.sentence-1' class='sentence'><i >Returns</i>: <span class='texttt'><i >numerical-value</i></span><a class='hidden_link' href='#1.sentence-1'>.</a></div></div></div></div><div class='texpara'><div id='lib:quantity,numerical_value_in'><div id='lib:numerical_value_in,quantity'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:numerical_value_in,quantity'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><a class='index' id='conceptref:UnitCompatibleWith'></a><span class='texttt'><i >UnitCompatibleWith</i></span><span class='anglebracket'>&lt;</span>unit, quantity_spec<span class='anglebracket'>&gt;</span> U<span class='anglebracket'>&gt;</span>
</code></div></div></div></div><div class='para' id='1'><div class='marginalizedparent'><a class='marginalized' href='#1'>1</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L4695'>#</a></div><div class='texpara'><div id='1.sentence-1' class='sentence'><i >Returns</i>: <span class='texttt'><i >numerical-value</i></span><a class='hidden_link' href='#1.sentence-1'>.</a></div></div></div></div><div class='texpara'><div id='lib:quantity,numerical_value_in'><div id='lib:numerical_value_in,quantity'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:numerical_value_in,quantity'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><a class='index' id='conceptref:UnitCompatibleWith'></a><span class='texttt'><i >UnitCompatibleWith</i></span><span class='anglebracket'>&lt;</span>unit, quantity_spec<span class='anglebracket'>&gt;</span> U<span class='anglebracket'>&gt;</span>
<span class='keyword'>requires</span> <a class='index' id='conceptref:QuantityConvertibleTo'></a><span class='texttt'><i >QuantityConvertibleTo</i></span><span class='anglebracket'>&lt;</span>quantity, quantity<span class='anglebracket'>&lt;</span><span class='texttt'><i >make-reference</i></span><span class='parenthesis'>(</span>quantity_spec, U<span class='curlybracket'>{</span><span class='curlybracket'>}</span><span class='parenthesis'>)</span>, Rep<span class='anglebracket'>&gt;</span><span class='anglebracket'>&gt;</span>
<span class='keyword'>constexpr</span> rep numerical_value_in<span class='parenthesis'>(</span>U<span class='parenthesis'>)</span> <span class='keyword'>const</span> <span class='keyword'>noexcept</span>;
</code></div></div></div></div><div class='para' id='2'><div class='marginalizedparent'><a class='marginalized' href='#2'>2</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L4708'>#</a></div><div class='texpara'><div id='2.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
</code></div></div></div></div><div class='para' id='2'><div class='marginalizedparent'><a class='marginalized' href='#2'>2</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L4708'>#</a></div><div class='texpara'><div id='2.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
<span class='texttt'><span class='keyword'>return</span> <span class='parenthesis'>(</span><span class='operator'>*</span><span class='keyword'>this</span><span class='parenthesis'>)</span><span class='operator'>.</span>in<span class='parenthesis'>(</span>U<span class='curlybracket'>{</span><span class='curlybracket'>}</span><span class='parenthesis'>)</span><span class='operator'>.</span><span class='texttt'><i >numerical-value</i></span>;</span></div></div></div></div><div class='texpara'><div id='lib:quantity,force_numerical_value_in'><div id='lib:force_numerical_value_in,quantity'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:force_numerical_value_in,quantity'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><a class='index' id='conceptref:UnitCompatibleWith_'></a><span class='texttt'><i >UnitCompatibleWith</i></span><span class='anglebracket'>&lt;</span>unit, quantity_spec<span class='anglebracket'>&gt;</span> U<span class='anglebracket'>&gt;</span>
<span class='keyword'>requires</span> <span class='keyword'>requires</span><span class='parenthesis'>(</span><span class='keyword'>const</span> quantity q<span class='parenthesis'>)</span> <span class='curlybracket'>{</span> value_cast<span class='anglebracket'>&lt;</span>U<span class='curlybracket'>{</span><span class='curlybracket'>}</span><span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span>q<span class='parenthesis'>)</span>; <span class='curlybracket'>}</span>
<span class='keyword'>constexpr</span> rep force_numerical_value_in<span class='parenthesis'>(</span>U<span class='parenthesis'>)</span> <span class='keyword'>const</span> <span class='keyword'>noexcept</span>;
</code></div></div></div></div><div class='para' id='3'><div class='marginalizedparent'><a class='marginalized' href='#3'>3</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L4722'>#</a></div><div class='texpara'><div id='3.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
</code></div></div></div></div><div class='para' id='3'><div class='marginalizedparent'><a class='marginalized' href='#3'>3</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L4722'>#</a></div><div class='texpara'><div id='3.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
<span class='texttt'><span class='keyword'>return</span> <span class='parenthesis'>(</span><span class='operator'>*</span><span class='keyword'>this</span><span class='parenthesis'>)</span><span class='operator'>.</span>force_<span class='shy'></span>in<span class='parenthesis'>(</span>U<span class='curlybracket'>{</span><span class='curlybracket'>}</span><span class='parenthesis'>)</span><span class='operator'>.</span><span class='texttt'><i >numerical-value</i></span>;</span></div></div></div></div></div></body></html>

View File

@ -11,5 +11,5 @@
</span></span></div><div class='texpara'><div id='lib:point_,operator()'><div id='lib:operator(),point_'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:operator(),point_'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><span class='keyword'>typename</span> FwdRep,
<a href='qty.rep.concepts.html#concept:RepresentationOf' title='5.5.4&emsp;Concepts&emsp;[qty.rep.concepts]'><span id='conceptref:RepresentationOf_'><span class='texttt'>RepresentationOf</span></span></a><span class='anglebracket'>&lt;</span>get_quantity_spec<span class='parenthesis'>(</span>R<span class='curlybracket'>{</span><span class='curlybracket'>}</span><span class='parenthesis'>)</span><span class='anglebracket'>&gt;</span> Rep <span class='operator'>=</span> std<span class='operator'>::</span>remove_cvref_t<span class='anglebracket'>&lt;</span>FwdRep<span class='anglebracket'>&gt;</span><span class='anglebracket'>&gt;</span>
<span class='keyword'>constexpr</span> quantity_point<span class='anglebracket'>&lt;</span>R<span class='curlybracket'>{</span><span class='curlybracket'>}</span>, default_point_origin<span class='parenthesis'>(</span>R<span class='curlybracket'>{</span><span class='curlybracket'>}</span><span class='parenthesis'>)</span>, Rep<span class='anglebracket'>&gt;</span> <span class='keyword'>operator</span><span class='parenthesis'>(</span><span class='parenthesis'>)</span><span class='parenthesis'>(</span>FwdRep<span class='operator'>&amp;</span><span class='operator'>&amp;</span> lhs<span class='parenthesis'>)</span> <span class='keyword'>const</span>;
</code></div></div></div></div><div class='para' id='1'><div class='marginalizedparent'><a class='marginalized' href='#1'>1</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L6503'>#</a></div><div class='texpara'><div id='1.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
</code></div></div></div></div><div class='para' id='1'><div class='marginalizedparent'><a class='marginalized' href='#1'>1</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L6503'>#</a></div><div class='texpara'><div id='1.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
<span class='texttt'><span class='keyword'>return</span> quantity_<span class='shy'></span>point<span class='curlybracket'>{</span>quantity<span class='curlybracket'>{</span>std<span class='operator'>&#x200b;::&#x200b;</span>forward<span class='anglebracket'>&lt;</span>FwdRep<span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span>lhs<span class='parenthesis'>)</span>, R<span class='curlybracket'>{</span><span class='curlybracket'>}</span><span class='curlybracket'>}</span><span class='curlybracket'>}</span>;</span></div></div></div></div></div></body></html>

View File

@ -8,7 +8,7 @@
<span class='curlybracket'>}</span>;
<span class='curlybracket'>}</span>
</span></span></div><div class='para' id='1'><div class='marginalizedparent'><a class='marginalized' href='#1'>1</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L2777'>#</a></div><div class='texpara'><div id='1.sentence-1' class='sentence'><span class='texttt'>prefixed_<span class='shy'></span>unit<span class='anglebracket'>&lt;</span>Symbol, M, U<span class='anglebracket'>&gt;</span></span> represents the unit <span class='texttt'>U</span> with a unit prefix (<a href="https://www.electropedia.org/iev/iev.nsf/display?openform&ievref=112-01-26">IEC 60050, 112-01-26</a>)<a class='hidden_link' href='#1.sentence-1'>.</a></div> <div id='1.sentence-2' class='sentence'><span class='texttt'>Symbol</span> is the symbol of the unit prefix<a class='hidden_link' href='#1.sentence-2'>.</a></div> <div id='1.sentence-3' class='sentence'><span class='texttt'>M</span> is the factor of the unit prefix<a class='hidden_link' href='#1.sentence-3'>.</a></div> <div id='1.sentence-4' class='sentence'>A specialization of <span class='texttt'>prefixed_<span class='shy'></span>unit</span> is used as a base type when defining a unit prefix<a class='hidden_link' href='#1.sentence-4'>.</a></div> <div id='example-1' class='example'><div class='texpara'>[<i>Example&nbsp;<a href='#example-1'>1</a></i>:&ensp;<span class='codeblock'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><a href='qty.unit.concepts.html#concept:PrefixableUnit' title='5.4.4.4&emsp;Concepts&emsp;[qty.unit.concepts]'><span id='conceptref:PrefixableUnit_'><span class='tcode_in_codeblock'>PrefixableUnit</span></span></a> <span class='keyword'>auto</span> U<span class='anglebracket'>&gt;</span>
</span></span></div><div class='para' id='1'><div class='marginalizedparent'><a class='marginalized' href='#1'>1</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L2777'>#</a></div><div class='texpara'><div id='1.sentence-1' class='sentence'><span class='texttt'>prefixed_<span class='shy'></span>unit<span class='anglebracket'>&lt;</span>Symbol, M, U<span class='anglebracket'>&gt;</span></span> represents the unit <span class='texttt'>U</span> with a unit prefix (<a href="https://www.electropedia.org/iev/iev.nsf/display?openform&ievref=112-01-26">IEC 60050, 112-01-26</a>)<a class='hidden_link' href='#1.sentence-1'>.</a></div> <div id='1.sentence-2' class='sentence'><span class='texttt'>Symbol</span> is the symbol of the unit prefix<a class='hidden_link' href='#1.sentence-2'>.</a></div> <div id='1.sentence-3' class='sentence'><span class='texttt'>M</span> is the factor of the unit prefix<a class='hidden_link' href='#1.sentence-3'>.</a></div> <div id='1.sentence-4' class='sentence'>A specialization of <span class='texttt'>prefixed_<span class='shy'></span>unit</span> is used as a base type when defining a unit prefix<a class='hidden_link' href='#1.sentence-4'>.</a></div> <div id='example-1' class='example'><div class='texpara'>[<i>Example&nbsp;<a href='#example-1'>1</a></i>:&ensp;<span class='codeblock'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><a href='qty.unit.concepts.html#concept:PrefixableUnit' title='5.4.4.4&emsp;Concepts&emsp;[qty.unit.concepts]'><span id='conceptref:PrefixableUnit_'><span class='tcode_in_codeblock'>PrefixableUnit</span></span></a> <span class='keyword'>auto</span> U<span class='anglebracket'>&gt;</span>
<span class='keyword'>struct</span> kilo_ <span class='operator'>:</span> prefixed_unit<span class='anglebracket'>&lt;</span><span class='literal'>"k"</span>, mag_power<span class='anglebracket'>&lt;</span><span class='literal'>10</span>, <span class='literal'>3</span><span class='anglebracket'>&gt;</span>, U<span class='anglebracket'>&gt;</span> <span class='curlybracket'>{</span><span class='curlybracket'>}</span>;
<span class='keyword'>template</span><span class='anglebracket'>&lt;</span><a href='qty.unit.concepts.html#concept:PrefixableUnit' title='5.4.4.4&emsp;Concepts&emsp;[qty.unit.concepts]'><span id='conceptref:PrefixableUnit__'><span class='tcode_in_codeblock'>PrefixableUnit</span></span></a> <span class='keyword'>auto</span> U<span class='anglebracket'>&gt;</span>

View File

@ -1,4 +1,4 @@
<!DOCTYPE html><html lang='en'><head><title>[qty.pt.arith.ops]</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.7</a> Quantity point <a class='abbr_ref' href='qty.pt.html#arith.ops'>[qty.pt]</a></h2><h3 ><a class='secnum' style='min-width:80pt'>5.7.12</a> Arithmetic operations <a class='abbr_ref'>[qty.pt.arith.ops]</a></h3><div class='para' id='1'><div class='marginalizedparent'><a class='marginalized' href='#1'>1</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L6324'>#</a></div><div class='texpara'><div id='1.sentence-1' class='sentence'>In the following descriptions,
<!DOCTYPE html><html lang='en'><head><title>[qty.pt.arith.ops]</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.7</a> Quantity point <a class='abbr_ref' href='qty.pt.html#arith.ops'>[qty.pt]</a></h2><h3 ><a class='secnum' style='min-width:80pt'>5.7.12</a> Arithmetic operations <a class='abbr_ref'>[qty.pt.arith.ops]</a></h3><div class='para' id='1'><div class='marginalizedparent'><a class='marginalized' href='#1'>1</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L6324'>#</a></div><div class='texpara'><div id='1.sentence-1' class='sentence'>In the following descriptions,
let <span class='texttt'>@</span> be the <span class='textsf'><i >operator</i></span><a class='hidden_link' href='#1.sentence-1'>.</a></div></div></div><div class='texpara'><div id='lib:quantity,operator-'><div id='lib:operator-,quantity'><div id='lib:quantity_point,operator-'><div id='lib:operator-,quantity_point'><div id='lib:quantity,operator+'><div id='lib:operator+,quantity'><div id='lib:quantity_point,operator+'><div id='lib:operator+,quantity_point'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:operator+,quantity_point'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span>std<span class='operator'>::</span>derived_from<span class='anglebracket'>&lt;</span>quantity_point<span class='anglebracket'>&gt;</span> QP, <span class='keyword'>auto</span> R2, <span class='keyword'>typename</span> Rep2<span class='anglebracket'>&gt;</span>
<span class='keyword'>friend</span> <span class='keyword'>constexpr</span> <a href='qty.pt.syn.html#concept:QuantityPoint' title='5.7.4&emsp;Class template quantity_&shy;point&emsp;[qty.pt.syn]'><span id='conceptref:QuantityPoint'><span class='texttt'>QuantityPoint</span></span></a> <span class='keyword'>auto</span> <span class='keyword'>operator</span><span class='operator'>+</span><span class='parenthesis'>(</span><span class='keyword'>const</span> QP<span class='operator'>&amp;</span> qp, <span class='keyword'>const</span> quantity<span class='anglebracket'>&lt;</span>R2, Rep2<span class='anglebracket'>&gt;</span><span class='operator'>&amp;</span> q<span class='parenthesis'>)</span>
<span class='keyword'>requires</span> <i ><span class='texttt'>see below</span></i>;
@ -8,30 +8,30 @@ let <span class='texttt'>@</span> be the <span class='textsf'><i >operator</i></
<span class='keyword'>template</span><span class='anglebracket'>&lt;</span>std<span class='operator'>::</span>derived_from<span class='anglebracket'>&lt;</span>quantity_point<span class='anglebracket'>&gt;</span> QP, <span class='keyword'>auto</span> R2, <span class='keyword'>typename</span> Rep2<span class='anglebracket'>&gt;</span>
<span class='keyword'>friend</span> <span class='keyword'>constexpr</span> <a href='qty.pt.syn.html#concept:QuantityPoint' title='5.7.4&emsp;Class template quantity_&shy;point&emsp;[qty.pt.syn]'><span id='conceptref:QuantityPoint__'><span class='texttt'>QuantityPoint</span></span></a> <span class='keyword'>auto</span> <span class='keyword'>operator</span><span class='operator'>-</span><span class='parenthesis'>(</span><span class='keyword'>const</span> QP<span class='operator'>&amp;</span> qp, <span class='keyword'>const</span> quantity<span class='anglebracket'>&lt;</span>R2, Rep2<span class='anglebracket'>&gt;</span><span class='operator'>&amp;</span> q<span class='parenthesis'>)</span>
<span class='keyword'>requires</span> <i ><span class='texttt'>see below</span></i>;
</code></div></div></div></div></div></div></div></div></div></div><div class='para' id='2'><div class='marginalizedparent'><a class='marginalized' href='#2'>2</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L6345'>#</a></div><div class='texpara'><div id='2.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
</code></div></div></div></div></div></div></div></div></div></div><div class='para' id='2'><div class='marginalizedparent'><a class='marginalized' href='#2'>2</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L6345'>#</a></div><div class='texpara'><div id='2.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
<span class='codeblock'><span class='keyword'>if</span> <span class='keyword'>constexpr</span> <span class='parenthesis'>(</span><i >is-specialization-of</i><span class='anglebracket'>&lt;</span>PO, zeroth_point_origin<span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span><span class='parenthesis'>)</span><span class='parenthesis'>)</span>
<span class='keyword'>return</span> <span class='operator'>::</span>mp_units<span class='operator'>::</span>quantity_point<span class='curlybracket'>{</span>qp<span class='operator'>.</span>quantity_ref_from<span class='parenthesis'>(</span>PO<span class='parenthesis'>)</span> @ q<span class='curlybracket'>}</span>;
<span class='keyword'>else</span>
<span class='keyword'>return</span> <span class='operator'>::</span>mp_units<span class='operator'>::</span>quantity_point<span class='curlybracket'>{</span>qp<span class='operator'>.</span>quantity_ref_from<span class='parenthesis'>(</span>PO<span class='parenthesis'>)</span> @ q, PO<span class='curlybracket'>}</span>;
</span></div></div></div></div><div class='para' id='3'><div class='marginalizedparent'><a class='marginalized' href='#3'>3</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L6355'>#</a></div><div class='texpara'><div id='3.sentence-1' class='sentence'><i >Remarks</i>: The expression in the <span class='textsf'><i >requires-clause</i></span> is equivalent to:
</span></div></div></div></div><div class='para' id='3'><div class='marginalizedparent'><a class='marginalized' href='#3'>3</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L6355'>#</a></div><div class='texpara'><div id='3.sentence-1' class='sentence'><i >Remarks</i>: The expression in the <span class='textsf'><i >requires-clause</i></span> is equivalent to:
<span class='codeblock'><a href='qty.ref.concepts.html#concept:ReferenceOf' title='5.4.5&emsp;Concepts&emsp;[qty.ref.concepts]'><span id='conceptref:ReferenceOf'><span class='tcode_in_codeblock'>ReferenceOf</span></span></a><span class='anglebracket'>&lt;</span><span class='keyword'>decltype</span><span class='parenthesis'>(</span>R2<span class='parenthesis'>)</span>, PO<span class='operator'>.</span><i >quantity-spec</i><span class='anglebracket'>&gt;</span> <span class='operator'>&amp;</span><span class='operator'>&amp;</span> <span class='keyword'>requires</span> <span class='curlybracket'>{</span>
qp<span class='operator'>.</span>quantity_ref_from<span class='parenthesis'>(</span>PO<span class='parenthesis'>)</span> @ q;
<span class='curlybracket'>}</span>
</span></div></div></div></div><div class='texpara'><div id='lib:quantity_point,operator-_'><div id='lib:operator-,quantity_point_'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:operator-,quantity_point_'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span>std<span class='operator'>::</span>derived_from<span class='anglebracket'>&lt;</span>quantity_point<span class='anglebracket'>&gt;</span> QP, <a href='qty.pt.syn.html#concept:QuantityPointOf' title='5.7.4&emsp;Class template quantity_&shy;point&emsp;[qty.pt.syn]'><span id='conceptref:QuantityPointOf'><span class='texttt'>QuantityPointOf</span></span></a><span class='anglebracket'>&lt;</span>absolute_point_origin<span class='anglebracket'>&gt;</span> QP2<span class='anglebracket'>&gt;</span>
<span class='keyword'>friend</span> <span class='keyword'>constexpr</span> <a href='qty.syn.html#concept:Quantity' title='5.6.3&emsp;Class template quantity&emsp;[qty.syn]'><span id='conceptref:Quantity'><span class='texttt'>Quantity</span></span></a> <span class='keyword'>auto</span> <span class='keyword'>operator</span><span class='operator'>-</span><span class='parenthesis'>(</span><span class='keyword'>const</span> QP<span class='operator'>&amp;</span> lhs, <span class='keyword'>const</span> QP2<span class='operator'>&amp;</span> rhs<span class='parenthesis'>)</span>
<span class='keyword'>requires</span> <i ><span class='texttt'>see below</span></i>;
</code></div></div></div></div><div class='para' id='4'><div class='marginalizedparent'><a class='marginalized' href='#4'>4</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L6373'>#</a></div><div class='texpara'><div id='4.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
</code></div></div></div></div><div class='para' id='4'><div class='marginalizedparent'><a class='marginalized' href='#4'>4</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L6373'>#</a></div><div class='texpara'><div id='4.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
<span class='codeblock'><span class='keyword'>return</span> lhs<span class='operator'>.</span>quantity_ref_from<span class='parenthesis'>(</span>point_origin<span class='parenthesis'>)</span> <span class='operator'>-</span> rhs<span class='operator'>.</span>quantity_ref_from<span class='parenthesis'>(</span>QP2<span class='operator'>::</span>point_origin<span class='parenthesis'>)</span> <span class='operator'>+</span>
<span class='parenthesis'>(</span>lhs<span class='operator'>.</span>point_origin <span class='operator'>-</span> rhs<span class='operator'>.</span>point_origin<span class='parenthesis'>)</span>;
</span></div></div></div></div><div class='para' id='5'><div class='marginalizedparent'><a class='marginalized' href='#5'>5</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L6381'>#</a></div><div class='texpara'><div id='5.sentence-1' class='sentence'><i >Remarks</i>: The expression in the <span class='textsf'><i >requires-clause</i></span> is equivalent to:
</span></div></div></div></div><div class='para' id='5'><div class='marginalizedparent'><a class='marginalized' href='#5'>5</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L6381'>#</a></div><div class='texpara'><div id='5.sentence-1' class='sentence'><i >Remarks</i>: The expression in the <span class='textsf'><i >requires-clause</i></span> is equivalent to:
<span class='codeblock'><span class='keyword'>requires</span> <span class='curlybracket'>{</span> lhs<span class='operator'>.</span>quantity_ref_from<span class='parenthesis'>(</span>point_origin<span class='parenthesis'>)</span> <span class='operator'>-</span> rhs<span class='operator'>.</span>quantity_ref_from<span class='parenthesis'>(</span>QP2<span class='operator'>::</span>point_origin<span class='parenthesis'>)</span>; <span class='curlybracket'>}</span>
</span></div></div></div></div><div class='para' id='6'><div class='marginalizedparent'><a class='marginalized' href='#6'>6</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L6388'>#</a></div><div class='texpara'><div id='6.sentence-1' class='sentence'><i >Recommended practice</i>: The subtraction of two equal origins is not evaluated<a class='hidden_link' href='#6.sentence-1'>.</a></div></div></div></div><div class='texpara'><div id='lib:PointOrigin,operator-'><div id='lib:operator-,PointOrigin'><div id='lib:quantity_point,operator-__'><div id='lib:operator-,quantity_point__'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:operator-,quantity_point__'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span>std<span class='operator'>::</span>derived_from<span class='anglebracket'>&lt;</span>quantity_point<span class='anglebracket'>&gt;</span> QP, <a href='qty.pt.orig.concepts.html#concept:PointOrigin' title='5.7.2.2&emsp;Concepts&emsp;[qty.pt.orig.concepts]'><span id='conceptref:PointOrigin'><span class='texttt'>PointOrigin</span></span></a> PO2<span class='anglebracket'>&gt;</span>
</span></div></div></div></div><div class='para' id='6'><div class='marginalizedparent'><a class='marginalized' href='#6'>6</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L6388'>#</a></div><div class='texpara'><div id='6.sentence-1' class='sentence'><i >Recommended practice</i>: The subtraction of two equal origins is not evaluated<a class='hidden_link' href='#6.sentence-1'>.</a></div></div></div></div><div class='texpara'><div id='lib:PointOrigin,operator-'><div id='lib:operator-,PointOrigin'><div id='lib:quantity_point,operator-__'><div id='lib:operator-,quantity_point__'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:operator-,quantity_point__'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span>std<span class='operator'>::</span>derived_from<span class='anglebracket'>&lt;</span>quantity_point<span class='anglebracket'>&gt;</span> QP, <a href='qty.pt.orig.concepts.html#concept:PointOrigin' title='5.7.2.2&emsp;Concepts&emsp;[qty.pt.orig.concepts]'><span id='conceptref:PointOrigin'><span class='texttt'>PointOrigin</span></span></a> PO2<span class='anglebracket'>&gt;</span>
<span class='keyword'>requires</span> <i ><span class='texttt'>see below</span></i>
<span class='keyword'>friend</span> <span class='keyword'>constexpr</span> <a href='qty.syn.html#concept:Quantity' title='5.6.3&emsp;Class template quantity&emsp;[qty.syn]'><span id='conceptref:Quantity_'><span class='texttt'>Quantity</span></span></a> <span class='keyword'>auto</span> <span class='keyword'>operator</span><span class='operator'>-</span><span class='parenthesis'>(</span><span class='keyword'>const</span> QP<span class='operator'>&amp;</span> qp, PO2 po<span class='parenthesis'>)</span>;
<span class='keyword'>template</span><span class='anglebracket'>&lt;</span>std<span class='operator'>::</span>derived_from<span class='anglebracket'>&lt;</span>quantity_point<span class='anglebracket'>&gt;</span> QP, <a href='qty.pt.orig.concepts.html#concept:PointOrigin' title='5.7.2.2&emsp;Concepts&emsp;[qty.pt.orig.concepts]'><span id='conceptref:PointOrigin_'><span class='texttt'>PointOrigin</span></span></a> PO2<span class='anglebracket'>&gt;</span>
<span class='keyword'>requires</span> <i ><span class='texttt'>see below</span></i>
<span class='keyword'>friend</span> <span class='keyword'>constexpr</span> <a href='qty.syn.html#concept:Quantity' title='5.6.3&emsp;Class template quantity&emsp;[qty.syn]'><span id='conceptref:Quantity__'><span class='texttt'>Quantity</span></span></a> <span class='keyword'>auto</span> <span class='keyword'>operator</span><span class='operator'>-</span><span class='parenthesis'>(</span>PO2 po, <span class='keyword'>const</span> QP<span class='operator'>&amp;</span> qp<span class='parenthesis'>)</span>;
</code></div></div></div></div></div></div><div class='para' id='7'><div class='marginalizedparent'><a class='marginalized' href='#7'>7</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L6405'>#</a></div><div class='texpara'><div id='7.sentence-1' class='sentence'><i >Effects</i>: For the first signature,
</code></div></div></div></div></div></div><div class='para' id='7'><div class='marginalizedparent'><a class='marginalized' href='#7'>7</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L6405'>#</a></div><div class='texpara'><div id='7.sentence-1' class='sentence'><i >Effects</i>: For the first signature,
equivalent to:
<span class='codeblock'><span class='keyword'>if</span> <span class='keyword'>constexpr</span> <span class='parenthesis'>(</span>point_origin <span class='operator'>=</span><span class='operator'>=</span> po<span class='parenthesis'>)</span>
<span class='keyword'>return</span> qp<span class='operator'>.</span>quantity_ref_from<span class='parenthesis'>(</span>point_origin<span class='parenthesis'>)</span>;
@ -45,7 +45,7 @@ equivalent to:
<span class='curlybracket'>}</span>
</span></div> <div id='7.sentence-2' class='sentence'>
For the second signature,
equivalent to: <span class='texttt'><span class='keyword'>return</span> <span class='operator'>-</span><span class='parenthesis'>(</span>qp <span class='operator'>-</span> po<span class='parenthesis'>)</span>;</span></div></div></div></div><div class='para' id='8'><div class='marginalizedparent'><a class='marginalized' href='#8'>8</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L6424'>#</a></div><div class='texpara'><div id='8.sentence-1' class='sentence'><i >Remarks</i>: The expression in the <span class='textsf'><i >requires-clause</i></span> is equivalent to:
equivalent to: <span class='texttt'><span class='keyword'>return</span> <span class='operator'>-</span><span class='parenthesis'>(</span>qp <span class='operator'>-</span> po<span class='parenthesis'>)</span>;</span></div></div></div></div><div class='para' id='8'><div class='marginalizedparent'><a class='marginalized' href='#8'>8</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L6424'>#</a></div><div class='texpara'><div id='8.sentence-1' class='sentence'><i >Remarks</i>: The expression in the <span class='textsf'><i >requires-clause</i></span> is equivalent to:
<span class='codeblock'><a href='qty.pt.syn.html#concept:QuantityPointOf' title='5.7.4&emsp;Class template quantity_&shy;point&emsp;[qty.pt.syn]'><span id='conceptref:QuantityPointOf_'><span class='tcode_in_codeblock'>QuantityPointOf</span></span></a><span class='anglebracket'>&lt;</span>quantity_point, PO2<span class='curlybracket'>{</span><span class='curlybracket'>}</span><span class='anglebracket'>&gt;</span> <span class='operator'>&amp;</span><span class='operator'>&amp;</span>
<a href='qty.ref.concepts.html#concept:ReferenceOf' title='5.4.5&emsp;Concepts&emsp;[qty.ref.concepts]'><span id='conceptref:ReferenceOf_'><span class='tcode_in_codeblock'>ReferenceOf</span></span></a><span class='anglebracket'>&lt;</span><span class='keyword'>decltype</span><span class='parenthesis'>(</span><span class='keyword'>auto</span><span class='parenthesis'>(</span>reference<span class='parenthesis'>)</span><span class='parenthesis'>)</span>, PO2<span class='operator'>::</span><i >quantity-spec</i><span class='anglebracket'>&gt;</span>
</span></div></div></div></div><div class='para' id='9'><div class='marginalizedparent'><a class='marginalized' href='#9'>9</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L6432'>#</a></div><div class='texpara'><div id='9.sentence-1' class='sentence'><i >Recommended practice</i>: The subtraction of two equal origins is not evaluated<a class='hidden_link' href='#9.sentence-1'>.</a></div></div></div></div></div></body></html>
</span></div></div></div></div><div class='para' id='9'><div class='marginalizedparent'><a class='marginalized' href='#9'>9</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L6432'>#</a></div><div class='texpara'><div id='9.sentence-1' class='sentence'><i >Recommended practice</i>: The subtraction of two equal origins is not evaluated<a class='hidden_link' href='#9.sentence-1'>.</a></div></div></div></div></div></body></html>

View File

@ -4,8 +4,8 @@
<span class='keyword'>template</span><span class='anglebracket'>&lt;</span><a class='index' id='conceptref:Mutable_'></a><span class='texttt'><i >Mutable</i></span><span class='anglebracket'>&lt;</span>quantity_point<span class='anglebracket'>&gt;</span> QP, <span class='keyword'>auto</span> R2, <span class='keyword'>typename</span> Rep2<span class='anglebracket'>&gt;</span>
<span class='keyword'>requires</span> <i ><span class='texttt'>see below</span></i>
<span class='keyword'>friend</span> <span class='keyword'>constexpr</span> <span class='keyword'>decltype</span><span class='parenthesis'>(</span><span class='keyword'>auto</span><span class='parenthesis'>)</span> <span class='keyword'>operator</span><span class='operator'>-</span><span class='operator'>=</span><span class='parenthesis'>(</span>QP<span class='operator'>&amp;</span><span class='operator'>&amp;</span> qp, <span class='keyword'>const</span> quantity<span class='anglebracket'>&lt;</span>R2, Rep2<span class='anglebracket'>&gt;</span><span class='operator'>&amp;</span> q<span class='parenthesis'>)</span>;
</code></div></div></div></div></div></div></div></div></div></div><div class='para' id='1'><div class='marginalizedparent'><a class='marginalized' href='#1'>1</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L6301'>#</a></div><div class='texpara'><div id='1.sentence-1' class='sentence'>Let <span class='texttt'>@</span> be the <span class='textsf'><i >operator</i></span><a class='hidden_link' href='#1.sentence-1'>.</a></div></div></div></div><div class='para' id='2'><div class='marginalizedparent'><a class='marginalized' href='#2'>2</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L6304'>#</a></div><div class='texpara'><div id='2.sentence-1' class='sentence'><i >Effects</i>: Equivalent to
<span class='texttt'>qp<span class='operator'>.</span><span class='texttt'><i >quantity-from-origin</i></span> @ q</span><a class='hidden_link' href='#2.sentence-1'>.</a></div></div></div></div><div class='para' id='3'><div class='marginalizedparent'><a class='marginalized' href='#3'>3</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L6309'>#</a></div><div class='texpara'><div id='3.sentence-1' class='sentence'><i >Returns</i>: <span class='texttt'>std<span class='operator'>&#x200b;::&#x200b;</span>forward<span class='anglebracket'>&lt;</span>QP<span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span>qp<span class='parenthesis'>)</span></span><a class='hidden_link' href='#3.sentence-1'>.</a></div></div></div></div><div class='para' id='4'><div class='marginalizedparent'><a class='marginalized' href='#4'>4</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L6313'>#</a></div><div class='texpara'><div id='4.sentence-1' class='sentence'><i >Remarks</i>: The expression in the <span class='textsf'><i >requires-clause</i></span> is equivalent to:
</code></div></div></div></div></div></div></div></div></div></div><div class='para' id='1'><div class='marginalizedparent'><a class='marginalized' href='#1'>1</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L6301'>#</a></div><div class='texpara'><div id='1.sentence-1' class='sentence'>Let <span class='texttt'>@</span> be the <span class='textsf'><i >operator</i></span><a class='hidden_link' href='#1.sentence-1'>.</a></div></div></div></div><div class='para' id='2'><div class='marginalizedparent'><a class='marginalized' href='#2'>2</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L6304'>#</a></div><div class='texpara'><div id='2.sentence-1' class='sentence'><i >Effects</i>: Equivalent to
<span class='texttt'>qp<span class='operator'>.</span><span class='texttt'><i >quantity-from-origin</i></span> @ q</span><a class='hidden_link' href='#2.sentence-1'>.</a></div></div></div></div><div class='para' id='3'><div class='marginalizedparent'><a class='marginalized' href='#3'>3</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L6309'>#</a></div><div class='texpara'><div id='3.sentence-1' class='sentence'><i >Returns</i>: <span class='texttt'>std<span class='operator'>&#x200b;::&#x200b;</span>forward<span class='anglebracket'>&lt;</span>QP<span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span>qp<span class='parenthesis'>)</span></span><a class='hidden_link' href='#3.sentence-1'>.</a></div></div></div></div><div class='para' id='4'><div class='marginalizedparent'><a class='marginalized' href='#4'>4</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L6313'>#</a></div><div class='texpara'><div id='4.sentence-1' class='sentence'><i >Remarks</i>: The expression in the <span class='textsf'><i >requires-clause</i></span> is equivalent to:
<span class='codeblock'><a class='index' id='conceptref:QuantityConvertibleTo'></a><i >QuantityConvertibleTo</i><span class='anglebracket'>&lt;</span>quantity<span class='anglebracket'>&lt;</span>R2, Rep2<span class='anglebracket'>&gt;</span>, quantity_type<span class='anglebracket'>&gt;</span> <span class='operator'>&amp;</span><span class='operator'>&amp;</span>
<span class='keyword'>requires</span> <span class='curlybracket'>{</span> qp<span class='operator'>.</span><i >quantity-from-origin</i> @ q; <span class='curlybracket'>}</span>
</span></div></div></div></div></div></body></html>

View File

@ -4,13 +4,13 @@
<span class='keyword'>template</span><span class='anglebracket'>&lt;</span>std<span class='operator'>::</span>derived_from<span class='anglebracket'>&lt;</span>quantity_point<span class='anglebracket'>&gt;</span> QP, <a href='qty.pt.syn.html#concept:QuantityPointOf' title='5.7.4&emsp;Class template quantity_&shy;point&emsp;[qty.pt.syn]'><span id='conceptref:QuantityPointOf_'><span class='texttt'>QuantityPointOf</span></span></a><span class='anglebracket'>&lt;</span>absolute_point_origin<span class='anglebracket'>&gt;</span> QP2<span class='anglebracket'>&gt;</span>
<span class='keyword'>requires</span> <i ><span class='texttt'>see below</span></i>
<span class='keyword'>friend</span> <span class='keyword'>constexpr</span> <span class='keyword'>auto</span> <span class='keyword'>operator</span><span class='anglebracket'>&lt;</span><span class='operator'>=</span><span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span><span class='keyword'>const</span> QP<span class='operator'>&amp;</span> lhs, <span class='keyword'>const</span> QP2<span class='operator'>&amp;</span> rhs<span class='parenthesis'>)</span>;
</code></div></div></div></div></div></div><div class='para' id='1'><div class='marginalizedparent'><a class='marginalized' href='#1'>1</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L6451'>#</a></div><div class='texpara'><div id='1.sentence-1' class='sentence'>Let <span class='texttt'>@</span> be the <span class='textsf'><i >operator</i></span>, and
</code></div></div></div></div></div></div><div class='para' id='1'><div class='marginalizedparent'><a class='marginalized' href='#1'>1</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L6451'>#</a></div><div class='texpara'><div id='1.sentence-1' class='sentence'>Let <span class='texttt'>@</span> be the <span class='textsf'><i >operator</i></span>, and
let <i >C</i> be
<span class='texttt'>std<span class='operator'>&#x200b;::&#x200b;</span>equality_<span class='shy'></span>comparable_<span class='shy'></span>with</span> if <span class='texttt'>@</span> is <span class='texttt'><span class='operator'>=</span><span class='operator'>=</span></span>, and
<span class='texttt'>std<span class='operator'>&#x200b;::&#x200b;</span>three_<span class='shy'></span>way_<span class='shy'></span>comparable_<span class='shy'></span>with</span> if <span class='texttt'>@</span> is <span class='texttt'><span class='anglebracket'>&lt;</span><span class='operator'>=</span><span class='anglebracket'>&gt;</span></span><a class='hidden_link' href='#1.sentence-1'>.</a></div></div></div></div><div class='para' id='2'><div class='marginalizedparent'><a class='marginalized' href='#2'>2</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L6457'>#</a></div><div class='texpara'><div id='2.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
<span class='texttt'>std<span class='operator'>&#x200b;::&#x200b;</span>three_<span class='shy'></span>way_<span class='shy'></span>comparable_<span class='shy'></span>with</span> if <span class='texttt'>@</span> is <span class='texttt'><span class='anglebracket'>&lt;</span><span class='operator'>=</span><span class='anglebracket'>&gt;</span></span><a class='hidden_link' href='#1.sentence-1'>.</a></div></div></div></div><div class='para' id='2'><div class='marginalizedparent'><a class='marginalized' href='#2'>2</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L6457'>#</a></div><div class='texpara'><div id='2.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
<span class='codeblock'><span class='keyword'>return</span> lhs <span class='operator'>-</span> lhs<span class='operator'>.</span>absolute_point_origin @ rhs <span class='operator'>-</span> rhs<span class='operator'>.</span>absolute_point_origin;
</span></div></div></div></div><div class='para' id='3'><div class='marginalizedparent'><a class='marginalized' href='#3'>3</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L6464'>#</a></div><div class='texpara'><div id='3.sentence-1' class='sentence'><i >Remarks</i>: The expression in the <span class='textsf'><i >requires-clause</i></span> is equivalent to:
</span></div></div></div></div><div class='para' id='3'><div class='marginalizedparent'><a class='marginalized' href='#3'>3</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L6464'>#</a></div><div class='texpara'><div id='3.sentence-1' class='sentence'><i >Remarks</i>: The expression in the <span class='textsf'><i >requires-clause</i></span> is equivalent to:
<span class='codeblock'><i >C</i><span class='anglebracket'>&lt;</span>quantity_type, <span class='keyword'>typename</span> QP2<span class='operator'>::</span>quantity_type<span class='anglebracket'>&gt;</span>
</span></div></div></div></div><div class='para' id='4'><div class='marginalizedparent'><a class='marginalized' href='#4'>4</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L6471'>#</a></div><div class='texpara'><div id='4.sentence-1' class='sentence'><i >Recommended practice</i>: If the origins are equal, instead evaluate
</span></div></div></div></div><div class='para' id='4'><div class='marginalizedparent'><a class='marginalized' href='#4'>4</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L6471'>#</a></div><div class='texpara'><div id='4.sentence-1' class='sentence'><i >Recommended practice</i>: If the origins are equal, instead evaluate
<span class='codeblock'>lhs<span class='operator'>.</span>quantity_ref_from<span class='parenthesis'>(</span>point_origin<span class='parenthesis'>)</span> @ rhs<span class='operator'>.</span>quantity_ref_from<span class='parenthesis'>(</span>QP2<span class='operator'>::</span>point_origin<span class='parenthesis'>)</span>
</span></div></div></div></div></div></body></html>

View File

@ -7,24 +7,24 @@
<span class='keyword'>template</span><span class='anglebracket'>&lt;</span><span class='keyword'>typename</span> FwdQ, <a href='qty.syn.html#concept:QuantityOf' title='5.6.3&emsp;Class template quantity&emsp;[qty.syn]'><span id='conceptref:QuantityOf_'><span class='texttt'>QuantityOf</span></span></a><span class='anglebracket'>&lt;</span>quantity_spec<span class='anglebracket'>&gt;</span> Q <span class='operator'>=</span> std<span class='operator'>::</span>remove_cvref_t<span class='anglebracket'>&lt;</span>FwdQ<span class='anglebracket'>&gt;</span><span class='anglebracket'>&gt;</span>
<span class='keyword'>requires</span> std<span class='operator'>::</span>constructible_from<span class='anglebracket'>&lt;</span>quantity_type, FwdQ<span class='anglebracket'>&gt;</span>
<span class='keyword'>constexpr</span> quantity_point<span class='parenthesis'>(</span>FwdQ<span class='operator'>&amp;</span><span class='operator'>&amp;</span> q, <span class='keyword'>decltype</span><span class='parenthesis'>(</span>PO<span class='parenthesis'>)</span><span class='parenthesis'>)</span>;
</code></div></div></div><div class='para' id='1'><div class='marginalizedparent'><a class='marginalized' href='#1'>1</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L5983'>#</a></div><div class='texpara'><div id='1.sentence-1' class='sentence'><i >Effects</i>: Initializes <span class='texttt'><i >quantity-from-origin</i></span> with <span class='texttt'>std<span class='operator'>&#x200b;::&#x200b;</span>forward<span class='anglebracket'>&lt;</span>FwdQ<span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span>q<span class='parenthesis'>)</span></span><a class='hidden_link' href='#1.sentence-1'>.</a></div></div></div></div><div class='texpara'><div id='lib:quantity_point,constructor_'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:quantity_point,constructor_'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><span class='keyword'>typename</span> FwdQ, <a href='qty.pt.orig.concepts.html#concept:PointOrigin' title='5.7.2.2&emsp;Concepts&emsp;[qty.pt.orig.concepts]'><span id='conceptref:PointOrigin'><span class='texttt'>PointOrigin</span></span></a> PO2,
</code></div></div></div><div class='para' id='1'><div class='marginalizedparent'><a class='marginalized' href='#1'>1</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L5983'>#</a></div><div class='texpara'><div id='1.sentence-1' class='sentence'><i >Effects</i>: Initializes <span class='texttt'><i >quantity-from-origin</i></span> with <span class='texttt'>std<span class='operator'>&#x200b;::&#x200b;</span>forward<span class='anglebracket'>&lt;</span>FwdQ<span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span>q<span class='parenthesis'>)</span></span><a class='hidden_link' href='#1.sentence-1'>.</a></div></div></div></div><div class='texpara'><div id='lib:quantity_point,constructor_'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:quantity_point,constructor_'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><span class='keyword'>typename</span> FwdQ, <a href='qty.pt.orig.concepts.html#concept:PointOrigin' title='5.7.2.2&emsp;Concepts&emsp;[qty.pt.orig.concepts]'><span id='conceptref:PointOrigin'><span class='texttt'>PointOrigin</span></span></a> PO2,
<a href='qty.syn.html#concept:QuantityOf' title='5.6.3&emsp;Class template quantity&emsp;[qty.syn]'><span id='conceptref:QuantityOf__'><span class='texttt'>QuantityOf</span></span></a><span class='anglebracket'>&lt;</span>PO2<span class='operator'>::</span><span class='texttt'><i >quantity-spec</i></span><span class='anglebracket'>&gt;</span> Q <span class='operator'>=</span> std<span class='operator'>::</span>remove_cvref_t<span class='anglebracket'>&lt;</span>FwdQ<span class='anglebracket'>&gt;</span><span class='anglebracket'>&gt;</span>
<span class='keyword'>requires</span> std<span class='operator'>::</span>constructible_from<span class='anglebracket'>&lt;</span>quantity_type, FwdQ<span class='anglebracket'>&gt;</span> <span class='operator'>&amp;</span><span class='operator'>&amp;</span> <a class='index' id='conceptref:SameAbsolutePointOriginAs'></a><span class='texttt'><i >SameAbsolutePointOriginAs</i></span><span class='anglebracket'>&lt;</span>PO2, PO<span class='anglebracket'>&gt;</span>
<span class='keyword'>constexpr</span> quantity_point<span class='parenthesis'>(</span>FwdQ<span class='operator'>&amp;</span><span class='operator'>&amp;</span> q, PO2<span class='parenthesis'>)</span>;
</code></div></div></div><div class='para' id='2'><div class='marginalizedparent'><a class='marginalized' href='#2'>2</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L5997'>#</a></div><div class='texpara'><div id='2.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
</code></div></div></div><div class='para' id='2'><div class='marginalizedparent'><a class='marginalized' href='#2'>2</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L5997'>#</a></div><div class='texpara'><div id='2.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
<span class='codeblock'>quantity_point<span class='parenthesis'>(</span>quantity_point<span class='anglebracket'>&lt;</span>Q<span class='operator'>::</span>reference, PO2<span class='curlybracket'>{</span><span class='curlybracket'>}</span>, <span class='keyword'>typename</span> Q<span class='operator'>::</span>rep<span class='anglebracket'>&gt;</span><span class='curlybracket'>{</span>std<span class='operator'>::</span>forward<span class='anglebracket'>&lt;</span>FwdQ<span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span>q<span class='parenthesis'>)</span>,
PO2<span class='curlybracket'>{</span><span class='curlybracket'>}</span><span class='curlybracket'>}</span><span class='parenthesis'>)</span>
</span></div></div></div></div><div class='texpara'><div id='lib:quantity_point,constructor__'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:quantity_point,constructor__'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><a href='qty.pt.syn.html#concept:QuantityPointOf' title='5.7.4&emsp;Class template quantity_&shy;point&emsp;[qty.pt.syn]'><span id='conceptref:QuantityPointOf'><span class='texttt'>QuantityPointOf</span></span></a><span class='anglebracket'>&lt;</span>absolute_point_origin<span class='anglebracket'>&gt;</span> QP<span class='anglebracket'>&gt;</span>
<span class='keyword'>requires</span> std<span class='operator'>::</span>constructible_from<span class='anglebracket'>&lt;</span>quantity_type, <span class='keyword'>typename</span> QP<span class='operator'>::</span>quantity_type<span class='anglebracket'>&gt;</span>
<span class='keyword'>constexpr</span> <span class='keyword'>explicit</span><span class='parenthesis'>(</span><span class='operator'>!</span>std<span class='operator'>::</span>convertible_to<span class='anglebracket'>&lt;</span><span class='keyword'>typename</span> QP<span class='operator'>::</span>quantity_type, quantity_type<span class='anglebracket'>&gt;</span><span class='parenthesis'>)</span>
quantity_point<span class='parenthesis'>(</span><span class='keyword'>const</span> QP<span class='operator'>&amp;</span> qp<span class='parenthesis'>)</span>;
</code></div></div></div><div class='para' id='3'><div class='marginalizedparent'><a class='marginalized' href='#3'>3</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L6015'>#</a></div><div class='texpara'><div id='3.sentence-1' class='sentence'><i >Effects</i>: If <span class='texttt'>point_<span class='shy'></span>origin <span class='operator'>=</span><span class='operator'>=</span> QP<span class='operator'>&#x200b;::&#x200b;</span>point_<span class='shy'></span>origin</span> is <span class='texttt'><span class='literal'>true</span></span>,
</code></div></div></div><div class='para' id='3'><div class='marginalizedparent'><a class='marginalized' href='#3'>3</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L6015'>#</a></div><div class='texpara'><div id='3.sentence-1' class='sentence'><i >Effects</i>: If <span class='texttt'>point_<span class='shy'></span>origin <span class='operator'>=</span><span class='operator'>=</span> QP<span class='operator'>&#x200b;::&#x200b;</span>point_<span class='shy'></span>origin</span> is <span class='texttt'><span class='literal'>true</span></span>,
initializes <span class='texttt'><i >quantity-from-origin</i></span> with <span class='texttt'>qp<span class='operator'>.</span>quantity_<span class='shy'></span>ref_<span class='shy'></span>from<span class='parenthesis'>(</span>point_<span class='shy'></span>origin<span class='parenthesis'>)</span></span><a class='hidden_link' href='#3.sentence-1'>.</a></div> <div id='3.sentence-2' class='sentence'>Otherwise, initializes <span class='texttt'><i >quantity-from-origin</i></span> with <span class='texttt'>qp <span class='operator'>-</span> point_<span class='shy'></span>origin</span><a class='hidden_link' href='#3.sentence-2'>.</a></div></div></div></div><div class='texpara'><div id='lib:quantity_point,constructor___'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:quantity_point,constructor___'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><a href='qty.pt.like.html#concept:QuantityPointLike' title='5.7.3&emsp;Interoperability&emsp;[qty.pt.like]'><span id='conceptref:QuantityPointLike'><span class='texttt'>QuantityPointLike</span></span></a> QP<span class='anglebracket'>&gt;</span>
<span class='keyword'>requires</span> <i ><span class='texttt'>see below</span></i>
<span class='keyword'>constexpr</span> <span class='keyword'>explicit</span><span class='parenthesis'>(</span><i ><span class='texttt'>see below</span></i><span class='parenthesis'>)</span> quantity_point<span class='parenthesis'>(</span><span class='keyword'>const</span> QP<span class='operator'>&amp;</span> qp<span class='parenthesis'>)</span>;
</code></div></div></div><div class='para' id='4'><div class='marginalizedparent'><a class='marginalized' href='#4'>4</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L6030'>#</a></div><div class='texpara'><div id='4.sentence-1' class='sentence'>Let <span class='texttt'>Traits</span> be <span class='texttt'>quantity_<span class='shy'></span>point_<span class='shy'></span>like_<span class='shy'></span>traits<span class='anglebracket'>&lt;</span>QP<span class='anglebracket'>&gt;</span></span><a class='hidden_link' href='#4.sentence-1'>.</a></div></div></div></div><div class='para' id='5'><div class='marginalizedparent'><a class='marginalized' href='#5'>5</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L6033'>#</a></div><div class='texpara'><div id='5.sentence-1' class='sentence'><i >Effects</i>: Initializes <span class='texttt'><i >quantity-from-origin</i></span> with
</code></div></div></div><div class='para' id='4'><div class='marginalizedparent'><a class='marginalized' href='#4'>4</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L6030'>#</a></div><div class='texpara'><div id='4.sentence-1' class='sentence'>Let <span class='texttt'>Traits</span> be <span class='texttt'>quantity_<span class='shy'></span>point_<span class='shy'></span>like_<span class='shy'></span>traits<span class='anglebracket'>&lt;</span>QP<span class='anglebracket'>&gt;</span></span><a class='hidden_link' href='#4.sentence-1'>.</a></div></div></div></div><div class='para' id='5'><div class='marginalizedparent'><a class='marginalized' href='#5'>5</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L6033'>#</a></div><div class='texpara'><div id='5.sentence-1' class='sentence'><i >Effects</i>: Initializes <span class='texttt'><i >quantity-from-origin</i></span> with
<span class='codeblock'>Traits<span class='operator'>::</span>to_numerical_value<span class='parenthesis'>(</span>qp<span class='parenthesis'>)</span>, get_unit<span class='parenthesis'>(</span>Traits<span class='operator'>::</span>reference<span class='parenthesis'>)</span>
</span></div></div></div></div><div class='para' id='6'><div class='marginalizedparent'><a class='marginalized' href='#6'>6</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L6040'>#</a></div><div class='texpara'><div id='6.sentence-1' class='sentence'><i >Remarks</i>: The expression in the <span class='textsf'><i >requires-clause</i></span> is equivalent to:
</span></div></div></div></div><div class='para' id='6'><div class='marginalizedparent'><a class='marginalized' href='#6'>6</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L6040'>#</a></div><div class='texpara'><div id='6.sentence-1' class='sentence'><i >Remarks</i>: The expression in the <span class='textsf'><i >requires-clause</i></span> is equivalent to:
<span class='codeblock'><span class='parenthesis'>(</span>Traits<span class='operator'>::</span>point_origin <span class='operator'>=</span><span class='operator'>=</span> point_origin<span class='parenthesis'>)</span> <span class='operator'>&amp;</span><span class='operator'>&amp;</span>
std<span class='operator'>::</span>convertible_to<span class='anglebracket'>&lt;</span>quantity<span class='anglebracket'>&lt;</span>Traits<span class='operator'>::</span>reference, <span class='keyword'>typename</span> Traits<span class='operator'>::</span>rep<span class='anglebracket'>&gt;</span>, quantity_type<span class='anglebracket'>&gt;</span>
</span></div> <div id='6.sentence-2' class='sentence'>

View File

@ -1,6 +1,6 @@
<!DOCTYPE html><html lang='en'><head><title>[qty.pt.conv]</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.7</a> Quantity point <a class='abbr_ref' href='qty.pt.html#conv'>[qty.pt]</a></h2><h3 ><a class='secnum' style='min-width:80pt'>5.7.7</a> Conversions <a class='abbr_ref'>[qty.pt.conv]</a></h3><div class='texpara'><div id='lib:quantity_point,point_for'><div id='lib:point_for,quantity_point'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:point_for,quantity_point'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><a class='index' id='conceptref:SameAbsolutePointOriginAs'></a><span class='texttt'><i >SameAbsolutePointOriginAs</i></span><span class='anglebracket'>&lt;</span>absolute_point_origin<span class='anglebracket'>&gt;</span> NewPO<span class='anglebracket'>&gt;</span>
<span class='keyword'>constexpr</span> <a href='qty.pt.syn.html#concept:QuantityPointOf' title='5.7.4&emsp;Class template quantity_&shy;point&emsp;[qty.pt.syn]'><span id='conceptref:QuantityPointOf'><span class='texttt'>QuantityPointOf</span></span></a><span class='anglebracket'>&lt;</span><span class='parenthesis'>(</span>NewPO<span class='curlybracket'>{</span><span class='curlybracket'>}</span><span class='parenthesis'>)</span><span class='anglebracket'>&gt;</span> <span class='keyword'>auto</span> point_for<span class='parenthesis'>(</span>NewPO new_origin<span class='parenthesis'>)</span> <span class='keyword'>const</span>;
</code></div></div></div></div><div class='para' id='1'><div class='marginalizedparent'><a class='marginalized' href='#1'>1</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L6063'>#</a></div><div class='texpara'><div id='1.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
</code></div></div></div></div><div class='para' id='1'><div class='marginalizedparent'><a class='marginalized' href='#1'>1</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L6063'>#</a></div><div class='texpara'><div id='1.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
<span class='codeblock'><span class='keyword'>if</span> <span class='keyword'>constexpr</span> <span class='parenthesis'>(</span>std<span class='operator'>::</span>is_same_v<span class='anglebracket'>&lt;</span>NewPO, <span class='keyword'>decltype</span><span class='parenthesis'>(</span>point_origin<span class='parenthesis'>)</span><span class='anglebracket'>&gt;</span><span class='parenthesis'>)</span>
<span class='keyword'>return</span> <span class='operator'>*</span><span class='keyword'>this</span>;
<span class='keyword'>else</span>
@ -30,9 +30,9 @@
<a class='index' id='conceptref:UnitCompatibleWith___'></a><span class='texttt'><i >UnitCompatibleWith</i></span><span class='anglebracket'>&lt;</span>unit, quantity_spec<span class='anglebracket'>&gt;</span> ToU<span class='anglebracket'>&gt;</span>
<span class='keyword'>requires</span> <i ><span class='texttt'>see below</span></i>
<span class='keyword'>constexpr</span> <a href='qty.pt.syn.html#concept:QuantityPointOf' title='5.7.4&emsp;Class template quantity_&shy;point&emsp;[qty.pt.syn]'><span id='conceptref:QuantityPointOf______'><span class='texttt'>QuantityPointOf</span></span></a><span class='anglebracket'>&lt;</span>quantity_spec<span class='anglebracket'>&gt;</span> <span class='keyword'>auto</span> force_in<span class='parenthesis'>(</span>ToU<span class='parenthesis'>)</span> <span class='keyword'>const</span>;
</code></div></div></div></div></div></div><div class='para' id='2'><div class='marginalizedparent'><a class='marginalized' href='#2'>2</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L6105'>#</a></div><div class='texpara'><div id='2.sentence-1' class='sentence'>Let <span class='texttt'><i >converted-quantity-expr</i></span> be an expression denoting
the function call to the corresponding member of <span class='texttt'>quantity_<span class='shy'></span>ref_<span class='shy'></span>from<span class='parenthesis'>(</span>point_<span class='shy'></span>origin<span class='parenthesis'>)</span></span><a class='hidden_link' href='#2.sentence-1'>.</a></div></div></div></div><div class='para' id='3'><div class='marginalizedparent'><a class='marginalized' href='#3'>3</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L6109'>#</a></div><div class='texpara'><div id='3.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
</code></div></div></div></div></div></div><div class='para' id='2'><div class='marginalizedparent'><a class='marginalized' href='#2'>2</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L6105'>#</a></div><div class='texpara'><div id='2.sentence-1' class='sentence'>Let <span class='texttt'><i >converted-quantity-expr</i></span> be an expression denoting
the function call to the corresponding member of <span class='texttt'>quantity_<span class='shy'></span>ref_<span class='shy'></span>from<span class='parenthesis'>(</span>point_<span class='shy'></span>origin<span class='parenthesis'>)</span></span><a class='hidden_link' href='#2.sentence-1'>.</a></div></div></div></div><div class='para' id='3'><div class='marginalizedparent'><a class='marginalized' href='#3'>3</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L6109'>#</a></div><div class='texpara'><div id='3.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
<span class='codeblock'><span class='keyword'>return</span> <span class='operator'>::</span>mp_units<span class='operator'>::</span>quantity_point<span class='curlybracket'>{</span><i >converted-quantity-expr</i>, point_origin<span class='curlybracket'>}</span>;
</span></div></div></div></div><div class='para' id='4'><div class='marginalizedparent'><a class='marginalized' href='#4'>4</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L6116'>#</a></div><div class='texpara'><div id='4.sentence-1' class='sentence'><i >Remarks</i>: The expression in the <span class='textsf'><i >requires-clause</i></span> is equivalent to:
</span></div></div></div></div><div class='para' id='4'><div class='marginalizedparent'><a class='marginalized' href='#4'>4</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L6116'>#</a></div><div class='texpara'><div id='4.sentence-1' class='sentence'><i >Remarks</i>: The expression in the <span class='textsf'><i >requires-clause</i></span> is equivalent to:
<span class='codeblock'><span class='keyword'>requires</span> <span class='curlybracket'>{</span> <i >converted-quantity-expr</i>; <span class='curlybracket'>}</span>
</span></div></div></div></div></div></body></html>

View File

@ -4,9 +4,9 @@
<span class='keyword'>template</span><span class='anglebracket'>&lt;</span><span class='keyword'>typename</span> QP_, <a href='qty.pt.like.html#concept:QuantityPointLike' title='5.7.3&emsp;Interoperability&emsp;[qty.pt.like]'><span id='conceptref:QuantityPointLike_'><span class='texttt'>QuantityPointLike</span></span></a> QP <span class='operator'>=</span> std<span class='operator'>::</span>remove_cvref_t<span class='anglebracket'>&lt;</span>QP_<span class='anglebracket'>&gt;</span><span class='anglebracket'>&gt;</span>
<span class='keyword'>requires</span> <i ><span class='texttt'>see below</span></i>
<span class='keyword'>constexpr</span> <span class='keyword'>explicit</span><span class='parenthesis'>(</span><i ><span class='texttt'>see below</span></i><span class='parenthesis'>)</span> <span class='keyword'>operator</span> QP_<span class='parenthesis'>(</span><span class='parenthesis'>)</span> <span class='operator'>&amp;</span><span class='operator'>&amp;</span> <span class='keyword'>noexcept</span><span class='parenthesis'>(</span><i ><span class='texttt'>see below</span></i><span class='parenthesis'>)</span>;
</code></div></div></div><div class='para' id='1'><div class='marginalizedparent'><a class='marginalized' href='#1'>1</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L6195'>#</a></div><div class='texpara'><div id='1.sentence-1' class='sentence'>Let <span class='texttt'>Traits</span> be <span class='texttt'>quantity_<span class='shy'></span>point_<span class='shy'></span>like_<span class='shy'></span>traits<span class='anglebracket'>&lt;</span>QP<span class='anglebracket'>&gt;</span></span><a class='hidden_link' href='#1.sentence-1'>.</a></div> <div id='1.sentence-2' class='sentence'>Let <span class='texttt'><i >result-expr</i></span> be
</code></div></div></div><div class='para' id='1'><div class='marginalizedparent'><a class='marginalized' href='#1'>1</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L6195'>#</a></div><div class='texpara'><div id='1.sentence-1' class='sentence'>Let <span class='texttt'>Traits</span> be <span class='texttt'>quantity_<span class='shy'></span>point_<span class='shy'></span>like_<span class='shy'></span>traits<span class='anglebracket'>&lt;</span>QP<span class='anglebracket'>&gt;</span></span><a class='hidden_link' href='#1.sentence-1'>.</a></div> <div id='1.sentence-2' class='sentence'>Let <span class='texttt'><i >result-expr</i></span> be
<span class='codeblock'>Traits<span class='operator'>::</span>from_numerical_value<span class='parenthesis'>(</span>std<span class='operator'>::</span>move<span class='parenthesis'>(</span><i >quantity-from-origin</i><span class='parenthesis'>)</span><span class='operator'>.</span><i >numerical-value</i><span class='parenthesis'>)</span>
</span></div></div></div></div><div class='para' id='2'><div class='marginalizedparent'><a class='marginalized' href='#2'>2</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L6202'>#</a></div><div class='texpara'><div id='2.sentence-1' class='sentence'><i >Returns</i>: <span class='texttt'><i >result-expr</i></span><a class='hidden_link' href='#2.sentence-1'>.</a></div></div></div></div><div class='para' id='3'><div class='marginalizedparent'><a class='marginalized' href='#3'>3</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L6206'>#</a></div><div class='texpara'><div id='3.sentence-1' class='sentence'><i >Remarks</i>: The expression in the <span class='textsf'><i >requires-clause</i></span> is equivalent to:
</span></div></div></div></div><div class='para' id='2'><div class='marginalizedparent'><a class='marginalized' href='#2'>2</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L6202'>#</a></div><div class='texpara'><div id='2.sentence-1' class='sentence'><i >Returns</i>: <span class='texttt'><i >result-expr</i></span><a class='hidden_link' href='#2.sentence-1'>.</a></div></div></div></div><div class='para' id='3'><div class='marginalizedparent'><a class='marginalized' href='#3'>3</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L6206'>#</a></div><div class='texpara'><div id='3.sentence-1' class='sentence'><i >Remarks</i>: The expression in the <span class='textsf'><i >requires-clause</i></span> is equivalent to:
<span class='codeblock'><span class='parenthesis'>(</span>point_origin <span class='operator'>=</span><span class='operator'>=</span> Traits<span class='operator'>::</span>point_origin<span class='parenthesis'>)</span> <span class='operator'>&amp;</span><span class='operator'>&amp;</span>
std<span class='operator'>::</span>convertible_to<span class='anglebracket'>&lt;</span>quantity_type, quantity<span class='anglebracket'>&lt;</span>Traits<span class='operator'>::</span>reference, <span class='keyword'>typename</span> Traits<span class='operator'>::</span>rep<span class='anglebracket'>&gt;</span><span class='anglebracket'>&gt;</span>
</span></div> <div id='3.sentence-2' class='sentence'>

View File

@ -1,3 +1,3 @@
<!DOCTYPE html><html lang='en'><head><title>[qty.pt.general]</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.7</a> Quantity point <a class='abbr_ref' href='qty.pt.html#general'>[qty.pt]</a></h2><h3 ><a class='secnum' style='min-width:80pt'>5.7.1</a> General <a class='abbr_ref'>[qty.pt.general]</a></h3><div class='para' id='1'><div class='marginalizedparent'><a class='marginalized' href='#1'>1</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L5448'>#</a></div><div class='texpara'><div id='1.sentence-1' class='sentence'>Subclause <a href='qty.pt.html' title='5.7&emsp;Quantity point'>[qty.<span class='shy'></span>pt]</a> describes the class template <span class='texttt'>quantity_<span class='shy'></span>point</span>
<!DOCTYPE html><html lang='en'><head><title>[qty.pt.general]</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.7</a> Quantity point <a class='abbr_ref' href='qty.pt.html#general'>[qty.pt]</a></h2><h3 ><a class='secnum' style='min-width:80pt'>5.7.1</a> General <a class='abbr_ref'>[qty.pt.general]</a></h3><div class='para' id='1'><div class='marginalizedparent'><a class='marginalized' href='#1'>1</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L5448'>#</a></div><div class='texpara'><div id='1.sentence-1' class='sentence'>Subclause <a href='qty.pt.html' title='5.7&emsp;Quantity point'>[qty.<span class='shy'></span>pt]</a> describes the class template <span class='texttt'>quantity_<span class='shy'></span>point</span>
that represents the value of a quantity (<a href="https://www.electropedia.org/iev/iev.nsf/display?openform&ievref=112-01-28">IEC 60050, 112-01-28</a>)
that is an element of an affine space (<a href="https://www.electropedia.org/iev/iev.nsf/display?openform&ievref=102-03-02,102-04-01">IEC 60050, 102-03-02,102-04-01</a>)<a class='hidden_link' href='#1.sentence-1'>.</a></div></div></div></div></body></html>

View File

@ -1,6 +1,6 @@
<!DOCTYPE html><html lang='en'><head><title>[qty.pt]</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.7</a> Quantity point <a class='abbr_ref'>[qty.pt]</a></h2><div id='general' class='section'><h3 ><a class='secnum' href='#general' style='min-width:80pt'>5.7.1</a> General <a class='abbr_ref' href='qty.pt.general.html'>[qty.pt.general]</a></h3><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-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L5448'>#</a></div><div class='texpara'><div id='general-1.sentence-1' class='sentence'>Subclause [qty.<span class='shy'></span>pt] describes the class template <span class='texttt'>quantity_<span class='shy'></span>point</span>
<!DOCTYPE html><html lang='en'><head><title>[qty.pt]</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.7</a> Quantity point <a class='abbr_ref'>[qty.pt]</a></h2><div id='general' class='section'><h3 ><a class='secnum' href='#general' style='min-width:80pt'>5.7.1</a> General <a class='abbr_ref' href='qty.pt.general.html'>[qty.pt.general]</a></h3><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-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L5448'>#</a></div><div class='texpara'><div id='general-1.sentence-1' class='sentence'>Subclause [qty.<span class='shy'></span>pt] describes the class template <span class='texttt'>quantity_<span class='shy'></span>point</span>
that represents the value of a quantity (<a href="https://www.electropedia.org/iev/iev.nsf/display?openform&ievref=112-01-28">IEC 60050, 112-01-28</a>)
that is an element of an affine space (<a href="https://www.electropedia.org/iev/iev.nsf/display?openform&ievref=102-03-02,102-04-01">IEC 60050, 102-03-02,102-04-01</a>)<a class='hidden_link' href='#general-1.sentence-1'>.</a></div></div></div></div><div id='orig' class='section'><h3 ><a class='secnum' href='#orig' style='min-width:80pt'>5.7.2</a> Point origin <a class='abbr_ref' href='qty.pt.orig.html'>[qty.pt.orig]</a></h3><div id='orig.general' class='section'><h4 ><a class='secnum' href='#orig.general' style='min-width:95pt'>5.7.2.1</a> General <a class='abbr_ref' href='qty.pt.orig.general.html'>[qty.pt.orig.general]</a></h4><div class='para' id='orig.general-1'><div class='marginalizedparent'><a class='marginalized' href='#orig.general-1'>1</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L5457'>#</a></div><div class='texpara'><div id='orig.general-1.sentence-1' class='sentence'>This subclause specifies the components
that is an element of an affine space (<a href="https://www.electropedia.org/iev/iev.nsf/display?openform&ievref=102-03-02,102-04-01">IEC 60050, 102-03-02,102-04-01</a>)<a class='hidden_link' href='#general-1.sentence-1'>.</a></div></div></div></div><div id='orig' class='section'><h3 ><a class='secnum' href='#orig' style='min-width:80pt'>5.7.2</a> Point origin <a class='abbr_ref' href='qty.pt.orig.html'>[qty.pt.orig]</a></h3><div id='orig.general' class='section'><h4 ><a class='secnum' href='#orig.general' style='min-width:95pt'>5.7.2.1</a> General <a class='abbr_ref' href='qty.pt.orig.general.html'>[qty.pt.orig.general]</a></h4><div class='para' id='orig.general-1'><div class='marginalizedparent'><a class='marginalized' href='#orig.general-1'>1</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L5457'>#</a></div><div class='texpara'><div id='orig.general-1.sentence-1' class='sentence'>This subclause specifies the components
for defining the origin of an affine space<a class='hidden_link' href='#orig.general-1.sentence-1'>.</a></div> <div id='orig.general-1.sentence-2' class='sentence'>An <a class='hidden_link' href='#def:origin' title='5.7.2.1&emsp;General&emsp;[qty.pt.orig.general]'><span id='def:origin'><i >origin</i></span></a> is a point from which measurements (<a href="https://www.electropedia.org/iev/iev.nsf/display?openform&ievref=112-04-01">IEC 60050, 112-04-01</a>) take place<a class='hidden_link' href='#orig.general-1.sentence-2'>.</a></div></div></div></div><div id='orig.concepts' class='section'><h4 ><a class='secnum' href='#orig.concepts' style='min-width:95pt'>5.7.2.2</a> Concepts <a class='abbr_ref' href='qty.pt.orig.concepts.html'>[qty.pt.orig.concepts]</a></h4><div class='texpara'><div class='itemdecl' id='orig.concepts-itemdecl:1'><div class='marginalizedparent'><a class='itemDeclLink' href='#orig.concepts-itemdecl:1'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><span class='keyword'>typename</span> T<span class='anglebracket'>&gt;</span>
<span class='keyword'>concept</span> <a class='hidden_link' href='#concept:PointOrigin' title='5.7.2.2&emsp;Concepts&emsp;[qty.pt.orig.concepts]'><span id='concept:PointOrigin'><span id='lib:PointOrigin'><span class='texttt'>PointOrigin</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'>&lt;</span>T<span class='anglebracket'>&gt;</span> <span class='operator'>&amp;</span><span class='operator'>&amp;</span> std<span class='operator'>::</span>derived_from<span class='anglebracket'>&lt;</span>T, <span class='texttt'><i >point-origin-interface</i></span><span class='anglebracket'>&gt;</span>;
@ -18,7 +18,7 @@ for defining the origin of an affine space<a class='hidden_link' href='#orig.gen
<span class='curlybracket'>}</span>;
<span class='curlybracket'>}</span>
</span></div><div class='para' id='qty.abs.pt.orig-1'><div class='marginalizedparent'><a class='marginalized' href='#qty.abs.pt.orig-1'>1</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L5491'>#</a></div><div class='texpara'><div id='qty.abs.pt.orig-1.sentence-1' class='sentence'>An <a class='hidden_link' href='#def:origin,absolute' title='5.7.2.3.1&emsp;Absolute&emsp;[qty.abs.pt.orig]'><span id='def:origin,absolute'><i >absolute origin</i></span></a> is an origin
</span></div><div class='para' id='qty.abs.pt.orig-1'><div class='marginalizedparent'><a class='marginalized' href='#qty.abs.pt.orig-1'>1</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L5491'>#</a></div><div class='texpara'><div id='qty.abs.pt.orig-1.sentence-1' class='sentence'>An <a class='hidden_link' href='#def:origin,absolute' title='5.7.2.3.1&emsp;Absolute&emsp;[qty.abs.pt.orig]'><span id='def:origin,absolute'><i >absolute origin</i></span></a> is an origin
chosen by convention and not defined in terms of another origin<a class='hidden_link' href='#qty.abs.pt.orig-1.sentence-1'>.</a></div> <div id='qty.abs.pt.orig-1.sentence-2' class='sentence'>A specialization of <span class='texttt'>absolute_<span class='shy'></span>point_<span class='shy'></span>origin</span> is used as a base type when defining an absolute origin<a class='hidden_link' href='#qty.abs.pt.orig-1.sentence-2'>.</a></div> <div id='qty.abs.pt.orig-1.sentence-3' class='sentence'><span class='texttt'>QS</span> is the quantity the origin represents<a class='hidden_link' href='#qty.abs.pt.orig-1.sentence-3'>.</a></div></div></div></div><div id='qty.rel.pt.orig' class='section'><h4 ><a class='secnum' href='#qty.rel.pt.orig' style='min-width:110pt'>5.7.2.3.2</a> Relative <a class='abbr_ref' href='qty.rel.pt.orig.html'>[qty.rel.pt.orig]</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'>&lt;</span><a href='#concept:QuantityPoint' title='5.7.4&emsp;Class template quantity_&shy;point&emsp;[qty.pt.syn]'><span id='conceptref:QuantityPoint'><span class='tcode_in_codeblock'>QuantityPoint</span></span></a> <span class='keyword'>auto</span> QP<span class='anglebracket'>&gt;</span>
@ -30,8 +30,8 @@ chosen by convention and not defined in terms of another origin<a class='hidden_
<span class='curlybracket'>}</span>;
<span class='curlybracket'>}</span>
</span></div><div class='para' id='qty.rel.pt.orig-1'><div class='marginalizedparent'><a class='marginalized' href='#qty.rel.pt.orig-1'>1</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L5513'>#</a></div><div class='texpara'><div id='qty.rel.pt.orig-1.sentence-1' class='sentence'>A <a class='hidden_link' href='#def:origin,relative' title='5.7.2.3.2&emsp;Relative&emsp;[qty.rel.pt.orig]'><span id='def:origin,relative'><i >relative origin</i></span></a> is an origin
of a subspace (<a href="https://www.electropedia.org/iev/iev.nsf/display?openform&ievref=102-03-03">IEC 60050, 102-03-03</a>)<a class='hidden_link' href='#qty.rel.pt.orig-1.sentence-1'>.</a></div> <div id='qty.rel.pt.orig-1.sentence-2' class='sentence'>A specialization of <span class='texttt'>relative_<span class='shy'></span>point_<span class='shy'></span>origin</span> is used as a base type when defining a relative origin <i >O</i><a class='hidden_link' href='#qty.rel.pt.orig-1.sentence-2'>.</a></div> <div id='qty.rel.pt.orig-1.sentence-3' class='sentence'><i >O</i> is offset from <span class='texttt'>QP<span class='operator'>.</span>absolute_<span class='shy'></span>point_<span class='shy'></span>origin</span> by <span class='texttt'>QP<span class='operator'>.</span>quantity_<span class='shy'></span>from_<span class='shy'></span>zero<span class='parenthesis'>(</span><span class='parenthesis'>)</span></span><a class='hidden_link' href='#qty.rel.pt.orig-1.sentence-3'>.</a></div></div></div><div class='para' id='qty.rel.pt.orig-2'><div class='marginalizedparent'><a class='marginalized' href='#qty.rel.pt.orig-2'>2</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L5519'>#</a></div><div class='texpara'><div id='qty.rel.pt.orig-2.sentence-1' class='sentence'>The member <span class='texttt'><i >quantity-spec</i></span> is equal to
</span></div><div class='para' id='qty.rel.pt.orig-1'><div class='marginalizedparent'><a class='marginalized' href='#qty.rel.pt.orig-1'>1</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L5513'>#</a></div><div class='texpara'><div id='qty.rel.pt.orig-1.sentence-1' class='sentence'>A <a class='hidden_link' href='#def:origin,relative' title='5.7.2.3.2&emsp;Relative&emsp;[qty.rel.pt.orig]'><span id='def:origin,relative'><i >relative origin</i></span></a> is an origin
of a subspace (<a href="https://www.electropedia.org/iev/iev.nsf/display?openform&ievref=102-03-03">IEC 60050, 102-03-03</a>)<a class='hidden_link' href='#qty.rel.pt.orig-1.sentence-1'>.</a></div> <div id='qty.rel.pt.orig-1.sentence-2' class='sentence'>A specialization of <span class='texttt'>relative_<span class='shy'></span>point_<span class='shy'></span>origin</span> is used as a base type when defining a relative origin <i >O</i><a class='hidden_link' href='#qty.rel.pt.orig-1.sentence-2'>.</a></div> <div id='qty.rel.pt.orig-1.sentence-3' class='sentence'><i >O</i> is offset from <span class='texttt'>QP<span class='operator'>.</span>absolute_<span class='shy'></span>point_<span class='shy'></span>origin</span> by <span class='texttt'>QP<span class='operator'>.</span>quantity_<span class='shy'></span>from_<span class='shy'></span>zero<span class='parenthesis'>(</span><span class='parenthesis'>)</span></span><a class='hidden_link' href='#qty.rel.pt.orig-1.sentence-3'>.</a></div></div></div><div class='para' id='qty.rel.pt.orig-2'><div class='marginalizedparent'><a class='marginalized' href='#qty.rel.pt.orig-2'>2</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L5519'>#</a></div><div class='texpara'><div id='qty.rel.pt.orig-2.sentence-1' class='sentence'>The member <span class='texttt'><i >quantity-spec</i></span> is equal to
<span class='texttt'>QP<span class='operator'>.</span>point_<span class='shy'></span>origin<span class='operator'>.</span><span class='texttt'><i >quantity-spec</i></span></span> if
<span class='codeblock'><a class='index' id='conceptref:QuantityKindSpec'></a><i >QuantityKindSpec</i><span class='anglebracket'>&lt;</span><span class='keyword'>decltype</span><span class='parenthesis'>(</span><span class='keyword'>auto</span><span class='parenthesis'>(</span>QP<span class='operator'>.</span><i >quantity-spec</i><span class='parenthesis'>)</span><span class='parenthesis'>)</span><span class='anglebracket'>&gt;</span>
</span>
@ -42,7 +42,7 @@ to <span class='texttt'>QP<span class='operator'>.</span><span class='texttt'><i
<span class='keyword'>struct</span> <span id='lib:zeroth_point_origin_'><a class='hidden_link' href='#lib:zeroth_point_origin_' title='5.7.2.3.3&emsp;Zeroth&emsp;[qty.zeroth.pt.orig]'>zeroth_point_origin_</a></span> <span class='keyword'>final</span> <span class='operator'>:</span> absolute_point_origin<span class='anglebracket'>&lt;</span>QS<span class='anglebracket'>&gt;</span> <span class='curlybracket'>{</span><span class='curlybracket'>}</span>;
<span class='curlybracket'>}</span>
</span></div><div class='para' id='qty.zeroth.pt.orig-1'><div class='marginalizedparent'><a class='marginalized' href='#qty.zeroth.pt.orig-1'>1</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L5539'>#</a></div><div class='texpara'><div id='qty.zeroth.pt.orig-1.sentence-1' class='sentence'><span class='texttt'>zeroth_<span class='shy'></span>point_<span class='shy'></span>origin_<span class='shy'></span><span class='anglebracket'>&lt;</span>QS<span class='anglebracket'>&gt;</span></span> represents an origin
</span></div><div class='para' id='qty.zeroth.pt.orig-1'><div class='marginalizedparent'><a class='marginalized' href='#qty.zeroth.pt.orig-1'>1</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L5539'>#</a></div><div class='texpara'><div id='qty.zeroth.pt.orig-1.sentence-1' class='sentence'><span class='texttt'>zeroth_<span class='shy'></span>point_<span class='shy'></span>origin_<span class='shy'></span><span class='anglebracket'>&lt;</span>QS<span class='anglebracket'>&gt;</span></span> represents an origin
chosen by convention as the value <span class='math'>0</span> of the quantity <span class='texttt'>QS</span><a class='hidden_link' href='#qty.zeroth.pt.orig-1.sentence-1'>.</a></div></div></div></div></div><div id='orig.ops' class='section'><h4 ><a class='secnum' href='#orig.ops' style='min-width:95pt'>5.7.2.4</a> Operations <a class='abbr_ref' href='qty.pt.orig.ops.html'>[qty.pt.orig.ops]</a></h4><div class='texpara'><span class='codeblock'><span class='keyword'>namespace</span> mp_units <span class='curlybracket'>{</span>
<span class='keyword'>struct</span> <i >point-origin-interface</i> <span class='curlybracket'>{</span>
@ -73,16 +73,16 @@ chosen by convention as the value <span class='math'>0</span> of the quantity <s
<span class='keyword'>template</span><span class='anglebracket'>&lt;</span><a href='qty.syn.html#concept:Quantity' title='5.6.3&emsp;Class template quantity&emsp;[qty.syn]'><span id='conceptref:Quantity___'><span class='texttt'>Quantity</span></span></a> FwdQ, <a href='#concept:PointOrigin' title='5.7.2.2&emsp;Concepts&emsp;[qty.pt.orig.concepts]'><span id='conceptref:PointOrigin___________'><span class='texttt'>PointOrigin</span></span></a> PO,
<a href='qty.syn.html#concept:QuantityOf' title='5.6.3&emsp;Class template quantity&emsp;[qty.syn]'><span id='conceptref:QuantityOf___'><span class='texttt'>QuantityOf</span></span></a><span class='anglebracket'>&lt;</span>PO<span class='operator'>::</span><span class='texttt'><i >quantity-spec</i></span><span class='anglebracket'>&gt;</span> Q <span class='operator'>=</span> std<span class='operator'>::</span>remove_cvref_t<span class='anglebracket'>&lt;</span>FwdQ<span class='anglebracket'>&gt;</span><span class='anglebracket'>&gt;</span>
<span class='keyword'>friend</span> <span class='keyword'>constexpr</span> quantity_point<span class='anglebracket'>&lt;</span>Q<span class='operator'>::</span>reference, PO<span class='curlybracket'>{</span><span class='curlybracket'>}</span>, <span class='keyword'>typename</span> Q<span class='operator'>::</span>rep<span class='anglebracket'>&gt;</span> <span class='keyword'>operator</span><span class='operator'>+</span><span class='parenthesis'>(</span>FwdQ<span class='operator'>&amp;</span><span class='operator'>&amp;</span> q, PO<span class='parenthesis'>)</span>;
</code></div></div></div></div></div></div><div class='para' id='orig.ops-1'><div class='marginalizedparent'><a class='marginalized' href='#orig.ops-1'>1</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L5584'>#</a></div><div class='texpara'><div id='orig.ops-1.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
</code></div></div></div></div></div></div><div class='para' id='orig.ops-1'><div class='marginalizedparent'><a class='marginalized' href='#orig.ops-1'>1</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L5584'>#</a></div><div class='texpara'><div id='orig.ops-1.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
<span class='texttt'><span class='keyword'>return</span> quantity_<span class='shy'></span>point<span class='curlybracket'>{</span>std<span class='operator'>&#x200b;::&#x200b;</span>forward<span class='anglebracket'>&lt;</span>FwdQ<span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span>q<span class='parenthesis'>)</span>, PO<span class='curlybracket'>{</span><span class='curlybracket'>}</span><span class='curlybracket'>}</span>;</span></div></div></div></div><div class='texpara'><div id='lib:quantity,operator-'><div id='lib:operator-,quantity'><div id='lib:point-origin-interface,operator-'><div id='lib:operator-,point-origin-interface'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:operator-,point-origin-interface'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><a href='#concept:PointOrigin' title='5.7.2.2&emsp;Concepts&emsp;[qty.pt.orig.concepts]'><span id='conceptref:PointOrigin____________'><span class='texttt'>PointOrigin</span></span></a> PO, <a href='qty.syn.html#concept:Quantity' title='5.6.3&emsp;Class template quantity&emsp;[qty.syn]'><span id='conceptref:Quantity____'><span class='texttt'>Quantity</span></span></a> Q<span class='anglebracket'>&gt;</span>
<span class='keyword'>requires</span> <a href='qty.ref.concepts.html#concept:ReferenceOf' title='5.4.5&emsp;Concepts&emsp;[qty.ref.concepts]'><span id='conceptref:ReferenceOf_'><span class='texttt'>ReferenceOf</span></span></a><span class='anglebracket'>&lt;</span><span class='keyword'>decltype</span><span class='parenthesis'>(</span><span class='keyword'>auto</span><span class='parenthesis'>(</span>Q<span class='operator'>::</span>reference<span class='parenthesis'>)</span><span class='parenthesis'>)</span>, PO<span class='operator'>::</span><span class='texttt'><i >quantity-spec</i></span><span class='anglebracket'>&gt;</span>
<span class='keyword'>friend</span> <span class='keyword'>constexpr</span> <a href='#concept:QuantityPoint' title='5.7.4&emsp;Class template quantity_&shy;point&emsp;[qty.pt.syn]'><span id='conceptref:QuantityPoint___'><span class='texttt'>QuantityPoint</span></span></a> <span class='keyword'>auto</span> <span class='keyword'>operator</span><span class='operator'>-</span><span class='parenthesis'>(</span>PO po, <span class='keyword'>const</span> Q<span class='operator'>&amp;</span> q<span class='parenthesis'>)</span>
<span class='keyword'>requires</span> <span class='keyword'>requires</span> <span class='curlybracket'>{</span> <span class='operator'>-</span>q; <span class='curlybracket'>}</span>;
</code></div></div></div></div></div></div><div class='para' id='orig.ops-2'><div class='marginalizedparent'><a class='marginalized' href='#orig.ops-2'>2</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L5600'>#</a></div><div class='texpara'><div id='orig.ops-2.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
</code></div></div></div></div></div></div><div class='para' id='orig.ops-2'><div class='marginalizedparent'><a class='marginalized' href='#orig.ops-2'>2</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L5600'>#</a></div><div class='texpara'><div id='orig.ops-2.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
<span class='texttt'><span class='keyword'>return</span> po <span class='operator'>+</span> <span class='operator'>-</span>q;</span></div></div></div></div><div class='texpara'><div id='lib:point-origin-interface,operator-_'><div id='lib:operator-,point-origin-interface_'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:operator-,point-origin-interface_'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><a href='#concept:PointOrigin' title='5.7.2.2&emsp;Concepts&emsp;[qty.pt.orig.concepts]'><span id='conceptref:PointOrigin_____________'><span class='texttt'>PointOrigin</span></span></a> PO1, <a class='index' id='conceptref:SameAbsolutePointOriginAs_'></a><span class='texttt'><i >SameAbsolutePointOriginAs</i></span><span class='anglebracket'>&lt;</span>PO1<span class='curlybracket'>{</span><span class='curlybracket'>}</span><span class='anglebracket'>&gt;</span> PO2<span class='anglebracket'>&gt;</span>
<span class='keyword'>requires</span> <i ><span class='texttt'>see below</span></i>
<span class='keyword'>friend</span> <span class='keyword'>constexpr</span> <a href='qty.syn.html#concept:Quantity' title='5.6.3&emsp;Class template quantity&emsp;[qty.syn]'><span id='conceptref:Quantity_____'><span class='texttt'>Quantity</span></span></a> <span class='keyword'>auto</span> <span class='keyword'>operator</span><span class='operator'>-</span><span class='parenthesis'>(</span>PO1 po1, PO2 po2<span class='parenthesis'>)</span>;
</code></div></div></div></div><div class='para' id='orig.ops-3'><div class='marginalizedparent'><a class='marginalized' href='#orig.ops-3'>3</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L5614'>#</a></div><div class='texpara'><div id='orig.ops-3.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
</code></div></div></div></div><div class='para' id='orig.ops-3'><div class='marginalizedparent'><a class='marginalized' href='#orig.ops-3'>3</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L5614'>#</a></div><div class='texpara'><div id='orig.ops-3.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
<span class='codeblock'><span class='keyword'>if</span> <span class='keyword'>constexpr</span> <span class='parenthesis'>(</span><i >is-derived-from-specialization-of</i><span class='anglebracket'>&lt;</span>PO1, absolute_point_origin<span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span><span class='parenthesis'>)</span><span class='parenthesis'>)</span> <span class='curlybracket'>{</span>
<span class='keyword'>return</span> po1 <span class='operator'>-</span> po2<span class='operator'>.</span><i >quantity-point</i>;
<span class='curlybracket'>}</span> <span class='keyword'>else</span> <span class='keyword'>if</span> <span class='keyword'>constexpr</span> <span class='parenthesis'>(</span><i >is-derived-from-specialization-of</i><span class='anglebracket'>&lt;</span>PO2, absolute_point_origin<span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span><span class='parenthesis'>)</span><span class='parenthesis'>)</span> <span class='curlybracket'>{</span>
@ -90,13 +90,13 @@ chosen by convention as the value <span class='math'>0</span> of the quantity <s
<span class='curlybracket'>}</span> <span class='keyword'>else</span> <span class='curlybracket'>{</span>
<span class='keyword'>return</span> po1<span class='operator'>.</span><i >quantity-point</i> <span class='operator'>-</span> po2<span class='operator'>.</span><i >quantity-point</i>;
<span class='curlybracket'>}</span>
</span></div></div></div></div><div class='para' id='orig.ops-4'><div class='marginalizedparent'><a class='marginalized' href='#orig.ops-4'>4</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L5627'>#</a></div><div class='texpara'><div id='orig.ops-4.sentence-1' class='sentence'><i >Remarks</i>: The expression in the <span class='textsf'><i >requires-clause</i></span> is equivalent to:
</span></div></div></div></div><div class='para' id='orig.ops-4'><div class='marginalizedparent'><a class='marginalized' href='#orig.ops-4'>4</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L5627'>#</a></div><div class='texpara'><div id='orig.ops-4.sentence-1' class='sentence'><i >Remarks</i>: The expression in the <span class='textsf'><i >requires-clause</i></span> is equivalent to:
<span class='codeblock'><a href='qty.spec.concepts.html#concept:QuantitySpecOf' title='5.4.3.2&emsp;Concepts&emsp;[qty.spec.concepts]'><span id='conceptref:QuantitySpecOf_'><span class='tcode_in_codeblock'>QuantitySpecOf</span></span></a><span class='anglebracket'>&lt;</span><span class='keyword'>decltype</span><span class='parenthesis'>(</span><span class='keyword'>auto</span><span class='parenthesis'>(</span>PO1<span class='operator'>::</span><i >quantity-spec</i><span class='parenthesis'>)</span><span class='parenthesis'>)</span>, PO2<span class='operator'>::</span><i >quantity-spec</i><span class='anglebracket'>&gt;</span> <span class='operator'>&amp;</span><span class='operator'>&amp;</span>
<span class='parenthesis'>(</span><i >is-derived-from-specialization-of</i><span class='anglebracket'>&lt;</span>PO1, relative_point_origin<span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span><span class='parenthesis'>)</span> <span class='operator'>|</span><span class='operator'>|</span>
<i >is-derived-from-specialization-of</i><span class='anglebracket'>&lt;</span>PO2, relative_point_origin<span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span><span class='parenthesis'>)</span><span class='parenthesis'>)</span>
</span></div></div></div></div><div class='texpara'><div id='lib:point-origin-interface,operator=='><div id='lib:operator==,point-origin-interface'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:operator==,point-origin-interface'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><a href='#concept:PointOrigin' title='5.7.2.2&emsp;Concepts&emsp;[qty.pt.orig.concepts]'><span id='conceptref:PointOrigin______________'><span class='texttt'>PointOrigin</span></span></a> PO1, <a href='#concept:PointOrigin' title='5.7.2.2&emsp;Concepts&emsp;[qty.pt.orig.concepts]'><span id='conceptref:PointOrigin_______________'><span class='texttt'>PointOrigin</span></span></a> PO2<span class='anglebracket'>&gt;</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>PO1 po1, PO2 po2<span class='parenthesis'>)</span>;
</code></div></div></div></div><div class='para' id='orig.ops-5'><div class='marginalizedparent'><a class='marginalized' href='#orig.ops-5'>5</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L5644'>#</a></div><div class='texpara'><div id='orig.ops-5.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
</code></div></div></div></div><div class='para' id='orig.ops-5'><div class='marginalizedparent'><a class='marginalized' href='#orig.ops-5'>5</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L5644'>#</a></div><div class='texpara'><div id='orig.ops-5.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
<span class='codeblock'><span class='keyword'>if</span> <span class='keyword'>constexpr</span> <span class='parenthesis'>(</span><i >is-derived-from-specialization-of</i><span class='anglebracket'>&lt;</span>PO1, absolute_point_origin<span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span><span class='parenthesis'>)</span> <span class='operator'>&amp;</span><span class='operator'>&amp;</span>
<i >is-derived-from-specialization-of</i><span class='anglebracket'>&lt;</span>PO2, absolute_point_origin<span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span><span class='parenthesis'>)</span><span class='parenthesis'>)</span>
<span class='keyword'>return</span> std<span class='operator'>::</span>is_same_v<span class='anglebracket'>&lt;</span>PO1, PO2<span class='anglebracket'>&gt;</span> <span class='operator'>|</span><span class='operator'>|</span>
@ -114,7 +114,7 @@ chosen by convention as the value <span class='math'>0</span> of the quantity <s
is_eq_zero<span class='parenthesis'>(</span>PO2<span class='operator'>::</span><i >quantity-point</i><span class='operator'>.</span>quantity_from_zero<span class='parenthesis'>(</span><span class='parenthesis'>)</span><span class='parenthesis'>)</span>;
</span></div></div></div></div></div><div id='orig.utils' class='section'><h4 ><a class='secnum' href='#orig.utils' style='min-width:95pt'>5.7.2.5</a> Utilities <a class='abbr_ref' href='qty.pt.orig.utils.html'>[qty.pt.orig.utils]</a></h4><div id='qty.same.abs.pt.origs' class='section'><h4 ><a class='secnum' href='#qty.same.abs.pt.origs' style='min-width:110pt'>5.7.2.5.1</a> Same absolute <a class='abbr_ref' href='qty.same.abs.pt.origs.html'>[qty.same.abs.pt.origs]</a></h4><div class='texpara'><div id='lib:same-absolute-point-origins,PointOrigin'><div id='lib:PointOrigin,same-absolute-point-origins'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:PointOrigin,same-absolute-point-origins'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><a href='#concept:PointOrigin' title='5.7.2.2&emsp;Concepts&emsp;[qty.pt.orig.concepts]'><span id='conceptref:PointOrigin________________'><span class='texttt'>PointOrigin</span></span></a> PO1, <a href='#concept:PointOrigin' title='5.7.2.2&emsp;Concepts&emsp;[qty.pt.orig.concepts]'><span id='conceptref:PointOrigin_________________'><span class='texttt'>PointOrigin</span></span></a> PO2<span class='anglebracket'>&gt;</span>
<span class='keyword'>consteval</span> <span class='keyword'>bool</span> <span class='texttt'><i >same-absolute-point-origins</i></span><span class='parenthesis'>(</span>PO1 po1, PO2 po2<span class='parenthesis'>)</span>; <span class='comment'>// <i >exposition only</i></span>
</code></div></div></div></div><div class='para' id='qty.same.abs.pt.origs-1'><div class='marginalizedparent'><a class='marginalized' href='#qty.same.abs.pt.origs-1'>1</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L5677'>#</a></div><div class='texpara'><div id='qty.same.abs.pt.origs-1.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
</code></div></div></div></div><div class='para' id='qty.same.abs.pt.origs-1'><div class='marginalizedparent'><a class='marginalized' href='#qty.same.abs.pt.origs-1'>1</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L5677'>#</a></div><div class='texpara'><div id='qty.same.abs.pt.origs-1.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
<span class='codeblock'><span class='keyword'>if</span> <span class='keyword'>constexpr</span> <span class='parenthesis'>(</span><i >is-derived-from-specialization-of</i><span class='anglebracket'>&lt;</span>PO1, absolute_point_origin<span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span><span class='parenthesis'>)</span> <span class='operator'>&amp;</span><span class='operator'>&amp;</span>
<i >is-derived-from-specialization-of</i><span class='anglebracket'>&lt;</span>PO2, absolute_point_origin<span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span><span class='parenthesis'>)</span><span class='parenthesis'>)</span>
<span class='keyword'>return</span> po1 <span class='operator'>=</span><span class='operator'>=</span> po2;
@ -129,7 +129,7 @@ chosen by convention as the value <span class='math'>0</span> of the quantity <s
<span class='keyword'>return</span> <span class='literal'>false</span>;
</span></div></div></div></div></div><div id='qty.def.pt.orig' class='section'><h4 ><a class='secnum' href='#qty.def.pt.orig' style='min-width:110pt'>5.7.2.5.2</a> Default <a class='abbr_ref' href='qty.def.pt.orig.html'>[qty.def.pt.orig]</a></h4><div class='texpara'><div id='lib:default_point_origin,Reference'><div id='lib:Reference,default_point_origin'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:Reference,default_point_origin'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><a href='qty.ref.concepts.html#concept:Reference' title='5.4.5&emsp;Concepts&emsp;[qty.ref.concepts]'><span id='conceptref:Reference'><span class='texttt'>Reference</span></span></a> R<span class='anglebracket'>&gt;</span>
<span class='keyword'>consteval</span> <a href='#concept:PointOriginFor' title='5.7.2.2&emsp;Concepts&emsp;[qty.pt.orig.concepts]'><span id='conceptref:PointOriginFor'><span class='texttt'>PointOriginFor</span></span></a><span class='anglebracket'>&lt;</span>get_quantity_spec<span class='parenthesis'>(</span>R<span class='curlybracket'>{</span><span class='curlybracket'>}</span><span class='parenthesis'>)</span><span class='anglebracket'>&gt;</span> <span class='keyword'>auto</span> default_point_origin<span class='parenthesis'>(</span>R<span class='parenthesis'>)</span>;
</code></div></div></div></div><div class='para' id='qty.def.pt.orig-1'><div class='marginalizedparent'><a class='marginalized' href='#qty.def.pt.orig-1'>1</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L5705'>#</a></div><div class='texpara'><div id='qty.def.pt.orig-1.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
</code></div></div></div></div><div class='para' id='qty.def.pt.orig-1'><div class='marginalizedparent'><a class='marginalized' href='#qty.def.pt.orig-1'>1</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L5705'>#</a></div><div class='texpara'><div id='qty.def.pt.orig-1.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
<span class='codeblock'><span class='keyword'>if</span> <span class='keyword'>constexpr</span> <span class='parenthesis'>(</span><span class='keyword'>requires</span> <span class='curlybracket'>{</span> get_unit<span class='parenthesis'>(</span>R<span class='curlybracket'>{</span><span class='curlybracket'>}</span><span class='parenthesis'>)</span><span class='operator'>.</span><i >point-origin</i>; <span class='curlybracket'>}</span><span class='parenthesis'>)</span>
<span class='keyword'>return</span> get_unit<span class='parenthesis'>(</span>R<span class='curlybracket'>{</span><span class='curlybracket'>}</span><span class='parenthesis'>)</span><span class='operator'>.</span><i >point-origin</i>;
<span class='keyword'>else</span>
@ -336,8 +336,8 @@ quantity_point<span class='parenthesis'>(</span>Q, PO<span class='parenthesis'>)
<span class='operator'>-</span><span class='anglebracket'>&gt;</span> quantity_point<span class='anglebracket'>&lt;</span>Traits<span class='operator'>::</span>reference, Traits<span class='operator'>::</span>point_origin, <span class='keyword'>typename</span> Traits<span class='operator'>::</span>rep<span class='anglebracket'>&gt;</span>;
<span class='curlybracket'>}</span>
</span></div><div class='para' id='syn-1'><div class='marginalizedparent'><a class='marginalized' href='#syn-1'>1</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L5928'>#</a></div><div class='texpara'><div id='syn-1.sentence-1' class='sentence'><span class='texttt'>quantity_<span class='shy'></span>point<span class='anglebracket'>&lt;</span>R, PO, Rep<span class='anglebracket'>&gt;</span></span> is a structural type (<a href="https://wg21.link/temp.paramterm.structural.type">N4971, [temp.param]</a>)
if <span class='texttt'>Rep</span> is a structural type<a class='hidden_link' href='#syn-1.sentence-1'>.</a></div></div></div><div class='para' id='syn-2'><div class='marginalizedparent'><a class='marginalized' href='#syn-2'>2</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L5932'>#</a></div><div class='texpara'><div id='syn-2.sentence-1' class='sentence'>The member <span class='texttt'>absolute_<span class='shy'></span>point_<span class='shy'></span>origin</span> is equal to <span class='texttt'>PO</span> if
</span></div><div class='para' id='syn-1'><div class='marginalizedparent'><a class='marginalized' href='#syn-1'>1</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L5928'>#</a></div><div class='texpara'><div id='syn-1.sentence-1' class='sentence'><span class='texttt'>quantity_<span class='shy'></span>point<span class='anglebracket'>&lt;</span>R, PO, Rep<span class='anglebracket'>&gt;</span></span> is a structural type (<a href="https://wg21.link/temp.paramterm.structural.type">N4971, [temp.param]</a>)
if <span class='texttt'>Rep</span> is a structural type<a class='hidden_link' href='#syn-1.sentence-1'>.</a></div></div></div><div class='para' id='syn-2'><div class='marginalizedparent'><a class='marginalized' href='#syn-2'>2</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L5932'>#</a></div><div class='texpara'><div id='syn-2.sentence-1' class='sentence'>The member <span class='texttt'>absolute_<span class='shy'></span>point_<span class='shy'></span>origin</span> is equal to <span class='texttt'>PO</span> if
<span class='codeblock'><i >is-derived-from-specialization-of</i><span class='anglebracket'>&lt;</span><span class='keyword'>decltype</span><span class='parenthesis'>(</span>PO<span class='parenthesis'>)</span>, absolute_point_origin<span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span><span class='parenthesis'>)</span>
</span>
is <span class='texttt'><span class='literal'>true</span></span>, and
@ -345,7 +345,7 @@ to <span class='texttt'>PO<span class='operator'>.</span><span class='texttt'><i
<span class='keyword'>requires</span> <i ><span class='texttt'>see below</span></i>;
<span class='keyword'>static</span> <span class='keyword'>constexpr</span> quantity_point max<span class='parenthesis'>(</span><span class='parenthesis'>)</span> <span class='keyword'>noexcept</span>
<span class='keyword'>requires</span> <i ><span class='texttt'>see below</span></i>;
</code></div></div></div></div></div></div><div class='para' id='static-1'><div class='marginalizedparent'><a class='marginalized' href='#static-1'>1</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L5952'>#</a></div><div class='texpara'><div id='static-1.sentence-1' class='sentence'>Let <i >F</i> be one of <span class='texttt'>min</span> and <span class='texttt'>max</span><a class='hidden_link' href='#static-1.sentence-1'>.</a></div></div></div></div><div class='para' id='static-2'><div class='marginalizedparent'><a class='marginalized' href='#static-2'>2</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L5955'>#</a></div><div class='texpara'><div id='static-2.sentence-1' class='sentence'><i >Returns</i>: <span class='texttt'><span class='curlybracket'>{</span>quantity_<span class='shy'></span>type<span class='operator'>&#x200b;::&#x200b;</span><i >F</i><span class='parenthesis'>(</span><span class='parenthesis'>)</span>, PO<span class='curlybracket'>}</span></span><a class='hidden_link' href='#static-2.sentence-1'>.</a></div></div></div></div><div class='para' id='static-3'><div class='marginalizedparent'><a class='marginalized' href='#static-3'>3</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L5959'>#</a></div><div class='texpara'><div id='static-3.sentence-1' class='sentence'><i >Remarks</i>: The expression in the <span class='textsf'><i >requires-clause</i></span> is equivalent to:
</code></div></div></div></div></div></div><div class='para' id='static-1'><div class='marginalizedparent'><a class='marginalized' href='#static-1'>1</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L5952'>#</a></div><div class='texpara'><div id='static-1.sentence-1' class='sentence'>Let <i >F</i> be one of <span class='texttt'>min</span> and <span class='texttt'>max</span><a class='hidden_link' href='#static-1.sentence-1'>.</a></div></div></div></div><div class='para' id='static-2'><div class='marginalizedparent'><a class='marginalized' href='#static-2'>2</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L5955'>#</a></div><div class='texpara'><div id='static-2.sentence-1' class='sentence'><i >Returns</i>: <span class='texttt'><span class='curlybracket'>{</span>quantity_<span class='shy'></span>type<span class='operator'>&#x200b;::&#x200b;</span><i >F</i><span class='parenthesis'>(</span><span class='parenthesis'>)</span>, PO<span class='curlybracket'>}</span></span><a class='hidden_link' href='#static-2.sentence-1'>.</a></div></div></div></div><div class='para' id='static-3'><div class='marginalizedparent'><a class='marginalized' href='#static-3'>3</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L5959'>#</a></div><div class='texpara'><div id='static-3.sentence-1' class='sentence'><i >Remarks</i>: The expression in the <span class='textsf'><i >requires-clause</i></span> is equivalent to:
<span class='codeblock'><span class='keyword'>requires</span> <span class='curlybracket'>{</span> quantity_type<span class='operator'>::</span><i >F</i><span class='parenthesis'>(</span><span class='parenthesis'>)</span>; <span class='curlybracket'>}</span>
</span></div></div></div></div></div><div id='cons' class='section'><h3 ><a class='secnum' href='#cons' style='min-width:80pt'>5.7.6</a> Constructors <a class='abbr_ref' href='qty.pt.cons.html'>[qty.pt.cons]</a></h3><div class='texpara'><div id='lib:quantity_point,constructor'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:quantity_point,constructor'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><span class='keyword'>typename</span> FwdQ, <a href='qty.syn.html#concept:QuantityOf' title='5.6.3&emsp;Class template quantity&emsp;[qty.syn]'><span id='conceptref:QuantityOf_______'><span class='texttt'>QuantityOf</span></span></a><span class='anglebracket'>&lt;</span>quantity_spec<span class='anglebracket'>&gt;</span> Q <span class='operator'>=</span> std<span class='operator'>::</span>remove_cvref_t<span class='anglebracket'>&lt;</span>FwdQ<span class='anglebracket'>&gt;</span><span class='anglebracket'>&gt;</span>
<span class='keyword'>requires</span> std<span class='operator'>::</span>constructible_from<span class='anglebracket'>&lt;</span>quantity_type, FwdQ<span class='anglebracket'>&gt;</span> <span class='operator'>&amp;</span><span class='operator'>&amp;</span>
@ -356,24 +356,24 @@ to <span class='texttt'>PO<span class='operator'>.</span><span class='texttt'><i
<span class='keyword'>template</span><span class='anglebracket'>&lt;</span><span class='keyword'>typename</span> FwdQ, <a href='qty.syn.html#concept:QuantityOf' title='5.6.3&emsp;Class template quantity&emsp;[qty.syn]'><span id='conceptref:QuantityOf________'><span class='texttt'>QuantityOf</span></span></a><span class='anglebracket'>&lt;</span>quantity_spec<span class='anglebracket'>&gt;</span> Q <span class='operator'>=</span> std<span class='operator'>::</span>remove_cvref_t<span class='anglebracket'>&lt;</span>FwdQ<span class='anglebracket'>&gt;</span><span class='anglebracket'>&gt;</span>
<span class='keyword'>requires</span> std<span class='operator'>::</span>constructible_from<span class='anglebracket'>&lt;</span>quantity_type, FwdQ<span class='anglebracket'>&gt;</span>
<span class='keyword'>constexpr</span> quantity_point<span class='parenthesis'>(</span>FwdQ<span class='operator'>&amp;</span><span class='operator'>&amp;</span> q, <span class='keyword'>decltype</span><span class='parenthesis'>(</span>PO<span class='parenthesis'>)</span><span class='parenthesis'>)</span>;
</code></div></div></div><div class='para' id='cons-1'><div class='marginalizedparent'><a class='marginalized' href='#cons-1'>1</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L5983'>#</a></div><div class='texpara'><div id='cons-1.sentence-1' class='sentence'><i >Effects</i>: Initializes <span class='texttt'><i >quantity-from-origin</i></span> with <span class='texttt'>std<span class='operator'>&#x200b;::&#x200b;</span>forward<span class='anglebracket'>&lt;</span>FwdQ<span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span>q<span class='parenthesis'>)</span></span><a class='hidden_link' href='#cons-1.sentence-1'>.</a></div></div></div></div><div class='texpara'><div id='lib:quantity_point,constructor_'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:quantity_point,constructor_'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><span class='keyword'>typename</span> FwdQ, <a href='#concept:PointOrigin' title='5.7.2.2&emsp;Concepts&emsp;[qty.pt.orig.concepts]'><span id='conceptref:PointOrigin___________________________'><span class='texttt'>PointOrigin</span></span></a> PO2,
</code></div></div></div><div class='para' id='cons-1'><div class='marginalizedparent'><a class='marginalized' href='#cons-1'>1</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L5983'>#</a></div><div class='texpara'><div id='cons-1.sentence-1' class='sentence'><i >Effects</i>: Initializes <span class='texttt'><i >quantity-from-origin</i></span> with <span class='texttt'>std<span class='operator'>&#x200b;::&#x200b;</span>forward<span class='anglebracket'>&lt;</span>FwdQ<span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span>q<span class='parenthesis'>)</span></span><a class='hidden_link' href='#cons-1.sentence-1'>.</a></div></div></div></div><div class='texpara'><div id='lib:quantity_point,constructor_'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:quantity_point,constructor_'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><span class='keyword'>typename</span> FwdQ, <a href='#concept:PointOrigin' title='5.7.2.2&emsp;Concepts&emsp;[qty.pt.orig.concepts]'><span id='conceptref:PointOrigin___________________________'><span class='texttt'>PointOrigin</span></span></a> PO2,
<a href='qty.syn.html#concept:QuantityOf' title='5.6.3&emsp;Class template quantity&emsp;[qty.syn]'><span id='conceptref:QuantityOf_________'><span class='texttt'>QuantityOf</span></span></a><span class='anglebracket'>&lt;</span>PO2<span class='operator'>::</span><span class='texttt'><i >quantity-spec</i></span><span class='anglebracket'>&gt;</span> Q <span class='operator'>=</span> std<span class='operator'>::</span>remove_cvref_t<span class='anglebracket'>&lt;</span>FwdQ<span class='anglebracket'>&gt;</span><span class='anglebracket'>&gt;</span>
<span class='keyword'>requires</span> std<span class='operator'>::</span>constructible_from<span class='anglebracket'>&lt;</span>quantity_type, FwdQ<span class='anglebracket'>&gt;</span> <span class='operator'>&amp;</span><span class='operator'>&amp;</span> <a class='index' id='conceptref:SameAbsolutePointOriginAs_____'></a><span class='texttt'><i >SameAbsolutePointOriginAs</i></span><span class='anglebracket'>&lt;</span>PO2, PO<span class='anglebracket'>&gt;</span>
<span class='keyword'>constexpr</span> quantity_point<span class='parenthesis'>(</span>FwdQ<span class='operator'>&amp;</span><span class='operator'>&amp;</span> q, PO2<span class='parenthesis'>)</span>;
</code></div></div></div><div class='para' id='cons-2'><div class='marginalizedparent'><a class='marginalized' href='#cons-2'>2</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L5997'>#</a></div><div class='texpara'><div id='cons-2.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
</code></div></div></div><div class='para' id='cons-2'><div class='marginalizedparent'><a class='marginalized' href='#cons-2'>2</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L5997'>#</a></div><div class='texpara'><div id='cons-2.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
<span class='codeblock'>quantity_point<span class='parenthesis'>(</span>quantity_point<span class='anglebracket'>&lt;</span>Q<span class='operator'>::</span>reference, PO2<span class='curlybracket'>{</span><span class='curlybracket'>}</span>, <span class='keyword'>typename</span> Q<span class='operator'>::</span>rep<span class='anglebracket'>&gt;</span><span class='curlybracket'>{</span>std<span class='operator'>::</span>forward<span class='anglebracket'>&lt;</span>FwdQ<span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span>q<span class='parenthesis'>)</span>,
PO2<span class='curlybracket'>{</span><span class='curlybracket'>}</span><span class='curlybracket'>}</span><span class='parenthesis'>)</span>
</span></div></div></div></div><div class='texpara'><div id='lib:quantity_point,constructor__'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:quantity_point,constructor__'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><a href='#concept:QuantityPointOf' title='5.7.4&emsp;Class template quantity_&shy;point&emsp;[qty.pt.syn]'><span id='conceptref:QuantityPointOf____________'><span class='texttt'>QuantityPointOf</span></span></a><span class='anglebracket'>&lt;</span>absolute_point_origin<span class='anglebracket'>&gt;</span> QP<span class='anglebracket'>&gt;</span>
<span class='keyword'>requires</span> std<span class='operator'>::</span>constructible_from<span class='anglebracket'>&lt;</span>quantity_type, <span class='keyword'>typename</span> QP<span class='operator'>::</span>quantity_type<span class='anglebracket'>&gt;</span>
<span class='keyword'>constexpr</span> <span class='keyword'>explicit</span><span class='parenthesis'>(</span><span class='operator'>!</span>std<span class='operator'>::</span>convertible_to<span class='anglebracket'>&lt;</span><span class='keyword'>typename</span> QP<span class='operator'>::</span>quantity_type, quantity_type<span class='anglebracket'>&gt;</span><span class='parenthesis'>)</span>
quantity_point<span class='parenthesis'>(</span><span class='keyword'>const</span> QP<span class='operator'>&amp;</span> qp<span class='parenthesis'>)</span>;
</code></div></div></div><div class='para' id='cons-3'><div class='marginalizedparent'><a class='marginalized' href='#cons-3'>3</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L6015'>#</a></div><div class='texpara'><div id='cons-3.sentence-1' class='sentence'><i >Effects</i>: If <span class='texttt'>point_<span class='shy'></span>origin <span class='operator'>=</span><span class='operator'>=</span> QP<span class='operator'>&#x200b;::&#x200b;</span>point_<span class='shy'></span>origin</span> is <span class='texttt'><span class='literal'>true</span></span>,
</code></div></div></div><div class='para' id='cons-3'><div class='marginalizedparent'><a class='marginalized' href='#cons-3'>3</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L6015'>#</a></div><div class='texpara'><div id='cons-3.sentence-1' class='sentence'><i >Effects</i>: If <span class='texttt'>point_<span class='shy'></span>origin <span class='operator'>=</span><span class='operator'>=</span> QP<span class='operator'>&#x200b;::&#x200b;</span>point_<span class='shy'></span>origin</span> is <span class='texttt'><span class='literal'>true</span></span>,
initializes <span class='texttt'><i >quantity-from-origin</i></span> with <span class='texttt'>qp<span class='operator'>.</span>quantity_<span class='shy'></span>ref_<span class='shy'></span>from<span class='parenthesis'>(</span>point_<span class='shy'></span>origin<span class='parenthesis'>)</span></span><a class='hidden_link' href='#cons-3.sentence-1'>.</a></div> <div id='cons-3.sentence-2' class='sentence'>Otherwise, initializes <span class='texttt'><i >quantity-from-origin</i></span> with <span class='texttt'>qp <span class='operator'>-</span> point_<span class='shy'></span>origin</span><a class='hidden_link' href='#cons-3.sentence-2'>.</a></div></div></div></div><div class='texpara'><div id='lib:quantity_point,constructor___'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:quantity_point,constructor___'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><a href='#concept:QuantityPointLike' title='5.7.3&emsp;Interoperability&emsp;[qty.pt.like]'><span id='conceptref:QuantityPointLike____'><span class='texttt'>QuantityPointLike</span></span></a> QP<span class='anglebracket'>&gt;</span>
<span class='keyword'>requires</span> <i ><span class='texttt'>see below</span></i>
<span class='keyword'>constexpr</span> <span class='keyword'>explicit</span><span class='parenthesis'>(</span><i ><span class='texttt'>see below</span></i><span class='parenthesis'>)</span> quantity_point<span class='parenthesis'>(</span><span class='keyword'>const</span> QP<span class='operator'>&amp;</span> qp<span class='parenthesis'>)</span>;
</code></div></div></div><div class='para' id='cons-4'><div class='marginalizedparent'><a class='marginalized' href='#cons-4'>4</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L6030'>#</a></div><div class='texpara'><div id='cons-4.sentence-1' class='sentence'>Let <span class='texttt'>Traits</span> be <span class='texttt'>quantity_<span class='shy'></span>point_<span class='shy'></span>like_<span class='shy'></span>traits<span class='anglebracket'>&lt;</span>QP<span class='anglebracket'>&gt;</span></span><a class='hidden_link' href='#cons-4.sentence-1'>.</a></div></div></div></div><div class='para' id='cons-5'><div class='marginalizedparent'><a class='marginalized' href='#cons-5'>5</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L6033'>#</a></div><div class='texpara'><div id='cons-5.sentence-1' class='sentence'><i >Effects</i>: Initializes <span class='texttt'><i >quantity-from-origin</i></span> with
</code></div></div></div><div class='para' id='cons-4'><div class='marginalizedparent'><a class='marginalized' href='#cons-4'>4</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L6030'>#</a></div><div class='texpara'><div id='cons-4.sentence-1' class='sentence'>Let <span class='texttt'>Traits</span> be <span class='texttt'>quantity_<span class='shy'></span>point_<span class='shy'></span>like_<span class='shy'></span>traits<span class='anglebracket'>&lt;</span>QP<span class='anglebracket'>&gt;</span></span><a class='hidden_link' href='#cons-4.sentence-1'>.</a></div></div></div></div><div class='para' id='cons-5'><div class='marginalizedparent'><a class='marginalized' href='#cons-5'>5</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L6033'>#</a></div><div class='texpara'><div id='cons-5.sentence-1' class='sentence'><i >Effects</i>: Initializes <span class='texttt'><i >quantity-from-origin</i></span> with
<span class='codeblock'>Traits<span class='operator'>::</span>to_numerical_value<span class='parenthesis'>(</span>qp<span class='parenthesis'>)</span>, get_unit<span class='parenthesis'>(</span>Traits<span class='operator'>::</span>reference<span class='parenthesis'>)</span>
</span></div></div></div></div><div class='para' id='cons-6'><div class='marginalizedparent'><a class='marginalized' href='#cons-6'>6</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L6040'>#</a></div><div class='texpara'><div id='cons-6.sentence-1' class='sentence'><i >Remarks</i>: The expression in the <span class='textsf'><i >requires-clause</i></span> is equivalent to:
</span></div></div></div></div><div class='para' id='cons-6'><div class='marginalizedparent'><a class='marginalized' href='#cons-6'>6</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L6040'>#</a></div><div class='texpara'><div id='cons-6.sentence-1' class='sentence'><i >Remarks</i>: The expression in the <span class='textsf'><i >requires-clause</i></span> is equivalent to:
<span class='codeblock'><span class='parenthesis'>(</span>Traits<span class='operator'>::</span>point_origin <span class='operator'>=</span><span class='operator'>=</span> point_origin<span class='parenthesis'>)</span> <span class='operator'>&amp;</span><span class='operator'>&amp;</span>
std<span class='operator'>::</span>convertible_to<span class='anglebracket'>&lt;</span>quantity<span class='anglebracket'>&lt;</span>Traits<span class='operator'>::</span>reference, <span class='keyword'>typename</span> Traits<span class='operator'>::</span>rep<span class='anglebracket'>&gt;</span>, quantity_type<span class='anglebracket'>&gt;</span>
</span></div> <div id='cons-6.sentence-2' class='sentence'>
@ -382,7 +382,7 @@ The expression inside <span class='texttt'><span class='keyword'>explicit</span>
<span class='operator'>!</span>std<span class='operator'>::</span>convertible_to<span class='anglebracket'>&lt;</span>quantity<span class='anglebracket'>&lt;</span>Traits<span class='operator'>::</span>reference, <span class='keyword'>typename</span> Traits<span class='operator'>::</span>rep<span class='anglebracket'>&gt;</span>, quantity_type<span class='anglebracket'>&gt;</span>
</span></div></div></div></div></div><div id='conv' class='section'><h3 ><a class='secnum' href='#conv' style='min-width:80pt'>5.7.7</a> Conversions <a class='abbr_ref' href='qty.pt.conv.html'>[qty.pt.conv]</a></h3><div class='texpara'><div id='lib:quantity_point,point_for'><div id='lib:point_for,quantity_point'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:point_for,quantity_point'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><a class='index' id='conceptref:SameAbsolutePointOriginAs______'></a><span class='texttt'><i >SameAbsolutePointOriginAs</i></span><span class='anglebracket'>&lt;</span>absolute_point_origin<span class='anglebracket'>&gt;</span> NewPO<span class='anglebracket'>&gt;</span>
<span class='keyword'>constexpr</span> <a href='#concept:QuantityPointOf' title='5.7.4&emsp;Class template quantity_&shy;point&emsp;[qty.pt.syn]'><span id='conceptref:QuantityPointOf_____________'><span class='texttt'>QuantityPointOf</span></span></a><span class='anglebracket'>&lt;</span><span class='parenthesis'>(</span>NewPO<span class='curlybracket'>{</span><span class='curlybracket'>}</span><span class='parenthesis'>)</span><span class='anglebracket'>&gt;</span> <span class='keyword'>auto</span> point_for<span class='parenthesis'>(</span>NewPO new_origin<span class='parenthesis'>)</span> <span class='keyword'>const</span>;
</code></div></div></div></div><div class='para' id='conv-1'><div class='marginalizedparent'><a class='marginalized' href='#conv-1'>1</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L6063'>#</a></div><div class='texpara'><div id='conv-1.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
</code></div></div></div></div><div class='para' id='conv-1'><div class='marginalizedparent'><a class='marginalized' href='#conv-1'>1</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L6063'>#</a></div><div class='texpara'><div id='conv-1.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
<span class='codeblock'><span class='keyword'>if</span> <span class='keyword'>constexpr</span> <span class='parenthesis'>(</span>std<span class='operator'>::</span>is_same_v<span class='anglebracket'>&lt;</span>NewPO, <span class='keyword'>decltype</span><span class='parenthesis'>(</span>point_origin<span class='parenthesis'>)</span><span class='anglebracket'>&gt;</span><span class='parenthesis'>)</span>
<span class='keyword'>return</span> <span class='operator'>*</span><span class='keyword'>this</span>;
<span class='keyword'>else</span>
@ -412,10 +412,10 @@ The expression inside <span class='texttt'><span class='keyword'>explicit</span>
<a class='index' id='conceptref:UnitCompatibleWith_______'></a><span class='texttt'><i >UnitCompatibleWith</i></span><span class='anglebracket'>&lt;</span>unit, quantity_spec<span class='anglebracket'>&gt;</span> ToU<span class='anglebracket'>&gt;</span>
<span class='keyword'>requires</span> <i ><span class='texttt'>see below</span></i>
<span class='keyword'>constexpr</span> <a href='#concept:QuantityPointOf' title='5.7.4&emsp;Class template quantity_&shy;point&emsp;[qty.pt.syn]'><span id='conceptref:QuantityPointOf___________________'><span class='texttt'>QuantityPointOf</span></span></a><span class='anglebracket'>&lt;</span>quantity_spec<span class='anglebracket'>&gt;</span> <span class='keyword'>auto</span> force_in<span class='parenthesis'>(</span>ToU<span class='parenthesis'>)</span> <span class='keyword'>const</span>;
</code></div></div></div></div></div></div><div class='para' id='conv-2'><div class='marginalizedparent'><a class='marginalized' href='#conv-2'>2</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L6105'>#</a></div><div class='texpara'><div id='conv-2.sentence-1' class='sentence'>Let <span class='texttt'><i >converted-quantity-expr</i></span> be an expression denoting
the function call to the corresponding member of <span class='texttt'>quantity_<span class='shy'></span>ref_<span class='shy'></span>from<span class='parenthesis'>(</span>point_<span class='shy'></span>origin<span class='parenthesis'>)</span></span><a class='hidden_link' href='#conv-2.sentence-1'>.</a></div></div></div></div><div class='para' id='conv-3'><div class='marginalizedparent'><a class='marginalized' href='#conv-3'>3</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L6109'>#</a></div><div class='texpara'><div id='conv-3.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
</code></div></div></div></div></div></div><div class='para' id='conv-2'><div class='marginalizedparent'><a class='marginalized' href='#conv-2'>2</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L6105'>#</a></div><div class='texpara'><div id='conv-2.sentence-1' class='sentence'>Let <span class='texttt'><i >converted-quantity-expr</i></span> be an expression denoting
the function call to the corresponding member of <span class='texttt'>quantity_<span class='shy'></span>ref_<span class='shy'></span>from<span class='parenthesis'>(</span>point_<span class='shy'></span>origin<span class='parenthesis'>)</span></span><a class='hidden_link' href='#conv-2.sentence-1'>.</a></div></div></div></div><div class='para' id='conv-3'><div class='marginalizedparent'><a class='marginalized' href='#conv-3'>3</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L6109'>#</a></div><div class='texpara'><div id='conv-3.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
<span class='codeblock'><span class='keyword'>return</span> <span class='operator'>::</span>mp_units<span class='operator'>::</span>quantity_point<span class='curlybracket'>{</span><i >converted-quantity-expr</i>, point_origin<span class='curlybracket'>}</span>;
</span></div></div></div></div><div class='para' id='conv-4'><div class='marginalizedparent'><a class='marginalized' href='#conv-4'>4</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L6116'>#</a></div><div class='texpara'><div id='conv-4.sentence-1' class='sentence'><i >Remarks</i>: The expression in the <span class='textsf'><i >requires-clause</i></span> is equivalent to:
</span></div></div></div></div><div class='para' id='conv-4'><div class='marginalizedparent'><a class='marginalized' href='#conv-4'>4</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L6116'>#</a></div><div class='texpara'><div id='conv-4.sentence-1' class='sentence'><i >Remarks</i>: The expression in the <span class='textsf'><i >requires-clause</i></span> is equivalent to:
<span class='codeblock'><span class='keyword'>requires</span> <span class='curlybracket'>{</span> <i >converted-quantity-expr</i>; <span class='curlybracket'>}</span>
</span></div></div></div></div></div><div id='obs' class='section'><h3 ><a class='secnum' href='#obs' style='min-width:80pt'>5.7.8</a> Quantity value observers <a class='abbr_ref' href='qty.pt.obs.html'>[qty.pt.obs]</a></h3><div class='texpara'><div id='lib:quantity_point,quantity_ref_from'><div id='lib:quantity_ref_from,quantity_point'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:quantity_ref_from,quantity_point'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><a href='#concept:PointOrigin' title='5.7.2.2&emsp;Concepts&emsp;[qty.pt.orig.concepts]'><span id='conceptref:PointOrigin____________________________'><span class='texttt'>PointOrigin</span></span></a> PO2<span class='anglebracket'>&gt;</span>
<span class='keyword'>requires</span><span class='parenthesis'>(</span>PO2<span class='curlybracket'>{</span><span class='curlybracket'>}</span> <span class='operator'>=</span><span class='operator'>=</span> point_origin<span class='parenthesis'>)</span>
@ -423,15 +423,15 @@ the function call to the corresponding member of <span class='texttt'>quantity_<
<span class='keyword'>template</span><span class='anglebracket'>&lt;</span><a href='#concept:PointOrigin' title='5.7.2.2&emsp;Concepts&emsp;[qty.pt.orig.concepts]'><span id='conceptref:PointOrigin_____________________________'><span class='texttt'>PointOrigin</span></span></a> PO2<span class='anglebracket'>&gt;</span>
<span class='keyword'>requires</span><span class='parenthesis'>(</span>PO2<span class='curlybracket'>{</span><span class='curlybracket'>}</span> <span class='operator'>=</span><span class='operator'>=</span> point_origin<span class='parenthesis'>)</span>
<span class='keyword'>constexpr</span> <span class='keyword'>const</span> quantity_type<span class='operator'>&amp;</span> quantity_ref_from<span class='parenthesis'>(</span>PO2<span class='parenthesis'>)</span> <span class='keyword'>const</span> <span class='operator'>&amp;</span> <span class='keyword'>noexcept</span>;
</code></div></div></div></div><div class='para' id='obs-1'><div class='marginalizedparent'><a class='marginalized' href='#obs-1'>1</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L6137'>#</a></div><div class='texpara'><div id='obs-1.sentence-1' class='sentence'><i >Returns</i>: <span class='texttt'><i >quantity-from-origin</i></span><a class='hidden_link' href='#obs-1.sentence-1'>.</a></div></div></div></div><div class='texpara'><div id='lib:quantity_point,quantity_from'><div id='lib:quantity_from,quantity_point'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:quantity_from,quantity_point'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><a href='#concept:PointOrigin' title='5.7.2.2&emsp;Concepts&emsp;[qty.pt.orig.concepts]'><span id='conceptref:PointOrigin______________________________'><span class='texttt'>PointOrigin</span></span></a> PO2<span class='anglebracket'>&gt;</span>
</code></div></div></div></div><div class='para' id='obs-1'><div class='marginalizedparent'><a class='marginalized' href='#obs-1'>1</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L6137'>#</a></div><div class='texpara'><div id='obs-1.sentence-1' class='sentence'><i >Returns</i>: <span class='texttt'><i >quantity-from-origin</i></span><a class='hidden_link' href='#obs-1.sentence-1'>.</a></div></div></div></div><div class='texpara'><div id='lib:quantity_point,quantity_from'><div id='lib:quantity_from,quantity_point'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:quantity_from,quantity_point'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><a href='#concept:PointOrigin' title='5.7.2.2&emsp;Concepts&emsp;[qty.pt.orig.concepts]'><span id='conceptref:PointOrigin______________________________'><span class='texttt'>PointOrigin</span></span></a> PO2<span class='anglebracket'>&gt;</span>
<span class='keyword'>requires</span> <span class='keyword'>requires</span><span class='parenthesis'>(</span><span class='keyword'>const</span> quantity_point qp<span class='parenthesis'>)</span> <span class='curlybracket'>{</span> qp <span class='operator'>-</span> PO2<span class='curlybracket'>{</span><span class='curlybracket'>}</span>; <span class='curlybracket'>}</span>
<span class='keyword'>constexpr</span> <a href='qty.syn.html#concept:Quantity' title='5.6.3&emsp;Class template quantity&emsp;[qty.syn]'><span id='conceptref:Quantity______________'><span class='texttt'>Quantity</span></span></a> <span class='keyword'>auto</span> quantity_from<span class='parenthesis'>(</span>PO2 rhs<span class='parenthesis'>)</span> <span class='keyword'>const</span>;
<span class='keyword'>template</span><span class='anglebracket'>&lt;</span><a href='#concept:QuantityPointOf' title='5.7.4&emsp;Class template quantity_&shy;point&emsp;[qty.pt.syn]'><span id='conceptref:QuantityPointOf____________________'><span class='texttt'>QuantityPointOf</span></span></a><span class='anglebracket'>&lt;</span>absolute_point_origin<span class='anglebracket'>&gt;</span> QP<span class='anglebracket'>&gt;</span>
<span class='keyword'>constexpr</span> <a href='qty.syn.html#concept:Quantity' title='5.6.3&emsp;Class template quantity&emsp;[qty.syn]'><span id='conceptref:Quantity_______________'><span class='texttt'>Quantity</span></span></a> <span class='keyword'>auto</span> quantity_from<span class='parenthesis'>(</span><span class='keyword'>const</span> QP<span class='operator'>&amp;</span> rhs<span class='parenthesis'>)</span> <span class='keyword'>const</span>;
</code></div></div></div></div><div class='para' id='obs-2'><div class='marginalizedparent'><a class='marginalized' href='#obs-2'>2</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L6153'>#</a></div><div class='texpara'><div id='obs-2.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
</code></div></div></div></div><div class='para' id='obs-2'><div class='marginalizedparent'><a class='marginalized' href='#obs-2'>2</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L6153'>#</a></div><div class='texpara'><div id='obs-2.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
<span class='texttt'><span class='keyword'>return</span> <span class='operator'>*</span><span class='keyword'>this</span> <span class='operator'>-</span> rhs;</span></div></div></div></div><div class='texpara'><div id='lib:quantity_point,quantity_from_zero'><div id='lib:quantity_from_zero,quantity_point'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:quantity_from_zero,quantity_point'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>constexpr</span> <a href='qty.syn.html#concept:Quantity' title='5.6.3&emsp;Class template quantity&emsp;[qty.syn]'><span id='conceptref:Quantity________________'><span class='texttt'>Quantity</span></span></a> <span class='keyword'>auto</span> quantity_from_zero<span class='parenthesis'>(</span><span class='parenthesis'>)</span> <span class='keyword'>const</span>;
</code></div></div></div></div><div class='para' id='obs-3'><div class='marginalizedparent'><a class='marginalized' href='#obs-3'>3</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L6165'>#</a></div><div class='texpara'><div id='obs-3.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
</code></div></div></div></div><div class='para' id='obs-3'><div class='marginalizedparent'><a class='marginalized' href='#obs-3'>3</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L6165'>#</a></div><div class='texpara'><div id='obs-3.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
<span class='codeblock'><span class='keyword'>if</span> <span class='keyword'>constexpr</span> <span class='parenthesis'>(</span><span class='keyword'>requires</span> <span class='curlybracket'>{</span> unit<span class='operator'>.</span><i >point-origin</i>; <span class='curlybracket'>}</span><span class='parenthesis'>)</span> <span class='curlybracket'>{</span>
<span class='comment'>// can lose the input unit</span>
<span class='keyword'>const</span> <span class='keyword'>auto</span> q <span class='operator'>=</span> quantity_from<span class='parenthesis'>(</span>unit<span class='operator'>.</span><i >point-origin</i><span class='parenthesis'>)</span>;
@ -448,9 +448,9 @@ the function call to the corresponding member of <span class='texttt'>quantity_<
<span class='keyword'>template</span><span class='anglebracket'>&lt;</span><span class='keyword'>typename</span> QP_, <a href='#concept:QuantityPointLike' title='5.7.3&emsp;Interoperability&emsp;[qty.pt.like]'><span id='conceptref:QuantityPointLike______'><span class='texttt'>QuantityPointLike</span></span></a> QP <span class='operator'>=</span> std<span class='operator'>::</span>remove_cvref_t<span class='anglebracket'>&lt;</span>QP_<span class='anglebracket'>&gt;</span><span class='anglebracket'>&gt;</span>
<span class='keyword'>requires</span> <i ><span class='texttt'>see below</span></i>
<span class='keyword'>constexpr</span> <span class='keyword'>explicit</span><span class='parenthesis'>(</span><i ><span class='texttt'>see below</span></i><span class='parenthesis'>)</span> <span class='keyword'>operator</span> QP_<span class='parenthesis'>(</span><span class='parenthesis'>)</span> <span class='operator'>&amp;</span><span class='operator'>&amp;</span> <span class='keyword'>noexcept</span><span class='parenthesis'>(</span><i ><span class='texttt'>see below</span></i><span class='parenthesis'>)</span>;
</code></div></div></div><div class='para' id='conv.ops-1'><div class='marginalizedparent'><a class='marginalized' href='#conv.ops-1'>1</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L6195'>#</a></div><div class='texpara'><div id='conv.ops-1.sentence-1' class='sentence'>Let <span class='texttt'>Traits</span> be <span class='texttt'>quantity_<span class='shy'></span>point_<span class='shy'></span>like_<span class='shy'></span>traits<span class='anglebracket'>&lt;</span>QP<span class='anglebracket'>&gt;</span></span><a class='hidden_link' href='#conv.ops-1.sentence-1'>.</a></div> <div id='conv.ops-1.sentence-2' class='sentence'>Let <span class='texttt'><i >result-expr</i></span> be
</code></div></div></div><div class='para' id='conv.ops-1'><div class='marginalizedparent'><a class='marginalized' href='#conv.ops-1'>1</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L6195'>#</a></div><div class='texpara'><div id='conv.ops-1.sentence-1' class='sentence'>Let <span class='texttt'>Traits</span> be <span class='texttt'>quantity_<span class='shy'></span>point_<span class='shy'></span>like_<span class='shy'></span>traits<span class='anglebracket'>&lt;</span>QP<span class='anglebracket'>&gt;</span></span><a class='hidden_link' href='#conv.ops-1.sentence-1'>.</a></div> <div id='conv.ops-1.sentence-2' class='sentence'>Let <span class='texttt'><i >result-expr</i></span> be
<span class='codeblock'>Traits<span class='operator'>::</span>from_numerical_value<span class='parenthesis'>(</span>std<span class='operator'>::</span>move<span class='parenthesis'>(</span><i >quantity-from-origin</i><span class='parenthesis'>)</span><span class='operator'>.</span><i >numerical-value</i><span class='parenthesis'>)</span>
</span></div></div></div></div><div class='para' id='conv.ops-2'><div class='marginalizedparent'><a class='marginalized' href='#conv.ops-2'>2</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L6202'>#</a></div><div class='texpara'><div id='conv.ops-2.sentence-1' class='sentence'><i >Returns</i>: <span class='texttt'><i >result-expr</i></span><a class='hidden_link' href='#conv.ops-2.sentence-1'>.</a></div></div></div></div><div class='para' id='conv.ops-3'><div class='marginalizedparent'><a class='marginalized' href='#conv.ops-3'>3</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L6206'>#</a></div><div class='texpara'><div id='conv.ops-3.sentence-1' class='sentence'><i >Remarks</i>: The expression in the <span class='textsf'><i >requires-clause</i></span> is equivalent to:
</span></div></div></div></div><div class='para' id='conv.ops-2'><div class='marginalizedparent'><a class='marginalized' href='#conv.ops-2'>2</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L6202'>#</a></div><div class='texpara'><div id='conv.ops-2.sentence-1' class='sentence'><i >Returns</i>: <span class='texttt'><i >result-expr</i></span><a class='hidden_link' href='#conv.ops-2.sentence-1'>.</a></div></div></div></div><div class='para' id='conv.ops-3'><div class='marginalizedparent'><a class='marginalized' href='#conv.ops-3'>3</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L6206'>#</a></div><div class='texpara'><div id='conv.ops-3.sentence-1' class='sentence'><i >Remarks</i>: The expression in the <span class='textsf'><i >requires-clause</i></span> is equivalent to:
<span class='codeblock'><span class='parenthesis'>(</span>point_origin <span class='operator'>=</span><span class='operator'>=</span> Traits<span class='operator'>::</span>point_origin<span class='parenthesis'>)</span> <span class='operator'>&amp;</span><span class='operator'>&amp;</span>
std<span class='operator'>::</span>convertible_to<span class='anglebracket'>&lt;</span>quantity_type, quantity<span class='anglebracket'>&lt;</span>Traits<span class='operator'>::</span>reference, <span class='keyword'>typename</span> Traits<span class='operator'>::</span>rep<span class='anglebracket'>&gt;</span><span class='anglebracket'>&gt;</span>
</span></div> <div id='conv.ops-3.sentence-2' class='sentence'>
@ -462,22 +462,22 @@ Let <i >T</i> be
<span class='texttt'>std<span class='operator'>&#x200b;::&#x200b;</span>is_<span class='shy'></span>nothrow_<span class='shy'></span>copy_<span class='shy'></span>constructible_<span class='shy'></span>v</span> for the first signature, and
<span class='texttt'>std<span class='operator'>&#x200b;::&#x200b;</span>is_<span class='shy'></span>nothrow_<span class='shy'></span>move_<span class='shy'></span>constructible_<span class='shy'></span>v</span> for the second signature<a class='hidden_link' href='#conv.ops-3.sentence-3'>.</a></div> <div id='conv.ops-3.sentence-4' class='sentence'>The exception specification is equivalent to:
<span class='codeblock'><span class='keyword'>noexcept</span><span class='parenthesis'>(</span><i >result-expr</i><span class='parenthesis'>)</span> <span class='operator'>&amp;</span><span class='operator'>&amp;</span> <i >T</i><span class='anglebracket'>&lt;</span>rep<span class='anglebracket'>&gt;</span>
</span></div></div></div></div></div><div id='unary.ops' class='section'><h3 ><a class='secnum' href='#unary.ops' style='min-width:80pt'>5.7.10</a> Unary operations <a class='abbr_ref' href='qty.pt.unary.ops.html'>[qty.pt.unary.ops]</a></h3><div class='para' id='unary.ops-1'><div class='marginalizedparent'><a class='marginalized' href='#unary.ops-1'>1</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L6229'>#</a></div><div class='texpara'><div id='unary.ops-1.sentence-1' class='sentence'>In the following descriptions,
</span></div></div></div></div></div><div id='unary.ops' class='section'><h3 ><a class='secnum' href='#unary.ops' style='min-width:80pt'>5.7.10</a> Unary operations <a class='abbr_ref' href='qty.pt.unary.ops.html'>[qty.pt.unary.ops]</a></h3><div class='para' id='unary.ops-1'><div class='marginalizedparent'><a class='marginalized' href='#unary.ops-1'>1</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L6229'>#</a></div><div class='texpara'><div id='unary.ops-1.sentence-1' class='sentence'>In the following descriptions,
let <span class='texttt'>@</span> be the <span class='textsf'><i >operator</i></span><a class='hidden_link' href='#unary.ops-1.sentence-1'>.</a></div></div></div><div class='texpara'><div id='lib:quantity_point,operator--'><div id='lib:operator--,quantity_point'><div id='lib:quantity_point,operator++'><div id='lib:operator++,quantity_point'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:operator++,quantity_point'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><a class='index' id='conceptref:Mutable____'></a><span class='texttt'><i >Mutable</i></span><span class='anglebracket'>&lt;</span>quantity_point<span class='anglebracket'>&gt;</span> QP<span class='anglebracket'>&gt;</span>
<span class='keyword'>friend</span> <span class='keyword'>constexpr</span> <span class='keyword'>decltype</span><span class='parenthesis'>(</span><span class='keyword'>auto</span><span class='parenthesis'>)</span> <span class='keyword'>operator</span><span class='operator'>+</span><span class='operator'>+</span><span class='parenthesis'>(</span>QP<span class='operator'>&amp;</span><span class='operator'>&amp;</span> qp<span class='parenthesis'>)</span>
<span class='keyword'>requires</span> <i ><span class='texttt'>see below</span></i>;
<span class='keyword'>template</span><span class='anglebracket'>&lt;</span><a class='index' id='conceptref:Mutable_____'></a><span class='texttt'><i >Mutable</i></span><span class='anglebracket'>&lt;</span>quantity_point<span class='anglebracket'>&gt;</span> QP<span class='anglebracket'>&gt;</span>
<span class='keyword'>friend</span> <span class='keyword'>constexpr</span> <span class='keyword'>decltype</span><span class='parenthesis'>(</span><span class='keyword'>auto</span><span class='parenthesis'>)</span> <span class='keyword'>operator</span><span class='operator'>-</span><span class='operator'>-</span><span class='parenthesis'>(</span>QP<span class='operator'>&amp;</span><span class='operator'>&amp;</span> qp<span class='parenthesis'>)</span>
<span class='keyword'>requires</span> <i ><span class='texttt'>see below</span></i>;
</code></div></div></div></div></div></div><div class='para' id='unary.ops-2'><div class='marginalizedparent'><a class='marginalized' href='#unary.ops-2'>2</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L6245'>#</a></div><div class='texpara'><div id='unary.ops-2.sentence-1' class='sentence'><i >Effects</i>: Equivalent to
<span class='texttt'>@qp<span class='operator'>.</span><span class='texttt'><i >quantity-from-origin</i></span></span><a class='hidden_link' href='#unary.ops-2.sentence-1'>.</a></div></div></div></div><div class='para' id='unary.ops-3'><div class='marginalizedparent'><a class='marginalized' href='#unary.ops-3'>3</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L6250'>#</a></div><div class='texpara'><div id='unary.ops-3.sentence-1' class='sentence'><i >Returns</i>: <span class='texttt'>std<span class='operator'>&#x200b;::&#x200b;</span>forward<span class='anglebracket'>&lt;</span>QP<span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span>qp<span class='parenthesis'>)</span></span><a class='hidden_link' href='#unary.ops-3.sentence-1'>.</a></div></div></div></div><div class='para' id='unary.ops-4'><div class='marginalizedparent'><a class='marginalized' href='#unary.ops-4'>4</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L6254'>#</a></div><div class='texpara'><div id='unary.ops-4.sentence-1' class='sentence'><i >Remarks</i>: The expression in the <span class='textsf'><i >requires-clause</i></span> is equivalent to:
</code></div></div></div></div></div></div><div class='para' id='unary.ops-2'><div class='marginalizedparent'><a class='marginalized' href='#unary.ops-2'>2</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L6245'>#</a></div><div class='texpara'><div id='unary.ops-2.sentence-1' class='sentence'><i >Effects</i>: Equivalent to
<span class='texttt'>@qp<span class='operator'>.</span><span class='texttt'><i >quantity-from-origin</i></span></span><a class='hidden_link' href='#unary.ops-2.sentence-1'>.</a></div></div></div></div><div class='para' id='unary.ops-3'><div class='marginalizedparent'><a class='marginalized' href='#unary.ops-3'>3</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L6250'>#</a></div><div class='texpara'><div id='unary.ops-3.sentence-1' class='sentence'><i >Returns</i>: <span class='texttt'>std<span class='operator'>&#x200b;::&#x200b;</span>forward<span class='anglebracket'>&lt;</span>QP<span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span>qp<span class='parenthesis'>)</span></span><a class='hidden_link' href='#unary.ops-3.sentence-1'>.</a></div></div></div></div><div class='para' id='unary.ops-4'><div class='marginalizedparent'><a class='marginalized' href='#unary.ops-4'>4</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L6254'>#</a></div><div class='texpara'><div id='unary.ops-4.sentence-1' class='sentence'><i >Remarks</i>: The expression in the <span class='textsf'><i >requires-clause</i></span> is equivalent to:
<span class='codeblock'><span class='keyword'>requires</span> <span class='curlybracket'>{</span> @qp<span class='operator'>.</span><i >quantity-from-origin</i>; <span class='curlybracket'>}</span>
</span></div></div></div></div><div class='texpara'><div id='lib:quantity_point,operator--_'><div id='lib:operator--,quantity_point_'><div id='lib:quantity_point,operator++_'><div id='lib:operator++,quantity_point_'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:operator++,quantity_point_'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>constexpr</span> quantity_point <span class='keyword'>operator</span><span class='operator'>+</span><span class='operator'>+</span><span class='parenthesis'>(</span><span class='keyword'>int</span><span class='parenthesis'>)</span>
<span class='keyword'>requires</span> <i ><span class='texttt'>see below</span></i>;
<span class='keyword'>constexpr</span> quantity_point <span class='keyword'>operator</span><span class='operator'>-</span><span class='operator'>-</span><span class='parenthesis'>(</span><span class='keyword'>int</span><span class='parenthesis'>)</span>
<span class='keyword'>requires</span> <i ><span class='texttt'>see below</span></i>;
</code></div></div></div></div></div></div><div class='para' id='unary.ops-5'><div class='marginalizedparent'><a class='marginalized' href='#unary.ops-5'>5</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L6272'>#</a></div><div class='texpara'><div id='unary.ops-5.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
<span class='texttt'><span class='keyword'>return</span> <span class='curlybracket'>{</span><span class='texttt'><i >quantity-from-origin</i></span>@, PO<span class='curlybracket'>}</span>;</span></div></div></div></div><div class='para' id='unary.ops-6'><div class='marginalizedparent'><a class='marginalized' href='#unary.ops-6'>6</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L6277'>#</a></div><div class='texpara'><div id='unary.ops-6.sentence-1' class='sentence'><i >Remarks</i>: The expression in the <span class='textsf'><i >requires-clause</i></span> is equivalent to:
</code></div></div></div></div></div></div><div class='para' id='unary.ops-5'><div class='marginalizedparent'><a class='marginalized' href='#unary.ops-5'>5</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L6272'>#</a></div><div class='texpara'><div id='unary.ops-5.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
<span class='texttt'><span class='keyword'>return</span> <span class='curlybracket'>{</span><span class='texttt'><i >quantity-from-origin</i></span>@, PO<span class='curlybracket'>}</span>;</span></div></div></div></div><div class='para' id='unary.ops-6'><div class='marginalizedparent'><a class='marginalized' href='#unary.ops-6'>6</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L6277'>#</a></div><div class='texpara'><div id='unary.ops-6.sentence-1' class='sentence'><i >Remarks</i>: The expression in the <span class='textsf'><i >requires-clause</i></span> is equivalent to:
<span class='codeblock'><span class='keyword'>requires</span> <span class='curlybracket'>{</span> <i >quantity-from-origin</i>@; <span class='curlybracket'>}</span>
</span></div></div></div></div></div><div id='assign.ops' class='section'><h3 ><a class='secnum' href='#assign.ops' style='min-width:80pt'>5.7.11</a> Compound assignment operations <a class='abbr_ref' href='qty.pt.assign.ops.html'>[qty.pt.assign.ops]</a></h3><div class='texpara'><div id='lib:quantity,operator-='><div id='lib:operator-=,quantity'><div id='lib:quantity_point,operator-='><div id='lib:operator-=,quantity_point'><div id='lib:quantity,operator+='><div id='lib:operator+=,quantity'><div id='lib:quantity_point,operator+='><div id='lib:operator+=,quantity_point'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:operator+=,quantity_point'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><a class='index' id='conceptref:Mutable______'></a><span class='texttt'><i >Mutable</i></span><span class='anglebracket'>&lt;</span>quantity_point<span class='anglebracket'>&gt;</span> QP, <span class='keyword'>auto</span> R2, <span class='keyword'>typename</span> Rep2<span class='anglebracket'>&gt;</span>
<span class='keyword'>requires</span> <i ><span class='texttt'>see below</span></i>
@ -485,11 +485,11 @@ let <span class='texttt'>@</span> be the <span class='textsf'><i >operator</i></
<span class='keyword'>template</span><span class='anglebracket'>&lt;</span><a class='index' id='conceptref:Mutable_______'></a><span class='texttt'><i >Mutable</i></span><span class='anglebracket'>&lt;</span>quantity_point<span class='anglebracket'>&gt;</span> QP, <span class='keyword'>auto</span> R2, <span class='keyword'>typename</span> Rep2<span class='anglebracket'>&gt;</span>
<span class='keyword'>requires</span> <i ><span class='texttt'>see below</span></i>
<span class='keyword'>friend</span> <span class='keyword'>constexpr</span> <span class='keyword'>decltype</span><span class='parenthesis'>(</span><span class='keyword'>auto</span><span class='parenthesis'>)</span> <span class='keyword'>operator</span><span class='operator'>-</span><span class='operator'>=</span><span class='parenthesis'>(</span>QP<span class='operator'>&amp;</span><span class='operator'>&amp;</span> qp, <span class='keyword'>const</span> quantity<span class='anglebracket'>&lt;</span>R2, Rep2<span class='anglebracket'>&gt;</span><span class='operator'>&amp;</span> q<span class='parenthesis'>)</span>;
</code></div></div></div></div></div></div></div></div></div></div><div class='para' id='assign.ops-1'><div class='marginalizedparent'><a class='marginalized' href='#assign.ops-1'>1</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L6301'>#</a></div><div class='texpara'><div id='assign.ops-1.sentence-1' class='sentence'>Let <span class='texttt'>@</span> be the <span class='textsf'><i >operator</i></span><a class='hidden_link' href='#assign.ops-1.sentence-1'>.</a></div></div></div></div><div class='para' id='assign.ops-2'><div class='marginalizedparent'><a class='marginalized' href='#assign.ops-2'>2</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L6304'>#</a></div><div class='texpara'><div id='assign.ops-2.sentence-1' class='sentence'><i >Effects</i>: Equivalent to
<span class='texttt'>qp<span class='operator'>.</span><span class='texttt'><i >quantity-from-origin</i></span> @ q</span><a class='hidden_link' href='#assign.ops-2.sentence-1'>.</a></div></div></div></div><div class='para' id='assign.ops-3'><div class='marginalizedparent'><a class='marginalized' href='#assign.ops-3'>3</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L6309'>#</a></div><div class='texpara'><div id='assign.ops-3.sentence-1' class='sentence'><i >Returns</i>: <span class='texttt'>std<span class='operator'>&#x200b;::&#x200b;</span>forward<span class='anglebracket'>&lt;</span>QP<span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span>qp<span class='parenthesis'>)</span></span><a class='hidden_link' href='#assign.ops-3.sentence-1'>.</a></div></div></div></div><div class='para' id='assign.ops-4'><div class='marginalizedparent'><a class='marginalized' href='#assign.ops-4'>4</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L6313'>#</a></div><div class='texpara'><div id='assign.ops-4.sentence-1' class='sentence'><i >Remarks</i>: The expression in the <span class='textsf'><i >requires-clause</i></span> is equivalent to:
</code></div></div></div></div></div></div></div></div></div></div><div class='para' id='assign.ops-1'><div class='marginalizedparent'><a class='marginalized' href='#assign.ops-1'>1</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L6301'>#</a></div><div class='texpara'><div id='assign.ops-1.sentence-1' class='sentence'>Let <span class='texttt'>@</span> be the <span class='textsf'><i >operator</i></span><a class='hidden_link' href='#assign.ops-1.sentence-1'>.</a></div></div></div></div><div class='para' id='assign.ops-2'><div class='marginalizedparent'><a class='marginalized' href='#assign.ops-2'>2</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L6304'>#</a></div><div class='texpara'><div id='assign.ops-2.sentence-1' class='sentence'><i >Effects</i>: Equivalent to
<span class='texttt'>qp<span class='operator'>.</span><span class='texttt'><i >quantity-from-origin</i></span> @ q</span><a class='hidden_link' href='#assign.ops-2.sentence-1'>.</a></div></div></div></div><div class='para' id='assign.ops-3'><div class='marginalizedparent'><a class='marginalized' href='#assign.ops-3'>3</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L6309'>#</a></div><div class='texpara'><div id='assign.ops-3.sentence-1' class='sentence'><i >Returns</i>: <span class='texttt'>std<span class='operator'>&#x200b;::&#x200b;</span>forward<span class='anglebracket'>&lt;</span>QP<span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span>qp<span class='parenthesis'>)</span></span><a class='hidden_link' href='#assign.ops-3.sentence-1'>.</a></div></div></div></div><div class='para' id='assign.ops-4'><div class='marginalizedparent'><a class='marginalized' href='#assign.ops-4'>4</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L6313'>#</a></div><div class='texpara'><div id='assign.ops-4.sentence-1' class='sentence'><i >Remarks</i>: The expression in the <span class='textsf'><i >requires-clause</i></span> is equivalent to:
<span class='codeblock'><a class='index' id='conceptref:QuantityConvertibleTo'></a><i >QuantityConvertibleTo</i><span class='anglebracket'>&lt;</span>quantity<span class='anglebracket'>&lt;</span>R2, Rep2<span class='anglebracket'>&gt;</span>, quantity_type<span class='anglebracket'>&gt;</span> <span class='operator'>&amp;</span><span class='operator'>&amp;</span>
<span class='keyword'>requires</span> <span class='curlybracket'>{</span> qp<span class='operator'>.</span><i >quantity-from-origin</i> @ q; <span class='curlybracket'>}</span>
</span></div></div></div></div></div><div id='arith.ops' class='section'><h3 ><a class='secnum' href='#arith.ops' style='min-width:80pt'>5.7.12</a> Arithmetic operations <a class='abbr_ref' href='qty.pt.arith.ops.html'>[qty.pt.arith.ops]</a></h3><div class='para' id='arith.ops-1'><div class='marginalizedparent'><a class='marginalized' href='#arith.ops-1'>1</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L6324'>#</a></div><div class='texpara'><div id='arith.ops-1.sentence-1' class='sentence'>In the following descriptions,
</span></div></div></div></div></div><div id='arith.ops' class='section'><h3 ><a class='secnum' href='#arith.ops' style='min-width:80pt'>5.7.12</a> Arithmetic operations <a class='abbr_ref' href='qty.pt.arith.ops.html'>[qty.pt.arith.ops]</a></h3><div class='para' id='arith.ops-1'><div class='marginalizedparent'><a class='marginalized' href='#arith.ops-1'>1</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L6324'>#</a></div><div class='texpara'><div id='arith.ops-1.sentence-1' class='sentence'>In the following descriptions,
let <span class='texttt'>@</span> be the <span class='textsf'><i >operator</i></span><a class='hidden_link' href='#arith.ops-1.sentence-1'>.</a></div></div></div><div class='texpara'><div id='lib:quantity,operator-'><div id='lib:operator-,quantity'><div id='lib:quantity_point,operator-'><div id='lib:operator-,quantity_point'><div id='lib:quantity,operator+'><div id='lib:operator+,quantity'><div id='lib:quantity_point,operator+'><div id='lib:operator+,quantity_point'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:operator+,quantity_point'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span>std<span class='operator'>::</span>derived_from<span class='anglebracket'>&lt;</span>quantity_point<span class='anglebracket'>&gt;</span> QP, <span class='keyword'>auto</span> R2, <span class='keyword'>typename</span> Rep2<span class='anglebracket'>&gt;</span>
<span class='keyword'>friend</span> <span class='keyword'>constexpr</span> <a href='#concept:QuantityPoint' title='5.7.4&emsp;Class template quantity_&shy;point&emsp;[qty.pt.syn]'><span id='conceptref:QuantityPoint_________'><span class='texttt'>QuantityPoint</span></span></a> <span class='keyword'>auto</span> <span class='keyword'>operator</span><span class='operator'>+</span><span class='parenthesis'>(</span><span class='keyword'>const</span> QP<span class='operator'>&amp;</span> qp, <span class='keyword'>const</span> quantity<span class='anglebracket'>&lt;</span>R2, Rep2<span class='anglebracket'>&gt;</span><span class='operator'>&amp;</span> q<span class='parenthesis'>)</span>
<span class='keyword'>requires</span> <i ><span class='texttt'>see below</span></i>;
@ -499,30 +499,30 @@ let <span class='texttt'>@</span> be the <span class='textsf'><i >operator</i></
<span class='keyword'>template</span><span class='anglebracket'>&lt;</span>std<span class='operator'>::</span>derived_from<span class='anglebracket'>&lt;</span>quantity_point<span class='anglebracket'>&gt;</span> QP, <span class='keyword'>auto</span> R2, <span class='keyword'>typename</span> Rep2<span class='anglebracket'>&gt;</span>
<span class='keyword'>friend</span> <span class='keyword'>constexpr</span> <a href='#concept:QuantityPoint' title='5.7.4&emsp;Class template quantity_&shy;point&emsp;[qty.pt.syn]'><span id='conceptref:QuantityPoint___________'><span class='texttt'>QuantityPoint</span></span></a> <span class='keyword'>auto</span> <span class='keyword'>operator</span><span class='operator'>-</span><span class='parenthesis'>(</span><span class='keyword'>const</span> QP<span class='operator'>&amp;</span> qp, <span class='keyword'>const</span> quantity<span class='anglebracket'>&lt;</span>R2, Rep2<span class='anglebracket'>&gt;</span><span class='operator'>&amp;</span> q<span class='parenthesis'>)</span>
<span class='keyword'>requires</span> <i ><span class='texttt'>see below</span></i>;
</code></div></div></div></div></div></div></div></div></div></div><div class='para' id='arith.ops-2'><div class='marginalizedparent'><a class='marginalized' href='#arith.ops-2'>2</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L6345'>#</a></div><div class='texpara'><div id='arith.ops-2.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
</code></div></div></div></div></div></div></div></div></div></div><div class='para' id='arith.ops-2'><div class='marginalizedparent'><a class='marginalized' href='#arith.ops-2'>2</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L6345'>#</a></div><div class='texpara'><div id='arith.ops-2.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
<span class='codeblock'><span class='keyword'>if</span> <span class='keyword'>constexpr</span> <span class='parenthesis'>(</span><i >is-specialization-of</i><span class='anglebracket'>&lt;</span>PO, zeroth_point_origin<span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span><span class='parenthesis'>)</span><span class='parenthesis'>)</span>
<span class='keyword'>return</span> <span class='operator'>::</span>mp_units<span class='operator'>::</span>quantity_point<span class='curlybracket'>{</span>qp<span class='operator'>.</span>quantity_ref_from<span class='parenthesis'>(</span>PO<span class='parenthesis'>)</span> @ q<span class='curlybracket'>}</span>;
<span class='keyword'>else</span>
<span class='keyword'>return</span> <span class='operator'>::</span>mp_units<span class='operator'>::</span>quantity_point<span class='curlybracket'>{</span>qp<span class='operator'>.</span>quantity_ref_from<span class='parenthesis'>(</span>PO<span class='parenthesis'>)</span> @ q, PO<span class='curlybracket'>}</span>;
</span></div></div></div></div><div class='para' id='arith.ops-3'><div class='marginalizedparent'><a class='marginalized' href='#arith.ops-3'>3</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L6355'>#</a></div><div class='texpara'><div id='arith.ops-3.sentence-1' class='sentence'><i >Remarks</i>: The expression in the <span class='textsf'><i >requires-clause</i></span> is equivalent to:
</span></div></div></div></div><div class='para' id='arith.ops-3'><div class='marginalizedparent'><a class='marginalized' href='#arith.ops-3'>3</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L6355'>#</a></div><div class='texpara'><div id='arith.ops-3.sentence-1' class='sentence'><i >Remarks</i>: The expression in the <span class='textsf'><i >requires-clause</i></span> is equivalent to:
<span class='codeblock'><a href='qty.ref.concepts.html#concept:ReferenceOf' title='5.4.5&emsp;Concepts&emsp;[qty.ref.concepts]'><span id='conceptref:ReferenceOf__'><span class='tcode_in_codeblock'>ReferenceOf</span></span></a><span class='anglebracket'>&lt;</span><span class='keyword'>decltype</span><span class='parenthesis'>(</span>R2<span class='parenthesis'>)</span>, PO<span class='operator'>.</span><i >quantity-spec</i><span class='anglebracket'>&gt;</span> <span class='operator'>&amp;</span><span class='operator'>&amp;</span> <span class='keyword'>requires</span> <span class='curlybracket'>{</span>
qp<span class='operator'>.</span>quantity_ref_from<span class='parenthesis'>(</span>PO<span class='parenthesis'>)</span> @ q;
<span class='curlybracket'>}</span>
</span></div></div></div></div><div class='texpara'><div id='lib:quantity_point,operator-_'><div id='lib:operator-,quantity_point_'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:operator-,quantity_point_'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span>std<span class='operator'>::</span>derived_from<span class='anglebracket'>&lt;</span>quantity_point<span class='anglebracket'>&gt;</span> QP, <a href='#concept:QuantityPointOf' title='5.7.4&emsp;Class template quantity_&shy;point&emsp;[qty.pt.syn]'><span id='conceptref:QuantityPointOf_____________________'><span class='texttt'>QuantityPointOf</span></span></a><span class='anglebracket'>&lt;</span>absolute_point_origin<span class='anglebracket'>&gt;</span> QP2<span class='anglebracket'>&gt;</span>
<span class='keyword'>friend</span> <span class='keyword'>constexpr</span> <a href='qty.syn.html#concept:Quantity' title='5.6.3&emsp;Class template quantity&emsp;[qty.syn]'><span id='conceptref:Quantity_________________'><span class='texttt'>Quantity</span></span></a> <span class='keyword'>auto</span> <span class='keyword'>operator</span><span class='operator'>-</span><span class='parenthesis'>(</span><span class='keyword'>const</span> QP<span class='operator'>&amp;</span> lhs, <span class='keyword'>const</span> QP2<span class='operator'>&amp;</span> rhs<span class='parenthesis'>)</span>
<span class='keyword'>requires</span> <i ><span class='texttt'>see below</span></i>;
</code></div></div></div></div><div class='para' id='arith.ops-4'><div class='marginalizedparent'><a class='marginalized' href='#arith.ops-4'>4</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L6373'>#</a></div><div class='texpara'><div id='arith.ops-4.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
</code></div></div></div></div><div class='para' id='arith.ops-4'><div class='marginalizedparent'><a class='marginalized' href='#arith.ops-4'>4</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L6373'>#</a></div><div class='texpara'><div id='arith.ops-4.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
<span class='codeblock'><span class='keyword'>return</span> lhs<span class='operator'>.</span>quantity_ref_from<span class='parenthesis'>(</span>point_origin<span class='parenthesis'>)</span> <span class='operator'>-</span> rhs<span class='operator'>.</span>quantity_ref_from<span class='parenthesis'>(</span>QP2<span class='operator'>::</span>point_origin<span class='parenthesis'>)</span> <span class='operator'>+</span>
<span class='parenthesis'>(</span>lhs<span class='operator'>.</span>point_origin <span class='operator'>-</span> rhs<span class='operator'>.</span>point_origin<span class='parenthesis'>)</span>;
</span></div></div></div></div><div class='para' id='arith.ops-5'><div class='marginalizedparent'><a class='marginalized' href='#arith.ops-5'>5</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L6381'>#</a></div><div class='texpara'><div id='arith.ops-5.sentence-1' class='sentence'><i >Remarks</i>: The expression in the <span class='textsf'><i >requires-clause</i></span> is equivalent to:
</span></div></div></div></div><div class='para' id='arith.ops-5'><div class='marginalizedparent'><a class='marginalized' href='#arith.ops-5'>5</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L6381'>#</a></div><div class='texpara'><div id='arith.ops-5.sentence-1' class='sentence'><i >Remarks</i>: The expression in the <span class='textsf'><i >requires-clause</i></span> is equivalent to:
<span class='codeblock'><span class='keyword'>requires</span> <span class='curlybracket'>{</span> lhs<span class='operator'>.</span>quantity_ref_from<span class='parenthesis'>(</span>point_origin<span class='parenthesis'>)</span> <span class='operator'>-</span> rhs<span class='operator'>.</span>quantity_ref_from<span class='parenthesis'>(</span>QP2<span class='operator'>::</span>point_origin<span class='parenthesis'>)</span>; <span class='curlybracket'>}</span>
</span></div></div></div></div><div class='para' id='arith.ops-6'><div class='marginalizedparent'><a class='marginalized' href='#arith.ops-6'>6</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L6388'>#</a></div><div class='texpara'><div id='arith.ops-6.sentence-1' class='sentence'><i >Recommended practice</i>: The subtraction of two equal origins is not evaluated<a class='hidden_link' href='#arith.ops-6.sentence-1'>.</a></div></div></div></div><div class='texpara'><div id='lib:PointOrigin,operator-'><div id='lib:operator-,PointOrigin'><div id='lib:quantity_point,operator-__'><div id='lib:operator-,quantity_point__'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:operator-,quantity_point__'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span>std<span class='operator'>::</span>derived_from<span class='anglebracket'>&lt;</span>quantity_point<span class='anglebracket'>&gt;</span> QP, <a href='#concept:PointOrigin' title='5.7.2.2&emsp;Concepts&emsp;[qty.pt.orig.concepts]'><span id='conceptref:PointOrigin_______________________________'><span class='texttt'>PointOrigin</span></span></a> PO2<span class='anglebracket'>&gt;</span>
</span></div></div></div></div><div class='para' id='arith.ops-6'><div class='marginalizedparent'><a class='marginalized' href='#arith.ops-6'>6</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L6388'>#</a></div><div class='texpara'><div id='arith.ops-6.sentence-1' class='sentence'><i >Recommended practice</i>: The subtraction of two equal origins is not evaluated<a class='hidden_link' href='#arith.ops-6.sentence-1'>.</a></div></div></div></div><div class='texpara'><div id='lib:PointOrigin,operator-'><div id='lib:operator-,PointOrigin'><div id='lib:quantity_point,operator-__'><div id='lib:operator-,quantity_point__'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:operator-,quantity_point__'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span>std<span class='operator'>::</span>derived_from<span class='anglebracket'>&lt;</span>quantity_point<span class='anglebracket'>&gt;</span> QP, <a href='#concept:PointOrigin' title='5.7.2.2&emsp;Concepts&emsp;[qty.pt.orig.concepts]'><span id='conceptref:PointOrigin_______________________________'><span class='texttt'>PointOrigin</span></span></a> PO2<span class='anglebracket'>&gt;</span>
<span class='keyword'>requires</span> <i ><span class='texttt'>see below</span></i>
<span class='keyword'>friend</span> <span class='keyword'>constexpr</span> <a href='qty.syn.html#concept:Quantity' title='5.6.3&emsp;Class template quantity&emsp;[qty.syn]'><span id='conceptref:Quantity__________________'><span class='texttt'>Quantity</span></span></a> <span class='keyword'>auto</span> <span class='keyword'>operator</span><span class='operator'>-</span><span class='parenthesis'>(</span><span class='keyword'>const</span> QP<span class='operator'>&amp;</span> qp, PO2 po<span class='parenthesis'>)</span>;
<span class='keyword'>template</span><span class='anglebracket'>&lt;</span>std<span class='operator'>::</span>derived_from<span class='anglebracket'>&lt;</span>quantity_point<span class='anglebracket'>&gt;</span> QP, <a href='#concept:PointOrigin' title='5.7.2.2&emsp;Concepts&emsp;[qty.pt.orig.concepts]'><span id='conceptref:PointOrigin________________________________'><span class='texttt'>PointOrigin</span></span></a> PO2<span class='anglebracket'>&gt;</span>
<span class='keyword'>requires</span> <i ><span class='texttt'>see below</span></i>
<span class='keyword'>friend</span> <span class='keyword'>constexpr</span> <a href='qty.syn.html#concept:Quantity' title='5.6.3&emsp;Class template quantity&emsp;[qty.syn]'><span id='conceptref:Quantity___________________'><span class='texttt'>Quantity</span></span></a> <span class='keyword'>auto</span> <span class='keyword'>operator</span><span class='operator'>-</span><span class='parenthesis'>(</span>PO2 po, <span class='keyword'>const</span> QP<span class='operator'>&amp;</span> qp<span class='parenthesis'>)</span>;
</code></div></div></div></div></div></div><div class='para' id='arith.ops-7'><div class='marginalizedparent'><a class='marginalized' href='#arith.ops-7'>7</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L6405'>#</a></div><div class='texpara'><div id='arith.ops-7.sentence-1' class='sentence'><i >Effects</i>: For the first signature,
</code></div></div></div></div></div></div><div class='para' id='arith.ops-7'><div class='marginalizedparent'><a class='marginalized' href='#arith.ops-7'>7</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L6405'>#</a></div><div class='texpara'><div id='arith.ops-7.sentence-1' class='sentence'><i >Effects</i>: For the first signature,
equivalent to:
<span class='codeblock'><span class='keyword'>if</span> <span class='keyword'>constexpr</span> <span class='parenthesis'>(</span>point_origin <span class='operator'>=</span><span class='operator'>=</span> po<span class='parenthesis'>)</span>
<span class='keyword'>return</span> qp<span class='operator'>.</span>quantity_ref_from<span class='parenthesis'>(</span>point_origin<span class='parenthesis'>)</span>;
@ -536,23 +536,23 @@ equivalent to:
<span class='curlybracket'>}</span>
</span></div> <div id='arith.ops-7.sentence-2' class='sentence'>
For the second signature,
equivalent to: <span class='texttt'><span class='keyword'>return</span> <span class='operator'>-</span><span class='parenthesis'>(</span>qp <span class='operator'>-</span> po<span class='parenthesis'>)</span>;</span></div></div></div></div><div class='para' id='arith.ops-8'><div class='marginalizedparent'><a class='marginalized' href='#arith.ops-8'>8</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L6424'>#</a></div><div class='texpara'><div id='arith.ops-8.sentence-1' class='sentence'><i >Remarks</i>: The expression in the <span class='textsf'><i >requires-clause</i></span> is equivalent to:
equivalent to: <span class='texttt'><span class='keyword'>return</span> <span class='operator'>-</span><span class='parenthesis'>(</span>qp <span class='operator'>-</span> po<span class='parenthesis'>)</span>;</span></div></div></div></div><div class='para' id='arith.ops-8'><div class='marginalizedparent'><a class='marginalized' href='#arith.ops-8'>8</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L6424'>#</a></div><div class='texpara'><div id='arith.ops-8.sentence-1' class='sentence'><i >Remarks</i>: The expression in the <span class='textsf'><i >requires-clause</i></span> is equivalent to:
<span class='codeblock'><a href='#concept:QuantityPointOf' title='5.7.4&emsp;Class template quantity_&shy;point&emsp;[qty.pt.syn]'><span id='conceptref:QuantityPointOf______________________'><span class='tcode_in_codeblock'>QuantityPointOf</span></span></a><span class='anglebracket'>&lt;</span>quantity_point, PO2<span class='curlybracket'>{</span><span class='curlybracket'>}</span><span class='anglebracket'>&gt;</span> <span class='operator'>&amp;</span><span class='operator'>&amp;</span>
<a href='qty.ref.concepts.html#concept:ReferenceOf' title='5.4.5&emsp;Concepts&emsp;[qty.ref.concepts]'><span id='conceptref:ReferenceOf___'><span class='tcode_in_codeblock'>ReferenceOf</span></span></a><span class='anglebracket'>&lt;</span><span class='keyword'>decltype</span><span class='parenthesis'>(</span><span class='keyword'>auto</span><span class='parenthesis'>(</span>reference<span class='parenthesis'>)</span><span class='parenthesis'>)</span>, PO2<span class='operator'>::</span><i >quantity-spec</i><span class='anglebracket'>&gt;</span>
</span></div></div></div></div><div class='para' id='arith.ops-9'><div class='marginalizedparent'><a class='marginalized' href='#arith.ops-9'>9</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L6432'>#</a></div><div class='texpara'><div id='arith.ops-9.sentence-1' class='sentence'><i >Recommended practice</i>: The subtraction of two equal origins is not evaluated<a class='hidden_link' href='#arith.ops-9.sentence-1'>.</a></div></div></div></div></div><div id='cmp' class='section'><h3 ><a class='secnum' href='#cmp' style='min-width:80pt'>5.7.13</a> Comparison <a class='abbr_ref' href='qty.pt.cmp.html'>[qty.pt.cmp]</a></h3><div class='texpara'><div id='lib:quantity_point,operator<=>'><div id='lib:operator<=>,quantity_point'><div id='lib:quantity_point,operator=='><div id='lib:operator==,quantity_point'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:operator==,quantity_point'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span>std<span class='operator'>::</span>derived_from<span class='anglebracket'>&lt;</span>quantity_point<span class='anglebracket'>&gt;</span> QP, <a href='#concept:QuantityPointOf' title='5.7.4&emsp;Class template quantity_&shy;point&emsp;[qty.pt.syn]'><span id='conceptref:QuantityPointOf_______________________'><span class='texttt'>QuantityPointOf</span></span></a><span class='anglebracket'>&lt;</span>absolute_point_origin<span class='anglebracket'>&gt;</span> QP2<span class='anglebracket'>&gt;</span>
</span></div></div></div></div><div class='para' id='arith.ops-9'><div class='marginalizedparent'><a class='marginalized' href='#arith.ops-9'>9</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L6432'>#</a></div><div class='texpara'><div id='arith.ops-9.sentence-1' class='sentence'><i >Recommended practice</i>: The subtraction of two equal origins is not evaluated<a class='hidden_link' href='#arith.ops-9.sentence-1'>.</a></div></div></div></div></div><div id='cmp' class='section'><h3 ><a class='secnum' href='#cmp' style='min-width:80pt'>5.7.13</a> Comparison <a class='abbr_ref' href='qty.pt.cmp.html'>[qty.pt.cmp]</a></h3><div class='texpara'><div id='lib:quantity_point,operator<=>'><div id='lib:operator<=>,quantity_point'><div id='lib:quantity_point,operator=='><div id='lib:operator==,quantity_point'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:operator==,quantity_point'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span>std<span class='operator'>::</span>derived_from<span class='anglebracket'>&lt;</span>quantity_point<span class='anglebracket'>&gt;</span> QP, <a href='#concept:QuantityPointOf' title='5.7.4&emsp;Class template quantity_&shy;point&emsp;[qty.pt.syn]'><span id='conceptref:QuantityPointOf_______________________'><span class='texttt'>QuantityPointOf</span></span></a><span class='anglebracket'>&lt;</span>absolute_point_origin<span class='anglebracket'>&gt;</span> QP2<span class='anglebracket'>&gt;</span>
<span class='keyword'>requires</span> <i ><span class='texttt'>see below</span></i>
<span class='keyword'>friend</span> <span class='keyword'>constexpr</span> <span class='keyword'>bool</span> <span class='keyword'>operator</span><span class='operator'>=</span><span class='operator'>=</span><span class='parenthesis'>(</span><span class='keyword'>const</span> QP<span class='operator'>&amp;</span> lhs, <span class='keyword'>const</span> QP2<span class='operator'>&amp;</span> rhs<span class='parenthesis'>)</span>;
<span class='keyword'>template</span><span class='anglebracket'>&lt;</span>std<span class='operator'>::</span>derived_from<span class='anglebracket'>&lt;</span>quantity_point<span class='anglebracket'>&gt;</span> QP, <a href='#concept:QuantityPointOf' title='5.7.4&emsp;Class template quantity_&shy;point&emsp;[qty.pt.syn]'><span id='conceptref:QuantityPointOf________________________'><span class='texttt'>QuantityPointOf</span></span></a><span class='anglebracket'>&lt;</span>absolute_point_origin<span class='anglebracket'>&gt;</span> QP2<span class='anglebracket'>&gt;</span>
<span class='keyword'>requires</span> <i ><span class='texttt'>see below</span></i>
<span class='keyword'>friend</span> <span class='keyword'>constexpr</span> <span class='keyword'>auto</span> <span class='keyword'>operator</span><span class='anglebracket'>&lt;</span><span class='operator'>=</span><span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span><span class='keyword'>const</span> QP<span class='operator'>&amp;</span> lhs, <span class='keyword'>const</span> QP2<span class='operator'>&amp;</span> rhs<span class='parenthesis'>)</span>;
</code></div></div></div></div></div></div><div class='para' id='cmp-1'><div class='marginalizedparent'><a class='marginalized' href='#cmp-1'>1</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L6451'>#</a></div><div class='texpara'><div id='cmp-1.sentence-1' class='sentence'>Let <span class='texttt'>@</span> be the <span class='textsf'><i >operator</i></span>, and
</code></div></div></div></div></div></div><div class='para' id='cmp-1'><div class='marginalizedparent'><a class='marginalized' href='#cmp-1'>1</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L6451'>#</a></div><div class='texpara'><div id='cmp-1.sentence-1' class='sentence'>Let <span class='texttt'>@</span> be the <span class='textsf'><i >operator</i></span>, and
let <i >C</i> be
<span class='texttt'>std<span class='operator'>&#x200b;::&#x200b;</span>equality_<span class='shy'></span>comparable_<span class='shy'></span>with</span> if <span class='texttt'>@</span> is <span class='texttt'><span class='operator'>=</span><span class='operator'>=</span></span>, and
<span class='texttt'>std<span class='operator'>&#x200b;::&#x200b;</span>three_<span class='shy'></span>way_<span class='shy'></span>comparable_<span class='shy'></span>with</span> if <span class='texttt'>@</span> is <span class='texttt'><span class='anglebracket'>&lt;</span><span class='operator'>=</span><span class='anglebracket'>&gt;</span></span><a class='hidden_link' href='#cmp-1.sentence-1'>.</a></div></div></div></div><div class='para' id='cmp-2'><div class='marginalizedparent'><a class='marginalized' href='#cmp-2'>2</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L6457'>#</a></div><div class='texpara'><div id='cmp-2.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
<span class='texttt'>std<span class='operator'>&#x200b;::&#x200b;</span>three_<span class='shy'></span>way_<span class='shy'></span>comparable_<span class='shy'></span>with</span> if <span class='texttt'>@</span> is <span class='texttt'><span class='anglebracket'>&lt;</span><span class='operator'>=</span><span class='anglebracket'>&gt;</span></span><a class='hidden_link' href='#cmp-1.sentence-1'>.</a></div></div></div></div><div class='para' id='cmp-2'><div class='marginalizedparent'><a class='marginalized' href='#cmp-2'>2</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L6457'>#</a></div><div class='texpara'><div id='cmp-2.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
<span class='codeblock'><span class='keyword'>return</span> lhs <span class='operator'>-</span> lhs<span class='operator'>.</span>absolute_point_origin @ rhs <span class='operator'>-</span> rhs<span class='operator'>.</span>absolute_point_origin;
</span></div></div></div></div><div class='para' id='cmp-3'><div class='marginalizedparent'><a class='marginalized' href='#cmp-3'>3</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L6464'>#</a></div><div class='texpara'><div id='cmp-3.sentence-1' class='sentence'><i >Remarks</i>: The expression in the <span class='textsf'><i >requires-clause</i></span> is equivalent to:
</span></div></div></div></div><div class='para' id='cmp-3'><div class='marginalizedparent'><a class='marginalized' href='#cmp-3'>3</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L6464'>#</a></div><div class='texpara'><div id='cmp-3.sentence-1' class='sentence'><i >Remarks</i>: The expression in the <span class='textsf'><i >requires-clause</i></span> is equivalent to:
<span class='codeblock'><i >C</i><span class='anglebracket'>&lt;</span>quantity_type, <span class='keyword'>typename</span> QP2<span class='operator'>::</span>quantity_type<span class='anglebracket'>&gt;</span>
</span></div></div></div></div><div class='para' id='cmp-4'><div class='marginalizedparent'><a class='marginalized' href='#cmp-4'>4</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L6471'>#</a></div><div class='texpara'><div id='cmp-4.sentence-1' class='sentence'><i >Recommended practice</i>: If the origins are equal, instead evaluate
</span></div></div></div></div><div class='para' id='cmp-4'><div class='marginalizedparent'><a class='marginalized' href='#cmp-4'>4</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L6471'>#</a></div><div class='texpara'><div id='cmp-4.sentence-1' class='sentence'><i >Recommended practice</i>: If the origins are equal, instead evaluate
<span class='codeblock'>lhs<span class='operator'>.</span>quantity_ref_from<span class='parenthesis'>(</span>point_origin<span class='parenthesis'>)</span> @ rhs<span class='operator'>.</span>quantity_ref_from<span class='parenthesis'>(</span>QP2<span class='operator'>::</span>point_origin<span class='parenthesis'>)</span>
</span></div></div></div></div></div><div id='qty.point' class='section'><h3 ><a class='secnum' href='#qty.point' style='min-width:80pt'>5.7.14</a> Construction helper <span class='texttt'>point</span> <a class='abbr_ref' href='qty.point.html'>[qty.point]</a></h3><div class='texpara'><span id='lib:point'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:point'>🔗</a></div><span class='codeblock'><span class='keyword'>namespace</span> mp_units <span class='curlybracket'>{</span>
@ -567,22 +567,22 @@ let <i >C</i> be
</span></span></div><div class='texpara'><div id='lib:point_,operator()'><div id='lib:operator(),point_'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:operator(),point_'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><span class='keyword'>typename</span> FwdRep,
<a href='qty.rep.concepts.html#concept:RepresentationOf' title='5.5.4&emsp;Concepts&emsp;[qty.rep.concepts]'><span id='conceptref:RepresentationOf__________'><span class='texttt'>RepresentationOf</span></span></a><span class='anglebracket'>&lt;</span>get_quantity_spec<span class='parenthesis'>(</span>R<span class='curlybracket'>{</span><span class='curlybracket'>}</span><span class='parenthesis'>)</span><span class='anglebracket'>&gt;</span> Rep <span class='operator'>=</span> std<span class='operator'>::</span>remove_cvref_t<span class='anglebracket'>&lt;</span>FwdRep<span class='anglebracket'>&gt;</span><span class='anglebracket'>&gt;</span>
<span class='keyword'>constexpr</span> quantity_point<span class='anglebracket'>&lt;</span>R<span class='curlybracket'>{</span><span class='curlybracket'>}</span>, default_point_origin<span class='parenthesis'>(</span>R<span class='curlybracket'>{</span><span class='curlybracket'>}</span><span class='parenthesis'>)</span>, Rep<span class='anglebracket'>&gt;</span> <span class='keyword'>operator</span><span class='parenthesis'>(</span><span class='parenthesis'>)</span><span class='parenthesis'>(</span>FwdRep<span class='operator'>&amp;</span><span class='operator'>&amp;</span> lhs<span class='parenthesis'>)</span> <span class='keyword'>const</span>;
</code></div></div></div></div><div class='para' id='qty.point-1'><div class='marginalizedparent'><a class='marginalized' href='#qty.point-1'>1</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L6503'>#</a></div><div class='texpara'><div id='qty.point-1.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
</code></div></div></div></div><div class='para' id='qty.point-1'><div class='marginalizedparent'><a class='marginalized' href='#qty.point-1'>1</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L6503'>#</a></div><div class='texpara'><div id='qty.point-1.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
<span class='texttt'><span class='keyword'>return</span> quantity_<span class='shy'></span>point<span class='curlybracket'>{</span>quantity<span class='curlybracket'>{</span>std<span class='operator'>&#x200b;::&#x200b;</span>forward<span class='anglebracket'>&lt;</span>FwdRep<span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span>lhs<span class='parenthesis'>)</span>, R<span class='curlybracket'>{</span><span class='curlybracket'>}</span><span class='curlybracket'>}</span><span class='curlybracket'>}</span>;</span></div></div></div></div></div><div id='non.mem.conv' class='section'><h3 ><a class='secnum' href='#non.mem.conv' style='min-width:80pt'>5.7.15</a> Non-member conversions <a class='abbr_ref' href='qty.pt.non.mem.conv.html'>[qty.pt.non.mem.conv]</a></h3><div class='texpara'><div id='lib:sudo-cast,quantity_point'><div id='lib:quantity_point,sudo-cast'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:quantity_point,sudo-cast'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><a href='#concept:QuantityPoint' title='5.7.4&emsp;Class template quantity_&shy;point&emsp;[qty.pt.syn]'><span id='conceptref:QuantityPoint____________'><span class='texttt'>QuantityPoint</span></span></a> ToQP, <span class='keyword'>typename</span> FwdFromQP,
<a href='#concept:QuantityPoint' title='5.7.4&emsp;Class template quantity_&shy;point&emsp;[qty.pt.syn]'><span id='conceptref:QuantityPoint_____________'><span class='texttt'>QuantityPoint</span></span></a> FromQP <span class='operator'>=</span> std<span class='operator'>::</span>remove_cvref_t<span class='anglebracket'>&lt;</span>FwdFromQP<span class='anglebracket'>&gt;</span><span class='anglebracket'>&gt;</span>
<span class='keyword'>requires</span> <i ><span class='texttt'>see below</span></i>
<span class='keyword'>constexpr</span> <a href='#concept:QuantityPoint' title='5.7.4&emsp;Class template quantity_&shy;point&emsp;[qty.pt.syn]'><span id='conceptref:QuantityPoint______________'><span class='texttt'>QuantityPoint</span></span></a> <span class='keyword'>auto</span> <span class='texttt'><i >sudo-cast</i></span><span class='parenthesis'>(</span>FwdFromQP<span class='operator'>&amp;</span><span class='operator'>&amp;</span> qp<span class='parenthesis'>)</span>;
</code></div></div></div></div><div class='para' id='non.mem.conv-1'><div class='marginalizedparent'><a class='marginalized' href='#non.mem.conv-1'>1</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L6520'>#</a></div><div class='texpara'><div id='non.mem.conv-1.sentence-1' class='sentence'><i >Returns</i>: TBD<a class='hidden_link' href='#non.mem.conv-1.sentence-1'>.</a></div></div></div></div><div class='para' id='non.mem.conv-2'><div class='marginalizedparent'><a class='marginalized' href='#non.mem.conv-2'>2</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L6525'>#</a></div><div class='texpara'><div id='non.mem.conv-2.sentence-1' class='sentence'><span class='texttt'>value_<span class='shy'></span>cast</span> is an explicit cast that allows truncation<a class='hidden_link' href='#non.mem.conv-2.sentence-1'>.</a></div></div></div><div class='texpara'><div id='lib:quantity_point,value_cast'><div id='lib:value_cast,quantity_point'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:value_cast,quantity_point'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><a href='qty.unit.concepts.html#concept:Unit' title='5.4.4.4&emsp;Concepts&emsp;[qty.unit.concepts]'><span id='conceptref:Unit_'><span class='texttt'>Unit</span></span></a> <span class='keyword'>auto</span> ToU, <span class='keyword'>typename</span> FwdQP, <a href='#concept:QuantityPoint' title='5.7.4&emsp;Class template quantity_&shy;point&emsp;[qty.pt.syn]'><span id='conceptref:QuantityPoint_______________'><span class='texttt'>QuantityPoint</span></span></a> QP <span class='operator'>=</span> std<span class='operator'>::</span>remove_cvref_t<span class='anglebracket'>&lt;</span>FwdQP<span class='anglebracket'>&gt;</span><span class='anglebracket'>&gt;</span>
</code></div></div></div></div><div class='para' id='non.mem.conv-1'><div class='marginalizedparent'><a class='marginalized' href='#non.mem.conv-1'>1</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L6520'>#</a></div><div class='texpara'><div id='non.mem.conv-1.sentence-1' class='sentence'><i >Returns</i>: TBD<a class='hidden_link' href='#non.mem.conv-1.sentence-1'>.</a></div></div></div></div><div class='para' id='non.mem.conv-2'><div class='marginalizedparent'><a class='marginalized' href='#non.mem.conv-2'>2</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L6525'>#</a></div><div class='texpara'><div id='non.mem.conv-2.sentence-1' class='sentence'><span class='texttt'>value_<span class='shy'></span>cast</span> is an explicit cast that allows truncation<a class='hidden_link' href='#non.mem.conv-2.sentence-1'>.</a></div></div></div><div class='texpara'><div id='lib:quantity_point,value_cast'><div id='lib:value_cast,quantity_point'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:value_cast,quantity_point'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><a href='qty.unit.concepts.html#concept:Unit' title='5.4.4.4&emsp;Concepts&emsp;[qty.unit.concepts]'><span id='conceptref:Unit_'><span class='texttt'>Unit</span></span></a> <span class='keyword'>auto</span> ToU, <span class='keyword'>typename</span> FwdQP, <a href='#concept:QuantityPoint' title='5.7.4&emsp;Class template quantity_&shy;point&emsp;[qty.pt.syn]'><span id='conceptref:QuantityPoint_______________'><span class='texttt'>QuantityPoint</span></span></a> QP <span class='operator'>=</span> std<span class='operator'>::</span>remove_cvref_t<span class='anglebracket'>&lt;</span>FwdQP<span class='anglebracket'>&gt;</span><span class='anglebracket'>&gt;</span>
<span class='keyword'>requires</span><span class='parenthesis'>(</span>convertible<span class='parenthesis'>(</span>QP<span class='operator'>::</span>reference, ToU<span class='parenthesis'>)</span><span class='parenthesis'>)</span>
<span class='keyword'>constexpr</span> <a href='#concept:QuantityPoint' title='5.7.4&emsp;Class template quantity_&shy;point&emsp;[qty.pt.syn]'><span id='conceptref:QuantityPoint________________'><span class='texttt'>QuantityPoint</span></span></a> <span class='keyword'>auto</span> value_cast<span class='parenthesis'>(</span>FwdQP<span class='operator'>&amp;</span><span class='operator'>&amp;</span> qp<span class='parenthesis'>)</span>;
</code></div></div></div></div><div class='para' id='non.mem.conv-3'><div class='marginalizedparent'><a class='marginalized' href='#non.mem.conv-3'>3</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L6536'>#</a></div><div class='texpara'><div id='non.mem.conv-3.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
</code></div></div></div></div><div class='para' id='non.mem.conv-3'><div class='marginalizedparent'><a class='marginalized' href='#non.mem.conv-3'>3</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L6536'>#</a></div><div class='texpara'><div id='non.mem.conv-3.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
<span class='codeblock'><span class='keyword'>return</span> quantity_point<span class='curlybracket'>{</span>value_cast<span class='anglebracket'>&lt;</span>ToU<span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span>std<span class='operator'>::</span>forward<span class='anglebracket'>&lt;</span>FwdQP<span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span>qp<span class='parenthesis'>)</span><span class='operator'>.</span><i >quantity-from-origin</i><span class='parenthesis'>)</span>,
QP<span class='operator'>::</span>point_origin<span class='curlybracket'>}</span>;
</span></div></div></div></div><div class='texpara'><div id='lib:quantity_point,value_cast_'><div id='lib:value_cast,quantity_point_'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:value_cast,quantity_point_'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><a href='qty.rep.concepts.html#concept:Representation' title='5.5.4&emsp;Concepts&emsp;[qty.rep.concepts]'><span id='conceptref:Representation'><span class='texttt'>Representation</span></span></a> ToRep, <span class='keyword'>typename</span> FwdQP, <a href='#concept:QuantityPoint' title='5.7.4&emsp;Class template quantity_&shy;point&emsp;[qty.pt.syn]'><span id='conceptref:QuantityPoint_________________'><span class='texttt'>QuantityPoint</span></span></a> QP <span class='operator'>=</span> std<span class='operator'>::</span>remove_cvref_t<span class='anglebracket'>&lt;</span>FwdQP<span class='anglebracket'>&gt;</span><span class='anglebracket'>&gt;</span>
<span class='keyword'>requires</span> <a href='qty.rep.concepts.html#concept:RepresentationOf' title='5.5.4&emsp;Concepts&emsp;[qty.rep.concepts]'><span id='conceptref:RepresentationOf___________'><span class='texttt'>RepresentationOf</span></span></a><span class='anglebracket'>&lt;</span>ToRep, QP<span class='operator'>::</span>quantity_spec<span class='anglebracket'>&gt;</span> <span class='operator'>&amp;</span><span class='operator'>&amp;</span>
std<span class='operator'>::</span>constructible_from<span class='anglebracket'>&lt;</span>ToRep, <span class='keyword'>typename</span> QP<span class='operator'>::</span>rep<span class='anglebracket'>&gt;</span>
<span class='keyword'>constexpr</span> quantity_point<span class='anglebracket'>&lt;</span>QP<span class='operator'>::</span>reference, QP<span class='operator'>::</span>point_origin, ToRep<span class='anglebracket'>&gt;</span> value_cast<span class='parenthesis'>(</span>FwdQP<span class='operator'>&amp;</span><span class='operator'>&amp;</span> qp<span class='parenthesis'>)</span>;
</code></div></div></div></div><div class='para' id='non.mem.conv-4'><div class='marginalizedparent'><a class='marginalized' href='#non.mem.conv-4'>4</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L6554'>#</a></div><div class='texpara'><div id='non.mem.conv-4.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
</code></div></div></div></div><div class='para' id='non.mem.conv-4'><div class='marginalizedparent'><a class='marginalized' href='#non.mem.conv-4'>4</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L6554'>#</a></div><div class='texpara'><div id='non.mem.conv-4.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
<span class='codeblock'><span class='keyword'>return</span> <span class='curlybracket'>{</span>value_cast<span class='anglebracket'>&lt;</span>ToRep<span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span>std<span class='operator'>::</span>forward<span class='anglebracket'>&lt;</span>FwdQP<span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span>qp<span class='parenthesis'>)</span><span class='operator'>.</span><i >quantity-from-origin</i><span class='parenthesis'>)</span>, QP<span class='operator'>::</span>point_origin<span class='curlybracket'>}</span>;
</span></div></div></div></div><div class='texpara'><div id='lib:quantity_point,value_cast__'><div id='lib:value_cast,quantity_point__'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:value_cast,quantity_point__'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><a href='qty.unit.concepts.html#concept:Unit' title='5.4.4.4&emsp;Concepts&emsp;[qty.unit.concepts]'><span id='conceptref:Unit__'><span class='texttt'>Unit</span></span></a> <span class='keyword'>auto</span> ToU, <a href='qty.rep.concepts.html#concept:Representation' title='5.5.4&emsp;Concepts&emsp;[qty.rep.concepts]'><span id='conceptref:Representation_'><span class='texttt'>Representation</span></span></a> ToRep, <span class='keyword'>typename</span> FwdQP,
<a href='#concept:QuantityPoint' title='5.7.4&emsp;Class template quantity_&shy;point&emsp;[qty.pt.syn]'><span id='conceptref:QuantityPoint__________________'><span class='texttt'>QuantityPoint</span></span></a> QP <span class='operator'>=</span> std<span class='operator'>::</span>remove_cvref_t<span class='anglebracket'>&lt;</span>FwdQP<span class='anglebracket'>&gt;</span><span class='anglebracket'>&gt;</span>
@ -592,17 +592,17 @@ let <i >C</i> be
<a href='#concept:QuantityPoint' title='5.7.4&emsp;Class template quantity_&shy;point&emsp;[qty.pt.syn]'><span id='conceptref:QuantityPoint____________________'><span class='texttt'>QuantityPoint</span></span></a> QP <span class='operator'>=</span> std<span class='operator'>::</span>remove_cvref_t<span class='anglebracket'>&lt;</span>FwdQP<span class='anglebracket'>&gt;</span><span class='anglebracket'>&gt;</span>
<span class='keyword'>requires</span> <i ><span class='texttt'>see below</span></i>
<span class='keyword'>constexpr</span> <a href='#concept:QuantityPoint' title='5.7.4&emsp;Class template quantity_&shy;point&emsp;[qty.pt.syn]'><span id='conceptref:QuantityPoint_____________________'><span class='texttt'>QuantityPoint</span></span></a> <span class='keyword'>auto</span> value_cast<span class='parenthesis'>(</span>FwdQP<span class='operator'>&amp;</span><span class='operator'>&amp;</span> qp<span class='parenthesis'>)</span>;
</code></div></div></div></div><div class='para' id='non.mem.conv-5'><div class='marginalizedparent'><a class='marginalized' href='#non.mem.conv-5'>5</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L6575'>#</a></div><div class='texpara'><div id='non.mem.conv-5.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
</code></div></div></div></div><div class='para' id='non.mem.conv-5'><div class='marginalizedparent'><a class='marginalized' href='#non.mem.conv-5'>5</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L6575'>#</a></div><div class='texpara'><div id='non.mem.conv-5.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
<span class='codeblock'><span class='keyword'>return</span> quantity_point<span class='curlybracket'>{</span>value_cast<span class='anglebracket'>&lt;</span>ToU, ToRep<span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span>std<span class='operator'>::</span>forward<span class='anglebracket'>&lt;</span>FwdQP<span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span>qp<span class='parenthesis'>)</span><span class='operator'>.</span><i >quantity-from-origin</i><span class='parenthesis'>)</span>,
QP<span class='operator'>::</span>point_origin<span class='curlybracket'>}</span>;
</span></div></div></div></div><div class='para' id='non.mem.conv-6'><div class='marginalizedparent'><a class='marginalized' href='#non.mem.conv-6'>6</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L6583'>#</a></div><div class='texpara'><div id='non.mem.conv-6.sentence-1' class='sentence'><i >Remarks</i>: The expression in the <span class='textsf'><i >requires-clause</i></span> is equivalent to:
</span></div></div></div></div><div class='para' id='non.mem.conv-6'><div class='marginalizedparent'><a class='marginalized' href='#non.mem.conv-6'>6</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L6583'>#</a></div><div class='texpara'><div id='non.mem.conv-6.sentence-1' class='sentence'><i >Remarks</i>: The expression in the <span class='textsf'><i >requires-clause</i></span> is equivalent to:
<span class='codeblock'><span class='parenthesis'>(</span>convertible<span class='parenthesis'>(</span>QP<span class='operator'>::</span>reference, ToU<span class='parenthesis'>)</span><span class='parenthesis'>)</span> <span class='operator'>&amp;</span><span class='operator'>&amp;</span> <a href='qty.rep.concepts.html#concept:RepresentationOf' title='5.5.4&emsp;Concepts&emsp;[qty.rep.concepts]'><span id='conceptref:RepresentationOf____________'><span class='tcode_in_codeblock'>RepresentationOf</span></span></a><span class='anglebracket'>&lt;</span>ToRep, QP<span class='operator'>::</span>quantity_spec<span class='anglebracket'>&gt;</span> <span class='operator'>&amp;</span><span class='operator'>&amp;</span>
std<span class='operator'>::</span>constructible_from<span class='anglebracket'>&lt;</span>ToRep, <span class='keyword'>typename</span> QP<span class='operator'>::</span>rep<span class='anglebracket'>&gt;</span>
</span></div></div></div></div><div class='texpara'><div id='lib:quantity_point,value_cast___'><div id='lib:value_cast,quantity_point___'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:value_cast,quantity_point___'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><a href='qty.syn.html#concept:Quantity' title='5.6.3&emsp;Class template quantity&emsp;[qty.syn]'><span id='conceptref:Quantity____________________'><span class='texttt'>Quantity</span></span></a> ToQ, <span class='keyword'>typename</span> FwdQP, <a href='#concept:QuantityPoint' title='5.7.4&emsp;Class template quantity_&shy;point&emsp;[qty.pt.syn]'><span id='conceptref:QuantityPoint______________________'><span class='texttt'>QuantityPoint</span></span></a> QP <span class='operator'>=</span> std<span class='operator'>::</span>remove_cvref_t<span class='anglebracket'>&lt;</span>FwdQP<span class='anglebracket'>&gt;</span><span class='anglebracket'>&gt;</span>
<span class='keyword'>requires</span><span class='parenthesis'>(</span>convertible<span class='parenthesis'>(</span>QP<span class='operator'>::</span>reference, ToQ<span class='operator'>::</span>unit<span class='parenthesis'>)</span><span class='parenthesis'>)</span> <span class='operator'>&amp;</span><span class='operator'>&amp;</span> <span class='parenthesis'>(</span>ToQ<span class='operator'>::</span>quantity_spec <span class='operator'>=</span><span class='operator'>=</span> QP<span class='operator'>::</span>quantity_spec<span class='parenthesis'>)</span> <span class='operator'>&amp;</span><span class='operator'>&amp;</span>
std<span class='operator'>::</span>constructible_from<span class='anglebracket'>&lt;</span><span class='keyword'>typename</span> ToQ<span class='operator'>::</span>rep, <span class='keyword'>typename</span> QP<span class='operator'>::</span>rep<span class='anglebracket'>&gt;</span>
<span class='keyword'>constexpr</span> <a href='#concept:QuantityPoint' title='5.7.4&emsp;Class template quantity_&shy;point&emsp;[qty.pt.syn]'><span id='conceptref:QuantityPoint_______________________'><span class='texttt'>QuantityPoint</span></span></a> <span class='keyword'>auto</span> value_cast<span class='parenthesis'>(</span>FwdQP<span class='operator'>&amp;</span><span class='operator'>&amp;</span> qp<span class='parenthesis'>)</span>;
</code></div></div></div></div><div class='para' id='non.mem.conv-7'><div class='marginalizedparent'><a class='marginalized' href='#non.mem.conv-7'>7</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L6601'>#</a></div><div class='texpara'><div id='non.mem.conv-7.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
</code></div></div></div></div><div class='para' id='non.mem.conv-7'><div class='marginalizedparent'><a class='marginalized' href='#non.mem.conv-7'>7</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L6601'>#</a></div><div class='texpara'><div id='non.mem.conv-7.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
<span class='codeblock'><span class='keyword'>return</span> quantity_point<span class='curlybracket'>{</span>value_cast<span class='anglebracket'>&lt;</span>ToQ<span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span>std<span class='operator'>::</span>forward<span class='anglebracket'>&lt;</span>FwdQP<span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span>qp<span class='parenthesis'>)</span><span class='operator'>.</span><i >quantity-from-origin</i><span class='parenthesis'>)</span>,
QP<span class='operator'>::</span>point_origin<span class='curlybracket'>}</span>;
</span></div></div></div></div><div class='texpara'><div id='lib:quantity_point,value_cast____'><div id='lib:value_cast,quantity_point____'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:value_cast,quantity_point____'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><a href='#concept:QuantityPoint' title='5.7.4&emsp;Class template quantity_&shy;point&emsp;[qty.pt.syn]'><span id='conceptref:QuantityPoint________________________'><span class='texttt'>QuantityPoint</span></span></a> ToQP, <span class='keyword'>typename</span> FwdQP, <a href='#concept:QuantityPoint' title='5.7.4&emsp;Class template quantity_&shy;point&emsp;[qty.pt.syn]'><span id='conceptref:QuantityPoint_________________________'><span class='texttt'>QuantityPoint</span></span></a> QP <span class='operator'>=</span> std<span class='operator'>::</span>remove_cvref_t<span class='anglebracket'>&lt;</span>FwdQP<span class='anglebracket'>&gt;</span><span class='anglebracket'>&gt;</span>
@ -611,11 +611,11 @@ std<span class='operator'>::</span>constructible_from<span class='anglebracket'>
<span class='parenthesis'>(</span><span class='texttt'><i >same-absolute-point-origins</i></span><span class='parenthesis'>(</span>ToQP<span class='operator'>::</span>point_origin, QP<span class='operator'>::</span>point_origin<span class='parenthesis'>)</span><span class='parenthesis'>)</span> <span class='operator'>&amp;</span><span class='operator'>&amp;</span>
std<span class='operator'>::</span>constructible_from<span class='anglebracket'>&lt;</span><span class='keyword'>typename</span> ToQP<span class='operator'>::</span>rep, <span class='keyword'>typename</span> QP<span class='operator'>::</span>rep<span class='anglebracket'>&gt;</span>
<span class='keyword'>constexpr</span> <a href='#concept:QuantityPoint' title='5.7.4&emsp;Class template quantity_&shy;point&emsp;[qty.pt.syn]'><span id='conceptref:QuantityPoint__________________________'><span class='texttt'>QuantityPoint</span></span></a> <span class='keyword'>auto</span> value_cast<span class='parenthesis'>(</span>FwdQP<span class='operator'>&amp;</span><span class='operator'>&amp;</span> qp<span class='parenthesis'>)</span>;
</code></div></div></div></div><div class='para' id='non.mem.conv-8'><div class='marginalizedparent'><a class='marginalized' href='#non.mem.conv-8'>8</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L6621'>#</a></div><div class='texpara'><div id='non.mem.conv-8.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
<span class='texttt'><span class='keyword'>return</span> <span class='texttt'><i >sudo-cast</i></span><span class='anglebracket'>&lt;</span>ToQP<span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span>std<span class='operator'>&#x200b;::&#x200b;</span>forward<span class='anglebracket'>&lt;</span>FwdQP<span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span>qp<span class='parenthesis'>)</span><span class='parenthesis'>)</span>;</span></div></div></div></div><div class='para' id='non.mem.conv-9'><div class='marginalizedparent'><a class='marginalized' href='#non.mem.conv-9'>9</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L6627'>#</a></div><div class='texpara'><div id='non.mem.conv-9.sentence-1' class='sentence'><span class='texttt'>quantity_<span class='shy'></span>cast</span> is an explicit cast that allows converting to more specific quantities<a class='hidden_link' href='#non.mem.conv-9.sentence-1'>.</a></div></div></div><div class='texpara'><div id='lib:quantity_point,quantity_cast'><div id='lib:quantity_cast,quantity_point'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:quantity_cast,quantity_point'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><a href='qty.spec.concepts.html#concept:QuantitySpec' title='5.4.3.2&emsp;Concepts&emsp;[qty.spec.concepts]'><span id='conceptref:QuantitySpec_____'><span class='texttt'>QuantitySpec</span></span></a> <span class='keyword'>auto</span> ToQS, <span class='keyword'>typename</span> FwdQP, <a href='#concept:QuantityPoint' title='5.7.4&emsp;Class template quantity_&shy;point&emsp;[qty.pt.syn]'><span id='conceptref:QuantityPoint___________________________'><span class='texttt'>QuantityPoint</span></span></a> QP <span class='operator'>=</span> std<span class='operator'>::</span>remove_cvref_t<span class='anglebracket'>&lt;</span>FwdQP<span class='anglebracket'>&gt;</span><span class='anglebracket'>&gt;</span>
</code></div></div></div></div><div class='para' id='non.mem.conv-8'><div class='marginalizedparent'><a class='marginalized' href='#non.mem.conv-8'>8</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L6621'>#</a></div><div class='texpara'><div id='non.mem.conv-8.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
<span class='texttt'><span class='keyword'>return</span> <span class='texttt'><i >sudo-cast</i></span><span class='anglebracket'>&lt;</span>ToQP<span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span>std<span class='operator'>&#x200b;::&#x200b;</span>forward<span class='anglebracket'>&lt;</span>FwdQP<span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span>qp<span class='parenthesis'>)</span><span class='parenthesis'>)</span>;</span></div></div></div></div><div class='para' id='non.mem.conv-9'><div class='marginalizedparent'><a class='marginalized' href='#non.mem.conv-9'>9</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L6627'>#</a></div><div class='texpara'><div id='non.mem.conv-9.sentence-1' class='sentence'><span class='texttt'>quantity_<span class='shy'></span>cast</span> is an explicit cast that allows converting to more specific quantities<a class='hidden_link' href='#non.mem.conv-9.sentence-1'>.</a></div></div></div><div class='texpara'><div id='lib:quantity_point,quantity_cast'><div id='lib:quantity_cast,quantity_point'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:quantity_cast,quantity_point'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><a href='qty.spec.concepts.html#concept:QuantitySpec' title='5.4.3.2&emsp;Concepts&emsp;[qty.spec.concepts]'><span id='conceptref:QuantitySpec_____'><span class='texttt'>QuantitySpec</span></span></a> <span class='keyword'>auto</span> ToQS, <span class='keyword'>typename</span> FwdQP, <a href='#concept:QuantityPoint' title='5.7.4&emsp;Class template quantity_&shy;point&emsp;[qty.pt.syn]'><span id='conceptref:QuantityPoint___________________________'><span class='texttt'>QuantityPoint</span></span></a> QP <span class='operator'>=</span> std<span class='operator'>::</span>remove_cvref_t<span class='anglebracket'>&lt;</span>FwdQP<span class='anglebracket'>&gt;</span><span class='anglebracket'>&gt;</span>
<span class='keyword'>requires</span> <a class='index' id='conceptref:QuantitySpecCastableTo'></a><span class='texttt'><i >QuantitySpecCastableTo</i></span><span class='anglebracket'>&lt;</span>QP<span class='operator'>::</span>quantity_spec, ToQS<span class='anglebracket'>&gt;</span>
<span class='keyword'>constexpr</span> <a href='#concept:QuantityPoint' title='5.7.4&emsp;Class template quantity_&shy;point&emsp;[qty.pt.syn]'><span id='conceptref:QuantityPoint____________________________'><span class='texttt'>QuantityPoint</span></span></a> <span class='keyword'>auto</span> quantity_cast<span class='parenthesis'>(</span>FwdQP<span class='operator'>&amp;</span><span class='operator'>&amp;</span> qp<span class='parenthesis'>)</span>;
</code></div></div></div></div><div class='para' id='non.mem.conv-10'><div class='marginalizedparent'><a class='marginalized' href='#non.mem.conv-10'>10</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L6638'>#</a></div><div class='texpara'><div id='non.mem.conv-10.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
</code></div></div></div></div><div class='para' id='non.mem.conv-10'><div class='marginalizedparent'><a class='marginalized' href='#non.mem.conv-10'>10</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L6638'>#</a></div><div class='texpara'><div id='non.mem.conv-10.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
<span class='codeblock'><span class='keyword'>return</span> QP<span class='curlybracket'>{</span>quantity_cast<span class='anglebracket'>&lt;</span>ToQS<span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span>std<span class='operator'>::</span>forward<span class='anglebracket'>&lt;</span>FwdQP<span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span>qp<span class='parenthesis'>)</span><span class='operator'>.</span><i >quantity_from_origin</i><span class='parenthesis'>)</span>,
QP<span class='operator'>::</span>point_origin<span class='curlybracket'>}</span>;
</span></div></div></div></div></div></div></body></html>

View File

@ -2,17 +2,17 @@
<a href='qty.pt.syn.html#concept:QuantityPoint' title='5.7.4&emsp;Class template quantity_&shy;point&emsp;[qty.pt.syn]'><span id='conceptref:QuantityPoint_'><span class='texttt'>QuantityPoint</span></span></a> FromQP <span class='operator'>=</span> std<span class='operator'>::</span>remove_cvref_t<span class='anglebracket'>&lt;</span>FwdFromQP<span class='anglebracket'>&gt;</span><span class='anglebracket'>&gt;</span>
<span class='keyword'>requires</span> <i ><span class='texttt'>see below</span></i>
<span class='keyword'>constexpr</span> <a href='qty.pt.syn.html#concept:QuantityPoint' title='5.7.4&emsp;Class template quantity_&shy;point&emsp;[qty.pt.syn]'><span id='conceptref:QuantityPoint__'><span class='texttt'>QuantityPoint</span></span></a> <span class='keyword'>auto</span> <span class='texttt'><i >sudo-cast</i></span><span class='parenthesis'>(</span>FwdFromQP<span class='operator'>&amp;</span><span class='operator'>&amp;</span> qp<span class='parenthesis'>)</span>;
</code></div></div></div></div><div class='para' id='1'><div class='marginalizedparent'><a class='marginalized' href='#1'>1</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L6520'>#</a></div><div class='texpara'><div id='1.sentence-1' class='sentence'><i >Returns</i>: TBD<a class='hidden_link' href='#1.sentence-1'>.</a></div></div></div></div><div class='para' id='2'><div class='marginalizedparent'><a class='marginalized' href='#2'>2</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L6525'>#</a></div><div class='texpara'><div id='2.sentence-1' class='sentence'><span class='texttt'>value_<span class='shy'></span>cast</span> is an explicit cast that allows truncation<a class='hidden_link' href='#2.sentence-1'>.</a></div></div></div><div class='texpara'><div id='lib:quantity_point,value_cast'><div id='lib:value_cast,quantity_point'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:value_cast,quantity_point'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><a href='qty.unit.concepts.html#concept:Unit' title='5.4.4.4&emsp;Concepts&emsp;[qty.unit.concepts]'><span id='conceptref:Unit'><span class='texttt'>Unit</span></span></a> <span class='keyword'>auto</span> ToU, <span class='keyword'>typename</span> FwdQP, <a href='qty.pt.syn.html#concept:QuantityPoint' title='5.7.4&emsp;Class template quantity_&shy;point&emsp;[qty.pt.syn]'><span id='conceptref:QuantityPoint___'><span class='texttt'>QuantityPoint</span></span></a> QP <span class='operator'>=</span> std<span class='operator'>::</span>remove_cvref_t<span class='anglebracket'>&lt;</span>FwdQP<span class='anglebracket'>&gt;</span><span class='anglebracket'>&gt;</span>
</code></div></div></div></div><div class='para' id='1'><div class='marginalizedparent'><a class='marginalized' href='#1'>1</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L6520'>#</a></div><div class='texpara'><div id='1.sentence-1' class='sentence'><i >Returns</i>: TBD<a class='hidden_link' href='#1.sentence-1'>.</a></div></div></div></div><div class='para' id='2'><div class='marginalizedparent'><a class='marginalized' href='#2'>2</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L6525'>#</a></div><div class='texpara'><div id='2.sentence-1' class='sentence'><span class='texttt'>value_<span class='shy'></span>cast</span> is an explicit cast that allows truncation<a class='hidden_link' href='#2.sentence-1'>.</a></div></div></div><div class='texpara'><div id='lib:quantity_point,value_cast'><div id='lib:value_cast,quantity_point'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:value_cast,quantity_point'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><a href='qty.unit.concepts.html#concept:Unit' title='5.4.4.4&emsp;Concepts&emsp;[qty.unit.concepts]'><span id='conceptref:Unit'><span class='texttt'>Unit</span></span></a> <span class='keyword'>auto</span> ToU, <span class='keyword'>typename</span> FwdQP, <a href='qty.pt.syn.html#concept:QuantityPoint' title='5.7.4&emsp;Class template quantity_&shy;point&emsp;[qty.pt.syn]'><span id='conceptref:QuantityPoint___'><span class='texttt'>QuantityPoint</span></span></a> QP <span class='operator'>=</span> std<span class='operator'>::</span>remove_cvref_t<span class='anglebracket'>&lt;</span>FwdQP<span class='anglebracket'>&gt;</span><span class='anglebracket'>&gt;</span>
<span class='keyword'>requires</span><span class='parenthesis'>(</span>convertible<span class='parenthesis'>(</span>QP<span class='operator'>::</span>reference, ToU<span class='parenthesis'>)</span><span class='parenthesis'>)</span>
<span class='keyword'>constexpr</span> <a href='qty.pt.syn.html#concept:QuantityPoint' title='5.7.4&emsp;Class template quantity_&shy;point&emsp;[qty.pt.syn]'><span id='conceptref:QuantityPoint____'><span class='texttt'>QuantityPoint</span></span></a> <span class='keyword'>auto</span> value_cast<span class='parenthesis'>(</span>FwdQP<span class='operator'>&amp;</span><span class='operator'>&amp;</span> qp<span class='parenthesis'>)</span>;
</code></div></div></div></div><div class='para' id='3'><div class='marginalizedparent'><a class='marginalized' href='#3'>3</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L6536'>#</a></div><div class='texpara'><div id='3.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
</code></div></div></div></div><div class='para' id='3'><div class='marginalizedparent'><a class='marginalized' href='#3'>3</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L6536'>#</a></div><div class='texpara'><div id='3.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
<span class='codeblock'><span class='keyword'>return</span> quantity_point<span class='curlybracket'>{</span>value_cast<span class='anglebracket'>&lt;</span>ToU<span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span>std<span class='operator'>::</span>forward<span class='anglebracket'>&lt;</span>FwdQP<span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span>qp<span class='parenthesis'>)</span><span class='operator'>.</span><i >quantity-from-origin</i><span class='parenthesis'>)</span>,
QP<span class='operator'>::</span>point_origin<span class='curlybracket'>}</span>;
</span></div></div></div></div><div class='texpara'><div id='lib:quantity_point,value_cast_'><div id='lib:value_cast,quantity_point_'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:value_cast,quantity_point_'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><a href='qty.rep.concepts.html#concept:Representation' title='5.5.4&emsp;Concepts&emsp;[qty.rep.concepts]'><span id='conceptref:Representation'><span class='texttt'>Representation</span></span></a> ToRep, <span class='keyword'>typename</span> FwdQP, <a href='qty.pt.syn.html#concept:QuantityPoint' title='5.7.4&emsp;Class template quantity_&shy;point&emsp;[qty.pt.syn]'><span id='conceptref:QuantityPoint_____'><span class='texttt'>QuantityPoint</span></span></a> QP <span class='operator'>=</span> std<span class='operator'>::</span>remove_cvref_t<span class='anglebracket'>&lt;</span>FwdQP<span class='anglebracket'>&gt;</span><span class='anglebracket'>&gt;</span>
<span class='keyword'>requires</span> <a href='qty.rep.concepts.html#concept:RepresentationOf' title='5.5.4&emsp;Concepts&emsp;[qty.rep.concepts]'><span id='conceptref:RepresentationOf'><span class='texttt'>RepresentationOf</span></span></a><span class='anglebracket'>&lt;</span>ToRep, QP<span class='operator'>::</span>quantity_spec<span class='anglebracket'>&gt;</span> <span class='operator'>&amp;</span><span class='operator'>&amp;</span>
std<span class='operator'>::</span>constructible_from<span class='anglebracket'>&lt;</span>ToRep, <span class='keyword'>typename</span> QP<span class='operator'>::</span>rep<span class='anglebracket'>&gt;</span>
<span class='keyword'>constexpr</span> quantity_point<span class='anglebracket'>&lt;</span>QP<span class='operator'>::</span>reference, QP<span class='operator'>::</span>point_origin, ToRep<span class='anglebracket'>&gt;</span> value_cast<span class='parenthesis'>(</span>FwdQP<span class='operator'>&amp;</span><span class='operator'>&amp;</span> qp<span class='parenthesis'>)</span>;
</code></div></div></div></div><div class='para' id='4'><div class='marginalizedparent'><a class='marginalized' href='#4'>4</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L6554'>#</a></div><div class='texpara'><div id='4.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
</code></div></div></div></div><div class='para' id='4'><div class='marginalizedparent'><a class='marginalized' href='#4'>4</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L6554'>#</a></div><div class='texpara'><div id='4.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
<span class='codeblock'><span class='keyword'>return</span> <span class='curlybracket'>{</span>value_cast<span class='anglebracket'>&lt;</span>ToRep<span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span>std<span class='operator'>::</span>forward<span class='anglebracket'>&lt;</span>FwdQP<span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span>qp<span class='parenthesis'>)</span><span class='operator'>.</span><i >quantity-from-origin</i><span class='parenthesis'>)</span>, QP<span class='operator'>::</span>point_origin<span class='curlybracket'>}</span>;
</span></div></div></div></div><div class='texpara'><div id='lib:quantity_point,value_cast__'><div id='lib:value_cast,quantity_point__'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:value_cast,quantity_point__'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><a href='qty.unit.concepts.html#concept:Unit' title='5.4.4.4&emsp;Concepts&emsp;[qty.unit.concepts]'><span id='conceptref:Unit_'><span class='texttt'>Unit</span></span></a> <span class='keyword'>auto</span> ToU, <a href='qty.rep.concepts.html#concept:Representation' title='5.5.4&emsp;Concepts&emsp;[qty.rep.concepts]'><span id='conceptref:Representation_'><span class='texttt'>Representation</span></span></a> ToRep, <span class='keyword'>typename</span> FwdQP,
<a href='qty.pt.syn.html#concept:QuantityPoint' title='5.7.4&emsp;Class template quantity_&shy;point&emsp;[qty.pt.syn]'><span id='conceptref:QuantityPoint______'><span class='texttt'>QuantityPoint</span></span></a> QP <span class='operator'>=</span> std<span class='operator'>::</span>remove_cvref_t<span class='anglebracket'>&lt;</span>FwdQP<span class='anglebracket'>&gt;</span><span class='anglebracket'>&gt;</span>
@ -22,17 +22,17 @@
<a href='qty.pt.syn.html#concept:QuantityPoint' title='5.7.4&emsp;Class template quantity_&shy;point&emsp;[qty.pt.syn]'><span id='conceptref:QuantityPoint________'><span class='texttt'>QuantityPoint</span></span></a> QP <span class='operator'>=</span> std<span class='operator'>::</span>remove_cvref_t<span class='anglebracket'>&lt;</span>FwdQP<span class='anglebracket'>&gt;</span><span class='anglebracket'>&gt;</span>
<span class='keyword'>requires</span> <i ><span class='texttt'>see below</span></i>
<span class='keyword'>constexpr</span> <a href='qty.pt.syn.html#concept:QuantityPoint' title='5.7.4&emsp;Class template quantity_&shy;point&emsp;[qty.pt.syn]'><span id='conceptref:QuantityPoint_________'><span class='texttt'>QuantityPoint</span></span></a> <span class='keyword'>auto</span> value_cast<span class='parenthesis'>(</span>FwdQP<span class='operator'>&amp;</span><span class='operator'>&amp;</span> qp<span class='parenthesis'>)</span>;
</code></div></div></div></div><div class='para' id='5'><div class='marginalizedparent'><a class='marginalized' href='#5'>5</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L6575'>#</a></div><div class='texpara'><div id='5.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
</code></div></div></div></div><div class='para' id='5'><div class='marginalizedparent'><a class='marginalized' href='#5'>5</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L6575'>#</a></div><div class='texpara'><div id='5.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
<span class='codeblock'><span class='keyword'>return</span> quantity_point<span class='curlybracket'>{</span>value_cast<span class='anglebracket'>&lt;</span>ToU, ToRep<span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span>std<span class='operator'>::</span>forward<span class='anglebracket'>&lt;</span>FwdQP<span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span>qp<span class='parenthesis'>)</span><span class='operator'>.</span><i >quantity-from-origin</i><span class='parenthesis'>)</span>,
QP<span class='operator'>::</span>point_origin<span class='curlybracket'>}</span>;
</span></div></div></div></div><div class='para' id='6'><div class='marginalizedparent'><a class='marginalized' href='#6'>6</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L6583'>#</a></div><div class='texpara'><div id='6.sentence-1' class='sentence'><i >Remarks</i>: The expression in the <span class='textsf'><i >requires-clause</i></span> is equivalent to:
</span></div></div></div></div><div class='para' id='6'><div class='marginalizedparent'><a class='marginalized' href='#6'>6</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L6583'>#</a></div><div class='texpara'><div id='6.sentence-1' class='sentence'><i >Remarks</i>: The expression in the <span class='textsf'><i >requires-clause</i></span> is equivalent to:
<span class='codeblock'><span class='parenthesis'>(</span>convertible<span class='parenthesis'>(</span>QP<span class='operator'>::</span>reference, ToU<span class='parenthesis'>)</span><span class='parenthesis'>)</span> <span class='operator'>&amp;</span><span class='operator'>&amp;</span> <a href='qty.rep.concepts.html#concept:RepresentationOf' title='5.5.4&emsp;Concepts&emsp;[qty.rep.concepts]'><span id='conceptref:RepresentationOf_'><span class='tcode_in_codeblock'>RepresentationOf</span></span></a><span class='anglebracket'>&lt;</span>ToRep, QP<span class='operator'>::</span>quantity_spec<span class='anglebracket'>&gt;</span> <span class='operator'>&amp;</span><span class='operator'>&amp;</span>
std<span class='operator'>::</span>constructible_from<span class='anglebracket'>&lt;</span>ToRep, <span class='keyword'>typename</span> QP<span class='operator'>::</span>rep<span class='anglebracket'>&gt;</span>
</span></div></div></div></div><div class='texpara'><div id='lib:quantity_point,value_cast___'><div id='lib:value_cast,quantity_point___'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:value_cast,quantity_point___'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><a href='qty.syn.html#concept:Quantity' title='5.6.3&emsp;Class template quantity&emsp;[qty.syn]'><span id='conceptref:Quantity'><span class='texttt'>Quantity</span></span></a> ToQ, <span class='keyword'>typename</span> FwdQP, <a href='qty.pt.syn.html#concept:QuantityPoint' title='5.7.4&emsp;Class template quantity_&shy;point&emsp;[qty.pt.syn]'><span id='conceptref:QuantityPoint__________'><span class='texttt'>QuantityPoint</span></span></a> QP <span class='operator'>=</span> std<span class='operator'>::</span>remove_cvref_t<span class='anglebracket'>&lt;</span>FwdQP<span class='anglebracket'>&gt;</span><span class='anglebracket'>&gt;</span>
<span class='keyword'>requires</span><span class='parenthesis'>(</span>convertible<span class='parenthesis'>(</span>QP<span class='operator'>::</span>reference, ToQ<span class='operator'>::</span>unit<span class='parenthesis'>)</span><span class='parenthesis'>)</span> <span class='operator'>&amp;</span><span class='operator'>&amp;</span> <span class='parenthesis'>(</span>ToQ<span class='operator'>::</span>quantity_spec <span class='operator'>=</span><span class='operator'>=</span> QP<span class='operator'>::</span>quantity_spec<span class='parenthesis'>)</span> <span class='operator'>&amp;</span><span class='operator'>&amp;</span>
std<span class='operator'>::</span>constructible_from<span class='anglebracket'>&lt;</span><span class='keyword'>typename</span> ToQ<span class='operator'>::</span>rep, <span class='keyword'>typename</span> QP<span class='operator'>::</span>rep<span class='anglebracket'>&gt;</span>
<span class='keyword'>constexpr</span> <a href='qty.pt.syn.html#concept:QuantityPoint' title='5.7.4&emsp;Class template quantity_&shy;point&emsp;[qty.pt.syn]'><span id='conceptref:QuantityPoint___________'><span class='texttt'>QuantityPoint</span></span></a> <span class='keyword'>auto</span> value_cast<span class='parenthesis'>(</span>FwdQP<span class='operator'>&amp;</span><span class='operator'>&amp;</span> qp<span class='parenthesis'>)</span>;
</code></div></div></div></div><div class='para' id='7'><div class='marginalizedparent'><a class='marginalized' href='#7'>7</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L6601'>#</a></div><div class='texpara'><div id='7.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
</code></div></div></div></div><div class='para' id='7'><div class='marginalizedparent'><a class='marginalized' href='#7'>7</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L6601'>#</a></div><div class='texpara'><div id='7.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
<span class='codeblock'><span class='keyword'>return</span> quantity_point<span class='curlybracket'>{</span>value_cast<span class='anglebracket'>&lt;</span>ToQ<span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span>std<span class='operator'>::</span>forward<span class='anglebracket'>&lt;</span>FwdQP<span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span>qp<span class='parenthesis'>)</span><span class='operator'>.</span><i >quantity-from-origin</i><span class='parenthesis'>)</span>,
QP<span class='operator'>::</span>point_origin<span class='curlybracket'>}</span>;
</span></div></div></div></div><div class='texpara'><div id='lib:quantity_point,value_cast____'><div id='lib:value_cast,quantity_point____'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:value_cast,quantity_point____'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><a href='qty.pt.syn.html#concept:QuantityPoint' title='5.7.4&emsp;Class template quantity_&shy;point&emsp;[qty.pt.syn]'><span id='conceptref:QuantityPoint____________'><span class='texttt'>QuantityPoint</span></span></a> ToQP, <span class='keyword'>typename</span> FwdQP, <a href='qty.pt.syn.html#concept:QuantityPoint' title='5.7.4&emsp;Class template quantity_&shy;point&emsp;[qty.pt.syn]'><span id='conceptref:QuantityPoint_____________'><span class='texttt'>QuantityPoint</span></span></a> QP <span class='operator'>=</span> std<span class='operator'>::</span>remove_cvref_t<span class='anglebracket'>&lt;</span>FwdQP<span class='anglebracket'>&gt;</span><span class='anglebracket'>&gt;</span>
@ -41,11 +41,11 @@ std<span class='operator'>::</span>constructible_from<span class='anglebracket'>
<span class='parenthesis'>(</span><span class='texttt'><i >same-absolute-point-origins</i></span><span class='parenthesis'>(</span>ToQP<span class='operator'>::</span>point_origin, QP<span class='operator'>::</span>point_origin<span class='parenthesis'>)</span><span class='parenthesis'>)</span> <span class='operator'>&amp;</span><span class='operator'>&amp;</span>
std<span class='operator'>::</span>constructible_from<span class='anglebracket'>&lt;</span><span class='keyword'>typename</span> ToQP<span class='operator'>::</span>rep, <span class='keyword'>typename</span> QP<span class='operator'>::</span>rep<span class='anglebracket'>&gt;</span>
<span class='keyword'>constexpr</span> <a href='qty.pt.syn.html#concept:QuantityPoint' title='5.7.4&emsp;Class template quantity_&shy;point&emsp;[qty.pt.syn]'><span id='conceptref:QuantityPoint______________'><span class='texttt'>QuantityPoint</span></span></a> <span class='keyword'>auto</span> value_cast<span class='parenthesis'>(</span>FwdQP<span class='operator'>&amp;</span><span class='operator'>&amp;</span> qp<span class='parenthesis'>)</span>;
</code></div></div></div></div><div class='para' id='8'><div class='marginalizedparent'><a class='marginalized' href='#8'>8</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L6621'>#</a></div><div class='texpara'><div id='8.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
<span class='texttt'><span class='keyword'>return</span> <span class='texttt'><i >sudo-cast</i></span><span class='anglebracket'>&lt;</span>ToQP<span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span>std<span class='operator'>&#x200b;::&#x200b;</span>forward<span class='anglebracket'>&lt;</span>FwdQP<span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span>qp<span class='parenthesis'>)</span><span class='parenthesis'>)</span>;</span></div></div></div></div><div class='para' id='9'><div class='marginalizedparent'><a class='marginalized' href='#9'>9</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L6627'>#</a></div><div class='texpara'><div id='9.sentence-1' class='sentence'><span class='texttt'>quantity_<span class='shy'></span>cast</span> is an explicit cast that allows converting to more specific quantities<a class='hidden_link' href='#9.sentence-1'>.</a></div></div></div><div class='texpara'><div id='lib:quantity_point,quantity_cast'><div id='lib:quantity_cast,quantity_point'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:quantity_cast,quantity_point'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><a href='qty.spec.concepts.html#concept:QuantitySpec' title='5.4.3.2&emsp;Concepts&emsp;[qty.spec.concepts]'><span id='conceptref:QuantitySpec'><span class='texttt'>QuantitySpec</span></span></a> <span class='keyword'>auto</span> ToQS, <span class='keyword'>typename</span> FwdQP, <a href='qty.pt.syn.html#concept:QuantityPoint' title='5.7.4&emsp;Class template quantity_&shy;point&emsp;[qty.pt.syn]'><span id='conceptref:QuantityPoint_______________'><span class='texttt'>QuantityPoint</span></span></a> QP <span class='operator'>=</span> std<span class='operator'>::</span>remove_cvref_t<span class='anglebracket'>&lt;</span>FwdQP<span class='anglebracket'>&gt;</span><span class='anglebracket'>&gt;</span>
</code></div></div></div></div><div class='para' id='8'><div class='marginalizedparent'><a class='marginalized' href='#8'>8</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L6621'>#</a></div><div class='texpara'><div id='8.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
<span class='texttt'><span class='keyword'>return</span> <span class='texttt'><i >sudo-cast</i></span><span class='anglebracket'>&lt;</span>ToQP<span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span>std<span class='operator'>&#x200b;::&#x200b;</span>forward<span class='anglebracket'>&lt;</span>FwdQP<span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span>qp<span class='parenthesis'>)</span><span class='parenthesis'>)</span>;</span></div></div></div></div><div class='para' id='9'><div class='marginalizedparent'><a class='marginalized' href='#9'>9</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L6627'>#</a></div><div class='texpara'><div id='9.sentence-1' class='sentence'><span class='texttt'>quantity_<span class='shy'></span>cast</span> is an explicit cast that allows converting to more specific quantities<a class='hidden_link' href='#9.sentence-1'>.</a></div></div></div><div class='texpara'><div id='lib:quantity_point,quantity_cast'><div id='lib:quantity_cast,quantity_point'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:quantity_cast,quantity_point'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><a href='qty.spec.concepts.html#concept:QuantitySpec' title='5.4.3.2&emsp;Concepts&emsp;[qty.spec.concepts]'><span id='conceptref:QuantitySpec'><span class='texttt'>QuantitySpec</span></span></a> <span class='keyword'>auto</span> ToQS, <span class='keyword'>typename</span> FwdQP, <a href='qty.pt.syn.html#concept:QuantityPoint' title='5.7.4&emsp;Class template quantity_&shy;point&emsp;[qty.pt.syn]'><span id='conceptref:QuantityPoint_______________'><span class='texttt'>QuantityPoint</span></span></a> QP <span class='operator'>=</span> std<span class='operator'>::</span>remove_cvref_t<span class='anglebracket'>&lt;</span>FwdQP<span class='anglebracket'>&gt;</span><span class='anglebracket'>&gt;</span>
<span class='keyword'>requires</span> <a class='index' id='conceptref:QuantitySpecCastableTo'></a><span class='texttt'><i >QuantitySpecCastableTo</i></span><span class='anglebracket'>&lt;</span>QP<span class='operator'>::</span>quantity_spec, ToQS<span class='anglebracket'>&gt;</span>
<span class='keyword'>constexpr</span> <a href='qty.pt.syn.html#concept:QuantityPoint' title='5.7.4&emsp;Class template quantity_&shy;point&emsp;[qty.pt.syn]'><span id='conceptref:QuantityPoint________________'><span class='texttt'>QuantityPoint</span></span></a> <span class='keyword'>auto</span> quantity_cast<span class='parenthesis'>(</span>FwdQP<span class='operator'>&amp;</span><span class='operator'>&amp;</span> qp<span class='parenthesis'>)</span>;
</code></div></div></div></div><div class='para' id='10'><div class='marginalizedparent'><a class='marginalized' href='#10'>10</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L6638'>#</a></div><div class='texpara'><div id='10.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
</code></div></div></div></div><div class='para' id='10'><div class='marginalizedparent'><a class='marginalized' href='#10'>10</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L6638'>#</a></div><div class='texpara'><div id='10.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
<span class='codeblock'><span class='keyword'>return</span> QP<span class='curlybracket'>{</span>quantity_cast<span class='anglebracket'>&lt;</span>ToQS<span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span>std<span class='operator'>::</span>forward<span class='anglebracket'>&lt;</span>FwdQP<span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span>qp<span class='parenthesis'>)</span><span class='operator'>.</span><i >quantity_from_origin</i><span class='parenthesis'>)</span>,
QP<span class='operator'>::</span>point_origin<span class='curlybracket'>}</span>;
</span></div></div></div></div></div></body></html>

View File

@ -4,15 +4,15 @@
<span class='keyword'>template</span><span class='anglebracket'>&lt;</span><a href='qty.pt.orig.concepts.html#concept:PointOrigin' title='5.7.2.2&emsp;Concepts&emsp;[qty.pt.orig.concepts]'><span id='conceptref:PointOrigin_'><span class='texttt'>PointOrigin</span></span></a> PO2<span class='anglebracket'>&gt;</span>
<span class='keyword'>requires</span><span class='parenthesis'>(</span>PO2<span class='curlybracket'>{</span><span class='curlybracket'>}</span> <span class='operator'>=</span><span class='operator'>=</span> point_origin<span class='parenthesis'>)</span>
<span class='keyword'>constexpr</span> <span class='keyword'>const</span> quantity_type<span class='operator'>&amp;</span> quantity_ref_from<span class='parenthesis'>(</span>PO2<span class='parenthesis'>)</span> <span class='keyword'>const</span> <span class='operator'>&amp;</span> <span class='keyword'>noexcept</span>;
</code></div></div></div></div><div class='para' id='1'><div class='marginalizedparent'><a class='marginalized' href='#1'>1</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L6137'>#</a></div><div class='texpara'><div id='1.sentence-1' class='sentence'><i >Returns</i>: <span class='texttt'><i >quantity-from-origin</i></span><a class='hidden_link' href='#1.sentence-1'>.</a></div></div></div></div><div class='texpara'><div id='lib:quantity_point,quantity_from'><div id='lib:quantity_from,quantity_point'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:quantity_from,quantity_point'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><a href='qty.pt.orig.concepts.html#concept:PointOrigin' title='5.7.2.2&emsp;Concepts&emsp;[qty.pt.orig.concepts]'><span id='conceptref:PointOrigin__'><span class='texttt'>PointOrigin</span></span></a> PO2<span class='anglebracket'>&gt;</span>
</code></div></div></div></div><div class='para' id='1'><div class='marginalizedparent'><a class='marginalized' href='#1'>1</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L6137'>#</a></div><div class='texpara'><div id='1.sentence-1' class='sentence'><i >Returns</i>: <span class='texttt'><i >quantity-from-origin</i></span><a class='hidden_link' href='#1.sentence-1'>.</a></div></div></div></div><div class='texpara'><div id='lib:quantity_point,quantity_from'><div id='lib:quantity_from,quantity_point'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:quantity_from,quantity_point'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><a href='qty.pt.orig.concepts.html#concept:PointOrigin' title='5.7.2.2&emsp;Concepts&emsp;[qty.pt.orig.concepts]'><span id='conceptref:PointOrigin__'><span class='texttt'>PointOrigin</span></span></a> PO2<span class='anglebracket'>&gt;</span>
<span class='keyword'>requires</span> <span class='keyword'>requires</span><span class='parenthesis'>(</span><span class='keyword'>const</span> quantity_point qp<span class='parenthesis'>)</span> <span class='curlybracket'>{</span> qp <span class='operator'>-</span> PO2<span class='curlybracket'>{</span><span class='curlybracket'>}</span>; <span class='curlybracket'>}</span>
<span class='keyword'>constexpr</span> <a href='qty.syn.html#concept:Quantity' title='5.6.3&emsp;Class template quantity&emsp;[qty.syn]'><span id='conceptref:Quantity'><span class='texttt'>Quantity</span></span></a> <span class='keyword'>auto</span> quantity_from<span class='parenthesis'>(</span>PO2 rhs<span class='parenthesis'>)</span> <span class='keyword'>const</span>;
<span class='keyword'>template</span><span class='anglebracket'>&lt;</span><a href='qty.pt.syn.html#concept:QuantityPointOf' title='5.7.4&emsp;Class template quantity_&shy;point&emsp;[qty.pt.syn]'><span id='conceptref:QuantityPointOf'><span class='texttt'>QuantityPointOf</span></span></a><span class='anglebracket'>&lt;</span>absolute_point_origin<span class='anglebracket'>&gt;</span> QP<span class='anglebracket'>&gt;</span>
<span class='keyword'>constexpr</span> <a href='qty.syn.html#concept:Quantity' title='5.6.3&emsp;Class template quantity&emsp;[qty.syn]'><span id='conceptref:Quantity_'><span class='texttt'>Quantity</span></span></a> <span class='keyword'>auto</span> quantity_from<span class='parenthesis'>(</span><span class='keyword'>const</span> QP<span class='operator'>&amp;</span> rhs<span class='parenthesis'>)</span> <span class='keyword'>const</span>;
</code></div></div></div></div><div class='para' id='2'><div class='marginalizedparent'><a class='marginalized' href='#2'>2</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L6153'>#</a></div><div class='texpara'><div id='2.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
</code></div></div></div></div><div class='para' id='2'><div class='marginalizedparent'><a class='marginalized' href='#2'>2</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L6153'>#</a></div><div class='texpara'><div id='2.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
<span class='texttt'><span class='keyword'>return</span> <span class='operator'>*</span><span class='keyword'>this</span> <span class='operator'>-</span> rhs;</span></div></div></div></div><div class='texpara'><div id='lib:quantity_point,quantity_from_zero'><div id='lib:quantity_from_zero,quantity_point'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:quantity_from_zero,quantity_point'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>constexpr</span> <a href='qty.syn.html#concept:Quantity' title='5.6.3&emsp;Class template quantity&emsp;[qty.syn]'><span id='conceptref:Quantity__'><span class='texttt'>Quantity</span></span></a> <span class='keyword'>auto</span> quantity_from_zero<span class='parenthesis'>(</span><span class='parenthesis'>)</span> <span class='keyword'>const</span>;
</code></div></div></div></div><div class='para' id='3'><div class='marginalizedparent'><a class='marginalized' href='#3'>3</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L6165'>#</a></div><div class='texpara'><div id='3.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
</code></div></div></div></div><div class='para' id='3'><div class='marginalizedparent'><a class='marginalized' href='#3'>3</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L6165'>#</a></div><div class='texpara'><div id='3.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
<span class='codeblock'><span class='keyword'>if</span> <span class='keyword'>constexpr</span> <span class='parenthesis'>(</span><span class='keyword'>requires</span> <span class='curlybracket'>{</span> unit<span class='operator'>.</span><i >point-origin</i>; <span class='curlybracket'>}</span><span class='parenthesis'>)</span> <span class='curlybracket'>{</span>
<span class='comment'>// can lose the input unit</span>
<span class='keyword'>const</span> <span class='keyword'>auto</span> q <span class='operator'>=</span> quantity_from<span class='parenthesis'>(</span>unit<span class='operator'>.</span><i >point-origin</i><span class='parenthesis'>)</span>;

View File

@ -1,2 +1,2 @@
<!DOCTYPE html><html lang='en'><head><title>[qty.pt.orig.general]</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.7</a> Quantity point <a class='abbr_ref' href='qty.pt.html#orig.general'>[qty.pt]</a></h2><h3 ><a class='secnum' style='min-width:80pt'>5.7.2</a> Point origin <a class='abbr_ref' href='qty.pt.orig.html#general'>[qty.pt.orig]</a></h3><h4 ><a class='secnum' style='min-width:95pt'>5.7.2.1</a> General <a class='abbr_ref'>[qty.pt.orig.general]</a></h4><div class='para' id='1'><div class='marginalizedparent'><a class='marginalized' href='#1'>1</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L5457'>#</a></div><div class='texpara'><div id='1.sentence-1' class='sentence'>This subclause specifies the components
<!DOCTYPE html><html lang='en'><head><title>[qty.pt.orig.general]</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.7</a> Quantity point <a class='abbr_ref' href='qty.pt.html#orig.general'>[qty.pt]</a></h2><h3 ><a class='secnum' style='min-width:80pt'>5.7.2</a> Point origin <a class='abbr_ref' href='qty.pt.orig.html#general'>[qty.pt.orig]</a></h3><h4 ><a class='secnum' style='min-width:95pt'>5.7.2.1</a> General <a class='abbr_ref'>[qty.pt.orig.general]</a></h4><div class='para' id='1'><div class='marginalizedparent'><a class='marginalized' href='#1'>1</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L5457'>#</a></div><div class='texpara'><div id='1.sentence-1' class='sentence'>This subclause specifies the components
for defining the origin of an affine space<a class='hidden_link' href='#1.sentence-1'>.</a></div> <div id='1.sentence-2' class='sentence'>An <a class='hidden_link' href='#def:origin' title='5.7.2.1&emsp;General&emsp;[qty.pt.orig.general]'><span id='def:origin'><i >origin</i></span></a> is a point from which measurements (<a href="https://www.electropedia.org/iev/iev.nsf/display?openform&ievref=112-04-01">IEC 60050, 112-04-01</a>) take place<a class='hidden_link' href='#1.sentence-2'>.</a></div></div></div></div></body></html>

View File

@ -1,4 +1,4 @@
<!DOCTYPE html><html lang='en'><head><title>[qty.pt.orig]</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.7</a> Quantity point <a class='abbr_ref' href='qty.pt.html#orig'>[qty.pt]</a></h2><h3 ><a class='secnum' style='min-width:80pt'>5.7.2</a> Point origin <a class='abbr_ref'>[qty.pt.orig]</a></h3><div id='general' class='section'><h4 ><a class='secnum' href='#general' style='min-width:95pt'>5.7.2.1</a> General <a class='abbr_ref' href='qty.pt.orig.general.html'>[qty.pt.orig.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-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L5457'>#</a></div><div class='texpara'><div id='general-1.sentence-1' class='sentence'>This subclause specifies the components
<!DOCTYPE html><html lang='en'><head><title>[qty.pt.orig]</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.7</a> Quantity point <a class='abbr_ref' href='qty.pt.html#orig'>[qty.pt]</a></h2><h3 ><a class='secnum' style='min-width:80pt'>5.7.2</a> Point origin <a class='abbr_ref'>[qty.pt.orig]</a></h3><div id='general' class='section'><h4 ><a class='secnum' href='#general' style='min-width:95pt'>5.7.2.1</a> General <a class='abbr_ref' href='qty.pt.orig.general.html'>[qty.pt.orig.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-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L5457'>#</a></div><div class='texpara'><div id='general-1.sentence-1' class='sentence'>This subclause specifies the components
for defining the origin of an affine space<a class='hidden_link' href='#general-1.sentence-1'>.</a></div> <div id='general-1.sentence-2' class='sentence'>An <a class='hidden_link' href='#def:origin' title='5.7.2.1&emsp;General&emsp;[qty.pt.orig.general]'><span id='def:origin'><i >origin</i></span></a> is a point from which measurements (<a href="https://www.electropedia.org/iev/iev.nsf/display?openform&ievref=112-04-01">IEC 60050, 112-04-01</a>) take place<a class='hidden_link' href='#general-1.sentence-2'>.</a></div></div></div></div><div id='concepts' class='section'><h4 ><a class='secnum' href='#concepts' style='min-width:95pt'>5.7.2.2</a> Concepts <a class='abbr_ref' href='qty.pt.orig.concepts.html'>[qty.pt.orig.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'>&lt;</span><span class='keyword'>typename</span> T<span class='anglebracket'>&gt;</span>
<span class='keyword'>concept</span> <a class='hidden_link' href='#concept:PointOrigin' title='5.7.2.2&emsp;Concepts&emsp;[qty.pt.orig.concepts]'><span id='concept:PointOrigin'><span id='lib:PointOrigin'><span class='texttt'>PointOrigin</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'>&lt;</span>T<span class='anglebracket'>&gt;</span> <span class='operator'>&amp;</span><span class='operator'>&amp;</span> std<span class='operator'>::</span>derived_from<span class='anglebracket'>&lt;</span>T, <span class='texttt'><i >point-origin-interface</i></span><span class='anglebracket'>&gt;</span>;
@ -16,7 +16,7 @@ for defining the origin of an affine space<a class='hidden_link' href='#general-
<span class='curlybracket'>}</span>;
<span class='curlybracket'>}</span>
</span></div><div class='para' id='qty.abs.pt.orig-1'><div class='marginalizedparent'><a class='marginalized' href='#qty.abs.pt.orig-1'>1</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L5491'>#</a></div><div class='texpara'><div id='qty.abs.pt.orig-1.sentence-1' class='sentence'>An <a class='hidden_link' href='#def:origin,absolute' title='5.7.2.3.1&emsp;Absolute&emsp;[qty.abs.pt.orig]'><span id='def:origin,absolute'><i >absolute origin</i></span></a> is an origin
</span></div><div class='para' id='qty.abs.pt.orig-1'><div class='marginalizedparent'><a class='marginalized' href='#qty.abs.pt.orig-1'>1</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L5491'>#</a></div><div class='texpara'><div id='qty.abs.pt.orig-1.sentence-1' class='sentence'>An <a class='hidden_link' href='#def:origin,absolute' title='5.7.2.3.1&emsp;Absolute&emsp;[qty.abs.pt.orig]'><span id='def:origin,absolute'><i >absolute origin</i></span></a> is an origin
chosen by convention and not defined in terms of another origin<a class='hidden_link' href='#qty.abs.pt.orig-1.sentence-1'>.</a></div> <div id='qty.abs.pt.orig-1.sentence-2' class='sentence'>A specialization of <span class='texttt'>absolute_<span class='shy'></span>point_<span class='shy'></span>origin</span> is used as a base type when defining an absolute origin<a class='hidden_link' href='#qty.abs.pt.orig-1.sentence-2'>.</a></div> <div id='qty.abs.pt.orig-1.sentence-3' class='sentence'><span class='texttt'>QS</span> is the quantity the origin represents<a class='hidden_link' href='#qty.abs.pt.orig-1.sentence-3'>.</a></div></div></div></div><div id='qty.rel.pt.orig' class='section'><h4 ><a class='secnum' href='#qty.rel.pt.orig' style='min-width:110pt'>5.7.2.3.2</a> Relative <a class='abbr_ref' href='qty.rel.pt.orig.html'>[qty.rel.pt.orig]</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'>&lt;</span><a href='qty.pt.syn.html#concept:QuantityPoint' title='5.7.4&emsp;Class template quantity_&shy;point&emsp;[qty.pt.syn]'><span id='conceptref:QuantityPoint'><span class='tcode_in_codeblock'>QuantityPoint</span></span></a> <span class='keyword'>auto</span> QP<span class='anglebracket'>&gt;</span>
@ -28,8 +28,8 @@ chosen by convention and not defined in terms of another origin<a class='hidden_
<span class='curlybracket'>}</span>;
<span class='curlybracket'>}</span>
</span></div><div class='para' id='qty.rel.pt.orig-1'><div class='marginalizedparent'><a class='marginalized' href='#qty.rel.pt.orig-1'>1</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L5513'>#</a></div><div class='texpara'><div id='qty.rel.pt.orig-1.sentence-1' class='sentence'>A <a class='hidden_link' href='#def:origin,relative' title='5.7.2.3.2&emsp;Relative&emsp;[qty.rel.pt.orig]'><span id='def:origin,relative'><i >relative origin</i></span></a> is an origin
of a subspace (<a href="https://www.electropedia.org/iev/iev.nsf/display?openform&ievref=102-03-03">IEC 60050, 102-03-03</a>)<a class='hidden_link' href='#qty.rel.pt.orig-1.sentence-1'>.</a></div> <div id='qty.rel.pt.orig-1.sentence-2' class='sentence'>A specialization of <span class='texttt'>relative_<span class='shy'></span>point_<span class='shy'></span>origin</span> is used as a base type when defining a relative origin <i >O</i><a class='hidden_link' href='#qty.rel.pt.orig-1.sentence-2'>.</a></div> <div id='qty.rel.pt.orig-1.sentence-3' class='sentence'><i >O</i> is offset from <span class='texttt'>QP<span class='operator'>.</span>absolute_<span class='shy'></span>point_<span class='shy'></span>origin</span> by <span class='texttt'>QP<span class='operator'>.</span>quantity_<span class='shy'></span>from_<span class='shy'></span>zero<span class='parenthesis'>(</span><span class='parenthesis'>)</span></span><a class='hidden_link' href='#qty.rel.pt.orig-1.sentence-3'>.</a></div></div></div><div class='para' id='qty.rel.pt.orig-2'><div class='marginalizedparent'><a class='marginalized' href='#qty.rel.pt.orig-2'>2</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L5519'>#</a></div><div class='texpara'><div id='qty.rel.pt.orig-2.sentence-1' class='sentence'>The member <span class='texttt'><i >quantity-spec</i></span> is equal to
</span></div><div class='para' id='qty.rel.pt.orig-1'><div class='marginalizedparent'><a class='marginalized' href='#qty.rel.pt.orig-1'>1</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L5513'>#</a></div><div class='texpara'><div id='qty.rel.pt.orig-1.sentence-1' class='sentence'>A <a class='hidden_link' href='#def:origin,relative' title='5.7.2.3.2&emsp;Relative&emsp;[qty.rel.pt.orig]'><span id='def:origin,relative'><i >relative origin</i></span></a> is an origin
of a subspace (<a href="https://www.electropedia.org/iev/iev.nsf/display?openform&ievref=102-03-03">IEC 60050, 102-03-03</a>)<a class='hidden_link' href='#qty.rel.pt.orig-1.sentence-1'>.</a></div> <div id='qty.rel.pt.orig-1.sentence-2' class='sentence'>A specialization of <span class='texttt'>relative_<span class='shy'></span>point_<span class='shy'></span>origin</span> is used as a base type when defining a relative origin <i >O</i><a class='hidden_link' href='#qty.rel.pt.orig-1.sentence-2'>.</a></div> <div id='qty.rel.pt.orig-1.sentence-3' class='sentence'><i >O</i> is offset from <span class='texttt'>QP<span class='operator'>.</span>absolute_<span class='shy'></span>point_<span class='shy'></span>origin</span> by <span class='texttt'>QP<span class='operator'>.</span>quantity_<span class='shy'></span>from_<span class='shy'></span>zero<span class='parenthesis'>(</span><span class='parenthesis'>)</span></span><a class='hidden_link' href='#qty.rel.pt.orig-1.sentence-3'>.</a></div></div></div><div class='para' id='qty.rel.pt.orig-2'><div class='marginalizedparent'><a class='marginalized' href='#qty.rel.pt.orig-2'>2</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L5519'>#</a></div><div class='texpara'><div id='qty.rel.pt.orig-2.sentence-1' class='sentence'>The member <span class='texttt'><i >quantity-spec</i></span> is equal to
<span class='texttt'>QP<span class='operator'>.</span>point_<span class='shy'></span>origin<span class='operator'>.</span><span class='texttt'><i >quantity-spec</i></span></span> if
<span class='codeblock'><a class='index' id='conceptref:QuantityKindSpec'></a><i >QuantityKindSpec</i><span class='anglebracket'>&lt;</span><span class='keyword'>decltype</span><span class='parenthesis'>(</span><span class='keyword'>auto</span><span class='parenthesis'>(</span>QP<span class='operator'>.</span><i >quantity-spec</i><span class='parenthesis'>)</span><span class='parenthesis'>)</span><span class='anglebracket'>&gt;</span>
</span>
@ -40,7 +40,7 @@ to <span class='texttt'>QP<span class='operator'>.</span><span class='texttt'><i
<span class='keyword'>struct</span> <span id='lib:zeroth_point_origin_'><a class='hidden_link' href='#lib:zeroth_point_origin_' title='5.7.2.3.3&emsp;Zeroth&emsp;[qty.zeroth.pt.orig]'>zeroth_point_origin_</a></span> <span class='keyword'>final</span> <span class='operator'>:</span> absolute_point_origin<span class='anglebracket'>&lt;</span>QS<span class='anglebracket'>&gt;</span> <span class='curlybracket'>{</span><span class='curlybracket'>}</span>;
<span class='curlybracket'>}</span>
</span></div><div class='para' id='qty.zeroth.pt.orig-1'><div class='marginalizedparent'><a class='marginalized' href='#qty.zeroth.pt.orig-1'>1</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L5539'>#</a></div><div class='texpara'><div id='qty.zeroth.pt.orig-1.sentence-1' class='sentence'><span class='texttt'>zeroth_<span class='shy'></span>point_<span class='shy'></span>origin_<span class='shy'></span><span class='anglebracket'>&lt;</span>QS<span class='anglebracket'>&gt;</span></span> represents an origin
</span></div><div class='para' id='qty.zeroth.pt.orig-1'><div class='marginalizedparent'><a class='marginalized' href='#qty.zeroth.pt.orig-1'>1</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L5539'>#</a></div><div class='texpara'><div id='qty.zeroth.pt.orig-1.sentence-1' class='sentence'><span class='texttt'>zeroth_<span class='shy'></span>point_<span class='shy'></span>origin_<span class='shy'></span><span class='anglebracket'>&lt;</span>QS<span class='anglebracket'>&gt;</span></span> represents an origin
chosen by convention as the value <span class='math'>0</span> of the quantity <span class='texttt'>QS</span><a class='hidden_link' href='#qty.zeroth.pt.orig-1.sentence-1'>.</a></div></div></div></div></div><div id='ops' class='section'><h4 ><a class='secnum' href='#ops' style='min-width:95pt'>5.7.2.4</a> Operations <a class='abbr_ref' href='qty.pt.orig.ops.html'>[qty.pt.orig.ops]</a></h4><div class='texpara'><span class='codeblock'><span class='keyword'>namespace</span> mp_units <span class='curlybracket'>{</span>
<span class='keyword'>struct</span> <i >point-origin-interface</i> <span class='curlybracket'>{</span>
@ -71,16 +71,16 @@ chosen by convention as the value <span class='math'>0</span> of the quantity <s
<span class='keyword'>template</span><span class='anglebracket'>&lt;</span><a href='qty.syn.html#concept:Quantity' title='5.6.3&emsp;Class template quantity&emsp;[qty.syn]'><span id='conceptref:Quantity___'><span class='texttt'>Quantity</span></span></a> FwdQ, <a href='#concept:PointOrigin' title='5.7.2.2&emsp;Concepts&emsp;[qty.pt.orig.concepts]'><span id='conceptref:PointOrigin___________'><span class='texttt'>PointOrigin</span></span></a> PO,
<a href='qty.syn.html#concept:QuantityOf' title='5.6.3&emsp;Class template quantity&emsp;[qty.syn]'><span id='conceptref:QuantityOf___'><span class='texttt'>QuantityOf</span></span></a><span class='anglebracket'>&lt;</span>PO<span class='operator'>::</span><span class='texttt'><i >quantity-spec</i></span><span class='anglebracket'>&gt;</span> Q <span class='operator'>=</span> std<span class='operator'>::</span>remove_cvref_t<span class='anglebracket'>&lt;</span>FwdQ<span class='anglebracket'>&gt;</span><span class='anglebracket'>&gt;</span>
<span class='keyword'>friend</span> <span class='keyword'>constexpr</span> quantity_point<span class='anglebracket'>&lt;</span>Q<span class='operator'>::</span>reference, PO<span class='curlybracket'>{</span><span class='curlybracket'>}</span>, <span class='keyword'>typename</span> Q<span class='operator'>::</span>rep<span class='anglebracket'>&gt;</span> <span class='keyword'>operator</span><span class='operator'>+</span><span class='parenthesis'>(</span>FwdQ<span class='operator'>&amp;</span><span class='operator'>&amp;</span> q, PO<span class='parenthesis'>)</span>;
</code></div></div></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-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L5584'>#</a></div><div class='texpara'><div id='ops-1.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
</code></div></div></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-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L5584'>#</a></div><div class='texpara'><div id='ops-1.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
<span class='texttt'><span class='keyword'>return</span> quantity_<span class='shy'></span>point<span class='curlybracket'>{</span>std<span class='operator'>&#x200b;::&#x200b;</span>forward<span class='anglebracket'>&lt;</span>FwdQ<span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span>q<span class='parenthesis'>)</span>, PO<span class='curlybracket'>{</span><span class='curlybracket'>}</span><span class='curlybracket'>}</span>;</span></div></div></div></div><div class='texpara'><div id='lib:quantity,operator-'><div id='lib:operator-,quantity'><div id='lib:point-origin-interface,operator-'><div id='lib:operator-,point-origin-interface'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:operator-,point-origin-interface'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><a href='#concept:PointOrigin' title='5.7.2.2&emsp;Concepts&emsp;[qty.pt.orig.concepts]'><span id='conceptref:PointOrigin____________'><span class='texttt'>PointOrigin</span></span></a> PO, <a href='qty.syn.html#concept:Quantity' title='5.6.3&emsp;Class template quantity&emsp;[qty.syn]'><span id='conceptref:Quantity____'><span class='texttt'>Quantity</span></span></a> Q<span class='anglebracket'>&gt;</span>
<span class='keyword'>requires</span> <a href='qty.ref.concepts.html#concept:ReferenceOf' title='5.4.5&emsp;Concepts&emsp;[qty.ref.concepts]'><span id='conceptref:ReferenceOf_'><span class='texttt'>ReferenceOf</span></span></a><span class='anglebracket'>&lt;</span><span class='keyword'>decltype</span><span class='parenthesis'>(</span><span class='keyword'>auto</span><span class='parenthesis'>(</span>Q<span class='operator'>::</span>reference<span class='parenthesis'>)</span><span class='parenthesis'>)</span>, PO<span class='operator'>::</span><span class='texttt'><i >quantity-spec</i></span><span class='anglebracket'>&gt;</span>
<span class='keyword'>friend</span> <span class='keyword'>constexpr</span> <a href='qty.pt.syn.html#concept:QuantityPoint' title='5.7.4&emsp;Class template quantity_&shy;point&emsp;[qty.pt.syn]'><span id='conceptref:QuantityPoint___'><span class='texttt'>QuantityPoint</span></span></a> <span class='keyword'>auto</span> <span class='keyword'>operator</span><span class='operator'>-</span><span class='parenthesis'>(</span>PO po, <span class='keyword'>const</span> Q<span class='operator'>&amp;</span> q<span class='parenthesis'>)</span>
<span class='keyword'>requires</span> <span class='keyword'>requires</span> <span class='curlybracket'>{</span> <span class='operator'>-</span>q; <span class='curlybracket'>}</span>;
</code></div></div></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-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L5600'>#</a></div><div class='texpara'><div id='ops-2.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
</code></div></div></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-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L5600'>#</a></div><div class='texpara'><div id='ops-2.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
<span class='texttt'><span class='keyword'>return</span> po <span class='operator'>+</span> <span class='operator'>-</span>q;</span></div></div></div></div><div class='texpara'><div id='lib:point-origin-interface,operator-_'><div id='lib:operator-,point-origin-interface_'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:operator-,point-origin-interface_'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><a href='#concept:PointOrigin' title='5.7.2.2&emsp;Concepts&emsp;[qty.pt.orig.concepts]'><span id='conceptref:PointOrigin_____________'><span class='texttt'>PointOrigin</span></span></a> PO1, <a class='index' id='conceptref:SameAbsolutePointOriginAs_'></a><span class='texttt'><i >SameAbsolutePointOriginAs</i></span><span class='anglebracket'>&lt;</span>PO1<span class='curlybracket'>{</span><span class='curlybracket'>}</span><span class='anglebracket'>&gt;</span> PO2<span class='anglebracket'>&gt;</span>
<span class='keyword'>requires</span> <i ><span class='texttt'>see below</span></i>
<span class='keyword'>friend</span> <span class='keyword'>constexpr</span> <a href='qty.syn.html#concept:Quantity' title='5.6.3&emsp;Class template quantity&emsp;[qty.syn]'><span id='conceptref:Quantity_____'><span class='texttt'>Quantity</span></span></a> <span class='keyword'>auto</span> <span class='keyword'>operator</span><span class='operator'>-</span><span class='parenthesis'>(</span>PO1 po1, PO2 po2<span class='parenthesis'>)</span>;
</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-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L5614'>#</a></div><div class='texpara'><div id='ops-3.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
</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-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L5614'>#</a></div><div class='texpara'><div id='ops-3.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
<span class='codeblock'><span class='keyword'>if</span> <span class='keyword'>constexpr</span> <span class='parenthesis'>(</span><i >is-derived-from-specialization-of</i><span class='anglebracket'>&lt;</span>PO1, absolute_point_origin<span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span><span class='parenthesis'>)</span><span class='parenthesis'>)</span> <span class='curlybracket'>{</span>
<span class='keyword'>return</span> po1 <span class='operator'>-</span> po2<span class='operator'>.</span><i >quantity-point</i>;
<span class='curlybracket'>}</span> <span class='keyword'>else</span> <span class='keyword'>if</span> <span class='keyword'>constexpr</span> <span class='parenthesis'>(</span><i >is-derived-from-specialization-of</i><span class='anglebracket'>&lt;</span>PO2, absolute_point_origin<span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span><span class='parenthesis'>)</span><span class='parenthesis'>)</span> <span class='curlybracket'>{</span>
@ -88,13 +88,13 @@ chosen by convention as the value <span class='math'>0</span> of the quantity <s
<span class='curlybracket'>}</span> <span class='keyword'>else</span> <span class='curlybracket'>{</span>
<span class='keyword'>return</span> po1<span class='operator'>.</span><i >quantity-point</i> <span class='operator'>-</span> po2<span class='operator'>.</span><i >quantity-point</i>;
<span class='curlybracket'>}</span>
</span></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-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L5627'>#</a></div><div class='texpara'><div id='ops-4.sentence-1' class='sentence'><i >Remarks</i>: The expression in the <span class='textsf'><i >requires-clause</i></span> is equivalent to:
</span></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-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L5627'>#</a></div><div class='texpara'><div id='ops-4.sentence-1' class='sentence'><i >Remarks</i>: The expression in the <span class='textsf'><i >requires-clause</i></span> is equivalent to:
<span class='codeblock'><a href='qty.spec.concepts.html#concept:QuantitySpecOf' title='5.4.3.2&emsp;Concepts&emsp;[qty.spec.concepts]'><span id='conceptref:QuantitySpecOf_'><span class='tcode_in_codeblock'>QuantitySpecOf</span></span></a><span class='anglebracket'>&lt;</span><span class='keyword'>decltype</span><span class='parenthesis'>(</span><span class='keyword'>auto</span><span class='parenthesis'>(</span>PO1<span class='operator'>::</span><i >quantity-spec</i><span class='parenthesis'>)</span><span class='parenthesis'>)</span>, PO2<span class='operator'>::</span><i >quantity-spec</i><span class='anglebracket'>&gt;</span> <span class='operator'>&amp;</span><span class='operator'>&amp;</span>
<span class='parenthesis'>(</span><i >is-derived-from-specialization-of</i><span class='anglebracket'>&lt;</span>PO1, relative_point_origin<span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span><span class='parenthesis'>)</span> <span class='operator'>|</span><span class='operator'>|</span>
<i >is-derived-from-specialization-of</i><span class='anglebracket'>&lt;</span>PO2, relative_point_origin<span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span><span class='parenthesis'>)</span><span class='parenthesis'>)</span>
</span></div></div></div></div><div class='texpara'><div id='lib:point-origin-interface,operator=='><div id='lib:operator==,point-origin-interface'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:operator==,point-origin-interface'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><a href='#concept:PointOrigin' title='5.7.2.2&emsp;Concepts&emsp;[qty.pt.orig.concepts]'><span id='conceptref:PointOrigin______________'><span class='texttt'>PointOrigin</span></span></a> PO1, <a href='#concept:PointOrigin' title='5.7.2.2&emsp;Concepts&emsp;[qty.pt.orig.concepts]'><span id='conceptref:PointOrigin_______________'><span class='texttt'>PointOrigin</span></span></a> PO2<span class='anglebracket'>&gt;</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>PO1 po1, PO2 po2<span class='parenthesis'>)</span>;
</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-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L5644'>#</a></div><div class='texpara'><div id='ops-5.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
</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-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L5644'>#</a></div><div class='texpara'><div id='ops-5.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
<span class='codeblock'><span class='keyword'>if</span> <span class='keyword'>constexpr</span> <span class='parenthesis'>(</span><i >is-derived-from-specialization-of</i><span class='anglebracket'>&lt;</span>PO1, absolute_point_origin<span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span><span class='parenthesis'>)</span> <span class='operator'>&amp;</span><span class='operator'>&amp;</span>
<i >is-derived-from-specialization-of</i><span class='anglebracket'>&lt;</span>PO2, absolute_point_origin<span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span><span class='parenthesis'>)</span><span class='parenthesis'>)</span>
<span class='keyword'>return</span> std<span class='operator'>::</span>is_same_v<span class='anglebracket'>&lt;</span>PO1, PO2<span class='anglebracket'>&gt;</span> <span class='operator'>|</span><span class='operator'>|</span>
@ -112,7 +112,7 @@ chosen by convention as the value <span class='math'>0</span> of the quantity <s
is_eq_zero<span class='parenthesis'>(</span>PO2<span class='operator'>::</span><i >quantity-point</i><span class='operator'>.</span>quantity_from_zero<span class='parenthesis'>(</span><span class='parenthesis'>)</span><span class='parenthesis'>)</span>;
</span></div></div></div></div></div><div id='utils' class='section'><h4 ><a class='secnum' href='#utils' style='min-width:95pt'>5.7.2.5</a> Utilities <a class='abbr_ref' href='qty.pt.orig.utils.html'>[qty.pt.orig.utils]</a></h4><div id='qty.same.abs.pt.origs' class='section'><h4 ><a class='secnum' href='#qty.same.abs.pt.origs' style='min-width:110pt'>5.7.2.5.1</a> Same absolute <a class='abbr_ref' href='qty.same.abs.pt.origs.html'>[qty.same.abs.pt.origs]</a></h4><div class='texpara'><div id='lib:same-absolute-point-origins,PointOrigin'><div id='lib:PointOrigin,same-absolute-point-origins'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:PointOrigin,same-absolute-point-origins'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><a href='#concept:PointOrigin' title='5.7.2.2&emsp;Concepts&emsp;[qty.pt.orig.concepts]'><span id='conceptref:PointOrigin________________'><span class='texttt'>PointOrigin</span></span></a> PO1, <a href='#concept:PointOrigin' title='5.7.2.2&emsp;Concepts&emsp;[qty.pt.orig.concepts]'><span id='conceptref:PointOrigin_________________'><span class='texttt'>PointOrigin</span></span></a> PO2<span class='anglebracket'>&gt;</span>
<span class='keyword'>consteval</span> <span class='keyword'>bool</span> <span class='texttt'><i >same-absolute-point-origins</i></span><span class='parenthesis'>(</span>PO1 po1, PO2 po2<span class='parenthesis'>)</span>; <span class='comment'>// <i >exposition only</i></span>
</code></div></div></div></div><div class='para' id='qty.same.abs.pt.origs-1'><div class='marginalizedparent'><a class='marginalized' href='#qty.same.abs.pt.origs-1'>1</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L5677'>#</a></div><div class='texpara'><div id='qty.same.abs.pt.origs-1.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
</code></div></div></div></div><div class='para' id='qty.same.abs.pt.origs-1'><div class='marginalizedparent'><a class='marginalized' href='#qty.same.abs.pt.origs-1'>1</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L5677'>#</a></div><div class='texpara'><div id='qty.same.abs.pt.origs-1.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
<span class='codeblock'><span class='keyword'>if</span> <span class='keyword'>constexpr</span> <span class='parenthesis'>(</span><i >is-derived-from-specialization-of</i><span class='anglebracket'>&lt;</span>PO1, absolute_point_origin<span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span><span class='parenthesis'>)</span> <span class='operator'>&amp;</span><span class='operator'>&amp;</span>
<i >is-derived-from-specialization-of</i><span class='anglebracket'>&lt;</span>PO2, absolute_point_origin<span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span><span class='parenthesis'>)</span><span class='parenthesis'>)</span>
<span class='keyword'>return</span> po1 <span class='operator'>=</span><span class='operator'>=</span> po2;
@ -127,7 +127,7 @@ chosen by convention as the value <span class='math'>0</span> of the quantity <s
<span class='keyword'>return</span> <span class='literal'>false</span>;
</span></div></div></div></div></div><div id='qty.def.pt.orig' class='section'><h4 ><a class='secnum' href='#qty.def.pt.orig' style='min-width:110pt'>5.7.2.5.2</a> Default <a class='abbr_ref' href='qty.def.pt.orig.html'>[qty.def.pt.orig]</a></h4><div class='texpara'><div id='lib:default_point_origin,Reference'><div id='lib:Reference,default_point_origin'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:Reference,default_point_origin'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><a href='qty.ref.concepts.html#concept:Reference' title='5.4.5&emsp;Concepts&emsp;[qty.ref.concepts]'><span id='conceptref:Reference'><span class='texttt'>Reference</span></span></a> R<span class='anglebracket'>&gt;</span>
<span class='keyword'>consteval</span> <a href='#concept:PointOriginFor' title='5.7.2.2&emsp;Concepts&emsp;[qty.pt.orig.concepts]'><span id='conceptref:PointOriginFor'><span class='texttt'>PointOriginFor</span></span></a><span class='anglebracket'>&lt;</span>get_quantity_spec<span class='parenthesis'>(</span>R<span class='curlybracket'>{</span><span class='curlybracket'>}</span><span class='parenthesis'>)</span><span class='anglebracket'>&gt;</span> <span class='keyword'>auto</span> default_point_origin<span class='parenthesis'>(</span>R<span class='parenthesis'>)</span>;
</code></div></div></div></div><div class='para' id='qty.def.pt.orig-1'><div class='marginalizedparent'><a class='marginalized' href='#qty.def.pt.orig-1'>1</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L5705'>#</a></div><div class='texpara'><div id='qty.def.pt.orig-1.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
</code></div></div></div></div><div class='para' id='qty.def.pt.orig-1'><div class='marginalizedparent'><a class='marginalized' href='#qty.def.pt.orig-1'>1</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L5705'>#</a></div><div class='texpara'><div id='qty.def.pt.orig-1.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
<span class='codeblock'><span class='keyword'>if</span> <span class='keyword'>constexpr</span> <span class='parenthesis'>(</span><span class='keyword'>requires</span> <span class='curlybracket'>{</span> get_unit<span class='parenthesis'>(</span>R<span class='curlybracket'>{</span><span class='curlybracket'>}</span><span class='parenthesis'>)</span><span class='operator'>.</span><i >point-origin</i>; <span class='curlybracket'>}</span><span class='parenthesis'>)</span>
<span class='keyword'>return</span> get_unit<span class='parenthesis'>(</span>R<span class='curlybracket'>{</span><span class='curlybracket'>}</span><span class='parenthesis'>)</span><span class='operator'>.</span><i >point-origin</i>;
<span class='keyword'>else</span>

View File

@ -28,16 +28,16 @@
<span class='keyword'>template</span><span class='anglebracket'>&lt;</span><a href='qty.syn.html#concept:Quantity' title='5.6.3&emsp;Class template quantity&emsp;[qty.syn]'><span id='conceptref:Quantity___'><span class='texttt'>Quantity</span></span></a> FwdQ, <a href='qty.pt.orig.concepts.html#concept:PointOrigin' title='5.7.2.2&emsp;Concepts&emsp;[qty.pt.orig.concepts]'><span id='conceptref:PointOrigin_______'><span class='texttt'>PointOrigin</span></span></a> PO,
<a href='qty.syn.html#concept:QuantityOf' title='5.6.3&emsp;Class template quantity&emsp;[qty.syn]'><span id='conceptref:QuantityOf___'><span class='texttt'>QuantityOf</span></span></a><span class='anglebracket'>&lt;</span>PO<span class='operator'>::</span><span class='texttt'><i >quantity-spec</i></span><span class='anglebracket'>&gt;</span> Q <span class='operator'>=</span> std<span class='operator'>::</span>remove_cvref_t<span class='anglebracket'>&lt;</span>FwdQ<span class='anglebracket'>&gt;</span><span class='anglebracket'>&gt;</span>
<span class='keyword'>friend</span> <span class='keyword'>constexpr</span> quantity_point<span class='anglebracket'>&lt;</span>Q<span class='operator'>::</span>reference, PO<span class='curlybracket'>{</span><span class='curlybracket'>}</span>, <span class='keyword'>typename</span> Q<span class='operator'>::</span>rep<span class='anglebracket'>&gt;</span> <span class='keyword'>operator</span><span class='operator'>+</span><span class='parenthesis'>(</span>FwdQ<span class='operator'>&amp;</span><span class='operator'>&amp;</span> q, PO<span class='parenthesis'>)</span>;
</code></div></div></div></div></div></div><div class='para' id='1'><div class='marginalizedparent'><a class='marginalized' href='#1'>1</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L5584'>#</a></div><div class='texpara'><div id='1.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
</code></div></div></div></div></div></div><div class='para' id='1'><div class='marginalizedparent'><a class='marginalized' href='#1'>1</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L5584'>#</a></div><div class='texpara'><div id='1.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
<span class='texttt'><span class='keyword'>return</span> quantity_<span class='shy'></span>point<span class='curlybracket'>{</span>std<span class='operator'>&#x200b;::&#x200b;</span>forward<span class='anglebracket'>&lt;</span>FwdQ<span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span>q<span class='parenthesis'>)</span>, PO<span class='curlybracket'>{</span><span class='curlybracket'>}</span><span class='curlybracket'>}</span>;</span></div></div></div></div><div class='texpara'><div id='lib:quantity,operator-'><div id='lib:operator-,quantity'><div id='lib:point-origin-interface,operator-'><div id='lib:operator-,point-origin-interface'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:operator-,point-origin-interface'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><a href='qty.pt.orig.concepts.html#concept:PointOrigin' title='5.7.2.2&emsp;Concepts&emsp;[qty.pt.orig.concepts]'><span id='conceptref:PointOrigin________'><span class='texttt'>PointOrigin</span></span></a> PO, <a href='qty.syn.html#concept:Quantity' title='5.6.3&emsp;Class template quantity&emsp;[qty.syn]'><span id='conceptref:Quantity____'><span class='texttt'>Quantity</span></span></a> Q<span class='anglebracket'>&gt;</span>
<span class='keyword'>requires</span> <a href='qty.ref.concepts.html#concept:ReferenceOf' title='5.4.5&emsp;Concepts&emsp;[qty.ref.concepts]'><span id='conceptref:ReferenceOf_'><span class='texttt'>ReferenceOf</span></span></a><span class='anglebracket'>&lt;</span><span class='keyword'>decltype</span><span class='parenthesis'>(</span><span class='keyword'>auto</span><span class='parenthesis'>(</span>Q<span class='operator'>::</span>reference<span class='parenthesis'>)</span><span class='parenthesis'>)</span>, PO<span class='operator'>::</span><span class='texttt'><i >quantity-spec</i></span><span class='anglebracket'>&gt;</span>
<span class='keyword'>friend</span> <span class='keyword'>constexpr</span> <a href='qty.pt.syn.html#concept:QuantityPoint' title='5.7.4&emsp;Class template quantity_&shy;point&emsp;[qty.pt.syn]'><span id='conceptref:QuantityPoint_'><span class='texttt'>QuantityPoint</span></span></a> <span class='keyword'>auto</span> <span class='keyword'>operator</span><span class='operator'>-</span><span class='parenthesis'>(</span>PO po, <span class='keyword'>const</span> Q<span class='operator'>&amp;</span> q<span class='parenthesis'>)</span>
<span class='keyword'>requires</span> <span class='keyword'>requires</span> <span class='curlybracket'>{</span> <span class='operator'>-</span>q; <span class='curlybracket'>}</span>;
</code></div></div></div></div></div></div><div class='para' id='2'><div class='marginalizedparent'><a class='marginalized' href='#2'>2</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L5600'>#</a></div><div class='texpara'><div id='2.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
</code></div></div></div></div></div></div><div class='para' id='2'><div class='marginalizedparent'><a class='marginalized' href='#2'>2</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L5600'>#</a></div><div class='texpara'><div id='2.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
<span class='texttt'><span class='keyword'>return</span> po <span class='operator'>+</span> <span class='operator'>-</span>q;</span></div></div></div></div><div class='texpara'><div id='lib:point-origin-interface,operator-_'><div id='lib:operator-,point-origin-interface_'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:operator-,point-origin-interface_'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><a href='qty.pt.orig.concepts.html#concept:PointOrigin' title='5.7.2.2&emsp;Concepts&emsp;[qty.pt.orig.concepts]'><span id='conceptref:PointOrigin_________'><span class='texttt'>PointOrigin</span></span></a> PO1, <a class='index' id='conceptref:SameAbsolutePointOriginAs_'></a><span class='texttt'><i >SameAbsolutePointOriginAs</i></span><span class='anglebracket'>&lt;</span>PO1<span class='curlybracket'>{</span><span class='curlybracket'>}</span><span class='anglebracket'>&gt;</span> PO2<span class='anglebracket'>&gt;</span>
<span class='keyword'>requires</span> <i ><span class='texttt'>see below</span></i>
<span class='keyword'>friend</span> <span class='keyword'>constexpr</span> <a href='qty.syn.html#concept:Quantity' title='5.6.3&emsp;Class template quantity&emsp;[qty.syn]'><span id='conceptref:Quantity_____'><span class='texttt'>Quantity</span></span></a> <span class='keyword'>auto</span> <span class='keyword'>operator</span><span class='operator'>-</span><span class='parenthesis'>(</span>PO1 po1, PO2 po2<span class='parenthesis'>)</span>;
</code></div></div></div></div><div class='para' id='3'><div class='marginalizedparent'><a class='marginalized' href='#3'>3</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L5614'>#</a></div><div class='texpara'><div id='3.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
</code></div></div></div></div><div class='para' id='3'><div class='marginalizedparent'><a class='marginalized' href='#3'>3</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L5614'>#</a></div><div class='texpara'><div id='3.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
<span class='codeblock'><span class='keyword'>if</span> <span class='keyword'>constexpr</span> <span class='parenthesis'>(</span><i >is-derived-from-specialization-of</i><span class='anglebracket'>&lt;</span>PO1, absolute_point_origin<span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span><span class='parenthesis'>)</span><span class='parenthesis'>)</span> <span class='curlybracket'>{</span>
<span class='keyword'>return</span> po1 <span class='operator'>-</span> po2<span class='operator'>.</span><i >quantity-point</i>;
<span class='curlybracket'>}</span> <span class='keyword'>else</span> <span class='keyword'>if</span> <span class='keyword'>constexpr</span> <span class='parenthesis'>(</span><i >is-derived-from-specialization-of</i><span class='anglebracket'>&lt;</span>PO2, absolute_point_origin<span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span><span class='parenthesis'>)</span><span class='parenthesis'>)</span> <span class='curlybracket'>{</span>
@ -45,13 +45,13 @@
<span class='curlybracket'>}</span> <span class='keyword'>else</span> <span class='curlybracket'>{</span>
<span class='keyword'>return</span> po1<span class='operator'>.</span><i >quantity-point</i> <span class='operator'>-</span> po2<span class='operator'>.</span><i >quantity-point</i>;
<span class='curlybracket'>}</span>
</span></div></div></div></div><div class='para' id='4'><div class='marginalizedparent'><a class='marginalized' href='#4'>4</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L5627'>#</a></div><div class='texpara'><div id='4.sentence-1' class='sentence'><i >Remarks</i>: The expression in the <span class='textsf'><i >requires-clause</i></span> is equivalent to:
</span></div></div></div></div><div class='para' id='4'><div class='marginalizedparent'><a class='marginalized' href='#4'>4</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L5627'>#</a></div><div class='texpara'><div id='4.sentence-1' class='sentence'><i >Remarks</i>: The expression in the <span class='textsf'><i >requires-clause</i></span> is equivalent to:
<span class='codeblock'><a href='qty.spec.concepts.html#concept:QuantitySpecOf' title='5.4.3.2&emsp;Concepts&emsp;[qty.spec.concepts]'><span id='conceptref:QuantitySpecOf'><span class='tcode_in_codeblock'>QuantitySpecOf</span></span></a><span class='anglebracket'>&lt;</span><span class='keyword'>decltype</span><span class='parenthesis'>(</span><span class='keyword'>auto</span><span class='parenthesis'>(</span>PO1<span class='operator'>::</span><i >quantity-spec</i><span class='parenthesis'>)</span><span class='parenthesis'>)</span>, PO2<span class='operator'>::</span><i >quantity-spec</i><span class='anglebracket'>&gt;</span> <span class='operator'>&amp;</span><span class='operator'>&amp;</span>
<span class='parenthesis'>(</span><i >is-derived-from-specialization-of</i><span class='anglebracket'>&lt;</span>PO1, relative_point_origin<span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span><span class='parenthesis'>)</span> <span class='operator'>|</span><span class='operator'>|</span>
<i >is-derived-from-specialization-of</i><span class='anglebracket'>&lt;</span>PO2, relative_point_origin<span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span><span class='parenthesis'>)</span><span class='parenthesis'>)</span>
</span></div></div></div></div><div class='texpara'><div id='lib:point-origin-interface,operator=='><div id='lib:operator==,point-origin-interface'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:operator==,point-origin-interface'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><a href='qty.pt.orig.concepts.html#concept:PointOrigin' title='5.7.2.2&emsp;Concepts&emsp;[qty.pt.orig.concepts]'><span id='conceptref:PointOrigin__________'><span class='texttt'>PointOrigin</span></span></a> PO1, <a href='qty.pt.orig.concepts.html#concept:PointOrigin' title='5.7.2.2&emsp;Concepts&emsp;[qty.pt.orig.concepts]'><span id='conceptref:PointOrigin___________'><span class='texttt'>PointOrigin</span></span></a> PO2<span class='anglebracket'>&gt;</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>PO1 po1, PO2 po2<span class='parenthesis'>)</span>;
</code></div></div></div></div><div class='para' id='5'><div class='marginalizedparent'><a class='marginalized' href='#5'>5</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L5644'>#</a></div><div class='texpara'><div id='5.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
</code></div></div></div></div><div class='para' id='5'><div class='marginalizedparent'><a class='marginalized' href='#5'>5</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L5644'>#</a></div><div class='texpara'><div id='5.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
<span class='codeblock'><span class='keyword'>if</span> <span class='keyword'>constexpr</span> <span class='parenthesis'>(</span><i >is-derived-from-specialization-of</i><span class='anglebracket'>&lt;</span>PO1, absolute_point_origin<span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span><span class='parenthesis'>)</span> <span class='operator'>&amp;</span><span class='operator'>&amp;</span>
<i >is-derived-from-specialization-of</i><span class='anglebracket'>&lt;</span>PO2, absolute_point_origin<span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span><span class='parenthesis'>)</span><span class='parenthesis'>)</span>
<span class='keyword'>return</span> std<span class='operator'>::</span>is_same_v<span class='anglebracket'>&lt;</span>PO1, PO2<span class='anglebracket'>&gt;</span> <span class='operator'>|</span><span class='operator'>|</span>

View File

@ -6,7 +6,7 @@
<span class='curlybracket'>}</span>;
<span class='curlybracket'>}</span>
</span></div><div class='para' id='qty.abs.pt.orig-1'><div class='marginalizedparent'><a class='marginalized' href='#qty.abs.pt.orig-1'>1</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L5491'>#</a></div><div class='texpara'><div id='qty.abs.pt.orig-1.sentence-1' class='sentence'>An <a class='hidden_link' href='#def:origin,absolute' title='5.7.2.3.1&emsp;Absolute&emsp;[qty.abs.pt.orig]'><span id='def:origin,absolute'><i >absolute origin</i></span></a> is an origin
</span></div><div class='para' id='qty.abs.pt.orig-1'><div class='marginalizedparent'><a class='marginalized' href='#qty.abs.pt.orig-1'>1</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L5491'>#</a></div><div class='texpara'><div id='qty.abs.pt.orig-1.sentence-1' class='sentence'>An <a class='hidden_link' href='#def:origin,absolute' title='5.7.2.3.1&emsp;Absolute&emsp;[qty.abs.pt.orig]'><span id='def:origin,absolute'><i >absolute origin</i></span></a> is an origin
chosen by convention and not defined in terms of another origin<a class='hidden_link' href='#qty.abs.pt.orig-1.sentence-1'>.</a></div> <div id='qty.abs.pt.orig-1.sentence-2' class='sentence'>A specialization of <span class='texttt'>absolute_<span class='shy'></span>point_<span class='shy'></span>origin</span> is used as a base type when defining an absolute origin<a class='hidden_link' href='#qty.abs.pt.orig-1.sentence-2'>.</a></div> <div id='qty.abs.pt.orig-1.sentence-3' class='sentence'><span class='texttt'>QS</span> is the quantity the origin represents<a class='hidden_link' href='#qty.abs.pt.orig-1.sentence-3'>.</a></div></div></div></div><div id='qty.rel.pt.orig' class='section'><h4 ><a class='secnum' href='#qty.rel.pt.orig' style='min-width:110pt'>5.7.2.3.2</a> Relative <a class='abbr_ref' href='qty.rel.pt.orig.html'>[qty.rel.pt.orig]</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'>&lt;</span><a href='qty.pt.syn.html#concept:QuantityPoint' title='5.7.4&emsp;Class template quantity_&shy;point&emsp;[qty.pt.syn]'><span id='conceptref:QuantityPoint'><span class='tcode_in_codeblock'>QuantityPoint</span></span></a> <span class='keyword'>auto</span> QP<span class='anglebracket'>&gt;</span>
@ -18,8 +18,8 @@ chosen by convention and not defined in terms of another origin<a class='hidden_
<span class='curlybracket'>}</span>;
<span class='curlybracket'>}</span>
</span></div><div class='para' id='qty.rel.pt.orig-1'><div class='marginalizedparent'><a class='marginalized' href='#qty.rel.pt.orig-1'>1</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L5513'>#</a></div><div class='texpara'><div id='qty.rel.pt.orig-1.sentence-1' class='sentence'>A <a class='hidden_link' href='#def:origin,relative' title='5.7.2.3.2&emsp;Relative&emsp;[qty.rel.pt.orig]'><span id='def:origin,relative'><i >relative origin</i></span></a> is an origin
of a subspace (<a href="https://www.electropedia.org/iev/iev.nsf/display?openform&ievref=102-03-03">IEC 60050, 102-03-03</a>)<a class='hidden_link' href='#qty.rel.pt.orig-1.sentence-1'>.</a></div> <div id='qty.rel.pt.orig-1.sentence-2' class='sentence'>A specialization of <span class='texttt'>relative_<span class='shy'></span>point_<span class='shy'></span>origin</span> is used as a base type when defining a relative origin <i >O</i><a class='hidden_link' href='#qty.rel.pt.orig-1.sentence-2'>.</a></div> <div id='qty.rel.pt.orig-1.sentence-3' class='sentence'><i >O</i> is offset from <span class='texttt'>QP<span class='operator'>.</span>absolute_<span class='shy'></span>point_<span class='shy'></span>origin</span> by <span class='texttt'>QP<span class='operator'>.</span>quantity_<span class='shy'></span>from_<span class='shy'></span>zero<span class='parenthesis'>(</span><span class='parenthesis'>)</span></span><a class='hidden_link' href='#qty.rel.pt.orig-1.sentence-3'>.</a></div></div></div><div class='para' id='qty.rel.pt.orig-2'><div class='marginalizedparent'><a class='marginalized' href='#qty.rel.pt.orig-2'>2</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L5519'>#</a></div><div class='texpara'><div id='qty.rel.pt.orig-2.sentence-1' class='sentence'>The member <span class='texttt'><i >quantity-spec</i></span> is equal to
</span></div><div class='para' id='qty.rel.pt.orig-1'><div class='marginalizedparent'><a class='marginalized' href='#qty.rel.pt.orig-1'>1</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L5513'>#</a></div><div class='texpara'><div id='qty.rel.pt.orig-1.sentence-1' class='sentence'>A <a class='hidden_link' href='#def:origin,relative' title='5.7.2.3.2&emsp;Relative&emsp;[qty.rel.pt.orig]'><span id='def:origin,relative'><i >relative origin</i></span></a> is an origin
of a subspace (<a href="https://www.electropedia.org/iev/iev.nsf/display?openform&ievref=102-03-03">IEC 60050, 102-03-03</a>)<a class='hidden_link' href='#qty.rel.pt.orig-1.sentence-1'>.</a></div> <div id='qty.rel.pt.orig-1.sentence-2' class='sentence'>A specialization of <span class='texttt'>relative_<span class='shy'></span>point_<span class='shy'></span>origin</span> is used as a base type when defining a relative origin <i >O</i><a class='hidden_link' href='#qty.rel.pt.orig-1.sentence-2'>.</a></div> <div id='qty.rel.pt.orig-1.sentence-3' class='sentence'><i >O</i> is offset from <span class='texttt'>QP<span class='operator'>.</span>absolute_<span class='shy'></span>point_<span class='shy'></span>origin</span> by <span class='texttt'>QP<span class='operator'>.</span>quantity_<span class='shy'></span>from_<span class='shy'></span>zero<span class='parenthesis'>(</span><span class='parenthesis'>)</span></span><a class='hidden_link' href='#qty.rel.pt.orig-1.sentence-3'>.</a></div></div></div><div class='para' id='qty.rel.pt.orig-2'><div class='marginalizedparent'><a class='marginalized' href='#qty.rel.pt.orig-2'>2</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L5519'>#</a></div><div class='texpara'><div id='qty.rel.pt.orig-2.sentence-1' class='sentence'>The member <span class='texttt'><i >quantity-spec</i></span> is equal to
<span class='texttt'>QP<span class='operator'>.</span>point_<span class='shy'></span>origin<span class='operator'>.</span><span class='texttt'><i >quantity-spec</i></span></span> if
<span class='codeblock'><a class='index' id='conceptref:QuantityKindSpec'></a><i >QuantityKindSpec</i><span class='anglebracket'>&lt;</span><span class='keyword'>decltype</span><span class='parenthesis'>(</span><span class='keyword'>auto</span><span class='parenthesis'>(</span>QP<span class='operator'>.</span><i >quantity-spec</i><span class='parenthesis'>)</span><span class='parenthesis'>)</span><span class='anglebracket'>&gt;</span>
</span>
@ -30,5 +30,5 @@ to <span class='texttt'>QP<span class='operator'>.</span><span class='texttt'><i
<span class='keyword'>struct</span> <span id='lib:zeroth_point_origin_'><a class='hidden_link' href='#lib:zeroth_point_origin_' title='5.7.2.3.3&emsp;Zeroth&emsp;[qty.zeroth.pt.orig]'>zeroth_point_origin_</a></span> <span class='keyword'>final</span> <span class='operator'>:</span> absolute_point_origin<span class='anglebracket'>&lt;</span>QS<span class='anglebracket'>&gt;</span> <span class='curlybracket'>{</span><span class='curlybracket'>}</span>;
<span class='curlybracket'>}</span>
</span></div><div class='para' id='qty.zeroth.pt.orig-1'><div class='marginalizedparent'><a class='marginalized' href='#qty.zeroth.pt.orig-1'>1</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L5539'>#</a></div><div class='texpara'><div id='qty.zeroth.pt.orig-1.sentence-1' class='sentence'><span class='texttt'>zeroth_<span class='shy'></span>point_<span class='shy'></span>origin_<span class='shy'></span><span class='anglebracket'>&lt;</span>QS<span class='anglebracket'>&gt;</span></span> represents an origin
</span></div><div class='para' id='qty.zeroth.pt.orig-1'><div class='marginalizedparent'><a class='marginalized' href='#qty.zeroth.pt.orig-1'>1</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L5539'>#</a></div><div class='texpara'><div id='qty.zeroth.pt.orig-1.sentence-1' class='sentence'><span class='texttt'>zeroth_<span class='shy'></span>point_<span class='shy'></span>origin_<span class='shy'></span><span class='anglebracket'>&lt;</span>QS<span class='anglebracket'>&gt;</span></span> represents an origin
chosen by convention as the value <span class='math'>0</span> of the quantity <span class='texttt'>QS</span><a class='hidden_link' href='#qty.zeroth.pt.orig-1.sentence-1'>.</a></div></div></div></div></div></body></html>

View File

@ -1,6 +1,6 @@
<!DOCTYPE html><html lang='en'><head><title>[qty.pt.orig.utils]</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.7</a> Quantity point <a class='abbr_ref' href='qty.pt.html#orig.utils'>[qty.pt]</a></h2><h3 ><a class='secnum' style='min-width:80pt'>5.7.2</a> Point origin <a class='abbr_ref' href='qty.pt.orig.html#utils'>[qty.pt.orig]</a></h3><h4 ><a class='secnum' style='min-width:95pt'>5.7.2.5</a> Utilities <a class='abbr_ref'>[qty.pt.orig.utils]</a></h4><div id='qty.same.abs.pt.origs' class='section'><h4 ><a class='secnum' href='#qty.same.abs.pt.origs' style='min-width:110pt'>5.7.2.5.1</a> Same absolute <a class='abbr_ref' href='qty.same.abs.pt.origs.html'>[qty.same.abs.pt.origs]</a></h4><div class='texpara'><div id='lib:same-absolute-point-origins,PointOrigin'><div id='lib:PointOrigin,same-absolute-point-origins'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:PointOrigin,same-absolute-point-origins'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><a href='qty.pt.orig.concepts.html#concept:PointOrigin' title='5.7.2.2&emsp;Concepts&emsp;[qty.pt.orig.concepts]'><span id='conceptref:PointOrigin'><span class='texttt'>PointOrigin</span></span></a> PO1, <a href='qty.pt.orig.concepts.html#concept:PointOrigin' title='5.7.2.2&emsp;Concepts&emsp;[qty.pt.orig.concepts]'><span id='conceptref:PointOrigin_'><span class='texttt'>PointOrigin</span></span></a> PO2<span class='anglebracket'>&gt;</span>
<span class='keyword'>consteval</span> <span class='keyword'>bool</span> <span class='texttt'><i >same-absolute-point-origins</i></span><span class='parenthesis'>(</span>PO1 po1, PO2 po2<span class='parenthesis'>)</span>; <span class='comment'>// <i >exposition only</i></span>
</code></div></div></div></div><div class='para' id='qty.same.abs.pt.origs-1'><div class='marginalizedparent'><a class='marginalized' href='#qty.same.abs.pt.origs-1'>1</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L5677'>#</a></div><div class='texpara'><div id='qty.same.abs.pt.origs-1.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
</code></div></div></div></div><div class='para' id='qty.same.abs.pt.origs-1'><div class='marginalizedparent'><a class='marginalized' href='#qty.same.abs.pt.origs-1'>1</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L5677'>#</a></div><div class='texpara'><div id='qty.same.abs.pt.origs-1.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
<span class='codeblock'><span class='keyword'>if</span> <span class='keyword'>constexpr</span> <span class='parenthesis'>(</span><i >is-derived-from-specialization-of</i><span class='anglebracket'>&lt;</span>PO1, absolute_point_origin<span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span><span class='parenthesis'>)</span> <span class='operator'>&amp;</span><span class='operator'>&amp;</span>
<i >is-derived-from-specialization-of</i><span class='anglebracket'>&lt;</span>PO2, absolute_point_origin<span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span><span class='parenthesis'>)</span><span class='parenthesis'>)</span>
<span class='keyword'>return</span> po1 <span class='operator'>=</span><span class='operator'>=</span> po2;
@ -15,7 +15,7 @@
<span class='keyword'>return</span> <span class='literal'>false</span>;
</span></div></div></div></div></div><div id='qty.def.pt.orig' class='section'><h4 ><a class='secnum' href='#qty.def.pt.orig' style='min-width:110pt'>5.7.2.5.2</a> Default <a class='abbr_ref' href='qty.def.pt.orig.html'>[qty.def.pt.orig]</a></h4><div class='texpara'><div id='lib:default_point_origin,Reference'><div id='lib:Reference,default_point_origin'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:Reference,default_point_origin'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><a href='qty.ref.concepts.html#concept:Reference' title='5.4.5&emsp;Concepts&emsp;[qty.ref.concepts]'><span id='conceptref:Reference'><span class='texttt'>Reference</span></span></a> R<span class='anglebracket'>&gt;</span>
<span class='keyword'>consteval</span> <a href='qty.pt.orig.concepts.html#concept:PointOriginFor' title='5.7.2.2&emsp;Concepts&emsp;[qty.pt.orig.concepts]'><span id='conceptref:PointOriginFor'><span class='texttt'>PointOriginFor</span></span></a><span class='anglebracket'>&lt;</span>get_quantity_spec<span class='parenthesis'>(</span>R<span class='curlybracket'>{</span><span class='curlybracket'>}</span><span class='parenthesis'>)</span><span class='anglebracket'>&gt;</span> <span class='keyword'>auto</span> default_point_origin<span class='parenthesis'>(</span>R<span class='parenthesis'>)</span>;
</code></div></div></div></div><div class='para' id='qty.def.pt.orig-1'><div class='marginalizedparent'><a class='marginalized' href='#qty.def.pt.orig-1'>1</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L5705'>#</a></div><div class='texpara'><div id='qty.def.pt.orig-1.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
</code></div></div></div></div><div class='para' id='qty.def.pt.orig-1'><div class='marginalizedparent'><a class='marginalized' href='#qty.def.pt.orig-1'>1</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L5705'>#</a></div><div class='texpara'><div id='qty.def.pt.orig-1.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
<span class='codeblock'><span class='keyword'>if</span> <span class='keyword'>constexpr</span> <span class='parenthesis'>(</span><span class='keyword'>requires</span> <span class='curlybracket'>{</span> get_unit<span class='parenthesis'>(</span>R<span class='curlybracket'>{</span><span class='curlybracket'>}</span><span class='parenthesis'>)</span><span class='operator'>.</span><i >point-origin</i>; <span class='curlybracket'>}</span><span class='parenthesis'>)</span>
<span class='keyword'>return</span> get_unit<span class='parenthesis'>(</span>R<span class='curlybracket'>{</span><span class='curlybracket'>}</span><span class='parenthesis'>)</span><span class='operator'>.</span><i >point-origin</i>;
<span class='keyword'>else</span>

View File

@ -2,6 +2,6 @@
<span class='keyword'>requires</span> <i ><span class='texttt'>see below</span></i>;
<span class='keyword'>static</span> <span class='keyword'>constexpr</span> quantity_point max<span class='parenthesis'>(</span><span class='parenthesis'>)</span> <span class='keyword'>noexcept</span>
<span class='keyword'>requires</span> <i ><span class='texttt'>see below</span></i>;
</code></div></div></div></div></div></div><div class='para' id='1'><div class='marginalizedparent'><a class='marginalized' href='#1'>1</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L5952'>#</a></div><div class='texpara'><div id='1.sentence-1' class='sentence'>Let <i >F</i> be one of <span class='texttt'>min</span> and <span class='texttt'>max</span><a class='hidden_link' href='#1.sentence-1'>.</a></div></div></div></div><div class='para' id='2'><div class='marginalizedparent'><a class='marginalized' href='#2'>2</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L5955'>#</a></div><div class='texpara'><div id='2.sentence-1' class='sentence'><i >Returns</i>: <span class='texttt'><span class='curlybracket'>{</span>quantity_<span class='shy'></span>type<span class='operator'>&#x200b;::&#x200b;</span><i >F</i><span class='parenthesis'>(</span><span class='parenthesis'>)</span>, PO<span class='curlybracket'>}</span></span><a class='hidden_link' href='#2.sentence-1'>.</a></div></div></div></div><div class='para' id='3'><div class='marginalizedparent'><a class='marginalized' href='#3'>3</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L5959'>#</a></div><div class='texpara'><div id='3.sentence-1' class='sentence'><i >Remarks</i>: The expression in the <span class='textsf'><i >requires-clause</i></span> is equivalent to:
</code></div></div></div></div></div></div><div class='para' id='1'><div class='marginalizedparent'><a class='marginalized' href='#1'>1</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L5952'>#</a></div><div class='texpara'><div id='1.sentence-1' class='sentence'>Let <i >F</i> be one of <span class='texttt'>min</span> and <span class='texttt'>max</span><a class='hidden_link' href='#1.sentence-1'>.</a></div></div></div></div><div class='para' id='2'><div class='marginalizedparent'><a class='marginalized' href='#2'>2</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L5955'>#</a></div><div class='texpara'><div id='2.sentence-1' class='sentence'><i >Returns</i>: <span class='texttt'><span class='curlybracket'>{</span>quantity_<span class='shy'></span>type<span class='operator'>&#x200b;::&#x200b;</span><i >F</i><span class='parenthesis'>(</span><span class='parenthesis'>)</span>, PO<span class='curlybracket'>}</span></span><a class='hidden_link' href='#2.sentence-1'>.</a></div></div></div></div><div class='para' id='3'><div class='marginalizedparent'><a class='marginalized' href='#3'>3</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L5959'>#</a></div><div class='texpara'><div id='3.sentence-1' class='sentence'><i >Remarks</i>: The expression in the <span class='textsf'><i >requires-clause</i></span> is equivalent to:
<span class='codeblock'><span class='keyword'>requires</span> <span class='curlybracket'>{</span> quantity_type<span class='operator'>::</span><i >F</i><span class='parenthesis'>(</span><span class='parenthesis'>)</span>; <span class='curlybracket'>}</span>
</span></div></div></div></div></div></body></html>

View File

@ -191,8 +191,8 @@ quantity_point<span class='parenthesis'>(</span>Q, PO<span class='parenthesis'>)
<span class='operator'>-</span><span class='anglebracket'>&gt;</span> quantity_point<span class='anglebracket'>&lt;</span>Traits<span class='operator'>::</span>reference, Traits<span class='operator'>::</span>point_origin, <span class='keyword'>typename</span> Traits<span class='operator'>::</span>rep<span class='anglebracket'>&gt;</span>;
<span class='curlybracket'>}</span>
</span></div><div class='para' id='1'><div class='marginalizedparent'><a class='marginalized' href='#1'>1</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L5928'>#</a></div><div class='texpara'><div id='1.sentence-1' class='sentence'><span class='texttt'>quantity_<span class='shy'></span>point<span class='anglebracket'>&lt;</span>R, PO, Rep<span class='anglebracket'>&gt;</span></span> is a structural type (<a href="https://wg21.link/temp.paramterm.structural.type">N4971, [temp.param]</a>)
if <span class='texttt'>Rep</span> is a structural type<a class='hidden_link' href='#1.sentence-1'>.</a></div></div></div><div class='para' id='2'><div class='marginalizedparent'><a class='marginalized' href='#2'>2</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L5932'>#</a></div><div class='texpara'><div id='2.sentence-1' class='sentence'>The member <span class='texttt'>absolute_<span class='shy'></span>point_<span class='shy'></span>origin</span> is equal to <span class='texttt'>PO</span> if
</span></div><div class='para' id='1'><div class='marginalizedparent'><a class='marginalized' href='#1'>1</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L5928'>#</a></div><div class='texpara'><div id='1.sentence-1' class='sentence'><span class='texttt'>quantity_<span class='shy'></span>point<span class='anglebracket'>&lt;</span>R, PO, Rep<span class='anglebracket'>&gt;</span></span> is a structural type (<a href="https://wg21.link/temp.paramterm.structural.type">N4971, [temp.param]</a>)
if <span class='texttt'>Rep</span> is a structural type<a class='hidden_link' href='#1.sentence-1'>.</a></div></div></div><div class='para' id='2'><div class='marginalizedparent'><a class='marginalized' href='#2'>2</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L5932'>#</a></div><div class='texpara'><div id='2.sentence-1' class='sentence'>The member <span class='texttt'>absolute_<span class='shy'></span>point_<span class='shy'></span>origin</span> is equal to <span class='texttt'>PO</span> if
<span class='codeblock'><i >is-derived-from-specialization-of</i><span class='anglebracket'>&lt;</span><span class='keyword'>decltype</span><span class='parenthesis'>(</span>PO<span class='parenthesis'>)</span>, absolute_point_origin<span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span><span class='parenthesis'>)</span>
</span>
is <span class='texttt'><span class='literal'>true</span></span>, and

View File

@ -1,18 +1,18 @@
<!DOCTYPE html><html lang='en'><head><title>[qty.pt.unary.ops]</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.7</a> Quantity point <a class='abbr_ref' href='qty.pt.html#unary.ops'>[qty.pt]</a></h2><h3 ><a class='secnum' style='min-width:80pt'>5.7.10</a> Unary operations <a class='abbr_ref'>[qty.pt.unary.ops]</a></h3><div class='para' id='1'><div class='marginalizedparent'><a class='marginalized' href='#1'>1</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L6229'>#</a></div><div class='texpara'><div id='1.sentence-1' class='sentence'>In the following descriptions,
<!DOCTYPE html><html lang='en'><head><title>[qty.pt.unary.ops]</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.7</a> Quantity point <a class='abbr_ref' href='qty.pt.html#unary.ops'>[qty.pt]</a></h2><h3 ><a class='secnum' style='min-width:80pt'>5.7.10</a> Unary operations <a class='abbr_ref'>[qty.pt.unary.ops]</a></h3><div class='para' id='1'><div class='marginalizedparent'><a class='marginalized' href='#1'>1</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L6229'>#</a></div><div class='texpara'><div id='1.sentence-1' class='sentence'>In the following descriptions,
let <span class='texttt'>@</span> be the <span class='textsf'><i >operator</i></span><a class='hidden_link' href='#1.sentence-1'>.</a></div></div></div><div class='texpara'><div id='lib:quantity_point,operator--'><div id='lib:operator--,quantity_point'><div id='lib:quantity_point,operator++'><div id='lib:operator++,quantity_point'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:operator++,quantity_point'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><a class='index' id='conceptref:Mutable'></a><span class='texttt'><i >Mutable</i></span><span class='anglebracket'>&lt;</span>quantity_point<span class='anglebracket'>&gt;</span> QP<span class='anglebracket'>&gt;</span>
<span class='keyword'>friend</span> <span class='keyword'>constexpr</span> <span class='keyword'>decltype</span><span class='parenthesis'>(</span><span class='keyword'>auto</span><span class='parenthesis'>)</span> <span class='keyword'>operator</span><span class='operator'>+</span><span class='operator'>+</span><span class='parenthesis'>(</span>QP<span class='operator'>&amp;</span><span class='operator'>&amp;</span> qp<span class='parenthesis'>)</span>
<span class='keyword'>requires</span> <i ><span class='texttt'>see below</span></i>;
<span class='keyword'>template</span><span class='anglebracket'>&lt;</span><a class='index' id='conceptref:Mutable_'></a><span class='texttt'><i >Mutable</i></span><span class='anglebracket'>&lt;</span>quantity_point<span class='anglebracket'>&gt;</span> QP<span class='anglebracket'>&gt;</span>
<span class='keyword'>friend</span> <span class='keyword'>constexpr</span> <span class='keyword'>decltype</span><span class='parenthesis'>(</span><span class='keyword'>auto</span><span class='parenthesis'>)</span> <span class='keyword'>operator</span><span class='operator'>-</span><span class='operator'>-</span><span class='parenthesis'>(</span>QP<span class='operator'>&amp;</span><span class='operator'>&amp;</span> qp<span class='parenthesis'>)</span>
<span class='keyword'>requires</span> <i ><span class='texttt'>see below</span></i>;
</code></div></div></div></div></div></div><div class='para' id='2'><div class='marginalizedparent'><a class='marginalized' href='#2'>2</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L6245'>#</a></div><div class='texpara'><div id='2.sentence-1' class='sentence'><i >Effects</i>: Equivalent to
<span class='texttt'>@qp<span class='operator'>.</span><span class='texttt'><i >quantity-from-origin</i></span></span><a class='hidden_link' href='#2.sentence-1'>.</a></div></div></div></div><div class='para' id='3'><div class='marginalizedparent'><a class='marginalized' href='#3'>3</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L6250'>#</a></div><div class='texpara'><div id='3.sentence-1' class='sentence'><i >Returns</i>: <span class='texttt'>std<span class='operator'>&#x200b;::&#x200b;</span>forward<span class='anglebracket'>&lt;</span>QP<span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span>qp<span class='parenthesis'>)</span></span><a class='hidden_link' href='#3.sentence-1'>.</a></div></div></div></div><div class='para' id='4'><div class='marginalizedparent'><a class='marginalized' href='#4'>4</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L6254'>#</a></div><div class='texpara'><div id='4.sentence-1' class='sentence'><i >Remarks</i>: The expression in the <span class='textsf'><i >requires-clause</i></span> is equivalent to:
</code></div></div></div></div></div></div><div class='para' id='2'><div class='marginalizedparent'><a class='marginalized' href='#2'>2</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L6245'>#</a></div><div class='texpara'><div id='2.sentence-1' class='sentence'><i >Effects</i>: Equivalent to
<span class='texttt'>@qp<span class='operator'>.</span><span class='texttt'><i >quantity-from-origin</i></span></span><a class='hidden_link' href='#2.sentence-1'>.</a></div></div></div></div><div class='para' id='3'><div class='marginalizedparent'><a class='marginalized' href='#3'>3</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L6250'>#</a></div><div class='texpara'><div id='3.sentence-1' class='sentence'><i >Returns</i>: <span class='texttt'>std<span class='operator'>&#x200b;::&#x200b;</span>forward<span class='anglebracket'>&lt;</span>QP<span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span>qp<span class='parenthesis'>)</span></span><a class='hidden_link' href='#3.sentence-1'>.</a></div></div></div></div><div class='para' id='4'><div class='marginalizedparent'><a class='marginalized' href='#4'>4</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L6254'>#</a></div><div class='texpara'><div id='4.sentence-1' class='sentence'><i >Remarks</i>: The expression in the <span class='textsf'><i >requires-clause</i></span> is equivalent to:
<span class='codeblock'><span class='keyword'>requires</span> <span class='curlybracket'>{</span> @qp<span class='operator'>.</span><i >quantity-from-origin</i>; <span class='curlybracket'>}</span>
</span></div></div></div></div><div class='texpara'><div id='lib:quantity_point,operator--_'><div id='lib:operator--,quantity_point_'><div id='lib:quantity_point,operator++_'><div id='lib:operator++,quantity_point_'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:operator++,quantity_point_'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>constexpr</span> quantity_point <span class='keyword'>operator</span><span class='operator'>+</span><span class='operator'>+</span><span class='parenthesis'>(</span><span class='keyword'>int</span><span class='parenthesis'>)</span>
<span class='keyword'>requires</span> <i ><span class='texttt'>see below</span></i>;
<span class='keyword'>constexpr</span> quantity_point <span class='keyword'>operator</span><span class='operator'>-</span><span class='operator'>-</span><span class='parenthesis'>(</span><span class='keyword'>int</span><span class='parenthesis'>)</span>
<span class='keyword'>requires</span> <i ><span class='texttt'>see below</span></i>;
</code></div></div></div></div></div></div><div class='para' id='5'><div class='marginalizedparent'><a class='marginalized' href='#5'>5</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L6272'>#</a></div><div class='texpara'><div id='5.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
<span class='texttt'><span class='keyword'>return</span> <span class='curlybracket'>{</span><span class='texttt'><i >quantity-from-origin</i></span>@, PO<span class='curlybracket'>}</span>;</span></div></div></div></div><div class='para' id='6'><div class='marginalizedparent'><a class='marginalized' href='#6'>6</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L6277'>#</a></div><div class='texpara'><div id='6.sentence-1' class='sentence'><i >Remarks</i>: The expression in the <span class='textsf'><i >requires-clause</i></span> is equivalent to:
</code></div></div></div></div></div></div><div class='para' id='5'><div class='marginalizedparent'><a class='marginalized' href='#5'>5</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L6272'>#</a></div><div class='texpara'><div id='5.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
<span class='texttt'><span class='keyword'>return</span> <span class='curlybracket'>{</span><span class='texttt'><i >quantity-from-origin</i></span>@, PO<span class='curlybracket'>}</span>;</span></div></div></div></div><div class='para' id='6'><div class='marginalizedparent'><a class='marginalized' href='#6'>6</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L6277'>#</a></div><div class='texpara'><div id='6.sentence-1' class='sentence'><i >Remarks</i>: The expression in the <span class='textsf'><i >requires-clause</i></span> is equivalent to:
<span class='codeblock'><span class='keyword'>requires</span> <span class='curlybracket'>{</span> <i >quantity-from-origin</i>@; <span class='curlybracket'>}</span>
</span></div></div></div></div></div></body></html>

View File

@ -31,16 +31,16 @@
<span class='keyword'>consteval</span> <i >ratio</i> <i >common-ratio</i><span class='parenthesis'>(</span><i >ratio</i> r1, <i >ratio</i> r2<span class='parenthesis'>)</span>;
<span class='curlybracket'>}</span>
</span></span></span></span></span></span></span></span></span></span></span></span></span></span></div><div class='para' id='1'><div class='marginalizedparent'><a class='marginalized' href='#1'>1</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L775'>#</a></div><div class='texpara'><div id='1.sentence-1' class='sentence'><span class='texttt'><i >ratio</i></span> represents the rational number <span class="mjx-chtml"><span class="mjx-math"><span class="mjx-mrow" aria-hidden="true"><span class="mjx-texatom"><span class="mjx-mrow"><span class="mjx-mtext"><span class="mjx-char MJXc-TeX-type-R" style="padding-top: 0.225em; padding-bottom: 0.298em;">num</span></span></span></span><span class="mjx-texatom"><span class="mjx-mrow"><span class="mjx-mo"><span class="mjx-char MJXc-TeX-main-R" style="padding-top: 0.446em; padding-bottom: 0.593em;">/</span></span></span></span><span class="mjx-texatom"><span class="mjx-mrow"><span class="mjx-mtext"><span class="mjx-char MJXc-TeX-type-R" style="padding-top: 0.372em; padding-bottom: 0.298em;">den</span></span></span></span></span></span></span><a class='hidden_link' href='#1.sentence-1'>.</a></div></div></div><div class='para' id='2'><div class='marginalizedparent'><a class='marginalized' href='#2'>2</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L778'>#</a></div><div class='texpara'><div id='2.sentence-1' class='sentence'>Unless otherwise specified,
</span></span></span></span></span></span></span></span></span></span></span></span></span></span></div><div class='para' id='1'><div class='marginalizedparent'><a class='marginalized' href='#1'>1</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L775'>#</a></div><div class='texpara'><div id='1.sentence-1' class='sentence'><span class='texttt'><i >ratio</i></span> represents the rational number <span class="mjx-chtml"><span class="mjx-math"><span class="mjx-mrow" aria-hidden="true"><span class="mjx-texatom"><span class="mjx-mrow"><span class="mjx-mtext"><span class="mjx-char MJXc-TeX-type-R" style="padding-top: 0.225em; padding-bottom: 0.298em;">num</span></span></span></span><span class="mjx-texatom"><span class="mjx-mrow"><span class="mjx-mo"><span class="mjx-char MJXc-TeX-main-R" style="padding-top: 0.446em; padding-bottom: 0.593em;">/</span></span></span></span><span class="mjx-texatom"><span class="mjx-mrow"><span class="mjx-mtext"><span class="mjx-char MJXc-TeX-type-R" style="padding-top: 0.372em; padding-bottom: 0.298em;">den</span></span></span></span></span></span></span><a class='hidden_link' href='#1.sentence-1'>.</a></div></div></div><div class='para' id='2'><div class='marginalizedparent'><a class='marginalized' href='#2'>2</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L778'>#</a></div><div class='texpara'><div id='2.sentence-1' class='sentence'>Unless otherwise specified,
in the following descriptions,
let <span class='texttt'>R<span class='parenthesis'>(</span>r<span class='parenthesis'>)</span></span> be <span class='texttt'>std<span class='operator'>&#x200b;::&#x200b;</span>ratio<span class='anglebracket'>&lt;</span>N, D<span class='anglebracket'>&gt;</span></span>,
where <span class='texttt'>N</span> and <span class='texttt'>D</span> are the values of <span class='texttt'>r<span class='operator'>.</span>num</span> and <span class='texttt'>r<span class='operator'>.</span>den</span><a class='hidden_link' href='#2.sentence-1'>.</a></div></div></div><div class='texpara'><div id='lib:ratio,constructor'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:ratio,constructor'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>consteval</span> <span class='texttt'><i >ratio</i></span><span class='parenthesis'>(</span>std<span class='operator'>::</span>intmax_t n, std<span class='operator'>::</span>intmax_t d <span class='operator'>=</span> <span class='literal'>1</span><span class='parenthesis'>)</span>;
</code></div></div></div><div class='para' id='3'><div class='marginalizedparent'><a class='marginalized' href='#3'>3</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L790'>#</a></div><div class='texpara'><div id='3.sentence-1' class='sentence'>Let <span class='texttt'>N</span> and <span class='texttt'>D</span> be the values of <span class='texttt'>n</span> and <span class='texttt'>d</span><a class='hidden_link' href='#3.sentence-1'>.</a></div> <div id='3.sentence-2' class='sentence'>Let <span class='texttt'>R</span> be <span class='texttt'>std<span class='operator'>&#x200b;::&#x200b;</span>ratio<span class='anglebracket'>&lt;</span>N, D<span class='anglebracket'>&gt;</span></span><a class='hidden_link' href='#3.sentence-2'>.</a></div></div></div></div><div class='para' id='4'><div class='marginalizedparent'><a class='marginalized' href='#4'>4</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L794'>#</a></div><div class='texpara'><div id='4.sentence-1' class='sentence'><i >Effects</i>: Equivalent to
<span class='texttt'>R</span><a class='hidden_link' href='#4.sentence-1'>.</a></div></div></div></div><div class='para' id='5'><div class='marginalizedparent'><a class='marginalized' href='#5'>5</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L799'>#</a></div><div class='texpara'><div id='5.sentence-1' class='sentence'><i >Postconditions</i>: <span class='texttt'>num <span class='operator'>=</span><span class='operator'>=</span> R<span class='operator'>&#x200b;::&#x200b;</span>num <span class='operator'>&amp;</span><span class='operator'>&amp;</span> den <span class='operator'>=</span><span class='operator'>=</span> R<span class='operator'>&#x200b;::&#x200b;</span>den</span> is <span class='texttt'><span class='literal'>true</span></span><a class='hidden_link' href='#5.sentence-1'>.</a></div></div></div></div><div class='texpara'><div id='lib:ratio,operator*'><div id='lib:operator*,ratio'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:operator*,ratio'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>friend</span> <span class='keyword'>consteval</span> <span class='texttt'><i >ratio</i></span> <span class='keyword'>operator</span><span class='operator'>*</span><span class='parenthesis'>(</span><span class='texttt'><i >ratio</i></span> lhs, <span class='texttt'><i >ratio</i></span> rhs<span class='parenthesis'>)</span>;
</code></div></div></div></div><div class='para' id='6'><div class='marginalizedparent'><a class='marginalized' href='#6'>6</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L810'>#</a></div><div class='texpara'><div id='6.sentence-1' class='sentence'>Let <span class='texttt'>Res</span> be <span class='texttt'>std<span class='operator'>&#x200b;::&#x200b;</span>ratio_<span class='shy'></span>multiply<span class='anglebracket'>&lt;</span>R<span class='parenthesis'>(</span>lhs<span class='parenthesis'>)</span>, R<span class='parenthesis'>(</span>rhs<span class='parenthesis'>)</span><span class='anglebracket'>&gt;</span></span><a class='hidden_link' href='#6.sentence-1'>.</a></div></div></div></div><div class='para' id='7'><div class='marginalizedparent'><a class='marginalized' href='#7'>7</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L813'>#</a></div><div class='texpara'><div id='7.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
</code></div></div></div><div class='para' id='3'><div class='marginalizedparent'><a class='marginalized' href='#3'>3</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L790'>#</a></div><div class='texpara'><div id='3.sentence-1' class='sentence'>Let <span class='texttt'>N</span> and <span class='texttt'>D</span> be the values of <span class='texttt'>n</span> and <span class='texttt'>d</span><a class='hidden_link' href='#3.sentence-1'>.</a></div> <div id='3.sentence-2' class='sentence'>Let <span class='texttt'>R</span> be <span class='texttt'>std<span class='operator'>&#x200b;::&#x200b;</span>ratio<span class='anglebracket'>&lt;</span>N, D<span class='anglebracket'>&gt;</span></span><a class='hidden_link' href='#3.sentence-2'>.</a></div></div></div></div><div class='para' id='4'><div class='marginalizedparent'><a class='marginalized' href='#4'>4</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L794'>#</a></div><div class='texpara'><div id='4.sentence-1' class='sentence'><i >Effects</i>: Equivalent to
<span class='texttt'>R</span><a class='hidden_link' href='#4.sentence-1'>.</a></div></div></div></div><div class='para' id='5'><div class='marginalizedparent'><a class='marginalized' href='#5'>5</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L799'>#</a></div><div class='texpara'><div id='5.sentence-1' class='sentence'><i >Postconditions</i>: <span class='texttt'>num <span class='operator'>=</span><span class='operator'>=</span> R<span class='operator'>&#x200b;::&#x200b;</span>num <span class='operator'>&amp;</span><span class='operator'>&amp;</span> den <span class='operator'>=</span><span class='operator'>=</span> R<span class='operator'>&#x200b;::&#x200b;</span>den</span> is <span class='texttt'><span class='literal'>true</span></span><a class='hidden_link' href='#5.sentence-1'>.</a></div></div></div></div><div class='texpara'><div id='lib:ratio,operator*'><div id='lib:operator*,ratio'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:operator*,ratio'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>friend</span> <span class='keyword'>consteval</span> <span class='texttt'><i >ratio</i></span> <span class='keyword'>operator</span><span class='operator'>*</span><span class='parenthesis'>(</span><span class='texttt'><i >ratio</i></span> lhs, <span class='texttt'><i >ratio</i></span> rhs<span class='parenthesis'>)</span>;
</code></div></div></div></div><div class='para' id='6'><div class='marginalizedparent'><a class='marginalized' href='#6'>6</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L810'>#</a></div><div class='texpara'><div id='6.sentence-1' class='sentence'>Let <span class='texttt'>Res</span> be <span class='texttt'>std<span class='operator'>&#x200b;::&#x200b;</span>ratio_<span class='shy'></span>multiply<span class='anglebracket'>&lt;</span>R<span class='parenthesis'>(</span>lhs<span class='parenthesis'>)</span>, R<span class='parenthesis'>(</span>rhs<span class='parenthesis'>)</span><span class='anglebracket'>&gt;</span></span><a class='hidden_link' href='#6.sentence-1'>.</a></div></div></div></div><div class='para' id='7'><div class='marginalizedparent'><a class='marginalized' href='#7'>7</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L813'>#</a></div><div class='texpara'><div id='7.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
<span class='texttt'><span class='keyword'>return</span> <span class='curlybracket'>{</span>Res<span class='operator'>&#x200b;::&#x200b;</span>num, Res<span class='operator'>&#x200b;::&#x200b;</span>den<span class='curlybracket'>}</span>;</span></div></div></div></div><div class='texpara'><div id='lib:ratio,common-ratio'><div id='lib:common-ratio,ratio'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:common-ratio,ratio'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>consteval</span> <span class='texttt'><i >ratio</i></span> <span class='texttt'><i >common-ratio</i></span><span class='parenthesis'>(</span><span class='texttt'><i >ratio</i></span> r1, <span class='texttt'><i >ratio</i></span> r2<span class='parenthesis'>)</span>;
</code></div></div></div></div><div class='para' id='8'><div class='marginalizedparent'><a class='marginalized' href='#8'>8</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L825'>#</a></div><div class='texpara'><div id='8.sentence-1' class='sentence'>Let <span class='texttt'>Res</span> be equal to
</code></div></div></div></div><div class='para' id='8'><div class='marginalizedparent'><a class='marginalized' href='#8'>8</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L825'>#</a></div><div class='texpara'><div id='8.sentence-1' class='sentence'>Let <span class='texttt'>Res</span> be equal to
<span class='codeblock'>std<span class='operator'>::</span>common_type<span class='anglebracket'>&lt;</span>std<span class='operator'>::</span>chrono<span class='operator'>::</span>duration<span class='anglebracket'>&lt;</span><span class='keyword'>int</span>, R<span class='parenthesis'>(</span>r1<span class='parenthesis'>)</span><span class='anglebracket'>&gt;</span>,
std<span class='operator'>::</span>chrono<span class='operator'>::</span>duration<span class='anglebracket'>&lt;</span><span class='keyword'>int</span>, R<span class='parenthesis'>(</span>r2<span class='parenthesis'>)</span><span class='anglebracket'>&gt;</span><span class='anglebracket'>&gt;</span><span class='operator'>::</span>type<span class='operator'>::</span>period
</span></div></div></div></div><div class='para' id='9'><div class='marginalizedparent'><a class='marginalized' href='#9'>9</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L832'>#</a></div><div class='texpara'><div id='9.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
</span></div></div></div></div><div class='para' id='9'><div class='marginalizedparent'><a class='marginalized' href='#9'>9</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L832'>#</a></div><div class='texpara'><div id='9.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
<span class='texttt'><span class='keyword'>return</span> <span class='curlybracket'>{</span>Res<span class='operator'>&#x200b;::&#x200b;</span>num, Res<span class='operator'>&#x200b;::&#x200b;</span>den<span class='curlybracket'>}</span>;</span></div></div></div></div></div></body></html>

View File

@ -1,4 +1,4 @@
<!DOCTYPE html><html lang='en'><head><title>[qty.real.cpo]</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.5</a> Representation <a class='abbr_ref' href='qty.rep.html#qty.real.cpo'>[qty.rep]</a></h2><h3 ><a class='secnum' style='min-width:80pt'>5.5.3</a> Customization point objects <a class='abbr_ref' href='qty.rep.cpos.html#qty.real.cpo'>[qty.rep.cpos]</a></h3><h4 ><a class='secnum' style='min-width:95pt'>5.5.3.2</a> <span class='texttt'>mp_<span class='shy'></span>units&#x200b;::&#x200b;real</span> <a class='abbr_ref'>[qty.real.cpo]</a></h4><div class='para' id='1'><div class='marginalizedparent'><a class='marginalized' href='#1'>1</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L3801'>#</a></div><div class='texpara'><div id='1.sentence-1' class='sentence'>The name <span class='texttt'>mp_<span class='shy'></span>units<span class='operator'>&#x200b;::&#x200b;</span>real</span> denotes a customization point object (<a href="https://wg21.link/customization.point.object">N4971, [customization.point.object]</a>)<a class='hidden_link' href='#1.sentence-1'>.</a></div></div></div><div class='para' id='2'><div class='marginalizedparent'><a class='marginalized' href='#2'>2</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L3804'>#</a></div><div class='texpara'><div id='2.sentence-1' class='sentence'>Given a subexpression <span class='texttt'>E</span> with type <span class='texttt'>T</span>,
<!DOCTYPE html><html lang='en'><head><title>[qty.real.cpo]</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.5</a> Representation <a class='abbr_ref' href='qty.rep.html#qty.real.cpo'>[qty.rep]</a></h2><h3 ><a class='secnum' style='min-width:80pt'>5.5.3</a> Customization point objects <a class='abbr_ref' href='qty.rep.cpos.html#qty.real.cpo'>[qty.rep.cpos]</a></h3><h4 ><a class='secnum' style='min-width:95pt'>5.5.3.2</a> <span class='texttt'>mp_<span class='shy'></span>units&#x200b;::&#x200b;real</span> <a class='abbr_ref'>[qty.real.cpo]</a></h4><div class='para' id='1'><div class='marginalizedparent'><a class='marginalized' href='#1'>1</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L3801'>#</a></div><div class='texpara'><div id='1.sentence-1' class='sentence'>The name <span class='texttt'>mp_<span class='shy'></span>units<span class='operator'>&#x200b;::&#x200b;</span>real</span> denotes a customization point object (<a href="https://wg21.link/customization.point.object">N4971, [customization.point.object]</a>)<a class='hidden_link' href='#1.sentence-1'>.</a></div></div></div><div class='para' id='2'><div class='marginalizedparent'><a class='marginalized' href='#2'>2</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L3804'>#</a></div><div class='texpara'><div id='2.sentence-1' class='sentence'>Given a subexpression <span class='texttt'>E</span> with type <span class='texttt'>T</span>,
let <span class='texttt'>t</span> be an lvalue that denotes the reified object for <span class='texttt'>E</span><a class='hidden_link' href='#2.sentence-1'>.</a></div> <div id='2.sentence-2' class='sentence'>Then:
<ul class='itemize'><li id='2.1'><div class='marginalizedparent' style='left:-27mm'><a class='marginalized' href='#2.1'>(2.1)</a></div><div class='texpara'><div id='2.1.sentence-1' class='sentence'>If <span class='texttt'>T</span> does not model <a href='qty.rep.concepts.html#concept:WeaklyRegular' title='5.5.4&emsp;Concepts&emsp;[qty.rep.concepts]'><span id='conceptref:WeaklyRegular'><span class='texttt'><i >WeaklyRegular</i></span></span></a>,
<span class='texttt'>mp_<span class='shy'></span>units<span class='operator'>&#x200b;::&#x200b;</span>real<span class='parenthesis'>(</span>E<span class='parenthesis'>)</span></span> is ill-formed<a class='hidden_link' href='#2.1.sentence-1'>.</a></div></div></li><li id='2.2'><div class='marginalizedparent' style='left:-27mm'><a class='marginalized' href='#2.2'>(2.2)</a></div><div class='texpara'><div id='2.2.sentence-1' class='sentence'>If <span class='texttt'><span class='keyword'>auto</span><span class='parenthesis'>(</span>t<span class='operator'>.</span>real<span class='parenthesis'>(</span><span class='parenthesis'>)</span><span class='parenthesis'>)</span></span> is a valid expression whose type models <a href='qty.rep.concepts.html#concept:Scalar' title='5.5.4&emsp;Concepts&emsp;[qty.rep.concepts]'><span id='conceptref:Scalar'><span class='texttt'><i >Scalar</i></span></span></a>,

View File

@ -1,11 +1,11 @@
<!DOCTYPE html><html lang='en'><head><title>[qty.ref.cmp]</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#cmp'>[qty.ref]</a></h2><h3 ><a class='secnum' style='min-width:80pt'>5.4.8</a> Comparison <a class='abbr_ref'>[qty.ref.cmp]</a></h3><div class='texpara'><div id='lib:reference,operator=='><div id='lib:operator==,reference'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:operator==,reference'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><span class='keyword'>typename</span> Q2, <span class='keyword'>typename</span> U2<span class='anglebracket'>&gt;</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>reference, reference<span class='anglebracket'>&lt;</span>Q2, U2<span class='anglebracket'>&gt;</span><span class='parenthesis'>)</span>;
</code></div></div></div></div><div class='para' id='1'><div class='marginalizedparent'><a class='marginalized' href='#1'>1</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L3543'>#</a></div><div class='texpara'><div id='1.sentence-1' class='sentence'><i >Returns</i>: <span class='texttt'>Q<span class='curlybracket'>{</span><span class='curlybracket'>}</span> <span class='operator'>=</span><span class='operator'>=</span> Q2<span class='curlybracket'>{</span><span class='curlybracket'>}</span> <span class='operator'>&amp;</span><span class='operator'>&amp;</span> U<span class='curlybracket'>{</span><span class='curlybracket'>}</span> <span class='operator'>=</span><span class='operator'>=</span> U2<span class='curlybracket'>{</span><span class='curlybracket'>}</span></span><a class='hidden_link' href='#1.sentence-1'>.</a></div></div></div></div><div class='texpara'><div id='lib:AssociatedUnit,operator=='><div id='lib:operator==,AssociatedUnit'><div id='lib:reference,operator==_'><div id='lib:operator==,reference_'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:operator==,reference_'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><a href='qty.unit.concepts.html#concept:AssociatedUnit' title='5.4.4.4&emsp;Concepts&emsp;[qty.unit.concepts]'><span id='conceptref:AssociatedUnit'><span class='texttt'>AssociatedUnit</span></span></a> U2<span class='anglebracket'>&gt;</span>
</code></div></div></div></div><div class='para' id='1'><div class='marginalizedparent'><a class='marginalized' href='#1'>1</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L3543'>#</a></div><div class='texpara'><div id='1.sentence-1' class='sentence'><i >Returns</i>: <span class='texttt'>Q<span class='curlybracket'>{</span><span class='curlybracket'>}</span> <span class='operator'>=</span><span class='operator'>=</span> Q2<span class='curlybracket'>{</span><span class='curlybracket'>}</span> <span class='operator'>&amp;</span><span class='operator'>&amp;</span> U<span class='curlybracket'>{</span><span class='curlybracket'>}</span> <span class='operator'>=</span><span class='operator'>=</span> U2<span class='curlybracket'>{</span><span class='curlybracket'>}</span></span><a class='hidden_link' href='#1.sentence-1'>.</a></div></div></div></div><div class='texpara'><div id='lib:AssociatedUnit,operator=='><div id='lib:operator==,AssociatedUnit'><div id='lib:reference,operator==_'><div id='lib:operator==,reference_'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:operator==,reference_'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><a href='qty.unit.concepts.html#concept:AssociatedUnit' title='5.4.4.4&emsp;Concepts&emsp;[qty.unit.concepts]'><span id='conceptref:AssociatedUnit'><span class='texttt'>AssociatedUnit</span></span></a> U2<span class='anglebracket'>&gt;</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>reference, U2 u2<span class='parenthesis'>)</span>;
</code></div></div></div></div></div></div><div class='para' id='2'><div class='marginalizedparent'><a class='marginalized' href='#2'>2</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L3556'>#</a></div><div class='texpara'><div id='2.sentence-1' class='sentence'><i >Returns</i>: <span class='texttt'>Q<span class='curlybracket'>{</span><span class='curlybracket'>}</span> <span class='operator'>=</span><span class='operator'>=</span> get_<span class='shy'></span>quantity_<span class='shy'></span>spec<span class='parenthesis'>(</span>u2<span class='parenthesis'>)</span> <span class='operator'>&amp;</span><span class='operator'>&amp;</span> U<span class='curlybracket'>{</span><span class='curlybracket'>}</span> <span class='operator'>=</span><span class='operator'>=</span> u2</span><a class='hidden_link' href='#2.sentence-1'>.</a></div></div></div></div><div class='texpara'><div id='lib:reference,convertible'><div id='lib:convertible,reference'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:convertible,reference'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><span class='keyword'>typename</span> Q2, <span class='keyword'>typename</span> U2<span class='anglebracket'>&gt;</span>
</code></div></div></div></div></div></div><div class='para' id='2'><div class='marginalizedparent'><a class='marginalized' href='#2'>2</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L3556'>#</a></div><div class='texpara'><div id='2.sentence-1' class='sentence'><i >Returns</i>: <span class='texttt'>Q<span class='curlybracket'>{</span><span class='curlybracket'>}</span> <span class='operator'>=</span><span class='operator'>=</span> get_<span class='shy'></span>quantity_<span class='shy'></span>spec<span class='parenthesis'>(</span>u2<span class='parenthesis'>)</span> <span class='operator'>&amp;</span><span class='operator'>&amp;</span> U<span class='curlybracket'>{</span><span class='curlybracket'>}</span> <span class='operator'>=</span><span class='operator'>=</span> u2</span><a class='hidden_link' href='#2.sentence-1'>.</a></div></div></div></div><div class='texpara'><div id='lib:reference,convertible'><div id='lib:convertible,reference'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:convertible,reference'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><span class='keyword'>typename</span> Q2, <span class='keyword'>typename</span> U2<span class='anglebracket'>&gt;</span>
<span class='keyword'>friend</span> <span class='keyword'>consteval</span> <span class='keyword'>bool</span> convertible<span class='parenthesis'>(</span>reference, reference<span class='anglebracket'>&lt;</span>Q2, U2<span class='anglebracket'>&gt;</span><span class='parenthesis'>)</span>;
</code></div></div></div></div><div class='para' id='3'><div class='marginalizedparent'><a class='marginalized' href='#3'>3</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L3568'>#</a></div><div class='texpara'><div id='3.sentence-1' class='sentence'><i >Returns</i>: <span class='texttt'>implicitly_<span class='shy'></span>convertible<span class='parenthesis'>(</span>Q<span class='curlybracket'>{</span><span class='curlybracket'>}</span>, Q2<span class='curlybracket'>{</span><span class='curlybracket'>}</span><span class='parenthesis'>)</span> <span class='operator'>&amp;</span><span class='operator'>&amp;</span> convertible<span class='parenthesis'>(</span>U<span class='curlybracket'>{</span><span class='curlybracket'>}</span>, U2<span class='curlybracket'>{</span><span class='curlybracket'>}</span><span class='parenthesis'>)</span></span><a class='hidden_link' href='#3.sentence-1'>.</a></div></div></div></div><div class='texpara'><div id='lib:AssociatedUnit,convertible'><div id='lib:convertible,AssociatedUnit'><div id='lib:reference,convertible_'><div id='lib:convertible,reference_'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:convertible,reference_'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><a href='qty.unit.concepts.html#concept:AssociatedUnit' title='5.4.4.4&emsp;Concepts&emsp;[qty.unit.concepts]'><span id='conceptref:AssociatedUnit_'><span class='texttt'>AssociatedUnit</span></span></a> U2<span class='anglebracket'>&gt;</span>
</code></div></div></div></div><div class='para' id='3'><div class='marginalizedparent'><a class='marginalized' href='#3'>3</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L3568'>#</a></div><div class='texpara'><div id='3.sentence-1' class='sentence'><i >Returns</i>: <span class='texttt'>implicitly_<span class='shy'></span>convertible<span class='parenthesis'>(</span>Q<span class='curlybracket'>{</span><span class='curlybracket'>}</span>, Q2<span class='curlybracket'>{</span><span class='curlybracket'>}</span><span class='parenthesis'>)</span> <span class='operator'>&amp;</span><span class='operator'>&amp;</span> convertible<span class='parenthesis'>(</span>U<span class='curlybracket'>{</span><span class='curlybracket'>}</span>, U2<span class='curlybracket'>{</span><span class='curlybracket'>}</span><span class='parenthesis'>)</span></span><a class='hidden_link' href='#3.sentence-1'>.</a></div></div></div></div><div class='texpara'><div id='lib:AssociatedUnit,convertible'><div id='lib:convertible,AssociatedUnit'><div id='lib:reference,convertible_'><div id='lib:convertible,reference_'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:convertible,reference_'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><a href='qty.unit.concepts.html#concept:AssociatedUnit' title='5.4.4.4&emsp;Concepts&emsp;[qty.unit.concepts]'><span id='conceptref:AssociatedUnit_'><span class='texttt'>AssociatedUnit</span></span></a> U2<span class='anglebracket'>&gt;</span>
<span class='keyword'>friend</span> <span class='keyword'>consteval</span> <span class='keyword'>bool</span> convertible<span class='parenthesis'>(</span>reference, U2 u2<span class='parenthesis'>)</span>;
</code></div></div></div></div></div></div><div class='para' id='4'><div class='marginalizedparent'><a class='marginalized' href='#4'>4</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L3581'>#</a></div><div class='texpara'><div id='4.sentence-1' class='sentence'><i >Returns</i>: <span class='texttt'>implicitly_<span class='shy'></span>convertible<span class='parenthesis'>(</span>Q<span class='curlybracket'>{</span><span class='curlybracket'>}</span>, get_<span class='shy'></span>quantity_<span class='shy'></span>spec<span class='parenthesis'>(</span>u2<span class='parenthesis'>)</span><span class='parenthesis'>)</span> <span class='operator'>&amp;</span><span class='operator'>&amp;</span> convertible<span class='parenthesis'>(</span>U<span class='curlybracket'>{</span><span class='curlybracket'>}</span>, u2<span class='parenthesis'>)</span></span><a class='hidden_link' href='#4.sentence-1'>.</a></div></div></div></div><div class='texpara'><div id='lib:AssociatedUnit,convertible_'><div id='lib:convertible,AssociatedUnit_'><div id='lib:reference,convertible__'><div id='lib:convertible,reference__'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:convertible,reference__'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><a href='qty.unit.concepts.html#concept:AssociatedUnit' title='5.4.4.4&emsp;Concepts&emsp;[qty.unit.concepts]'><span id='conceptref:AssociatedUnit__'><span class='texttt'>AssociatedUnit</span></span></a> U1<span class='anglebracket'>&gt;</span>
</code></div></div></div></div></div></div><div class='para' id='4'><div class='marginalizedparent'><a class='marginalized' href='#4'>4</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L3581'>#</a></div><div class='texpara'><div id='4.sentence-1' class='sentence'><i >Returns</i>: <span class='texttt'>implicitly_<span class='shy'></span>convertible<span class='parenthesis'>(</span>Q<span class='curlybracket'>{</span><span class='curlybracket'>}</span>, get_<span class='shy'></span>quantity_<span class='shy'></span>spec<span class='parenthesis'>(</span>u2<span class='parenthesis'>)</span><span class='parenthesis'>)</span> <span class='operator'>&amp;</span><span class='operator'>&amp;</span> convertible<span class='parenthesis'>(</span>U<span class='curlybracket'>{</span><span class='curlybracket'>}</span>, u2<span class='parenthesis'>)</span></span><a class='hidden_link' href='#4.sentence-1'>.</a></div></div></div></div><div class='texpara'><div id='lib:AssociatedUnit,convertible_'><div id='lib:convertible,AssociatedUnit_'><div id='lib:reference,convertible__'><div id='lib:convertible,reference__'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:convertible,reference__'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><a href='qty.unit.concepts.html#concept:AssociatedUnit' title='5.4.4.4&emsp;Concepts&emsp;[qty.unit.concepts]'><span id='conceptref:AssociatedUnit__'><span class='texttt'>AssociatedUnit</span></span></a> U1<span class='anglebracket'>&gt;</span>
<span class='keyword'>friend</span> <span class='keyword'>consteval</span> <span class='keyword'>bool</span> convertible<span class='parenthesis'>(</span>U1 u1, reference<span class='parenthesis'>)</span>;
</code></div></div></div></div></div></div><div class='para' id='5'><div class='marginalizedparent'><a class='marginalized' href='#5'>5</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L3594'>#</a></div><div class='texpara'><div id='5.sentence-1' class='sentence'><i >Returns</i>: <span class='texttt'>implicitly_<span class='shy'></span>convertible<span class='parenthesis'>(</span>get_<span class='shy'></span>quantity_<span class='shy'></span>spec<span class='parenthesis'>(</span>u1<span class='parenthesis'>)</span>, Q<span class='curlybracket'>{</span><span class='curlybracket'>}</span><span class='parenthesis'>)</span> <span class='operator'>&amp;</span><span class='operator'>&amp;</span> convertible<span class='parenthesis'>(</span>u1, U<span class='curlybracket'>{</span><span class='curlybracket'>}</span><span class='parenthesis'>)</span></span><a class='hidden_link' href='#5.sentence-1'>.</a></div></div></div></div></div></body></html>
</code></div></div></div></div></div></div><div class='para' id='5'><div class='marginalizedparent'><a class='marginalized' href='#5'>5</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L3594'>#</a></div><div class='texpara'><div id='5.sentence-1' class='sentence'><i >Returns</i>: <span class='texttt'>implicitly_<span class='shy'></span>convertible<span class='parenthesis'>(</span>get_<span class='shy'></span>quantity_<span class='shy'></span>spec<span class='parenthesis'>(</span>u1<span class='parenthesis'>)</span>, Q<span class='curlybracket'>{</span><span class='curlybracket'>}</span><span class='parenthesis'>)</span> <span class='operator'>&amp;</span><span class='operator'>&amp;</span> convertible<span class='parenthesis'>(</span>u1, U<span class='curlybracket'>{</span><span class='curlybracket'>}</span><span class='parenthesis'>)</span></span><a class='hidden_link' href='#5.sentence-1'>.</a></div></div></div></div></div></body></html>

View File

@ -1,2 +1,2 @@
<!DOCTYPE html><html lang='en'><head><title>[qty.ref.general]</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#general'>[qty.ref]</a></h2><h3 ><a class='secnum' style='min-width:80pt'>5.4.1</a> General <a class='abbr_ref'>[qty.ref.general]</a></h3><div class='para' id='1'><div class='marginalizedparent'><a class='marginalized' href='#1'>1</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L1336'>#</a></div><div class='texpara'><div id='1.sentence-1' class='sentence'>Subclause <a href='qty.ref.html' title='5.4&emsp;Reference'>[qty.<span class='shy'></span>ref]</a> specifies the components
<!DOCTYPE html><html lang='en'><head><title>[qty.ref.general]</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#general'>[qty.ref]</a></h2><h3 ><a class='secnum' style='min-width:80pt'>5.4.1</a> General <a class='abbr_ref'>[qty.ref.general]</a></h3><div class='para' id='1'><div class='marginalizedparent'><a class='marginalized' href='#1'>1</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L1336'>#</a></div><div class='texpara'><div id='1.sentence-1' class='sentence'>Subclause <a href='qty.ref.html' title='5.4&emsp;Reference'>[qty.<span class='shy'></span>ref]</a> specifies the components
for describing the reference of a quantity (<a href="https://www.electropedia.org/iev/iev.nsf/display?openform&ievref=112-01-01">IEC 60050, 112-01-01</a>)<a class='hidden_link' href='#1.sentence-1'>.</a></div></div></div></div></body></html>

File diff suppressed because one or more lines are too long

View File

@ -1,12 +1,12 @@
<!DOCTYPE html><html lang='en'><head><title>[qty.ref.obs]</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#obs'>[qty.ref]</a></h2><h3 ><a class='secnum' style='min-width:80pt'>5.4.9</a> Observers <a class='abbr_ref'>[qty.ref.obs]</a></h3><div class='texpara'><div id='lib:reference,get_quantity_spec'><div id='lib:get_quantity_spec,reference'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:get_quantity_spec,reference'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><span class='keyword'>typename</span> Q, <span class='keyword'>typename</span> U<span class='anglebracket'>&gt;</span>
<span class='keyword'>consteval</span> <a href='qty.spec.concepts.html#concept:QuantitySpec' title='5.4.3.2&emsp;Concepts&emsp;[qty.spec.concepts]'><span id='conceptref:QuantitySpec'><span class='texttt'>QuantitySpec</span></span></a> <span class='keyword'>auto</span> get_quantity_spec<span class='parenthesis'>(</span>reference<span class='anglebracket'>&lt;</span>Q, U<span class='anglebracket'>&gt;</span><span class='parenthesis'>)</span>;
</code></div></div></div></div><div class='para' id='1'><div class='marginalizedparent'><a class='marginalized' href='#1'>1</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L3608'>#</a></div><div class='texpara'><div id='1.sentence-1' class='sentence'><i >Returns</i>: <span class='texttt'>Q<span class='curlybracket'>{</span><span class='curlybracket'>}</span></span><a class='hidden_link' href='#1.sentence-1'>.</a></div></div></div></div><div class='texpara'><div id='lib:reference,get_unit'><div id='lib:get_unit,reference'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:get_unit,reference'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><span class='keyword'>typename</span> Q, <span class='keyword'>typename</span> U<span class='anglebracket'>&gt;</span>
</code></div></div></div></div><div class='para' id='1'><div class='marginalizedparent'><a class='marginalized' href='#1'>1</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L3608'>#</a></div><div class='texpara'><div id='1.sentence-1' class='sentence'><i >Returns</i>: <span class='texttt'>Q<span class='curlybracket'>{</span><span class='curlybracket'>}</span></span><a class='hidden_link' href='#1.sentence-1'>.</a></div></div></div></div><div class='texpara'><div id='lib:reference,get_unit'><div id='lib:get_unit,reference'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:get_unit,reference'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><span class='keyword'>typename</span> Q, <span class='keyword'>typename</span> U<span class='anglebracket'>&gt;</span>
<span class='keyword'>consteval</span> <a href='qty.unit.concepts.html#concept:Unit' title='5.4.4.4&emsp;Concepts&emsp;[qty.unit.concepts]'><span id='conceptref:Unit'><span class='texttt'>Unit</span></span></a> <span class='keyword'>auto</span> get_unit<span class='parenthesis'>(</span>reference<span class='anglebracket'>&lt;</span>Q, U<span class='anglebracket'>&gt;</span><span class='parenthesis'>)</span>;
</code></div></div></div></div><div class='para' id='2'><div class='marginalizedparent'><a class='marginalized' href='#2'>2</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L3620'>#</a></div><div class='texpara'><div id='2.sentence-1' class='sentence'><i >Returns</i>: <span class='texttt'>U<span class='curlybracket'>{</span><span class='curlybracket'>}</span></span><a class='hidden_link' href='#2.sentence-1'>.</a></div></div></div></div><div class='texpara'><div id='lib:AssociatedUnit,get_common_reference'><div id='lib:get_common_reference,AssociatedUnit'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:get_common_reference,AssociatedUnit'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>consteval</span> <a href='qty.unit.concepts.html#concept:AssociatedUnit' title='5.4.4.4&emsp;Concepts&emsp;[qty.unit.concepts]'><span id='conceptref:AssociatedUnit'><span class='texttt'>AssociatedUnit</span></span></a> <span class='keyword'>auto</span> <span id='lib:get_common_reference'><a class='hidden_link' href='#lib:get_common_reference' title='5.4.9&emsp;Observers&emsp;[qty.ref.obs]'>get_common_reference</a></span><span class='parenthesis'>(</span><a href='qty.unit.concepts.html#concept:AssociatedUnit' title='5.4.4.4&emsp;Concepts&emsp;[qty.unit.concepts]'><span id='conceptref:AssociatedUnit_'><span class='texttt'>AssociatedUnit</span></span></a> <span class='keyword'>auto</span> u1,
</code></div></div></div></div><div class='para' id='2'><div class='marginalizedparent'><a class='marginalized' href='#2'>2</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L3620'>#</a></div><div class='texpara'><div id='2.sentence-1' class='sentence'><i >Returns</i>: <span class='texttt'>U<span class='curlybracket'>{</span><span class='curlybracket'>}</span></span><a class='hidden_link' href='#2.sentence-1'>.</a></div></div></div></div><div class='texpara'><div id='lib:AssociatedUnit,get_common_reference'><div id='lib:get_common_reference,AssociatedUnit'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:get_common_reference,AssociatedUnit'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>consteval</span> <a href='qty.unit.concepts.html#concept:AssociatedUnit' title='5.4.4.4&emsp;Concepts&emsp;[qty.unit.concepts]'><span id='conceptref:AssociatedUnit'><span class='texttt'>AssociatedUnit</span></span></a> <span class='keyword'>auto</span> <span id='lib:get_common_reference'><a class='hidden_link' href='#lib:get_common_reference' title='5.4.9&emsp;Observers&emsp;[qty.ref.obs]'>get_common_reference</a></span><span class='parenthesis'>(</span><a href='qty.unit.concepts.html#concept:AssociatedUnit' title='5.4.4.4&emsp;Concepts&emsp;[qty.unit.concepts]'><span id='conceptref:AssociatedUnit_'><span class='texttt'>AssociatedUnit</span></span></a> <span class='keyword'>auto</span> u1,
<a href='qty.unit.concepts.html#concept:AssociatedUnit' title='5.4.4.4&emsp;Concepts&emsp;[qty.unit.concepts]'><span id='conceptref:AssociatedUnit__'><span class='texttt'>AssociatedUnit</span></span></a> <span class='keyword'>auto</span> u2,
<a href='qty.unit.concepts.html#concept:AssociatedUnit' title='5.4.4.4&emsp;Concepts&emsp;[qty.unit.concepts]'><span id='conceptref:AssociatedUnit___'><span class='texttt'>AssociatedUnit</span></span></a> <span class='keyword'>auto</span><span class='operator'>.</span><span class='operator'>.</span><span class='operator'>.</span> rest<span class='parenthesis'>)</span>
<span class='keyword'>requires</span> <i ><span class='texttt'>see below</span></i>;
</code></div></div></div></div><div class='para' id='3'><div class='marginalizedparent'><a class='marginalized' href='#3'>3</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L3634'>#</a></div><div class='texpara'><div id='3.sentence-1' class='sentence'><i >Returns</i>: <span class='texttt'>get_<span class='shy'></span>common_<span class='shy'></span>unit<span class='parenthesis'>(</span>u1, u2, rest<span class='operator'>.</span><span class='operator'>.</span><span class='operator'>.</span><span class='parenthesis'>)</span></span><a class='hidden_link' href='#3.sentence-1'>.</a></div></div></div></div><div class='para' id='4'><div class='marginalizedparent'><a class='marginalized' href='#4'>4</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L3638'>#</a></div><div class='texpara'><div id='4.sentence-1' class='sentence'><i >Remarks</i>: The expression in the <span class='textsf'><i >requires-clause</i></span> is equivalent to:
</code></div></div></div></div><div class='para' id='3'><div class='marginalizedparent'><a class='marginalized' href='#3'>3</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L3634'>#</a></div><div class='texpara'><div id='3.sentence-1' class='sentence'><i >Returns</i>: <span class='texttt'>get_<span class='shy'></span>common_<span class='shy'></span>unit<span class='parenthesis'>(</span>u1, u2, rest<span class='operator'>.</span><span class='operator'>.</span><span class='operator'>.</span><span class='parenthesis'>)</span></span><a class='hidden_link' href='#3.sentence-1'>.</a></div></div></div></div><div class='para' id='4'><div class='marginalizedparent'><a class='marginalized' href='#4'>4</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L3638'>#</a></div><div class='texpara'><div id='4.sentence-1' class='sentence'><i >Remarks</i>: The expression in the <span class='textsf'><i >requires-clause</i></span> is equivalent to:
<span class='codeblock'><span class='keyword'>requires</span> <span class='curlybracket'>{</span>
get_common_quantity_spec<span class='parenthesis'>(</span>get_quantity_spec<span class='parenthesis'>(</span>u1<span class='parenthesis'>)</span>, get_quantity_spec<span class='parenthesis'>(</span>u2<span class='parenthesis'>)</span>,
get_quantity_spec<span class='parenthesis'>(</span>rest<span class='parenthesis'>)</span><span class='operator'>.</span><span class='operator'>.</span><span class='operator'>.</span><span class='parenthesis'>)</span>;
@ -15,10 +15,10 @@
</span></div></div></div></div><div class='texpara'><div id='lib:reference,get_common_reference'><div id='lib:get_common_reference,reference'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:get_common_reference,reference'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><a href='qty.ref.concepts.html#concept:Reference' title='5.4.5&emsp;Concepts&emsp;[qty.ref.concepts]'><span id='conceptref:Reference'><span class='texttt'>Reference</span></span></a> R1, <a href='qty.ref.concepts.html#concept:Reference' title='5.4.5&emsp;Concepts&emsp;[qty.ref.concepts]'><span id='conceptref:Reference_'><span class='texttt'>Reference</span></span></a> R2, <a href='qty.ref.concepts.html#concept:Reference' title='5.4.5&emsp;Concepts&emsp;[qty.ref.concepts]'><span id='conceptref:Reference__'><span class='texttt'>Reference</span></span></a><span class='operator'>.</span><span class='operator'>.</span><span class='operator'>.</span> Rest<span class='anglebracket'>&gt;</span>
<span class='keyword'>consteval</span> <a href='qty.ref.concepts.html#concept:Reference' title='5.4.5&emsp;Concepts&emsp;[qty.ref.concepts]'><span id='conceptref:Reference___'><span class='texttt'>Reference</span></span></a> <span class='keyword'>auto</span> <span id='lib:get_common_reference_'><a class='hidden_link' href='#lib:get_common_reference' title='5.4.9&emsp;Observers&emsp;[qty.ref.obs]'>get_common_reference</a></span><span class='parenthesis'>(</span>R1 r1, R2 r2, Rest<span class='operator'>.</span><span class='operator'>.</span><span class='operator'>.</span> rest<span class='parenthesis'>)</span>
<span class='keyword'>requires</span> <i ><span class='texttt'>see below</span></i>;
</code></div></div></div></div><div class='para' id='5'><div class='marginalizedparent'><a class='marginalized' href='#5'>5</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L3658'>#</a></div><div class='texpara'><div id='5.sentence-1' class='sentence'><i >Returns</i>: <span class='codeblock'><i >reference-t</i><span class='anglebracket'>&lt;</span>get_common_quantity_spec<span class='parenthesis'>(</span>get_quantity_spec<span class='parenthesis'>(</span>R1<span class='curlybracket'>{</span><span class='curlybracket'>}</span><span class='parenthesis'>)</span>, get_quantity_spec<span class='parenthesis'>(</span>R2<span class='curlybracket'>{</span><span class='curlybracket'>}</span><span class='parenthesis'>)</span>,
</code></div></div></div></div><div class='para' id='5'><div class='marginalizedparent'><a class='marginalized' href='#5'>5</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L3658'>#</a></div><div class='texpara'><div id='5.sentence-1' class='sentence'><i >Returns</i>: <span class='codeblock'><i >reference-t</i><span class='anglebracket'>&lt;</span>get_common_quantity_spec<span class='parenthesis'>(</span>get_quantity_spec<span class='parenthesis'>(</span>R1<span class='curlybracket'>{</span><span class='curlybracket'>}</span><span class='parenthesis'>)</span>, get_quantity_spec<span class='parenthesis'>(</span>R2<span class='curlybracket'>{</span><span class='curlybracket'>}</span><span class='parenthesis'>)</span>,
get_quantity_spec<span class='parenthesis'>(</span>rest<span class='parenthesis'>)</span><span class='operator'>.</span><span class='operator'>.</span><span class='operator'>.</span><span class='parenthesis'>)</span>,
get_common_unit<span class='parenthesis'>(</span>get_unit<span class='parenthesis'>(</span>R1<span class='curlybracket'>{</span><span class='curlybracket'>}</span><span class='parenthesis'>)</span>, get_unit<span class='parenthesis'>(</span>R2<span class='curlybracket'>{</span><span class='curlybracket'>}</span><span class='parenthesis'>)</span>, get_unit<span class='parenthesis'>(</span>rest<span class='parenthesis'>)</span><span class='operator'>.</span><span class='operator'>.</span><span class='operator'>.</span><span class='parenthesis'>)</span><span class='anglebracket'>&gt;</span><span class='curlybracket'>{</span><span class='curlybracket'>}</span>;
</span></div></div></div></div><div class='para' id='6'><div class='marginalizedparent'><a class='marginalized' href='#6'>6</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L3666'>#</a></div><div class='texpara'><div id='6.sentence-1' class='sentence'><i >Remarks</i>: The expression in the <span class='textsf'><i >requires-clause</i></span> is equivalent to:
</span></div></div></div></div><div class='para' id='6'><div class='marginalizedparent'><a class='marginalized' href='#6'>6</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L3666'>#</a></div><div class='texpara'><div id='6.sentence-1' class='sentence'><i >Remarks</i>: The expression in the <span class='textsf'><i >requires-clause</i></span> is equivalent to:
<span class='codeblock'><span class='keyword'>requires</span> <span class='curlybracket'>{</span>
get_common_quantity_spec<span class='parenthesis'>(</span>get_quantity_spec<span class='parenthesis'>(</span>r1<span class='parenthesis'>)</span>, get_quantity_spec<span class='parenthesis'>(</span>r2<span class='parenthesis'>)</span>,
get_quantity_spec<span class='parenthesis'>(</span>rest<span class='parenthesis'>)</span><span class='operator'>.</span><span class='operator'>.</span><span class='operator'>.</span><span class='parenthesis'>)</span>;

View File

@ -1,20 +1,20 @@
<!DOCTYPE html><html lang='en'><head><title>[qty.ref.ops]</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#ops'>[qty.ref]</a></h2><h3 ><a class='secnum' style='min-width:80pt'>5.4.7</a> Operations <a class='abbr_ref'>[qty.ref.ops]</a></h3><div class='para' id='1'><div class='marginalizedparent'><a class='marginalized' href='#1'>1</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L3450'>#</a></div><div class='texpara'><div id='1.sentence-1' class='sentence'>Each member function with a <span class='textsf'><i >trailing-return-type</i></span>
<!DOCTYPE html><html lang='en'><head><title>[qty.ref.ops]</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#ops'>[qty.ref]</a></h2><h3 ><a class='secnum' style='min-width:80pt'>5.4.7</a> Operations <a class='abbr_ref'>[qty.ref.ops]</a></h3><div class='para' id='1'><div class='marginalizedparent'><a class='marginalized' href='#1'>1</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L3450'>#</a></div><div class='texpara'><div id='1.sentence-1' class='sentence'>Each member function with a <span class='textsf'><i >trailing-return-type</i></span>
of <span class='texttt'><span class='operator'>-</span><span class='anglebracket'>&gt;</span> <span class='texttt'><i >reference-t</i></span><span class='anglebracket'>&lt;</span>T<span class='operator'>.</span><span class='operator'>.</span><span class='operator'>.</span><span class='anglebracket'>&gt;</span></span>
returns <span class='texttt'><span class='curlybracket'>{</span><span class='curlybracket'>}</span></span><a class='hidden_link' href='#1.sentence-1'>.</a></div></div></div><div class='texpara'><div id='lib:Reference,operator*'><div id='lib:operator*,Reference'><div id='lib:Representation,operator*'><div id='lib:operator*,Representation'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:operator*,Representation'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><span class='keyword'>typename</span> FwdRep, <a href='qty.ref.concepts.html#concept:Reference' title='5.4.5&emsp;Concepts&emsp;[qty.ref.concepts]'><span id='conceptref:Reference'><span class='texttt'>Reference</span></span></a> R,
<a href='qty.rep.concepts.html#concept:RepresentationOf' title='5.5.4&emsp;Concepts&emsp;[qty.rep.concepts]'><span id='conceptref:RepresentationOf'><span class='texttt'>RepresentationOf</span></span></a><span class='anglebracket'>&lt;</span>get_quantity_spec<span class='parenthesis'>(</span>R<span class='curlybracket'>{</span><span class='curlybracket'>}</span><span class='parenthesis'>)</span><span class='anglebracket'>&gt;</span> Rep <span class='operator'>=</span> std<span class='operator'>::</span>remove_cvref_t<span class='anglebracket'>&lt;</span>FwdRep<span class='anglebracket'>&gt;</span><span class='anglebracket'>&gt;</span>
<span class='keyword'>requires</span><span class='parenthesis'>(</span><span class='operator'>!</span><a class='index' id='conceptref:OffsetUnit'></a><span class='texttt'><i >OffsetUnit</i></span><span class='anglebracket'>&lt;</span><span class='keyword'>decltype</span><span class='parenthesis'>(</span>get_unit<span class='parenthesis'>(</span>R<span class='curlybracket'>{</span><span class='curlybracket'>}</span><span class='parenthesis'>)</span><span class='parenthesis'>)</span><span class='anglebracket'>&gt;</span><span class='parenthesis'>)</span>
<span class='keyword'>constexpr</span> quantity<span class='anglebracket'>&lt;</span>R<span class='curlybracket'>{</span><span class='curlybracket'>}</span>, Rep<span class='anglebracket'>&gt;</span> <span class='keyword'>operator</span><span class='operator'>*</span><span class='parenthesis'>(</span>FwdRep<span class='operator'>&amp;</span><span class='operator'>&amp;</span> lhs, R r<span class='parenthesis'>)</span>;
</code></div></div></div></div></div></div><div class='para' id='2'><div class='marginalizedparent'><a class='marginalized' href='#2'>2</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L3465'>#</a></div><div class='texpara'><div id='2.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
</code></div></div></div></div></div></div><div class='para' id='2'><div class='marginalizedparent'><a class='marginalized' href='#2'>2</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L3465'>#</a></div><div class='texpara'><div id='2.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
<span class='texttt'><span class='keyword'>return</span> quantity<span class='curlybracket'>{</span>std<span class='operator'>&#x200b;::&#x200b;</span>forward<span class='anglebracket'>&lt;</span>FwdRep<span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span>lhs<span class='parenthesis'>)</span>, r<span class='curlybracket'>}</span>;</span></div></div></div></div><div class='texpara'><div id='lib:Reference,operator*_'><div id='lib:operator*,Reference_'><div id='lib:Representation,operator*_'><div id='lib:operator*,Representation_'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:operator*,Representation_'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><span class='keyword'>typename</span> FwdRep, <a href='qty.ref.concepts.html#concept:Reference' title='5.4.5&emsp;Concepts&emsp;[qty.ref.concepts]'><span id='conceptref:Reference_'><span class='texttt'>Reference</span></span></a> R,
<a href='qty.rep.concepts.html#concept:RepresentationOf' title='5.5.4&emsp;Concepts&emsp;[qty.rep.concepts]'><span id='conceptref:RepresentationOf_'><span class='texttt'>RepresentationOf</span></span></a><span class='anglebracket'>&lt;</span>get_quantity_spec<span class='parenthesis'>(</span>R<span class='curlybracket'>{</span><span class='curlybracket'>}</span><span class='parenthesis'>)</span><span class='anglebracket'>&gt;</span> Rep <span class='operator'>=</span> std<span class='operator'>::</span>remove_cvref_t<span class='anglebracket'>&lt;</span>FwdRep<span class='anglebracket'>&gt;</span><span class='anglebracket'>&gt;</span>
<span class='keyword'>requires</span><span class='parenthesis'>(</span><span class='operator'>!</span><a class='index' id='conceptref:OffsetUnit_'></a><span class='texttt'><i >OffsetUnit</i></span><span class='anglebracket'>&lt;</span><span class='keyword'>decltype</span><span class='parenthesis'>(</span>get_unit<span class='parenthesis'>(</span>R<span class='curlybracket'>{</span><span class='curlybracket'>}</span><span class='parenthesis'>)</span><span class='parenthesis'>)</span><span class='anglebracket'>&gt;</span><span class='parenthesis'>)</span>
<span class='keyword'>constexpr</span> <a href='qty.syn.html#concept:Quantity' title='5.6.3&emsp;Class template quantity&emsp;[qty.syn]'><span id='conceptref:Quantity'><span class='texttt'>Quantity</span></span></a> <span class='keyword'>auto</span> <span class='keyword'>operator</span><span class='operator'>/</span><span class='parenthesis'>(</span>FwdRep<span class='operator'>&amp;</span><span class='operator'>&amp;</span> lhs, R<span class='parenthesis'>)</span>;
</code></div></div></div></div></div></div><div class='para' id='3'><div class='marginalizedparent'><a class='marginalized' href='#3'>3</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L3481'>#</a></div><div class='texpara'><div id='3.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
</code></div></div></div></div></div></div><div class='para' id='3'><div class='marginalizedparent'><a class='marginalized' href='#3'>3</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L3481'>#</a></div><div class='texpara'><div id='3.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
<span class='texttt'><span class='keyword'>return</span> quantity<span class='curlybracket'>{</span>std<span class='operator'>&#x200b;::&#x200b;</span>forward<span class='anglebracket'>&lt;</span>FwdRep<span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span>lhs<span class='parenthesis'>)</span>, inverse<span class='parenthesis'>(</span>R<span class='curlybracket'>{</span><span class='curlybracket'>}</span><span class='parenthesis'>)</span><span class='curlybracket'>}</span>;</span></div></div></div></div><div class='texpara'><div id='lib:Reference,operator/'><div id='lib:operator/,Reference'><div id='lib:quantity,operator/'><div id='lib:operator/,quantity'><div id='lib:Reference,operator*__'><div id='lib:operator*,Reference__'><div id='lib:quantity,operator*'><div id='lib:operator*,quantity'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:operator*,quantity'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><span class='keyword'>typename</span> FwdQ, <a href='qty.ref.concepts.html#concept:Reference' title='5.4.5&emsp;Concepts&emsp;[qty.ref.concepts]'><span id='conceptref:Reference__'><span class='texttt'>Reference</span></span></a> R, <a href='qty.syn.html#concept:Quantity' title='5.6.3&emsp;Class template quantity&emsp;[qty.syn]'><span id='conceptref:Quantity_'><span class='texttt'>Quantity</span></span></a> Q <span class='operator'>=</span> std<span class='operator'>::</span>remove_cvref_t<span class='anglebracket'>&lt;</span>FwdQ<span class='anglebracket'>&gt;</span><span class='anglebracket'>&gt;</span>
<span class='keyword'>constexpr</span> <a href='qty.syn.html#concept:Quantity' title='5.6.3&emsp;Class template quantity&emsp;[qty.syn]'><span id='conceptref:Quantity__'><span class='texttt'>Quantity</span></span></a> <span class='keyword'>auto</span> <span class='keyword'>operator</span><span class='operator'>*</span><span class='parenthesis'>(</span>FwdQ<span class='operator'>&amp;</span><span class='operator'>&amp;</span> q, R<span class='parenthesis'>)</span>;
<span class='keyword'>template</span><span class='anglebracket'>&lt;</span><span class='keyword'>typename</span> FwdQ, <a href='qty.ref.concepts.html#concept:Reference' title='5.4.5&emsp;Concepts&emsp;[qty.ref.concepts]'><span id='conceptref:Reference___'><span class='texttt'>Reference</span></span></a> R, <a href='qty.syn.html#concept:Quantity' title='5.6.3&emsp;Class template quantity&emsp;[qty.syn]'><span id='conceptref:Quantity___'><span class='texttt'>Quantity</span></span></a> Q <span class='operator'>=</span> std<span class='operator'>::</span>remove_cvref_t<span class='anglebracket'>&lt;</span>FwdQ<span class='anglebracket'>&gt;</span><span class='anglebracket'>&gt;</span>
<span class='keyword'>constexpr</span> <a href='qty.syn.html#concept:Quantity' title='5.6.3&emsp;Class template quantity&emsp;[qty.syn]'><span id='conceptref:Quantity____'><span class='texttt'>Quantity</span></span></a> <span class='keyword'>auto</span> <span class='keyword'>operator</span><span class='operator'>/</span><span class='parenthesis'>(</span>FwdQ<span class='operator'>&amp;</span><span class='operator'>&amp;</span> q, R<span class='parenthesis'>)</span>;
</code></div></div></div></div></div></div></div></div></div></div><div class='para' id='4'><div class='marginalizedparent'><a class='marginalized' href='#4'>4</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L3499'>#</a></div><div class='texpara'><div id='4.sentence-1' class='sentence'>Let <span class='texttt'>@</span> be the <span class='textsf'><i >operator</i></span><a class='hidden_link' href='#4.sentence-1'>.</a></div></div></div></div><div class='para' id='5'><div class='marginalizedparent'><a class='marginalized' href='#5'>5</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L3502'>#</a></div><div class='texpara'><div id='5.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
</code></div></div></div></div></div></div></div></div></div></div><div class='para' id='4'><div class='marginalizedparent'><a class='marginalized' href='#4'>4</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L3499'>#</a></div><div class='texpara'><div id='4.sentence-1' class='sentence'>Let <span class='texttt'>@</span> be the <span class='textsf'><i >operator</i></span><a class='hidden_link' href='#4.sentence-1'>.</a></div></div></div></div><div class='para' id='5'><div class='marginalizedparent'><a class='marginalized' href='#5'>5</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L3502'>#</a></div><div class='texpara'><div id='5.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
<span class='codeblock'><span class='keyword'>return</span> quantity<span class='curlybracket'>{</span>std<span class='operator'>::</span>forward<span class='anglebracket'>&lt;</span>FwdQ<span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span>q<span class='parenthesis'>)</span><span class='operator'>.</span><i >numerical-value</i>, Q<span class='operator'>::</span>reference @ R<span class='curlybracket'>{</span><span class='curlybracket'>}</span><span class='curlybracket'>}</span>;
</span></div></div></div></div><div class='texpara'><div class='itemdecl' id='itemdecl:4'><div class='marginalizedparent'><a class='itemDeclLink' href='#itemdecl:4'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><a href='qty.ref.concepts.html#concept:Reference' title='5.4.5&emsp;Concepts&emsp;[qty.ref.concepts]'><span id='conceptref:Reference____'><span class='texttt'>Reference</span></span></a> R, <span class='keyword'>typename</span> Rep<span class='anglebracket'>&gt;</span>
<span class='keyword'>requires</span> <a href='qty.rep.concepts.html#concept:RepresentationOf' title='5.5.4&emsp;Concepts&emsp;[qty.rep.concepts]'><span id='conceptref:RepresentationOf__'><span class='texttt'>RepresentationOf</span></span></a><span class='anglebracket'>&lt;</span>std<span class='operator'>::</span>remove_cvref_t<span class='anglebracket'>&lt;</span>Rep<span class='anglebracket'>&gt;</span>, get_quantity_spec<span class='parenthesis'>(</span>R<span class='curlybracket'>{</span><span class='curlybracket'>}</span><span class='parenthesis'>)</span><span class='anglebracket'>&gt;</span>
@ -31,4 +31,4 @@ returns <span class='texttt'><span class='curlybracket'>{</span><span class='cur
<span class='keyword'>template</span><span class='anglebracket'>&lt;</span><a href='qty.ref.concepts.html#concept:Reference' title='5.4.5&emsp;Concepts&emsp;[qty.ref.concepts]'><span id='conceptref:Reference_______'><span class='texttt'>Reference</span></span></a> R, <span class='keyword'>typename</span> Q<span class='anglebracket'>&gt;</span>
<span class='keyword'>requires</span> <a href='qty.syn.html#concept:Quantity' title='5.6.3&emsp;Class template quantity&emsp;[qty.syn]'><span id='conceptref:Quantity______'><span class='texttt'>Quantity</span></span></a><span class='anglebracket'>&lt;</span>std<span class='operator'>::</span>remove_cvref_t<span class='anglebracket'>&lt;</span>Q<span class='anglebracket'>&gt;</span><span class='anglebracket'>&gt;</span>
<span class='keyword'>constexpr</span> <span class='keyword'>auto</span> <span class='keyword'>operator</span><span class='operator'>/</span><span class='parenthesis'>(</span>R, Q<span class='operator'>&amp;</span><span class='operator'>&amp;</span><span class='parenthesis'>)</span> <span class='operator'>=</span> <span class='keyword'>delete</span>;
</code></div></div><div class='para' id='6'><div class='marginalizedparent'><a class='marginalized' href='#6'>6</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L3529'>#</a></div><div class='texpara'><div id='6.sentence-1' class='sentence'><i >Recommended practice</i>: Suggest swapping the operands<a class='hidden_link' href='#6.sentence-1'>.</a></div></div></div></div></div></body></html>
</code></div></div><div class='para' id='6'><div class='marginalizedparent'><a class='marginalized' href='#6'>6</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L3529'>#</a></div><div class='texpara'><div id='6.sentence-1' class='sentence'><i >Recommended practice</i>: Suggest swapping the operands<a class='hidden_link' href='#6.sentence-1'>.</a></div></div></div></div></div></body></html>

View File

@ -58,7 +58,7 @@
<span class='curlybracket'>}</span>;
<span class='curlybracket'>}</span>
</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></div><div class='para' id='1'><div class='marginalizedparent'><a class='marginalized' href='#1'>1</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L3431'>#</a></div><div class='texpara'><div id='1.sentence-1' class='sentence'><span class='texttt'>reference<span class='anglebracket'>&lt;</span>Q, U<span class='anglebracket'>&gt;</span></span> represents the reference of a quantity (<a href="https://www.electropedia.org/iev/iev.nsf/display?openform&ievref=112-01-01">IEC 60050, 112-01-01</a>)<a class='hidden_link' href='#1.sentence-1'>.</a></div> <div id='1.sentence-2' class='sentence'>The unit of measurement <span class='texttt'>U</span> (<a href="https://www.electropedia.org/iev/iev.nsf/display?openform&ievref=112-01-14">IEC 60050, 112-01-14</a>)
</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></div><div class='para' id='1'><div class='marginalizedparent'><a class='marginalized' href='#1'>1</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L3431'>#</a></div><div class='texpara'><div id='1.sentence-1' class='sentence'><span class='texttt'>reference<span class='anglebracket'>&lt;</span>Q, U<span class='anglebracket'>&gt;</span></span> represents the reference of a quantity (<a href="https://www.electropedia.org/iev/iev.nsf/display?openform&ievref=112-01-01">IEC 60050, 112-01-01</a>)<a class='hidden_link' href='#1.sentence-1'>.</a></div> <div id='1.sentence-2' class='sentence'>The unit of measurement <span class='texttt'>U</span> (<a href="https://www.electropedia.org/iev/iev.nsf/display?openform&ievref=112-01-14">IEC 60050, 112-01-14</a>)
is used to measure a value of the quantity <span class='texttt'>Q</span> (<a href="https://www.electropedia.org/iev/iev.nsf/display?openform&ievref=112-01-28">IEC 60050, 112-01-28</a>)<a class='hidden_link' href='#1.sentence-2'>.</a></div> <div id='note-1' class='note'><div class='texpara'>[<i>Note&nbsp;<a href='#note-1'>1</a></i>:&ensp;<div id='1.sentence-3' class='sentence'><span class='texttt'>reference</span> is typically implicitly instantiated
when specifying that a unit measures a more specific quantity<a class='hidden_link' href='#1.sentence-3'>.</a></div> <div id='example-1' class='example'><div class='texpara'>[<i>Example&nbsp;<a href='#example-1'>1</a></i>:&ensp;<span class='codeblock'><span class='keyword'>using</span> <span class='keyword'>namespace</span> si<span class='operator'>::</span>unit_symbols;
<span class='keyword'>auto</span> x <span class='operator'>=</span> <span class='literal'>1</span> <span class='operator'>*</span> m; <span class='comment'>// measures a length</span>

View File

@ -9,8 +9,8 @@
<span class='curlybracket'>}</span>;
<span class='curlybracket'>}</span>
</span></div><div class='para' id='1'><div class='marginalizedparent'><a class='marginalized' href='#1'>1</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L5513'>#</a></div><div class='texpara'><div id='1.sentence-1' class='sentence'>A <a class='hidden_link' href='#def:origin,relative' title='5.7.2.3.2&emsp;Relative&emsp;[qty.rel.pt.orig]'><span id='def:origin,relative'><i >relative origin</i></span></a> is an origin
of a subspace (<a href="https://www.electropedia.org/iev/iev.nsf/display?openform&ievref=102-03-03">IEC 60050, 102-03-03</a>)<a class='hidden_link' href='#1.sentence-1'>.</a></div> <div id='1.sentence-2' class='sentence'>A specialization of <span class='texttt'>relative_<span class='shy'></span>point_<span class='shy'></span>origin</span> is used as a base type when defining a relative origin <i >O</i><a class='hidden_link' href='#1.sentence-2'>.</a></div> <div id='1.sentence-3' class='sentence'><i >O</i> is offset from <span class='texttt'>QP<span class='operator'>.</span>absolute_<span class='shy'></span>point_<span class='shy'></span>origin</span> by <span class='texttt'>QP<span class='operator'>.</span>quantity_<span class='shy'></span>from_<span class='shy'></span>zero<span class='parenthesis'>(</span><span class='parenthesis'>)</span></span><a class='hidden_link' href='#1.sentence-3'>.</a></div></div></div><div class='para' id='2'><div class='marginalizedparent'><a class='marginalized' href='#2'>2</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L5519'>#</a></div><div class='texpara'><div id='2.sentence-1' class='sentence'>The member <span class='texttt'><i >quantity-spec</i></span> is equal to
</span></div><div class='para' id='1'><div class='marginalizedparent'><a class='marginalized' href='#1'>1</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L5513'>#</a></div><div class='texpara'><div id='1.sentence-1' class='sentence'>A <a class='hidden_link' href='#def:origin,relative' title='5.7.2.3.2&emsp;Relative&emsp;[qty.rel.pt.orig]'><span id='def:origin,relative'><i >relative origin</i></span></a> is an origin
of a subspace (<a href="https://www.electropedia.org/iev/iev.nsf/display?openform&ievref=102-03-03">IEC 60050, 102-03-03</a>)<a class='hidden_link' href='#1.sentence-1'>.</a></div> <div id='1.sentence-2' class='sentence'>A specialization of <span class='texttt'>relative_<span class='shy'></span>point_<span class='shy'></span>origin</span> is used as a base type when defining a relative origin <i >O</i><a class='hidden_link' href='#1.sentence-2'>.</a></div> <div id='1.sentence-3' class='sentence'><i >O</i> is offset from <span class='texttt'>QP<span class='operator'>.</span>absolute_<span class='shy'></span>point_<span class='shy'></span>origin</span> by <span class='texttt'>QP<span class='operator'>.</span>quantity_<span class='shy'></span>from_<span class='shy'></span>zero<span class='parenthesis'>(</span><span class='parenthesis'>)</span></span><a class='hidden_link' href='#1.sentence-3'>.</a></div></div></div><div class='para' id='2'><div class='marginalizedparent'><a class='marginalized' href='#2'>2</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L5519'>#</a></div><div class='texpara'><div id='2.sentence-1' class='sentence'>The member <span class='texttt'><i >quantity-spec</i></span> is equal to
<span class='texttt'>QP<span class='operator'>.</span>point_<span class='shy'></span>origin<span class='operator'>.</span><span class='texttt'><i >quantity-spec</i></span></span> if
<span class='codeblock'><a class='index' id='conceptref:QuantityKindSpec'></a><i >QuantityKindSpec</i><span class='anglebracket'>&lt;</span><span class='keyword'>decltype</span><span class='parenthesis'>(</span><span class='keyword'>auto</span><span class='parenthesis'>(</span>QP<span class='operator'>.</span><i >quantity-spec</i><span class='parenthesis'>)</span><span class='parenthesis'>)</span><span class='anglebracket'>&gt;</span>
</span>

View File

@ -10,7 +10,7 @@
<span class='curlybracket'>{</span> a <span class='operator'>*</span> b <span class='curlybracket'>}</span> <span class='operator'>-</span><span class='anglebracket'>&gt;</span> std<span class='operator'>::</span>common_with<span class='anglebracket'>&lt;</span>T<span class='anglebracket'>&gt;</span>;
<span class='curlybracket'>{</span> a <span class='operator'>/</span> b <span class='curlybracket'>}</span> <span class='operator'>-</span><span class='anglebracket'>&gt;</span> std<span class='operator'>::</span>common_with<span class='anglebracket'>&lt;</span>T<span class='anglebracket'>&gt;</span>;
<span class='curlybracket'>}</span>;
</code></div></div><div class='para' id='1'><div class='marginalizedparent'><a class='marginalized' href='#1'>1</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L3932'>#</a></div><div class='texpara'><div id='1.sentence-1' class='sentence'>TBD<a class='hidden_link' href='#1.sentence-1'>.</a></div></div></div><div class='texpara'><div class='itemdecl' id='concept:Complex'><div class='marginalizedparent'><a class='itemDeclLink' href='#concept:Complex'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><span class='keyword'>typename</span> T<span class='anglebracket'>&gt;</span>
</code></div></div><div class='para' id='1'><div class='marginalizedparent'><a class='marginalized' href='#1'>1</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L3932'>#</a></div><div class='texpara'><div id='1.sentence-1' class='sentence'>TBD<a class='hidden_link' href='#1.sentence-1'>.</a></div></div></div><div class='texpara'><div class='itemdecl' id='concept:Complex'><div class='marginalizedparent'><a class='itemDeclLink' href='#concept:Complex'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><span class='keyword'>typename</span> T<span class='anglebracket'>&gt;</span>
<span class='keyword'>using</span> <span class='texttt'><i >value-type-t</i></span> <span class='operator'>=</span> <span class='texttt'><i >actual-value-type-t</i></span><span class='anglebracket'>&lt;</span>T<span class='anglebracket'>&gt;</span>; <span class='comment'>// <i >exposition only</i>, see <a href='qty.fp.traits.html' title='5.5.2.1&emsp;Floating-point'>[qty.<span class='shy'></span>fp.<span class='shy'></span>traits]</a></span>
<span class='keyword'>template</span><span class='anglebracket'>&lt;</span><span class='keyword'>typename</span> T<span class='anglebracket'>&gt;</span>
@ -31,7 +31,7 @@
<span class='operator'>::</span>mp_units<span class='operator'>::</span>imag<span class='parenthesis'>(</span>a<span class='parenthesis'>)</span>;
<span class='operator'>::</span>mp_units<span class='operator'>::</span>modulus<span class='parenthesis'>(</span>a<span class='parenthesis'>)</span>;
<span class='curlybracket'>}</span>;
</code></div></div><div class='para' id='2'><div class='marginalizedparent'><a class='marginalized' href='#2'>2</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L3959'>#</a></div><div class='texpara'><div id='2.sentence-1' class='sentence'>TBD<a class='hidden_link' href='#2.sentence-1'>.</a></div></div></div><div class='texpara'><div class='itemdecl' id='concept:Vector'><div class='marginalizedparent'><a class='itemDeclLink' href='#concept:Vector'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><span class='keyword'>typename</span> T<span class='anglebracket'>&gt;</span>
</code></div></div><div class='para' id='2'><div class='marginalizedparent'><a class='marginalized' href='#2'>2</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L3959'>#</a></div><div class='texpara'><div id='2.sentence-1' class='sentence'>TBD<a class='hidden_link' href='#2.sentence-1'>.</a></div></div></div><div class='texpara'><div class='itemdecl' id='concept:Vector'><div class='marginalizedparent'><a class='itemDeclLink' href='#concept:Vector'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><span class='keyword'>typename</span> T<span class='anglebracket'>&gt;</span>
<span class='keyword'>concept</span> <span class='texttt'><i >Vector</i></span><a class='index' id='concept:Vector'></a> <span class='operator'>=</span> <span class='comment'>// <i >exposition only</i></span>
<span class='parenthesis'>(</span><span class='operator'>!</span>disable_vector<span class='anglebracket'>&lt;</span>T<span class='anglebracket'>&gt;</span><span class='parenthesis'>)</span> <span class='operator'>&amp;</span><span class='operator'>&amp;</span> <a class='index' id='conceptref:WeaklyRegular__'></a><span class='texttt'><i >WeaklyRegular</i></span><span class='anglebracket'>&lt;</span>T<span class='anglebracket'>&gt;</span> <span class='operator'>&amp;</span><span class='operator'>&amp;</span> <a class='index' id='conceptref:Scalar_'></a><span class='texttt'><i >Scalar</i></span><span class='anglebracket'>&lt;</span><span class='texttt'><i >value-type-t</i></span><span class='anglebracket'>&lt;</span>T<span class='anglebracket'>&gt;</span><span class='anglebracket'>&gt;</span> <span class='operator'>&amp;</span><span class='operator'>&amp;</span>
<span class='keyword'>requires</span><span class='parenthesis'>(</span>T a, T b, <span class='texttt'><i >value-type-t</i></span><span class='anglebracket'>&lt;</span>T<span class='anglebracket'>&gt;</span> s<span class='parenthesis'>)</span> <span class='curlybracket'>{</span>
@ -44,7 +44,7 @@
<span class='curlybracket'>{</span> a <span class='operator'>/</span> s <span class='curlybracket'>}</span> <span class='operator'>-</span><span class='anglebracket'>&gt;</span> std<span class='operator'>::</span>common_with<span class='anglebracket'>&lt;</span>T<span class='anglebracket'>&gt;</span>;
<span class='operator'>::</span>mp_units<span class='operator'>::</span>magnitude<span class='parenthesis'>(</span>a<span class='parenthesis'>)</span>;
<span class='curlybracket'>}</span>;
</code></div></div><div class='para' id='3'><div class='marginalizedparent'><a class='marginalized' href='#3'>3</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L3978'>#</a></div><div class='texpara'><div id='3.sentence-1' class='sentence'>TBD<a class='hidden_link' href='#3.sentence-1'>.</a></div></div></div><div class='texpara'><div class='itemdecl' id='concept:ScalarRepresentation'><div class='marginalizedparent'><a class='itemDeclLink' href='#concept:ScalarRepresentation'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><span class='keyword'>typename</span> T<span class='anglebracket'>&gt;</span>
</code></div></div><div class='para' id='3'><div class='marginalizedparent'><a class='marginalized' href='#3'>3</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L3978'>#</a></div><div class='texpara'><div id='3.sentence-1' class='sentence'>TBD<a class='hidden_link' href='#3.sentence-1'>.</a></div></div></div><div class='texpara'><div class='itemdecl' id='concept:ScalarRepresentation'><div class='marginalizedparent'><a class='itemDeclLink' href='#concept:ScalarRepresentation'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><span class='keyword'>typename</span> T<span class='anglebracket'>&gt;</span>
<span class='keyword'>using</span> <span class='texttt'><i >scaling-factor-type-t</i></span> <span class='operator'>=</span> <span class='comment'>// <i >exposition only</i></span>
std<span class='operator'>::</span>conditional_t<span class='anglebracket'>&lt;</span>treat_as_floating_point<span class='anglebracket'>&lt;</span>T<span class='anglebracket'>&gt;</span>, <span class='keyword'>long</span> <span class='keyword'>double</span>, std<span class='operator'>::</span>intmax_t<span class='anglebracket'>&gt;</span>;
@ -57,7 +57,7 @@
<span class='curlybracket'>{</span> f <span class='operator'>*</span> a <span class='curlybracket'>}</span> <span class='operator'>-</span><span class='anglebracket'>&gt;</span> std<span class='operator'>::</span>common_with<span class='anglebracket'>&lt;</span>T<span class='anglebracket'>&gt;</span>;
<span class='curlybracket'>{</span> a <span class='operator'>/</span> f <span class='curlybracket'>}</span> <span class='operator'>-</span><span class='anglebracket'>&gt;</span> std<span class='operator'>::</span>common_with<span class='anglebracket'>&lt;</span>T<span class='anglebracket'>&gt;</span>;
<span class='curlybracket'>}</span>;
</code></div></div><div class='para' id='4'><div class='marginalizedparent'><a class='marginalized' href='#4'>4</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L3997'>#</a></div><div class='texpara'><div id='4.sentence-1' class='sentence'>TBD<a class='hidden_link' href='#4.sentence-1'>.</a></div></div></div><div class='texpara'><div class='itemdecl' id='concept:ComplexRepresentation'><div class='marginalizedparent'><a class='itemDeclLink' href='#concept:ComplexRepresentation'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><span class='keyword'>typename</span> T<span class='anglebracket'>&gt;</span>
</code></div></div><div class='para' id='4'><div class='marginalizedparent'><a class='marginalized' href='#4'>4</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L3997'>#</a></div><div class='texpara'><div id='4.sentence-1' class='sentence'>TBD<a class='hidden_link' href='#4.sentence-1'>.</a></div></div></div><div class='texpara'><div class='itemdecl' id='concept:ComplexRepresentation'><div class='marginalizedparent'><a class='itemDeclLink' href='#concept:ComplexRepresentation'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><span class='keyword'>typename</span> T<span class='anglebracket'>&gt;</span>
<span class='keyword'>concept</span> <span class='texttt'><i >ComplexRepresentation</i></span><a class='index' id='concept:ComplexRepresentation'></a> <span class='operator'>=</span> <span class='comment'>// <i >exposition only</i></span>
<span class='parenthesis'>(</span><span class='operator'>!</span><span class='texttt'><i >is-specialization-of</i></span><span class='anglebracket'>&lt;</span>T, quantity<span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span><span class='parenthesis'>)</span><span class='parenthesis'>)</span> <span class='operator'>&amp;</span><span class='operator'>&amp;</span> <a class='index' id='conceptref:Complex'></a><span class='texttt'><i >Complex</i></span><span class='anglebracket'>&lt;</span>T<span class='anglebracket'>&gt;</span> <span class='operator'>&amp;</span><span class='operator'>&amp;</span>
<span class='keyword'>requires</span><span class='parenthesis'>(</span>T a, T b, <span class='texttt'><i >scaling-factor-type-t</i></span><span class='anglebracket'>&lt;</span>T<span class='anglebracket'>&gt;</span> f<span class='parenthesis'>)</span> <span class='curlybracket'>{</span>
@ -66,13 +66,13 @@
<span class='curlybracket'>{</span> T<span class='parenthesis'>(</span>f<span class='parenthesis'>)</span> <span class='operator'>*</span> a <span class='curlybracket'>}</span> <span class='operator'>-</span><span class='anglebracket'>&gt;</span> std<span class='operator'>::</span>common_with<span class='anglebracket'>&lt;</span>T<span class='anglebracket'>&gt;</span>;
<span class='curlybracket'>{</span> a <span class='operator'>/</span> T<span class='parenthesis'>(</span>f<span class='parenthesis'>)</span> <span class='curlybracket'>}</span> <span class='operator'>-</span><span class='anglebracket'>&gt;</span> std<span class='operator'>::</span>common_with<span class='anglebracket'>&lt;</span>T<span class='anglebracket'>&gt;</span>;
<span class='curlybracket'>}</span>;
</code></div></div><div class='para' id='5'><div class='marginalizedparent'><a class='marginalized' href='#5'>5</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L4012'>#</a></div><div class='texpara'><div id='5.sentence-1' class='sentence'>TBD<a class='hidden_link' href='#5.sentence-1'>.</a></div></div></div><div class='texpara'><div class='itemdecl' id='concept:VectorRepresentation'><div class='marginalizedparent'><a class='itemDeclLink' href='#concept:VectorRepresentation'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><span class='keyword'>typename</span> T<span class='anglebracket'>&gt;</span>
</code></div></div><div class='para' id='5'><div class='marginalizedparent'><a class='marginalized' href='#5'>5</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L4012'>#</a></div><div class='texpara'><div id='5.sentence-1' class='sentence'>TBD<a class='hidden_link' href='#5.sentence-1'>.</a></div></div></div><div class='texpara'><div class='itemdecl' id='concept:VectorRepresentation'><div class='marginalizedparent'><a class='itemDeclLink' href='#concept:VectorRepresentation'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><span class='keyword'>typename</span> T<span class='anglebracket'>&gt;</span>
<span class='keyword'>concept</span> <span class='texttt'><i >VectorRepresentation</i></span><a class='index' id='concept:VectorRepresentation'></a> <span class='operator'>=</span> <span class='comment'>// <i >exposition only</i></span>
<span class='parenthesis'>(</span><span class='operator'>!</span><span class='texttt'><i >is-specialization-of</i></span><span class='anglebracket'>&lt;</span>T, quantity<span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span><span class='parenthesis'>)</span><span class='parenthesis'>)</span> <span class='operator'>&amp;</span><span class='operator'>&amp;</span> <a class='index' id='conceptref:Vector'></a><span class='texttt'><i >Vector</i></span><span class='anglebracket'>&lt;</span>T<span class='anglebracket'>&gt;</span>;
</code></div></div><div class='para' id='6'><div class='marginalizedparent'><a class='marginalized' href='#6'>6</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L4021'>#</a></div><div class='texpara'><div id='6.sentence-1' class='sentence'>TBD<a class='hidden_link' href='#6.sentence-1'>.</a></div></div></div><div class='texpara'><div class='itemdecl' id='concept:Representation'><div class='marginalizedparent'><a class='itemDeclLink' href='#concept:Representation'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><span class='keyword'>typename</span> T<span class='anglebracket'>&gt;</span>
</code></div></div><div class='para' id='6'><div class='marginalizedparent'><a class='marginalized' href='#6'>6</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L4021'>#</a></div><div class='texpara'><div id='6.sentence-1' class='sentence'>TBD<a class='hidden_link' href='#6.sentence-1'>.</a></div></div></div><div class='texpara'><div class='itemdecl' id='concept:Representation'><div class='marginalizedparent'><a class='itemDeclLink' href='#concept:Representation'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><span class='keyword'>typename</span> T<span class='anglebracket'>&gt;</span>
<span class='keyword'>concept</span> <a class='hidden_link' href='#concept:Representation' title='5.5.4&emsp;Concepts&emsp;[qty.rep.concepts]'><span id='concept:Representation'><span id='lib:Representation'><span class='texttt'>Representation</span></span></span></a> <span class='operator'>=</span> <a class='index' id='conceptref:ScalarRepresentation'></a><span class='texttt'><i >ScalarRepresentation</i></span><span class='anglebracket'>&lt;</span>T<span class='anglebracket'>&gt;</span> <span class='operator'>|</span><span class='operator'>|</span> <a class='index' id='conceptref:ComplexRepresentation'></a><span class='texttt'><i >ComplexRepresentation</i></span><span class='anglebracket'>&lt;</span>T<span class='anglebracket'>&gt;</span> <span class='operator'>|</span><span class='operator'>|</span>
<a class='index' id='conceptref:VectorRepresentation'></a><span class='texttt'><i >VectorRepresentation</i></span><span class='anglebracket'>&lt;</span>T<span class='anglebracket'>&gt;</span>;
</code></div></div><div class='para' id='7'><div class='marginalizedparent'><a class='marginalized' href='#7'>7</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L4030'>#</a></div><div class='texpara'><div id='7.sentence-1' class='sentence'>A type <span class='texttt'>T</span> models <a href='#concept:Representation' title='5.5.4&emsp;Concepts&emsp;[qty.rep.concepts]'><span id='conceptref:Representation'><span class='texttt'>Representation</span></span></a> if
</code></div></div><div class='para' id='7'><div class='marginalizedparent'><a class='marginalized' href='#7'>7</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L4030'>#</a></div><div class='texpara'><div id='7.sentence-1' class='sentence'>A type <span class='texttt'>T</span> models <a href='#concept:Representation' title='5.5.4&emsp;Concepts&emsp;[qty.rep.concepts]'><span id='conceptref:Representation'><span class='texttt'>Representation</span></span></a> if
it represents the numerical value of a quantity (<a href="https://www.electropedia.org/iev/iev.nsf/display?openform&ievref=112-01-29">IEC 60050, 112-01-29</a>)<a class='hidden_link' href='#7.sentence-1'>.</a></div></div></div><div class='texpara'><div class='itemdecl' id='itemdecl:8'><div class='marginalizedparent'><a class='itemDeclLink' href='#itemdecl:8'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><span class='keyword'>typename</span> T, quantity_character Ch<span class='anglebracket'>&gt;</span>
<span class='keyword'>concept</span> <span class='texttt'><i >IsOfCharacter</i></span><a class='index' id='concept:IsOfCharacter'></a> <span class='operator'>=</span> <span class='parenthesis'>(</span>Ch <span class='operator'>=</span><span class='operator'>=</span> quantity_character<span class='operator'>::</span>real_scalar <span class='operator'>&amp;</span><span class='operator'>&amp;</span> <a class='index' id='conceptref:Scalar___'></a><span class='texttt'><i >Scalar</i></span><span class='anglebracket'>&lt;</span>T<span class='anglebracket'>&gt;</span><span class='parenthesis'>)</span> <span class='operator'>|</span><span class='operator'>|</span> <span class='comment'>// <i >exposition only</i></span>
<span class='parenthesis'>(</span>Ch <span class='operator'>=</span><span class='operator'>=</span> quantity_character<span class='operator'>::</span>complex_scalar <span class='operator'>&amp;</span><span class='operator'>&amp;</span> <a class='index' id='conceptref:Complex_'></a><span class='texttt'><i >Complex</i></span><span class='anglebracket'>&lt;</span>T<span class='anglebracket'>&gt;</span><span class='parenthesis'>)</span> <span class='operator'>|</span><span class='operator'>|</span>
@ -83,6 +83,6 @@ it represents the numerical value of a quantity (<a href="https://www.electroped
<a href='#concept:Representation' title='5.5.4&emsp;Concepts&emsp;[qty.rep.concepts]'><span id='conceptref:Representation_'><span class='texttt'>Representation</span></span></a><span class='anglebracket'>&lt;</span>T<span class='anglebracket'>&gt;</span> <span class='operator'>&amp;</span><span class='operator'>&amp;</span> <span class='parenthesis'>(</span><span class='parenthesis'>(</span><a href='qty.spec.concepts.html#concept:QuantitySpec' title='5.4.3.2&emsp;Concepts&emsp;[qty.spec.concepts]'><span id='conceptref:QuantitySpec'><span class='texttt'>QuantitySpec</span></span></a><span class='anglebracket'>&lt;</span><span class='keyword'>decltype</span><span class='parenthesis'>(</span>V<span class='parenthesis'>)</span><span class='anglebracket'>&gt;</span> <span class='operator'>&amp;</span><span class='operator'>&amp;</span>
<span class='parenthesis'>(</span><a class='index' id='conceptref:QuantityKindSpec'></a><span class='texttt'><i >QuantityKindSpec</i></span><span class='anglebracket'>&lt;</span><span class='keyword'>decltype</span><span class='parenthesis'>(</span>V<span class='parenthesis'>)</span><span class='anglebracket'>&gt;</span> <span class='operator'>|</span><span class='operator'>|</span> <a class='index' id='conceptref:IsOfCharacter'></a><span class='texttt'><i >IsOfCharacter</i></span><span class='anglebracket'>&lt;</span>T, V<span class='operator'>.</span>character<span class='anglebracket'>&gt;</span><span class='parenthesis'>)</span><span class='parenthesis'>)</span> <span class='operator'>|</span><span class='operator'>|</span>
<span class='parenthesis'>(</span>std<span class='operator'>::</span>same_as<span class='anglebracket'>&lt;</span>quantity_character, <span class='keyword'>decltype</span><span class='parenthesis'>(</span>V<span class='parenthesis'>)</span><span class='anglebracket'>&gt;</span> <span class='operator'>&amp;</span><span class='operator'>&amp;</span> <a class='index' id='conceptref:IsOfCharacter_'></a><span class='texttt'><i >IsOfCharacter</i></span><span class='anglebracket'>&lt;</span>T, V<span class='anglebracket'>&gt;</span><span class='parenthesis'>)</span><span class='parenthesis'>)</span>;
</code></div></div><div class='para' id='8'><div class='marginalizedparent'><a class='marginalized' href='#8'>8</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L4047'>#</a></div><div class='texpara'><div id='8.sentence-1' class='sentence'>A type <span class='texttt'>T</span> models <span class='texttt'><a href='#concept:RepresentationOf' title='5.5.4&emsp;Concepts&emsp;[qty.rep.concepts]'><span id='conceptref:RepresentationOf'><span class='texttt'>RepresentationOf</span></span></a><span class='anglebracket'>&lt;</span>V<span class='anglebracket'>&gt;</span></span> if
</code></div></div><div class='para' id='8'><div class='marginalizedparent'><a class='marginalized' href='#8'>8</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L4047'>#</a></div><div class='texpara'><div id='8.sentence-1' class='sentence'>A type <span class='texttt'>T</span> models <span class='texttt'><a href='#concept:RepresentationOf' title='5.5.4&emsp;Concepts&emsp;[qty.rep.concepts]'><span id='conceptref:RepresentationOf'><span class='texttt'>RepresentationOf</span></span></a><span class='anglebracket'>&lt;</span>V<span class='anglebracket'>&gt;</span></span> if
<span class='texttt'>T</span> models <a href='#concept:Representation' title='5.5.4&emsp;Concepts&emsp;[qty.rep.concepts]'><span id='conceptref:Representation__'><span class='texttt'>Representation</span></span></a> and
<ul class='itemize'><li id='8.1'><div class='marginalizedparent' style='left:-27mm'><a class='marginalized' href='#8.1'>(8.1)</a></div><span class='texttt'>V</span> is a kind of quantity, or</li><li id='8.2'><div class='marginalizedparent' style='left:-27mm'><a class='marginalized' href='#8.2'>(8.2)</a></div>if <span class='texttt'>V</span> is a quantity, then <span class='texttt'>T</span> represents a value of its character, or</li><li id='8.3'><div class='marginalizedparent' style='left:-27mm'><a class='marginalized' href='#8.3'>(8.3)</a></div>if <span class='texttt'>V</span> is a quantity character, then <span class='texttt'>T</span> represents a value of <span class='texttt'>V</span><a class='hidden_link' href='#8.sentence-1'>.</a></li></ul></div></div></div></div></body></html>

View File

@ -1,2 +1,2 @@
<!DOCTYPE html><html lang='en'><head><title>[qty.rep.cpos.general]</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.5</a> Representation <a class='abbr_ref' href='qty.rep.html#cpos.general'>[qty.rep]</a></h2><h3 ><a class='secnum' style='min-width:80pt'>5.5.3</a> Customization point objects <a class='abbr_ref' href='qty.rep.cpos.html#general'>[qty.rep.cpos]</a></h3><h4 ><a class='secnum' style='min-width:95pt'>5.5.3.1</a> General <a class='abbr_ref'>[qty.rep.cpos.general]</a></h4><div class='para' id='1'><div class='marginalizedparent'><a class='marginalized' href='#1'>1</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L3795'>#</a></div><div class='texpara'><div id='1.sentence-1' class='sentence'>Within subclause <a href='qty.rep.cpos.html' title='5.5.3&emsp;Customization point objects'>[qty.<span class='shy'></span>rep.<span class='shy'></span>cpos]</a>,
<!DOCTYPE html><html lang='en'><head><title>[qty.rep.cpos.general]</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.5</a> Representation <a class='abbr_ref' href='qty.rep.html#cpos.general'>[qty.rep]</a></h2><h3 ><a class='secnum' style='min-width:80pt'>5.5.3</a> Customization point objects <a class='abbr_ref' href='qty.rep.cpos.html#general'>[qty.rep.cpos]</a></h3><h4 ><a class='secnum' style='min-width:95pt'>5.5.3.1</a> General <a class='abbr_ref'>[qty.rep.cpos.general]</a></h4><div class='para' id='1'><div class='marginalizedparent'><a class='marginalized' href='#1'>1</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L3795'>#</a></div><div class='texpara'><div id='1.sentence-1' class='sentence'>Within subclause <a href='qty.rep.cpos.html' title='5.5.3&emsp;Customization point objects'>[qty.<span class='shy'></span>rep.<span class='shy'></span>cpos]</a>,
<a class='hidden_link' href='#def:reified_object' id='def:reified_object'><i>reified object</i></a> is as defined in <a href="https://wg21.link/range.access.general">N4971, [range.access.general]</a><a class='hidden_link' href='#1.sentence-1'>.</a></div></div></div></div></body></html>

View File

@ -1,19 +1,19 @@
<!DOCTYPE html><html lang='en'><head><title>[qty.rep.cpos]</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.5</a> Representation <a class='abbr_ref' href='qty.rep.html#cpos'>[qty.rep]</a></h2><h3 ><a class='secnum' style='min-width:80pt'>5.5.3</a> Customization point objects <a class='abbr_ref'>[qty.rep.cpos]</a></h3><div id='general' class='section'><h4 ><a class='secnum' href='#general' style='min-width:95pt'>5.5.3.1</a> General <a class='abbr_ref' href='qty.rep.cpos.general.html'>[qty.rep.cpos.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-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L3795'>#</a></div><div class='texpara'><div id='general-1.sentence-1' class='sentence'>Within subclause [qty.<span class='shy'></span>rep.<span class='shy'></span>cpos],
<a class='hidden_link' href='#def:reified_object' id='def:reified_object'><i>reified object</i></a> is as defined in <a href="https://wg21.link/range.access.general">N4971, [range.access.general]</a><a class='hidden_link' href='#general-1.sentence-1'>.</a></div></div></div></div><div id='qty.real.cpo' class='section'><h4 ><a class='secnum' href='#qty.real.cpo' style='min-width:95pt'>5.5.3.2</a> <span class='texttt'>mp_<span class='shy'></span>units&#x200b;::&#x200b;real</span> <a class='abbr_ref' href='qty.real.cpo.html'>[qty.real.cpo]</a></h4><div class='para' id='qty.real.cpo-1'><div class='marginalizedparent'><a class='marginalized' href='#qty.real.cpo-1'>1</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L3801'>#</a></div><div class='texpara'><div id='qty.real.cpo-1.sentence-1' class='sentence'>The name <span class='texttt'>mp_<span class='shy'></span>units<span class='operator'>&#x200b;::&#x200b;</span>real</span> denotes a customization point object (<a href="https://wg21.link/customization.point.object">N4971, [customization.point.object]</a>)<a class='hidden_link' href='#qty.real.cpo-1.sentence-1'>.</a></div></div></div><div class='para' id='qty.real.cpo-2'><div class='marginalizedparent'><a class='marginalized' href='#qty.real.cpo-2'>2</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L3804'>#</a></div><div class='texpara'><div id='qty.real.cpo-2.sentence-1' class='sentence'>Given a subexpression <span class='texttt'>E</span> with type <span class='texttt'>T</span>,
<!DOCTYPE html><html lang='en'><head><title>[qty.rep.cpos]</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.5</a> Representation <a class='abbr_ref' href='qty.rep.html#cpos'>[qty.rep]</a></h2><h3 ><a class='secnum' style='min-width:80pt'>5.5.3</a> Customization point objects <a class='abbr_ref'>[qty.rep.cpos]</a></h3><div id='general' class='section'><h4 ><a class='secnum' href='#general' style='min-width:95pt'>5.5.3.1</a> General <a class='abbr_ref' href='qty.rep.cpos.general.html'>[qty.rep.cpos.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-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L3795'>#</a></div><div class='texpara'><div id='general-1.sentence-1' class='sentence'>Within subclause [qty.<span class='shy'></span>rep.<span class='shy'></span>cpos],
<a class='hidden_link' href='#def:reified_object' id='def:reified_object'><i>reified object</i></a> is as defined in <a href="https://wg21.link/range.access.general">N4971, [range.access.general]</a><a class='hidden_link' href='#general-1.sentence-1'>.</a></div></div></div></div><div id='qty.real.cpo' class='section'><h4 ><a class='secnum' href='#qty.real.cpo' style='min-width:95pt'>5.5.3.2</a> <span class='texttt'>mp_<span class='shy'></span>units&#x200b;::&#x200b;real</span> <a class='abbr_ref' href='qty.real.cpo.html'>[qty.real.cpo]</a></h4><div class='para' id='qty.real.cpo-1'><div class='marginalizedparent'><a class='marginalized' href='#qty.real.cpo-1'>1</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L3801'>#</a></div><div class='texpara'><div id='qty.real.cpo-1.sentence-1' class='sentence'>The name <span class='texttt'>mp_<span class='shy'></span>units<span class='operator'>&#x200b;::&#x200b;</span>real</span> denotes a customization point object (<a href="https://wg21.link/customization.point.object">N4971, [customization.point.object]</a>)<a class='hidden_link' href='#qty.real.cpo-1.sentence-1'>.</a></div></div></div><div class='para' id='qty.real.cpo-2'><div class='marginalizedparent'><a class='marginalized' href='#qty.real.cpo-2'>2</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L3804'>#</a></div><div class='texpara'><div id='qty.real.cpo-2.sentence-1' class='sentence'>Given a subexpression <span class='texttt'>E</span> with type <span class='texttt'>T</span>,
let <span class='texttt'>t</span> be an lvalue that denotes the reified object for <span class='texttt'>E</span><a class='hidden_link' href='#qty.real.cpo-2.sentence-1'>.</a></div> <div id='qty.real.cpo-2.sentence-2' class='sentence'>Then:
<ul class='itemize'><li id='qty.real.cpo-2.1'><div class='marginalizedparent' style='left:-27mm'><a class='marginalized' href='#qty.real.cpo-2.1'>(2.1)</a></div><div class='texpara'><div id='qty.real.cpo-2.1.sentence-1' class='sentence'>If <span class='texttt'>T</span> does not model <a href='qty.rep.concepts.html#concept:WeaklyRegular' title='5.5.4&emsp;Concepts&emsp;[qty.rep.concepts]'><span id='conceptref:WeaklyRegular'><span class='texttt'><i >WeaklyRegular</i></span></span></a>,
<span class='texttt'>mp_<span class='shy'></span>units<span class='operator'>&#x200b;::&#x200b;</span>real<span class='parenthesis'>(</span>E<span class='parenthesis'>)</span></span> is ill-formed<a class='hidden_link' href='#qty.real.cpo-2.1.sentence-1'>.</a></div></div></li><li id='qty.real.cpo-2.2'><div class='marginalizedparent' style='left:-27mm'><a class='marginalized' href='#qty.real.cpo-2.2'>(2.2)</a></div><div class='texpara'><div id='qty.real.cpo-2.2.sentence-1' class='sentence'>If <span class='texttt'><span class='keyword'>auto</span><span class='parenthesis'>(</span>t<span class='operator'>.</span>real<span class='parenthesis'>(</span><span class='parenthesis'>)</span><span class='parenthesis'>)</span></span> is a valid expression whose type models <a href='qty.rep.concepts.html#concept:Scalar' title='5.5.4&emsp;Concepts&emsp;[qty.rep.concepts]'><span id='conceptref:Scalar'><span class='texttt'><i >Scalar</i></span></span></a>,
<span class='texttt'>mp_<span class='shy'></span>units<span class='operator'>&#x200b;::&#x200b;</span>real<span class='parenthesis'>(</span>E<span class='parenthesis'>)</span></span> is expression-equivalent to <span class='texttt'><span class='keyword'>auto</span><span class='parenthesis'>(</span>t<span class='operator'>.</span>real<span class='parenthesis'>(</span><span class='parenthesis'>)</span><span class='parenthesis'>)</span></span><a class='hidden_link' href='#qty.real.cpo-2.2.sentence-1'>.</a></div></div></li><li id='qty.real.cpo-2.3'><div class='marginalizedparent' style='left:-27mm'><a class='marginalized' href='#qty.real.cpo-2.3'>(2.3)</a></div><div class='texpara'><div id='qty.real.cpo-2.3.sentence-1' class='sentence'>Otherwise, if <span class='texttt'>T</span> is a class or enumeration type and
<span class='texttt'><span class='keyword'>auto</span><span class='parenthesis'>(</span>real<span class='parenthesis'>(</span>t<span class='parenthesis'>)</span><span class='parenthesis'>)</span></span> is a valid expression whose type models <a href='qty.rep.concepts.html#concept:Scalar' title='5.5.4&emsp;Concepts&emsp;[qty.rep.concepts]'><span id='conceptref:Scalar_'><span class='texttt'><i >Scalar</i></span></span></a>
where the meaning of <span class='texttt'>real</span> is established as-if by performing argument-dependent lookup only (<a href="https://wg21.link/basic.lookup.argdep">N4971, [basic.lookup.argdep]</a>),
then <span class='texttt'>mp_<span class='shy'></span>units<span class='operator'>&#x200b;::&#x200b;</span>real<span class='parenthesis'>(</span>E<span class='parenthesis'>)</span></span> is expression-equivalent to that expression<a class='hidden_link' href='#qty.real.cpo-2.3.sentence-1'>.</a></div></div></li><li id='qty.real.cpo-2.4'><div class='marginalizedparent' style='left:-27mm'><a class='marginalized' href='#qty.real.cpo-2.4'>(2.4)</a></div><div class='texpara'><div id='qty.real.cpo-2.4.sentence-1' class='sentence'>Otherwise, <span class='texttt'>mp_<span class='shy'></span>units<span class='operator'>&#x200b;::&#x200b;</span>real<span class='parenthesis'>(</span>E<span class='parenthesis'>)</span></span> is ill-formed<a class='hidden_link' href='#qty.real.cpo-2.4.sentence-1'>.</a></div></div></li></ul></div></div></div></div><div id='qty.imag.cpo' class='section'><h4 ><a class='secnum' href='#qty.imag.cpo' style='min-width:95pt'>5.5.3.3</a> <span class='texttt'>mp_<span class='shy'></span>units&#x200b;::&#x200b;imag</span> <a class='abbr_ref' href='qty.imag.cpo.html'>[qty.imag.cpo]</a></h4><div class='para' id='qty.imag.cpo-1'><div class='marginalizedparent'><a class='marginalized' href='#qty.imag.cpo-1'>1</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L3826'>#</a></div><div class='texpara'><div id='qty.imag.cpo-1.sentence-1' class='sentence'>The name <span class='texttt'>mp_<span class='shy'></span>units<span class='operator'>&#x200b;::&#x200b;</span>imag</span> denotes a customization point object (<a href="https://wg21.link/customization.point.object">N4971, [customization.point.object]</a>)<a class='hidden_link' href='#qty.imag.cpo-1.sentence-1'>.</a></div></div></div><div class='para' id='qty.imag.cpo-2'><div class='marginalizedparent'><a class='marginalized' href='#qty.imag.cpo-2'>2</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L3829'>#</a></div><div class='texpara'><div id='qty.imag.cpo-2.sentence-1' class='sentence'>Given a subexpression <span class='texttt'>E</span> with type <span class='texttt'>T</span>,
then <span class='texttt'>mp_<span class='shy'></span>units<span class='operator'>&#x200b;::&#x200b;</span>real<span class='parenthesis'>(</span>E<span class='parenthesis'>)</span></span> is expression-equivalent to that expression<a class='hidden_link' href='#qty.real.cpo-2.3.sentence-1'>.</a></div></div></li><li id='qty.real.cpo-2.4'><div class='marginalizedparent' style='left:-27mm'><a class='marginalized' href='#qty.real.cpo-2.4'>(2.4)</a></div><div class='texpara'><div id='qty.real.cpo-2.4.sentence-1' class='sentence'>Otherwise, <span class='texttt'>mp_<span class='shy'></span>units<span class='operator'>&#x200b;::&#x200b;</span>real<span class='parenthesis'>(</span>E<span class='parenthesis'>)</span></span> is ill-formed<a class='hidden_link' href='#qty.real.cpo-2.4.sentence-1'>.</a></div></div></li></ul></div></div></div></div><div id='qty.imag.cpo' class='section'><h4 ><a class='secnum' href='#qty.imag.cpo' style='min-width:95pt'>5.5.3.3</a> <span class='texttt'>mp_<span class='shy'></span>units&#x200b;::&#x200b;imag</span> <a class='abbr_ref' href='qty.imag.cpo.html'>[qty.imag.cpo]</a></h4><div class='para' id='qty.imag.cpo-1'><div class='marginalizedparent'><a class='marginalized' href='#qty.imag.cpo-1'>1</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L3826'>#</a></div><div class='texpara'><div id='qty.imag.cpo-1.sentence-1' class='sentence'>The name <span class='texttt'>mp_<span class='shy'></span>units<span class='operator'>&#x200b;::&#x200b;</span>imag</span> denotes a customization point object (<a href="https://wg21.link/customization.point.object">N4971, [customization.point.object]</a>)<a class='hidden_link' href='#qty.imag.cpo-1.sentence-1'>.</a></div></div></div><div class='para' id='qty.imag.cpo-2'><div class='marginalizedparent'><a class='marginalized' href='#qty.imag.cpo-2'>2</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L3829'>#</a></div><div class='texpara'><div id='qty.imag.cpo-2.sentence-1' class='sentence'>Given a subexpression <span class='texttt'>E</span> with type <span class='texttt'>T</span>,
let <span class='texttt'>t</span> be an lvalue that denotes the reified object for <span class='texttt'>E</span><a class='hidden_link' href='#qty.imag.cpo-2.sentence-1'>.</a></div> <div id='qty.imag.cpo-2.sentence-2' class='sentence'>Then:
<ul class='itemize'><li id='qty.imag.cpo-2.1'><div class='marginalizedparent' style='left:-27mm'><a class='marginalized' href='#qty.imag.cpo-2.1'>(2.1)</a></div><div class='texpara'><div id='qty.imag.cpo-2.1.sentence-1' class='sentence'>If <span class='texttt'>T</span> does not model <a href='qty.rep.concepts.html#concept:WeaklyRegular' title='5.5.4&emsp;Concepts&emsp;[qty.rep.concepts]'><span id='conceptref:WeaklyRegular_'><span class='texttt'><i >WeaklyRegular</i></span></span></a>,
<span class='texttt'>mp_<span class='shy'></span>units<span class='operator'>&#x200b;::&#x200b;</span>imag<span class='parenthesis'>(</span>E<span class='parenthesis'>)</span></span> is ill-formed<a class='hidden_link' href='#qty.imag.cpo-2.1.sentence-1'>.</a></div></div></li><li id='qty.imag.cpo-2.2'><div class='marginalizedparent' style='left:-27mm'><a class='marginalized' href='#qty.imag.cpo-2.2'>(2.2)</a></div><div class='texpara'><div id='qty.imag.cpo-2.2.sentence-1' class='sentence'>If <span class='texttt'><span class='keyword'>auto</span><span class='parenthesis'>(</span>t<span class='operator'>.</span>imag<span class='parenthesis'>(</span><span class='parenthesis'>)</span><span class='parenthesis'>)</span></span> is a valid expression whose type models <a href='qty.rep.concepts.html#concept:Scalar' title='5.5.4&emsp;Concepts&emsp;[qty.rep.concepts]'><span id='conceptref:Scalar__'><span class='texttt'><i >Scalar</i></span></span></a>,
<span class='texttt'>mp_<span class='shy'></span>units<span class='operator'>&#x200b;::&#x200b;</span>imag<span class='parenthesis'>(</span>E<span class='parenthesis'>)</span></span> is expression-equivalent to <span class='texttt'><span class='keyword'>auto</span><span class='parenthesis'>(</span>t<span class='operator'>.</span>imag<span class='parenthesis'>(</span><span class='parenthesis'>)</span><span class='parenthesis'>)</span></span><a class='hidden_link' href='#qty.imag.cpo-2.2.sentence-1'>.</a></div></div></li><li id='qty.imag.cpo-2.3'><div class='marginalizedparent' style='left:-27mm'><a class='marginalized' href='#qty.imag.cpo-2.3'>(2.3)</a></div><div class='texpara'><div id='qty.imag.cpo-2.3.sentence-1' class='sentence'>Otherwise, if <span class='texttt'>T</span> is a class or enumeration type and
<span class='texttt'><span class='keyword'>auto</span><span class='parenthesis'>(</span>imag<span class='parenthesis'>(</span>t<span class='parenthesis'>)</span><span class='parenthesis'>)</span></span> is a valid expression whose type models <a href='qty.rep.concepts.html#concept:Scalar' title='5.5.4&emsp;Concepts&emsp;[qty.rep.concepts]'><span id='conceptref:Scalar___'><span class='texttt'><i >Scalar</i></span></span></a>
where the meaning of <span class='texttt'>imag</span> is established as-if by performing argument-dependent lookup only (<a href="https://wg21.link/basic.lookup.argdep">N4971, [basic.lookup.argdep]</a>),
then <span class='texttt'>mp_<span class='shy'></span>units<span class='operator'>&#x200b;::&#x200b;</span>imag<span class='parenthesis'>(</span>E<span class='parenthesis'>)</span></span> is expression-equivalent to that expression<a class='hidden_link' href='#qty.imag.cpo-2.3.sentence-1'>.</a></div></div></li><li id='qty.imag.cpo-2.4'><div class='marginalizedparent' style='left:-27mm'><a class='marginalized' href='#qty.imag.cpo-2.4'>(2.4)</a></div><div class='texpara'><div id='qty.imag.cpo-2.4.sentence-1' class='sentence'>Otherwise, <span class='texttt'>mp_<span class='shy'></span>units<span class='operator'>&#x200b;::&#x200b;</span>imag<span class='parenthesis'>(</span>E<span class='parenthesis'>)</span></span> is ill-formed<a class='hidden_link' href='#qty.imag.cpo-2.4.sentence-1'>.</a></div></div></li></ul></div></div></div></div><div id='qty.modulus.cpo' class='section'><h4 ><a class='secnum' href='#qty.modulus.cpo' style='min-width:95pt'>5.5.3.4</a> <span class='texttt'>mp_<span class='shy'></span>units&#x200b;::&#x200b;modulus</span> <a class='abbr_ref' href='qty.modulus.cpo.html'>[qty.modulus.cpo]</a></h4><div class='para' id='qty.modulus.cpo-1'><div class='marginalizedparent'><a class='marginalized' href='#qty.modulus.cpo-1'>1</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L3851'>#</a></div><div class='texpara'><div id='qty.modulus.cpo-1.sentence-1' class='sentence'>The name <span class='texttt'>mp_<span class='shy'></span>units<span class='operator'>&#x200b;::&#x200b;</span>modulus</span> denotes a customization point object (<a href="https://wg21.link/customization.point.object">N4971, [customization.point.object]</a>)<a class='hidden_link' href='#qty.modulus.cpo-1.sentence-1'>.</a></div></div></div><div class='para' id='qty.modulus.cpo-2'><div class='marginalizedparent'><a class='marginalized' href='#qty.modulus.cpo-2'>2</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L3854'>#</a></div><div class='texpara'><div id='qty.modulus.cpo-2.sentence-1' class='sentence'>Given a subexpression <span class='texttt'>E</span> with type <span class='texttt'>T</span>,
then <span class='texttt'>mp_<span class='shy'></span>units<span class='operator'>&#x200b;::&#x200b;</span>imag<span class='parenthesis'>(</span>E<span class='parenthesis'>)</span></span> is expression-equivalent to that expression<a class='hidden_link' href='#qty.imag.cpo-2.3.sentence-1'>.</a></div></div></li><li id='qty.imag.cpo-2.4'><div class='marginalizedparent' style='left:-27mm'><a class='marginalized' href='#qty.imag.cpo-2.4'>(2.4)</a></div><div class='texpara'><div id='qty.imag.cpo-2.4.sentence-1' class='sentence'>Otherwise, <span class='texttt'>mp_<span class='shy'></span>units<span class='operator'>&#x200b;::&#x200b;</span>imag<span class='parenthesis'>(</span>E<span class='parenthesis'>)</span></span> is ill-formed<a class='hidden_link' href='#qty.imag.cpo-2.4.sentence-1'>.</a></div></div></li></ul></div></div></div></div><div id='qty.modulus.cpo' class='section'><h4 ><a class='secnum' href='#qty.modulus.cpo' style='min-width:95pt'>5.5.3.4</a> <span class='texttt'>mp_<span class='shy'></span>units&#x200b;::&#x200b;modulus</span> <a class='abbr_ref' href='qty.modulus.cpo.html'>[qty.modulus.cpo]</a></h4><div class='para' id='qty.modulus.cpo-1'><div class='marginalizedparent'><a class='marginalized' href='#qty.modulus.cpo-1'>1</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L3851'>#</a></div><div class='texpara'><div id='qty.modulus.cpo-1.sentence-1' class='sentence'>The name <span class='texttt'>mp_<span class='shy'></span>units<span class='operator'>&#x200b;::&#x200b;</span>modulus</span> denotes a customization point object (<a href="https://wg21.link/customization.point.object">N4971, [customization.point.object]</a>)<a class='hidden_link' href='#qty.modulus.cpo-1.sentence-1'>.</a></div></div></div><div class='para' id='qty.modulus.cpo-2'><div class='marginalizedparent'><a class='marginalized' href='#qty.modulus.cpo-2'>2</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L3854'>#</a></div><div class='texpara'><div id='qty.modulus.cpo-2.sentence-1' class='sentence'>Given a subexpression <span class='texttt'>E</span> with type <span class='texttt'>T</span>,
let <span class='texttt'>t</span> be an lvalue that denotes the reified object for <span class='texttt'>E</span><a class='hidden_link' href='#qty.modulus.cpo-2.sentence-1'>.</a></div> <div id='qty.modulus.cpo-2.sentence-2' class='sentence'>Then:
<ul class='itemize'><li id='qty.modulus.cpo-2.1'><div class='marginalizedparent' style='left:-27mm'><a class='marginalized' href='#qty.modulus.cpo-2.1'>(2.1)</a></div><div class='texpara'><div id='qty.modulus.cpo-2.1.sentence-1' class='sentence'>If <span class='texttt'>T</span> does not model <a href='qty.rep.concepts.html#concept:WeaklyRegular' title='5.5.4&emsp;Concepts&emsp;[qty.rep.concepts]'><span id='conceptref:WeaklyRegular__'><span class='texttt'><i >WeaklyRegular</i></span></span></a>,
<span class='texttt'>mp_<span class='shy'></span>units<span class='operator'>&#x200b;::&#x200b;</span>modulus<span class='parenthesis'>(</span>E<span class='parenthesis'>)</span></span> is ill-formed<a class='hidden_link' href='#qty.modulus.cpo-2.1.sentence-1'>.</a></div></div></li><li id='qty.modulus.cpo-2.2'><div class='marginalizedparent' style='left:-27mm'><a class='marginalized' href='#qty.modulus.cpo-2.2'>(2.2)</a></div><div class='texpara'><div id='qty.modulus.cpo-2.2.sentence-1' class='sentence'>If <span class='texttt'><span class='keyword'>auto</span><span class='parenthesis'>(</span>t<span class='operator'>.</span>modulus<span class='parenthesis'>(</span><span class='parenthesis'>)</span><span class='parenthesis'>)</span></span> is a valid expression whose type models <a href='qty.rep.concepts.html#concept:Scalar' title='5.5.4&emsp;Concepts&emsp;[qty.rep.concepts]'><span id='conceptref:Scalar____'><span class='texttt'><i >Scalar</i></span></span></a>,
@ -24,7 +24,7 @@ then <span class='texttt'>mp_<span class='shy'></span>units<span class='operator
<span class='texttt'>mp_<span class='shy'></span>units<span class='operator'>&#x200b;::&#x200b;</span>modulus<span class='parenthesis'>(</span>E<span class='parenthesis'>)</span></span> is expression-equivalent to <span class='texttt'><span class='keyword'>auto</span><span class='parenthesis'>(</span>t<span class='operator'>.</span>abs<span class='parenthesis'>(</span><span class='parenthesis'>)</span><span class='parenthesis'>)</span></span><a class='hidden_link' href='#qty.modulus.cpo-2.4.sentence-1'>.</a></div></div></li><li id='qty.modulus.cpo-2.5'><div class='marginalizedparent' style='left:-27mm'><a class='marginalized' href='#qty.modulus.cpo-2.5'>(2.5)</a></div><div class='texpara'><div id='qty.modulus.cpo-2.5.sentence-1' class='sentence'>Otherwise, if <span class='texttt'>T</span> is a class or enumeration type and
<span class='texttt'><span class='keyword'>auto</span><span class='parenthesis'>(</span>abs<span class='parenthesis'>(</span>t<span class='parenthesis'>)</span><span class='parenthesis'>)</span></span> is a valid expression whose type models <a href='qty.rep.concepts.html#concept:Scalar' title='5.5.4&emsp;Concepts&emsp;[qty.rep.concepts]'><span id='conceptref:Scalar_______'><span class='texttt'><i >Scalar</i></span></span></a>
where the meaning of <span class='texttt'>abs</span> is established as-if by performing argument-dependent lookup only (<a href="https://wg21.link/basic.lookup.argdep">N4971, [basic.lookup.argdep]</a>),
then <span class='texttt'>mp_<span class='shy'></span>units<span class='operator'>&#x200b;::&#x200b;</span>modulus<span class='parenthesis'>(</span>E<span class='parenthesis'>)</span></span> is expression-equivalent to that expression<a class='hidden_link' href='#qty.modulus.cpo-2.5.sentence-1'>.</a></div></div></li><li id='qty.modulus.cpo-2.6'><div class='marginalizedparent' style='left:-27mm'><a class='marginalized' href='#qty.modulus.cpo-2.6'>(2.6)</a></div><div class='texpara'><div id='qty.modulus.cpo-2.6.sentence-1' class='sentence'>Otherwise, <span class='texttt'>mp_<span class='shy'></span>units<span class='operator'>&#x200b;::&#x200b;</span>modulus<span class='parenthesis'>(</span>E<span class='parenthesis'>)</span></span> is ill-formed<a class='hidden_link' href='#qty.modulus.cpo-2.6.sentence-1'>.</a></div></div></li></ul></div></div></div></div><div id='qty.mag.cpo' class='section'><h4 ><a class='secnum' href='#qty.mag.cpo' style='min-width:95pt'>5.5.3.5</a> <span class='texttt'>mp_<span class='shy'></span>units&#x200b;::&#x200b;magnitude</span> <a class='abbr_ref' href='qty.mag.cpo.html'>[qty.mag.cpo]</a></h4><div class='para' id='qty.mag.cpo-1'><div class='marginalizedparent'><a class='marginalized' href='#qty.mag.cpo-1'>1</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L3884'>#</a></div><div class='texpara'><div id='qty.mag.cpo-1.sentence-1' class='sentence'>The name <span class='texttt'>mp_<span class='shy'></span>units<span class='operator'>&#x200b;::&#x200b;</span>magnitude</span> denotes a customization point object (<a href="https://wg21.link/customization.point.object">N4971, [customization.point.object]</a>)<a class='hidden_link' href='#qty.mag.cpo-1.sentence-1'>.</a></div></div></div><div class='para' id='qty.mag.cpo-2'><div class='marginalizedparent'><a class='marginalized' href='#qty.mag.cpo-2'>2</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L3887'>#</a></div><div class='texpara'><div id='qty.mag.cpo-2.sentence-1' class='sentence'>Given a subexpression <span class='texttt'>E</span> with type <span class='texttt'>T</span>,
then <span class='texttt'>mp_<span class='shy'></span>units<span class='operator'>&#x200b;::&#x200b;</span>modulus<span class='parenthesis'>(</span>E<span class='parenthesis'>)</span></span> is expression-equivalent to that expression<a class='hidden_link' href='#qty.modulus.cpo-2.5.sentence-1'>.</a></div></div></li><li id='qty.modulus.cpo-2.6'><div class='marginalizedparent' style='left:-27mm'><a class='marginalized' href='#qty.modulus.cpo-2.6'>(2.6)</a></div><div class='texpara'><div id='qty.modulus.cpo-2.6.sentence-1' class='sentence'>Otherwise, <span class='texttt'>mp_<span class='shy'></span>units<span class='operator'>&#x200b;::&#x200b;</span>modulus<span class='parenthesis'>(</span>E<span class='parenthesis'>)</span></span> is ill-formed<a class='hidden_link' href='#qty.modulus.cpo-2.6.sentence-1'>.</a></div></div></li></ul></div></div></div></div><div id='qty.mag.cpo' class='section'><h4 ><a class='secnum' href='#qty.mag.cpo' style='min-width:95pt'>5.5.3.5</a> <span class='texttt'>mp_<span class='shy'></span>units&#x200b;::&#x200b;magnitude</span> <a class='abbr_ref' href='qty.mag.cpo.html'>[qty.mag.cpo]</a></h4><div class='para' id='qty.mag.cpo-1'><div class='marginalizedparent'><a class='marginalized' href='#qty.mag.cpo-1'>1</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L3884'>#</a></div><div class='texpara'><div id='qty.mag.cpo-1.sentence-1' class='sentence'>The name <span class='texttt'>mp_<span class='shy'></span>units<span class='operator'>&#x200b;::&#x200b;</span>magnitude</span> denotes a customization point object (<a href="https://wg21.link/customization.point.object">N4971, [customization.point.object]</a>)<a class='hidden_link' href='#qty.mag.cpo-1.sentence-1'>.</a></div></div></div><div class='para' id='qty.mag.cpo-2'><div class='marginalizedparent'><a class='marginalized' href='#qty.mag.cpo-2'>2</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L3887'>#</a></div><div class='texpara'><div id='qty.mag.cpo-2.sentence-1' class='sentence'>Given a subexpression <span class='texttt'>E</span> with type <span class='texttt'>T</span>,
let <span class='texttt'>t</span> be an lvalue that denotes the reified object for <span class='texttt'>E</span><a class='hidden_link' href='#qty.mag.cpo-2.sentence-1'>.</a></div> <div id='qty.mag.cpo-2.sentence-2' class='sentence'>Then:
<ul class='itemize'><li id='qty.mag.cpo-2.1'><div class='marginalizedparent' style='left:-27mm'><a class='marginalized' href='#qty.mag.cpo-2.1'>(2.1)</a></div><div class='texpara'><div id='qty.mag.cpo-2.1.sentence-1' class='sentence'>If <span class='texttt'>T</span> does not model <a href='qty.rep.concepts.html#concept:WeaklyRegular' title='5.5.4&emsp;Concepts&emsp;[qty.rep.concepts]'><span id='conceptref:WeaklyRegular___'><span class='texttt'><i >WeaklyRegular</i></span></span></a>,
<span class='texttt'>mp_<span class='shy'></span>units<span class='operator'>&#x200b;::&#x200b;</span>magnitude<span class='parenthesis'>(</span>E<span class='parenthesis'>)</span></span> is ill-formed<a class='hidden_link' href='#qty.mag.cpo-2.1.sentence-1'>.</a></div></div></li><li id='qty.mag.cpo-2.2'><div class='marginalizedparent' style='left:-27mm'><a class='marginalized' href='#qty.mag.cpo-2.2'>(2.2)</a></div><div class='texpara'><div id='qty.mag.cpo-2.2.sentence-1' class='sentence'>If <span class='texttt'><span class='keyword'>auto</span><span class='parenthesis'>(</span>t<span class='operator'>.</span>magnitude<span class='parenthesis'>(</span><span class='parenthesis'>)</span><span class='parenthesis'>)</span></span> is a valid expression whose type models <a href='qty.rep.concepts.html#concept:Scalar' title='5.5.4&emsp;Concepts&emsp;[qty.rep.concepts]'><span id='conceptref:Scalar________'><span class='texttt'><i >Scalar</i></span></span></a>,

View File

@ -1,2 +1,2 @@
<!DOCTYPE html><html lang='en'><head><title>[qty.rep.general]</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.5</a> Representation <a class='abbr_ref' href='qty.rep.html#general'>[qty.rep]</a></h2><h3 ><a class='secnum' style='min-width:80pt'>5.5.1</a> General <a class='abbr_ref'>[qty.rep.general]</a></h3><div class='para' id='1'><div class='marginalizedparent'><a class='marginalized' href='#1'>1</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L3682'>#</a></div><div class='texpara'><div id='1.sentence-1' class='sentence'>Subclause <a href='qty.rep.html' title='5.5&emsp;Representation'>[qty.<span class='shy'></span>rep]</a> specifies the components
<!DOCTYPE html><html lang='en'><head><title>[qty.rep.general]</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.5</a> Representation <a class='abbr_ref' href='qty.rep.html#general'>[qty.rep]</a></h2><h3 ><a class='secnum' style='min-width:80pt'>5.5.1</a> General <a class='abbr_ref'>[qty.rep.general]</a></h3><div class='para' id='1'><div class='marginalizedparent'><a class='marginalized' href='#1'>1</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L3682'>#</a></div><div class='texpara'><div id='1.sentence-1' class='sentence'>Subclause <a href='qty.rep.html' title='5.5&emsp;Representation'>[qty.<span class='shy'></span>rep]</a> specifies the components
used to constrain the numerical value of a quantity (<a href="https://www.electropedia.org/iev/iev.nsf/display?openform&ievref=112-01-29">IEC 60050, 112-01-29</a>)<a class='hidden_link' href='#1.sentence-1'>.</a></div></div></div></div></body></html>

View File

@ -1,4 +1,4 @@
<!DOCTYPE html><html lang='en'><head><title>[qty.rep]</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.5</a> Representation <a class='abbr_ref'>[qty.rep]</a></h2><div id='general' class='section'><h3 ><a class='secnum' href='#general' style='min-width:80pt'>5.5.1</a> General <a class='abbr_ref' href='qty.rep.general.html'>[qty.rep.general]</a></h3><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-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L3682'>#</a></div><div class='texpara'><div id='general-1.sentence-1' class='sentence'>Subclause [qty.<span class='shy'></span>rep] specifies the components
<!DOCTYPE html><html lang='en'><head><title>[qty.rep]</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.5</a> Representation <a class='abbr_ref'>[qty.rep]</a></h2><div id='general' class='section'><h3 ><a class='secnum' href='#general' style='min-width:80pt'>5.5.1</a> General <a class='abbr_ref' href='qty.rep.general.html'>[qty.rep.general]</a></h3><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-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L3682'>#</a></div><div class='texpara'><div id='general-1.sentence-1' class='sentence'>Subclause [qty.<span class='shy'></span>rep] specifies the components
used to constrain the numerical value of a quantity (<a href="https://www.electropedia.org/iev/iev.nsf/display?openform&ievref=112-01-29">IEC 60050, 112-01-29</a>)<a class='hidden_link' href='#general-1.sentence-1'>.</a></div></div></div></div><div id='traits' class='section'><h3 ><a class='secnum' href='#traits' style='min-width:80pt'>5.5.2</a> Traits <a class='abbr_ref' href='qty.rep.traits.html'>[qty.rep.traits]</a></h3><div id='qty.fp.traits' class='section'><h4 ><a class='secnum' href='#qty.fp.traits' style='min-width:95pt'>5.5.2.1</a> Floating-point <a class='abbr_ref' href='qty.fp.traits.html'>[qty.fp.traits]</a></h4><div class='texpara'><div class='itemdecl' id='qty.fp.traits-itemdecl:1'><div class='marginalizedparent'><a class='itemDeclLink' href='#qty.fp.traits-itemdecl:1'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><span class='keyword'>typename</span> T<span class='anglebracket'>&gt;</span>
<span class='keyword'>struct</span> <span class='texttt'><i >actual-value-type</i></span> <span class='operator'>:</span> <span class='texttt'><i >cond-value-type</i></span><span class='anglebracket'>&lt;</span>T<span class='anglebracket'>&gt;</span> <span class='curlybracket'>{</span><span class='curlybracket'>}</span>; <span class='comment'>// see <a href="https://wg21.link/readable.traits">N4971, [readable.traits]</a></span>
@ -13,8 +13,8 @@ used to constrain the numerical value of a quantity (<a href="https://www.electr
<span class='keyword'>template</span><span class='anglebracket'>&lt;</span><span class='keyword'>typename</span> Rep<span class='anglebracket'>&gt;</span>
<span class='keyword'>constexpr</span> <span class='keyword'>bool</span> <span id='lib:treat_as_floating_point'><a class='hidden_link' href='#lib:treat_as_floating_point' title='5.5.2.1&emsp;Floating-point&emsp;[qty.fp.traits]'>treat_as_floating_point</a></span> <span class='operator'>=</span>
std<span class='operator'>::</span>chrono<span class='operator'>::</span>treat_as_floating_point_v<span class='anglebracket'>&lt;</span><span class='texttt'><i >actual-value-type-t</i></span><span class='anglebracket'>&lt;</span>Rep<span class='anglebracket'>&gt;</span><span class='anglebracket'>&gt;</span>;
</code></div></div><div class='para' id='qty.fp.traits-1'><div class='marginalizedparent'><a class='marginalized' href='#qty.fp.traits-1'>1</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L3708'>#</a></div><div class='texpara'><div id='qty.fp.traits-1.sentence-1' class='sentence'><span class='texttt'>quantity</span> and <span class='texttt'>quantity_<span class='shy'></span>point</span> use <span class='texttt'>treat_<span class='shy'></span>as_<span class='shy'></span>floating_<span class='shy'></span>point</span>
to help determine whether implicit conversions are allowed among them<a class='hidden_link' href='#qty.fp.traits-1.sentence-1'>.</a></div></div></div></div><div class='para' id='qty.fp.traits-2'><div class='marginalizedparent'><a class='marginalized' href='#qty.fp.traits-2'>2</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L3712'>#</a></div><div class='texpara'><div id='qty.fp.traits-2.sentence-1' class='sentence'><i >Remarks</i>: Pursuant to <a href="https://wg21.link/namespace.std">N4971, [namespace.std]</a> (<a href='spec.ext.html' title='4.1&emsp;External'>[spec.<span class='shy'></span>ext]</a>),
</code></div></div><div class='para' id='qty.fp.traits-1'><div class='marginalizedparent'><a class='marginalized' href='#qty.fp.traits-1'>1</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L3708'>#</a></div><div class='texpara'><div id='qty.fp.traits-1.sentence-1' class='sentence'><span class='texttt'>quantity</span> and <span class='texttt'>quantity_<span class='shy'></span>point</span> use <span class='texttt'>treat_<span class='shy'></span>as_<span class='shy'></span>floating_<span class='shy'></span>point</span>
to help determine whether implicit conversions are allowed among them<a class='hidden_link' href='#qty.fp.traits-1.sentence-1'>.</a></div></div></div></div><div class='para' id='qty.fp.traits-2'><div class='marginalizedparent'><a class='marginalized' href='#qty.fp.traits-2'>2</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L3712'>#</a></div><div class='texpara'><div id='qty.fp.traits-2.sentence-1' class='sentence'><i >Remarks</i>: Pursuant to <a href="https://wg21.link/namespace.std">N4971, [namespace.std]</a> (<a href='spec.ext.html' title='4.1&emsp;External'>[spec.<span class='shy'></span>ext]</a>),
users may specialize <span class='texttt'>treat_<span class='shy'></span>as_<span class='shy'></span>floating_<span class='shy'></span>point</span>
for cv-unqualified program-defined types<a class='hidden_link' href='#qty.fp.traits-2.sentence-1'>.</a></div> <div id='qty.fp.traits-2.sentence-2' class='sentence'>Such specializations shall be usable in constant expressions (<a href="https://wg21.link/expr.const">N4971, [expr.const]</a>)
and have type <span class='texttt'><span class='keyword'>const</span> <span class='keyword'>bool</span></span><a class='hidden_link' href='#qty.fp.traits-2.sentence-2'>.</a></div></div></div></div></div><div id='qty.char.traits' class='section'><h4 ><a class='secnum' href='#qty.char.traits' style='min-width:95pt'>5.5.2.2</a> Quantity character <a class='abbr_ref' href='qty.char.traits.html'>[qty.char.traits]</a></h4><div class='texpara'><div id='lib:disable_vector'><div id='lib:disable_complex'><div id='lib:disable_scalar'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:disable_scalar'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><span class='keyword'>typename</span> T<span class='anglebracket'>&gt;</span>
@ -23,12 +23,12 @@ and have type <span class='texttt'><span class='keyword'>const</span> <span clas
<span class='keyword'>constexpr</span> <span class='keyword'>bool</span> disable_complex <span class='operator'>=</span> <span class='literal'>false</span>;
<span class='keyword'>template</span><span class='anglebracket'>&lt;</span><span class='keyword'>typename</span> T<span class='anglebracket'>&gt;</span>
<span class='keyword'>constexpr</span> <span class='keyword'>bool</span> disable_vector <span class='operator'>=</span> <span class='literal'>false</span>;
</code></div></div></div></div></div><div class='para' id='qty.char.traits-1'><div class='marginalizedparent'><a class='marginalized' href='#qty.char.traits-1'>1</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L3736'>#</a></div><div class='texpara'><div id='qty.char.traits-1.sentence-1' class='sentence'>Some quantities are defined as having a numerical value (<a href="https://www.electropedia.org/iev/iev.nsf/display?openform&ievref=112-01-29">IEC 60050, 112-01-29</a>) of a specific set (<a href="https://www.electropedia.org/iev/iev.nsf/display?openform&ievref=102-01-02">IEC 60050, 102-01-02</a>)<a class='hidden_link' href='#qty.char.traits-1.sentence-1'>.</a></div> <div id='qty.char.traits-1.sentence-2' class='sentence'>The representation concepts use these traits
to help determine the sets <span class='texttt'>T</span> represents<a class='hidden_link' href='#qty.char.traits-1.sentence-2'>.</a></div></div></div></div><div class='para' id='qty.char.traits-2'><div class='marginalizedparent'><a class='marginalized' href='#qty.char.traits-2'>2</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L3741'>#</a></div><div class='texpara'><div id='qty.char.traits-2.sentence-1' class='sentence'><i >Remarks</i>: Pursuant to <a href="https://wg21.link/namespace.std">N4971, [namespace.std]</a> (<a href='spec.ext.html' title='4.1&emsp;External'>[spec.<span class='shy'></span>ext]</a>),
</code></div></div></div></div></div><div class='para' id='qty.char.traits-1'><div class='marginalizedparent'><a class='marginalized' href='#qty.char.traits-1'>1</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L3736'>#</a></div><div class='texpara'><div id='qty.char.traits-1.sentence-1' class='sentence'>Some quantities are defined as having a numerical value (<a href="https://www.electropedia.org/iev/iev.nsf/display?openform&ievref=112-01-29">IEC 60050, 112-01-29</a>) of a specific set (<a href="https://www.electropedia.org/iev/iev.nsf/display?openform&ievref=102-01-02">IEC 60050, 102-01-02</a>)<a class='hidden_link' href='#qty.char.traits-1.sentence-1'>.</a></div> <div id='qty.char.traits-1.sentence-2' class='sentence'>The representation concepts use these traits
to help determine the sets <span class='texttt'>T</span> represents<a class='hidden_link' href='#qty.char.traits-1.sentence-2'>.</a></div></div></div></div><div class='para' id='qty.char.traits-2'><div class='marginalizedparent'><a class='marginalized' href='#qty.char.traits-2'>2</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L3741'>#</a></div><div class='texpara'><div id='qty.char.traits-2.sentence-1' class='sentence'><i >Remarks</i>: Pursuant to <a href="https://wg21.link/namespace.std">N4971, [namespace.std]</a> (<a href='spec.ext.html' title='4.1&emsp;External'>[spec.<span class='shy'></span>ext]</a>),
users may specialize these templates
for cv-unqualified program-defined types<a class='hidden_link' href='#qty.char.traits-2.sentence-1'>.</a></div> <div id='qty.char.traits-2.sentence-2' class='sentence'>Such specializations shall be usable in constant expressions (<a href="https://wg21.link/expr.const">N4971, [expr.const]</a>)
and have type <span class='texttt'><span class='keyword'>const</span> <span class='keyword'>bool</span></span><a class='hidden_link' href='#qty.char.traits-2.sentence-2'>.</a></div></div></div></div><div class='para nonNormativeOnly' id='qty.char.traits-3'><div class='marginalizedparent'><a class='marginalized' href='#qty.char.traits-3'>3</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L3749'>#</a></div><div class='texpara'><div id='qty.char.traits-note-1' class='note'><div class='texpara'>[<i>Note&nbsp;<a href='#qty.char.traits-note-1'>1</a></i>:&ensp;<div id='qty.char.traits-3.sentence-1' class='sentence'>These templates prevent use of representation types with the library
that satisfy but do not in fact model their corresponding concept<a class='hidden_link' href='#qty.char.traits-3.sentence-1'>.</a></div>&nbsp;<i>end note</i>]</div></div></div></div></div></div><div id='qty.val.traits' class='section'><h4 ><a class='secnum' href='#qty.val.traits' style='min-width:95pt'>5.5.2.3</a> Values <a class='abbr_ref' href='qty.val.traits.html'>[qty.val.traits]</a></h4><div class='para' id='qty.val.traits-1'><div class='marginalizedparent'><a class='marginalized' href='#qty.val.traits-1'>1</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L3758'>#</a></div><div class='texpara'><div id='qty.val.traits-1.sentence-1' class='sentence'><span class='texttt'>quantity</span> and <span class='texttt'>quantity_<span class='shy'></span>point</span> use <span class='texttt'>representation_<span class='shy'></span>values</span>
and have type <span class='texttt'><span class='keyword'>const</span> <span class='keyword'>bool</span></span><a class='hidden_link' href='#qty.char.traits-2.sentence-2'>.</a></div></div></div></div><div class='para nonNormativeOnly' id='qty.char.traits-3'><div class='marginalizedparent'><a class='marginalized' href='#qty.char.traits-3'>3</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L3749'>#</a></div><div class='texpara'><div id='qty.char.traits-note-1' class='note'><div class='texpara'>[<i>Note&nbsp;<a href='#qty.char.traits-note-1'>1</a></i>:&ensp;<div id='qty.char.traits-3.sentence-1' class='sentence'>These templates prevent use of representation types with the library
that satisfy but do not in fact model their corresponding concept<a class='hidden_link' href='#qty.char.traits-3.sentence-1'>.</a></div>&nbsp;<i>end note</i>]</div></div></div></div></div></div><div id='qty.val.traits' class='section'><h4 ><a class='secnum' href='#qty.val.traits' style='min-width:95pt'>5.5.2.3</a> Values <a class='abbr_ref' href='qty.val.traits.html'>[qty.val.traits]</a></h4><div class='para' id='qty.val.traits-1'><div class='marginalizedparent'><a class='marginalized' href='#qty.val.traits-1'>1</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L3758'>#</a></div><div class='texpara'><div id='qty.val.traits-1.sentence-1' class='sentence'><span class='texttt'>quantity</span> and <span class='texttt'>quantity_<span class='shy'></span>point</span> use <span class='texttt'>representation_<span class='shy'></span>values</span>
to construct special values of its representation type<a class='hidden_link' href='#qty.val.traits-1.sentence-1'>.</a></div></div><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'>&lt;</span><span class='keyword'>typename</span> Rep<span class='anglebracket'>&gt;</span>
@ -37,24 +37,24 @@ to construct special values of its representation type<a class='hidden_link' hre
<span class='curlybracket'>}</span>;
<span class='curlybracket'>}</span>
</span></div></div><div class='para' id='qty.val.traits-2'><div class='marginalizedparent'><a class='marginalized' href='#qty.val.traits-2'>2</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L3773'>#</a></div><div class='texpara'><div id='qty.val.traits-2.sentence-1' class='sentence'>The requirements on <span class='texttt'>std<span class='operator'>&#x200b;::&#x200b;</span>chrono<span class='operator'>&#x200b;::&#x200b;</span>duration_<span class='shy'></span>values<span class='anglebracket'>&lt;</span>Rep<span class='anglebracket'>&gt;</span></span> (<a href="https://wg21.link/time.traits.duration.values">N4971, [time.traits.duration.values]</a>)
</span></div></div><div class='para' id='qty.val.traits-2'><div class='marginalizedparent'><a class='marginalized' href='#qty.val.traits-2'>2</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L3773'>#</a></div><div class='texpara'><div id='qty.val.traits-2.sentence-1' class='sentence'>The requirements on <span class='texttt'>std<span class='operator'>&#x200b;::&#x200b;</span>chrono<span class='operator'>&#x200b;::&#x200b;</span>duration_<span class='shy'></span>values<span class='anglebracket'>&lt;</span>Rep<span class='anglebracket'>&gt;</span></span> (<a href="https://wg21.link/time.traits.duration.values">N4971, [time.traits.duration.values]</a>)
also apply to <span class='texttt'>representation_<span class='shy'></span>values<span class='anglebracket'>&lt;</span>Rep<span class='anglebracket'>&gt;</span></span><a class='hidden_link' href='#qty.val.traits-2.sentence-1'>.</a></div></div></div><div class='texpara'><div class='itemdecl' id='qty.val.traits-itemdecl:1'><div class='marginalizedparent'><a class='itemDeclLink' href='#qty.val.traits-itemdecl:1'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>static</span> <span class='keyword'>constexpr</span> Rep one<span class='parenthesis'>(</span><span class='parenthesis'>)</span> <span class='keyword'>noexcept</span>;
</code></div></div><div class='para' id='qty.val.traits-3'><div class='marginalizedparent'><a class='marginalized' href='#qty.val.traits-3'>3</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L3782'>#</a></div><div class='texpara'><div id='qty.val.traits-3.sentence-1' class='sentence'><i >Returns</i>: <span class='texttt'>Rep<span class='parenthesis'>(</span><span class='literal'>1</span><span class='parenthesis'>)</span></span><a class='hidden_link' href='#qty.val.traits-3.sentence-1'>.</a></div></div></div></div><div class='para' id='qty.val.traits-4'><div class='marginalizedparent'><a class='marginalized' href='#qty.val.traits-4'>4</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L3786'>#</a></div><div class='texpara'><div id='qty.val.traits-4.sentence-1' class='sentence'><i >Remarks</i>: The value returned shall be the neutral element for multiplication (<a href="https://www.electropedia.org/iev/iev.nsf/display?openform&ievref=102-01-19">IEC 60050, 102-01-19</a>)<a class='hidden_link' href='#qty.val.traits-4.sentence-1'>.</a></div></div></div></div></div></div><div id='cpos' class='section'><h3 ><a class='secnum' href='#cpos' style='min-width:80pt'>5.5.3</a> Customization point objects <a class='abbr_ref' href='qty.rep.cpos.html'>[qty.rep.cpos]</a></h3><div id='cpos.general' class='section'><h4 ><a class='secnum' href='#cpos.general' style='min-width:95pt'>5.5.3.1</a> General <a class='abbr_ref' href='qty.rep.cpos.general.html'>[qty.rep.cpos.general]</a></h4><div class='para' id='cpos.general-1'><div class='marginalizedparent'><a class='marginalized' href='#cpos.general-1'>1</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L3795'>#</a></div><div class='texpara'><div id='cpos.general-1.sentence-1' class='sentence'>Within subclause <a href='#cpos' title='5.5.3&emsp;Customization point objects'>[qty.<span class='shy'></span>rep.<span class='shy'></span>cpos]</a>,
<a class='hidden_link' href='#def:reified_object' id='def:reified_object'><i>reified object</i></a> is as defined in <a href="https://wg21.link/range.access.general">N4971, [range.access.general]</a><a class='hidden_link' href='#cpos.general-1.sentence-1'>.</a></div></div></div></div><div id='qty.real.cpo' class='section'><h4 ><a class='secnum' href='#qty.real.cpo' style='min-width:95pt'>5.5.3.2</a> <span class='texttt'>mp_<span class='shy'></span>units&#x200b;::&#x200b;real</span> <a class='abbr_ref' href='qty.real.cpo.html'>[qty.real.cpo]</a></h4><div class='para' id='qty.real.cpo-1'><div class='marginalizedparent'><a class='marginalized' href='#qty.real.cpo-1'>1</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L3801'>#</a></div><div class='texpara'><div id='qty.real.cpo-1.sentence-1' class='sentence'>The name <span class='texttt'>mp_<span class='shy'></span>units<span class='operator'>&#x200b;::&#x200b;</span>real</span> denotes a customization point object (<a href="https://wg21.link/customization.point.object">N4971, [customization.point.object]</a>)<a class='hidden_link' href='#qty.real.cpo-1.sentence-1'>.</a></div></div></div><div class='para' id='qty.real.cpo-2'><div class='marginalizedparent'><a class='marginalized' href='#qty.real.cpo-2'>2</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L3804'>#</a></div><div class='texpara'><div id='qty.real.cpo-2.sentence-1' class='sentence'>Given a subexpression <span class='texttt'>E</span> with type <span class='texttt'>T</span>,
</code></div></div><div class='para' id='qty.val.traits-3'><div class='marginalizedparent'><a class='marginalized' href='#qty.val.traits-3'>3</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L3782'>#</a></div><div class='texpara'><div id='qty.val.traits-3.sentence-1' class='sentence'><i >Returns</i>: <span class='texttt'>Rep<span class='parenthesis'>(</span><span class='literal'>1</span><span class='parenthesis'>)</span></span><a class='hidden_link' href='#qty.val.traits-3.sentence-1'>.</a></div></div></div></div><div class='para' id='qty.val.traits-4'><div class='marginalizedparent'><a class='marginalized' href='#qty.val.traits-4'>4</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L3786'>#</a></div><div class='texpara'><div id='qty.val.traits-4.sentence-1' class='sentence'><i >Remarks</i>: The value returned shall be the neutral element for multiplication (<a href="https://www.electropedia.org/iev/iev.nsf/display?openform&ievref=102-01-19">IEC 60050, 102-01-19</a>)<a class='hidden_link' href='#qty.val.traits-4.sentence-1'>.</a></div></div></div></div></div></div><div id='cpos' class='section'><h3 ><a class='secnum' href='#cpos' style='min-width:80pt'>5.5.3</a> Customization point objects <a class='abbr_ref' href='qty.rep.cpos.html'>[qty.rep.cpos]</a></h3><div id='cpos.general' class='section'><h4 ><a class='secnum' href='#cpos.general' style='min-width:95pt'>5.5.3.1</a> General <a class='abbr_ref' href='qty.rep.cpos.general.html'>[qty.rep.cpos.general]</a></h4><div class='para' id='cpos.general-1'><div class='marginalizedparent'><a class='marginalized' href='#cpos.general-1'>1</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L3795'>#</a></div><div class='texpara'><div id='cpos.general-1.sentence-1' class='sentence'>Within subclause <a href='#cpos' title='5.5.3&emsp;Customization point objects'>[qty.<span class='shy'></span>rep.<span class='shy'></span>cpos]</a>,
<a class='hidden_link' href='#def:reified_object' id='def:reified_object'><i>reified object</i></a> is as defined in <a href="https://wg21.link/range.access.general">N4971, [range.access.general]</a><a class='hidden_link' href='#cpos.general-1.sentence-1'>.</a></div></div></div></div><div id='qty.real.cpo' class='section'><h4 ><a class='secnum' href='#qty.real.cpo' style='min-width:95pt'>5.5.3.2</a> <span class='texttt'>mp_<span class='shy'></span>units&#x200b;::&#x200b;real</span> <a class='abbr_ref' href='qty.real.cpo.html'>[qty.real.cpo]</a></h4><div class='para' id='qty.real.cpo-1'><div class='marginalizedparent'><a class='marginalized' href='#qty.real.cpo-1'>1</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L3801'>#</a></div><div class='texpara'><div id='qty.real.cpo-1.sentence-1' class='sentence'>The name <span class='texttt'>mp_<span class='shy'></span>units<span class='operator'>&#x200b;::&#x200b;</span>real</span> denotes a customization point object (<a href="https://wg21.link/customization.point.object">N4971, [customization.point.object]</a>)<a class='hidden_link' href='#qty.real.cpo-1.sentence-1'>.</a></div></div></div><div class='para' id='qty.real.cpo-2'><div class='marginalizedparent'><a class='marginalized' href='#qty.real.cpo-2'>2</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L3804'>#</a></div><div class='texpara'><div id='qty.real.cpo-2.sentence-1' class='sentence'>Given a subexpression <span class='texttt'>E</span> with type <span class='texttt'>T</span>,
let <span class='texttt'>t</span> be an lvalue that denotes the reified object for <span class='texttt'>E</span><a class='hidden_link' href='#qty.real.cpo-2.sentence-1'>.</a></div> <div id='qty.real.cpo-2.sentence-2' class='sentence'>Then:
<ul class='itemize'><li id='qty.real.cpo-2.1'><div class='marginalizedparent' style='left:-27mm'><a class='marginalized' href='#qty.real.cpo-2.1'>(2.1)</a></div><div class='texpara'><div id='qty.real.cpo-2.1.sentence-1' class='sentence'>If <span class='texttt'>T</span> does not model <a href='#concept:WeaklyRegular' title='5.5.4&emsp;Concepts&emsp;[qty.rep.concepts]'><span id='conceptref:WeaklyRegular'><span class='texttt'><i >WeaklyRegular</i></span></span></a>,
<span class='texttt'>mp_<span class='shy'></span>units<span class='operator'>&#x200b;::&#x200b;</span>real<span class='parenthesis'>(</span>E<span class='parenthesis'>)</span></span> is ill-formed<a class='hidden_link' href='#qty.real.cpo-2.1.sentence-1'>.</a></div></div></li><li id='qty.real.cpo-2.2'><div class='marginalizedparent' style='left:-27mm'><a class='marginalized' href='#qty.real.cpo-2.2'>(2.2)</a></div><div class='texpara'><div id='qty.real.cpo-2.2.sentence-1' class='sentence'>If <span class='texttt'><span class='keyword'>auto</span><span class='parenthesis'>(</span>t<span class='operator'>.</span>real<span class='parenthesis'>(</span><span class='parenthesis'>)</span><span class='parenthesis'>)</span></span> is a valid expression whose type models <a href='#concept:Scalar' title='5.5.4&emsp;Concepts&emsp;[qty.rep.concepts]'><span id='conceptref:Scalar'><span class='texttt'><i >Scalar</i></span></span></a>,
<span class='texttt'>mp_<span class='shy'></span>units<span class='operator'>&#x200b;::&#x200b;</span>real<span class='parenthesis'>(</span>E<span class='parenthesis'>)</span></span> is expression-equivalent to <span class='texttt'><span class='keyword'>auto</span><span class='parenthesis'>(</span>t<span class='operator'>.</span>real<span class='parenthesis'>(</span><span class='parenthesis'>)</span><span class='parenthesis'>)</span></span><a class='hidden_link' href='#qty.real.cpo-2.2.sentence-1'>.</a></div></div></li><li id='qty.real.cpo-2.3'><div class='marginalizedparent' style='left:-27mm'><a class='marginalized' href='#qty.real.cpo-2.3'>(2.3)</a></div><div class='texpara'><div id='qty.real.cpo-2.3.sentence-1' class='sentence'>Otherwise, if <span class='texttt'>T</span> is a class or enumeration type and
<span class='texttt'><span class='keyword'>auto</span><span class='parenthesis'>(</span>real<span class='parenthesis'>(</span>t<span class='parenthesis'>)</span><span class='parenthesis'>)</span></span> is a valid expression whose type models <a href='#concept:Scalar' title='5.5.4&emsp;Concepts&emsp;[qty.rep.concepts]'><span id='conceptref:Scalar_'><span class='texttt'><i >Scalar</i></span></span></a>
where the meaning of <span class='texttt'>real</span> is established as-if by performing argument-dependent lookup only (<a href="https://wg21.link/basic.lookup.argdep">N4971, [basic.lookup.argdep]</a>),
then <span class='texttt'>mp_<span class='shy'></span>units<span class='operator'>&#x200b;::&#x200b;</span>real<span class='parenthesis'>(</span>E<span class='parenthesis'>)</span></span> is expression-equivalent to that expression<a class='hidden_link' href='#qty.real.cpo-2.3.sentence-1'>.</a></div></div></li><li id='qty.real.cpo-2.4'><div class='marginalizedparent' style='left:-27mm'><a class='marginalized' href='#qty.real.cpo-2.4'>(2.4)</a></div><div class='texpara'><div id='qty.real.cpo-2.4.sentence-1' class='sentence'>Otherwise, <span class='texttt'>mp_<span class='shy'></span>units<span class='operator'>&#x200b;::&#x200b;</span>real<span class='parenthesis'>(</span>E<span class='parenthesis'>)</span></span> is ill-formed<a class='hidden_link' href='#qty.real.cpo-2.4.sentence-1'>.</a></div></div></li></ul></div></div></div></div><div id='qty.imag.cpo' class='section'><h4 ><a class='secnum' href='#qty.imag.cpo' style='min-width:95pt'>5.5.3.3</a> <span class='texttt'>mp_<span class='shy'></span>units&#x200b;::&#x200b;imag</span> <a class='abbr_ref' href='qty.imag.cpo.html'>[qty.imag.cpo]</a></h4><div class='para' id='qty.imag.cpo-1'><div class='marginalizedparent'><a class='marginalized' href='#qty.imag.cpo-1'>1</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L3826'>#</a></div><div class='texpara'><div id='qty.imag.cpo-1.sentence-1' class='sentence'>The name <span class='texttt'>mp_<span class='shy'></span>units<span class='operator'>&#x200b;::&#x200b;</span>imag</span> denotes a customization point object (<a href="https://wg21.link/customization.point.object">N4971, [customization.point.object]</a>)<a class='hidden_link' href='#qty.imag.cpo-1.sentence-1'>.</a></div></div></div><div class='para' id='qty.imag.cpo-2'><div class='marginalizedparent'><a class='marginalized' href='#qty.imag.cpo-2'>2</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L3829'>#</a></div><div class='texpara'><div id='qty.imag.cpo-2.sentence-1' class='sentence'>Given a subexpression <span class='texttt'>E</span> with type <span class='texttt'>T</span>,
then <span class='texttt'>mp_<span class='shy'></span>units<span class='operator'>&#x200b;::&#x200b;</span>real<span class='parenthesis'>(</span>E<span class='parenthesis'>)</span></span> is expression-equivalent to that expression<a class='hidden_link' href='#qty.real.cpo-2.3.sentence-1'>.</a></div></div></li><li id='qty.real.cpo-2.4'><div class='marginalizedparent' style='left:-27mm'><a class='marginalized' href='#qty.real.cpo-2.4'>(2.4)</a></div><div class='texpara'><div id='qty.real.cpo-2.4.sentence-1' class='sentence'>Otherwise, <span class='texttt'>mp_<span class='shy'></span>units<span class='operator'>&#x200b;::&#x200b;</span>real<span class='parenthesis'>(</span>E<span class='parenthesis'>)</span></span> is ill-formed<a class='hidden_link' href='#qty.real.cpo-2.4.sentence-1'>.</a></div></div></li></ul></div></div></div></div><div id='qty.imag.cpo' class='section'><h4 ><a class='secnum' href='#qty.imag.cpo' style='min-width:95pt'>5.5.3.3</a> <span class='texttt'>mp_<span class='shy'></span>units&#x200b;::&#x200b;imag</span> <a class='abbr_ref' href='qty.imag.cpo.html'>[qty.imag.cpo]</a></h4><div class='para' id='qty.imag.cpo-1'><div class='marginalizedparent'><a class='marginalized' href='#qty.imag.cpo-1'>1</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L3826'>#</a></div><div class='texpara'><div id='qty.imag.cpo-1.sentence-1' class='sentence'>The name <span class='texttt'>mp_<span class='shy'></span>units<span class='operator'>&#x200b;::&#x200b;</span>imag</span> denotes a customization point object (<a href="https://wg21.link/customization.point.object">N4971, [customization.point.object]</a>)<a class='hidden_link' href='#qty.imag.cpo-1.sentence-1'>.</a></div></div></div><div class='para' id='qty.imag.cpo-2'><div class='marginalizedparent'><a class='marginalized' href='#qty.imag.cpo-2'>2</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L3829'>#</a></div><div class='texpara'><div id='qty.imag.cpo-2.sentence-1' class='sentence'>Given a subexpression <span class='texttt'>E</span> with type <span class='texttt'>T</span>,
let <span class='texttt'>t</span> be an lvalue that denotes the reified object for <span class='texttt'>E</span><a class='hidden_link' href='#qty.imag.cpo-2.sentence-1'>.</a></div> <div id='qty.imag.cpo-2.sentence-2' class='sentence'>Then:
<ul class='itemize'><li id='qty.imag.cpo-2.1'><div class='marginalizedparent' style='left:-27mm'><a class='marginalized' href='#qty.imag.cpo-2.1'>(2.1)</a></div><div class='texpara'><div id='qty.imag.cpo-2.1.sentence-1' class='sentence'>If <span class='texttt'>T</span> does not model <a href='#concept:WeaklyRegular' title='5.5.4&emsp;Concepts&emsp;[qty.rep.concepts]'><span id='conceptref:WeaklyRegular_'><span class='texttt'><i >WeaklyRegular</i></span></span></a>,
<span class='texttt'>mp_<span class='shy'></span>units<span class='operator'>&#x200b;::&#x200b;</span>imag<span class='parenthesis'>(</span>E<span class='parenthesis'>)</span></span> is ill-formed<a class='hidden_link' href='#qty.imag.cpo-2.1.sentence-1'>.</a></div></div></li><li id='qty.imag.cpo-2.2'><div class='marginalizedparent' style='left:-27mm'><a class='marginalized' href='#qty.imag.cpo-2.2'>(2.2)</a></div><div class='texpara'><div id='qty.imag.cpo-2.2.sentence-1' class='sentence'>If <span class='texttt'><span class='keyword'>auto</span><span class='parenthesis'>(</span>t<span class='operator'>.</span>imag<span class='parenthesis'>(</span><span class='parenthesis'>)</span><span class='parenthesis'>)</span></span> is a valid expression whose type models <a href='#concept:Scalar' title='5.5.4&emsp;Concepts&emsp;[qty.rep.concepts]'><span id='conceptref:Scalar__'><span class='texttt'><i >Scalar</i></span></span></a>,
<span class='texttt'>mp_<span class='shy'></span>units<span class='operator'>&#x200b;::&#x200b;</span>imag<span class='parenthesis'>(</span>E<span class='parenthesis'>)</span></span> is expression-equivalent to <span class='texttt'><span class='keyword'>auto</span><span class='parenthesis'>(</span>t<span class='operator'>.</span>imag<span class='parenthesis'>(</span><span class='parenthesis'>)</span><span class='parenthesis'>)</span></span><a class='hidden_link' href='#qty.imag.cpo-2.2.sentence-1'>.</a></div></div></li><li id='qty.imag.cpo-2.3'><div class='marginalizedparent' style='left:-27mm'><a class='marginalized' href='#qty.imag.cpo-2.3'>(2.3)</a></div><div class='texpara'><div id='qty.imag.cpo-2.3.sentence-1' class='sentence'>Otherwise, if <span class='texttt'>T</span> is a class or enumeration type and
<span class='texttt'><span class='keyword'>auto</span><span class='parenthesis'>(</span>imag<span class='parenthesis'>(</span>t<span class='parenthesis'>)</span><span class='parenthesis'>)</span></span> is a valid expression whose type models <a href='#concept:Scalar' title='5.5.4&emsp;Concepts&emsp;[qty.rep.concepts]'><span id='conceptref:Scalar___'><span class='texttt'><i >Scalar</i></span></span></a>
where the meaning of <span class='texttt'>imag</span> is established as-if by performing argument-dependent lookup only (<a href="https://wg21.link/basic.lookup.argdep">N4971, [basic.lookup.argdep]</a>),
then <span class='texttt'>mp_<span class='shy'></span>units<span class='operator'>&#x200b;::&#x200b;</span>imag<span class='parenthesis'>(</span>E<span class='parenthesis'>)</span></span> is expression-equivalent to that expression<a class='hidden_link' href='#qty.imag.cpo-2.3.sentence-1'>.</a></div></div></li><li id='qty.imag.cpo-2.4'><div class='marginalizedparent' style='left:-27mm'><a class='marginalized' href='#qty.imag.cpo-2.4'>(2.4)</a></div><div class='texpara'><div id='qty.imag.cpo-2.4.sentence-1' class='sentence'>Otherwise, <span class='texttt'>mp_<span class='shy'></span>units<span class='operator'>&#x200b;::&#x200b;</span>imag<span class='parenthesis'>(</span>E<span class='parenthesis'>)</span></span> is ill-formed<a class='hidden_link' href='#qty.imag.cpo-2.4.sentence-1'>.</a></div></div></li></ul></div></div></div></div><div id='qty.modulus.cpo' class='section'><h4 ><a class='secnum' href='#qty.modulus.cpo' style='min-width:95pt'>5.5.3.4</a> <span class='texttt'>mp_<span class='shy'></span>units&#x200b;::&#x200b;modulus</span> <a class='abbr_ref' href='qty.modulus.cpo.html'>[qty.modulus.cpo]</a></h4><div class='para' id='qty.modulus.cpo-1'><div class='marginalizedparent'><a class='marginalized' href='#qty.modulus.cpo-1'>1</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L3851'>#</a></div><div class='texpara'><div id='qty.modulus.cpo-1.sentence-1' class='sentence'>The name <span class='texttt'>mp_<span class='shy'></span>units<span class='operator'>&#x200b;::&#x200b;</span>modulus</span> denotes a customization point object (<a href="https://wg21.link/customization.point.object">N4971, [customization.point.object]</a>)<a class='hidden_link' href='#qty.modulus.cpo-1.sentence-1'>.</a></div></div></div><div class='para' id='qty.modulus.cpo-2'><div class='marginalizedparent'><a class='marginalized' href='#qty.modulus.cpo-2'>2</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L3854'>#</a></div><div class='texpara'><div id='qty.modulus.cpo-2.sentence-1' class='sentence'>Given a subexpression <span class='texttt'>E</span> with type <span class='texttt'>T</span>,
then <span class='texttt'>mp_<span class='shy'></span>units<span class='operator'>&#x200b;::&#x200b;</span>imag<span class='parenthesis'>(</span>E<span class='parenthesis'>)</span></span> is expression-equivalent to that expression<a class='hidden_link' href='#qty.imag.cpo-2.3.sentence-1'>.</a></div></div></li><li id='qty.imag.cpo-2.4'><div class='marginalizedparent' style='left:-27mm'><a class='marginalized' href='#qty.imag.cpo-2.4'>(2.4)</a></div><div class='texpara'><div id='qty.imag.cpo-2.4.sentence-1' class='sentence'>Otherwise, <span class='texttt'>mp_<span class='shy'></span>units<span class='operator'>&#x200b;::&#x200b;</span>imag<span class='parenthesis'>(</span>E<span class='parenthesis'>)</span></span> is ill-formed<a class='hidden_link' href='#qty.imag.cpo-2.4.sentence-1'>.</a></div></div></li></ul></div></div></div></div><div id='qty.modulus.cpo' class='section'><h4 ><a class='secnum' href='#qty.modulus.cpo' style='min-width:95pt'>5.5.3.4</a> <span class='texttt'>mp_<span class='shy'></span>units&#x200b;::&#x200b;modulus</span> <a class='abbr_ref' href='qty.modulus.cpo.html'>[qty.modulus.cpo]</a></h4><div class='para' id='qty.modulus.cpo-1'><div class='marginalizedparent'><a class='marginalized' href='#qty.modulus.cpo-1'>1</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L3851'>#</a></div><div class='texpara'><div id='qty.modulus.cpo-1.sentence-1' class='sentence'>The name <span class='texttt'>mp_<span class='shy'></span>units<span class='operator'>&#x200b;::&#x200b;</span>modulus</span> denotes a customization point object (<a href="https://wg21.link/customization.point.object">N4971, [customization.point.object]</a>)<a class='hidden_link' href='#qty.modulus.cpo-1.sentence-1'>.</a></div></div></div><div class='para' id='qty.modulus.cpo-2'><div class='marginalizedparent'><a class='marginalized' href='#qty.modulus.cpo-2'>2</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L3854'>#</a></div><div class='texpara'><div id='qty.modulus.cpo-2.sentence-1' class='sentence'>Given a subexpression <span class='texttt'>E</span> with type <span class='texttt'>T</span>,
let <span class='texttt'>t</span> be an lvalue that denotes the reified object for <span class='texttt'>E</span><a class='hidden_link' href='#qty.modulus.cpo-2.sentence-1'>.</a></div> <div id='qty.modulus.cpo-2.sentence-2' class='sentence'>Then:
<ul class='itemize'><li id='qty.modulus.cpo-2.1'><div class='marginalizedparent' style='left:-27mm'><a class='marginalized' href='#qty.modulus.cpo-2.1'>(2.1)</a></div><div class='texpara'><div id='qty.modulus.cpo-2.1.sentence-1' class='sentence'>If <span class='texttt'>T</span> does not model <a href='#concept:WeaklyRegular' title='5.5.4&emsp;Concepts&emsp;[qty.rep.concepts]'><span id='conceptref:WeaklyRegular__'><span class='texttt'><i >WeaklyRegular</i></span></span></a>,
<span class='texttt'>mp_<span class='shy'></span>units<span class='operator'>&#x200b;::&#x200b;</span>modulus<span class='parenthesis'>(</span>E<span class='parenthesis'>)</span></span> is ill-formed<a class='hidden_link' href='#qty.modulus.cpo-2.1.sentence-1'>.</a></div></div></li><li id='qty.modulus.cpo-2.2'><div class='marginalizedparent' style='left:-27mm'><a class='marginalized' href='#qty.modulus.cpo-2.2'>(2.2)</a></div><div class='texpara'><div id='qty.modulus.cpo-2.2.sentence-1' class='sentence'>If <span class='texttt'><span class='keyword'>auto</span><span class='parenthesis'>(</span>t<span class='operator'>.</span>modulus<span class='parenthesis'>(</span><span class='parenthesis'>)</span><span class='parenthesis'>)</span></span> is a valid expression whose type models <a href='#concept:Scalar' title='5.5.4&emsp;Concepts&emsp;[qty.rep.concepts]'><span id='conceptref:Scalar____'><span class='texttt'><i >Scalar</i></span></span></a>,
@ -65,7 +65,7 @@ then <span class='texttt'>mp_<span class='shy'></span>units<span class='operator
<span class='texttt'>mp_<span class='shy'></span>units<span class='operator'>&#x200b;::&#x200b;</span>modulus<span class='parenthesis'>(</span>E<span class='parenthesis'>)</span></span> is expression-equivalent to <span class='texttt'><span class='keyword'>auto</span><span class='parenthesis'>(</span>t<span class='operator'>.</span>abs<span class='parenthesis'>(</span><span class='parenthesis'>)</span><span class='parenthesis'>)</span></span><a class='hidden_link' href='#qty.modulus.cpo-2.4.sentence-1'>.</a></div></div></li><li id='qty.modulus.cpo-2.5'><div class='marginalizedparent' style='left:-27mm'><a class='marginalized' href='#qty.modulus.cpo-2.5'>(2.5)</a></div><div class='texpara'><div id='qty.modulus.cpo-2.5.sentence-1' class='sentence'>Otherwise, if <span class='texttt'>T</span> is a class or enumeration type and
<span class='texttt'><span class='keyword'>auto</span><span class='parenthesis'>(</span>abs<span class='parenthesis'>(</span>t<span class='parenthesis'>)</span><span class='parenthesis'>)</span></span> is a valid expression whose type models <a href='#concept:Scalar' title='5.5.4&emsp;Concepts&emsp;[qty.rep.concepts]'><span id='conceptref:Scalar_______'><span class='texttt'><i >Scalar</i></span></span></a>
where the meaning of <span class='texttt'>abs</span> is established as-if by performing argument-dependent lookup only (<a href="https://wg21.link/basic.lookup.argdep">N4971, [basic.lookup.argdep]</a>),
then <span class='texttt'>mp_<span class='shy'></span>units<span class='operator'>&#x200b;::&#x200b;</span>modulus<span class='parenthesis'>(</span>E<span class='parenthesis'>)</span></span> is expression-equivalent to that expression<a class='hidden_link' href='#qty.modulus.cpo-2.5.sentence-1'>.</a></div></div></li><li id='qty.modulus.cpo-2.6'><div class='marginalizedparent' style='left:-27mm'><a class='marginalized' href='#qty.modulus.cpo-2.6'>(2.6)</a></div><div class='texpara'><div id='qty.modulus.cpo-2.6.sentence-1' class='sentence'>Otherwise, <span class='texttt'>mp_<span class='shy'></span>units<span class='operator'>&#x200b;::&#x200b;</span>modulus<span class='parenthesis'>(</span>E<span class='parenthesis'>)</span></span> is ill-formed<a class='hidden_link' href='#qty.modulus.cpo-2.6.sentence-1'>.</a></div></div></li></ul></div></div></div></div><div id='qty.mag.cpo' class='section'><h4 ><a class='secnum' href='#qty.mag.cpo' style='min-width:95pt'>5.5.3.5</a> <span class='texttt'>mp_<span class='shy'></span>units&#x200b;::&#x200b;magnitude</span> <a class='abbr_ref' href='qty.mag.cpo.html'>[qty.mag.cpo]</a></h4><div class='para' id='qty.mag.cpo-1'><div class='marginalizedparent'><a class='marginalized' href='#qty.mag.cpo-1'>1</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L3884'>#</a></div><div class='texpara'><div id='qty.mag.cpo-1.sentence-1' class='sentence'>The name <span class='texttt'>mp_<span class='shy'></span>units<span class='operator'>&#x200b;::&#x200b;</span>magnitude</span> denotes a customization point object (<a href="https://wg21.link/customization.point.object">N4971, [customization.point.object]</a>)<a class='hidden_link' href='#qty.mag.cpo-1.sentence-1'>.</a></div></div></div><div class='para' id='qty.mag.cpo-2'><div class='marginalizedparent'><a class='marginalized' href='#qty.mag.cpo-2'>2</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L3887'>#</a></div><div class='texpara'><div id='qty.mag.cpo-2.sentence-1' class='sentence'>Given a subexpression <span class='texttt'>E</span> with type <span class='texttt'>T</span>,
then <span class='texttt'>mp_<span class='shy'></span>units<span class='operator'>&#x200b;::&#x200b;</span>modulus<span class='parenthesis'>(</span>E<span class='parenthesis'>)</span></span> is expression-equivalent to that expression<a class='hidden_link' href='#qty.modulus.cpo-2.5.sentence-1'>.</a></div></div></li><li id='qty.modulus.cpo-2.6'><div class='marginalizedparent' style='left:-27mm'><a class='marginalized' href='#qty.modulus.cpo-2.6'>(2.6)</a></div><div class='texpara'><div id='qty.modulus.cpo-2.6.sentence-1' class='sentence'>Otherwise, <span class='texttt'>mp_<span class='shy'></span>units<span class='operator'>&#x200b;::&#x200b;</span>modulus<span class='parenthesis'>(</span>E<span class='parenthesis'>)</span></span> is ill-formed<a class='hidden_link' href='#qty.modulus.cpo-2.6.sentence-1'>.</a></div></div></li></ul></div></div></div></div><div id='qty.mag.cpo' class='section'><h4 ><a class='secnum' href='#qty.mag.cpo' style='min-width:95pt'>5.5.3.5</a> <span class='texttt'>mp_<span class='shy'></span>units&#x200b;::&#x200b;magnitude</span> <a class='abbr_ref' href='qty.mag.cpo.html'>[qty.mag.cpo]</a></h4><div class='para' id='qty.mag.cpo-1'><div class='marginalizedparent'><a class='marginalized' href='#qty.mag.cpo-1'>1</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L3884'>#</a></div><div class='texpara'><div id='qty.mag.cpo-1.sentence-1' class='sentence'>The name <span class='texttt'>mp_<span class='shy'></span>units<span class='operator'>&#x200b;::&#x200b;</span>magnitude</span> denotes a customization point object (<a href="https://wg21.link/customization.point.object">N4971, [customization.point.object]</a>)<a class='hidden_link' href='#qty.mag.cpo-1.sentence-1'>.</a></div></div></div><div class='para' id='qty.mag.cpo-2'><div class='marginalizedparent'><a class='marginalized' href='#qty.mag.cpo-2'>2</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L3887'>#</a></div><div class='texpara'><div id='qty.mag.cpo-2.sentence-1' class='sentence'>Given a subexpression <span class='texttt'>E</span> with type <span class='texttt'>T</span>,
let <span class='texttt'>t</span> be an lvalue that denotes the reified object for <span class='texttt'>E</span><a class='hidden_link' href='#qty.mag.cpo-2.sentence-1'>.</a></div> <div id='qty.mag.cpo-2.sentence-2' class='sentence'>Then:
<ul class='itemize'><li id='qty.mag.cpo-2.1'><div class='marginalizedparent' style='left:-27mm'><a class='marginalized' href='#qty.mag.cpo-2.1'>(2.1)</a></div><div class='texpara'><div id='qty.mag.cpo-2.1.sentence-1' class='sentence'>If <span class='texttt'>T</span> does not model <a href='#concept:WeaklyRegular' title='5.5.4&emsp;Concepts&emsp;[qty.rep.concepts]'><span id='conceptref:WeaklyRegular___'><span class='texttt'><i >WeaklyRegular</i></span></span></a>,
<span class='texttt'>mp_<span class='shy'></span>units<span class='operator'>&#x200b;::&#x200b;</span>magnitude<span class='parenthesis'>(</span>E<span class='parenthesis'>)</span></span> is ill-formed<a class='hidden_link' href='#qty.mag.cpo-2.1.sentence-1'>.</a></div></div></li><li id='qty.mag.cpo-2.2'><div class='marginalizedparent' style='left:-27mm'><a class='marginalized' href='#qty.mag.cpo-2.2'>(2.2)</a></div><div class='texpara'><div id='qty.mag.cpo-2.2.sentence-1' class='sentence'>If <span class='texttt'><span class='keyword'>auto</span><span class='parenthesis'>(</span>t<span class='operator'>.</span>magnitude<span class='parenthesis'>(</span><span class='parenthesis'>)</span><span class='parenthesis'>)</span></span> is a valid expression whose type models <a href='#concept:Scalar' title='5.5.4&emsp;Concepts&emsp;[qty.rep.concepts]'><span id='conceptref:Scalar________'><span class='texttt'><i >Scalar</i></span></span></a>,
@ -88,7 +88,7 @@ then <span class='texttt'>mp_<span class='shy'></span>units<span class='operator
<span class='curlybracket'>{</span> a <span class='operator'>*</span> b <span class='curlybracket'>}</span> <span class='operator'>-</span><span class='anglebracket'>&gt;</span> std<span class='operator'>::</span>common_with<span class='anglebracket'>&lt;</span>T<span class='anglebracket'>&gt;</span>;
<span class='curlybracket'>{</span> a <span class='operator'>/</span> b <span class='curlybracket'>}</span> <span class='operator'>-</span><span class='anglebracket'>&gt;</span> std<span class='operator'>::</span>common_with<span class='anglebracket'>&lt;</span>T<span class='anglebracket'>&gt;</span>;
<span class='curlybracket'>}</span>;
</code></div></div><div class='para' id='concepts-1'><div class='marginalizedparent'><a class='marginalized' href='#concepts-1'>1</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L3932'>#</a></div><div class='texpara'><div id='concepts-1.sentence-1' class='sentence'>TBD<a class='hidden_link' href='#concepts-1.sentence-1'>.</a></div></div></div><div class='texpara'><div class='itemdecl' id='concept:Complex'><div class='marginalizedparent'><a class='itemDeclLink' href='#concept:Complex'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><span class='keyword'>typename</span> T<span class='anglebracket'>&gt;</span>
</code></div></div><div class='para' id='concepts-1'><div class='marginalizedparent'><a class='marginalized' href='#concepts-1'>1</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L3932'>#</a></div><div class='texpara'><div id='concepts-1.sentence-1' class='sentence'>TBD<a class='hidden_link' href='#concepts-1.sentence-1'>.</a></div></div></div><div class='texpara'><div class='itemdecl' id='concept:Complex'><div class='marginalizedparent'><a class='itemDeclLink' href='#concept:Complex'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><span class='keyword'>typename</span> T<span class='anglebracket'>&gt;</span>
<span class='keyword'>using</span> <span class='texttt'><i >value-type-t</i></span> <span class='operator'>=</span> <span class='texttt'><i >actual-value-type-t</i></span><span class='anglebracket'>&lt;</span>T<span class='anglebracket'>&gt;</span>; <span class='comment'>// <i >exposition only</i>, see <a href='#qty.fp.traits' title='5.5.2.1&emsp;Floating-point'>[qty.<span class='shy'></span>fp.<span class='shy'></span>traits]</a></span>
<span class='keyword'>template</span><span class='anglebracket'>&lt;</span><span class='keyword'>typename</span> T<span class='anglebracket'>&gt;</span>
@ -109,7 +109,7 @@ then <span class='texttt'>mp_<span class='shy'></span>units<span class='operator
<span class='operator'>::</span>mp_units<span class='operator'>::</span>imag<span class='parenthesis'>(</span>a<span class='parenthesis'>)</span>;
<span class='operator'>::</span>mp_units<span class='operator'>::</span>modulus<span class='parenthesis'>(</span>a<span class='parenthesis'>)</span>;
<span class='curlybracket'>}</span>;
</code></div></div><div class='para' id='concepts-2'><div class='marginalizedparent'><a class='marginalized' href='#concepts-2'>2</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L3959'>#</a></div><div class='texpara'><div id='concepts-2.sentence-1' class='sentence'>TBD<a class='hidden_link' href='#concepts-2.sentence-1'>.</a></div></div></div><div class='texpara'><div class='itemdecl' id='concept:Vector'><div class='marginalizedparent'><a class='itemDeclLink' href='#concept:Vector'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><span class='keyword'>typename</span> T<span class='anglebracket'>&gt;</span>
</code></div></div><div class='para' id='concepts-2'><div class='marginalizedparent'><a class='marginalized' href='#concepts-2'>2</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L3959'>#</a></div><div class='texpara'><div id='concepts-2.sentence-1' class='sentence'>TBD<a class='hidden_link' href='#concepts-2.sentence-1'>.</a></div></div></div><div class='texpara'><div class='itemdecl' id='concept:Vector'><div class='marginalizedparent'><a class='itemDeclLink' href='#concept:Vector'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><span class='keyword'>typename</span> T<span class='anglebracket'>&gt;</span>
<span class='keyword'>concept</span> <span class='texttt'><i >Vector</i></span><a class='index' id='concept:Vector'></a> <span class='operator'>=</span> <span class='comment'>// <i >exposition only</i></span>
<span class='parenthesis'>(</span><span class='operator'>!</span>disable_vector<span class='anglebracket'>&lt;</span>T<span class='anglebracket'>&gt;</span><span class='parenthesis'>)</span> <span class='operator'>&amp;</span><span class='operator'>&amp;</span> <a class='index' id='conceptref:WeaklyRegular______'></a><span class='texttt'><i >WeaklyRegular</i></span><span class='anglebracket'>&lt;</span>T<span class='anglebracket'>&gt;</span> <span class='operator'>&amp;</span><span class='operator'>&amp;</span> <a class='index' id='conceptref:Scalar_____________'></a><span class='texttt'><i >Scalar</i></span><span class='anglebracket'>&lt;</span><span class='texttt'><i >value-type-t</i></span><span class='anglebracket'>&lt;</span>T<span class='anglebracket'>&gt;</span><span class='anglebracket'>&gt;</span> <span class='operator'>&amp;</span><span class='operator'>&amp;</span>
<span class='keyword'>requires</span><span class='parenthesis'>(</span>T a, T b, <span class='texttt'><i >value-type-t</i></span><span class='anglebracket'>&lt;</span>T<span class='anglebracket'>&gt;</span> s<span class='parenthesis'>)</span> <span class='curlybracket'>{</span>
@ -122,7 +122,7 @@ then <span class='texttt'>mp_<span class='shy'></span>units<span class='operator
<span class='curlybracket'>{</span> a <span class='operator'>/</span> s <span class='curlybracket'>}</span> <span class='operator'>-</span><span class='anglebracket'>&gt;</span> std<span class='operator'>::</span>common_with<span class='anglebracket'>&lt;</span>T<span class='anglebracket'>&gt;</span>;
<span class='operator'>::</span>mp_units<span class='operator'>::</span>magnitude<span class='parenthesis'>(</span>a<span class='parenthesis'>)</span>;
<span class='curlybracket'>}</span>;
</code></div></div><div class='para' id='concepts-3'><div class='marginalizedparent'><a class='marginalized' href='#concepts-3'>3</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L3978'>#</a></div><div class='texpara'><div id='concepts-3.sentence-1' class='sentence'>TBD<a class='hidden_link' href='#concepts-3.sentence-1'>.</a></div></div></div><div class='texpara'><div class='itemdecl' id='concept:ScalarRepresentation'><div class='marginalizedparent'><a class='itemDeclLink' href='#concept:ScalarRepresentation'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><span class='keyword'>typename</span> T<span class='anglebracket'>&gt;</span>
</code></div></div><div class='para' id='concepts-3'><div class='marginalizedparent'><a class='marginalized' href='#concepts-3'>3</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L3978'>#</a></div><div class='texpara'><div id='concepts-3.sentence-1' class='sentence'>TBD<a class='hidden_link' href='#concepts-3.sentence-1'>.</a></div></div></div><div class='texpara'><div class='itemdecl' id='concept:ScalarRepresentation'><div class='marginalizedparent'><a class='itemDeclLink' href='#concept:ScalarRepresentation'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><span class='keyword'>typename</span> T<span class='anglebracket'>&gt;</span>
<span class='keyword'>using</span> <span class='texttt'><i >scaling-factor-type-t</i></span> <span class='operator'>=</span> <span class='comment'>// <i >exposition only</i></span>
std<span class='operator'>::</span>conditional_t<span class='anglebracket'>&lt;</span>treat_as_floating_point<span class='anglebracket'>&lt;</span>T<span class='anglebracket'>&gt;</span>, <span class='keyword'>long</span> <span class='keyword'>double</span>, std<span class='operator'>::</span>intmax_t<span class='anglebracket'>&gt;</span>;
@ -135,7 +135,7 @@ then <span class='texttt'>mp_<span class='shy'></span>units<span class='operator
<span class='curlybracket'>{</span> f <span class='operator'>*</span> a <span class='curlybracket'>}</span> <span class='operator'>-</span><span class='anglebracket'>&gt;</span> std<span class='operator'>::</span>common_with<span class='anglebracket'>&lt;</span>T<span class='anglebracket'>&gt;</span>;
<span class='curlybracket'>{</span> a <span class='operator'>/</span> f <span class='curlybracket'>}</span> <span class='operator'>-</span><span class='anglebracket'>&gt;</span> std<span class='operator'>::</span>common_with<span class='anglebracket'>&lt;</span>T<span class='anglebracket'>&gt;</span>;
<span class='curlybracket'>}</span>;
</code></div></div><div class='para' id='concepts-4'><div class='marginalizedparent'><a class='marginalized' href='#concepts-4'>4</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L3997'>#</a></div><div class='texpara'><div id='concepts-4.sentence-1' class='sentence'>TBD<a class='hidden_link' href='#concepts-4.sentence-1'>.</a></div></div></div><div class='texpara'><div class='itemdecl' id='concept:ComplexRepresentation'><div class='marginalizedparent'><a class='itemDeclLink' href='#concept:ComplexRepresentation'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><span class='keyword'>typename</span> T<span class='anglebracket'>&gt;</span>
</code></div></div><div class='para' id='concepts-4'><div class='marginalizedparent'><a class='marginalized' href='#concepts-4'>4</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L3997'>#</a></div><div class='texpara'><div id='concepts-4.sentence-1' class='sentence'>TBD<a class='hidden_link' href='#concepts-4.sentence-1'>.</a></div></div></div><div class='texpara'><div class='itemdecl' id='concept:ComplexRepresentation'><div class='marginalizedparent'><a class='itemDeclLink' href='#concept:ComplexRepresentation'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><span class='keyword'>typename</span> T<span class='anglebracket'>&gt;</span>
<span class='keyword'>concept</span> <span class='texttt'><i >ComplexRepresentation</i></span><a class='index' id='concept:ComplexRepresentation'></a> <span class='operator'>=</span> <span class='comment'>// <i >exposition only</i></span>
<span class='parenthesis'>(</span><span class='operator'>!</span><span class='texttt'><i >is-specialization-of</i></span><span class='anglebracket'>&lt;</span>T, quantity<span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span><span class='parenthesis'>)</span><span class='parenthesis'>)</span> <span class='operator'>&amp;</span><span class='operator'>&amp;</span> <a class='index' id='conceptref:Complex'></a><span class='texttt'><i >Complex</i></span><span class='anglebracket'>&lt;</span>T<span class='anglebracket'>&gt;</span> <span class='operator'>&amp;</span><span class='operator'>&amp;</span>
<span class='keyword'>requires</span><span class='parenthesis'>(</span>T a, T b, <span class='texttt'><i >scaling-factor-type-t</i></span><span class='anglebracket'>&lt;</span>T<span class='anglebracket'>&gt;</span> f<span class='parenthesis'>)</span> <span class='curlybracket'>{</span>
@ -144,13 +144,13 @@ then <span class='texttt'>mp_<span class='shy'></span>units<span class='operator
<span class='curlybracket'>{</span> T<span class='parenthesis'>(</span>f<span class='parenthesis'>)</span> <span class='operator'>*</span> a <span class='curlybracket'>}</span> <span class='operator'>-</span><span class='anglebracket'>&gt;</span> std<span class='operator'>::</span>common_with<span class='anglebracket'>&lt;</span>T<span class='anglebracket'>&gt;</span>;
<span class='curlybracket'>{</span> a <span class='operator'>/</span> T<span class='parenthesis'>(</span>f<span class='parenthesis'>)</span> <span class='curlybracket'>}</span> <span class='operator'>-</span><span class='anglebracket'>&gt;</span> std<span class='operator'>::</span>common_with<span class='anglebracket'>&lt;</span>T<span class='anglebracket'>&gt;</span>;
<span class='curlybracket'>}</span>;
</code></div></div><div class='para' id='concepts-5'><div class='marginalizedparent'><a class='marginalized' href='#concepts-5'>5</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L4012'>#</a></div><div class='texpara'><div id='concepts-5.sentence-1' class='sentence'>TBD<a class='hidden_link' href='#concepts-5.sentence-1'>.</a></div></div></div><div class='texpara'><div class='itemdecl' id='concept:VectorRepresentation'><div class='marginalizedparent'><a class='itemDeclLink' href='#concept:VectorRepresentation'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><span class='keyword'>typename</span> T<span class='anglebracket'>&gt;</span>
</code></div></div><div class='para' id='concepts-5'><div class='marginalizedparent'><a class='marginalized' href='#concepts-5'>5</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L4012'>#</a></div><div class='texpara'><div id='concepts-5.sentence-1' class='sentence'>TBD<a class='hidden_link' href='#concepts-5.sentence-1'>.</a></div></div></div><div class='texpara'><div class='itemdecl' id='concept:VectorRepresentation'><div class='marginalizedparent'><a class='itemDeclLink' href='#concept:VectorRepresentation'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><span class='keyword'>typename</span> T<span class='anglebracket'>&gt;</span>
<span class='keyword'>concept</span> <span class='texttt'><i >VectorRepresentation</i></span><a class='index' id='concept:VectorRepresentation'></a> <span class='operator'>=</span> <span class='comment'>// <i >exposition only</i></span>
<span class='parenthesis'>(</span><span class='operator'>!</span><span class='texttt'><i >is-specialization-of</i></span><span class='anglebracket'>&lt;</span>T, quantity<span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span><span class='parenthesis'>)</span><span class='parenthesis'>)</span> <span class='operator'>&amp;</span><span class='operator'>&amp;</span> <a class='index' id='conceptref:Vector'></a><span class='texttt'><i >Vector</i></span><span class='anglebracket'>&lt;</span>T<span class='anglebracket'>&gt;</span>;
</code></div></div><div class='para' id='concepts-6'><div class='marginalizedparent'><a class='marginalized' href='#concepts-6'>6</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L4021'>#</a></div><div class='texpara'><div id='concepts-6.sentence-1' class='sentence'>TBD<a class='hidden_link' href='#concepts-6.sentence-1'>.</a></div></div></div><div class='texpara'><div class='itemdecl' id='concept:Representation'><div class='marginalizedparent'><a class='itemDeclLink' href='#concept:Representation'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><span class='keyword'>typename</span> T<span class='anglebracket'>&gt;</span>
</code></div></div><div class='para' id='concepts-6'><div class='marginalizedparent'><a class='marginalized' href='#concepts-6'>6</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L4021'>#</a></div><div class='texpara'><div id='concepts-6.sentence-1' class='sentence'>TBD<a class='hidden_link' href='#concepts-6.sentence-1'>.</a></div></div></div><div class='texpara'><div class='itemdecl' id='concept:Representation'><div class='marginalizedparent'><a class='itemDeclLink' href='#concept:Representation'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><span class='keyword'>typename</span> T<span class='anglebracket'>&gt;</span>
<span class='keyword'>concept</span> <a class='hidden_link' href='#concept:Representation' title='5.5.4&emsp;Concepts&emsp;[qty.rep.concepts]'><span id='concept:Representation'><span id='lib:Representation'><span class='texttt'>Representation</span></span></span></a> <span class='operator'>=</span> <a class='index' id='conceptref:ScalarRepresentation'></a><span class='texttt'><i >ScalarRepresentation</i></span><span class='anglebracket'>&lt;</span>T<span class='anglebracket'>&gt;</span> <span class='operator'>|</span><span class='operator'>|</span> <a class='index' id='conceptref:ComplexRepresentation'></a><span class='texttt'><i >ComplexRepresentation</i></span><span class='anglebracket'>&lt;</span>T<span class='anglebracket'>&gt;</span> <span class='operator'>|</span><span class='operator'>|</span>
<a class='index' id='conceptref:VectorRepresentation'></a><span class='texttt'><i >VectorRepresentation</i></span><span class='anglebracket'>&lt;</span>T<span class='anglebracket'>&gt;</span>;
</code></div></div><div class='para' id='concepts-7'><div class='marginalizedparent'><a class='marginalized' href='#concepts-7'>7</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L4030'>#</a></div><div class='texpara'><div id='concepts-7.sentence-1' class='sentence'>A type <span class='texttt'>T</span> models <a href='#concept:Representation' title='5.5.4&emsp;Concepts&emsp;[qty.rep.concepts]'><span id='conceptref:Representation'><span class='texttt'>Representation</span></span></a> if
</code></div></div><div class='para' id='concepts-7'><div class='marginalizedparent'><a class='marginalized' href='#concepts-7'>7</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L4030'>#</a></div><div class='texpara'><div id='concepts-7.sentence-1' class='sentence'>A type <span class='texttt'>T</span> models <a href='#concept:Representation' title='5.5.4&emsp;Concepts&emsp;[qty.rep.concepts]'><span id='conceptref:Representation'><span class='texttt'>Representation</span></span></a> if
it represents the numerical value of a quantity (<a href="https://www.electropedia.org/iev/iev.nsf/display?openform&ievref=112-01-29">IEC 60050, 112-01-29</a>)<a class='hidden_link' href='#concepts-7.sentence-1'>.</a></div></div></div><div class='texpara'><div class='itemdecl' id='concepts-itemdecl:8'><div class='marginalizedparent'><a class='itemDeclLink' href='#concepts-itemdecl:8'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><span class='keyword'>typename</span> T, quantity_character Ch<span class='anglebracket'>&gt;</span>
<span class='keyword'>concept</span> <span class='texttt'><i >IsOfCharacter</i></span><a class='index' id='concept:IsOfCharacter'></a> <span class='operator'>=</span> <span class='parenthesis'>(</span>Ch <span class='operator'>=</span><span class='operator'>=</span> quantity_character<span class='operator'>::</span>real_scalar <span class='operator'>&amp;</span><span class='operator'>&amp;</span> <a class='index' id='conceptref:Scalar_______________'></a><span class='texttt'><i >Scalar</i></span><span class='anglebracket'>&lt;</span>T<span class='anglebracket'>&gt;</span><span class='parenthesis'>)</span> <span class='operator'>|</span><span class='operator'>|</span> <span class='comment'>// <i >exposition only</i></span>
<span class='parenthesis'>(</span>Ch <span class='operator'>=</span><span class='operator'>=</span> quantity_character<span class='operator'>::</span>complex_scalar <span class='operator'>&amp;</span><span class='operator'>&amp;</span> <a class='index' id='conceptref:Complex_'></a><span class='texttt'><i >Complex</i></span><span class='anglebracket'>&lt;</span>T<span class='anglebracket'>&gt;</span><span class='parenthesis'>)</span> <span class='operator'>|</span><span class='operator'>|</span>
@ -161,6 +161,6 @@ it represents the numerical value of a quantity (<a href="https://www.electroped
<a href='#concept:Representation' title='5.5.4&emsp;Concepts&emsp;[qty.rep.concepts]'><span id='conceptref:Representation_'><span class='texttt'>Representation</span></span></a><span class='anglebracket'>&lt;</span>T<span class='anglebracket'>&gt;</span> <span class='operator'>&amp;</span><span class='operator'>&amp;</span> <span class='parenthesis'>(</span><span class='parenthesis'>(</span><a href='qty.spec.concepts.html#concept:QuantitySpec' title='5.4.3.2&emsp;Concepts&emsp;[qty.spec.concepts]'><span id='conceptref:QuantitySpec'><span class='texttt'>QuantitySpec</span></span></a><span class='anglebracket'>&lt;</span><span class='keyword'>decltype</span><span class='parenthesis'>(</span>V<span class='parenthesis'>)</span><span class='anglebracket'>&gt;</span> <span class='operator'>&amp;</span><span class='operator'>&amp;</span>
<span class='parenthesis'>(</span><a class='index' id='conceptref:QuantityKindSpec'></a><span class='texttt'><i >QuantityKindSpec</i></span><span class='anglebracket'>&lt;</span><span class='keyword'>decltype</span><span class='parenthesis'>(</span>V<span class='parenthesis'>)</span><span class='anglebracket'>&gt;</span> <span class='operator'>|</span><span class='operator'>|</span> <a class='index' id='conceptref:IsOfCharacter'></a><span class='texttt'><i >IsOfCharacter</i></span><span class='anglebracket'>&lt;</span>T, V<span class='operator'>.</span>character<span class='anglebracket'>&gt;</span><span class='parenthesis'>)</span><span class='parenthesis'>)</span> <span class='operator'>|</span><span class='operator'>|</span>
<span class='parenthesis'>(</span>std<span class='operator'>::</span>same_as<span class='anglebracket'>&lt;</span>quantity_character, <span class='keyword'>decltype</span><span class='parenthesis'>(</span>V<span class='parenthesis'>)</span><span class='anglebracket'>&gt;</span> <span class='operator'>&amp;</span><span class='operator'>&amp;</span> <a class='index' id='conceptref:IsOfCharacter_'></a><span class='texttt'><i >IsOfCharacter</i></span><span class='anglebracket'>&lt;</span>T, V<span class='anglebracket'>&gt;</span><span class='parenthesis'>)</span><span class='parenthesis'>)</span>;
</code></div></div><div class='para' id='concepts-8'><div class='marginalizedparent'><a class='marginalized' href='#concepts-8'>8</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L4047'>#</a></div><div class='texpara'><div id='concepts-8.sentence-1' class='sentence'>A type <span class='texttt'>T</span> models <span class='texttt'><a href='#concept:RepresentationOf' title='5.5.4&emsp;Concepts&emsp;[qty.rep.concepts]'><span id='conceptref:RepresentationOf'><span class='texttt'>RepresentationOf</span></span></a><span class='anglebracket'>&lt;</span>V<span class='anglebracket'>&gt;</span></span> if
</code></div></div><div class='para' id='concepts-8'><div class='marginalizedparent'><a class='marginalized' href='#concepts-8'>8</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L4047'>#</a></div><div class='texpara'><div id='concepts-8.sentence-1' class='sentence'>A type <span class='texttt'>T</span> models <span class='texttt'><a href='#concept:RepresentationOf' title='5.5.4&emsp;Concepts&emsp;[qty.rep.concepts]'><span id='conceptref:RepresentationOf'><span class='texttt'>RepresentationOf</span></span></a><span class='anglebracket'>&lt;</span>V<span class='anglebracket'>&gt;</span></span> if
<span class='texttt'>T</span> models <a href='#concept:Representation' title='5.5.4&emsp;Concepts&emsp;[qty.rep.concepts]'><span id='conceptref:Representation__'><span class='texttt'>Representation</span></span></a> and
<ul class='itemize'><li id='concepts-8.1'><div class='marginalizedparent' style='left:-27mm'><a class='marginalized' href='#concepts-8.1'>(8.1)</a></div><span class='texttt'>V</span> is a kind of quantity, or</li><li id='concepts-8.2'><div class='marginalizedparent' style='left:-27mm'><a class='marginalized' href='#concepts-8.2'>(8.2)</a></div>if <span class='texttt'>V</span> is a quantity, then <span class='texttt'>T</span> represents a value of its character, or</li><li id='concepts-8.3'><div class='marginalizedparent' style='left:-27mm'><a class='marginalized' href='#concepts-8.3'>(8.3)</a></div>if <span class='texttt'>V</span> is a quantity character, then <span class='texttt'>T</span> represents a value of <span class='texttt'>V</span><a class='hidden_link' href='#concepts-8.sentence-1'>.</a></li></ul></div></div></div></div></div></body></html>

View File

@ -12,8 +12,8 @@
<span class='keyword'>template</span><span class='anglebracket'>&lt;</span><span class='keyword'>typename</span> Rep<span class='anglebracket'>&gt;</span>
<span class='keyword'>constexpr</span> <span class='keyword'>bool</span> <span id='lib:treat_as_floating_point'><a class='hidden_link' href='#lib:treat_as_floating_point' title='5.5.2.1&emsp;Floating-point&emsp;[qty.fp.traits]'>treat_as_floating_point</a></span> <span class='operator'>=</span>
std<span class='operator'>::</span>chrono<span class='operator'>::</span>treat_as_floating_point_v<span class='anglebracket'>&lt;</span><span class='texttt'><i >actual-value-type-t</i></span><span class='anglebracket'>&lt;</span>Rep<span class='anglebracket'>&gt;</span><span class='anglebracket'>&gt;</span>;
</code></div></div><div class='para' id='qty.fp.traits-1'><div class='marginalizedparent'><a class='marginalized' href='#qty.fp.traits-1'>1</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L3708'>#</a></div><div class='texpara'><div id='qty.fp.traits-1.sentence-1' class='sentence'><span class='texttt'>quantity</span> and <span class='texttt'>quantity_<span class='shy'></span>point</span> use <span class='texttt'>treat_<span class='shy'></span>as_<span class='shy'></span>floating_<span class='shy'></span>point</span>
to help determine whether implicit conversions are allowed among them<a class='hidden_link' href='#qty.fp.traits-1.sentence-1'>.</a></div></div></div></div><div class='para' id='qty.fp.traits-2'><div class='marginalizedparent'><a class='marginalized' href='#qty.fp.traits-2'>2</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L3712'>#</a></div><div class='texpara'><div id='qty.fp.traits-2.sentence-1' class='sentence'><i >Remarks</i>: Pursuant to <a href="https://wg21.link/namespace.std">N4971, [namespace.std]</a> (<a href='spec.ext.html' title='4.1&emsp;External'>[spec.<span class='shy'></span>ext]</a>),
</code></div></div><div class='para' id='qty.fp.traits-1'><div class='marginalizedparent'><a class='marginalized' href='#qty.fp.traits-1'>1</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L3708'>#</a></div><div class='texpara'><div id='qty.fp.traits-1.sentence-1' class='sentence'><span class='texttt'>quantity</span> and <span class='texttt'>quantity_<span class='shy'></span>point</span> use <span class='texttt'>treat_<span class='shy'></span>as_<span class='shy'></span>floating_<span class='shy'></span>point</span>
to help determine whether implicit conversions are allowed among them<a class='hidden_link' href='#qty.fp.traits-1.sentence-1'>.</a></div></div></div></div><div class='para' id='qty.fp.traits-2'><div class='marginalizedparent'><a class='marginalized' href='#qty.fp.traits-2'>2</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L3712'>#</a></div><div class='texpara'><div id='qty.fp.traits-2.sentence-1' class='sentence'><i >Remarks</i>: Pursuant to <a href="https://wg21.link/namespace.std">N4971, [namespace.std]</a> (<a href='spec.ext.html' title='4.1&emsp;External'>[spec.<span class='shy'></span>ext]</a>),
users may specialize <span class='texttt'>treat_<span class='shy'></span>as_<span class='shy'></span>floating_<span class='shy'></span>point</span>
for cv-unqualified program-defined types<a class='hidden_link' href='#qty.fp.traits-2.sentence-1'>.</a></div> <div id='qty.fp.traits-2.sentence-2' class='sentence'>Such specializations shall be usable in constant expressions (<a href="https://wg21.link/expr.const">N4971, [expr.const]</a>)
and have type <span class='texttt'><span class='keyword'>const</span> <span class='keyword'>bool</span></span><a class='hidden_link' href='#qty.fp.traits-2.sentence-2'>.</a></div></div></div></div></div><div id='qty.char.traits' class='section'><h4 ><a class='secnum' href='#qty.char.traits' style='min-width:95pt'>5.5.2.2</a> Quantity character <a class='abbr_ref' href='qty.char.traits.html'>[qty.char.traits]</a></h4><div class='texpara'><div id='lib:disable_vector'><div id='lib:disable_complex'><div id='lib:disable_scalar'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:disable_scalar'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><span class='keyword'>typename</span> T<span class='anglebracket'>&gt;</span>
@ -22,12 +22,12 @@ and have type <span class='texttt'><span class='keyword'>const</span> <span clas
<span class='keyword'>constexpr</span> <span class='keyword'>bool</span> disable_complex <span class='operator'>=</span> <span class='literal'>false</span>;
<span class='keyword'>template</span><span class='anglebracket'>&lt;</span><span class='keyword'>typename</span> T<span class='anglebracket'>&gt;</span>
<span class='keyword'>constexpr</span> <span class='keyword'>bool</span> disable_vector <span class='operator'>=</span> <span class='literal'>false</span>;
</code></div></div></div></div></div><div class='para' id='qty.char.traits-1'><div class='marginalizedparent'><a class='marginalized' href='#qty.char.traits-1'>1</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L3736'>#</a></div><div class='texpara'><div id='qty.char.traits-1.sentence-1' class='sentence'>Some quantities are defined as having a numerical value (<a href="https://www.electropedia.org/iev/iev.nsf/display?openform&ievref=112-01-29">IEC 60050, 112-01-29</a>) of a specific set (<a href="https://www.electropedia.org/iev/iev.nsf/display?openform&ievref=102-01-02">IEC 60050, 102-01-02</a>)<a class='hidden_link' href='#qty.char.traits-1.sentence-1'>.</a></div> <div id='qty.char.traits-1.sentence-2' class='sentence'>The representation concepts use these traits
to help determine the sets <span class='texttt'>T</span> represents<a class='hidden_link' href='#qty.char.traits-1.sentence-2'>.</a></div></div></div></div><div class='para' id='qty.char.traits-2'><div class='marginalizedparent'><a class='marginalized' href='#qty.char.traits-2'>2</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L3741'>#</a></div><div class='texpara'><div id='qty.char.traits-2.sentence-1' class='sentence'><i >Remarks</i>: Pursuant to <a href="https://wg21.link/namespace.std">N4971, [namespace.std]</a> (<a href='spec.ext.html' title='4.1&emsp;External'>[spec.<span class='shy'></span>ext]</a>),
</code></div></div></div></div></div><div class='para' id='qty.char.traits-1'><div class='marginalizedparent'><a class='marginalized' href='#qty.char.traits-1'>1</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L3736'>#</a></div><div class='texpara'><div id='qty.char.traits-1.sentence-1' class='sentence'>Some quantities are defined as having a numerical value (<a href="https://www.electropedia.org/iev/iev.nsf/display?openform&ievref=112-01-29">IEC 60050, 112-01-29</a>) of a specific set (<a href="https://www.electropedia.org/iev/iev.nsf/display?openform&ievref=102-01-02">IEC 60050, 102-01-02</a>)<a class='hidden_link' href='#qty.char.traits-1.sentence-1'>.</a></div> <div id='qty.char.traits-1.sentence-2' class='sentence'>The representation concepts use these traits
to help determine the sets <span class='texttt'>T</span> represents<a class='hidden_link' href='#qty.char.traits-1.sentence-2'>.</a></div></div></div></div><div class='para' id='qty.char.traits-2'><div class='marginalizedparent'><a class='marginalized' href='#qty.char.traits-2'>2</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L3741'>#</a></div><div class='texpara'><div id='qty.char.traits-2.sentence-1' class='sentence'><i >Remarks</i>: Pursuant to <a href="https://wg21.link/namespace.std">N4971, [namespace.std]</a> (<a href='spec.ext.html' title='4.1&emsp;External'>[spec.<span class='shy'></span>ext]</a>),
users may specialize these templates
for cv-unqualified program-defined types<a class='hidden_link' href='#qty.char.traits-2.sentence-1'>.</a></div> <div id='qty.char.traits-2.sentence-2' class='sentence'>Such specializations shall be usable in constant expressions (<a href="https://wg21.link/expr.const">N4971, [expr.const]</a>)
and have type <span class='texttt'><span class='keyword'>const</span> <span class='keyword'>bool</span></span><a class='hidden_link' href='#qty.char.traits-2.sentence-2'>.</a></div></div></div></div><div class='para nonNormativeOnly' id='qty.char.traits-3'><div class='marginalizedparent'><a class='marginalized' href='#qty.char.traits-3'>3</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L3749'>#</a></div><div class='texpara'><div id='qty.char.traits-note-1' class='note'><div class='texpara'>[<i>Note&nbsp;<a href='#qty.char.traits-note-1'>1</a></i>:&ensp;<div id='qty.char.traits-3.sentence-1' class='sentence'>These templates prevent use of representation types with the library
that satisfy but do not in fact model their corresponding concept<a class='hidden_link' href='#qty.char.traits-3.sentence-1'>.</a></div>&nbsp;<i>end note</i>]</div></div></div></div></div></div><div id='qty.val.traits' class='section'><h4 ><a class='secnum' href='#qty.val.traits' style='min-width:95pt'>5.5.2.3</a> Values <a class='abbr_ref' href='qty.val.traits.html'>[qty.val.traits]</a></h4><div class='para' id='qty.val.traits-1'><div class='marginalizedparent'><a class='marginalized' href='#qty.val.traits-1'>1</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L3758'>#</a></div><div class='texpara'><div id='qty.val.traits-1.sentence-1' class='sentence'><span class='texttt'>quantity</span> and <span class='texttt'>quantity_<span class='shy'></span>point</span> use <span class='texttt'>representation_<span class='shy'></span>values</span>
and have type <span class='texttt'><span class='keyword'>const</span> <span class='keyword'>bool</span></span><a class='hidden_link' href='#qty.char.traits-2.sentence-2'>.</a></div></div></div></div><div class='para nonNormativeOnly' id='qty.char.traits-3'><div class='marginalizedparent'><a class='marginalized' href='#qty.char.traits-3'>3</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L3749'>#</a></div><div class='texpara'><div id='qty.char.traits-note-1' class='note'><div class='texpara'>[<i>Note&nbsp;<a href='#qty.char.traits-note-1'>1</a></i>:&ensp;<div id='qty.char.traits-3.sentence-1' class='sentence'>These templates prevent use of representation types with the library
that satisfy but do not in fact model their corresponding concept<a class='hidden_link' href='#qty.char.traits-3.sentence-1'>.</a></div>&nbsp;<i>end note</i>]</div></div></div></div></div></div><div id='qty.val.traits' class='section'><h4 ><a class='secnum' href='#qty.val.traits' style='min-width:95pt'>5.5.2.3</a> Values <a class='abbr_ref' href='qty.val.traits.html'>[qty.val.traits]</a></h4><div class='para' id='qty.val.traits-1'><div class='marginalizedparent'><a class='marginalized' href='#qty.val.traits-1'>1</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L3758'>#</a></div><div class='texpara'><div id='qty.val.traits-1.sentence-1' class='sentence'><span class='texttt'>quantity</span> and <span class='texttt'>quantity_<span class='shy'></span>point</span> use <span class='texttt'>representation_<span class='shy'></span>values</span>
to construct special values of its representation type<a class='hidden_link' href='#qty.val.traits-1.sentence-1'>.</a></div></div><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'>&lt;</span><span class='keyword'>typename</span> Rep<span class='anglebracket'>&gt;</span>
@ -36,6 +36,6 @@ to construct special values of its representation type<a class='hidden_link' hre
<span class='curlybracket'>}</span>;
<span class='curlybracket'>}</span>
</span></div></div><div class='para' id='qty.val.traits-2'><div class='marginalizedparent'><a class='marginalized' href='#qty.val.traits-2'>2</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L3773'>#</a></div><div class='texpara'><div id='qty.val.traits-2.sentence-1' class='sentence'>The requirements on <span class='texttt'>std<span class='operator'>&#x200b;::&#x200b;</span>chrono<span class='operator'>&#x200b;::&#x200b;</span>duration_<span class='shy'></span>values<span class='anglebracket'>&lt;</span>Rep<span class='anglebracket'>&gt;</span></span> (<a href="https://wg21.link/time.traits.duration.values">N4971, [time.traits.duration.values]</a>)
</span></div></div><div class='para' id='qty.val.traits-2'><div class='marginalizedparent'><a class='marginalized' href='#qty.val.traits-2'>2</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L3773'>#</a></div><div class='texpara'><div id='qty.val.traits-2.sentence-1' class='sentence'>The requirements on <span class='texttt'>std<span class='operator'>&#x200b;::&#x200b;</span>chrono<span class='operator'>&#x200b;::&#x200b;</span>duration_<span class='shy'></span>values<span class='anglebracket'>&lt;</span>Rep<span class='anglebracket'>&gt;</span></span> (<a href="https://wg21.link/time.traits.duration.values">N4971, [time.traits.duration.values]</a>)
also apply to <span class='texttt'>representation_<span class='shy'></span>values<span class='anglebracket'>&lt;</span>Rep<span class='anglebracket'>&gt;</span></span><a class='hidden_link' href='#qty.val.traits-2.sentence-1'>.</a></div></div></div><div class='texpara'><div class='itemdecl' id='qty.val.traits-itemdecl:1'><div class='marginalizedparent'><a class='itemDeclLink' href='#qty.val.traits-itemdecl:1'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>static</span> <span class='keyword'>constexpr</span> Rep one<span class='parenthesis'>(</span><span class='parenthesis'>)</span> <span class='keyword'>noexcept</span>;
</code></div></div><div class='para' id='qty.val.traits-3'><div class='marginalizedparent'><a class='marginalized' href='#qty.val.traits-3'>3</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L3782'>#</a></div><div class='texpara'><div id='qty.val.traits-3.sentence-1' class='sentence'><i >Returns</i>: <span class='texttt'>Rep<span class='parenthesis'>(</span><span class='literal'>1</span><span class='parenthesis'>)</span></span><a class='hidden_link' href='#qty.val.traits-3.sentence-1'>.</a></div></div></div></div><div class='para' id='qty.val.traits-4'><div class='marginalizedparent'><a class='marginalized' href='#qty.val.traits-4'>4</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L3786'>#</a></div><div class='texpara'><div id='qty.val.traits-4.sentence-1' class='sentence'><i >Remarks</i>: The value returned shall be the neutral element for multiplication (<a href="https://www.electropedia.org/iev/iev.nsf/display?openform&ievref=102-01-19">IEC 60050, 102-01-19</a>)<a class='hidden_link' href='#qty.val.traits-4.sentence-1'>.</a></div></div></div></div></div></div></body></html>
</code></div></div><div class='para' id='qty.val.traits-3'><div class='marginalizedparent'><a class='marginalized' href='#qty.val.traits-3'>3</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L3782'>#</a></div><div class='texpara'><div id='qty.val.traits-3.sentence-1' class='sentence'><i >Returns</i>: <span class='texttt'>Rep<span class='parenthesis'>(</span><span class='literal'>1</span><span class='parenthesis'>)</span></span><a class='hidden_link' href='#qty.val.traits-3.sentence-1'>.</a></div></div></div></div><div class='para' id='qty.val.traits-4'><div class='marginalizedparent'><a class='marginalized' href='#qty.val.traits-4'>4</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L3786'>#</a></div><div class='texpara'><div id='qty.val.traits-4.sentence-1' class='sentence'><i >Remarks</i>: The value returned shall be the neutral element for multiplication (<a href="https://www.electropedia.org/iev/iev.nsf/display?openform&ievref=102-01-19">IEC 60050, 102-01-19</a>)<a class='hidden_link' href='#qty.val.traits-4.sentence-1'>.</a></div></div></div></div></div></div></body></html>

View File

@ -1,6 +1,6 @@
<!DOCTYPE html><html lang='en'><head><title>[qty.same.abs.pt.origs]</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.7</a> Quantity point <a class='abbr_ref' href='qty.pt.html#qty.same.abs.pt.origs'>[qty.pt]</a></h2><h3 ><a class='secnum' style='min-width:80pt'>5.7.2</a> Point origin <a class='abbr_ref' href='qty.pt.orig.html#qty.same.abs.pt.origs'>[qty.pt.orig]</a></h3><h4 ><a class='secnum' style='min-width:95pt'>5.7.2.5</a> Utilities <a class='abbr_ref' href='qty.pt.orig.utils.html#qty.same.abs.pt.origs'>[qty.pt.orig.utils]</a></h4><h4 ><a class='secnum' style='min-width:110pt'>5.7.2.5.1</a> Same absolute <a class='abbr_ref'>[qty.same.abs.pt.origs]</a></h4><div class='texpara'><div id='lib:same-absolute-point-origins,PointOrigin'><div id='lib:PointOrigin,same-absolute-point-origins'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:PointOrigin,same-absolute-point-origins'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><a href='qty.pt.orig.concepts.html#concept:PointOrigin' title='5.7.2.2&emsp;Concepts&emsp;[qty.pt.orig.concepts]'><span id='conceptref:PointOrigin'><span class='texttt'>PointOrigin</span></span></a> PO1, <a href='qty.pt.orig.concepts.html#concept:PointOrigin' title='5.7.2.2&emsp;Concepts&emsp;[qty.pt.orig.concepts]'><span id='conceptref:PointOrigin_'><span class='texttt'>PointOrigin</span></span></a> PO2<span class='anglebracket'>&gt;</span>
<span class='keyword'>consteval</span> <span class='keyword'>bool</span> <span class='texttt'><i >same-absolute-point-origins</i></span><span class='parenthesis'>(</span>PO1 po1, PO2 po2<span class='parenthesis'>)</span>; <span class='comment'>// <i >exposition only</i></span>
</code></div></div></div></div><div class='para' id='1'><div class='marginalizedparent'><a class='marginalized' href='#1'>1</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L5677'>#</a></div><div class='texpara'><div id='1.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
</code></div></div></div></div><div class='para' id='1'><div class='marginalizedparent'><a class='marginalized' href='#1'>1</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L5677'>#</a></div><div class='texpara'><div id='1.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
<span class='codeblock'><span class='keyword'>if</span> <span class='keyword'>constexpr</span> <span class='parenthesis'>(</span><i >is-derived-from-specialization-of</i><span class='anglebracket'>&lt;</span>PO1, absolute_point_origin<span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span><span class='parenthesis'>)</span> <span class='operator'>&amp;</span><span class='operator'>&amp;</span>
<i >is-derived-from-specialization-of</i><span class='anglebracket'>&lt;</span>PO2, absolute_point_origin<span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span><span class='parenthesis'>)</span><span class='parenthesis'>)</span>
<span class='keyword'>return</span> po1 <span class='operator'>=</span><span class='operator'>=</span> po2;

View File

@ -11,5 +11,5 @@
<span class='curlybracket'>}</span>;
<span class='curlybracket'>}</span>
</span></span></div><div class='para' id='1'><div class='marginalizedparent'><a class='marginalized' href='#1'>1</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L2635'>#</a></div><div class='texpara'><div id='1.sentence-1' class='sentence'><span class='texttt'>scaled_<span class='shy'></span>unit<span class='anglebracket'>&lt;</span>M, U<span class='anglebracket'>&gt;</span></span> is used by the library
</span></span></div><div class='para' id='1'><div class='marginalizedparent'><a class='marginalized' href='#1'>1</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L2635'>#</a></div><div class='texpara'><div id='1.sentence-1' class='sentence'><span class='texttt'>scaled_<span class='shy'></span>unit<span class='anglebracket'>&lt;</span>M, U<span class='anglebracket'>&gt;</span></span> is used by the library
to represent the unit <span class='math'><span class='texttt'>M</span> &times;<span class='texttt'>U</span></span><a class='hidden_link' href='#1.sentence-1'>.</a></div></div></div></div></body></html>

View File

@ -1,5 +1,5 @@
<!DOCTYPE html><html lang='en'><head><title>[qty.spec.conv]</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.spec.conv'>[qty.ref]</a></h2><h3 ><a class='secnum' style='min-width:80pt'>5.4.3</a> Quantity specification <a class='abbr_ref' href='qty.spec.html#conv'>[qty.spec]</a></h3><h4 ><a class='secnum' style='min-width:95pt'>5.4.3.6</a> Hierarchy algorithms <a class='abbr_ref' href='qty.spec.hier.algos.html#qty.spec.conv'>[qty.spec.hier.algos]</a></h4><h4 ><a class='secnum' style='min-width:110pt'>5.4.3.6.1</a> Conversion <a class='abbr_ref'>[qty.spec.conv]</a></h4><div class='texpara'><div id='lib:QuantitySpec,implicitly_convertible'><div id='lib:implicitly_convertible,QuantitySpec'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:implicitly_convertible,QuantitySpec'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>consteval</span> <span class='keyword'>bool</span> implicitly_convertible<span class='parenthesis'>(</span>QuantitySpec <span class='keyword'>auto</span> from, QuantitySpec <span class='keyword'>auto</span> to<span class='parenthesis'>)</span>;
</code></div></div></div></div><div class='para' id='1'><div class='marginalizedparent'><a class='marginalized' href='#1'>1</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L2048'>#</a></div><div class='texpara'><div id='1.sentence-1' class='sentence'><i >Returns</i>: TBD<a class='hidden_link' href='#1.sentence-1'>.</a></div></div></div></div><div class='texpara'><div id='lib:QuantitySpec,explicitly_convertible'><div id='lib:explicitly_convertible,QuantitySpec'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:explicitly_convertible,QuantitySpec'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>consteval</span> <span class='keyword'>bool</span> explicitly_convertible<span class='parenthesis'>(</span>QuantitySpec <span class='keyword'>auto</span> from, QuantitySpec <span class='keyword'>auto</span> to<span class='parenthesis'>)</span>;
</code></div></div></div></div><div class='para' id='2'><div class='marginalizedparent'><a class='marginalized' href='#2'>2</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L2059'>#</a></div><div class='texpara'><div id='2.sentence-1' class='sentence'><i >Returns</i>: TBD<a class='hidden_link' href='#2.sentence-1'>.</a></div></div></div></div><div class='texpara'><div id='lib:QuantitySpec,castable'><div id='lib:castable,QuantitySpec'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:castable,QuantitySpec'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>consteval</span> <span class='keyword'>bool</span> castable<span class='parenthesis'>(</span>QuantitySpec <span class='keyword'>auto</span> from, QuantitySpec <span class='keyword'>auto</span> to<span class='parenthesis'>)</span>;
</code></div></div></div></div><div class='para' id='3'><div class='marginalizedparent'><a class='marginalized' href='#3'>3</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L2070'>#</a></div><div class='texpara'><div id='3.sentence-1' class='sentence'><i >Returns</i>: TBD<a class='hidden_link' href='#3.sentence-1'>.</a></div></div></div></div><div class='texpara'><div id='lib:QuantitySpec,interconvertible'><div id='lib:interconvertible,QuantitySpec'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:interconvertible,QuantitySpec'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>consteval</span> <span class='keyword'>bool</span> interconvertible<span class='parenthesis'>(</span>QuantitySpec <span class='keyword'>auto</span> qs1, QuantitySpec <span class='keyword'>auto</span> qs2<span class='parenthesis'>)</span>;
</code></div></div></div></div><div class='para' id='4'><div class='marginalizedparent'><a class='marginalized' href='#4'>4</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L2081'>#</a></div><div class='texpara'><div id='4.sentence-1' class='sentence'><i >Returns</i>: <span class='texttt'>implicitly_<span class='shy'></span>convertible<span class='parenthesis'>(</span>qs1, qs2<span class='parenthesis'>)</span> <span class='operator'>&amp;</span><span class='operator'>&amp;</span> implicitly_<span class='shy'></span>convertible<span class='parenthesis'>(</span>qs2, qs1<span class='parenthesis'>)</span></span><a class='hidden_link' href='#4.sentence-1'>.</a></div></div></div></div></div></body></html>
</code></div></div></div></div><div class='para' id='1'><div class='marginalizedparent'><a class='marginalized' href='#1'>1</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L2048'>#</a></div><div class='texpara'><div id='1.sentence-1' class='sentence'><i >Returns</i>: TBD<a class='hidden_link' href='#1.sentence-1'>.</a></div></div></div></div><div class='texpara'><div id='lib:QuantitySpec,explicitly_convertible'><div id='lib:explicitly_convertible,QuantitySpec'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:explicitly_convertible,QuantitySpec'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>consteval</span> <span class='keyword'>bool</span> explicitly_convertible<span class='parenthesis'>(</span>QuantitySpec <span class='keyword'>auto</span> from, QuantitySpec <span class='keyword'>auto</span> to<span class='parenthesis'>)</span>;
</code></div></div></div></div><div class='para' id='2'><div class='marginalizedparent'><a class='marginalized' href='#2'>2</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L2059'>#</a></div><div class='texpara'><div id='2.sentence-1' class='sentence'><i >Returns</i>: TBD<a class='hidden_link' href='#2.sentence-1'>.</a></div></div></div></div><div class='texpara'><div id='lib:QuantitySpec,castable'><div id='lib:castable,QuantitySpec'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:castable,QuantitySpec'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>consteval</span> <span class='keyword'>bool</span> castable<span class='parenthesis'>(</span>QuantitySpec <span class='keyword'>auto</span> from, QuantitySpec <span class='keyword'>auto</span> to<span class='parenthesis'>)</span>;
</code></div></div></div></div><div class='para' id='3'><div class='marginalizedparent'><a class='marginalized' href='#3'>3</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L2070'>#</a></div><div class='texpara'><div id='3.sentence-1' class='sentence'><i >Returns</i>: TBD<a class='hidden_link' href='#3.sentence-1'>.</a></div></div></div></div><div class='texpara'><div id='lib:QuantitySpec,interconvertible'><div id='lib:interconvertible,QuantitySpec'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:interconvertible,QuantitySpec'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>consteval</span> <span class='keyword'>bool</span> interconvertible<span class='parenthesis'>(</span>QuantitySpec <span class='keyword'>auto</span> qs1, QuantitySpec <span class='keyword'>auto</span> qs2<span class='parenthesis'>)</span>;
</code></div></div></div></div><div class='para' id='4'><div class='marginalizedparent'><a class='marginalized' href='#4'>4</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L2081'>#</a></div><div class='texpara'><div id='4.sentence-1' class='sentence'><i >Returns</i>: <span class='texttt'>implicitly_<span class='shy'></span>convertible<span class='parenthesis'>(</span>qs1, qs2<span class='parenthesis'>)</span> <span class='operator'>&amp;</span><span class='operator'>&amp;</span> implicitly_<span class='shy'></span>convertible<span class='parenthesis'>(</span>qs2, qs1<span class='parenthesis'>)</span></span><a class='hidden_link' href='#4.sentence-1'>.</a></div></div></div></div></div></body></html>

View File

@ -1,2 +1,2 @@
<!DOCTYPE html><html lang='en'><head><title>[qty.spec.general]</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.spec.general'>[qty.ref]</a></h2><h3 ><a class='secnum' style='min-width:80pt'>5.4.3</a> Quantity specification <a class='abbr_ref' href='qty.spec.html#general'>[qty.spec]</a></h3><h4 ><a class='secnum' style='min-width:95pt'>5.4.3.1</a> General <a class='abbr_ref'>[qty.spec.general]</a></h4><div class='para' id='1'><div class='marginalizedparent'><a class='marginalized' href='#1'>1</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L1564'>#</a></div><div class='texpara'><div id='1.sentence-1' class='sentence'>Subclause <a href='qty.spec.html' title='5.4.3&emsp;Quantity specification'>[qty.<span class='shy'></span>spec]</a> specifies the components
<!DOCTYPE html><html lang='en'><head><title>[qty.spec.general]</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.spec.general'>[qty.ref]</a></h2><h3 ><a class='secnum' style='min-width:80pt'>5.4.3</a> Quantity specification <a class='abbr_ref' href='qty.spec.html#general'>[qty.spec]</a></h3><h4 ><a class='secnum' style='min-width:95pt'>5.4.3.1</a> General <a class='abbr_ref'>[qty.spec.general]</a></h4><div class='para' id='1'><div class='marginalizedparent'><a class='marginalized' href='#1'>1</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L1564'>#</a></div><div class='texpara'><div id='1.sentence-1' class='sentence'>Subclause <a href='qty.spec.html' title='5.4.3&emsp;Quantity specification'>[qty.<span class='shy'></span>spec]</a> specifies the components
for defining a quantity (<a href="https://www.electropedia.org/iev/iev.nsf/display?openform&ievref=112-01-01">IEC 60050, 112-01-01</a>)<a class='hidden_link' href='#1.sentence-1'>.</a></div></div></div></div></body></html>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -21,26 +21,26 @@
<span class='curlybracket'>}</span>
</span></span></div><div class='texpara'><div id='lib:QuantitySpec,operator*'><div id='lib:operator*,QuantitySpec'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:operator*,QuantitySpec'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><a href='qty.spec.concepts.html#concept:QuantitySpec' title='5.4.3.2&emsp;Concepts&emsp;[qty.spec.concepts]'><span id='conceptref:QuantitySpec________'><span class='texttt'>QuantitySpec</span></span></a> Lhs, <a href='qty.spec.concepts.html#concept:QuantitySpec' title='5.4.3.2&emsp;Concepts&emsp;[qty.spec.concepts]'><span id='conceptref:QuantitySpec_________'><span class='texttt'>QuantitySpec</span></span></a> Rhs<span class='anglebracket'>&gt;</span>
<span class='keyword'>friend</span> <span class='keyword'>consteval</span> <a href='qty.spec.concepts.html#concept:QuantitySpec' title='5.4.3.2&emsp;Concepts&emsp;[qty.spec.concepts]'><span id='conceptref:QuantitySpec__________'><span class='texttt'>QuantitySpec</span></span></a> <span class='keyword'>auto</span> <span class='keyword'>operator</span><span class='operator'>*</span><span class='parenthesis'>(</span>Lhs lhs, Rhs rhs<span class='parenthesis'>)</span>;
</code></div></div></div></div><div class='para' id='1'><div class='marginalizedparent'><a class='marginalized' href='#1'>1</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L1927'>#</a></div><div class='texpara'><div id='1.sentence-1' class='sentence'><i >Returns</i>: <span class='codeblock'><i >clone-kind-of</i><span class='anglebracket'>&lt;</span>Lhs<span class='curlybracket'>{</span><span class='curlybracket'>}</span>, Rhs<span class='curlybracket'>{</span><span class='curlybracket'>}</span><span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span><i >expr-multiply</i><span class='anglebracket'>&lt;</span>derived_quantity_spec, <span class='keyword'>struct</span> dimensionless<span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span>
</code></div></div></div></div><div class='para' id='1'><div class='marginalizedparent'><a class='marginalized' href='#1'>1</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L1927'>#</a></div><div class='texpara'><div id='1.sentence-1' class='sentence'><i >Returns</i>: <span class='codeblock'><i >clone-kind-of</i><span class='anglebracket'>&lt;</span>Lhs<span class='curlybracket'>{</span><span class='curlybracket'>}</span>, Rhs<span class='curlybracket'>{</span><span class='curlybracket'>}</span><span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span><i >expr-multiply</i><span class='anglebracket'>&lt;</span>derived_quantity_spec, <span class='keyword'>struct</span> dimensionless<span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span>
<i >remove-kind</i><span class='parenthesis'>(</span>lhs<span class='parenthesis'>)</span>, <i >remove-kind</i><span class='parenthesis'>(</span>rhs<span class='parenthesis'>)</span><span class='parenthesis'>)</span><span class='parenthesis'>)</span>
</span></div></div></div></div><div class='texpara'><div id='lib:QuantitySpec,operator/'><div id='lib:operator/,QuantitySpec'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:operator/,QuantitySpec'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><a href='qty.spec.concepts.html#concept:QuantitySpec' title='5.4.3.2&emsp;Concepts&emsp;[qty.spec.concepts]'><span id='conceptref:QuantitySpec___________'><span class='texttt'>QuantitySpec</span></span></a> Lhs, <a href='qty.spec.concepts.html#concept:QuantitySpec' title='5.4.3.2&emsp;Concepts&emsp;[qty.spec.concepts]'><span id='conceptref:QuantitySpec____________'><span class='texttt'>QuantitySpec</span></span></a> Rhs<span class='anglebracket'>&gt;</span>
<span class='keyword'>friend</span> <span class='keyword'>consteval</span> <a href='qty.spec.concepts.html#concept:QuantitySpec' title='5.4.3.2&emsp;Concepts&emsp;[qty.spec.concepts]'><span id='conceptref:QuantitySpec_____________'><span class='texttt'>QuantitySpec</span></span></a> <span class='keyword'>auto</span> <span class='keyword'>operator</span><span class='operator'>/</span><span class='parenthesis'>(</span>Lhs lhs, Rhs rhs<span class='parenthesis'>)</span>;
</code></div></div></div></div><div class='para' id='2'><div class='marginalizedparent'><a class='marginalized' href='#2'>2</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L1942'>#</a></div><div class='texpara'><div id='2.sentence-1' class='sentence'><i >Returns</i>: <span class='codeblock'><i >clone-kind-of</i><span class='anglebracket'>&lt;</span>Lhs<span class='curlybracket'>{</span><span class='curlybracket'>}</span>, Rhs<span class='curlybracket'>{</span><span class='curlybracket'>}</span><span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span><i >expr-divide</i><span class='anglebracket'>&lt;</span>derived_quantity_spec, <span class='keyword'>struct</span> dimensionless<span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span>
</code></div></div></div></div><div class='para' id='2'><div class='marginalizedparent'><a class='marginalized' href='#2'>2</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L1942'>#</a></div><div class='texpara'><div id='2.sentence-1' class='sentence'><i >Returns</i>: <span class='codeblock'><i >clone-kind-of</i><span class='anglebracket'>&lt;</span>Lhs<span class='curlybracket'>{</span><span class='curlybracket'>}</span>, Rhs<span class='curlybracket'>{</span><span class='curlybracket'>}</span><span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span><i >expr-divide</i><span class='anglebracket'>&lt;</span>derived_quantity_spec, <span class='keyword'>struct</span> dimensionless<span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span>
<i >remove-kind</i><span class='parenthesis'>(</span>lhs<span class='parenthesis'>)</span>, <i >remove-kind</i><span class='parenthesis'>(</span>rhs<span class='parenthesis'>)</span><span class='parenthesis'>)</span><span class='parenthesis'>)</span>
</span></div></div></div></div><div class='texpara'><div id='lib:QuantitySpec,operator[]'><div id='lib:operator[],QuantitySpec'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:operator%5b%5d,QuantitySpec'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><span class='keyword'>typename</span> Self, <a href='qty.unit.concepts.html#concept:UnitOf' title='5.4.4.4&emsp;Concepts&emsp;[qty.unit.concepts]'><span id='conceptref:UnitOf_'><span class='texttt'>UnitOf</span></span></a><span class='anglebracket'>&lt;</span>Self<span class='curlybracket'>{</span><span class='curlybracket'>}</span><span class='anglebracket'>&gt;</span> U<span class='anglebracket'>&gt;</span>
<span class='keyword'>consteval</span> <a href='qty.ref.concepts.html#concept:Reference' title='5.4.5&emsp;Concepts&emsp;[qty.ref.concepts]'><span id='conceptref:Reference_'><span class='texttt'>Reference</span></span></a> <span class='keyword'>auto</span> <span class='keyword'>operator</span><span class='squarebracket'>[</span><span class='squarebracket'>]</span><span class='parenthesis'>(</span><span class='keyword'>this</span> Self self, U u<span class='parenthesis'>)</span>;
</code></div></div></div></div><div class='para' id='3'><div class='marginalizedparent'><a class='marginalized' href='#3'>3</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L1957'>#</a></div><div class='texpara'><div id='3.sentence-1' class='sentence'><i >Returns</i>: <span class='texttt'><span class='texttt'><i >make-reference</i></span><span class='parenthesis'>(</span>self, u<span class='parenthesis'>)</span></span><a class='hidden_link' href='#3.sentence-1'>.</a></div></div></div></div><div class='texpara'><div id='lib:QuantitySpec,operator()'><div id='lib:operator(),QuantitySpec'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:operator(),QuantitySpec'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><span class='keyword'>typename</span> Self, <span class='keyword'>typename</span> FwdQ, <a href='qty.syn.html#concept:Quantity' title='5.6.3&emsp;Class template quantity&emsp;[qty.syn]'><span id='conceptref:Quantity__'><span class='texttt'>Quantity</span></span></a> Q <span class='operator'>=</span> std<span class='operator'>::</span>remove_cvref_t<span class='anglebracket'>&lt;</span>FwdQ<span class='anglebracket'>&gt;</span><span class='anglebracket'>&gt;</span>
</code></div></div></div></div><div class='para' id='3'><div class='marginalizedparent'><a class='marginalized' href='#3'>3</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L1957'>#</a></div><div class='texpara'><div id='3.sentence-1' class='sentence'><i >Returns</i>: <span class='texttt'><span class='texttt'><i >make-reference</i></span><span class='parenthesis'>(</span>self, u<span class='parenthesis'>)</span></span><a class='hidden_link' href='#3.sentence-1'>.</a></div></div></div></div><div class='texpara'><div id='lib:QuantitySpec,operator()'><div id='lib:operator(),QuantitySpec'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:operator(),QuantitySpec'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><span class='keyword'>typename</span> Self, <span class='keyword'>typename</span> FwdQ, <a href='qty.syn.html#concept:Quantity' title='5.6.3&emsp;Class template quantity&emsp;[qty.syn]'><span id='conceptref:Quantity__'><span class='texttt'>Quantity</span></span></a> Q <span class='operator'>=</span> std<span class='operator'>::</span>remove_cvref_t<span class='anglebracket'>&lt;</span>FwdQ<span class='anglebracket'>&gt;</span><span class='anglebracket'>&gt;</span>
<span class='keyword'>requires</span> <a class='index' id='conceptref:QuantitySpecExplicitlyConvertibleTo_'></a><span class='texttt'><i >QuantitySpecExplicitlyConvertibleTo</i></span><span class='anglebracket'>&lt;</span>Q<span class='operator'>::</span>quantity_spec, Self<span class='curlybracket'>{</span><span class='curlybracket'>}</span><span class='anglebracket'>&gt;</span>
<span class='keyword'>constexpr</span> <a href='qty.syn.html#concept:Quantity' title='5.6.3&emsp;Class template quantity&emsp;[qty.syn]'><span id='conceptref:Quantity___'><span class='texttt'>Quantity</span></span></a> <span class='keyword'>auto</span> <span class='keyword'>operator</span><span class='parenthesis'>(</span><span class='parenthesis'>)</span><span class='parenthesis'>(</span><span class='keyword'>this</span> Self self, FwdQ<span class='operator'>&amp;</span><span class='operator'>&amp;</span> q<span class='parenthesis'>)</span>;
</code></div></div></div></div><div class='para' id='4'><div class='marginalizedparent'><a class='marginalized' href='#4'>4</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L1970'>#</a></div><div class='texpara'><div id='4.sentence-1' class='sentence'><i >Returns</i>: <span class='codeblock'>quantity<span class='curlybracket'>{</span>std<span class='operator'>::</span>forward<span class='anglebracket'>&lt;</span>FwdQ<span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span>q<span class='parenthesis'>)</span><span class='operator'>.</span><i >numerical-value</i>, <i >make-reference</i><span class='parenthesis'>(</span>self, Q<span class='operator'>::</span>unit<span class='parenthesis'>)</span><span class='curlybracket'>}</span>
</code></div></div></div></div><div class='para' id='4'><div class='marginalizedparent'><a class='marginalized' href='#4'>4</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L1970'>#</a></div><div class='texpara'><div id='4.sentence-1' class='sentence'><i >Returns</i>: <span class='codeblock'>quantity<span class='curlybracket'>{</span>std<span class='operator'>::</span>forward<span class='anglebracket'>&lt;</span>FwdQ<span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span>q<span class='parenthesis'>)</span><span class='operator'>.</span><i >numerical-value</i>, <i >make-reference</i><span class='parenthesis'>(</span>self, Q<span class='operator'>::</span>unit<span class='parenthesis'>)</span><span class='curlybracket'>}</span>
</span></div></div></div></div><div class='texpara'><div id='lib:QuantitySpec,operator=='><div id='lib:operator==,QuantitySpec'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:operator==,QuantitySpec'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><a href='qty.spec.concepts.html#concept:QuantitySpec' title='5.4.3.2&emsp;Concepts&emsp;[qty.spec.concepts]'><span id='conceptref:QuantitySpec______________'><span class='texttt'>QuantitySpec</span></span></a> Lhs, <a href='qty.spec.concepts.html#concept:QuantitySpec' title='5.4.3.2&emsp;Concepts&emsp;[qty.spec.concepts]'><span id='conceptref:QuantitySpec_______________'><span class='texttt'>QuantitySpec</span></span></a> Rhs<span class='anglebracket'>&gt;</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>;
</code></div></div></div></div><div class='para' id='5'><div class='marginalizedparent'><a class='marginalized' href='#5'>5</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L1984'>#</a></div><div class='texpara'><div id='5.sentence-1' class='sentence'><i >Returns</i>: <span class='texttt'>std<span class='operator'>&#x200b;::&#x200b;</span>is_<span class='shy'></span>same_<span class='shy'></span>v<span class='anglebracket'>&lt;</span>Lhs, Rhs<span class='anglebracket'>&gt;</span></span><a class='hidden_link' href='#5.sentence-1'>.</a></div></div></div></div><div class='texpara'><div id='lib:QuantitySpec,inverse'><div id='lib:inverse,QuantitySpec'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:inverse,QuantitySpec'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>consteval</span> <a href='qty.spec.concepts.html#concept:QuantitySpec' title='5.4.3.2&emsp;Concepts&emsp;[qty.spec.concepts]'><span id='conceptref:QuantitySpec________________'><span class='texttt'>QuantitySpec</span></span></a> <span class='keyword'>auto</span> inverse<span class='parenthesis'>(</span><a href='qty.spec.concepts.html#concept:QuantitySpec' title='5.4.3.2&emsp;Concepts&emsp;[qty.spec.concepts]'><span id='conceptref:QuantitySpec_________________'><span class='texttt'>QuantitySpec</span></span></a> <span class='keyword'>auto</span> q<span class='parenthesis'>)</span>;
</code></div></div></div></div><div class='para' id='6'><div class='marginalizedparent'><a class='marginalized' href='#6'>6</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L1995'>#</a></div><div class='texpara'><div id='6.sentence-1' class='sentence'><i >Returns</i>: <span class='texttt'>dimensionless <span class='operator'>/</span> q</span><a class='hidden_link' href='#6.sentence-1'>.</a></div></div></div></div><div class='texpara'><div id='lib:QuantitySpec,pow'><div id='lib:pow,QuantitySpec'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:pow,QuantitySpec'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</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='qty.spec.concepts.html#concept:QuantitySpec' title='5.4.3.2&emsp;Concepts&emsp;[qty.spec.concepts]'><span id='conceptref:QuantitySpec__________________'><span class='texttt'>QuantitySpec</span></span></a> Q<span class='anglebracket'>&gt;</span>
</code></div></div></div></div><div class='para' id='5'><div class='marginalizedparent'><a class='marginalized' href='#5'>5</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L1984'>#</a></div><div class='texpara'><div id='5.sentence-1' class='sentence'><i >Returns</i>: <span class='texttt'>std<span class='operator'>&#x200b;::&#x200b;</span>is_<span class='shy'></span>same_<span class='shy'></span>v<span class='anglebracket'>&lt;</span>Lhs, Rhs<span class='anglebracket'>&gt;</span></span><a class='hidden_link' href='#5.sentence-1'>.</a></div></div></div></div><div class='texpara'><div id='lib:QuantitySpec,inverse'><div id='lib:inverse,QuantitySpec'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:inverse,QuantitySpec'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>consteval</span> <a href='qty.spec.concepts.html#concept:QuantitySpec' title='5.4.3.2&emsp;Concepts&emsp;[qty.spec.concepts]'><span id='conceptref:QuantitySpec________________'><span class='texttt'>QuantitySpec</span></span></a> <span class='keyword'>auto</span> inverse<span class='parenthesis'>(</span><a href='qty.spec.concepts.html#concept:QuantitySpec' title='5.4.3.2&emsp;Concepts&emsp;[qty.spec.concepts]'><span id='conceptref:QuantitySpec_________________'><span class='texttt'>QuantitySpec</span></span></a> <span class='keyword'>auto</span> q<span class='parenthesis'>)</span>;
</code></div></div></div></div><div class='para' id='6'><div class='marginalizedparent'><a class='marginalized' href='#6'>6</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L1995'>#</a></div><div class='texpara'><div id='6.sentence-1' class='sentence'><i >Returns</i>: <span class='texttt'>dimensionless <span class='operator'>/</span> q</span><a class='hidden_link' href='#6.sentence-1'>.</a></div></div></div></div><div class='texpara'><div id='lib:QuantitySpec,pow'><div id='lib:pow,QuantitySpec'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:pow,QuantitySpec'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</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='qty.spec.concepts.html#concept:QuantitySpec' title='5.4.3.2&emsp;Concepts&emsp;[qty.spec.concepts]'><span id='conceptref:QuantitySpec__________________'><span class='texttt'>QuantitySpec</span></span></a> Q<span class='anglebracket'>&gt;</span>
<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='qty.spec.concepts.html#concept:QuantitySpec' title='5.4.3.2&emsp;Concepts&emsp;[qty.spec.concepts]'><span id='conceptref:QuantitySpec___________________'><span class='texttt'>QuantitySpec</span></span></a> <span class='keyword'>auto</span> pow<span class='parenthesis'>(</span>Q q<span class='parenthesis'>)</span>;
</code></div></div></div></div><div class='para' id='7'><div class='marginalizedparent'><a class='marginalized' href='#7'>7</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L2008'>#</a></div><div class='texpara'><div id='7.sentence-1' class='sentence'><i >Returns</i>: <span class='codeblock'><i >clone-kind-of</i><span class='anglebracket'>&lt;</span>Q<span class='curlybracket'>{</span><span class='curlybracket'>}</span><span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span>
</code></div></div></div></div><div class='para' id='7'><div class='marginalizedparent'><a class='marginalized' href='#7'>7</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L2008'>#</a></div><div class='texpara'><div id='7.sentence-1' class='sentence'><i >Returns</i>: <span class='codeblock'><i >clone-kind-of</i><span class='anglebracket'>&lt;</span>Q<span class='curlybracket'>{</span><span class='curlybracket'>}</span><span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span>
<i >expr-pow</i><span class='anglebracket'>&lt;</span>Num, Den, derived_quantity_spec, <span class='keyword'>struct</span> dimensionless<span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span><i >remove-kind</i><span class='parenthesis'>(</span>q<span class='parenthesis'>)</span><span class='parenthesis'>)</span><span class='parenthesis'>)</span>;
</span></div></div></div></div><div class='texpara'><div id='lib:QuantitySpec,sqrt'><div id='lib:sqrt,QuantitySpec'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:sqrt,QuantitySpec'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>consteval</span> <a href='qty.spec.concepts.html#concept:QuantitySpec' title='5.4.3.2&emsp;Concepts&emsp;[qty.spec.concepts]'><span id='conceptref:QuantitySpec____________________'><span class='texttt'>QuantitySpec</span></span></a> <span class='keyword'>auto</span> sqrt<span class='parenthesis'>(</span><a href='qty.spec.concepts.html#concept:QuantitySpec' title='5.4.3.2&emsp;Concepts&emsp;[qty.spec.concepts]'><span id='conceptref:QuantitySpec_____________________'><span class='texttt'>QuantitySpec</span></span></a> <span class='keyword'>auto</span> q<span class='parenthesis'>)</span>;
</code></div></div></div></div><div class='para' id='8'><div class='marginalizedparent'><a class='marginalized' href='#8'>8</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L2022'>#</a></div><div class='texpara'><div id='8.sentence-1' class='sentence'><i >Returns</i>: <span class='texttt'>pow<span class='anglebracket'>&lt;</span><span class='literal'>1</span>, <span class='literal'>2</span><span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span>q<span class='parenthesis'>)</span></span><a class='hidden_link' href='#8.sentence-1'>.</a></div></div></div></div><div class='texpara'><div id='lib:QuantitySpec,cbrt'><div id='lib:cbrt,QuantitySpec'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:cbrt,QuantitySpec'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>consteval</span> <a href='qty.spec.concepts.html#concept:QuantitySpec' title='5.4.3.2&emsp;Concepts&emsp;[qty.spec.concepts]'><span id='conceptref:QuantitySpec______________________'><span class='texttt'>QuantitySpec</span></span></a> <span class='keyword'>auto</span> cbrt<span class='parenthesis'>(</span><a href='qty.spec.concepts.html#concept:QuantitySpec' title='5.4.3.2&emsp;Concepts&emsp;[qty.spec.concepts]'><span id='conceptref:QuantitySpec_______________________'><span class='texttt'>QuantitySpec</span></span></a> <span class='keyword'>auto</span> q<span class='parenthesis'>)</span>;
</code></div></div></div></div><div class='para' id='9'><div class='marginalizedparent'><a class='marginalized' href='#9'>9</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L2033'>#</a></div><div class='texpara'><div id='9.sentence-1' class='sentence'><i >Returns</i>: <span class='texttt'>pow<span class='anglebracket'>&lt;</span><span class='literal'>1</span>, <span class='literal'>3</span><span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span>q<span class='parenthesis'>)</span></span><a class='hidden_link' href='#9.sentence-1'>.</a></div></div></div></div></div></body></html>
</code></div></div></div></div><div class='para' id='8'><div class='marginalizedparent'><a class='marginalized' href='#8'>8</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L2022'>#</a></div><div class='texpara'><div id='8.sentence-1' class='sentence'><i >Returns</i>: <span class='texttt'>pow<span class='anglebracket'>&lt;</span><span class='literal'>1</span>, <span class='literal'>2</span><span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span>q<span class='parenthesis'>)</span></span><a class='hidden_link' href='#8.sentence-1'>.</a></div></div></div></div><div class='texpara'><div id='lib:QuantitySpec,cbrt'><div id='lib:cbrt,QuantitySpec'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:cbrt,QuantitySpec'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>consteval</span> <a href='qty.spec.concepts.html#concept:QuantitySpec' title='5.4.3.2&emsp;Concepts&emsp;[qty.spec.concepts]'><span id='conceptref:QuantitySpec______________________'><span class='texttt'>QuantitySpec</span></span></a> <span class='keyword'>auto</span> cbrt<span class='parenthesis'>(</span><a href='qty.spec.concepts.html#concept:QuantitySpec' title='5.4.3.2&emsp;Concepts&emsp;[qty.spec.concepts]'><span id='conceptref:QuantitySpec_______________________'><span class='texttt'>QuantitySpec</span></span></a> <span class='keyword'>auto</span> q<span class='parenthesis'>)</span>;
</code></div></div></div></div><div class='para' id='9'><div class='marginalizedparent'><a class='marginalized' href='#9'>9</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L2033'>#</a></div><div class='texpara'><div id='9.sentence-1' class='sentence'><i >Returns</i>: <span class='texttt'>pow<span class='anglebracket'>&lt;</span><span class='literal'>1</span>, <span class='literal'>3</span><span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span>q<span class='parenthesis'>)</span></span><a class='hidden_link' href='#9.sentence-1'>.</a></div></div></div></div></div></body></html>

File diff suppressed because one or more lines are too long

View File

@ -1,13 +1,13 @@
<!DOCTYPE html><html lang='en'><head><title>[qty.spec.utils]</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.spec.utils'>[qty.ref]</a></h2><h3 ><a class='secnum' style='min-width:80pt'>5.4.3</a> Quantity specification <a class='abbr_ref' href='qty.spec.html#utils'>[qty.spec]</a></h3><h4 ><a class='secnum' style='min-width:95pt'>5.4.3.4</a> Utilities <a class='abbr_ref'>[qty.spec.utils]</a></h4><div class='texpara'><div id='lib:clone-kind-of,QuantitySpec'><div id='lib:QuantitySpec,clone-kind-of'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:QuantitySpec,clone-kind-of'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><a href='qty.spec.concepts.html#concept:QuantitySpec' title='5.4.3.2&emsp;Concepts&emsp;[qty.spec.concepts]'><span id='conceptref:QuantitySpec'><span class='texttt'>QuantitySpec</span></span></a> <span class='keyword'>auto</span><span class='operator'>.</span><span class='operator'>.</span><span class='operator'>.</span> From, <a href='qty.spec.concepts.html#concept:QuantitySpec' title='5.4.3.2&emsp;Concepts&emsp;[qty.spec.concepts]'><span id='conceptref:QuantitySpec_'><span class='texttt'>QuantitySpec</span></span></a> Q<span class='anglebracket'>&gt;</span>
<span class='keyword'>consteval</span> <a href='qty.spec.concepts.html#concept:QuantitySpec' title='5.4.3.2&emsp;Concepts&emsp;[qty.spec.concepts]'><span id='conceptref:QuantitySpec__'><span class='texttt'>QuantitySpec</span></span></a> <span class='keyword'>auto</span> <span class='texttt'><i >clone-kind-of</i></span><span class='parenthesis'>(</span>Q q<span class='parenthesis'>)</span>; <span class='comment'>// <i >exposition only</i></span>
</code></div></div></div></div><div class='para' id='1'><div class='marginalizedparent'><a class='marginalized' href='#1'>1</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L1844'>#</a></div><div class='texpara'><div id='1.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
</code></div></div></div></div><div class='para' id='1'><div class='marginalizedparent'><a class='marginalized' href='#1'>1</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L1844'>#</a></div><div class='texpara'><div id='1.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
<span class='codeblock'><span class='keyword'>if</span> <span class='keyword'>constexpr</span> <span class='parenthesis'>(</span><span class='parenthesis'>(</span><span class='operator'>.</span><span class='operator'>.</span><span class='operator'>.</span> <span class='operator'>&amp;</span><span class='operator'>&amp;</span> <a class='index' id='conceptref:QuantityKindSpec'></a><i >QuantityKindSpec</i><span class='anglebracket'>&lt;</span><span class='keyword'>decltype</span><span class='parenthesis'>(</span>From<span class='parenthesis'>)</span><span class='anglebracket'>&gt;</span><span class='parenthesis'>)</span><span class='parenthesis'>)</span>
<span class='keyword'>return</span> kind_of<span class='anglebracket'>&lt;</span>Q<span class='curlybracket'>{</span><span class='curlybracket'>}</span><span class='anglebracket'>&gt;</span>;
<span class='keyword'>else</span>
<span class='keyword'>return</span> q;
</span></div></div></div></div><div class='texpara'><div id='lib:remove-kind,QuantitySpec'><div id='lib:QuantitySpec,remove-kind'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:QuantitySpec,remove-kind'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><a href='qty.spec.concepts.html#concept:QuantitySpec' title='5.4.3.2&emsp;Concepts&emsp;[qty.spec.concepts]'><span id='conceptref:QuantitySpec___'><span class='texttt'>QuantitySpec</span></span></a> Q<span class='anglebracket'>&gt;</span>
<span class='keyword'>consteval</span> <span class='keyword'>auto</span> <span class='texttt'><i >remove-kind</i></span><span class='parenthesis'>(</span>Q q<span class='parenthesis'>)</span>; <span class='comment'>// <i >exposition only</i></span>
</code></div></div></div></div><div class='para' id='2'><div class='marginalizedparent'><a class='marginalized' href='#2'>2</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L1862'>#</a></div><div class='texpara'><div id='2.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
</code></div></div></div></div><div class='para' id='2'><div class='marginalizedparent'><a class='marginalized' href='#2'>2</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L1862'>#</a></div><div class='texpara'><div id='2.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
<span class='codeblock'><span class='keyword'>if</span> <span class='keyword'>constexpr</span> <span class='parenthesis'>(</span><a class='index' id='conceptref:QuantityKindSpec_'></a><i >QuantityKindSpec</i><span class='anglebracket'>&lt;</span>Q<span class='anglebracket'>&gt;</span><span class='parenthesis'>)</span>
<span class='keyword'>return</span> Q<span class='operator'>::</span><i >quantity-spec</i>;
<span class='keyword'>else</span>
@ -15,7 +15,7 @@
</span></div></div></div></div><div class='texpara'><div id='lib:make-reference,Unit'><div id='lib:Unit,make-reference'><div id='lib:make-reference,QuantitySpec'><div id='lib:QuantitySpec,make-reference'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:QuantitySpec,make-reference'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><a href='qty.spec.concepts.html#concept:QuantitySpec' title='5.4.3.2&emsp;Concepts&emsp;[qty.spec.concepts]'><span id='conceptref:QuantitySpec____'><span class='texttt'>QuantitySpec</span></span></a> QS, <a href='qty.unit.concepts.html#concept:Unit' title='5.4.4.4&emsp;Concepts&emsp;[qty.unit.concepts]'><span id='conceptref:Unit'><span class='texttt'>Unit</span></span></a> U<span class='anglebracket'>&gt;</span>
<span class='keyword'>requires</span><span class='parenthesis'>(</span><span class='operator'>!</span><a href='qty.unit.concepts.html#concept:AssociatedUnit' title='5.4.4.4&emsp;Concepts&emsp;[qty.unit.concepts]'><span id='conceptref:AssociatedUnit'><span class='texttt'>AssociatedUnit</span></span></a><span class='anglebracket'>&lt;</span>U<span class='anglebracket'>&gt;</span><span class='parenthesis'>)</span> <span class='operator'>|</span><span class='operator'>|</span> <a href='qty.unit.concepts.html#concept:UnitOf' title='5.4.4.4&emsp;Concepts&emsp;[qty.unit.concepts]'><span id='conceptref:UnitOf'><span class='texttt'>UnitOf</span></span></a><span class='anglebracket'>&lt;</span>U, QS<span class='curlybracket'>{</span><span class='curlybracket'>}</span><span class='anglebracket'>&gt;</span>
<span class='keyword'>consteval</span> <a href='qty.ref.concepts.html#concept:Reference' title='5.4.5&emsp;Concepts&emsp;[qty.ref.concepts]'><span id='conceptref:Reference'><span class='texttt'>Reference</span></span></a> <span class='keyword'>auto</span> <span class='texttt'><i >make-reference</i></span><span class='parenthesis'>(</span>QS, U u<span class='parenthesis'>)</span>; <span class='comment'>// <i >exposition only</i></span>
</code></div></div></div></div></div></div><div class='para' id='3'><div class='marginalizedparent'><a class='marginalized' href='#3'>3</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L1882'>#</a></div><div class='texpara'><div id='3.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
</code></div></div></div></div></div></div><div class='para' id='3'><div class='marginalizedparent'><a class='marginalized' href='#3'>3</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L1882'>#</a></div><div class='texpara'><div id='3.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
<span class='codeblock'><span class='keyword'>if</span> <span class='keyword'>constexpr</span> <span class='parenthesis'>(</span><span class='keyword'>requires</span> <span class='curlybracket'>{</span> <span class='keyword'>requires</span> get_quantity_spec<span class='parenthesis'>(</span>U<span class='curlybracket'>{</span><span class='curlybracket'>}</span><span class='parenthesis'>)</span> <span class='operator'>=</span><span class='operator'>=</span> QS<span class='curlybracket'>{</span><span class='curlybracket'>}</span>; <span class='curlybracket'>}</span><span class='parenthesis'>)</span>
<span class='keyword'>return</span> u;
<span class='keyword'>else</span>

View File

@ -6,6 +6,6 @@
<span class='keyword'>requires</span> <i ><span class='texttt'>see below</span></i>;
<span class='keyword'>static</span> <span class='keyword'>constexpr</span> quantity max<span class='parenthesis'>(</span><span class='parenthesis'>)</span> <span class='keyword'>noexcept</span>
<span class='keyword'>requires</span> <i ><span class='texttt'>see below</span></i>;
</code></div></div></div></div></div></div></div></div></div></div><div class='para' id='1'><div class='marginalizedparent'><a class='marginalized' href='#1'>1</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L4488'>#</a></div><div class='texpara'><div id='1.sentence-1' class='sentence'>Let <i >F</i> be one of <span class='texttt'>zero</span>, <span class='texttt'>one</span>, <span class='texttt'>min</span>, and <span class='texttt'>max</span><a class='hidden_link' href='#1.sentence-1'>.</a></div></div></div></div><div class='para' id='2'><div class='marginalizedparent'><a class='marginalized' href='#2'>2</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L4491'>#</a></div><div class='texpara'><div id='2.sentence-1' class='sentence'><i >Returns</i>: <span class='texttt'><span class='curlybracket'>{</span>representation_<span class='shy'></span>values<span class='anglebracket'>&lt;</span>rep<span class='anglebracket'>&gt;</span><span class='operator'>&#x200b;::&#x200b;</span><i >F</i><span class='parenthesis'>(</span><span class='parenthesis'>)</span>, R<span class='curlybracket'>}</span></span><a class='hidden_link' href='#2.sentence-1'>.</a></div></div></div></div><div class='para' id='3'><div class='marginalizedparent'><a class='marginalized' href='#3'>3</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L4495'>#</a></div><div class='texpara'><div id='3.sentence-1' class='sentence'><i >Remarks</i>: The expression in the <span class='textsf'><i >requires-clause</i></span> is equivalent to:
</code></div></div></div></div></div></div></div></div></div></div><div class='para' id='1'><div class='marginalizedparent'><a class='marginalized' href='#1'>1</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L4488'>#</a></div><div class='texpara'><div id='1.sentence-1' class='sentence'>Let <i >F</i> be one of <span class='texttt'>zero</span>, <span class='texttt'>one</span>, <span class='texttt'>min</span>, and <span class='texttt'>max</span><a class='hidden_link' href='#1.sentence-1'>.</a></div></div></div></div><div class='para' id='2'><div class='marginalizedparent'><a class='marginalized' href='#2'>2</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L4491'>#</a></div><div class='texpara'><div id='2.sentence-1' class='sentence'><i >Returns</i>: <span class='texttt'><span class='curlybracket'>{</span>representation_<span class='shy'></span>values<span class='anglebracket'>&lt;</span>rep<span class='anglebracket'>&gt;</span><span class='operator'>&#x200b;::&#x200b;</span><i >F</i><span class='parenthesis'>(</span><span class='parenthesis'>)</span>, R<span class='curlybracket'>}</span></span><a class='hidden_link' href='#2.sentence-1'>.</a></div></div></div></div><div class='para' id='3'><div class='marginalizedparent'><a class='marginalized' href='#3'>3</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L4495'>#</a></div><div class='texpara'><div id='3.sentence-1' class='sentence'><i >Remarks</i>: The expression in the <span class='textsf'><i >requires-clause</i></span> is equivalent to:
<span class='codeblock'><span class='keyword'>requires</span> <span class='curlybracket'>{</span> representation_values<span class='anglebracket'>&lt;</span>rep<span class='anglebracket'>&gt;</span><span class='operator'>::</span><i >F</i><span class='parenthesis'>(</span><span class='parenthesis'>)</span>; <span class='curlybracket'>}</span>
</span></div></div></div></div></div></body></html>

File diff suppressed because one or more lines are too long

View File

@ -3,6 +3,6 @@
std<span class='operator'>::</span>is_empty_v<span class='anglebracket'>&lt;</span>T<span class='anglebracket'>&gt;</span> <span class='operator'>&amp;</span><span class='operator'>&amp;</span> std<span class='operator'>::</span>is_final_v<span class='anglebracket'>&lt;</span>T<span class='anglebracket'>&gt;</span> <span class='operator'>&amp;</span><span class='operator'>&amp;</span> std<span class='operator'>::</span>is_trivially_default_constructible_v<span class='anglebracket'>&lt;</span>T<span class='anglebracket'>&gt;</span> <span class='operator'>&amp;</span><span class='operator'>&amp;</span>
std<span class='operator'>::</span>is_trivially_copy_constructible_v<span class='anglebracket'>&lt;</span>T<span class='anglebracket'>&gt;</span> <span class='operator'>&amp;</span><span class='operator'>&amp;</span> std<span class='operator'>::</span>is_trivially_move_constructible_v<span class='anglebracket'>&lt;</span>T<span class='anglebracket'>&gt;</span> <span class='operator'>&amp;</span><span class='operator'>&amp;</span>
std<span class='operator'>::</span>is_trivially_destructible_v<span class='anglebracket'>&lt;</span>T<span class='anglebracket'>&gt;</span>;
</code></div></div><div class='para' id='1'><div class='marginalizedparent'><a class='marginalized' href='#1'>1</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L1006'>#</a></div><div class='texpara'><div id='1.sentence-1' class='sentence'>The concept <a href='#concept:SymbolicConstant' title='5.3.4.2&emsp;Concept SymbolicConstant&emsp;[qty.sym.expr.concepts]'><span id='conceptref:SymbolicConstant'><span class='texttt'><i >SymbolicConstant</i></span></span></a>
</code></div></div><div class='para' id='1'><div class='marginalizedparent'><a class='marginalized' href='#1'>1</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L1006'>#</a></div><div class='texpara'><div id='1.sentence-1' class='sentence'>The concept <a href='#concept:SymbolicConstant' title='5.3.4.2&emsp;Concept SymbolicConstant&emsp;[qty.sym.expr.concepts]'><span id='conceptref:SymbolicConstant'><span class='texttt'><i >SymbolicConstant</i></span></span></a>
is used to constrain the types
that are used in symbolic expressions<a class='hidden_link' href='#1.sentence-1'>.</a></div></div></div></div></body></html>

View File

@ -1,4 +1,4 @@
<!DOCTYPE html><html lang='en'><head><title>[qty.sym.expr.general]</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.3</a> Utilities <a class='abbr_ref' href='qty.utils.html#qty.sym.expr.general'>[qty.utils]</a></h2><h3 ><a class='secnum' style='min-width:80pt'>5.3.4</a> Symbolic expressions <a class='abbr_ref' href='qty.sym.expr.html#general'>[qty.sym.expr]</a></h3><h4 ><a class='secnum' style='min-width:95pt'>5.3.4.1</a> General <a class='abbr_ref'>[qty.sym.expr.general]</a></h4><div class='para' id='1'><div class='marginalizedparent'><a class='marginalized' href='#1'>1</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L981'>#</a></div><div class='texpara'><div id='1.sentence-1' class='sentence'>Subclause <a href='qty.sym.expr.html' title='5.3.4&emsp;Symbolic expressions'>[qty.<span class='shy'></span>sym.<span class='shy'></span>expr]</a> specifies the components
<!DOCTYPE html><html lang='en'><head><title>[qty.sym.expr.general]</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.3</a> Utilities <a class='abbr_ref' href='qty.utils.html#qty.sym.expr.general'>[qty.utils]</a></h2><h3 ><a class='secnum' style='min-width:80pt'>5.3.4</a> Symbolic expressions <a class='abbr_ref' href='qty.sym.expr.html#general'>[qty.sym.expr]</a></h3><h4 ><a class='secnum' style='min-width:95pt'>5.3.4.1</a> General <a class='abbr_ref'>[qty.sym.expr.general]</a></h4><div class='para' id='1'><div class='marginalizedparent'><a class='marginalized' href='#1'>1</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L981'>#</a></div><div class='texpara'><div id='1.sentence-1' class='sentence'>Subclause <a href='qty.sym.expr.html' title='5.3.4&emsp;Symbolic expressions'>[qty.<span class='shy'></span>sym.<span class='shy'></span>expr]</a> specifies the components
used to maintain ordered, simplified, and readable
argument lists in the names of specializations<a class='hidden_link' href='#1.sentence-1'>.</a></div> <div id='example-1' class='example'><div class='texpara'>[<i>Example&nbsp;<a href='#example-1'>1</a></i>:&ensp;<span class='codeblock'><span class='keyword'>using</span> <span class='keyword'>namespace</span> si<span class='operator'>::</span>unit_symbols;
<span class='keyword'>int</span> x <span class='operator'>=</span> kg <span class='operator'>*</span> km <span class='operator'>/</span> square<span class='parenthesis'>(</span>h<span class='parenthesis'>)</span>; <span class='comment'>// error: cannot construct from</span>

File diff suppressed because one or more lines are too long

View File

@ -4,7 +4,7 @@
<span class='keyword'>struct</span> per <span class='keyword'>final</span> <span class='curlybracket'>{</span><span class='curlybracket'>}</span>;
<span class='curlybracket'>}</span>
</span></span></div><div class='para' id='1'><div class='marginalizedparent'><a class='marginalized' href='#1'>1</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L1023'>#</a></div><div class='texpara'><div id='1.sentence-1' class='sentence'><span class='texttt'>per</span> is used to store arguments with negative exponents<a class='hidden_link' href='#1.sentence-1'>.</a></div> <div id='1.sentence-2' class='sentence'>A specialization of <span class='texttt'>per</span>
</span></span></div><div class='para' id='1'><div class='marginalizedparent'><a class='marginalized' href='#1'>1</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L1023'>#</a></div><div class='texpara'><div id='1.sentence-1' class='sentence'><span class='texttt'>per</span> is used to store arguments with negative exponents<a class='hidden_link' href='#1.sentence-1'>.</a></div> <div id='1.sentence-2' class='sentence'>A specialization of <span class='texttt'>per</span>
represents the product of the inverse of its template arguments<a class='hidden_link' href='#1.sentence-2'>.</a></div> <div id='1.sentence-3' class='sentence'>A program that instantiates a specialization of <span class='texttt'>per</span>
that is not a possible result of the library specifications
is ill-formed, no diagnostic required<a class='hidden_link' href='#1.sentence-3'>.</a></div></div><div class='texpara'><span id='lib:power'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:power'>🔗</a></div><span class='codeblock'><span class='keyword'>namespace</span> mp_units <span class='curlybracket'>{</span>
@ -17,11 +17,11 @@ is ill-formed, no diagnostic required<a class='hidden_link' href='#1.sentence-3'
<span class='curlybracket'>}</span>;
<span class='curlybracket'>}</span>
</span></span></div></div><div class='para' id='2'><div class='marginalizedparent'><a class='marginalized' href='#2'>2</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L1045'>#</a></div><div class='texpara'><div id='2.sentence-1' class='sentence'><span class='texttt'>power</span> represents a power (<a href="https://www.electropedia.org/iev/iev.nsf/display?openform&ievref=102-02-08">IEC 60050, 102-02-08</a>)
</span></span></div></div><div class='para' id='2'><div class='marginalizedparent'><a class='marginalized' href='#2'>2</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L1045'>#</a></div><div class='texpara'><div id='2.sentence-1' class='sentence'><span class='texttt'>power</span> represents a power (<a href="https://www.electropedia.org/iev/iev.nsf/display?openform&ievref=102-02-08">IEC 60050, 102-02-08</a>)
of the form <span class="mjx-chtml"><span class="mjx-math"><span class="mjx-mrow" aria-hidden="true"><span class="mjx-msubsup"><span class="mjx-base"><span class="mjx-texatom"><span class="mjx-mrow"><span class="mjx-mtext"><span class="mjx-char MJXc-TeX-type-R" style="padding-top: 0.372em; padding-bottom: 0.225em;">F</span></span></span></span></span><span class="mjx-sup" style="font-size: 70.7%; vertical-align: 0.513em; padding-left: 0px; padding-right: 0.071em;"><span class="mjx-texatom"><span class="mjx-mrow"><span class="mjx-texatom"><span class="mjx-mrow"><span class="mjx-mtext"><span class="mjx-char MJXc-TeX-type-R" style="padding-top: 0.372em; padding-bottom: 0.298em;">Num</span></span></span></span><span class="mjx-texatom"><span class="mjx-mrow"><span class="mjx-mo"><span class="mjx-char MJXc-TeX-main-R" style="padding-top: 0.446em; padding-bottom: 0.593em;">/</span></span></span></span><span class="mjx-texatom"><span class="mjx-mrow"><span class="mjx-mtext"><span class="mjx-char MJXc-TeX-type-R" style="padding-top: 0.372em; padding-bottom: 0.298em;">Den</span></span></span></span></span></span></span></span></span></span></span><a class='hidden_link' href='#2.sentence-1'>.</a></div> <div id='note-1' class='note'><div class='texpara'>[<i>Note&nbsp;<a href='#note-1'>1</a></i>:&ensp;<div id='2.sentence-2' class='sentence'><span class='texttt'>Den</span> is optional to shorten the type name when <span class='texttt'>Den</span> is <span class='texttt'><span class='literal'>1</span></span><a class='hidden_link' href='#2.sentence-2'>.</a></div>&nbsp;<i>end note</i>]</div></div> <div id='2.sentence-3' class='sentence'>
A program that instantiates a specialization of <span class='texttt'>power</span>
that is not a possible result of the library specifications
is ill-formed, no diagnostic required<a class='hidden_link' href='#2.sentence-3'>.</a></div></div></div><div class='para' id='3'><div class='marginalizedparent'><a class='marginalized' href='#3'>3</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L1055'>#</a></div><div class='texpara'><div id='3.sentence-1' class='sentence'>Let <span class='texttt'>r</span> be <span class='texttt'><span class='texttt'><i >ratio</i></span><span class='curlybracket'>{</span>Num, Den<span class='operator'>.</span><span class='operator'>.</span><span class='operator'>.</span><span class='curlybracket'>}</span></span><a class='hidden_link' href='#3.sentence-1'>.</a></div> <div id='3.sentence-2' class='sentence'>Let <span class='texttt'><i >is-valid-ratio</i></span> be
is ill-formed, no diagnostic required<a class='hidden_link' href='#2.sentence-3'>.</a></div></div></div><div class='para' id='3'><div class='marginalizedparent'><a class='marginalized' href='#3'>3</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L1055'>#</a></div><div class='texpara'><div id='3.sentence-1' class='sentence'>Let <span class='texttt'>r</span> be <span class='texttt'><span class='texttt'><i >ratio</i></span><span class='curlybracket'>{</span>Num, Den<span class='operator'>.</span><span class='operator'>.</span><span class='operator'>.</span><span class='curlybracket'>}</span></span><a class='hidden_link' href='#3.sentence-1'>.</a></div> <div id='3.sentence-2' class='sentence'>Let <span class='texttt'><i >is-valid-ratio</i></span> be
<span class='texttt'><span class='literal'>true</span></span> if <span class='texttt'>r</span> is a valid constant expression, and
<span class='texttt'><span class='literal'>false</span></span> otherwise<a class='hidden_link' href='#3.sentence-2'>.</a></div> <div id='3.sentence-3' class='sentence'>The expression in the <span class='textsf'><i >requires-clause</i></span> is equivalent to:
<span class='codeblock'><i >is-valid-ratio</i> <span class='operator'>&amp;</span><span class='operator'>&amp;</span> <span class='parenthesis'>(</span>r <span class='anglebracket'>&gt;</span> <i >ratio</i><span class='curlybracket'>{</span><span class='literal'>0</span><span class='curlybracket'>}</span><span class='parenthesis'>)</span> <span class='operator'>&amp;</span><span class='operator'>&amp;</span> <span class='parenthesis'>(</span>r <span class='operator'>!</span><span class='operator'>=</span> <i >ratio</i><span class='curlybracket'>{</span><span class='literal'>1</span><span class='curlybracket'>}</span><span class='parenthesis'>)</span>

View File

@ -48,8 +48,8 @@ symbol_text<span class='parenthesis'>(</span><span class='keyword'>const</span>
symbol_text<span class='parenthesis'>(</span><span class='keyword'>const</span> std<span class='operator'>::</span>fixed_u8string<span class='anglebracket'>&lt;</span>N<span class='anglebracket'>&gt;</span><span class='operator'>&amp;</span>, <span class='keyword'>const</span> std<span class='operator'>::</span>fixed_string<span class='anglebracket'>&lt;</span>M<span class='anglebracket'>&gt;</span><span class='operator'>&amp;</span><span class='parenthesis'>)</span> <span class='operator'>-</span><span class='anglebracket'>&gt;</span> symbol_text<span class='anglebracket'>&lt;</span>N, M<span class='anglebracket'>&gt;</span>;
<span class='curlybracket'>}</span>
</span></span></div><div class='para' id='1'><div class='marginalizedparent'><a class='marginalized' href='#1'>1</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L894'>#</a></div><div class='texpara'><div id='1.sentence-1' class='sentence'><span class='texttt'>symbol_<span class='shy'></span>text</span> represents a symbol text<a class='hidden_link' href='#1.sentence-1'>.</a></div> <div id='1.sentence-2' class='sentence'><span class='texttt'><i >utf8</i></span> stores its UTF-8 representation, and
<span class='texttt'><i >portable</i></span> stores its portable representation<a class='hidden_link' href='#1.sentence-2'>.</a></div> <div id='1.sentence-3' class='sentence'><span class='texttt'>symbol_<span class='shy'></span>text<span class='anglebracket'>&lt;</span>N, M<span class='anglebracket'>&gt;</span></span> is a structural type (<a href="https://wg21.link/temp.paramterm.structural.type">N4971, [temp.param]</a>)<a class='hidden_link' href='#1.sentence-3'>.</a></div></div></div><div class='para' id='2'><div class='marginalizedparent'><a class='marginalized' href='#2'>2</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L900'>#</a></div><div class='texpara'><div id='2.sentence-1' class='sentence'>In the descriptions that follow,
</span></span></div><div class='para' id='1'><div class='marginalizedparent'><a class='marginalized' href='#1'>1</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L894'>#</a></div><div class='texpara'><div id='1.sentence-1' class='sentence'><span class='texttt'>symbol_<span class='shy'></span>text</span> represents a symbol text<a class='hidden_link' href='#1.sentence-1'>.</a></div> <div id='1.sentence-2' class='sentence'><span class='texttt'><i >utf8</i></span> stores its UTF-8 representation, and
<span class='texttt'><i >portable</i></span> stores its portable representation<a class='hidden_link' href='#1.sentence-2'>.</a></div> <div id='1.sentence-3' class='sentence'><span class='texttt'>symbol_<span class='shy'></span>text<span class='anglebracket'>&lt;</span>N, M<span class='anglebracket'>&gt;</span></span> is a structural type (<a href="https://wg21.link/temp.paramterm.structural.type">N4971, [temp.param]</a>)<a class='hidden_link' href='#1.sentence-3'>.</a></div></div></div><div class='para' id='2'><div class='marginalizedparent'><a class='marginalized' href='#2'>2</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L900'>#</a></div><div class='texpara'><div id='2.sentence-1' class='sentence'>In the descriptions that follow,
it is a <i >Precondition</i> that
<ul class='itemize'><li id='2.1'><div class='marginalizedparent' style='left:-27mm'><a class='marginalized' href='#2.1'>(2.1)</a></div>values of <span class='texttt'><span class='keyword'>char</span></span> are in the basic literal character set (<a href="https://wg21.link/lex.charset">N4971, [lex.charset]</a>), and</li><li id='2.2'><div class='marginalizedparent' style='left:-27mm'><a class='marginalized' href='#2.2'>(2.2)</a></div>for a parameter of the form <span class='texttt'><span class='keyword'>const</span> <i >CharT</i> <span class='parenthesis'>(</span><span class='operator'>&amp;</span><i >txt</i><span class='parenthesis'>)</span><span class='squarebracket'>[</span><i >M</i><span class='squarebracket'>]</span></span>,
<span class='texttt'><span class='parenthesis'>(</span><i >txt</i><span class='squarebracket'>[</span><i >M</i> <span class='operator'>-</span> <span class='literal'>1</span><span class='squarebracket'>]</span> <span class='operator'>=</span><span class='operator'>=</span> <i >CharT</i><span class='parenthesis'>(</span><span class='parenthesis'>)</span><span class='parenthesis'>)</span></span> is <span class='texttt'><span class='literal'>true</span></span><a class='hidden_link' href='#2.sentence-1'>.</a></li></ul></div></div></div><div class='texpara'><div id='lib:symbol_text,constructor'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:symbol_text,constructor'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>constexpr</span> symbol_text<span class='parenthesis'>(</span><span class='keyword'>char</span> portable<span class='parenthesis'>)</span>;
@ -57,15 +57,15 @@ it is a <i >Precondition</i> that
<span class='keyword'>constexpr</span> symbol_text<span class='parenthesis'>(</span><span class='keyword'>const</span> std<span class='operator'>::</span>fixed_string<span class='anglebracket'>&lt;</span>N<span class='anglebracket'>&gt;</span><span class='operator'>&amp;</span> portable<span class='parenthesis'>)</span>;
<span class='keyword'>consteval</span> symbol_text<span class='parenthesis'>(</span><span class='keyword'>const</span> <span class='keyword'>char8_t</span> <span class='parenthesis'>(</span><span class='operator'>&amp;</span>utf8<span class='parenthesis'>)</span><span class='squarebracket'>[</span>N <span class='operator'>+</span> <span class='literal'>1</span><span class='squarebracket'>]</span>, <span class='keyword'>const</span> <span class='keyword'>char</span> <span class='parenthesis'>(</span><span class='operator'>&amp;</span>portable<span class='parenthesis'>)</span><span class='squarebracket'>[</span>M <span class='operator'>+</span> <span class='literal'>1</span><span class='squarebracket'>]</span><span class='parenthesis'>)</span>;
<span class='keyword'>constexpr</span> symbol_text<span class='parenthesis'>(</span><span class='keyword'>const</span> std<span class='operator'>::</span>fixed_u8string<span class='anglebracket'>&lt;</span>N<span class='anglebracket'>&gt;</span><span class='operator'>&amp;</span> utf8, <span class='keyword'>const</span> std<span class='operator'>::</span>fixed_string<span class='anglebracket'>&lt;</span>M<span class='anglebracket'>&gt;</span><span class='operator'>&amp;</span> portable<span class='parenthesis'>)</span>;
</code></div></div></div><div class='para' id='3'><div class='marginalizedparent'><a class='marginalized' href='#3'>3</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L921'>#</a></div><div class='texpara'><div id='3.sentence-1' class='sentence'>For the constructors without a parameter named <span class='texttt'>utf8</span>,
</code></div></div></div><div class='para' id='3'><div class='marginalizedparent'><a class='marginalized' href='#3'>3</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L921'>#</a></div><div class='texpara'><div id='3.sentence-1' class='sentence'>For the constructors without a parameter named <span class='texttt'>utf8</span>,
let <span class='texttt'>utf8</span> be:
<span class='codeblock'>std<span class='operator'>::</span>bit_cast<span class='anglebracket'>&lt;</span>std<span class='operator'>::</span>fixed_u8string<span class='anglebracket'>&lt;</span>N<span class='anglebracket'>&gt;</span><span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span>std<span class='operator'>::</span>basic_fixed_string<span class='parenthesis'>(</span>portable<span class='parenthesis'>)</span><span class='parenthesis'>)</span>
</span></div></div></div></div><div class='para' id='4'><div class='marginalizedparent'><a class='marginalized' href='#4'>4</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L928'>#</a></div><div class='texpara'><div id='4.sentence-1' class='sentence'><i >Effects</i>: Equivalent to the <span class='textsf'><i >mem-initializer-list</i></span>:
</span></div></div></div></div><div class='para' id='4'><div class='marginalizedparent'><a class='marginalized' href='#4'>4</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L928'>#</a></div><div class='texpara'><div id='4.sentence-1' class='sentence'><i >Effects</i>: Equivalent to the <span class='textsf'><i >mem-initializer-list</i></span>:
<span class='codeblock'><i >utf8</i><span class='curlybracket'>{</span>utf8<span class='curlybracket'>}</span>, <i >portable</i><span class='curlybracket'>{</span>portable<span class='curlybracket'>}</span>
</span></div></div></div></div><div class='texpara'><div id='lib:symbol_text,operator+'><div id='lib:operator+,symbol_text'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:operator+,symbol_text'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span>std<span class='operator'>::</span>size_t N2, std<span class='operator'>::</span>size_t M2<span class='anglebracket'>&gt;</span>
<span class='keyword'>friend</span> <span class='keyword'>constexpr</span> symbol_text<span class='anglebracket'>&lt;</span>N <span class='operator'>+</span> N2, M <span class='operator'>+</span> M2<span class='anglebracket'>&gt;</span> <span class='keyword'>operator</span><span class='operator'>+</span><span class='parenthesis'>(</span><span class='keyword'>const</span> symbol_text<span class='operator'>&amp;</span> lhs,
<span class='keyword'>const</span> symbol_text<span class='anglebracket'>&lt;</span>N2, M2<span class='anglebracket'>&gt;</span><span class='operator'>&amp;</span> rhs<span class='parenthesis'>)</span>;
</code></div></div></div></div><div class='para' id='5'><div class='marginalizedparent'><a class='marginalized' href='#5'>5</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L944'>#</a></div><div class='texpara'><div id='5.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
</code></div></div></div></div><div class='para' id='5'><div class='marginalizedparent'><a class='marginalized' href='#5'>5</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L944'>#</a></div><div class='texpara'><div id='5.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
<span class='codeblock'><span class='keyword'>return</span> symbol_text<span class='anglebracket'>&lt;</span>N <span class='operator'>+</span> N2, M <span class='operator'>+</span> M2<span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span>lhs<span class='operator'>.</span>utf8<span class='parenthesis'>(</span><span class='parenthesis'>)</span> <span class='operator'>+</span> rhs<span class='operator'>.</span>utf8<span class='parenthesis'>(</span><span class='parenthesis'>)</span>,
lhs<span class='operator'>.</span>portable<span class='parenthesis'>(</span><span class='parenthesis'>)</span> <span class='operator'>+</span> rhs<span class='operator'>.</span>portable<span class='parenthesis'>(</span><span class='parenthesis'>)</span><span class='parenthesis'>)</span>;
</span></div></div></div></div><div class='texpara'><div id='lib:symbol_text,operator<=>'><div id='lib:operator<=>,symbol_text'><div id='lib:symbol_text,operator=='><div id='lib:operator==,symbol_text'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:operator==,symbol_text'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span>std<span class='operator'>::</span>size_t N2, std<span class='operator'>::</span>size_t M2<span class='anglebracket'>&gt;</span>
@ -74,7 +74,7 @@ let <span class='texttt'>utf8</span> be:
<span class='keyword'>template</span><span class='anglebracket'>&lt;</span>std<span class='operator'>::</span>size_t N2, std<span class='operator'>::</span>size_t M2<span class='anglebracket'>&gt;</span>
<span class='keyword'>friend</span> <span class='keyword'>constexpr</span> <span class='keyword'>auto</span> <span class='keyword'>operator</span><span class='anglebracket'>&lt;</span><span class='operator'>=</span><span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span><span class='keyword'>const</span> symbol_text<span class='operator'>&amp;</span> lhs,
<span class='keyword'>const</span> symbol_text<span class='anglebracket'>&lt;</span>N2, M2<span class='anglebracket'>&gt;</span><span class='operator'>&amp;</span> rhs<span class='parenthesis'>)</span> <span class='keyword'>noexcept</span>;
</code></div></div></div></div></div></div><div class='para' id='6'><div class='marginalizedparent'><a class='marginalized' href='#6'>6</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L965'>#</a></div><div class='texpara'><div id='6.sentence-1' class='sentence'>Let <span class='texttt'>@</span> be the <span class='textsf'><i >operator</i></span><a class='hidden_link' href='#6.sentence-1'>.</a></div></div></div></div><div class='para' id='7'><div class='marginalizedparent'><a class='marginalized' href='#7'>7</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L968'>#</a></div><div class='texpara'><div id='7.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
</code></div></div></div></div></div></div><div class='para' id='6'><div class='marginalizedparent'><a class='marginalized' href='#6'>6</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L965'>#</a></div><div class='texpara'><div id='6.sentence-1' class='sentence'>Let <span class='texttt'>@</span> be the <span class='textsf'><i >operator</i></span><a class='hidden_link' href='#6.sentence-1'>.</a></div></div></div></div><div class='para' id='7'><div class='marginalizedparent'><a class='marginalized' href='#7'>7</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L968'>#</a></div><div class='texpara'><div id='7.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
<span class='codeblock'><span class='keyword'>return</span> std<span class='operator'>::</span>make_tuple<span class='parenthesis'>(</span>std<span class='operator'>::</span>cref<span class='parenthesis'>(</span>lhs<span class='operator'>.</span>utf8<span class='parenthesis'>(</span><span class='parenthesis'>)</span><span class='parenthesis'>)</span>, std<span class='operator'>::</span>cref<span class='parenthesis'>(</span>lhs<span class='operator'>.</span>portable<span class='parenthesis'>(</span><span class='parenthesis'>)</span><span class='parenthesis'>)</span><span class='parenthesis'>)</span> @
std<span class='operator'>::</span>make_tuple<span class='parenthesis'>(</span>std<span class='operator'>::</span>cref<span class='parenthesis'>(</span>rhs<span class='operator'>.</span>utf8<span class='parenthesis'>(</span><span class='parenthesis'>)</span><span class='parenthesis'>)</span>, std<span class='operator'>::</span>cref<span class='parenthesis'>(</span>rhs<span class='operator'>.</span>portable<span class='parenthesis'>(</span><span class='parenthesis'>)</span><span class='parenthesis'>)</span><span class='parenthesis'>)</span>;
</span></div></div></div></div></div></body></html>

View File

@ -330,5 +330,5 @@ quantity<span class='parenthesis'>(</span>Value<span class='parenthesis'>)</span
<span class='operator'>-</span><span class='anglebracket'>&gt;</span> quantity<span class='anglebracket'>&lt;</span>quantity_like_traits<span class='anglebracket'>&lt;</span>Q<span class='anglebracket'>&gt;</span><span class='operator'>::</span>reference, <span class='keyword'>typename</span> quantity_like_traits<span class='anglebracket'>&lt;</span>Q<span class='anglebracket'>&gt;</span><span class='operator'>::</span>rep<span class='anglebracket'>&gt;</span>;
<span class='curlybracket'>}</span>
</span></div><div class='para' id='1'><div class='marginalizedparent'><a class='marginalized' href='#1'>1</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L4466'>#</a></div><div class='texpara'><div id='1.sentence-1' class='sentence'><span class='texttt'>quantity<span class='anglebracket'>&lt;</span>R, Rep<span class='anglebracket'>&gt;</span></span> is a structural type (<a href="https://wg21.link/temp.paramterm.structural.type">N4971, [temp.param]</a>)
</span></div><div class='para' id='1'><div class='marginalizedparent'><a class='marginalized' href='#1'>1</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L4466'>#</a></div><div class='texpara'><div id='1.sentence-1' class='sentence'><span class='texttt'>quantity<span class='anglebracket'>&lt;</span>R, Rep<span class='anglebracket'>&gt;</span></span> is a structural type (<a href="https://wg21.link/temp.paramterm.structural.type">N4971, [temp.param]</a>)
if <span class='texttt'>Rep</span> is a structural type<a class='hidden_link' href='#1.sentence-1'>.</a></div></div></div></div></body></html>

View File

@ -1,10 +1,10 @@
<!DOCTYPE html><html lang='en'><head><title>[qty.unary.ops]</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.6</a> Quantity <a class='abbr_ref' href='qty.html#unary.ops'>[qty]</a></h2><h3 ><a class='secnum' style='min-width:80pt'>5.6.9</a> Unary operations <a class='abbr_ref'>[qty.unary.ops]</a></h3><div class='para' id='1'><div class='marginalizedparent'><a class='marginalized' href='#1'>1</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L4775'>#</a></div><div class='texpara'><div id='1.sentence-1' class='sentence'>In the following descriptions,
<!DOCTYPE html><html lang='en'><head><title>[qty.unary.ops]</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.6</a> Quantity <a class='abbr_ref' href='qty.html#unary.ops'>[qty]</a></h2><h3 ><a class='secnum' style='min-width:80pt'>5.6.9</a> Unary operations <a class='abbr_ref'>[qty.unary.ops]</a></h3><div class='para' id='1'><div class='marginalizedparent'><a class='marginalized' href='#1'>1</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L4775'>#</a></div><div class='texpara'><div id='1.sentence-1' class='sentence'>In the following descriptions,
let <span class='texttt'>@</span> be the <span class='textsf'><i >operator</i></span><a class='hidden_link' href='#1.sentence-1'>.</a></div></div></div><div class='texpara'><div id='lib:quantity,operator-'><div id='lib:operator-,quantity'><div id='lib:quantity,operator+'><div id='lib:operator+,quantity'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:operator+,quantity'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>constexpr</span> <a href='qty.syn.html#concept:QuantityOf' title='5.6.3&emsp;Class template quantity&emsp;[qty.syn]'><span id='conceptref:QuantityOf'><span class='texttt'>QuantityOf</span></span></a><span class='anglebracket'>&lt;</span>quantity_spec<span class='anglebracket'>&gt;</span> <span class='keyword'>auto</span> <span class='keyword'>operator</span><span class='operator'>+</span><span class='parenthesis'>(</span><span class='parenthesis'>)</span> <span class='keyword'>const</span>
<span class='keyword'>requires</span> <i ><span class='texttt'>see below</span></i>;
<span class='keyword'>constexpr</span> <a href='qty.syn.html#concept:QuantityOf' title='5.6.3&emsp;Class template quantity&emsp;[qty.syn]'><span id='conceptref:QuantityOf_'><span class='texttt'>QuantityOf</span></span></a><span class='anglebracket'>&lt;</span>quantity_spec<span class='anglebracket'>&gt;</span> <span class='keyword'>auto</span> <span class='keyword'>operator</span><span class='operator'>-</span><span class='parenthesis'>(</span><span class='parenthesis'>)</span> <span class='keyword'>const</span>
<span class='keyword'>requires</span> <i ><span class='texttt'>see below</span></i>;
</code></div></div></div></div></div></div><div class='para' id='2'><div class='marginalizedparent'><a class='marginalized' href='#2'>2</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L4789'>#</a></div><div class='texpara'><div id='2.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
<span class='texttt'><span class='keyword'>return</span> <span class='operator'>&#x200b;::&#x200b;</span>mp_<span class='shy'></span>units<span class='operator'>&#x200b;::&#x200b;</span>quantity<span class='curlybracket'>{</span>@<span class='texttt'><i >numerical-value</i></span>, reference<span class='curlybracket'>}</span>;</span></div></div></div></div><div class='para' id='3'><div class='marginalizedparent'><a class='marginalized' href='#3'>3</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L4794'>#</a></div><div class='texpara'><div id='3.sentence-1' class='sentence'><i >Remarks</i>: The expression in the <span class='textsf'><i >requires-clause</i></span> is equivalent to:
</code></div></div></div></div></div></div><div class='para' id='2'><div class='marginalizedparent'><a class='marginalized' href='#2'>2</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L4789'>#</a></div><div class='texpara'><div id='2.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
<span class='texttt'><span class='keyword'>return</span> <span class='operator'>&#x200b;::&#x200b;</span>mp_<span class='shy'></span>units<span class='operator'>&#x200b;::&#x200b;</span>quantity<span class='curlybracket'>{</span>@<span class='texttt'><i >numerical-value</i></span>, reference<span class='curlybracket'>}</span>;</span></div></div></div></div><div class='para' id='3'><div class='marginalizedparent'><a class='marginalized' href='#3'>3</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L4794'>#</a></div><div class='texpara'><div id='3.sentence-1' class='sentence'><i >Remarks</i>: The expression in the <span class='textsf'><i >requires-clause</i></span> is equivalent to:
<span class='codeblock'><span class='keyword'>requires</span><span class='parenthesis'>(</span><span class='keyword'>const</span> rep v<span class='parenthesis'>)</span> <span class='curlybracket'>{</span>
<span class='curlybracket'>{</span> @v <span class='curlybracket'>}</span> <span class='operator'>-</span><span class='anglebracket'>&gt;</span> std<span class='operator'>::</span>common_with<span class='anglebracket'>&lt;</span>rep<span class='anglebracket'>&gt;</span>;
<span class='curlybracket'>}</span>
@ -14,8 +14,8 @@ let <span class='texttt'>@</span> be the <span class='textsf'><i >operator</i></
<span class='keyword'>template</span><span class='anglebracket'>&lt;</span><a class='index' id='conceptref:Mutable_'></a><span class='texttt'><i >Mutable</i></span><span class='anglebracket'>&lt;</span>quantity<span class='anglebracket'>&gt;</span> Q<span class='anglebracket'>&gt;</span>
<span class='keyword'>friend</span> <span class='keyword'>constexpr</span> <span class='keyword'>decltype</span><span class='parenthesis'>(</span><span class='keyword'>auto</span><span class='parenthesis'>)</span> <span class='keyword'>operator</span><span class='operator'>-</span><span class='operator'>-</span><span class='parenthesis'>(</span>Q<span class='operator'>&amp;</span><span class='operator'>&amp;</span> q<span class='parenthesis'>)</span>
<span class='keyword'>requires</span> <i ><span class='texttt'>see below</span></i>;
</code></div></div></div></div></div></div><div class='para' id='4'><div class='marginalizedparent'><a class='marginalized' href='#4'>4</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L4816'>#</a></div><div class='texpara'><div id='4.sentence-1' class='sentence'><i >Effects</i>: Equivalent to
<span class='texttt'>@q<span class='operator'>.</span><span class='texttt'><i >numerical-value</i></span></span><a class='hidden_link' href='#4.sentence-1'>.</a></div></div></div></div><div class='para' id='5'><div class='marginalizedparent'><a class='marginalized' href='#5'>5</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L4821'>#</a></div><div class='texpara'><div id='5.sentence-1' class='sentence'><i >Returns</i>: <span class='texttt'>std<span class='operator'>&#x200b;::&#x200b;</span>forward<span class='anglebracket'>&lt;</span>Q<span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span>q<span class='parenthesis'>)</span></span><a class='hidden_link' href='#5.sentence-1'>.</a></div></div></div></div><div class='para' id='6'><div class='marginalizedparent'><a class='marginalized' href='#6'>6</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L4825'>#</a></div><div class='texpara'><div id='6.sentence-1' class='sentence'><i >Remarks</i>: The expression in the <span class='textsf'><i >requires-clause</i></span> is equivalent to:
</code></div></div></div></div></div></div><div class='para' id='4'><div class='marginalizedparent'><a class='marginalized' href='#4'>4</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L4816'>#</a></div><div class='texpara'><div id='4.sentence-1' class='sentence'><i >Effects</i>: Equivalent to
<span class='texttt'>@q<span class='operator'>.</span><span class='texttt'><i >numerical-value</i></span></span><a class='hidden_link' href='#4.sentence-1'>.</a></div></div></div></div><div class='para' id='5'><div class='marginalizedparent'><a class='marginalized' href='#5'>5</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L4821'>#</a></div><div class='texpara'><div id='5.sentence-1' class='sentence'><i >Returns</i>: <span class='texttt'>std<span class='operator'>&#x200b;::&#x200b;</span>forward<span class='anglebracket'>&lt;</span>Q<span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span>q<span class='parenthesis'>)</span></span><a class='hidden_link' href='#5.sentence-1'>.</a></div></div></div></div><div class='para' id='6'><div class='marginalizedparent'><a class='marginalized' href='#6'>6</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L4825'>#</a></div><div class='texpara'><div id='6.sentence-1' class='sentence'><i >Remarks</i>: The expression in the <span class='textsf'><i >requires-clause</i></span> is equivalent to:
<span class='codeblock'><span class='keyword'>requires</span><span class='parenthesis'>(</span>rep<span class='operator'>&amp;</span> v<span class='parenthesis'>)</span> <span class='curlybracket'>{</span>
<span class='curlybracket'>{</span> @v <span class='curlybracket'>}</span> <span class='operator'>-</span><span class='anglebracket'>&gt;</span> std<span class='operator'>::</span>same_as<span class='anglebracket'>&lt;</span>rep<span class='operator'>&amp;</span><span class='anglebracket'>&gt;</span>;
<span class='curlybracket'>}</span>
@ -23,8 +23,8 @@ let <span class='texttt'>@</span> be the <span class='textsf'><i >operator</i></
<span class='keyword'>requires</span> <i ><span class='texttt'>see below</span></i>;
<span class='keyword'>constexpr</span> <a href='qty.syn.html#concept:QuantityOf' title='5.6.3&emsp;Class template quantity&emsp;[qty.syn]'><span id='conceptref:QuantityOf___'><span class='texttt'>QuantityOf</span></span></a><span class='anglebracket'>&lt;</span>quantity_spec<span class='anglebracket'>&gt;</span> <span class='keyword'>auto</span> <span class='keyword'>operator</span><span class='operator'>-</span><span class='operator'>-</span><span class='parenthesis'>(</span><span class='keyword'>int</span><span class='parenthesis'>)</span>
<span class='keyword'>requires</span> <i ><span class='texttt'>see below</span></i>;
</code></div></div></div></div></div></div><div class='para' id='7'><div class='marginalizedparent'><a class='marginalized' href='#7'>7</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L4845'>#</a></div><div class='texpara'><div id='7.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
<span class='texttt'><span class='keyword'>return</span> <span class='operator'>&#x200b;::&#x200b;</span>mp_<span class='shy'></span>units<span class='operator'>&#x200b;::&#x200b;</span>quantity<span class='curlybracket'>{</span><span class='texttt'><i >numerical-value</i></span>@, reference<span class='curlybracket'>}</span>;</span></div></div></div></div><div class='para' id='8'><div class='marginalizedparent'><a class='marginalized' href='#8'>8</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L4850'>#</a></div><div class='texpara'><div id='8.sentence-1' class='sentence'><i >Remarks</i>: The expression in the <span class='textsf'><i >requires-clause</i></span> is equivalent to:
</code></div></div></div></div></div></div><div class='para' id='7'><div class='marginalizedparent'><a class='marginalized' href='#7'>7</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L4845'>#</a></div><div class='texpara'><div id='7.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
<span class='texttt'><span class='keyword'>return</span> <span class='operator'>&#x200b;::&#x200b;</span>mp_<span class='shy'></span>units<span class='operator'>&#x200b;::&#x200b;</span>quantity<span class='curlybracket'>{</span><span class='texttt'><i >numerical-value</i></span>@, reference<span class='curlybracket'>}</span>;</span></div></div></div></div><div class='para' id='8'><div class='marginalizedparent'><a class='marginalized' href='#8'>8</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L4850'>#</a></div><div class='texpara'><div id='8.sentence-1' class='sentence'><i >Remarks</i>: The expression in the <span class='textsf'><i >requires-clause</i></span> is equivalent to:
<span class='codeblock'><span class='keyword'>requires</span><span class='parenthesis'>(</span>rep<span class='operator'>&amp;</span> v<span class='parenthesis'>)</span> <span class='curlybracket'>{</span>
<span class='curlybracket'>{</span> v@ <span class='curlybracket'>}</span> <span class='operator'>-</span><span class='anglebracket'>&gt;</span> std<span class='operator'>::</span>common_with<span class='anglebracket'>&lt;</span>rep<span class='anglebracket'>&gt;</span>;
<span class='curlybracket'>}</span>

View File

@ -1,15 +1,15 @@
<!DOCTYPE html><html lang='en'><head><title>[qty.unit.cmp]</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.unit.cmp'>[qty.ref]</a></h2><h3 ><a class='secnum' style='min-width:80pt'>5.4.4</a> Unit <a class='abbr_ref' href='qty.unit.html#cmp'>[qty.unit]</a></h3><h4 ><a class='secnum' style='min-width:95pt'>5.4.4.7</a> Comparison <a class='abbr_ref'>[qty.unit.cmp]</a></h4><div class='texpara'><div id='lib:Unit,operator=='><div id='lib:operator==,Unit'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:operator==,Unit'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><a href='qty.unit.concepts.html#concept:Unit' title='5.4.4.4&emsp;Concepts&emsp;[qty.unit.concepts]'><span id='conceptref:Unit'><span class='texttt'>Unit</span></span></a> Lhs, <a href='qty.unit.concepts.html#concept:Unit' title='5.4.4.4&emsp;Concepts&emsp;[qty.unit.concepts]'><span id='conceptref:Unit_'><span class='texttt'>Unit</span></span></a> Rhs<span class='anglebracket'>&gt;</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>;
</code></div></div></div></div><div class='para' id='1'><div class='marginalizedparent'><a class='marginalized' href='#1'>1</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L3089'>#</a></div><div class='texpara'><div id='1.sentence-1' class='sentence'><i >Returns</i>: <span class='texttt'>std<span class='operator'>&#x200b;::&#x200b;</span>is_<span class='shy'></span>same_<span class='shy'></span>v<span class='anglebracket'>&lt;</span>Lhs, Rhs<span class='anglebracket'>&gt;</span></span><a class='hidden_link' href='#1.sentence-1'>.</a></div></div></div></div><div class='texpara'><div id='lib:Unit,equivalent'><div id='lib:equivalent,Unit'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:equivalent,Unit'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><a href='qty.unit.concepts.html#concept:Unit' title='5.4.4.4&emsp;Concepts&emsp;[qty.unit.concepts]'><span id='conceptref:Unit__'><span class='texttt'>Unit</span></span></a> Lhs, <a href='qty.unit.concepts.html#concept:Unit' title='5.4.4.4&emsp;Concepts&emsp;[qty.unit.concepts]'><span id='conceptref:Unit___'><span class='texttt'>Unit</span></span></a> Rhs<span class='anglebracket'>&gt;</span>
</code></div></div></div></div><div class='para' id='1'><div class='marginalizedparent'><a class='marginalized' href='#1'>1</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L3089'>#</a></div><div class='texpara'><div id='1.sentence-1' class='sentence'><i >Returns</i>: <span class='texttt'>std<span class='operator'>&#x200b;::&#x200b;</span>is_<span class='shy'></span>same_<span class='shy'></span>v<span class='anglebracket'>&lt;</span>Lhs, Rhs<span class='anglebracket'>&gt;</span></span><a class='hidden_link' href='#1.sentence-1'>.</a></div></div></div></div><div class='texpara'><div id='lib:Unit,equivalent'><div id='lib:equivalent,Unit'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:equivalent,Unit'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><a href='qty.unit.concepts.html#concept:Unit' title='5.4.4.4&emsp;Concepts&emsp;[qty.unit.concepts]'><span id='conceptref:Unit__'><span class='texttt'>Unit</span></span></a> Lhs, <a href='qty.unit.concepts.html#concept:Unit' title='5.4.4.4&emsp;Concepts&emsp;[qty.unit.concepts]'><span id='conceptref:Unit___'><span class='texttt'>Unit</span></span></a> Rhs<span class='anglebracket'>&gt;</span>
<span class='keyword'>friend</span> <span class='keyword'>consteval</span> <span class='keyword'>bool</span> equivalent<span class='parenthesis'>(</span>Lhs lhs, Rhs rhs<span class='parenthesis'>)</span>;
</code></div></div></div></div><div class='para' id='2'><div class='marginalizedparent'><a class='marginalized' href='#2'>2</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L3101'>#</a></div><div class='texpara'><div id='2.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
</code></div></div></div></div><div class='para' id='2'><div class='marginalizedparent'><a class='marginalized' href='#2'>2</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L3101'>#</a></div><div class='texpara'><div id='2.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
<span class='codeblock'><span class='keyword'>const</span> <span class='keyword'>auto</span> lhs_canonical <span class='operator'>=</span> <i >get-canonical-unit</i><span class='parenthesis'>(</span>lhs<span class='parenthesis'>)</span>;
<span class='keyword'>const</span> <span class='keyword'>auto</span> rhs_canonical <span class='operator'>=</span> <i >get-canonical-unit</i><span class='parenthesis'>(</span>rhs<span class='parenthesis'>)</span>;
<span class='keyword'>return</span> lhs_canonical<span class='operator'>.</span>mag <span class='operator'>=</span><span class='operator'>=</span> rhs_canonical<span class='operator'>.</span>mag <span class='operator'>&amp;</span><span class='operator'>&amp;</span>
lhs_canonical<span class='operator'>.</span>reference_unit <span class='operator'>=</span><span class='operator'>=</span> rhs_canonical<span class='operator'>.</span>reference_unit;
</span></div></div></div></div><div class='texpara'><div id='lib:Unit,convertible'><div id='lib:convertible,Unit'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:convertible,Unit'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><a href='qty.unit.concepts.html#concept:Unit' title='5.4.4.4&emsp;Concepts&emsp;[qty.unit.concepts]'><span id='conceptref:Unit____'><span class='texttt'>Unit</span></span></a> From, <a href='qty.unit.concepts.html#concept:Unit' title='5.4.4.4&emsp;Concepts&emsp;[qty.unit.concepts]'><span id='conceptref:Unit_____'><span class='texttt'>Unit</span></span></a> To<span class='anglebracket'>&gt;</span>
<span class='keyword'>consteval</span> <span class='keyword'>bool</span> convertible<span class='parenthesis'>(</span>From from, To to<span class='parenthesis'>)</span>;
</code></div></div></div></div><div class='para' id='3'><div class='marginalizedparent'><a class='marginalized' href='#3'>3</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L3119'>#</a></div><div class='texpara'><div id='3.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
</code></div></div></div></div><div class='para' id='3'><div class='marginalizedparent'><a class='marginalized' href='#3'>3</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L3119'>#</a></div><div class='texpara'><div id='3.sentence-1' class='sentence'><i >Effects</i>: Equivalent to:
<span class='codeblock'><span class='keyword'>if</span> <span class='keyword'>constexpr</span> <span class='parenthesis'>(</span>std<span class='operator'>::</span>is_same_v<span class='anglebracket'>&lt;</span>From, To<span class='anglebracket'>&gt;</span><span class='parenthesis'>)</span>
<span class='keyword'>return</span> <span class='literal'>true</span>;
<span class='keyword'>else</span> <span class='keyword'>if</span> <span class='keyword'>constexpr</span> <span class='parenthesis'>(</span><a class='index' id='conceptref:PotentiallyConvertibleTo'></a><i >PotentiallyConvertibleTo</i><span class='anglebracket'>&lt;</span>From, To<span class='anglebracket'>&gt;</span><span class='parenthesis'>)</span>

View File

@ -1,2 +1,2 @@
<!DOCTYPE html><html lang='en'><head><title>[qty.unit.general]</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.unit.general'>[qty.ref]</a></h2><h3 ><a class='secnum' style='min-width:80pt'>5.4.4</a> Unit <a class='abbr_ref' href='qty.unit.html#general'>[qty.unit]</a></h3><h4 ><a class='secnum' style='min-width:95pt'>5.4.4.1</a> General <a class='abbr_ref'>[qty.unit.general]</a></h4><div class='para' id='1'><div class='marginalizedparent'><a class='marginalized' href='#1'>1</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L2274'>#</a></div><div class='texpara'><div id='1.sentence-1' class='sentence'>Subclause <a href='qty.unit.html' title='5.4.4&emsp;Unit'>[qty.<span class='shy'></span>unit]</a> specifies the components
<!DOCTYPE html><html lang='en'><head><title>[qty.unit.general]</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.unit.general'>[qty.ref]</a></h2><h3 ><a class='secnum' style='min-width:80pt'>5.4.4</a> Unit <a class='abbr_ref' href='qty.unit.html#general'>[qty.unit]</a></h3><h4 ><a class='secnum' style='min-width:95pt'>5.4.4.1</a> General <a class='abbr_ref'>[qty.unit.general]</a></h4><div class='para' id='1'><div class='marginalizedparent'><a class='marginalized' href='#1'>1</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L2274'>#</a></div><div class='texpara'><div id='1.sentence-1' class='sentence'>Subclause <a href='qty.unit.html' title='5.4.4&emsp;Unit'>[qty.<span class='shy'></span>unit]</a> specifies the components
for defining a unit of measurement (<a href="https://www.electropedia.org/iev/iev.nsf/display?openform&ievref=112-01-14">IEC 60050, 112-01-14</a>)<a class='hidden_link' href='#1.sentence-1'>.</a></div></div></div></div></body></html>

File diff suppressed because one or more lines are too long

View File

@ -1,3 +1,3 @@
<!DOCTYPE html><html lang='en'><head><title>[qty.unit.mag.general]</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.unit.mag.general'>[qty.ref]</a></h2><h3 ><a class='secnum' style='min-width:80pt'>5.4.4</a> Unit <a class='abbr_ref' href='qty.unit.html#mag.general'>[qty.unit]</a></h3><h4 ><a class='secnum' style='min-width:95pt'>5.4.4.2</a> Magnitude <a class='abbr_ref' href='qty.unit.mag.html#general'>[qty.unit.mag]</a></h4><h4 ><a class='secnum' style='min-width:110pt'>5.4.4.2.1</a> General <a class='abbr_ref'>[qty.unit.mag.general]</a></h4><div class='para' id='1'><div class='marginalizedparent'><a class='marginalized' href='#1'>1</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L2282'>#</a></div><div class='texpara'><div id='1.sentence-1' class='sentence'>Subclause <a href='qty.unit.mag.html' title='5.4.4.2&emsp;Magnitude'>[qty.<span class='shy'></span>unit.<span class='shy'></span>mag]</a> specifies the components
<!DOCTYPE html><html lang='en'><head><title>[qty.unit.mag.general]</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.unit.mag.general'>[qty.ref]</a></h2><h3 ><a class='secnum' style='min-width:80pt'>5.4.4</a> Unit <a class='abbr_ref' href='qty.unit.html#mag.general'>[qty.unit]</a></h3><h4 ><a class='secnum' style='min-width:95pt'>5.4.4.2</a> Magnitude <a class='abbr_ref' href='qty.unit.mag.html#general'>[qty.unit.mag]</a></h4><h4 ><a class='secnum' style='min-width:110pt'>5.4.4.2.1</a> General <a class='abbr_ref'>[qty.unit.mag.general]</a></h4><div class='para' id='1'><div class='marginalizedparent'><a class='marginalized' href='#1'>1</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L2282'>#</a></div><div class='texpara'><div id='1.sentence-1' class='sentence'>Subclause <a href='qty.unit.mag.html' title='5.4.4.2&emsp;Magnitude'>[qty.<span class='shy'></span>unit.<span class='shy'></span>mag]</a> specifies the components
used to represent the numerical value (<a href="https://www.electropedia.org/iev/iev.nsf/display?openform&ievref=112-01-29">IEC 60050, 112-01-29</a>) of a unit
with support for powers (<a href="https://www.electropedia.org/iev/iev.nsf/display?openform&ievref=102-02-08">IEC 60050, 102-02-08</a>) of real numbers (<a href="https://www.electropedia.org/iev/iev.nsf/display?openform&ievref=102-02-05">IEC 60050, 102-02-05</a>)<a class='hidden_link' href='#1.sentence-1'>.</a></div></div></div></div></body></html>

View File

@ -1,4 +1,4 @@
<!DOCTYPE html><html lang='en'><head><title>[qty.unit.mag]</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.unit.mag'>[qty.ref]</a></h2><h3 ><a class='secnum' style='min-width:80pt'>5.4.4</a> Unit <a class='abbr_ref' href='qty.unit.html#mag'>[qty.unit]</a></h3><h4 ><a class='secnum' style='min-width:95pt'>5.4.4.2</a> Magnitude <a class='abbr_ref'>[qty.unit.mag]</a></h4><div id='general' class='section'><h4 ><a class='secnum' href='#general' style='min-width:110pt'>5.4.4.2.1</a> General <a class='abbr_ref' href='qty.unit.mag.general.html'>[qty.unit.mag.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-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L2282'>#</a></div><div class='texpara'><div id='general-1.sentence-1' class='sentence'>Subclause [qty.<span class='shy'></span>unit.<span class='shy'></span>mag] specifies the components
<!DOCTYPE html><html lang='en'><head><title>[qty.unit.mag]</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.unit.mag'>[qty.ref]</a></h2><h3 ><a class='secnum' style='min-width:80pt'>5.4.4</a> Unit <a class='abbr_ref' href='qty.unit.html#mag'>[qty.unit]</a></h3><h4 ><a class='secnum' style='min-width:95pt'>5.4.4.2</a> Magnitude <a class='abbr_ref'>[qty.unit.mag]</a></h4><div id='general' class='section'><h4 ><a class='secnum' href='#general' style='min-width:110pt'>5.4.4.2.1</a> General <a class='abbr_ref' href='qty.unit.mag.general.html'>[qty.unit.mag.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-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L2282'>#</a></div><div class='texpara'><div id='general-1.sentence-1' class='sentence'>Subclause [qty.<span class='shy'></span>unit.<span class='shy'></span>mag] specifies the components
used to represent the numerical value (<a href="https://www.electropedia.org/iev/iev.nsf/display?openform&ievref=112-01-29">IEC 60050, 112-01-29</a>) of a unit
with support for powers (<a href="https://www.electropedia.org/iev/iev.nsf/display?openform&ievref=102-02-08">IEC 60050, 102-02-08</a>) of real numbers (<a href="https://www.electropedia.org/iev/iev.nsf/display?openform&ievref=102-02-05">IEC 60050, 102-02-05</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:110pt'>5.4.4.2.2</a> Concepts <a class='abbr_ref' href='qty.unit.mag.concepts.html'>[qty.unit.mag.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'>&lt;</span><span class='keyword'>typename</span> T<span class='anglebracket'>&gt;</span>
<span class='keyword'>concept</span> <a class='hidden_link' href='#concept:MagConstant' title='5.4.4.2.2&emsp;Concepts&emsp;[qty.unit.mag.concepts]'><span id='concept:MagConstant'><span id='lib:MagConstant'><span class='texttt'>MagConstant</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'>&lt;</span>T<span class='anglebracket'>&gt;</span> <span class='operator'>&amp;</span><span class='operator'>&amp;</span> <span class='texttt'><i >is-derived-from-specialization-of</i></span><span class='anglebracket'>&lt;</span>T, mag_constant<span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span><span class='parenthesis'>)</span>;
@ -46,8 +46,8 @@ with support for powers (<a href="https://www.electropedia.org/iev/iev.nsf/displ
<span class='curlybracket'>}</span>;
<span class='curlybracket'>}</span>
</span></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-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L2351'>#</a></div><div class='texpara'><div id='types-1.sentence-1' class='sentence'>A specialization of <span class='texttt'><i >unit-magnitude</i></span>
represents the product of its template arguments<a class='hidden_link' href='#types-1.sentence-1'>.</a></div></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-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L2355'>#</a></div><div class='texpara'><div id='types-2.sentence-1' class='sentence'>For the purposes of specifying the implementation-defined limits,
</span></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-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L2351'>#</a></div><div class='texpara'><div id='types-1.sentence-1' class='sentence'>A specialization of <span class='texttt'><i >unit-magnitude</i></span>
represents the product of its template arguments<a class='hidden_link' href='#types-1.sentence-1'>.</a></div></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-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L2355'>#</a></div><div class='texpara'><div id='types-2.sentence-1' class='sentence'>For the purposes of specifying the implementation-defined limits,
let the representation of the terms of <span class='texttt'><i >unit-magnitude</i></span> be the structure
<span class='codeblock'><span class='keyword'>struct</span> <span class='curlybracket'>{</span>
<i >ratio</i> exp;
@ -59,25 +59,25 @@ where <span class='texttt'><i >base-type</i></span> is a model of <a href='#conc
the behavior is
<a class='index' id=':behavior_of_unit-magnitude_operations_that_do_not_fit_in_a_std::intmax_t'></a>implementation-defined<a class='hidden_link' href='#types-2.4.sentence-1'>.</a></div></div></li></ul></div></div></div><div id='ops' class='section'><h4 ><a class='secnum' href='#ops' style='min-width:110pt'>5.4.4.2.4</a> Operations <a class='abbr_ref' href='qty.unit.mag.ops.html'>[qty.unit.mag.ops]</a></h4><div class='texpara'><div id='lib:UnitMagnitude,operator*'><div id='lib:operator*,UnitMagnitude'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:operator*,UnitMagnitude'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><a href='#concept:UnitMagnitude' title='5.4.4.2.2&emsp;Concepts&emsp;[qty.unit.mag.concepts]'><span id='conceptref:UnitMagnitude____'><span class='texttt'>UnitMagnitude</span></span></a> M<span class='anglebracket'>&gt;</span>
<span class='keyword'>friend</span> <span class='keyword'>consteval</span> <a href='#concept:UnitMagnitude' title='5.4.4.2.2&emsp;Concepts&emsp;[qty.unit.mag.concepts]'><span id='conceptref:UnitMagnitude_____'><span class='texttt'>UnitMagnitude</span></span></a> <span class='keyword'>auto</span> <span class='keyword'>operator</span><span class='operator'>*</span><span class='parenthesis'>(</span><span class='texttt'><i >unit-magnitude</i></span> lhs, M rhs<span class='parenthesis'>)</span>;
</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-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L2394'>#</a></div><div class='texpara'><div id='ops-1.sentence-1' class='sentence'><i >Returns</i>: <ul class='itemize'><li id='ops-1.1'><div class='marginalizedparent' style='left:-39mm'><a class='marginalized' href='#ops-1.1'>(1.1)</a></div><div class='texpara'><div id='ops-1.1.sentence-1' class='sentence'>If <span class='texttt'><span class='keyword'>sizeof</span><span class='operator'>.</span><span class='operator'>.</span><span class='operator'>.</span><span class='parenthesis'>(</span>Ms<span class='parenthesis'>)</span> <span class='operator'>=</span><span class='operator'>=</span> <span class='literal'>0</span></span> is <span class='texttt'><span class='literal'>true</span></span>, returns <span class='texttt'>rhs</span><a class='hidden_link' href='#ops-1.1.sentence-1'>.</a></div></div></li><li id='ops-1.2'><div class='marginalizedparent' style='left:-39mm'><a class='marginalized' href='#ops-1.2'>(1.2)</a></div><div class='texpara'><div id='ops-1.2.sentence-1' class='sentence'>Otherwise, if <span class='texttt'>std<span class='operator'>&#x200b;::&#x200b;</span>is_<span class='shy'></span>same_<span class='shy'></span>v<span class='anglebracket'>&lt;</span>M, <span class='texttt'><i >unit-magnitude</i></span><span class='anglebracket'>&lt;</span><span class='anglebracket'>&gt;</span><span class='anglebracket'>&gt;</span></span>, returns <span class='texttt'>lhs</span><a class='hidden_link' href='#ops-1.2.sentence-1'>.</a></div></div></li><li id='ops-1.3'><div class='marginalizedparent' style='left:-39mm'><a class='marginalized' href='#ops-1.3'>(1.3)</a></div><div class='texpara'><div id='ops-1.3.sentence-1' class='sentence'>Otherwise, returns an unspecified value equal to <span class='math'><span class='texttt'>lhs</span> &times;<span class='texttt'>rhs</span></span><a class='hidden_link' href='#ops-1.3.sentence-1'>.</a></div></div></li></ul></div></div></div></div><div class='texpara'><div id='lib:UnitMagnitude,operator/'><div id='lib:operator/,UnitMagnitude'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:operator/,UnitMagnitude'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>friend</span> <span class='keyword'>consteval</span> <span class='keyword'>auto</span> <span class='keyword'>operator</span><span class='operator'>/</span><span class='parenthesis'>(</span><span class='texttt'><i >unit-magnitude</i></span> lhs, <a href='#concept:UnitMagnitude' title='5.4.4.2.2&emsp;Concepts&emsp;[qty.unit.mag.concepts]'><span id='conceptref:UnitMagnitude______'><span class='texttt'>UnitMagnitude</span></span></a> <span class='keyword'>auto</span> rhs<span class='parenthesis'>)</span>;
</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-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L2412'>#</a></div><div class='texpara'><div id='ops-2.sentence-1' class='sentence'><i >Returns</i>: <span class='texttt'>lhs <span class='operator'>*</span> <span class='texttt'><i >pow</i></span><span class='anglebracket'>&lt;</span><span class='operator'>-</span><span class='literal'>1</span><span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span>rhs<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:UnitMagnitude,operator=='><div id='lib:operator==,UnitMagnitude'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:operator==,UnitMagnitude'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><a href='#concept:UnitMagnitude' title='5.4.4.2.2&emsp;Concepts&emsp;[qty.unit.mag.concepts]'><span id='conceptref:UnitMagnitude_______'><span class='texttt'>UnitMagnitude</span></span></a> Rhs<span class='anglebracket'>&gt;</span>
</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-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L2394'>#</a></div><div class='texpara'><div id='ops-1.sentence-1' class='sentence'><i >Returns</i>: <ul class='itemize'><li id='ops-1.1'><div class='marginalizedparent' style='left:-39mm'><a class='marginalized' href='#ops-1.1'>(1.1)</a></div><div class='texpara'><div id='ops-1.1.sentence-1' class='sentence'>If <span class='texttt'><span class='keyword'>sizeof</span><span class='operator'>.</span><span class='operator'>.</span><span class='operator'>.</span><span class='parenthesis'>(</span>Ms<span class='parenthesis'>)</span> <span class='operator'>=</span><span class='operator'>=</span> <span class='literal'>0</span></span> is <span class='texttt'><span class='literal'>true</span></span>, returns <span class='texttt'>rhs</span><a class='hidden_link' href='#ops-1.1.sentence-1'>.</a></div></div></li><li id='ops-1.2'><div class='marginalizedparent' style='left:-39mm'><a class='marginalized' href='#ops-1.2'>(1.2)</a></div><div class='texpara'><div id='ops-1.2.sentence-1' class='sentence'>Otherwise, if <span class='texttt'>std<span class='operator'>&#x200b;::&#x200b;</span>is_<span class='shy'></span>same_<span class='shy'></span>v<span class='anglebracket'>&lt;</span>M, <span class='texttt'><i >unit-magnitude</i></span><span class='anglebracket'>&lt;</span><span class='anglebracket'>&gt;</span><span class='anglebracket'>&gt;</span></span>, returns <span class='texttt'>lhs</span><a class='hidden_link' href='#ops-1.2.sentence-1'>.</a></div></div></li><li id='ops-1.3'><div class='marginalizedparent' style='left:-39mm'><a class='marginalized' href='#ops-1.3'>(1.3)</a></div><div class='texpara'><div id='ops-1.3.sentence-1' class='sentence'>Otherwise, returns an unspecified value equal to <span class='math'><span class='texttt'>lhs</span> &times;<span class='texttt'>rhs</span></span><a class='hidden_link' href='#ops-1.3.sentence-1'>.</a></div></div></li></ul></div></div></div></div><div class='texpara'><div id='lib:UnitMagnitude,operator/'><div id='lib:operator/,UnitMagnitude'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:operator/,UnitMagnitude'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>friend</span> <span class='keyword'>consteval</span> <span class='keyword'>auto</span> <span class='keyword'>operator</span><span class='operator'>/</span><span class='parenthesis'>(</span><span class='texttt'><i >unit-magnitude</i></span> lhs, <a href='#concept:UnitMagnitude' title='5.4.4.2.2&emsp;Concepts&emsp;[qty.unit.mag.concepts]'><span id='conceptref:UnitMagnitude______'><span class='texttt'>UnitMagnitude</span></span></a> <span class='keyword'>auto</span> rhs<span class='parenthesis'>)</span>;
</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-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L2412'>#</a></div><div class='texpara'><div id='ops-2.sentence-1' class='sentence'><i >Returns</i>: <span class='texttt'>lhs <span class='operator'>*</span> <span class='texttt'><i >pow</i></span><span class='anglebracket'>&lt;</span><span class='operator'>-</span><span class='literal'>1</span><span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span>rhs<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:UnitMagnitude,operator=='><div id='lib:operator==,UnitMagnitude'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:operator==,UnitMagnitude'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><a href='#concept:UnitMagnitude' title='5.4.4.2.2&emsp;Concepts&emsp;[qty.unit.mag.concepts]'><span id='conceptref:UnitMagnitude_______'><span class='texttt'>UnitMagnitude</span></span></a> Rhs<span class='anglebracket'>&gt;</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><span class='texttt'><i >unit-magnitude</i></span>, Rhs<span class='parenthesis'>)</span>;
</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-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L2424'>#</a></div><div class='texpara'><div id='ops-3.sentence-1' class='sentence'><i >Returns</i>: <span class='texttt'>std<span class='operator'>&#x200b;::&#x200b;</span>is_<span class='shy'></span>same_<span class='shy'></span>v<span class='anglebracket'>&lt;</span><span class='texttt'><i >unit-magnitude</i></span>, Rhs<span class='anglebracket'>&gt;</span></span><a class='hidden_link' href='#ops-3.sentence-1'>.</a></div></div></div></div><div class='texpara'><div id='lib:pow,UnitMagnitude'><div id='lib:UnitMagnitude,pow'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:UnitMagnitude,pow'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><span class='keyword'>int</span> Num, <span class='keyword'>int</span> Den <span class='operator'>=</span> <span class='literal'>1</span><span class='anglebracket'>&gt;</span>
</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-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L2424'>#</a></div><div class='texpara'><div id='ops-3.sentence-1' class='sentence'><i >Returns</i>: <span class='texttt'>std<span class='operator'>&#x200b;::&#x200b;</span>is_<span class='shy'></span>same_<span class='shy'></span>v<span class='anglebracket'>&lt;</span><span class='texttt'><i >unit-magnitude</i></span>, Rhs<span class='anglebracket'>&gt;</span></span><a class='hidden_link' href='#ops-3.sentence-1'>.</a></div></div></div></div><div class='texpara'><div id='lib:pow,UnitMagnitude'><div id='lib:UnitMagnitude,pow'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:UnitMagnitude,pow'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><span class='keyword'>int</span> Num, <span class='keyword'>int</span> Den <span class='operator'>=</span> <span class='literal'>1</span><span class='anglebracket'>&gt;</span>
<span class='keyword'>friend</span> <span class='keyword'>consteval</span> <span class='keyword'>auto</span> <span class='texttt'><i >pow</i></span><span class='parenthesis'>(</span><span class='texttt'><i >unit-magnitude</i></span> base<span class='parenthesis'>)</span>; <span class='comment'>// <i >exposition only</i></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-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L2436'>#</a></div><div class='texpara'><div id='ops-4.sentence-1' class='sentence'><i >Returns</i>: <ul class='itemize'><li id='ops-4.1'><div class='marginalizedparent' style='left:-39mm'><a class='marginalized' href='#ops-4.1'>(4.1)</a></div><div class='texpara'><div id='ops-4.1.sentence-1' class='sentence'>If <span class='texttt'>Num <span class='operator'>=</span><span class='operator'>=</span> <span class='literal'>0</span></span> is <span class='texttt'><span class='literal'>true</span></span>, returns <span class='texttt'><span class='texttt'><i >unit-magnitude</i></span><span class='anglebracket'>&lt;</span><span class='anglebracket'>&gt;</span><span class='curlybracket'>{</span><span class='curlybracket'>}</span></span><a class='hidden_link' href='#ops-4.1.sentence-1'>.</a></div></div></li><li id='ops-4.2'><div class='marginalizedparent' style='left:-39mm'><a class='marginalized' href='#ops-4.2'>(4.2)</a></div><div class='texpara'><div id='ops-4.2.sentence-1' class='sentence'>Otherwise, returns an unspecified value equal to <span class="mjx-chtml"><span class="mjx-math"><span class="mjx-mrow" aria-hidden="true"><span class="mjx-msubsup"><span class="mjx-base"><span class="mjx-texatom"><span class="mjx-mrow"><span class="mjx-mtext"><span class="mjx-char MJXc-TeX-type-R" style="padding-top: 0.372em; padding-bottom: 0.298em;">base</span></span></span></span></span><span class="mjx-sup" style="font-size: 70.7%; vertical-align: 0.513em; padding-left: 0px; padding-right: 0.071em;"><span class="mjx-texatom"><span class="mjx-mrow"><span class="mjx-texatom"><span class="mjx-mrow"><span class="mjx-mtext"><span class="mjx-char MJXc-TeX-type-R" style="padding-top: 0.372em; padding-bottom: 0.298em;">Num</span></span></span></span><span class="mjx-texatom"><span class="mjx-mrow"><span class="mjx-mo"><span class="mjx-char MJXc-TeX-main-R" style="padding-top: 0.446em; padding-bottom: 0.593em;">/</span></span></span></span><span class="mjx-texatom"><span class="mjx-mrow"><span class="mjx-mtext"><span class="mjx-char MJXc-TeX-type-R" style="padding-top: 0.372em; padding-bottom: 0.298em;">Den</span></span></span></span></span></span></span></span></span></span></span><a class='hidden_link' href='#ops-4.2.sentence-1'>.</a></div></div></li></ul></div></div></div></div><div class='texpara'><div id='lib:mag'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:mag'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><a class='index' id='conceptref:MagArg_'></a><span class='texttt'><i >MagArg</i></span> <span class='keyword'>auto</span> V<span class='anglebracket'>&gt;</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-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L2436'>#</a></div><div class='texpara'><div id='ops-4.sentence-1' class='sentence'><i >Returns</i>: <ul class='itemize'><li id='ops-4.1'><div class='marginalizedparent' style='left:-39mm'><a class='marginalized' href='#ops-4.1'>(4.1)</a></div><div class='texpara'><div id='ops-4.1.sentence-1' class='sentence'>If <span class='texttt'>Num <span class='operator'>=</span><span class='operator'>=</span> <span class='literal'>0</span></span> is <span class='texttt'><span class='literal'>true</span></span>, returns <span class='texttt'><span class='texttt'><i >unit-magnitude</i></span><span class='anglebracket'>&lt;</span><span class='anglebracket'>&gt;</span><span class='curlybracket'>{</span><span class='curlybracket'>}</span></span><a class='hidden_link' href='#ops-4.1.sentence-1'>.</a></div></div></li><li id='ops-4.2'><div class='marginalizedparent' style='left:-39mm'><a class='marginalized' href='#ops-4.2'>(4.2)</a></div><div class='texpara'><div id='ops-4.2.sentence-1' class='sentence'>Otherwise, returns an unspecified value equal to <span class="mjx-chtml"><span class="mjx-math"><span class="mjx-mrow" aria-hidden="true"><span class="mjx-msubsup"><span class="mjx-base"><span class="mjx-texatom"><span class="mjx-mrow"><span class="mjx-mtext"><span class="mjx-char MJXc-TeX-type-R" style="padding-top: 0.372em; padding-bottom: 0.298em;">base</span></span></span></span></span><span class="mjx-sup" style="font-size: 70.7%; vertical-align: 0.513em; padding-left: 0px; padding-right: 0.071em;"><span class="mjx-texatom"><span class="mjx-mrow"><span class="mjx-texatom"><span class="mjx-mrow"><span class="mjx-mtext"><span class="mjx-char MJXc-TeX-type-R" style="padding-top: 0.372em; padding-bottom: 0.298em;">Num</span></span></span></span><span class="mjx-texatom"><span class="mjx-mrow"><span class="mjx-mo"><span class="mjx-char MJXc-TeX-main-R" style="padding-top: 0.446em; padding-bottom: 0.593em;">/</span></span></span></span><span class="mjx-texatom"><span class="mjx-mrow"><span class="mjx-mtext"><span class="mjx-char MJXc-TeX-type-R" style="padding-top: 0.372em; padding-bottom: 0.298em;">Den</span></span></span></span></span></span></span></span></span></span></span><a class='hidden_link' href='#ops-4.2.sentence-1'>.</a></div></div></li></ul></div></div></div></div><div class='texpara'><div id='lib:mag'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:mag'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><a class='index' id='conceptref:MagArg_'></a><span class='texttt'><i >MagArg</i></span> <span class='keyword'>auto</span> V<span class='anglebracket'>&gt;</span>
<span class='keyword'>constexpr</span> <a href='#concept:UnitMagnitude' title='5.4.4.2.2&emsp;Concepts&emsp;[qty.unit.mag.concepts]'><span id='conceptref:UnitMagnitude________'><span class='texttt'>UnitMagnitude</span></span></a> <span class='keyword'>auto</span> mag <span class='operator'>=</span> <i ><span class='texttt'>see below</span></i>;
</code></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-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L2453'>#</a></div><div class='texpara'><div id='ops-5.sentence-1' class='sentence'><i >Constraints</i>: <span class='texttt'>V</span> is greater than <span class='math'>0</span><a class='hidden_link' href='#ops-5.sentence-1'>.</a></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-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L2457'>#</a></div><div class='texpara'><div id='ops-6.sentence-1' class='sentence'><i >Effects</i>: If <span class='texttt'><a href='#concept:MagConstant' title='5.4.4.2.2&emsp;Concepts&emsp;[qty.unit.mag.concepts]'><span id='conceptref:MagConstant_'><span class='texttt'>MagConstant</span></span></a><span class='anglebracket'>&lt;</span><span class='keyword'>decltype</span><span class='parenthesis'>(</span>V<span class='parenthesis'>)</span><span class='anglebracket'>&gt;</span></span> is satisfied,
</code></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-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L2453'>#</a></div><div class='texpara'><div id='ops-5.sentence-1' class='sentence'><i >Constraints</i>: <span class='texttt'>V</span> is greater than <span class='math'>0</span><a class='hidden_link' href='#ops-5.sentence-1'>.</a></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-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L2457'>#</a></div><div class='texpara'><div id='ops-6.sentence-1' class='sentence'><i >Effects</i>: If <span class='texttt'><a href='#concept:MagConstant' title='5.4.4.2.2&emsp;Concepts&emsp;[qty.unit.mag.concepts]'><span id='conceptref:MagConstant_'><span class='texttt'>MagConstant</span></span></a><span class='anglebracket'>&lt;</span><span class='keyword'>decltype</span><span class='parenthesis'>(</span>V<span class='parenthesis'>)</span><span class='anglebracket'>&gt;</span></span> is satisfied,
initializes <span class='texttt'>mag</span> with <span class='texttt'><span class='texttt'><i >unit-magnitude</i></span><span class='anglebracket'>&lt;</span>V<span class='anglebracket'>&gt;</span><span class='curlybracket'>{</span><span class='curlybracket'>}</span></span><a class='hidden_link' href='#ops-6.sentence-1'>.</a></div> <div id='ops-6.sentence-2' class='sentence'>Otherwise, initializes <span class='texttt'>mag</span> with
an unspecified value equal to <span class='texttt'>V</span><a class='hidden_link' href='#ops-6.sentence-2'>.</a></div></div></div></div><div class='texpara'><div id='lib:mag_ratio'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:mag_ratio'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span>std<span class='operator'>::</span>intmax_t N, std<span class='operator'>::</span>intmax_t D<span class='anglebracket'>&gt;</span>
<span class='keyword'>requires</span><span class='parenthesis'>(</span>N <span class='anglebracket'>&gt;</span> <span class='literal'>0</span><span class='parenthesis'>)</span>
<span class='keyword'>constexpr</span> <a href='#concept:UnitMagnitude' title='5.4.4.2.2&emsp;Concepts&emsp;[qty.unit.mag.concepts]'><span id='conceptref:UnitMagnitude_________'><span class='texttt'>UnitMagnitude</span></span></a> <span class='keyword'>auto</span> mag_ratio <span class='operator'>=</span> <i ><span class='texttt'>see below</span></i>;
</code></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-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L2473'>#</a></div><div class='texpara'><div id='ops-7.sentence-1' class='sentence'><i >Effects</i>: Initializes <span class='texttt'>mag_<span class='shy'></span>ratio</span> with
</code></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-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L2473'>#</a></div><div class='texpara'><div id='ops-7.sentence-1' class='sentence'><i >Effects</i>: Initializes <span class='texttt'>mag_<span class='shy'></span>ratio</span> with
an unspecified value equal to <span class="mjx-chtml"><span class="mjx-math"><span class="mjx-mrow" aria-hidden="true"><span class="mjx-texatom"><span class="mjx-mrow"><span class="mjx-mtext"><span class="mjx-char MJXc-TeX-type-R" style="padding-top: 0.372em; padding-bottom: 0.298em;">N</span></span></span></span><span class="mjx-texatom"><span class="mjx-mrow"><span class="mjx-mo"><span class="mjx-char MJXc-TeX-main-R" style="padding-top: 0.446em; padding-bottom: 0.593em;">/</span></span></span></span><span class="mjx-texatom"><span class="mjx-mrow"><span class="mjx-mtext"><span class="mjx-char MJXc-TeX-type-R" style="padding-top: 0.372em; padding-bottom: 0.225em;">D</span></span></span></span></span></span></span><a class='hidden_link' href='#ops-7.sentence-1'>.</a></div></div></div></div><div class='texpara'><div id='lib:mag_power'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:mag_power'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><a class='index' id='conceptref:MagArg__'></a><span class='texttt'><i >MagArg</i></span> <span class='keyword'>auto</span> Base, <span class='keyword'>int</span> Num, <span class='keyword'>int</span> Den <span class='operator'>=</span> <span class='literal'>1</span><span class='anglebracket'>&gt;</span>
<span class='keyword'>constexpr</span> <a href='#concept:UnitMagnitude' title='5.4.4.2.2&emsp;Concepts&emsp;[qty.unit.mag.concepts]'><span id='conceptref:UnitMagnitude__________'><span class='texttt'>UnitMagnitude</span></span></a> <span class='keyword'>auto</span> mag_power <span class='operator'>=</span> <span class='texttt'><i >pow</i></span><span class='anglebracket'>&lt;</span>Num, Den<span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span>mag<span class='anglebracket'>&lt;</span>Base<span class='anglebracket'>&gt;</span><span class='parenthesis'>)</span>;
</code></div></div></div><div class='para' id='ops-8'><div class='marginalizedparent'><a class='marginalized' href='#ops-8'>8</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L2486'>#</a></div><div class='texpara'><div id='ops-8.sentence-1' class='sentence'><i >Constraints</i>: <span class='texttt'>Base</span> is greater than <span class='math'>0</span><a class='hidden_link' href='#ops-8.sentence-1'>.</a></div></div></div></div></div><div id='utils' class='section'><h4 ><a class='secnum' href='#utils' style='min-width:110pt'>5.4.4.2.5</a> Utilities <a class='abbr_ref' href='qty.unit.mag.utils.html'>[qty.unit.mag.utils]</a></h4><div class='texpara'><div id='lib:is-positive-integral-power,UnitMagnitude'><div id='lib:UnitMagnitude,is-positive-integral-power'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:UnitMagnitude,is-positive-integral-power'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>friend</span> <span class='keyword'>consteval</span> <span class='keyword'>bool</span> <span class='texttt'><i >is-positive-integral-power</i></span><span class='parenthesis'>(</span><span class='texttt'><i >unit-magnitude</i></span> x<span class='parenthesis'>)</span>; <span class='comment'>// <i >exposition only</i></span>
</code></div></div></div></div><div class='para' id='utils-1'><div class='marginalizedparent'><a class='marginalized' href='#utils-1'>1</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L2499'>#</a></div><div class='texpara'><div id='utils-1.sentence-1' class='sentence'><i >Returns</i>: <span class='texttt'><span class='literal'>false</span></span> if <span class='texttt'>x</span> has a negative or rational exponent, and
</code></div></div></div><div class='para' id='ops-8'><div class='marginalizedparent'><a class='marginalized' href='#ops-8'>8</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L2486'>#</a></div><div class='texpara'><div id='ops-8.sentence-1' class='sentence'><i >Constraints</i>: <span class='texttt'>Base</span> is greater than <span class='math'>0</span><a class='hidden_link' href='#ops-8.sentence-1'>.</a></div></div></div></div></div><div id='utils' class='section'><h4 ><a class='secnum' href='#utils' style='min-width:110pt'>5.4.4.2.5</a> Utilities <a class='abbr_ref' href='qty.unit.mag.utils.html'>[qty.unit.mag.utils]</a></h4><div class='texpara'><div id='lib:is-positive-integral-power,UnitMagnitude'><div id='lib:UnitMagnitude,is-positive-integral-power'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:UnitMagnitude,is-positive-integral-power'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>friend</span> <span class='keyword'>consteval</span> <span class='keyword'>bool</span> <span class='texttt'><i >is-positive-integral-power</i></span><span class='parenthesis'>(</span><span class='texttt'><i >unit-magnitude</i></span> x<span class='parenthesis'>)</span>; <span class='comment'>// <i >exposition only</i></span>
</code></div></div></div></div><div class='para' id='utils-1'><div class='marginalizedparent'><a class='marginalized' href='#utils-1'>1</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L2499'>#</a></div><div class='texpara'><div id='utils-1.sentence-1' class='sentence'><i >Returns</i>: <span class='texttt'><span class='literal'>false</span></span> if <span class='texttt'>x</span> has a negative or rational exponent, and
<span class='texttt'><span class='literal'>true</span></span> otherwise<a class='hidden_link' href='#utils-1.sentence-1'>.</a></div></div></div></div><div class='texpara'><div id='lib:common-magnitude,UnitMagnitude'><div id='lib:UnitMagnitude,common-magnitude'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:UnitMagnitude,common-magnitude'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><span class='keyword'>auto</span><span class='operator'>.</span><span class='operator'>.</span><span class='operator'>.</span> Ms2<span class='anglebracket'>&gt;</span>
<span class='keyword'>friend</span> <span class='keyword'>consteval</span> <span class='keyword'>auto</span> <span class='texttt'><i >common-magnitude</i></span><span class='parenthesis'>(</span><span class='texttt'><i >unit-magnitude</i></span>, <span class='texttt'><i >unit-magnitude</i></span><span class='anglebracket'>&lt;</span>Ms2<span class='operator'>.</span><span class='operator'>.</span><span class='operator'>.</span><span class='anglebracket'>&gt;</span><span class='parenthesis'>)</span>; <span class='comment'>// <i >exposition only</i></span>
</code></div></div></div></div><div class='para' id='utils-2'><div class='marginalizedparent'><a class='marginalized' href='#utils-2'>2</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L2512'>#</a></div><div class='texpara'><div id='utils-2.sentence-1' class='sentence'><i >Returns</i>: The largest magnitude <span class='texttt'>C</span>
</code></div></div></div></div><div class='para' id='utils-2'><div class='marginalizedparent'><a class='marginalized' href='#utils-2'>2</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L2512'>#</a></div><div class='texpara'><div id='utils-2.sentence-1' class='sentence'><i >Returns</i>: The largest magnitude <span class='texttt'>C</span>
such that each input magnitude is expressible
by only positive powers relative to <span class='texttt'>C</span><a class='hidden_link' href='#utils-2.sentence-1'>.</a></div></div></div></div></div></div></body></html>

View File

@ -1,18 +1,18 @@
<!DOCTYPE html><html lang='en'><head><title>[qty.unit.mag.ops]</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.unit.mag.ops'>[qty.ref]</a></h2><h3 ><a class='secnum' style='min-width:80pt'>5.4.4</a> Unit <a class='abbr_ref' href='qty.unit.html#mag.ops'>[qty.unit]</a></h3><h4 ><a class='secnum' style='min-width:95pt'>5.4.4.2</a> Magnitude <a class='abbr_ref' href='qty.unit.mag.html#ops'>[qty.unit.mag]</a></h4><h4 ><a class='secnum' style='min-width:110pt'>5.4.4.2.4</a> Operations <a class='abbr_ref'>[qty.unit.mag.ops]</a></h4><div class='texpara'><div id='lib:UnitMagnitude,operator*'><div id='lib:operator*,UnitMagnitude'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:operator*,UnitMagnitude'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><a href='qty.unit.mag.concepts.html#concept:UnitMagnitude' title='5.4.4.2.2&emsp;Concepts&emsp;[qty.unit.mag.concepts]'><span id='conceptref:UnitMagnitude'><span class='texttt'>UnitMagnitude</span></span></a> M<span class='anglebracket'>&gt;</span>
<span class='keyword'>friend</span> <span class='keyword'>consteval</span> <a href='qty.unit.mag.concepts.html#concept:UnitMagnitude' title='5.4.4.2.2&emsp;Concepts&emsp;[qty.unit.mag.concepts]'><span id='conceptref:UnitMagnitude_'><span class='texttt'>UnitMagnitude</span></span></a> <span class='keyword'>auto</span> <span class='keyword'>operator</span><span class='operator'>*</span><span class='parenthesis'>(</span><span class='texttt'><i >unit-magnitude</i></span> lhs, M rhs<span class='parenthesis'>)</span>;
</code></div></div></div></div><div class='para' id='1'><div class='marginalizedparent'><a class='marginalized' href='#1'>1</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L2394'>#</a></div><div class='texpara'><div id='1.sentence-1' class='sentence'><i >Returns</i>: <ul class='itemize'><li id='1.1'><div class='marginalizedparent' style='left:-39mm'><a class='marginalized' href='#1.1'>(1.1)</a></div><div class='texpara'><div id='1.1.sentence-1' class='sentence'>If <span class='texttt'><span class='keyword'>sizeof</span><span class='operator'>.</span><span class='operator'>.</span><span class='operator'>.</span><span class='parenthesis'>(</span>Ms<span class='parenthesis'>)</span> <span class='operator'>=</span><span class='operator'>=</span> <span class='literal'>0</span></span> is <span class='texttt'><span class='literal'>true</span></span>, returns <span class='texttt'>rhs</span><a class='hidden_link' href='#1.1.sentence-1'>.</a></div></div></li><li id='1.2'><div class='marginalizedparent' style='left:-39mm'><a class='marginalized' href='#1.2'>(1.2)</a></div><div class='texpara'><div id='1.2.sentence-1' class='sentence'>Otherwise, if <span class='texttt'>std<span class='operator'>&#x200b;::&#x200b;</span>is_<span class='shy'></span>same_<span class='shy'></span>v<span class='anglebracket'>&lt;</span>M, <span class='texttt'><i >unit-magnitude</i></span><span class='anglebracket'>&lt;</span><span class='anglebracket'>&gt;</span><span class='anglebracket'>&gt;</span></span>, returns <span class='texttt'>lhs</span><a class='hidden_link' href='#1.2.sentence-1'>.</a></div></div></li><li id='1.3'><div class='marginalizedparent' style='left:-39mm'><a class='marginalized' href='#1.3'>(1.3)</a></div><div class='texpara'><div id='1.3.sentence-1' class='sentence'>Otherwise, returns an unspecified value equal to <span class='math'><span class='texttt'>lhs</span> &times;<span class='texttt'>rhs</span></span><a class='hidden_link' href='#1.3.sentence-1'>.</a></div></div></li></ul></div></div></div></div><div class='texpara'><div id='lib:UnitMagnitude,operator/'><div id='lib:operator/,UnitMagnitude'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:operator/,UnitMagnitude'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>friend</span> <span class='keyword'>consteval</span> <span class='keyword'>auto</span> <span class='keyword'>operator</span><span class='operator'>/</span><span class='parenthesis'>(</span><span class='texttt'><i >unit-magnitude</i></span> lhs, <a href='qty.unit.mag.concepts.html#concept:UnitMagnitude' title='5.4.4.2.2&emsp;Concepts&emsp;[qty.unit.mag.concepts]'><span id='conceptref:UnitMagnitude__'><span class='texttt'>UnitMagnitude</span></span></a> <span class='keyword'>auto</span> rhs<span class='parenthesis'>)</span>;
</code></div></div></div></div><div class='para' id='2'><div class='marginalizedparent'><a class='marginalized' href='#2'>2</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L2412'>#</a></div><div class='texpara'><div id='2.sentence-1' class='sentence'><i >Returns</i>: <span class='texttt'>lhs <span class='operator'>*</span> <span class='texttt'><i >pow</i></span><span class='anglebracket'>&lt;</span><span class='operator'>-</span><span class='literal'>1</span><span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span>rhs<span class='parenthesis'>)</span></span><a class='hidden_link' href='#2.sentence-1'>.</a></div></div></div></div><div class='texpara'><div id='lib:UnitMagnitude,operator=='><div id='lib:operator==,UnitMagnitude'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:operator==,UnitMagnitude'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><a href='qty.unit.mag.concepts.html#concept:UnitMagnitude' title='5.4.4.2.2&emsp;Concepts&emsp;[qty.unit.mag.concepts]'><span id='conceptref:UnitMagnitude___'><span class='texttt'>UnitMagnitude</span></span></a> Rhs<span class='anglebracket'>&gt;</span>
</code></div></div></div></div><div class='para' id='1'><div class='marginalizedparent'><a class='marginalized' href='#1'>1</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L2394'>#</a></div><div class='texpara'><div id='1.sentence-1' class='sentence'><i >Returns</i>: <ul class='itemize'><li id='1.1'><div class='marginalizedparent' style='left:-39mm'><a class='marginalized' href='#1.1'>(1.1)</a></div><div class='texpara'><div id='1.1.sentence-1' class='sentence'>If <span class='texttt'><span class='keyword'>sizeof</span><span class='operator'>.</span><span class='operator'>.</span><span class='operator'>.</span><span class='parenthesis'>(</span>Ms<span class='parenthesis'>)</span> <span class='operator'>=</span><span class='operator'>=</span> <span class='literal'>0</span></span> is <span class='texttt'><span class='literal'>true</span></span>, returns <span class='texttt'>rhs</span><a class='hidden_link' href='#1.1.sentence-1'>.</a></div></div></li><li id='1.2'><div class='marginalizedparent' style='left:-39mm'><a class='marginalized' href='#1.2'>(1.2)</a></div><div class='texpara'><div id='1.2.sentence-1' class='sentence'>Otherwise, if <span class='texttt'>std<span class='operator'>&#x200b;::&#x200b;</span>is_<span class='shy'></span>same_<span class='shy'></span>v<span class='anglebracket'>&lt;</span>M, <span class='texttt'><i >unit-magnitude</i></span><span class='anglebracket'>&lt;</span><span class='anglebracket'>&gt;</span><span class='anglebracket'>&gt;</span></span>, returns <span class='texttt'>lhs</span><a class='hidden_link' href='#1.2.sentence-1'>.</a></div></div></li><li id='1.3'><div class='marginalizedparent' style='left:-39mm'><a class='marginalized' href='#1.3'>(1.3)</a></div><div class='texpara'><div id='1.3.sentence-1' class='sentence'>Otherwise, returns an unspecified value equal to <span class='math'><span class='texttt'>lhs</span> &times;<span class='texttt'>rhs</span></span><a class='hidden_link' href='#1.3.sentence-1'>.</a></div></div></li></ul></div></div></div></div><div class='texpara'><div id='lib:UnitMagnitude,operator/'><div id='lib:operator/,UnitMagnitude'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:operator/,UnitMagnitude'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>friend</span> <span class='keyword'>consteval</span> <span class='keyword'>auto</span> <span class='keyword'>operator</span><span class='operator'>/</span><span class='parenthesis'>(</span><span class='texttt'><i >unit-magnitude</i></span> lhs, <a href='qty.unit.mag.concepts.html#concept:UnitMagnitude' title='5.4.4.2.2&emsp;Concepts&emsp;[qty.unit.mag.concepts]'><span id='conceptref:UnitMagnitude__'><span class='texttt'>UnitMagnitude</span></span></a> <span class='keyword'>auto</span> rhs<span class='parenthesis'>)</span>;
</code></div></div></div></div><div class='para' id='2'><div class='marginalizedparent'><a class='marginalized' href='#2'>2</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L2412'>#</a></div><div class='texpara'><div id='2.sentence-1' class='sentence'><i >Returns</i>: <span class='texttt'>lhs <span class='operator'>*</span> <span class='texttt'><i >pow</i></span><span class='anglebracket'>&lt;</span><span class='operator'>-</span><span class='literal'>1</span><span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span>rhs<span class='parenthesis'>)</span></span><a class='hidden_link' href='#2.sentence-1'>.</a></div></div></div></div><div class='texpara'><div id='lib:UnitMagnitude,operator=='><div id='lib:operator==,UnitMagnitude'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:operator==,UnitMagnitude'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><a href='qty.unit.mag.concepts.html#concept:UnitMagnitude' title='5.4.4.2.2&emsp;Concepts&emsp;[qty.unit.mag.concepts]'><span id='conceptref:UnitMagnitude___'><span class='texttt'>UnitMagnitude</span></span></a> Rhs<span class='anglebracket'>&gt;</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><span class='texttt'><i >unit-magnitude</i></span>, Rhs<span class='parenthesis'>)</span>;
</code></div></div></div></div><div class='para' id='3'><div class='marginalizedparent'><a class='marginalized' href='#3'>3</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L2424'>#</a></div><div class='texpara'><div id='3.sentence-1' class='sentence'><i >Returns</i>: <span class='texttt'>std<span class='operator'>&#x200b;::&#x200b;</span>is_<span class='shy'></span>same_<span class='shy'></span>v<span class='anglebracket'>&lt;</span><span class='texttt'><i >unit-magnitude</i></span>, Rhs<span class='anglebracket'>&gt;</span></span><a class='hidden_link' href='#3.sentence-1'>.</a></div></div></div></div><div class='texpara'><div id='lib:pow,UnitMagnitude'><div id='lib:UnitMagnitude,pow'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:UnitMagnitude,pow'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><span class='keyword'>int</span> Num, <span class='keyword'>int</span> Den <span class='operator'>=</span> <span class='literal'>1</span><span class='anglebracket'>&gt;</span>
</code></div></div></div></div><div class='para' id='3'><div class='marginalizedparent'><a class='marginalized' href='#3'>3</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L2424'>#</a></div><div class='texpara'><div id='3.sentence-1' class='sentence'><i >Returns</i>: <span class='texttt'>std<span class='operator'>&#x200b;::&#x200b;</span>is_<span class='shy'></span>same_<span class='shy'></span>v<span class='anglebracket'>&lt;</span><span class='texttt'><i >unit-magnitude</i></span>, Rhs<span class='anglebracket'>&gt;</span></span><a class='hidden_link' href='#3.sentence-1'>.</a></div></div></div></div><div class='texpara'><div id='lib:pow,UnitMagnitude'><div id='lib:UnitMagnitude,pow'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:UnitMagnitude,pow'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><span class='keyword'>int</span> Num, <span class='keyword'>int</span> Den <span class='operator'>=</span> <span class='literal'>1</span><span class='anglebracket'>&gt;</span>
<span class='keyword'>friend</span> <span class='keyword'>consteval</span> <span class='keyword'>auto</span> <span class='texttt'><i >pow</i></span><span class='parenthesis'>(</span><span class='texttt'><i >unit-magnitude</i></span> base<span class='parenthesis'>)</span>; <span class='comment'>// <i >exposition only</i></span>
</code></div></div></div></div><div class='para' id='4'><div class='marginalizedparent'><a class='marginalized' href='#4'>4</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L2436'>#</a></div><div class='texpara'><div id='4.sentence-1' class='sentence'><i >Returns</i>: <ul class='itemize'><li id='4.1'><div class='marginalizedparent' style='left:-39mm'><a class='marginalized' href='#4.1'>(4.1)</a></div><div class='texpara'><div id='4.1.sentence-1' class='sentence'>If <span class='texttt'>Num <span class='operator'>=</span><span class='operator'>=</span> <span class='literal'>0</span></span> is <span class='texttt'><span class='literal'>true</span></span>, returns <span class='texttt'><span class='texttt'><i >unit-magnitude</i></span><span class='anglebracket'>&lt;</span><span class='anglebracket'>&gt;</span><span class='curlybracket'>{</span><span class='curlybracket'>}</span></span><a class='hidden_link' href='#4.1.sentence-1'>.</a></div></div></li><li id='4.2'><div class='marginalizedparent' style='left:-39mm'><a class='marginalized' href='#4.2'>(4.2)</a></div><div class='texpara'><div id='4.2.sentence-1' class='sentence'>Otherwise, returns an unspecified value equal to <span class="mjx-chtml"><span class="mjx-math"><span class="mjx-mrow" aria-hidden="true"><span class="mjx-msubsup"><span class="mjx-base"><span class="mjx-texatom"><span class="mjx-mrow"><span class="mjx-mtext"><span class="mjx-char MJXc-TeX-type-R" style="padding-top: 0.372em; padding-bottom: 0.298em;">base</span></span></span></span></span><span class="mjx-sup" style="font-size: 70.7%; vertical-align: 0.513em; padding-left: 0px; padding-right: 0.071em;"><span class="mjx-texatom"><span class="mjx-mrow"><span class="mjx-texatom"><span class="mjx-mrow"><span class="mjx-mtext"><span class="mjx-char MJXc-TeX-type-R" style="padding-top: 0.372em; padding-bottom: 0.298em;">Num</span></span></span></span><span class="mjx-texatom"><span class="mjx-mrow"><span class="mjx-mo"><span class="mjx-char MJXc-TeX-main-R" style="padding-top: 0.446em; padding-bottom: 0.593em;">/</span></span></span></span><span class="mjx-texatom"><span class="mjx-mrow"><span class="mjx-mtext"><span class="mjx-char MJXc-TeX-type-R" style="padding-top: 0.372em; padding-bottom: 0.298em;">Den</span></span></span></span></span></span></span></span></span></span></span><a class='hidden_link' href='#4.2.sentence-1'>.</a></div></div></li></ul></div></div></div></div><div class='texpara'><div id='lib:mag'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:mag'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><a class='index' id='conceptref:MagArg'></a><span class='texttt'><i >MagArg</i></span> <span class='keyword'>auto</span> V<span class='anglebracket'>&gt;</span>
</code></div></div></div></div><div class='para' id='4'><div class='marginalizedparent'><a class='marginalized' href='#4'>4</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L2436'>#</a></div><div class='texpara'><div id='4.sentence-1' class='sentence'><i >Returns</i>: <ul class='itemize'><li id='4.1'><div class='marginalizedparent' style='left:-39mm'><a class='marginalized' href='#4.1'>(4.1)</a></div><div class='texpara'><div id='4.1.sentence-1' class='sentence'>If <span class='texttt'>Num <span class='operator'>=</span><span class='operator'>=</span> <span class='literal'>0</span></span> is <span class='texttt'><span class='literal'>true</span></span>, returns <span class='texttt'><span class='texttt'><i >unit-magnitude</i></span><span class='anglebracket'>&lt;</span><span class='anglebracket'>&gt;</span><span class='curlybracket'>{</span><span class='curlybracket'>}</span></span><a class='hidden_link' href='#4.1.sentence-1'>.</a></div></div></li><li id='4.2'><div class='marginalizedparent' style='left:-39mm'><a class='marginalized' href='#4.2'>(4.2)</a></div><div class='texpara'><div id='4.2.sentence-1' class='sentence'>Otherwise, returns an unspecified value equal to <span class="mjx-chtml"><span class="mjx-math"><span class="mjx-mrow" aria-hidden="true"><span class="mjx-msubsup"><span class="mjx-base"><span class="mjx-texatom"><span class="mjx-mrow"><span class="mjx-mtext"><span class="mjx-char MJXc-TeX-type-R" style="padding-top: 0.372em; padding-bottom: 0.298em;">base</span></span></span></span></span><span class="mjx-sup" style="font-size: 70.7%; vertical-align: 0.513em; padding-left: 0px; padding-right: 0.071em;"><span class="mjx-texatom"><span class="mjx-mrow"><span class="mjx-texatom"><span class="mjx-mrow"><span class="mjx-mtext"><span class="mjx-char MJXc-TeX-type-R" style="padding-top: 0.372em; padding-bottom: 0.298em;">Num</span></span></span></span><span class="mjx-texatom"><span class="mjx-mrow"><span class="mjx-mo"><span class="mjx-char MJXc-TeX-main-R" style="padding-top: 0.446em; padding-bottom: 0.593em;">/</span></span></span></span><span class="mjx-texatom"><span class="mjx-mrow"><span class="mjx-mtext"><span class="mjx-char MJXc-TeX-type-R" style="padding-top: 0.372em; padding-bottom: 0.298em;">Den</span></span></span></span></span></span></span></span></span></span></span><a class='hidden_link' href='#4.2.sentence-1'>.</a></div></div></li></ul></div></div></div></div><div class='texpara'><div id='lib:mag'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:mag'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><a class='index' id='conceptref:MagArg'></a><span class='texttt'><i >MagArg</i></span> <span class='keyword'>auto</span> V<span class='anglebracket'>&gt;</span>
<span class='keyword'>constexpr</span> <a href='qty.unit.mag.concepts.html#concept:UnitMagnitude' title='5.4.4.2.2&emsp;Concepts&emsp;[qty.unit.mag.concepts]'><span id='conceptref:UnitMagnitude____'><span class='texttt'>UnitMagnitude</span></span></a> <span class='keyword'>auto</span> mag <span class='operator'>=</span> <i ><span class='texttt'>see below</span></i>;
</code></div></div></div><div class='para' id='5'><div class='marginalizedparent'><a class='marginalized' href='#5'>5</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L2453'>#</a></div><div class='texpara'><div id='5.sentence-1' class='sentence'><i >Constraints</i>: <span class='texttt'>V</span> is greater than <span class='math'>0</span><a class='hidden_link' href='#5.sentence-1'>.</a></div></div></div></div><div class='para' id='6'><div class='marginalizedparent'><a class='marginalized' href='#6'>6</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L2457'>#</a></div><div class='texpara'><div id='6.sentence-1' class='sentence'><i >Effects</i>: If <span class='texttt'><a href='qty.unit.mag.concepts.html#concept:MagConstant' title='5.4.4.2.2&emsp;Concepts&emsp;[qty.unit.mag.concepts]'><span id='conceptref:MagConstant'><span class='texttt'>MagConstant</span></span></a><span class='anglebracket'>&lt;</span><span class='keyword'>decltype</span><span class='parenthesis'>(</span>V<span class='parenthesis'>)</span><span class='anglebracket'>&gt;</span></span> is satisfied,
</code></div></div></div><div class='para' id='5'><div class='marginalizedparent'><a class='marginalized' href='#5'>5</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L2453'>#</a></div><div class='texpara'><div id='5.sentence-1' class='sentence'><i >Constraints</i>: <span class='texttt'>V</span> is greater than <span class='math'>0</span><a class='hidden_link' href='#5.sentence-1'>.</a></div></div></div></div><div class='para' id='6'><div class='marginalizedparent'><a class='marginalized' href='#6'>6</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L2457'>#</a></div><div class='texpara'><div id='6.sentence-1' class='sentence'><i >Effects</i>: If <span class='texttt'><a href='qty.unit.mag.concepts.html#concept:MagConstant' title='5.4.4.2.2&emsp;Concepts&emsp;[qty.unit.mag.concepts]'><span id='conceptref:MagConstant'><span class='texttt'>MagConstant</span></span></a><span class='anglebracket'>&lt;</span><span class='keyword'>decltype</span><span class='parenthesis'>(</span>V<span class='parenthesis'>)</span><span class='anglebracket'>&gt;</span></span> is satisfied,
initializes <span class='texttt'>mag</span> with <span class='texttt'><span class='texttt'><i >unit-magnitude</i></span><span class='anglebracket'>&lt;</span>V<span class='anglebracket'>&gt;</span><span class='curlybracket'>{</span><span class='curlybracket'>}</span></span><a class='hidden_link' href='#6.sentence-1'>.</a></div> <div id='6.sentence-2' class='sentence'>Otherwise, initializes <span class='texttt'>mag</span> with
an unspecified value equal to <span class='texttt'>V</span><a class='hidden_link' href='#6.sentence-2'>.</a></div></div></div></div><div class='texpara'><div id='lib:mag_ratio'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:mag_ratio'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span>std<span class='operator'>::</span>intmax_t N, std<span class='operator'>::</span>intmax_t D<span class='anglebracket'>&gt;</span>
<span class='keyword'>requires</span><span class='parenthesis'>(</span>N <span class='anglebracket'>&gt;</span> <span class='literal'>0</span><span class='parenthesis'>)</span>
<span class='keyword'>constexpr</span> <a href='qty.unit.mag.concepts.html#concept:UnitMagnitude' title='5.4.4.2.2&emsp;Concepts&emsp;[qty.unit.mag.concepts]'><span id='conceptref:UnitMagnitude_____'><span class='texttt'>UnitMagnitude</span></span></a> <span class='keyword'>auto</span> mag_ratio <span class='operator'>=</span> <i ><span class='texttt'>see below</span></i>;
</code></div></div></div><div class='para' id='7'><div class='marginalizedparent'><a class='marginalized' href='#7'>7</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L2473'>#</a></div><div class='texpara'><div id='7.sentence-1' class='sentence'><i >Effects</i>: Initializes <span class='texttt'>mag_<span class='shy'></span>ratio</span> with
</code></div></div></div><div class='para' id='7'><div class='marginalizedparent'><a class='marginalized' href='#7'>7</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L2473'>#</a></div><div class='texpara'><div id='7.sentence-1' class='sentence'><i >Effects</i>: Initializes <span class='texttt'>mag_<span class='shy'></span>ratio</span> with
an unspecified value equal to <span class="mjx-chtml"><span class="mjx-math"><span class="mjx-mrow" aria-hidden="true"><span class="mjx-texatom"><span class="mjx-mrow"><span class="mjx-mtext"><span class="mjx-char MJXc-TeX-type-R" style="padding-top: 0.372em; padding-bottom: 0.298em;">N</span></span></span></span><span class="mjx-texatom"><span class="mjx-mrow"><span class="mjx-mo"><span class="mjx-char MJXc-TeX-main-R" style="padding-top: 0.446em; padding-bottom: 0.593em;">/</span></span></span></span><span class="mjx-texatom"><span class="mjx-mrow"><span class="mjx-mtext"><span class="mjx-char MJXc-TeX-type-R" style="padding-top: 0.372em; padding-bottom: 0.225em;">D</span></span></span></span></span></span></span><a class='hidden_link' href='#7.sentence-1'>.</a></div></div></div></div><div class='texpara'><div id='lib:mag_power'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:mag_power'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span><span class='anglebracket'>&lt;</span><a class='index' id='conceptref:MagArg_'></a><span class='texttt'><i >MagArg</i></span> <span class='keyword'>auto</span> Base, <span class='keyword'>int</span> Num, <span class='keyword'>int</span> Den <span class='operator'>=</span> <span class='literal'>1</span><span class='anglebracket'>&gt;</span>
<span class='keyword'>constexpr</span> <a href='qty.unit.mag.concepts.html#concept:UnitMagnitude' title='5.4.4.2.2&emsp;Concepts&emsp;[qty.unit.mag.concepts]'><span id='conceptref:UnitMagnitude______'><span class='texttt'>UnitMagnitude</span></span></a> <span class='keyword'>auto</span> mag_power <span class='operator'>=</span> <span class='texttt'><i >pow</i></span><span class='anglebracket'>&lt;</span>Num, Den<span class='anglebracket'>&gt;</span><span class='parenthesis'>(</span>mag<span class='anglebracket'>&lt;</span>Base<span class='anglebracket'>&gt;</span><span class='parenthesis'>)</span>;
</code></div></div></div><div class='para' id='8'><div class='marginalizedparent'><a class='marginalized' href='#8'>8</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-units47a82f466ceb0260363bccd02316efdb5db830ff/source/quantities.tex#L2486'>#</a></div><div class='texpara'><div id='8.sentence-1' class='sentence'><i >Constraints</i>: <span class='texttt'>Base</span> is greater than <span class='math'>0</span><a class='hidden_link' href='#8.sentence-1'>.</a></div></div></div></div></div></body></html>
</code></div></div></div><div class='para' id='8'><div class='marginalizedparent'><a class='marginalized' href='#8'>8</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L2486'>#</a></div><div class='texpara'><div id='8.sentence-1' class='sentence'><i >Constraints</i>: <span class='texttt'>Base</span> is greater than <span class='math'>0</span><a class='hidden_link' href='#8.sentence-1'>.</a></div></div></div></div></div></body></html>

Some files were not shown because too many files have changed in this diff Show More