forked from mpusz/mp-units
334 lines
98 KiB
HTML
334 lines
98 KiB
HTML
<!DOCTYPE html><html lang='en'><head><title>[qty.syn]</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#syn'>[qty]</a></h2><h3 ><a class='secnum' style='min-width:80pt'>5.6.3</a> Class template <span class='texttt'>quantity</span> <a class='abbr_ref'>[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'><</span><span class='keyword'>typename</span> T<span class='anglebracket'>></span>
|
|
<span class='keyword'>concept</span> <a class='hidden_link' href='#concept:Quantity' title='5.6.3 Class template quantity [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'><</span>T, quantity<span class='anglebracket'>></span><span class='parenthesis'>(</span><span class='parenthesis'>)</span><span class='parenthesis'>)</span>; <span class='comment'>// <i >exposition only</i></span>
|
|
|
|
<span class='keyword'>template</span><span class='anglebracket'><</span><span class='keyword'>typename</span> Q, <span class='keyword'>auto</span> QS<span class='anglebracket'>></span>
|
|
<span class='keyword'>concept</span> <a class='hidden_link' href='#concept:QuantityOf' title='5.6.3 Class template quantity [qty.syn]'><span id='concept:QuantityOf'><span id='lib:QuantityOf'><span class='tcode_in_codeblock'>QuantityOf</span></span></span></a> <span class='operator'>=</span> <span class='comment'>// <i >exposition only</i></span>
|
|
<a href='#concept:Quantity' title='5.6.3 Class template quantity [qty.syn]'><span id='conceptref:Quantity'><span class='tcode_in_codeblock'>Quantity</span></span></a><span class='anglebracket'><</span>Q<span class='anglebracket'>></span> <span class='operator'>&</span><span class='operator'>&</span> <a href='qty.spec.concepts.html#concept:QuantitySpecOf' title='5.4.3.2 Concepts [qty.spec.concepts]'><span id='conceptref:QuantitySpecOf'><span class='tcode_in_codeblock'>QuantitySpecOf</span></span></a><span class='anglebracket'><</span><span class='keyword'>decltype</span><span class='parenthesis'>(</span><span class='keyword'>auto</span><span class='parenthesis'>(</span>Q<span class='operator'>::</span>quantity_spec<span class='parenthesis'>)</span><span class='parenthesis'>)</span>, QS<span class='anglebracket'>></span>;
|
|
|
|
<span class='keyword'>template</span><span class='anglebracket'><</span><a href='qty.unit.concepts.html#concept:Unit' title='5.4.4.4 Concepts [qty.unit.concepts]'><span id='conceptref:Unit'><span class='tcode_in_codeblock'>Unit</span></span></a> UFrom, <a href='qty.unit.concepts.html#concept:Unit' title='5.4.4.4 Concepts [qty.unit.concepts]'><span id='conceptref:Unit_'><span class='tcode_in_codeblock'>Unit</span></span></a> UTo<span class='anglebracket'>></span>
|
|
<span class='keyword'>consteval</span> <span class='keyword'>bool</span> <i >integral-conversion-factor</i><span class='parenthesis'>(</span>UFrom from, UTo to<span class='parenthesis'>)</span> <span class='comment'>// <i >exposition only</i></span>
|
|
<span class='curlybracket'>{</span>
|
|
<span class='keyword'>return</span> <i >is-integral</i><span class='parenthesis'>(</span><i >get-canonical-unit</i><span class='parenthesis'>(</span>from<span class='parenthesis'>)</span><span class='operator'>.</span>mag <span class='operator'>/</span> <i >get-canonical-unit</i><span class='parenthesis'>(</span>to<span class='parenthesis'>)</span><span class='operator'>.</span>mag<span class='parenthesis'>)</span>;
|
|
<span class='curlybracket'>}</span>
|
|
|
|
<span class='keyword'>template</span><span class='anglebracket'><</span><span class='keyword'>typename</span> T<span class='anglebracket'>></span>
|
|
<span class='keyword'>concept</span> <i >IsFloatingPoint</i><a class='index' id='concept:IsFloatingPoint'></a> <span class='operator'>=</span> treat_as_floating_point<span class='anglebracket'><</span>T<span class='anglebracket'>></span>; <span class='comment'>// <i >exposition only</i></span>
|
|
|
|
<span class='keyword'>template</span><span class='anglebracket'><</span><span class='keyword'>typename</span> FromRep, <span class='keyword'>typename</span> ToRep, <span class='keyword'>auto</span> FromUnit <span class='operator'>=</span> one, <span class='keyword'>auto</span> ToUnit <span class='operator'>=</span> one<span class='anglebracket'>></span>
|
|
<span class='keyword'>concept</span> <i >ValuePreservingTo</i><a class='index' id='concept:ValuePreservingTo'></a> <span class='operator'>=</span> <span class='comment'>// <i >exposition only</i></span>
|
|
<a href='qty.rep.concepts.html#concept:Representation' title='5.5.4 Concepts [qty.rep.concepts]'><span id='conceptref:Representation'><span class='tcode_in_codeblock'>Representation</span></span></a><span class='anglebracket'><</span>std<span class='operator'>::</span>remove_cvref_t<span class='anglebracket'><</span>FromRep<span class='anglebracket'>></span><span class='anglebracket'>></span> <span class='operator'>&</span><span class='operator'>&</span> <a href='qty.rep.concepts.html#concept:Representation' title='5.5.4 Concepts [qty.rep.concepts]'><span id='conceptref:Representation_'><span class='tcode_in_codeblock'>Representation</span></span></a><span class='anglebracket'><</span>ToRep<span class='anglebracket'>></span> <span class='operator'>&</span><span class='operator'>&</span>
|
|
<a href='qty.unit.concepts.html#concept:Unit' title='5.4.4.4 Concepts [qty.unit.concepts]'><span id='conceptref:Unit__'><span class='tcode_in_codeblock'>Unit</span></span></a><span class='anglebracket'><</span><span class='keyword'>decltype</span><span class='parenthesis'>(</span>FromUnit<span class='parenthesis'>)</span><span class='anglebracket'>></span> <span class='operator'>&</span><span class='operator'>&</span> <a href='qty.unit.concepts.html#concept:Unit' title='5.4.4.4 Concepts [qty.unit.concepts]'><span id='conceptref:Unit___'><span class='tcode_in_codeblock'>Unit</span></span></a><span class='anglebracket'><</span><span class='keyword'>decltype</span><span class='parenthesis'>(</span>ToUnit<span class='parenthesis'>)</span><span class='anglebracket'>></span> <span class='operator'>&</span><span class='operator'>&</span> std<span class='operator'>::</span>assignable_from<span class='anglebracket'><</span>ToRep<span class='operator'>&</span>, FromRep<span class='anglebracket'>></span> <span class='operator'>&</span><span class='operator'>&</span>
|
|
<span class='parenthesis'>(</span><i >IsFloatingPoint</i><span class='anglebracket'><</span>ToRep<span class='anglebracket'>></span> <span class='operator'>|</span><span class='operator'>|</span> <span class='parenthesis'>(</span><span class='operator'>!</span><a class='index' id='conceptref:IsFloatingPoint'></a><i >IsFloatingPoint</i><span class='anglebracket'><</span>std<span class='operator'>::</span>remove_cvref_t<span class='anglebracket'><</span>FromRep<span class='anglebracket'>></span><span class='anglebracket'>></span> <span class='operator'>&</span><span class='operator'>&</span>
|
|
<span class='parenthesis'>(</span><i >integral-conversion-factor</i><span class='parenthesis'>(</span>FromUnit, ToUnit<span class='parenthesis'>)</span><span class='parenthesis'>)</span><span class='parenthesis'>)</span><span class='parenthesis'>)</span>;
|
|
|
|
<span class='keyword'>template</span><span class='anglebracket'><</span><span class='keyword'>typename</span> QFrom, <span class='keyword'>typename</span> QTo<span class='anglebracket'>></span>
|
|
<span class='keyword'>concept</span> <i >QuantityConvertibleTo</i><a class='index' id='concept:QuantityConvertibleTo'></a> <span class='operator'>=</span> <span class='comment'>// <i >exposition only</i></span>
|
|
<a href='#concept:Quantity' title='5.6.3 Class template quantity [qty.syn]'><span id='conceptref:Quantity_'><span class='tcode_in_codeblock'>Quantity</span></span></a><span class='anglebracket'><</span>QFrom<span class='anglebracket'>></span> <span class='operator'>&</span><span class='operator'>&</span> <a href='#concept:Quantity' title='5.6.3 Class template quantity [qty.syn]'><span id='conceptref:Quantity__'><span class='tcode_in_codeblock'>Quantity</span></span></a><span class='anglebracket'><</span>QTo<span class='anglebracket'>></span> <span class='operator'>&</span><span class='operator'>&</span>
|
|
<a class='index' id='conceptref:QuantitySpecConvertibleTo'></a><i >QuantitySpecConvertibleTo</i><span class='anglebracket'><</span>QFrom<span class='operator'>::</span>quantity_spec, QTo<span class='operator'>::</span>quantity_spec<span class='anglebracket'>></span> <span class='operator'>&</span><span class='operator'>&</span>
|
|
<a class='index' id='conceptref:UnitConvertibleTo'></a><i >UnitConvertibleTo</i><span class='anglebracket'><</span>QFrom<span class='operator'>::</span>unit, QTo<span class='operator'>::</span>unit<span class='anglebracket'>></span> <span class='operator'>&</span><span class='operator'>&</span>
|
|
<i >ValuePreservingTo</i><span class='anglebracket'><</span><span class='keyword'>typename</span> QFrom<span class='operator'>::</span>rep, <span class='keyword'>typename</span> QTo<span class='operator'>::</span>rep, QFrom<span class='operator'>::</span>unit, QTo<span class='operator'>::</span>unit<span class='anglebracket'>></span> <span class='operator'>&</span><span class='operator'>&</span>
|
|
<span class='keyword'>requires</span><span class='parenthesis'>(</span>QFrom q<span class='parenthesis'>)</span> <span class='curlybracket'>{</span> <i >sudo-cast</i><span class='anglebracket'><</span>QTo<span class='anglebracket'>></span><span class='parenthesis'>(</span>q<span class='parenthesis'>)</span>; <span class='curlybracket'>}</span>; <span class='comment'>// see <a href='qty.non.mem.conv.html' title='5.6.15 Non-member conversions'>[qty.<span class='shy'></span>non.<span class='shy'></span>mem.<span class='shy'></span>conv]</a></span>
|
|
|
|
<span class='keyword'>template</span><span class='anglebracket'><</span><span class='keyword'>auto</span> QS, <span class='keyword'>typename</span> Func, <span class='keyword'>typename</span> T, <span class='keyword'>typename</span> U<span class='anglebracket'>></span>
|
|
<span class='keyword'>concept</span> <i >InvokeResultOf</i><a class='index' id='concept:InvokeResultOf'></a> <span class='operator'>=</span> <span class='comment'>// <i >exposition only</i></span>
|
|
<a href='qty.spec.concepts.html#concept:QuantitySpec' title='5.4.3.2 Concepts [qty.spec.concepts]'><span id='conceptref:QuantitySpec'><span class='tcode_in_codeblock'>QuantitySpec</span></span></a><span class='anglebracket'><</span><span class='keyword'>decltype</span><span class='parenthesis'>(</span>QS<span class='parenthesis'>)</span><span class='anglebracket'>></span> <span class='operator'>&</span><span class='operator'>&</span> std<span class='operator'>::</span>regular_invocable<span class='anglebracket'><</span>Func, T, U<span class='anglebracket'>></span> <span class='operator'>&</span><span class='operator'>&</span>
|
|
<a href='qty.rep.concepts.html#concept:RepresentationOf' title='5.5.4 Concepts [qty.rep.concepts]'><span id='conceptref:RepresentationOf'><span class='tcode_in_codeblock'>RepresentationOf</span></span></a><span class='anglebracket'><</span>std<span class='operator'>::</span>invoke_result_t<span class='anglebracket'><</span>Func, T, U<span class='anglebracket'>></span>, QS<span class='anglebracket'>></span>;
|
|
|
|
<span class='keyword'>template</span><span class='anglebracket'><</span><span class='keyword'>typename</span> Func, <span class='keyword'>typename</span> Q1, <span class='keyword'>typename</span> Q2,
|
|
<span class='keyword'>auto</span> QS <span class='operator'>=</span> std<span class='operator'>::</span>invoke_result_t<span class='anglebracket'><</span>Func, <span class='keyword'>decltype</span><span class='parenthesis'>(</span><span class='keyword'>auto</span><span class='parenthesis'>(</span>Q1<span class='operator'>::</span>quantity_spec<span class='parenthesis'>)</span><span class='parenthesis'>)</span>,
|
|
<span class='keyword'>decltype</span><span class='parenthesis'>(</span><span class='keyword'>auto</span><span class='parenthesis'>(</span>Q2<span class='operator'>::</span>quantity_spec<span class='parenthesis'>)</span><span class='parenthesis'>)</span><span class='anglebracket'>></span><span class='curlybracket'>{</span><span class='curlybracket'>}</span><span class='anglebracket'>></span>
|
|
<span class='keyword'>concept</span> <i >InvocableQuantities</i><a class='index' id='concept:InvocableQuantities'></a> <span class='operator'>=</span> <span class='comment'>// <i >exposition only</i></span>
|
|
<a href='qty.spec.concepts.html#concept:QuantitySpec' title='5.4.3.2 Concepts [qty.spec.concepts]'><span id='conceptref:QuantitySpec_'><span class='tcode_in_codeblock'>QuantitySpec</span></span></a><span class='anglebracket'><</span><span class='keyword'>decltype</span><span class='parenthesis'>(</span>QS<span class='parenthesis'>)</span><span class='anglebracket'>></span> <span class='operator'>&</span><span class='operator'>&</span> <a href='#concept:Quantity' title='5.6.3 Class template quantity [qty.syn]'><span id='conceptref:Quantity___'><span class='tcode_in_codeblock'>Quantity</span></span></a><span class='anglebracket'><</span>Q1<span class='anglebracket'>></span> <span class='operator'>&</span><span class='operator'>&</span> <a href='#concept:Quantity' title='5.6.3 Class template quantity [qty.syn]'><span id='conceptref:Quantity____'><span class='tcode_in_codeblock'>Quantity</span></span></a><span class='anglebracket'><</span>Q2<span class='anglebracket'>></span> <span class='operator'>&</span><span class='operator'>&</span>
|
|
<a class='index' id='conceptref:InvokeResultOf'></a><i >InvokeResultOf</i><span class='anglebracket'><</span>QS, Func, <span class='keyword'>typename</span> Q1<span class='operator'>::</span>rep, <span class='keyword'>typename</span> Q2<span class='operator'>::</span>rep<span class='anglebracket'>></span>;
|
|
|
|
<span class='keyword'>template</span><span class='anglebracket'><</span><span class='keyword'>auto</span> R1, <span class='keyword'>auto</span> R2<span class='anglebracket'>></span>
|
|
<span class='keyword'>concept</span> <i >HaveCommonReference</i><a class='index' id='concept:HaveCommonReference'></a> <span class='operator'>=</span> <span class='keyword'>requires</span> <span class='curlybracket'>{</span> get_common_reference<span class='parenthesis'>(</span>R1, R2<span class='parenthesis'>)</span>; <span class='curlybracket'>}</span>; <span class='comment'>// <i >exposition only</i></span>
|
|
|
|
<span class='keyword'>template</span><span class='anglebracket'><</span><span class='keyword'>typename</span> Func, Quantity Q1, Quantity Q2<span class='anglebracket'>></span>
|
|
<span class='keyword'>using</span> <i >common-quantity-for</i> <span class='operator'>=</span> <span class='comment'>// <i >exposition only</i></span>
|
|
quantity<span class='anglebracket'><</span>get_common_reference<span class='parenthesis'>(</span>Q1<span class='operator'>::</span>reference, Q2<span class='operator'>::</span>reference<span class='parenthesis'>)</span>,
|
|
std<span class='operator'>::</span>invoke_result_t<span class='anglebracket'><</span>Func, <span class='keyword'>typename</span> Q1<span class='operator'>::</span>rep, <span class='keyword'>typename</span> Q2<span class='operator'>::</span>rep<span class='anglebracket'>></span><span class='anglebracket'>></span>;
|
|
|
|
<span class='keyword'>template</span><span class='anglebracket'><</span><span class='keyword'>typename</span> Func, <span class='keyword'>typename</span> Q1, <span class='keyword'>typename</span> Q2<span class='anglebracket'>></span>
|
|
<span class='keyword'>concept</span> <i >CommonlyInvocableQuantities</i><a class='index' id='concept:CommonlyInvocableQuantities'></a> <span class='operator'>=</span> <span class='comment'>// <i >exposition only</i></span>
|
|
<a href='#concept:Quantity' title='5.6.3 Class template quantity [qty.syn]'><span id='conceptref:Quantity_____'><span class='tcode_in_codeblock'>Quantity</span></span></a><span class='anglebracket'><</span>Q1<span class='anglebracket'>></span> <span class='operator'>&</span><span class='operator'>&</span> <a href='#concept:Quantity' title='5.6.3 Class template quantity [qty.syn]'><span id='conceptref:Quantity______'><span class='tcode_in_codeblock'>Quantity</span></span></a><span class='anglebracket'><</span>Q2<span class='anglebracket'>></span> <span class='operator'>&</span><span class='operator'>&</span> <a class='index' id='conceptref:HaveCommonReference'></a><i >HaveCommonReference</i><span class='anglebracket'><</span>Q1<span class='operator'>::</span>reference, Q2<span class='operator'>::</span>reference<span class='anglebracket'>></span> <span class='operator'>&</span><span class='operator'>&</span>
|
|
std<span class='operator'>::</span>convertible_to<span class='anglebracket'><</span>Q1, <i >common-quantity-for</i><span class='anglebracket'><</span>Func, Q1, Q2<span class='anglebracket'>></span><span class='anglebracket'>></span> <span class='operator'>&</span><span class='operator'>&</span>
|
|
std<span class='operator'>::</span>convertible_to<span class='anglebracket'><</span>Q2, <i >common-quantity-for</i><span class='anglebracket'><</span>Func, Q1, Q2<span class='anglebracket'>></span><span class='anglebracket'>></span> <span class='operator'>&</span><span class='operator'>&</span>
|
|
<a class='index' id='conceptref:InvocableQuantities'></a><i >InvocableQuantities</i><span class='anglebracket'><</span>Func, Q1, Q2,
|
|
get_common_quantity_spec<span class='parenthesis'>(</span>Q1<span class='operator'>::</span>quantity_spec, Q2<span class='operator'>::</span>quantity_spec<span class='parenthesis'>)</span><span class='anglebracket'>></span>;
|
|
|
|
<span class='keyword'>template</span><span class='anglebracket'><</span><span class='keyword'>auto</span> R1, <span class='keyword'>auto</span> R2, <span class='keyword'>typename</span> Rep1, <span class='keyword'>typename</span> Rep2<span class='anglebracket'>></span>
|
|
<span class='keyword'>concept</span> <i >SameValueAs</i><a class='index' id='concept:SameValueAs'></a> <span class='operator'>=</span> <span class='comment'>// <i >exposition only</i></span>
|
|
<span class='parenthesis'>(</span>equivalent<span class='parenthesis'>(</span>get_unit<span class='parenthesis'>(</span>R1<span class='parenthesis'>)</span>, get_unit<span class='parenthesis'>(</span>R2<span class='parenthesis'>)</span><span class='parenthesis'>)</span><span class='parenthesis'>)</span> <span class='operator'>&</span><span class='operator'>&</span> std<span class='operator'>::</span>convertible_to<span class='anglebracket'><</span>Rep1, Rep2<span class='anglebracket'>></span>;
|
|
|
|
<span class='keyword'>template</span><span class='anglebracket'><</span><span class='keyword'>typename</span> T<span class='anglebracket'>></span>
|
|
<span class='keyword'>using</span> <i >quantity-like-type</i> <span class='operator'>=</span> <span class='comment'>// <i >exposition only</i></span>
|
|
quantity<span class='anglebracket'><</span>quantity_like_traits<span class='anglebracket'><</span>T<span class='anglebracket'>></span><span class='operator'>::</span>reference, <span class='keyword'>typename</span> quantity_like_traits<span class='anglebracket'><</span>T<span class='anglebracket'>></span><span class='operator'>::</span>rep<span class='anglebracket'>></span>;
|
|
|
|
<span class='keyword'>template</span><span class='anglebracket'><</span><span class='keyword'>typename</span> T, <span class='keyword'>typename</span> U, <span class='keyword'>typename</span> TT <span class='operator'>=</span> std<span class='operator'>::</span>remove_reference_t<span class='anglebracket'><</span>T<span class='anglebracket'>></span><span class='anglebracket'>></span>
|
|
<span class='keyword'>concept</span> <i >Mutable</i><a class='index' id='concept:Mutable'></a> <span class='operator'>=</span> <span class='parenthesis'>(</span><span class='operator'>!</span>std<span class='operator'>::</span>is_const_v<span class='anglebracket'><</span>TT<span class='anglebracket'>></span><span class='parenthesis'>)</span> <span class='operator'>&</span><span class='operator'>&</span> std<span class='operator'>::</span>derived_from<span class='anglebracket'><</span>TT, U<span class='anglebracket'>></span>; <span class='comment'>// <i >exposition only</i></span>
|
|
|
|
<span class='keyword'>template</span><span class='anglebracket'><</span><a href='qty.ref.concepts.html#concept:Reference' title='5.4.5 Concepts [qty.ref.concepts]'><span id='conceptref:Reference'><span class='tcode_in_codeblock'>Reference</span></span></a> <span class='keyword'>auto</span> R, <a href='qty.rep.concepts.html#concept:RepresentationOf' title='5.5.4 Concepts [qty.rep.concepts]'><span id='conceptref:RepresentationOf_'><span class='tcode_in_codeblock'>RepresentationOf</span></span></a><span class='anglebracket'><</span>get_quantity_spec<span class='parenthesis'>(</span>R<span class='parenthesis'>)</span><span class='anglebracket'>></span> Rep <span class='operator'>=</span> <span class='keyword'>double</span><span class='anglebracket'>></span>
|
|
<span class='keyword'>class</span> <span id='lib:quantity'><a class='hidden_link' href='#lib:quantity' title='5.6.3 Class template quantity [qty.syn]'>quantity</a></span> <span class='curlybracket'>{</span>
|
|
<span class='keyword'>public</span><span class='operator'>:</span>
|
|
Rep <i >numerical-value</i>; <span class='comment'>// <i >exposition only</i></span>
|
|
|
|
<span class='comment'>// member types and values</span>
|
|
<span class='keyword'>static</span> <span class='keyword'>constexpr</span> <a href='qty.ref.concepts.html#concept:Reference' title='5.4.5 Concepts [qty.ref.concepts]'><span id='conceptref:Reference_'><span class='tcode_in_codeblock'>Reference</span></span></a> <span class='keyword'>auto</span> reference <span class='operator'>=</span> R;
|
|
<span class='keyword'>static</span> <span class='keyword'>constexpr</span> <a href='qty.spec.concepts.html#concept:QuantitySpec' title='5.4.3.2 Concepts [qty.spec.concepts]'><span id='conceptref:QuantitySpec__'><span class='tcode_in_codeblock'>QuantitySpec</span></span></a> <span class='keyword'>auto</span> quantity_spec <span class='operator'>=</span> get_quantity_spec<span class='parenthesis'>(</span>reference<span class='parenthesis'>)</span>;
|
|
<span class='keyword'>static</span> <span class='keyword'>constexpr</span> <a href='qty.dim.concepts.html#concept:Dimension' title='5.4.2.2 Concepts [qty.dim.concepts]'><span id='conceptref:Dimension'><span class='tcode_in_codeblock'>Dimension</span></span></a> <span class='keyword'>auto</span> dimension <span class='operator'>=</span> quantity_spec<span class='operator'>.</span>dimension;
|
|
<span class='keyword'>static</span> <span class='keyword'>constexpr</span> <a href='qty.unit.concepts.html#concept:Unit' title='5.4.4.4 Concepts [qty.unit.concepts]'><span id='conceptref:Unit____'><span class='tcode_in_codeblock'>Unit</span></span></a> <span class='keyword'>auto</span> unit <span class='operator'>=</span> get_unit<span class='parenthesis'>(</span>reference<span class='parenthesis'>)</span>;
|
|
<span class='keyword'>using</span> rep <span class='operator'>=</span> Rep;
|
|
|
|
<span class='comment'>// <a href='qty.static.html' title='5.6.4 Static member functions'>[qty.<span class='shy'></span>static]</a>, static member functions</span>
|
|
<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>
|
|
<span class='keyword'>requires</span> <i ><span class='texttt'>see below</span></i>;
|
|
<span class='keyword'>static</span> <span class='keyword'>constexpr</span> quantity min<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 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>;
|
|
|
|
<span class='comment'>// <a href='qty.cons.html' title='5.6.5 Constructors and assignment'>[qty.<span class='shy'></span>cons]</a>, constructors and assignment</span>
|
|
|
|
quantity<span class='parenthesis'>(</span><span class='parenthesis'>)</span> <span class='operator'>=</span> <span class='keyword'>default</span>;
|
|
quantity<span class='parenthesis'>(</span><span class='keyword'>const</span> quantity<span class='operator'>&</span><span class='parenthesis'>)</span> <span class='operator'>=</span> <span class='keyword'>default</span>;
|
|
quantity<span class='parenthesis'>(</span>quantity<span class='operator'>&</span><span class='operator'>&</span><span class='parenthesis'>)</span> <span class='operator'>=</span> <span class='keyword'>default</span>;
|
|
<span class='operator'>~</span>quantity<span class='parenthesis'>(</span><span class='parenthesis'>)</span> <span class='operator'>=</span> <span class='keyword'>default</span>;
|
|
|
|
<span class='keyword'>template</span><span class='anglebracket'><</span><span class='keyword'>typename</span> FwdValue, <a href='qty.ref.concepts.html#concept:Reference' title='5.4.5 Concepts [qty.ref.concepts]'><span id='conceptref:Reference__'><span class='tcode_in_codeblock'>Reference</span></span></a> R2<span class='anglebracket'>></span>
|
|
<span class='keyword'>requires</span> <a class='index' id='conceptref:SameValueAs'></a><i >SameValueAs</i><span class='anglebracket'><</span>R2<span class='curlybracket'>{</span><span class='curlybracket'>}</span>, R, std<span class='operator'>::</span>remove_cvref_t<span class='anglebracket'><</span>FwdValue<span class='anglebracket'>></span>, Rep<span class='anglebracket'>></span>
|
|
<span class='keyword'>constexpr</span> quantity<span class='parenthesis'>(</span>FwdValue<span class='operator'>&</span><span class='operator'>&</span> v, R2<span class='parenthesis'>)</span>;
|
|
|
|
<span class='keyword'>template</span><span class='anglebracket'><</span><span class='keyword'>typename</span> FwdValue, <a href='qty.ref.concepts.html#concept:Reference' title='5.4.5 Concepts [qty.ref.concepts]'><span id='conceptref:Reference___'><span class='tcode_in_codeblock'>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'><</span>FwdValue<span class='anglebracket'>></span><span class='anglebracket'>></span>
|
|
<span class='keyword'>requires</span><span class='parenthesis'>(</span><span class='operator'>!</span><a class='index' id='conceptref:SameValueAs_'></a><i >SameValueAs</i><span class='anglebracket'><</span>R2<span class='curlybracket'>{</span><span class='curlybracket'>}</span>, R, Value, Rep<span class='anglebracket'>></span><span class='parenthesis'>)</span> <span class='operator'>&</span><span class='operator'>&</span>
|
|
<a class='index' id='conceptref:QuantityConvertibleTo'></a><i >QuantityConvertibleTo</i><span class='anglebracket'><</span>quantity<span class='anglebracket'><</span>R2<span class='curlybracket'>{</span><span class='curlybracket'>}</span>, Value<span class='anglebracket'>></span>, quantity<span class='anglebracket'>></span>
|
|
<span class='keyword'>constexpr</span> quantity<span class='parenthesis'>(</span>FwdValue<span class='operator'>&</span><span class='operator'>&</span> v, R2<span class='parenthesis'>)</span>;
|
|
|
|
<span class='keyword'>template</span><span class='anglebracket'><</span><a class='index' id='conceptref:ValuePreservingTo'></a><i >ValuePreservingTo</i><span class='anglebracket'><</span>Rep<span class='anglebracket'>></span> FwdValue<span class='anglebracket'>></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'>&</span><span class='operator'>&</span> v<span class='parenthesis'>)</span>;
|
|
|
|
<span class='keyword'>template</span><span class='anglebracket'><</span><a class='index' id='conceptref:QuantityConvertibleTo_'></a><i >QuantityConvertibleTo</i><span class='anglebracket'><</span>quantity<span class='anglebracket'>></span> Q<span class='anglebracket'>></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'>&</span> q<span class='parenthesis'>)</span>;
|
|
|
|
<span class='keyword'>template</span><span class='anglebracket'><</span><a href='qty.like.html#concept:QuantityLike' title='5.6.2 Interoperability [qty.like]'><span id='conceptref:QuantityLike'><span class='tcode_in_codeblock'>QuantityLike</span></span></a> Q<span class='anglebracket'>></span>
|
|
<span class='keyword'>requires</span> <a class='index' id='conceptref:QuantityConvertibleTo__'></a><i >QuantityConvertibleTo</i><span class='anglebracket'><</span><i >quantity-like-type</i><span class='anglebracket'><</span>Q<span class='anglebracket'>></span>, quantity<span class='anglebracket'>></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'>&</span> q<span class='parenthesis'>)</span>;
|
|
|
|
quantity<span class='operator'>&</span> <span class='keyword'>operator</span><span class='operator'>=</span><span class='parenthesis'>(</span><span class='keyword'>const</span> quantity<span class='operator'>&</span><span class='parenthesis'>)</span> <span class='operator'>=</span> <span class='keyword'>default</span>;
|
|
quantity<span class='operator'>&</span> <span class='keyword'>operator</span><span class='operator'>=</span><span class='parenthesis'>(</span>quantity<span class='operator'>&</span><span class='operator'>&</span><span class='parenthesis'>)</span> <span class='operator'>=</span> <span class='keyword'>default</span>;
|
|
|
|
<span class='keyword'>template</span><span class='anglebracket'><</span><a class='index' id='conceptref:ValuePreservingTo_'></a><i >ValuePreservingTo</i><span class='anglebracket'><</span>Rep<span class='anglebracket'>></span> FwdValue<span class='anglebracket'>></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'>&</span> <span class='keyword'>operator</span><span class='operator'>=</span><span class='parenthesis'>(</span>FwdValue<span class='operator'>&</span><span class='operator'>&</span> v<span class='parenthesis'>)</span>;
|
|
|
|
<span class='comment'>// <a href='qty.conv.html' title='5.6.6 Conversions'>[qty.<span class='shy'></span>conv]</a>, conversions</span>
|
|
|
|
<span class='keyword'>template</span><span class='anglebracket'><</span><a class='index' id='conceptref:UnitCompatibleWith'></a><i >UnitCompatibleWith</i><span class='anglebracket'><</span>unit, quantity_spec<span class='anglebracket'>></span> ToU<span class='anglebracket'>></span>
|
|
<span class='keyword'>requires</span> <a class='index' id='conceptref:QuantityConvertibleTo___'></a><i >QuantityConvertibleTo</i><span class='anglebracket'><</span>quantity, quantity<span class='anglebracket'><</span><i >make-reference</i><span class='parenthesis'>(</span>quantity_spec, ToU<span class='curlybracket'>{</span><span class='curlybracket'>}</span><span class='parenthesis'>)</span>, Rep<span class='anglebracket'>></span><span class='anglebracket'>></span>
|
|
<span class='keyword'>constexpr</span> <a href='#concept:QuantityOf' title='5.6.3 Class template quantity [qty.syn]'><span id='conceptref:QuantityOf'><span class='tcode_in_codeblock'>QuantityOf</span></span></a><span class='anglebracket'><</span>quantity_spec<span class='anglebracket'>></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'><</span><a href='qty.rep.concepts.html#concept:RepresentationOf' title='5.5.4 Concepts [qty.rep.concepts]'><span id='conceptref:RepresentationOf__'><span class='tcode_in_codeblock'>RepresentationOf</span></span></a><span class='anglebracket'><</span>quantity_spec<span class='anglebracket'>></span> ToRep<span class='anglebracket'>></span>
|
|
<span class='keyword'>requires</span> <a class='index' id='conceptref:QuantityConvertibleTo____'></a><i >QuantityConvertibleTo</i><span class='anglebracket'><</span>quantity, quantity<span class='anglebracket'><</span>reference, ToRep<span class='anglebracket'>></span><span class='anglebracket'>></span>
|
|
<span class='keyword'>constexpr</span> <a href='#concept:QuantityOf' title='5.6.3 Class template quantity [qty.syn]'><span id='conceptref:QuantityOf_'><span class='tcode_in_codeblock'>QuantityOf</span></span></a><span class='anglebracket'><</span>quantity_spec<span class='anglebracket'>></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'><</span><a href='qty.rep.concepts.html#concept:RepresentationOf' title='5.5.4 Concepts [qty.rep.concepts]'><span id='conceptref:RepresentationOf___'><span class='tcode_in_codeblock'>RepresentationOf</span></span></a><span class='anglebracket'><</span>quantity_spec<span class='anglebracket'>></span> ToRep,
|
|
<a class='index' id='conceptref:UnitCompatibleWith_'></a><i >UnitCompatibleWith</i><span class='anglebracket'><</span>unit, quantity_spec<span class='anglebracket'>></span> ToU<span class='anglebracket'>></span>
|
|
<span class='keyword'>requires</span> <a class='index' id='conceptref:QuantityConvertibleTo_____'></a><i >QuantityConvertibleTo</i><span class='anglebracket'><</span>quantity,
|
|
quantity<span class='anglebracket'><</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'>></span><span class='anglebracket'>></span>
|
|
<span class='keyword'>constexpr</span> <a href='#concept:QuantityOf' title='5.6.3 Class template quantity [qty.syn]'><span id='conceptref:QuantityOf__'><span class='tcode_in_codeblock'>QuantityOf</span></span></a><span class='anglebracket'><</span>quantity_spec<span class='anglebracket'>></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'><</span><a class='index' id='conceptref:UnitCompatibleWith__'></a><i >UnitCompatibleWith</i><span class='anglebracket'><</span>unit, quantity_spec<span class='anglebracket'>></span> ToU<span class='anglebracket'>></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'><</span>ToU<span class='curlybracket'>{</span><span class='curlybracket'>}</span><span class='anglebracket'>></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 Class template quantity [qty.syn]'><span id='conceptref:QuantityOf___'><span class='tcode_in_codeblock'>QuantityOf</span></span></a><span class='anglebracket'><</span>quantity_spec<span class='anglebracket'>></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'><</span><a href='qty.rep.concepts.html#concept:RepresentationOf' title='5.5.4 Concepts [qty.rep.concepts]'><span id='conceptref:RepresentationOf____'><span class='tcode_in_codeblock'>RepresentationOf</span></span></a><span class='anglebracket'><</span>quantity_spec<span class='anglebracket'>></span> ToRep<span class='anglebracket'>></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'><</span>ToRep<span class='anglebracket'>></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 Class template quantity [qty.syn]'><span id='conceptref:QuantityOf____'><span class='tcode_in_codeblock'>QuantityOf</span></span></a><span class='anglebracket'><</span>quantity_spec<span class='anglebracket'>></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'><</span><a href='qty.rep.concepts.html#concept:RepresentationOf' title='5.5.4 Concepts [qty.rep.concepts]'><span id='conceptref:RepresentationOf_____'><span class='tcode_in_codeblock'>RepresentationOf</span></span></a><span class='anglebracket'><</span>quantity_spec<span class='anglebracket'>></span> ToRep,
|
|
<a class='index' id='conceptref:UnitCompatibleWith___'></a><i >UnitCompatibleWith</i><span class='anglebracket'><</span>unit, quantity_spec<span class='anglebracket'>></span> ToU<span class='anglebracket'>></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'><</span>ToU<span class='curlybracket'>{</span><span class='curlybracket'>}</span>, ToRep<span class='anglebracket'>></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 Class template quantity [qty.syn]'><span id='conceptref:QuantityOf_____'><span class='tcode_in_codeblock'>QuantityOf</span></span></a><span class='anglebracket'><</span>quantity_spec<span class='anglebracket'>></span> <span class='keyword'>auto</span> force_in<span class='parenthesis'>(</span>ToU<span class='parenthesis'>)</span> <span class='keyword'>const</span>;
|
|
|
|
<span class='comment'>// <a href='qty.obs.html' title='5.6.7 Numerical value observers'>[qty.<span class='shy'></span>obs]</a>, numerical value observers</span>
|
|
|
|
<span class='keyword'>template</span><span class='anglebracket'><</span><a href='qty.unit.concepts.html#concept:Unit' title='5.4.4.4 Concepts [qty.unit.concepts]'><span id='conceptref:Unit_____'><span class='tcode_in_codeblock'>Unit</span></span></a> U<span class='anglebracket'>></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'>&</span> numerical_value_ref_in<span class='parenthesis'>(</span>U<span class='parenthesis'>)</span> <span class='operator'>&</span> <span class='keyword'>noexcept</span>;
|
|
<span class='keyword'>template</span><span class='anglebracket'><</span><a href='qty.unit.concepts.html#concept:Unit' title='5.4.4.4 Concepts [qty.unit.concepts]'><span id='conceptref:Unit______'><span class='tcode_in_codeblock'>Unit</span></span></a> U<span class='anglebracket'>></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'>&</span> numerical_value_ref_in<span class='parenthesis'>(</span>U<span class='parenthesis'>)</span> <span class='keyword'>const</span> <span class='operator'>&</span> <span class='keyword'>noexcept</span>;
|
|
<span class='keyword'>template</span><span class='anglebracket'><</span><a href='qty.unit.concepts.html#concept:Unit' title='5.4.4.4 Concepts [qty.unit.concepts]'><span id='conceptref:Unit_______'><span class='tcode_in_codeblock'>Unit</span></span></a> U<span class='anglebracket'>></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'>void</span> numerical_value_ref_in<span class='parenthesis'>(</span>U<span class='parenthesis'>)</span> <span class='keyword'>const</span> <span class='operator'>&</span><span class='operator'>&</span> <span class='operator'>=</span> <span class='keyword'>delete</span>;
|
|
|
|
<span class='keyword'>template</span><span class='anglebracket'><</span><a class='index' id='conceptref:UnitCompatibleWith____'></a><i >UnitCompatibleWith</i><span class='anglebracket'><</span>unit, quantity_spec<span class='anglebracket'>></span> U<span class='anglebracket'>></span>
|
|
<span class='keyword'>requires</span> <a class='index' id='conceptref:QuantityConvertibleTo______'></a><i >QuantityConvertibleTo</i><span class='anglebracket'><</span>quantity, quantity<span class='anglebracket'><</span><i >make-reference</i><span class='parenthesis'>(</span>quantity_spec, U<span class='curlybracket'>{</span><span class='curlybracket'>}</span><span class='parenthesis'>)</span>, Rep<span class='anglebracket'>></span><span class='anglebracket'>></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>;
|
|
|
|
<span class='keyword'>template</span><span class='anglebracket'><</span><a class='index' id='conceptref:UnitCompatibleWith_____'></a><i >UnitCompatibleWith</i><span class='anglebracket'><</span>unit, quantity_spec<span class='anglebracket'>></span> U<span class='anglebracket'>></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'><</span>U<span class='curlybracket'>{</span><span class='curlybracket'>}</span><span class='anglebracket'>></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>;
|
|
|
|
<span class='comment'>// <a href='qty.conv.ops.html' title='5.6.8 Conversion operations'>[qty.<span class='shy'></span>conv.<span class='shy'></span>ops]</a>, conversion operations</span>
|
|
|
|
<span class='keyword'>template</span><span class='anglebracket'><</span><span class='keyword'>typename</span> V_, std<span class='operator'>::</span>constructible_from<span class='anglebracket'><</span>Rep<span class='anglebracket'>></span> Value <span class='operator'>=</span> std<span class='operator'>::</span>remove_cvref_t<span class='anglebracket'><</span>V_<span class='anglebracket'>></span><span class='anglebracket'>></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'>&</span> <span class='keyword'>noexcept</span>;
|
|
|
|
<span class='keyword'>template</span><span class='anglebracket'><</span><span class='keyword'>typename</span> Q_, <a href='qty.like.html#concept:QuantityLike' title='5.6.2 Interoperability [qty.like]'><span id='conceptref:QuantityLike_'><span class='tcode_in_codeblock'>QuantityLike</span></span></a> Q <span class='operator'>=</span> std<span class='operator'>::</span>remove_cvref_t<span class='anglebracket'><</span>Q_<span class='anglebracket'>></span><span class='anglebracket'>></span>
|
|
<span class='keyword'>requires</span> <a class='index' id='conceptref:QuantityConvertibleTo_______'></a><i >QuantityConvertibleTo</i><span class='anglebracket'><</span>quantity, <i >quantity-like-type</i><span class='anglebracket'><</span>Q<span class='anglebracket'>></span><span class='anglebracket'>></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>;
|
|
|
|
<span class='comment'>// <a href='qty.unary.ops.html' title='5.6.9 Unary operations'>[qty.<span class='shy'></span>unary.<span class='shy'></span>ops]</a>, unary operations</span>
|
|
|
|
<span class='keyword'>constexpr</span> <a href='#concept:QuantityOf' title='5.6.3 Class template quantity [qty.syn]'><span id='conceptref:QuantityOf______'><span class='tcode_in_codeblock'>QuantityOf</span></span></a><span class='anglebracket'><</span>quantity_spec<span class='anglebracket'>></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 Class template quantity [qty.syn]'><span id='conceptref:QuantityOf_______'><span class='tcode_in_codeblock'>QuantityOf</span></span></a><span class='anglebracket'><</span>quantity_spec<span class='anglebracket'>></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'>template</span><span class='anglebracket'><</span><a class='index' id='conceptref:Mutable'></a><i >Mutable</i><span class='anglebracket'><</span>quantity<span class='anglebracket'>></span> Q<span class='anglebracket'>></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'>&</span><span class='operator'>&</span> q<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'><</span><a class='index' id='conceptref:Mutable_'></a><i >Mutable</i><span class='anglebracket'><</span>quantity<span class='anglebracket'>></span> Q<span class='anglebracket'>></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'>&</span><span class='operator'>&</span> q<span class='parenthesis'>)</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 Class template quantity [qty.syn]'><span id='conceptref:QuantityOf________'><span class='tcode_in_codeblock'>QuantityOf</span></span></a><span class='anglebracket'><</span>quantity_spec<span class='anglebracket'>></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>;
|
|
<span class='keyword'>constexpr</span> <a href='#concept:QuantityOf' title='5.6.3 Class template quantity [qty.syn]'><span id='conceptref:QuantityOf_________'><span class='tcode_in_codeblock'>QuantityOf</span></span></a><span class='anglebracket'><</span>quantity_spec<span class='anglebracket'>></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>;
|
|
|
|
<span class='comment'>// <a href='qty.assign.ops.html' title='5.6.10 Compound assignment operations'>[qty.<span class='shy'></span>assign.<span class='shy'></span>ops]</a>, compound assignment operations</span>
|
|
|
|
<span class='keyword'>template</span><span class='anglebracket'><</span><a class='index' id='conceptref:Mutable__'></a><i >Mutable</i><span class='anglebracket'><</span>quantity<span class='anglebracket'>></span> Q, <span class='keyword'>auto</span> R2, <span class='keyword'>typename</span> Rep2<span class='anglebracket'>></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'>&</span><span class='operator'>&</span> lhs, <span class='keyword'>const</span> quantity<span class='anglebracket'><</span>R2, Rep2<span class='anglebracket'>></span><span class='operator'>&</span> rhs<span class='parenthesis'>)</span>;
|
|
<span class='keyword'>template</span><span class='anglebracket'><</span><a class='index' id='conceptref:Mutable___'></a><i >Mutable</i><span class='anglebracket'><</span>quantity<span class='anglebracket'>></span> Q, <span class='keyword'>auto</span> R2, <span class='keyword'>typename</span> Rep2<span class='anglebracket'>></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'>&</span><span class='operator'>&</span> lhs, <span class='keyword'>const</span> quantity<span class='anglebracket'><</span>R2, Rep2<span class='anglebracket'>></span><span class='operator'>&</span> rhs<span class='parenthesis'>)</span>;
|
|
<span class='keyword'>template</span><span class='anglebracket'><</span><a class='index' id='conceptref:Mutable____'></a><i >Mutable</i><span class='anglebracket'><</span>quantity<span class='anglebracket'>></span> Q, <span class='keyword'>auto</span> R2, <span class='keyword'>typename</span> Rep2<span class='anglebracket'>></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'>&</span><span class='operator'>&</span> lhs, <span class='keyword'>const</span> quantity<span class='anglebracket'><</span>R2, Rep2<span class='anglebracket'>></span><span class='operator'>&</span> rhs<span class='parenthesis'>)</span>;
|
|
|
|
<span class='keyword'>template</span><span class='anglebracket'><</span><a class='index' id='conceptref:Mutable_____'></a><i >Mutable</i><span class='anglebracket'><</span>quantity<span class='anglebracket'>></span> Q, <a class='index' id='conceptref:ValuePreservingTo__'></a><i >ValuePreservingTo</i><span class='anglebracket'><</span>Rep<span class='anglebracket'>></span> Value<span class='anglebracket'>></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'>&</span><span class='operator'>&</span> lhs, <span class='keyword'>const</span> Value<span class='operator'>&</span> rhs<span class='parenthesis'>)</span>;
|
|
<span class='keyword'>template</span><span class='anglebracket'><</span><a class='index' id='conceptref:Mutable______'></a><i >Mutable</i><span class='anglebracket'><</span>quantity<span class='anglebracket'>></span> Q, <a class='index' id='conceptref:ValuePreservingTo___'></a><i >ValuePreservingTo</i><span class='anglebracket'><</span>Rep<span class='anglebracket'>></span> Value<span class='anglebracket'>></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'>&</span><span class='operator'>&</span> lhs, <span class='keyword'>const</span> Value<span class='operator'>&</span> rhs<span class='parenthesis'>)</span>;
|
|
|
|
<span class='keyword'>template</span><span class='anglebracket'><</span><a class='index' id='conceptref:Mutable_______'></a><i >Mutable</i><span class='anglebracket'><</span>quantity<span class='anglebracket'>></span> Q, <a href='#concept:QuantityOf' title='5.6.3 Class template quantity [qty.syn]'><span id='conceptref:QuantityOf__________'><span class='tcode_in_codeblock'>QuantityOf</span></span></a><span class='anglebracket'><</span>dimensionless<span class='anglebracket'>></span> Q2<span class='anglebracket'>></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'>&</span><span class='operator'>&</span> lhs, <span class='keyword'>const</span> Q2<span class='operator'>&</span> rhs<span class='parenthesis'>)</span>;
|
|
<span class='keyword'>template</span><span class='anglebracket'><</span><a class='index' id='conceptref:Mutable________'></a><i >Mutable</i><span class='anglebracket'><</span>quantity<span class='anglebracket'>></span> Q, <a href='#concept:QuantityOf' title='5.6.3 Class template quantity [qty.syn]'><span id='conceptref:QuantityOf___________'><span class='tcode_in_codeblock'>QuantityOf</span></span></a><span class='anglebracket'><</span>dimensionless<span class='anglebracket'>></span> Q2<span class='anglebracket'>></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'>&</span><span class='operator'>&</span> lhs, <span class='keyword'>const</span> Q2<span class='operator'>&</span> rhs<span class='parenthesis'>)</span>;
|
|
|
|
<span class='comment'>// <a href='qty.arith.ops.html' title='5.6.11 Arithmetic operations'>[qty.<span class='shy'></span>arith.<span class='shy'></span>ops]</a>, arithmetic operations</span>
|
|
|
|
<span class='keyword'>template</span><span class='anglebracket'><</span>std<span class='operator'>::</span>derived_from<span class='anglebracket'><</span>quantity<span class='anglebracket'>></span> Q, <span class='keyword'>auto</span> R2, <span class='keyword'>typename</span> Rep2<span class='anglebracket'>></span>
|
|
<span class='keyword'>requires</span> <a class='index' id='conceptref:CommonlyInvocableQuantities'></a><i >CommonlyInvocableQuantities</i><span class='anglebracket'><</span>std<span class='operator'>::</span>plus<span class='anglebracket'><</span><span class='anglebracket'>></span>, quantity, quantity<span class='anglebracket'><</span>R2, Rep2<span class='anglebracket'>></span><span class='anglebracket'>></span>
|
|
<span class='keyword'>friend</span> <span class='keyword'>constexpr</span> <a href='#concept:Quantity' title='5.6.3 Class template quantity [qty.syn]'><span id='conceptref:Quantity_______'><span class='tcode_in_codeblock'>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'>&</span> lhs, <span class='keyword'>const</span> quantity<span class='anglebracket'><</span>R2, Rep2<span class='anglebracket'>></span><span class='operator'>&</span> rhs<span class='parenthesis'>)</span>;
|
|
<span class='keyword'>template</span><span class='anglebracket'><</span>std<span class='operator'>::</span>derived_from<span class='anglebracket'><</span>quantity<span class='anglebracket'>></span> Q, <span class='keyword'>auto</span> R2, <span class='keyword'>typename</span> Rep2<span class='anglebracket'>></span>
|
|
<span class='keyword'>requires</span> <a class='index' id='conceptref:CommonlyInvocableQuantities_'></a><i >CommonlyInvocableQuantities</i><span class='anglebracket'><</span>std<span class='operator'>::</span>minus<span class='anglebracket'><</span><span class='anglebracket'>></span>, quantity, quantity<span class='anglebracket'><</span>R2, Rep2<span class='anglebracket'>></span><span class='anglebracket'>></span>
|
|
<span class='keyword'>friend</span> <span class='keyword'>constexpr</span> <a href='#concept:Quantity' title='5.6.3 Class template quantity [qty.syn]'><span id='conceptref:Quantity________'><span class='tcode_in_codeblock'>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'>&</span> lhs, <span class='keyword'>const</span> quantity<span class='anglebracket'><</span>R2, Rep2<span class='anglebracket'>></span><span class='operator'>&</span> rhs<span class='parenthesis'>)</span>;
|
|
<span class='keyword'>template</span><span class='anglebracket'><</span>std<span class='operator'>::</span>derived_from<span class='anglebracket'><</span>quantity<span class='anglebracket'>></span> Q, <span class='keyword'>auto</span> R2, <span class='keyword'>typename</span> Rep2<span class='anglebracket'>></span>
|
|
<span class='keyword'>requires</span><span class='parenthesis'>(</span><span class='operator'>!</span>treat_as_floating_point<span class='anglebracket'><</span>Rep<span class='anglebracket'>></span><span class='parenthesis'>)</span> <span class='operator'>&</span><span class='operator'>&</span> <span class='parenthesis'>(</span><span class='operator'>!</span>treat_as_floating_point<span class='anglebracket'><</span>Rep2<span class='anglebracket'>></span><span class='parenthesis'>)</span> <span class='operator'>&</span><span class='operator'>&</span>
|
|
<a class='index' id='conceptref:CommonlyInvocableQuantities__'></a><i >CommonlyInvocableQuantities</i><span class='anglebracket'><</span>std<span class='operator'>::</span>modulus<span class='anglebracket'><</span><span class='anglebracket'>></span>, quantity, quantity<span class='anglebracket'><</span>R2, Rep2<span class='anglebracket'>></span><span class='anglebracket'>></span>
|
|
<span class='keyword'>friend</span> <span class='keyword'>constexpr</span> <a href='#concept:Quantity' title='5.6.3 Class template quantity [qty.syn]'><span id='conceptref:Quantity_________'><span class='tcode_in_codeblock'>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'>&</span> lhs, <span class='keyword'>const</span> quantity<span class='anglebracket'><</span>R2, Rep2<span class='anglebracket'>></span><span class='operator'>&</span> rhs<span class='parenthesis'>)</span>;
|
|
|
|
<span class='keyword'>template</span><span class='anglebracket'><</span>std<span class='operator'>::</span>derived_from<span class='anglebracket'><</span>quantity<span class='anglebracket'>></span> Q, <a href='qty.rep.concepts.html#concept:Representation' title='5.5.4 Concepts [qty.rep.concepts]'><span id='conceptref:Representation__'><span class='tcode_in_codeblock'>Representation</span></span></a> Value<span class='anglebracket'>></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'>&</span><span class='operator'>&</span>
|
|
<a class='index' id='conceptref:InvokeResultOf_'></a><i >InvokeResultOf</i><span class='anglebracket'><</span>quantity_spec, std<span class='operator'>::</span>plus<span class='anglebracket'><</span><span class='anglebracket'>></span>, Rep, <span class='keyword'>const</span> Value<span class='operator'>&</span><span class='anglebracket'>></span>
|
|
<span class='keyword'>friend</span> <span class='keyword'>constexpr</span> <a href='#concept:Quantity' title='5.6.3 Class template quantity [qty.syn]'><span id='conceptref:Quantity__________'><span class='tcode_in_codeblock'>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'>&</span> lhs, <span class='keyword'>const</span> Value<span class='operator'>&</span> rhs<span class='parenthesis'>)</span>;
|
|
<span class='keyword'>template</span><span class='anglebracket'><</span>std<span class='operator'>::</span>derived_from<span class='anglebracket'><</span>quantity<span class='anglebracket'>></span> Q, <a href='qty.rep.concepts.html#concept:Representation' title='5.5.4 Concepts [qty.rep.concepts]'><span id='conceptref:Representation___'><span class='tcode_in_codeblock'>Representation</span></span></a> Value<span class='anglebracket'>></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'>&</span><span class='operator'>&</span>
|
|
<a class='index' id='conceptref:InvokeResultOf__'></a><i >InvokeResultOf</i><span class='anglebracket'><</span>quantity_spec, std<span class='operator'>::</span>minus<span class='anglebracket'><</span><span class='anglebracket'>></span>, Rep, <span class='keyword'>const</span> Value<span class='operator'>&</span><span class='anglebracket'>></span>
|
|
<span class='keyword'>friend</span> <span class='keyword'>constexpr</span> <a href='#concept:Quantity' title='5.6.3 Class template quantity [qty.syn]'><span id='conceptref:Quantity___________'><span class='tcode_in_codeblock'>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'>&</span> lhs, <span class='keyword'>const</span> Value<span class='operator'>&</span> rhs<span class='parenthesis'>)</span>;
|
|
<span class='keyword'>template</span><span class='anglebracket'><</span>std<span class='operator'>::</span>derived_from<span class='anglebracket'><</span>quantity<span class='anglebracket'>></span> Q, <a href='qty.rep.concepts.html#concept:Representation' title='5.5.4 Concepts [qty.rep.concepts]'><span id='conceptref:Representation____'><span class='tcode_in_codeblock'>Representation</span></span></a> Value<span class='anglebracket'>></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'>&</span><span class='operator'>&</span>
|
|
<a class='index' id='conceptref:InvokeResultOf___'></a><i >InvokeResultOf</i><span class='anglebracket'><</span>quantity_spec, std<span class='operator'>::</span>modulus<span class='anglebracket'><</span><span class='anglebracket'>></span>, Rep, <span class='keyword'>const</span> Value<span class='operator'>&</span><span class='anglebracket'>></span>
|
|
<span class='keyword'>friend</span> <span class='keyword'>constexpr</span> <a href='#concept:Quantity' title='5.6.3 Class template quantity [qty.syn]'><span id='conceptref:Quantity____________'><span class='tcode_in_codeblock'>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'>&</span> lhs, <span class='keyword'>const</span> Value<span class='operator'>&</span> rhs<span class='parenthesis'>)</span>;
|
|
|
|
<span class='keyword'>template</span><span class='anglebracket'><</span>std<span class='operator'>::</span>derived_from<span class='anglebracket'><</span>quantity<span class='anglebracket'>></span> Q, <a href='qty.rep.concepts.html#concept:Representation' title='5.5.4 Concepts [qty.rep.concepts]'><span id='conceptref:Representation_____'><span class='tcode_in_codeblock'>Representation</span></span></a> Value<span class='anglebracket'>></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'>&</span><span class='operator'>&</span>
|
|
<a class='index' id='conceptref:InvokeResultOf____'></a><i >InvokeResultOf</i><span class='anglebracket'><</span>quantity_spec, std<span class='operator'>::</span>plus<span class='anglebracket'><</span><span class='anglebracket'>></span>, Rep, <span class='keyword'>const</span> Value<span class='operator'>&</span><span class='anglebracket'>></span>
|
|
<span class='keyword'>friend</span> <span class='keyword'>constexpr</span> <a href='#concept:Quantity' title='5.6.3 Class template quantity [qty.syn]'><span id='conceptref:Quantity_____________'><span class='tcode_in_codeblock'>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'>&</span> lhs, <span class='keyword'>const</span> Q<span class='operator'>&</span> rhs<span class='parenthesis'>)</span>;
|
|
<span class='keyword'>template</span><span class='anglebracket'><</span>std<span class='operator'>::</span>derived_from<span class='anglebracket'><</span>quantity<span class='anglebracket'>></span> Q, <a href='qty.rep.concepts.html#concept:Representation' title='5.5.4 Concepts [qty.rep.concepts]'><span id='conceptref:Representation______'><span class='tcode_in_codeblock'>Representation</span></span></a> Value<span class='anglebracket'>></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'>&</span><span class='operator'>&</span>
|
|
<a class='index' id='conceptref:InvokeResultOf_____'></a><i >InvokeResultOf</i><span class='anglebracket'><</span>quantity_spec, std<span class='operator'>::</span>minus<span class='anglebracket'><</span><span class='anglebracket'>></span>, Rep, <span class='keyword'>const</span> Value<span class='operator'>&</span><span class='anglebracket'>></span>
|
|
<span class='keyword'>friend</span> <span class='keyword'>constexpr</span> <a href='#concept:Quantity' title='5.6.3 Class template quantity [qty.syn]'><span id='conceptref:Quantity______________'><span class='tcode_in_codeblock'>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'>&</span> lhs, <span class='keyword'>const</span> Q<span class='operator'>&</span> rhs<span class='parenthesis'>)</span>;
|
|
<span class='keyword'>template</span><span class='anglebracket'><</span>std<span class='operator'>::</span>derived_from<span class='anglebracket'><</span>quantity<span class='anglebracket'>></span> Q, <a href='qty.rep.concepts.html#concept:Representation' title='5.5.4 Concepts [qty.rep.concepts]'><span id='conceptref:Representation_______'><span class='tcode_in_codeblock'>Representation</span></span></a> Value<span class='anglebracket'>></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'>&</span><span class='operator'>&</span>
|
|
<a class='index' id='conceptref:InvokeResultOf______'></a><i >InvokeResultOf</i><span class='anglebracket'><</span>quantity_spec, std<span class='operator'>::</span>modulus<span class='anglebracket'><</span><span class='anglebracket'>></span>, Rep, <span class='keyword'>const</span> Value<span class='operator'>&</span><span class='anglebracket'>></span>
|
|
<span class='keyword'>friend</span> <span class='keyword'>constexpr</span> <a href='#concept:Quantity' title='5.6.3 Class template quantity [qty.syn]'><span id='conceptref:Quantity_______________'><span class='tcode_in_codeblock'>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'>&</span> lhs, <span class='keyword'>const</span> Q<span class='operator'>&</span> rhs<span class='parenthesis'>)</span>;
|
|
|
|
<span class='keyword'>template</span><span class='anglebracket'><</span>std<span class='operator'>::</span>derived_from<span class='anglebracket'><</span>quantity<span class='anglebracket'>></span> Q, <span class='keyword'>auto</span> R2, <span class='keyword'>typename</span> Rep2<span class='anglebracket'>></span>
|
|
<span class='keyword'>requires</span> <a class='index' id='conceptref:InvocableQuantities_'></a><i >InvocableQuantities</i><span class='anglebracket'><</span>std<span class='operator'>::</span>multiplies<span class='anglebracket'><</span><span class='anglebracket'>></span>, quantity, quantity<span class='anglebracket'><</span>R2, Rep2<span class='anglebracket'>></span><span class='anglebracket'>></span>
|
|
<span class='keyword'>friend</span> <span class='keyword'>constexpr</span> <a href='#concept:Quantity' title='5.6.3 Class template quantity [qty.syn]'><span id='conceptref:Quantity________________'><span class='tcode_in_codeblock'>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'>&</span> lhs, <span class='keyword'>const</span> quantity<span class='anglebracket'><</span>R2, Rep2<span class='anglebracket'>></span><span class='operator'>&</span> rhs<span class='parenthesis'>)</span>;
|
|
<span class='keyword'>template</span><span class='anglebracket'><</span>std<span class='operator'>::</span>derived_from<span class='anglebracket'><</span>quantity<span class='anglebracket'>></span> Q, <span class='keyword'>auto</span> R2, <span class='keyword'>typename</span> Rep2<span class='anglebracket'>></span>
|
|
<span class='keyword'>requires</span> <a class='index' id='conceptref:InvocableQuantities__'></a><i >InvocableQuantities</i><span class='anglebracket'><</span>std<span class='operator'>::</span>divides<span class='anglebracket'><</span><span class='anglebracket'>></span>, quantity, quantity<span class='anglebracket'><</span>R2, Rep2<span class='anglebracket'>></span><span class='anglebracket'>></span>
|
|
<span class='keyword'>friend</span> <span class='keyword'>constexpr</span> <a href='#concept:Quantity' title='5.6.3 Class template quantity [qty.syn]'><span id='conceptref:Quantity_________________'><span class='tcode_in_codeblock'>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'>&</span> lhs, <span class='keyword'>const</span> quantity<span class='anglebracket'><</span>R2, Rep2<span class='anglebracket'>></span><span class='operator'>&</span> rhs<span class='parenthesis'>)</span>;
|
|
|
|
<span class='keyword'>template</span><span class='anglebracket'><</span>std<span class='operator'>::</span>derived_from<span class='anglebracket'><</span>quantity<span class='anglebracket'>></span> Q, <span class='keyword'>typename</span> Value<span class='anglebracket'>></span>
|
|
<span class='keyword'>requires</span><span class='parenthesis'>(</span><span class='operator'>!</span><a href='#concept:Quantity' title='5.6.3 Class template quantity [qty.syn]'><span id='conceptref:Quantity__________________'><span class='tcode_in_codeblock'>Quantity</span></span></a><span class='anglebracket'><</span>Value<span class='anglebracket'>></span><span class='parenthesis'>)</span> <span class='operator'>&</span><span class='operator'>&</span> <span class='parenthesis'>(</span><span class='operator'>!</span><a href='qty.ref.concepts.html#concept:Reference' title='5.4.5 Concepts [qty.ref.concepts]'><span id='conceptref:Reference____'><span class='tcode_in_codeblock'>Reference</span></span></a><span class='anglebracket'><</span>Value<span class='anglebracket'>></span><span class='parenthesis'>)</span> <span class='operator'>&</span><span class='operator'>&</span>
|
|
<a class='index' id='conceptref:InvokeResultOf_______'></a><i >InvokeResultOf</i><span class='anglebracket'><</span>quantity_spec, std<span class='operator'>::</span>multiplies<span class='anglebracket'><</span><span class='anglebracket'>></span>, Rep, <span class='keyword'>const</span> Value<span class='operator'>&</span><span class='anglebracket'>></span>
|
|
<span class='keyword'>friend</span> <span class='keyword'>constexpr</span> <a href='#concept:QuantityOf' title='5.6.3 Class template quantity [qty.syn]'><span id='conceptref:QuantityOf____________'><span class='tcode_in_codeblock'>QuantityOf</span></span></a><span class='anglebracket'><</span>quantity_spec<span class='anglebracket'>></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'>&</span> lhs, <span class='keyword'>const</span> Value<span class='operator'>&</span> rhs<span class='parenthesis'>)</span>;
|
|
<span class='keyword'>template</span><span class='anglebracket'><</span>std<span class='operator'>::</span>derived_from<span class='anglebracket'><</span>quantity<span class='anglebracket'>></span> Q, <span class='keyword'>typename</span> Value<span class='anglebracket'>></span>
|
|
<span class='keyword'>requires</span><span class='parenthesis'>(</span><span class='operator'>!</span><a href='#concept:Quantity' title='5.6.3 Class template quantity [qty.syn]'><span id='conceptref:Quantity___________________'><span class='tcode_in_codeblock'>Quantity</span></span></a><span class='anglebracket'><</span>Value<span class='anglebracket'>></span><span class='parenthesis'>)</span> <span class='operator'>&</span><span class='operator'>&</span> <span class='parenthesis'>(</span><span class='operator'>!</span><a href='qty.ref.concepts.html#concept:Reference' title='5.4.5 Concepts [qty.ref.concepts]'><span id='conceptref:Reference_____'><span class='tcode_in_codeblock'>Reference</span></span></a><span class='anglebracket'><</span>Value<span class='anglebracket'>></span><span class='parenthesis'>)</span> <span class='operator'>&</span><span class='operator'>&</span>
|
|
<a class='index' id='conceptref:InvokeResultOf________'></a><i >InvokeResultOf</i><span class='anglebracket'><</span>quantity_spec, std<span class='operator'>::</span>divides<span class='anglebracket'><</span><span class='anglebracket'>></span>, Rep, <span class='keyword'>const</span> Value<span class='operator'>&</span><span class='anglebracket'>></span>
|
|
<span class='keyword'>friend</span> <span class='keyword'>constexpr</span> <a href='#concept:QuantityOf' title='5.6.3 Class template quantity [qty.syn]'><span id='conceptref:QuantityOf_____________'><span class='tcode_in_codeblock'>QuantityOf</span></span></a><span class='anglebracket'><</span>quantity_spec<span class='anglebracket'>></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'>&</span> lhs, <span class='keyword'>const</span> Value<span class='operator'>&</span> rhs<span class='parenthesis'>)</span>;
|
|
|
|
<span class='keyword'>template</span><span class='anglebracket'><</span><span class='keyword'>typename</span> Value, std<span class='operator'>::</span>derived_from<span class='anglebracket'><</span>quantity<span class='anglebracket'>></span> Q<span class='anglebracket'>></span>
|
|
<span class='keyword'>requires</span><span class='parenthesis'>(</span><span class='operator'>!</span><a href='#concept:Quantity' title='5.6.3 Class template quantity [qty.syn]'><span id='conceptref:Quantity____________________'><span class='tcode_in_codeblock'>Quantity</span></span></a><span class='anglebracket'><</span>Value<span class='anglebracket'>></span><span class='parenthesis'>)</span> <span class='operator'>&</span><span class='operator'>&</span> <span class='parenthesis'>(</span><span class='operator'>!</span><a href='qty.ref.concepts.html#concept:Reference' title='5.4.5 Concepts [qty.ref.concepts]'><span id='conceptref:Reference______'><span class='tcode_in_codeblock'>Reference</span></span></a><span class='anglebracket'><</span>Value<span class='anglebracket'>></span><span class='parenthesis'>)</span> <span class='operator'>&</span><span class='operator'>&</span>
|
|
<a class='index' id='conceptref:InvokeResultOf_________'></a><i >InvokeResultOf</i><span class='anglebracket'><</span>quantity_spec, std<span class='operator'>::</span>multiplies<span class='anglebracket'><</span><span class='anglebracket'>></span>, <span class='keyword'>const</span> Value<span class='operator'>&</span>, Rep<span class='anglebracket'>></span>
|
|
<span class='keyword'>friend</span> <span class='keyword'>constexpr</span> <a href='#concept:QuantityOf' title='5.6.3 Class template quantity [qty.syn]'><span id='conceptref:QuantityOf______________'><span class='tcode_in_codeblock'>QuantityOf</span></span></a><span class='anglebracket'><</span>quantity_spec<span class='anglebracket'>></span> <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'>&</span> lhs, <span class='keyword'>const</span> Q<span class='operator'>&</span> rhs<span class='parenthesis'>)</span>;
|
|
<span class='keyword'>template</span><span class='anglebracket'><</span><span class='keyword'>typename</span> Value, std<span class='operator'>::</span>derived_from<span class='anglebracket'><</span>quantity<span class='anglebracket'>></span> Q<span class='anglebracket'>></span>
|
|
<span class='keyword'>requires</span><span class='parenthesis'>(</span><span class='operator'>!</span><a href='#concept:Quantity' title='5.6.3 Class template quantity [qty.syn]'><span id='conceptref:Quantity_____________________'><span class='tcode_in_codeblock'>Quantity</span></span></a><span class='anglebracket'><</span>Value<span class='anglebracket'>></span><span class='parenthesis'>)</span> <span class='operator'>&</span><span class='operator'>&</span> <span class='parenthesis'>(</span><span class='operator'>!</span><a href='qty.ref.concepts.html#concept:Reference' title='5.4.5 Concepts [qty.ref.concepts]'><span id='conceptref:Reference_______'><span class='tcode_in_codeblock'>Reference</span></span></a><span class='anglebracket'><</span>Value<span class='anglebracket'>></span><span class='parenthesis'>)</span> <span class='operator'>&</span><span class='operator'>&</span>
|
|
<a class='index' id='conceptref:InvokeResultOf__________'></a><i >InvokeResultOf</i><span class='anglebracket'><</span>quantity_spec, std<span class='operator'>::</span>divides<span class='anglebracket'><</span><span class='anglebracket'>></span>, <span class='keyword'>const</span> Value<span class='operator'>&</span>, Rep<span class='anglebracket'>></span>
|
|
<span class='keyword'>friend</span> <span class='keyword'>constexpr</span> <a href='#concept:Quantity' title='5.6.3 Class template quantity [qty.syn]'><span id='conceptref:Quantity______________________'><span class='tcode_in_codeblock'>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'>&</span>, <span class='keyword'>const</span> Q<span class='operator'>&</span><span class='parenthesis'>)</span>;
|
|
|
|
<span class='comment'>// <a href='qty.cmp.html' title='5.6.12 Comparison'>[qty.<span class='shy'></span>cmp]</a>, comparison</span>
|
|
|
|
<span class='keyword'>template</span><span class='anglebracket'><</span>std<span class='operator'>::</span>derived_from<span class='anglebracket'><</span>quantity<span class='anglebracket'>></span> Q, <span class='keyword'>auto</span> R2, <span class='keyword'>typename</span> Rep2<span class='anglebracket'>></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'>&</span> lhs, <span class='keyword'>const</span> quantity<span class='anglebracket'><</span>R2, Rep2<span class='anglebracket'>></span><span class='operator'>&</span> rhs<span class='parenthesis'>)</span>;
|
|
<span class='keyword'>template</span><span class='anglebracket'><</span>std<span class='operator'>::</span>derived_from<span class='anglebracket'><</span>quantity<span class='anglebracket'>></span> Q, <span class='keyword'>auto</span> R2, <span class='keyword'>typename</span> Rep2<span class='anglebracket'>></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'><</span><span class='operator'>=</span><span class='anglebracket'>></span><span class='parenthesis'>(</span><span class='keyword'>const</span> Q<span class='operator'>&</span> lhs, <span class='keyword'>const</span> quantity<span class='anglebracket'><</span>R2, Rep2<span class='anglebracket'>></span><span class='operator'>&</span> rhs<span class='parenthesis'>)</span>;
|
|
|
|
<span class='keyword'>template</span><span class='anglebracket'><</span>std<span class='operator'>::</span>derived_from<span class='anglebracket'><</span>quantity<span class='anglebracket'>></span> Q, <a href='qty.rep.concepts.html#concept:Representation' title='5.5.4 Concepts [qty.rep.concepts]'><span id='conceptref:Representation________'><span class='tcode_in_codeblock'>Representation</span></span></a> Value<span class='anglebracket'>></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'>&</span> lhs, <span class='keyword'>const</span> Value<span class='operator'>&</span> rhs<span class='parenthesis'>)</span>;
|
|
<span class='keyword'>template</span><span class='anglebracket'><</span>std<span class='operator'>::</span>derived_from<span class='anglebracket'><</span>quantity<span class='anglebracket'>></span> Q, <a href='qty.rep.concepts.html#concept:Representation' title='5.5.4 Concepts [qty.rep.concepts]'><span id='conceptref:Representation_________'><span class='tcode_in_codeblock'>Representation</span></span></a> Value<span class='anglebracket'>></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'><</span><span class='operator'>=</span><span class='anglebracket'>></span><span class='parenthesis'>(</span><span class='keyword'>const</span> Q<span class='operator'>&</span> lhs, <span class='keyword'>const</span> Value<span class='operator'>&</span> rhs<span class='parenthesis'>)</span>;
|
|
|
|
<span class='comment'>// <a href='qty.val.cmp.html' title='5.6.13 Value comparison'>[qty.<span class='shy'></span>val.<span class='shy'></span>cmp]</a>, value comparison</span>
|
|
<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'>&</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'>&</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_lt_zero<span class='parenthesis'>(</span><span class='keyword'>const</span> quantity<span class='operator'>&</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_gt_zero<span class='parenthesis'>(</span><span class='keyword'>const</span> quantity<span class='operator'>&</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'>&</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'>&</span> q<span class='parenthesis'>)</span> <span class='keyword'>requires</span> <i ><span class='texttt'>see below</span></i>;
|
|
<span class='curlybracket'>}</span>;
|
|
|
|
<span class='keyword'>template</span><span class='anglebracket'><</span><a href='qty.rep.concepts.html#concept:Representation' title='5.5.4 Concepts [qty.rep.concepts]'><span id='conceptref:Representation__________'><span class='tcode_in_codeblock'>Representation</span></span></a> Value, <a href='qty.ref.concepts.html#concept:Reference' title='5.4.5 Concepts [qty.ref.concepts]'><span id='conceptref:Reference________'><span class='tcode_in_codeblock'>Reference</span></span></a> R<span class='anglebracket'>></span>
|
|
quantity<span class='parenthesis'>(</span>Value, R<span class='parenthesis'>)</span> <span class='operator'>-</span><span class='anglebracket'>></span> quantity<span class='anglebracket'><</span>R<span class='curlybracket'>{</span><span class='curlybracket'>}</span>, Value<span class='anglebracket'>></span>;
|
|
|
|
<span class='keyword'>template</span><span class='anglebracket'><</span><a href='qty.rep.concepts.html#concept:Representation' title='5.5.4 Concepts [qty.rep.concepts]'><span id='conceptref:Representation___________'><span class='tcode_in_codeblock'>Representation</span></span></a> Value<span class='anglebracket'>></span>
|
|
quantity<span class='parenthesis'>(</span>Value<span class='parenthesis'>)</span> <span class='operator'>-</span><span class='anglebracket'>></span> quantity<span class='anglebracket'><</span>one, Value<span class='anglebracket'>></span>;
|
|
|
|
<span class='keyword'>template</span><span class='anglebracket'><</span><a href='qty.like.html#concept:QuantityLike' title='5.6.2 Interoperability [qty.like]'><span id='conceptref:QuantityLike__'><span class='tcode_in_codeblock'>QuantityLike</span></span></a> Q<span class='anglebracket'>></span>
|
|
<span class='keyword'>explicit</span><span class='parenthesis'>(</span>quantity_like_traits<span class='anglebracket'><</span>Q<span class='anglebracket'>></span><span class='operator'>::</span>explicit_import<span class='parenthesis'>)</span> quantity<span class='parenthesis'>(</span>Q<span class='parenthesis'>)</span>
|
|
<span class='operator'>-</span><span class='anglebracket'>></span> quantity<span class='anglebracket'><</span>quantity_like_traits<span class='anglebracket'><</span>Q<span class='anglebracket'>></span><span class='operator'>::</span>reference, <span class='keyword'>typename</span> quantity_like_traits<span class='anglebracket'><</span>Q<span class='anglebracket'>></span><span class='operator'>::</span>rep<span class='anglebracket'>></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-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L4466'>#</a></div><div class='texpara'><div id='1.sentence-1' class='sentence'><span class='texttt'>quantity<span class='anglebracket'><</span>R, Rep<span class='anglebracket'>></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> |