forked from mpusz/mp-units
199 lines
51 KiB
HTML
199 lines
51 KiB
HTML
<!DOCTYPE html><html lang='en'><head><title>[qty.pt.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.7</a> Quantity point <a class='abbr_ref' href='qty.pt.html#syn'>[qty.pt]</a></h2><h3 ><a class='secnum' style='min-width:80pt'>5.7.4</a> Class template <span class='texttt'>quantity_<span class='shy'></span>point</span> <a class='abbr_ref'>[qty.pt.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:QuantityPoint' title='5.7.4 Class template quantity_­point [qty.pt.syn]'><span id='concept:QuantityPoint'><span id='lib:QuantityPoint'><span class='tcode_in_codeblock'>QuantityPoint</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_point<span class='anglebracket'>></span><span class='parenthesis'>(</span><span class='parenthesis'>)</span><span class='parenthesis'>)</span>;
|
|
|
|
<span class='keyword'>template</span><span class='anglebracket'><</span><span class='keyword'>typename</span> QP, <span class='keyword'>auto</span> V<span class='anglebracket'>></span>
|
|
<span class='keyword'>concept</span> <a class='hidden_link' href='#concept:QuantityPointOf' title='5.7.4 Class template quantity_­point [qty.pt.syn]'><span id='concept:QuantityPointOf'><span id='lib:QuantityPointOf'><span class='tcode_in_codeblock'>QuantityPointOf</span></span></span></a> <span class='operator'>=</span>
|
|
<a href='#concept:QuantityPoint' title='5.7.4 Class template quantity_­point [qty.pt.syn]'><span id='conceptref:QuantityPoint'><span class='tcode_in_codeblock'>QuantityPoint</span></span></a><span class='anglebracket'><</span>QP<span class='anglebracket'>></span> <span class='operator'>&</span><span class='operator'>&</span> <span class='parenthesis'>(</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>QP<span class='operator'>::</span>quantity_spec<span class='parenthesis'>)</span><span class='parenthesis'>)</span>, V<span class='anglebracket'>></span> <span class='operator'>|</span><span class='operator'>|</span>
|
|
<a class='index' id='conceptref:SameAbsolutePointOriginAs'></a><i >SameAbsolutePointOriginAs</i><span class='anglebracket'><</span><span class='keyword'>decltype</span><span class='parenthesis'>(</span><span class='keyword'>auto</span><span class='parenthesis'>(</span>QP<span class='operator'>::</span>absolute_point_origin<span class='parenthesis'>)</span><span class='parenthesis'>)</span>, V<span class='anglebracket'>></span><span class='parenthesis'>)</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.pt.orig.concepts.html#concept:PointOriginFor' title='5.7.2.2 Concepts [qty.pt.orig.concepts]'><span id='conceptref:PointOriginFor'><span class='tcode_in_codeblock'>PointOriginFor</span></span></a><span class='anglebracket'><</span>get_quantity_spec<span class='parenthesis'>(</span>R<span class='parenthesis'>)</span><span class='anglebracket'>></span> <span class='keyword'>auto</span> PO <span class='operator'>=</span> default_point_origin<span class='parenthesis'>(</span>R<span class='parenthesis'>)</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>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_point'><a class='hidden_link' href='#lib:quantity_point' title='5.7.4 Class template quantity_­point [qty.pt.syn]'>quantity_point</a></span> <span class='curlybracket'>{</span>
|
|
<span class='keyword'>public</span><span class='operator'>:</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'>static</span> <span class='keyword'>constexpr</span> <a href='qty.pt.orig.concepts.html#concept:PointOrigin' title='5.7.2.2 Concepts [qty.pt.orig.concepts]'><span id='conceptref:PointOrigin'><span class='tcode_in_codeblock'>PointOrigin</span></span></a> <span class='keyword'>auto</span> absolute_point_origin <span class='operator'>=</span> <i ><span class='texttt'>see below</span></i>;
|
|
<span class='keyword'>static</span> <span class='keyword'>constexpr</span> <a href='qty.pt.orig.concepts.html#concept:PointOrigin' title='5.7.2.2 Concepts [qty.pt.orig.concepts]'><span id='conceptref:PointOrigin_'><span class='tcode_in_codeblock'>PointOrigin</span></span></a> <span class='keyword'>auto</span> point_origin <span class='operator'>=</span> PO;
|
|
<span class='keyword'>using</span> rep <span class='operator'>=</span> Rep;
|
|
<span class='keyword'>using</span> quantity_type <span class='operator'>=</span> quantity<span class='anglebracket'><</span>reference, Rep<span class='anglebracket'>></span>;
|
|
|
|
quantity_type <i >quantity-from-origin</i>; <span class='comment'>// <i >exposition only</i></span>
|
|
|
|
<span class='comment'>// <a href='qty.pt.static.html' title='5.7.5 Static member functions'>[qty.<span class='shy'></span>pt.<span class='shy'></span>static]</a>, static member functions</span>
|
|
<span class='keyword'>static</span> <span class='keyword'>constexpr</span> quantity_point 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_point max<span class='parenthesis'>(</span><span class='parenthesis'>)</span> <span class='keyword'>noexcept</span>
|
|
<span class='keyword'>requires</span> <i ><span class='texttt'>see below</span></i>;
|
|
|
|
<span class='comment'>// <a href='qty.pt.cons.html' title='5.7.6 Constructors'>[qty.<span class='shy'></span>pt.<span class='shy'></span>cons]</a>, constructors and assignment</span>
|
|
|
|
quantity_point<span class='parenthesis'>(</span><span class='parenthesis'>)</span> <span class='operator'>=</span> <span class='keyword'>default</span>;
|
|
quantity_point<span class='parenthesis'>(</span><span class='keyword'>const</span> quantity_point<span class='operator'>&</span><span class='parenthesis'>)</span> <span class='operator'>=</span> <span class='keyword'>default</span>;
|
|
quantity_point<span class='parenthesis'>(</span>quantity_point<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_point<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> FwdQ, <a href='qty.syn.html#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> Q <span class='operator'>=</span> std<span class='operator'>::</span>remove_cvref_t<span class='anglebracket'><</span>FwdQ<span class='anglebracket'>></span><span class='anglebracket'>></span>
|
|
<span class='keyword'>requires</span> std<span class='operator'>::</span>constructible_from<span class='anglebracket'><</span>quantity_type, FwdQ<span class='anglebracket'>></span> <span class='operator'>&</span><span class='operator'>&</span>
|
|
<span class='parenthesis'>(</span>point_origin <span class='operator'>=</span><span class='operator'>=</span> default_point_origin<span class='parenthesis'>(</span>R<span class='parenthesis'>)</span><span class='parenthesis'>)</span> <span class='operator'>&</span><span class='operator'>&</span>
|
|
<span class='parenthesis'>(</span>implicitly_convertible<span class='parenthesis'>(</span>Q<span class='operator'>::</span>quantity_spec, quantity_spec<span class='parenthesis'>)</span><span class='parenthesis'>)</span>
|
|
<span class='keyword'>constexpr</span> <span class='keyword'>explicit</span> quantity_point<span class='parenthesis'>(</span>FwdQ<span class='operator'>&</span><span class='operator'>&</span> q<span class='parenthesis'>)</span>;
|
|
|
|
<span class='keyword'>template</span><span class='anglebracket'><</span><span class='keyword'>typename</span> FwdQ, <a href='qty.syn.html#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> Q <span class='operator'>=</span> std<span class='operator'>::</span>remove_cvref_t<span class='anglebracket'><</span>FwdQ<span class='anglebracket'>></span><span class='anglebracket'>></span>
|
|
<span class='keyword'>requires</span> std<span class='operator'>::</span>constructible_from<span class='anglebracket'><</span>quantity_type, FwdQ<span class='anglebracket'>></span>
|
|
<span class='keyword'>constexpr</span> quantity_point<span class='parenthesis'>(</span>FwdQ<span class='operator'>&</span><span class='operator'>&</span> q, <span class='keyword'>decltype</span><span class='parenthesis'>(</span>PO<span class='parenthesis'>)</span><span class='parenthesis'>)</span>;
|
|
|
|
<span class='keyword'>template</span><span class='anglebracket'><</span><span class='keyword'>typename</span> FwdQ, <a href='qty.pt.orig.concepts.html#concept:PointOrigin' title='5.7.2.2 Concepts [qty.pt.orig.concepts]'><span id='conceptref:PointOrigin__'><span class='tcode_in_codeblock'>PointOrigin</span></span></a> PO2,
|
|
<a href='qty.syn.html#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>PO2<span class='operator'>::</span><i >quantity-spec</i><span class='anglebracket'>></span> Q <span class='operator'>=</span> std<span class='operator'>::</span>remove_cvref_t<span class='anglebracket'><</span>FwdQ<span class='anglebracket'>></span><span class='anglebracket'>></span>
|
|
<span class='keyword'>requires</span> std<span class='operator'>::</span>constructible_from<span class='anglebracket'><</span>quantity_type, FwdQ<span class='anglebracket'>></span> <span class='operator'>&</span><span class='operator'>&</span> <a class='index' id='conceptref:SameAbsolutePointOriginAs_'></a><i >SameAbsolutePointOriginAs</i><span class='anglebracket'><</span>PO2, PO<span class='anglebracket'>></span>
|
|
<span class='keyword'>constexpr</span> quantity_point<span class='parenthesis'>(</span>FwdQ<span class='operator'>&</span><span class='operator'>&</span> q, PO2<span class='parenthesis'>)</span>;
|
|
|
|
<span class='keyword'>template</span><span class='anglebracket'><</span><a href='#concept:QuantityPointOf' title='5.7.4 Class template quantity_­point [qty.pt.syn]'><span id='conceptref:QuantityPointOf'><span class='tcode_in_codeblock'>QuantityPointOf</span></span></a><span class='anglebracket'><</span>absolute_point_origin<span class='anglebracket'>></span> QP<span class='anglebracket'>></span>
|
|
<span class='keyword'>requires</span> std<span class='operator'>::</span>constructible_from<span class='anglebracket'><</span>quantity_type, <span class='keyword'>typename</span> QP<span class='operator'>::</span>quantity_type<span class='anglebracket'>></span>
|
|
<span class='keyword'>constexpr</span> <span class='keyword'>explicit</span><span class='parenthesis'>(</span><span class='operator'>!</span>std<span class='operator'>::</span>convertible_to<span class='anglebracket'><</span><span class='keyword'>typename</span> QP<span class='operator'>::</span>quantity_type, quantity_type<span class='anglebracket'>></span><span class='parenthesis'>)</span>
|
|
quantity_point<span class='parenthesis'>(</span><span class='keyword'>const</span> QP<span class='operator'>&</span> qp<span class='parenthesis'>)</span>;
|
|
|
|
<span class='keyword'>template</span><span class='anglebracket'><</span><a href='qty.pt.like.html#concept:QuantityPointLike' title='5.7.3 Interoperability [qty.pt.like]'><span id='conceptref:QuantityPointLike'><span class='tcode_in_codeblock'>QuantityPointLike</span></span></a> QP<span class='anglebracket'>></span>
|
|
<span class='keyword'>requires</span> <i ><span class='texttt'>see below</span></i>
|
|
<span class='keyword'>constexpr</span> <span class='keyword'>explicit</span><span class='parenthesis'>(</span><i ><span class='texttt'>see below</span></i><span class='parenthesis'>)</span> quantity_point<span class='parenthesis'>(</span><span class='keyword'>const</span> QP<span class='operator'>&</span> qp<span class='parenthesis'>)</span>;
|
|
|
|
quantity_point<span class='operator'>&</span> <span class='keyword'>operator</span><span class='operator'>=</span><span class='parenthesis'>(</span><span class='keyword'>const</span> quantity_point<span class='operator'>&</span><span class='parenthesis'>)</span> <span class='operator'>=</span> <span class='keyword'>default</span>;
|
|
quantity_point<span class='operator'>&</span> <span class='keyword'>operator</span><span class='operator'>=</span><span class='parenthesis'>(</span>quantity_point<span class='operator'>&</span><span class='operator'>&</span><span class='parenthesis'>)</span> <span class='operator'>=</span> <span class='keyword'>default</span>;
|
|
|
|
<span class='comment'>// <a href='qty.pt.conv.html' title='5.7.7 Conversions'>[qty.<span class='shy'></span>pt.<span class='shy'></span>conv]</a>, conversions</span>
|
|
|
|
<span class='keyword'>template</span><span class='anglebracket'><</span><a class='index' id='conceptref:SameAbsolutePointOriginAs__'></a><i >SameAbsolutePointOriginAs</i><span class='anglebracket'><</span>absolute_point_origin<span class='anglebracket'>></span> NewPO<span class='anglebracket'>></span>
|
|
<span class='keyword'>constexpr</span> <a href='#concept:QuantityPointOf' title='5.7.4 Class template quantity_­point [qty.pt.syn]'><span id='conceptref:QuantityPointOf_'><span class='tcode_in_codeblock'>QuantityPointOf</span></span></a><span class='anglebracket'><</span><span class='parenthesis'>(</span>NewPO<span class='curlybracket'>{</span><span class='curlybracket'>}</span><span class='parenthesis'>)</span><span class='anglebracket'>></span> <span class='keyword'>auto</span> point_for<span class='parenthesis'>(</span>NewPO new_origin<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> <i ><span class='texttt'>see below</span></i>
|
|
<span class='keyword'>constexpr</span> <a href='#concept:QuantityPointOf' title='5.7.4 Class template quantity_­point [qty.pt.syn]'><span id='conceptref:QuantityPointOf__'><span class='tcode_in_codeblock'>QuantityPointOf</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> <i ><span class='texttt'>see below</span></i>
|
|
<span class='keyword'>constexpr</span> <a href='#concept:QuantityPointOf' title='5.7.4 Class template quantity_­point [qty.pt.syn]'><span id='conceptref:QuantityPointOf___'><span class='tcode_in_codeblock'>QuantityPointOf</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> <i ><span class='texttt'>see below</span></i>
|
|
<span class='keyword'>constexpr</span> <a href='#concept:QuantityPointOf' title='5.7.4 Class template quantity_­point [qty.pt.syn]'><span id='conceptref:QuantityPointOf____'><span class='tcode_in_codeblock'>QuantityPointOf</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> <i ><span class='texttt'>see below</span></i>
|
|
<span class='keyword'>constexpr</span> <a href='#concept:QuantityPointOf' title='5.7.4 Class template quantity_­point [qty.pt.syn]'><span id='conceptref:QuantityPointOf_____'><span class='tcode_in_codeblock'>QuantityPointOf</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> <i ><span class='texttt'>see below</span></i>
|
|
<span class='keyword'>constexpr</span> <a href='#concept:QuantityPointOf' title='5.7.4 Class template quantity_­point [qty.pt.syn]'><span id='conceptref:QuantityPointOf______'><span class='tcode_in_codeblock'>QuantityPointOf</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> <i ><span class='texttt'>see below</span></i>
|
|
<span class='keyword'>constexpr</span> <a href='#concept:QuantityPointOf' title='5.7.4 Class template quantity_­point [qty.pt.syn]'><span id='conceptref:QuantityPointOf_______'><span class='tcode_in_codeblock'>QuantityPointOf</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.pt.obs.html' title='5.7.8 Quantity value observers'>[qty.<span class='shy'></span>pt.<span class='shy'></span>obs]</a>, quantity value observers</span>
|
|
|
|
<span class='keyword'>template</span><span class='anglebracket'><</span><a href='qty.pt.orig.concepts.html#concept:PointOrigin' title='5.7.2.2 Concepts [qty.pt.orig.concepts]'><span id='conceptref:PointOrigin___'><span class='tcode_in_codeblock'>PointOrigin</span></span></a> PO2<span class='anglebracket'>></span>
|
|
<span class='keyword'>requires</span><span class='parenthesis'>(</span>PO2<span class='curlybracket'>{</span><span class='curlybracket'>}</span> <span class='operator'>=</span><span class='operator'>=</span> point_origin<span class='parenthesis'>)</span>
|
|
<span class='keyword'>constexpr</span> quantity_type<span class='operator'>&</span> quantity_ref_from<span class='parenthesis'>(</span>PO2<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.pt.orig.concepts.html#concept:PointOrigin' title='5.7.2.2 Concepts [qty.pt.orig.concepts]'><span id='conceptref:PointOrigin____'><span class='tcode_in_codeblock'>PointOrigin</span></span></a> PO2<span class='anglebracket'>></span>
|
|
<span class='keyword'>requires</span><span class='parenthesis'>(</span>PO2<span class='curlybracket'>{</span><span class='curlybracket'>}</span> <span class='operator'>=</span><span class='operator'>=</span> point_origin<span class='parenthesis'>)</span>
|
|
<span class='keyword'>constexpr</span> <span class='keyword'>const</span> quantity_type<span class='operator'>&</span> quantity_ref_from<span class='parenthesis'>(</span>PO2<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.pt.orig.concepts.html#concept:PointOrigin' title='5.7.2.2 Concepts [qty.pt.orig.concepts]'><span id='conceptref:PointOrigin_____'><span class='tcode_in_codeblock'>PointOrigin</span></span></a> PO2<span class='anglebracket'>></span>
|
|
<span class='keyword'>requires</span><span class='parenthesis'>(</span>PO2<span class='curlybracket'>{</span><span class='curlybracket'>}</span> <span class='operator'>=</span><span class='operator'>=</span> point_origin<span class='parenthesis'>)</span>
|
|
<span class='keyword'>void</span> quantity_ref_from<span class='parenthesis'>(</span>PO2<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 href='qty.pt.orig.concepts.html#concept:PointOrigin' title='5.7.2.2 Concepts [qty.pt.orig.concepts]'><span id='conceptref:PointOrigin______'><span class='tcode_in_codeblock'>PointOrigin</span></span></a> PO2<span class='anglebracket'>></span>
|
|
<span class='keyword'>requires</span> <span class='keyword'>requires</span><span class='parenthesis'>(</span><span class='keyword'>const</span> quantity_point qp<span class='parenthesis'>)</span> <span class='curlybracket'>{</span> qp <span class='operator'>-</span> PO2<span class='curlybracket'>{</span><span class='curlybracket'>}</span>; <span class='curlybracket'>}</span>
|
|
<span class='keyword'>constexpr</span> <a href='qty.syn.html#concept:Quantity' title='5.6.3 Class template quantity [qty.syn]'><span id='conceptref:Quantity'><span class='tcode_in_codeblock'>Quantity</span></span></a> <span class='keyword'>auto</span> quantity_from<span class='parenthesis'>(</span>PO2<span class='parenthesis'>)</span> <span class='keyword'>const</span>;
|
|
|
|
<span class='keyword'>template</span><span class='anglebracket'><</span><a href='#concept:QuantityPointOf' title='5.7.4 Class template quantity_­point [qty.pt.syn]'><span id='conceptref:QuantityPointOf________'><span class='tcode_in_codeblock'>QuantityPointOf</span></span></a><span class='anglebracket'><</span>absolute_point_origin<span class='anglebracket'>></span> QP<span class='anglebracket'>></span>
|
|
<span class='keyword'>constexpr</span> <a href='qty.syn.html#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> quantity_from<span class='parenthesis'>(</span><span class='keyword'>const</span> QP<span class='operator'>&</span><span class='parenthesis'>)</span> <span class='keyword'>const</span>;
|
|
|
|
<span class='keyword'>constexpr</span> <a href='qty.syn.html#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> quantity_from_zero<span class='parenthesis'>(</span><span class='parenthesis'>)</span> <span class='keyword'>const</span>;
|
|
|
|
<span class='comment'>// <a href='qty.pt.conv.ops.html' title='5.7.9 Conversion operations'>[qty.<span class='shy'></span>pt.<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> QP_, <a href='qty.pt.like.html#concept:QuantityPointLike' title='5.7.3 Interoperability [qty.pt.like]'><span id='conceptref:QuantityPointLike_'><span class='tcode_in_codeblock'>QuantityPointLike</span></span></a> QP <span class='operator'>=</span> std<span class='operator'>::</span>remove_cvref_t<span class='anglebracket'><</span>QP_<span class='anglebracket'>></span><span class='anglebracket'>></span>
|
|
<span class='keyword'>requires</span> <i ><span class='texttt'>see below</span></i>
|
|
<span class='keyword'>constexpr</span> <span class='keyword'>explicit</span><span class='parenthesis'>(</span><i ><span class='texttt'>see below</span></i><span class='parenthesis'>)</span> <span class='keyword'>operator</span> QP_<span class='parenthesis'>(</span><span class='parenthesis'>)</span> <span class='keyword'>const</span> <span class='operator'>&</span> <span class='keyword'>noexcept</span><span class='parenthesis'>(</span><i ><span class='texttt'>see below</span></i><span class='parenthesis'>)</span>;
|
|
<span class='keyword'>template</span><span class='anglebracket'><</span><span class='keyword'>typename</span> QP_, <a href='qty.pt.like.html#concept:QuantityPointLike' title='5.7.3 Interoperability [qty.pt.like]'><span id='conceptref:QuantityPointLike__'><span class='tcode_in_codeblock'>QuantityPointLike</span></span></a> QP <span class='operator'>=</span> std<span class='operator'>::</span>remove_cvref_t<span class='anglebracket'><</span>QP_<span class='anglebracket'>></span><span class='anglebracket'>></span>
|
|
<span class='keyword'>requires</span> <i ><span class='texttt'>see below</span></i>
|
|
<span class='keyword'>constexpr</span> <span class='keyword'>explicit</span><span class='parenthesis'>(</span><i ><span class='texttt'>see below</span></i><span class='parenthesis'>)</span> <span class='keyword'>operator</span> QP_<span class='parenthesis'>(</span><span class='parenthesis'>)</span> <span class='operator'>&</span><span class='operator'>&</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.pt.unary.ops.html' title='5.7.10 Unary operations'>[qty.<span class='shy'></span>pt.<span class='shy'></span>unary.<span class='shy'></span>ops]</a>, unary 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_point<span class='anglebracket'>></span> QP<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>QP<span class='operator'>&</span><span class='operator'>&</span> qp<span class='parenthesis'>)</span>
|
|
<span class='keyword'>requires</span> <i ><span class='texttt'>see below</span></i>;
|
|
<span class='keyword'>template</span><span class='anglebracket'><</span><a class='index' id='conceptref:Mutable_'></a><i >Mutable</i><span class='anglebracket'><</span>quantity_point<span class='anglebracket'>></span> QP<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>QP<span class='operator'>&</span><span class='operator'>&</span> qp<span class='parenthesis'>)</span>
|
|
<span class='keyword'>requires</span> <i ><span class='texttt'>see below</span></i>;
|
|
|
|
<span class='keyword'>constexpr</span> quantity_point <span class='keyword'>operator</span><span class='operator'>+</span><span class='operator'>+</span><span class='parenthesis'>(</span><span class='keyword'>int</span><span class='parenthesis'>)</span>
|
|
<span class='keyword'>requires</span> <i ><span class='texttt'>see below</span></i>;
|
|
<span class='keyword'>constexpr</span> quantity_point <span class='keyword'>operator</span><span class='operator'>-</span><span class='operator'>-</span><span class='parenthesis'>(</span><span class='keyword'>int</span><span class='parenthesis'>)</span>
|
|
<span class='keyword'>requires</span> <i ><span class='texttt'>see below</span></i>;
|
|
|
|
<span class='comment'>// <a href='qty.pt.assign.ops.html' title='5.7.11 Compound assignment operations'>[qty.<span class='shy'></span>pt.<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_point<span class='anglebracket'>></span> QP, <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>QP<span class='operator'>&</span><span class='operator'>&</span> qp, <span class='keyword'>const</span> quantity<span class='anglebracket'><</span>R2, Rep2<span class='anglebracket'>></span><span class='operator'>&</span> q<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_point<span class='anglebracket'>></span> QP, <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>QP<span class='operator'>&</span><span class='operator'>&</span> qp, <span class='keyword'>const</span> quantity<span class='anglebracket'><</span>R2, Rep2<span class='anglebracket'>></span><span class='operator'>&</span> q<span class='parenthesis'>)</span>;
|
|
|
|
<span class='comment'>// <a href='qty.pt.arith.ops.html' title='5.7.12 Arithmetic operations'>[qty.<span class='shy'></span>pt.<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_point<span class='anglebracket'>></span> QP, <span class='keyword'>auto</span> R2, <span class='keyword'>typename</span> Rep2<span class='anglebracket'>></span>
|
|
<span class='keyword'>friend</span> <span class='keyword'>constexpr</span> <a href='#concept:QuantityPoint' title='5.7.4 Class template quantity_­point [qty.pt.syn]'><span id='conceptref:QuantityPoint_'><span class='tcode_in_codeblock'>QuantityPoint</span></span></a> <span class='keyword'>auto</span> <span class='keyword'>operator</span><span class='operator'>+</span><span class='parenthesis'>(</span><span class='keyword'>const</span> QP<span class='operator'>&</span> qp, <span class='keyword'>const</span> quantity<span class='anglebracket'><</span>R2, Rep2<span class='anglebracket'>></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>std<span class='operator'>::</span>derived_from<span class='anglebracket'><</span>quantity_point<span class='anglebracket'>></span> QP, <span class='keyword'>auto</span> R2, <span class='keyword'>typename</span> Rep2<span class='anglebracket'>></span>
|
|
<span class='keyword'>friend</span> <span class='keyword'>constexpr</span> <a href='#concept:QuantityPoint' title='5.7.4 Class template quantity_­point [qty.pt.syn]'><span id='conceptref:QuantityPoint__'><span class='tcode_in_codeblock'>QuantityPoint</span></span></a> <span class='keyword'>auto</span> <span class='keyword'>operator</span><span class='operator'>+</span><span class='parenthesis'>(</span><span class='keyword'>const</span> quantity<span class='anglebracket'><</span>R2, Rep2<span class='anglebracket'>></span><span class='operator'>&</span> q, <span class='keyword'>const</span> QP<span class='operator'>&</span> qp<span class='parenthesis'>)</span>
|
|
<span class='keyword'>requires</span> <i ><span class='texttt'>see below</span></i>;
|
|
<span class='keyword'>template</span><span class='anglebracket'><</span>std<span class='operator'>::</span>derived_from<span class='anglebracket'><</span>quantity_point<span class='anglebracket'>></span> QP, <span class='keyword'>auto</span> R2, <span class='keyword'>typename</span> Rep2<span class='anglebracket'>></span>
|
|
<span class='keyword'>friend</span> <span class='keyword'>constexpr</span> <a href='#concept:QuantityPoint' title='5.7.4 Class template quantity_­point [qty.pt.syn]'><span id='conceptref:QuantityPoint___'><span class='tcode_in_codeblock'>QuantityPoint</span></span></a> <span class='keyword'>auto</span> <span class='keyword'>operator</span><span class='operator'>-</span><span class='parenthesis'>(</span><span class='keyword'>const</span> QP<span class='operator'>&</span> qp, <span class='keyword'>const</span> quantity<span class='anglebracket'><</span>R2, Rep2<span class='anglebracket'>></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>std<span class='operator'>::</span>derived_from<span class='anglebracket'><</span>quantity_point<span class='anglebracket'>></span> QP, <a href='#concept:QuantityPointOf' title='5.7.4 Class template quantity_­point [qty.pt.syn]'><span id='conceptref:QuantityPointOf_________'><span class='tcode_in_codeblock'>QuantityPointOf</span></span></a><span class='anglebracket'><</span>absolute_point_origin<span class='anglebracket'>></span> QP2<span class='anglebracket'>></span>
|
|
<span class='keyword'>friend</span> <span class='keyword'>constexpr</span> <a href='qty.syn.html#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> QP<span class='operator'>&</span> lhs, <span class='keyword'>const</span> QP2<span class='operator'>&</span> rhs<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>std<span class='operator'>::</span>derived_from<span class='anglebracket'><</span>quantity_point<span class='anglebracket'>></span> QP, <a href='qty.pt.orig.concepts.html#concept:PointOrigin' title='5.7.2.2 Concepts [qty.pt.orig.concepts]'><span id='conceptref:PointOrigin_______'><span class='tcode_in_codeblock'>PointOrigin</span></span></a> PO2<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> <a href='qty.syn.html#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> QP<span class='operator'>&</span> qp, PO2 po<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_point<span class='anglebracket'>></span> QP, <a href='qty.pt.orig.concepts.html#concept:PointOrigin' title='5.7.2.2 Concepts [qty.pt.orig.concepts]'><span id='conceptref:PointOrigin________'><span class='tcode_in_codeblock'>PointOrigin</span></span></a> PO2<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> <a href='qty.syn.html#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>PO2 po, <span class='keyword'>const</span> QP<span class='operator'>&</span> qp<span class='parenthesis'>)</span>;
|
|
|
|
<span class='comment'>// <a href='qty.pt.cmp.html' title='5.7.13 Comparison'>[qty.<span class='shy'></span>pt.<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_point<span class='anglebracket'>></span> QP, <a href='#concept:QuantityPointOf' title='5.7.4 Class template quantity_­point [qty.pt.syn]'><span id='conceptref:QuantityPointOf__________'><span class='tcode_in_codeblock'>QuantityPointOf</span></span></a><span class='anglebracket'><</span>absolute_point_origin<span class='anglebracket'>></span> QP2<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> QP<span class='operator'>&</span> lhs, <span class='keyword'>const</span> QP2<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_point<span class='anglebracket'>></span> QP, <a href='#concept:QuantityPointOf' title='5.7.4 Class template quantity_­point [qty.pt.syn]'><span id='conceptref:QuantityPointOf___________'><span class='tcode_in_codeblock'>QuantityPointOf</span></span></a><span class='anglebracket'><</span>absolute_point_origin<span class='anglebracket'>></span> QP2<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> QP<span class='operator'>&</span> lhs, <span class='keyword'>const</span> QP2<span class='operator'>&</span> rhs<span class='parenthesis'>)</span>;
|
|
<span class='curlybracket'>}</span>;
|
|
|
|
<span class='keyword'>template</span><span class='anglebracket'><</span><a href='qty.syn.html#concept:Quantity' title='5.6.3 Class template quantity [qty.syn]'><span id='conceptref:Quantity______'><span class='tcode_in_codeblock'>Quantity</span></span></a> Q<span class='anglebracket'>></span>
|
|
<span class='keyword'>explicit</span> quantity_point<span class='parenthesis'>(</span>Q q<span class='parenthesis'>)</span>
|
|
<span class='operator'>-</span><span class='anglebracket'>></span> quantity_point<span class='anglebracket'><</span>Q<span class='operator'>::</span>reference, default_point_origin<span class='parenthesis'>(</span>Q<span class='operator'>::</span>reference<span class='parenthesis'>)</span>, <span class='keyword'>typename</span> Q<span class='operator'>::</span>rep<span class='anglebracket'>></span>;
|
|
|
|
<span class='keyword'>template</span><span class='anglebracket'><</span><a href='qty.syn.html#concept:Quantity' title='5.6.3 Class template quantity [qty.syn]'><span id='conceptref:Quantity_______'><span class='tcode_in_codeblock'>Quantity</span></span></a> Q, <a href='qty.pt.orig.concepts.html#concept:PointOriginFor' title='5.7.2.2 Concepts [qty.pt.orig.concepts]'><span id='conceptref:PointOriginFor_'><span class='tcode_in_codeblock'>PointOriginFor</span></span></a><span class='anglebracket'><</span>Q<span class='operator'>::</span>quantity_spec<span class='anglebracket'>></span> PO<span class='anglebracket'>></span>
|
|
quantity_point<span class='parenthesis'>(</span>Q, PO<span class='parenthesis'>)</span> <span class='operator'>-</span><span class='anglebracket'>></span> quantity_point<span class='anglebracket'><</span>Q<span class='operator'>::</span>reference, PO<span class='curlybracket'>{</span><span class='curlybracket'>}</span>, <span class='keyword'>typename</span> Q<span class='operator'>::</span>rep<span class='anglebracket'>></span>;
|
|
|
|
<span class='keyword'>template</span><span class='anglebracket'><</span><a href='qty.pt.like.html#concept:QuantityPointLike' title='5.7.3 Interoperability [qty.pt.like]'><span id='conceptref:QuantityPointLike___'><span class='tcode_in_codeblock'>QuantityPointLike</span></span></a> QP, <span class='keyword'>typename</span> Traits <span class='operator'>=</span> quantity_point_like_traits<span class='anglebracket'><</span>QP<span class='anglebracket'>></span><span class='anglebracket'>></span>
|
|
<span class='keyword'>explicit</span><span class='parenthesis'>(</span>quantity_point_like_traits<span class='anglebracket'><</span>QP<span class='anglebracket'>></span><span class='operator'>::</span>explicit_import<span class='parenthesis'>)</span> quantity_point<span class='parenthesis'>(</span>QP<span class='parenthesis'>)</span>
|
|
<span class='operator'>-</span><span class='anglebracket'>></span> quantity_point<span class='anglebracket'><</span>Traits<span class='operator'>::</span>reference, Traits<span class='operator'>::</span>point_origin, <span class='keyword'>typename</span> Traits<span class='operator'>::</span>rep<span class='anglebracket'>></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#L5928'>#</a></div><div class='texpara'><div id='1.sentence-1' class='sentence'><span class='texttt'>quantity_<span class='shy'></span>point<span class='anglebracket'><</span>R, PO, 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 class='para' id='2'><div class='marginalizedparent'><a class='marginalized' href='#2'>2</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L5932'>#</a></div><div class='texpara'><div id='2.sentence-1' class='sentence'>The member <span class='texttt'>absolute_<span class='shy'></span>point_<span class='shy'></span>origin</span> is equal to <span class='texttt'>PO</span> if
|
|
<span class='codeblock'><i >is-derived-from-specialization-of</i><span class='anglebracket'><</span><span class='keyword'>decltype</span><span class='parenthesis'>(</span>PO<span class='parenthesis'>)</span>, absolute_point_origin<span class='anglebracket'>></span><span class='parenthesis'>(</span><span class='parenthesis'>)</span>
|
|
</span>
|
|
is <span class='texttt'><span class='literal'>true</span></span>, and
|
|
to <span class='texttt'>PO<span class='operator'>.</span><span class='texttt'><i >quantity-point</i></span><span class='operator'>.</span>absolute_<span class='shy'></span>point_<span class='shy'></span>origin</span> otherwise<a class='hidden_link' href='#2.sentence-1'>.</a></div></div></div></div></body></html> |