Files
mp-units/HEAD/api_reference/gen/qty.pt.conv.html
T

38 lines
12 KiB
HTML

<!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-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>
<span class='keyword'>return</span> <span class='operator'>::</span>mp_units<span class='operator'>::</span>quantity_point<span class='curlybracket'>{</span><span class='operator'>*</span><span class='keyword'>this</span> <span class='operator'>-</span> new_origin, new_origin<span class='curlybracket'>}</span>;
</span></div></div></div></div><div class='texpara'><div id='lib:quantity_point,force_in'><div id='lib:force_in,quantity_point'><div id='lib:quantity_point,in'><div id='lib:in,quantity_point'><div class='itemdecl'><div class='marginalizedparent'><a class='itemDeclLink' href='#lib:in,quantity_point'>🔗</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> <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> in<span class='parenthesis'>(</span>ToU<span class='parenthesis'>)</span> <span class='keyword'>const</span>;
<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> <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> in<span class='parenthesis'>(</span><span class='parenthesis'>)</span> <span class='keyword'>const</span>;
<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> <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> in<span class='parenthesis'>(</span>ToU<span class='parenthesis'>)</span> <span class='keyword'>const</span>;
<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> <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>;
<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> <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><span class='parenthesis'>)</span> <span class='keyword'>const</span>;
<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> <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-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-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>