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

29 lines
12 KiB
HTML

<!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-units329ffdaacb1bd7bed08565ac80d9eef7ccb1e5b5/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-units329ffdaacb1bd7bed08565ac80d9eef7ccb1e5b5/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-units329ffdaacb1bd7bed08565ac80d9eef7ccb1e5b5/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-units329ffdaacb1bd7bed08565ac80d9eef7ccb1e5b5/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>
</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, <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'>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> Value<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, <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-units329ffdaacb1bd7bed08565ac80d9eef7ccb1e5b5/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-units329ffdaacb1bd7bed08565ac80d9eef7ccb1e5b5/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-units329ffdaacb1bd7bed08565ac80d9eef7ccb1e5b5/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>