2024-12-08 08:57:12 +00:00
<!DOCTYPE html> < html lang = 'en' >< head >< title > [qty.conv]</ title >< meta charset = 'UTF-8' />< link rel = 'stylesheet' type = 'text/css' href = '14882.css' />< link rel = 'stylesheet' type = 'text/css' href = 'https://fonts.googleapis.com/css2?family=Noto+Serif' />< link rel = 'stylesheet' type = 'text/css' href = 'https://fonts.googleapis.com/css2?family=Noto+Sans' />< link rel = 'stylesheet' type = 'text/css' href = 'https://fonts.googleapis.com/css2?family=Noto+Sans+Mono' />< link rel = 'icon' href = 'icon.png' />< link rel = 'stylesheet' type = 'text/css' href = 'expanded.css' title = 'Normal' />< link rel = 'alternate stylesheet' type = 'text/css' href = 'colored.css' title = 'Notes and examples colored' />< link rel = 'alternate stylesheet' type = 'text/css' href = 'normative-only.css' title = 'Notes and examples hidden' /></ head >< body >< div class = 'wrapper' >< h1 >< a class = 'secnum' style = 'min-width:50pt' > 5</ a > Quantities and units library < a class = 'abbr_ref' href = 'index.html#quantities' > [quantities]</ a ></ h1 >< h2 >< a class = 'secnum' style = 'min-width:65pt' > 5.6</ a > Quantity < a class = 'abbr_ref' href = 'qty.html#conv' > [qty]</ a ></ h2 >< h3 >< a class = 'secnum' style = 'min-width:80pt' > 5.6.6</ a > Conversions < a class = 'abbr_ref' > [qty.conv]</ a ></ h3 >< div class = 'texpara' >< div id = 'lib:quantity,in' >< div id = 'lib:in,quantity' >< div class = 'itemdecl' >< div class = 'marginalizedparent' >< a class = 'itemDeclLink' href = '#lib:in,quantity' > 🔗</ a ></ div >< code class = 'itemdeclcode' >< span class = 'keyword' > template</ span >< span class = 'anglebracket' > < </ span >< a class = 'index' id = 'conceptref:UnitCompatibleWith' ></ a >< span class = 'texttt' >< i > UnitCompatibleWith</ i ></ span >< 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 >< span class = 'texttt' >< i > QuantityConvertibleTo</ i ></ span >< span class = 'anglebracket' > < </ span > quantity, quantity< span class = 'anglebracket' > < </ span >< span class = 'texttt' >< i > make-reference</ i ></ span >< span class = 'parenthesis' > (</ span > quantity_spec, ToU< span class = 'curlybracket' > {</ span >< span class = 'curlybracket' > }</ span >< span class = 'parenthesis' > )</ span > , Rep< span class = 'anglebracket' > > </ span >< span class = 'anglebracket' > > </ span >
< span class = 'keyword' > constexpr</ span > < a href = 'qty.syn.html#concept:QuantityOf' title = '5.6.3 Class template quantity [qty.syn]' >< span id = 'conceptref:QuantityOf' >< span class = 'texttt' > 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 > ;
2025-02-11 20:35:14 +00:00
</ code ></ div ></ div ></ div ></ div >< div class = 'para' id = '1' >< div class = 'marginalizedparent' >< a class = 'marginalized' href = '#1' > 1</ a ></ div >< div class = 'itemdescr' >< div class = 'sourceLinkParent' >< a class = 'sourceLink' href = 'https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L4601' > #</ a ></ div >< div class = 'texpara' >< div id = '1.sentence-1' class = 'sentence' >< i > Effects</ i > : Equivalent to:
2024-12-08 08:57:12 +00:00
< span class = 'texttt' >< span class = 'keyword' > return</ span > quantity< span class = 'anglebracket' > < </ span >< span class = 'texttt' >< i > make-reference</ i ></ span >< span class = 'parenthesis' > (</ span > quantity_< span class = 'shy' ></ span > spec, ToU< span class = 'curlybracket' > {</ span >< span class = 'curlybracket' > }</ span >< span class = 'parenthesis' > )</ span > , Rep< span class = 'anglebracket' > > </ span >< span class = 'curlybracket' > {</ span >< span class = 'operator' > *</ span >< span class = 'keyword' > this</ span >< span class = 'curlybracket' > }</ span > ;</ span ></ div ></ div ></ div ></ div >< div class = 'texpara' >< div id = 'lib:quantity,in_' >< div id = 'lib:in,quantity_' >< div class = 'itemdecl' >< div class = 'marginalizedparent' >< a class = 'itemDeclLink' href = '#lib:in,quantity_' > 🔗</ a ></ div >< code class = 'itemdeclcode' >< span class = 'keyword' > template</ span >< span class = 'anglebracket' > < </ span >< a href = 'qty.rep.concepts.html#concept:RepresentationOf' title = '5.5.4 Concepts [qty.rep.concepts]' >< span id = 'conceptref:RepresentationOf' >< span class = 'texttt' > 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 >< span class = 'texttt' >< i > QuantityConvertibleTo</ i ></ span >< 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 = 'qty.syn.html#concept:QuantityOf' title = '5.6.3 Class template quantity [qty.syn]' >< span id = 'conceptref:QuantityOf_' >< span class = 'texttt' > 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 > ;
2025-02-11 20:35:14 +00:00
</ code ></ div ></ div ></ div ></ div >< div class = 'para' id = '2' >< div class = 'marginalizedparent' >< a class = 'marginalized' href = '#2' > 2</ a ></ div >< div class = 'itemdescr' >< div class = 'sourceLinkParent' >< a class = 'sourceLink' href = 'https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L4615' > #</ a ></ div >< div class = 'texpara' >< div id = '2.sentence-1' class = 'sentence' >< i > Effects</ i > : Equivalent to:
2024-12-08 08:57:12 +00:00
< span class = 'texttt' >< span class = 'keyword' > return</ span > quantity< span class = 'anglebracket' > < </ span > reference, ToRep< span class = 'anglebracket' > > </ span >< span class = 'curlybracket' > {</ span >< span class = 'operator' > *</ span >< span class = 'keyword' > this</ span >< span class = 'curlybracket' > }</ span > ;</ span ></ div ></ div ></ div ></ div >< div class = 'texpara' >< div id = 'lib:quantity,in__' >< div id = 'lib:in,quantity__' >< div class = 'itemdecl' >< div class = 'marginalizedparent' >< a class = 'itemDeclLink' href = '#lib:in,quantity__' > 🔗</ a ></ div >< code class = 'itemdeclcode' >< span class = 'keyword' > template</ span >< span class = 'anglebracket' > < </ span >< a href = 'qty.rep.concepts.html#concept:RepresentationOf' title = '5.5.4 Concepts [qty.rep.concepts]' >< span id = 'conceptref:RepresentationOf_' >< span class = 'texttt' > RepresentationOf</ span ></ span ></ a >< span class = 'anglebracket' > < </ span > quantity_spec< span class = 'anglebracket' > > </ span > ToRep,
< a class = 'index' id = 'conceptref:UnitCompatibleWith_' ></ a >< span class = 'texttt' >< i > UnitCompatibleWith</ i ></ span >< 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 >< span class = 'texttt' >< i > QuantityConvertibleTo</ i ></ span >< span class = 'anglebracket' > < </ span > quantity,
quantity< span class = 'anglebracket' > < </ span >< span class = 'texttt' >< i > make-reference</ i ></ span >< span class = 'parenthesis' > (</ span > quantity_spec, ToU< span class = 'curlybracket' > {</ span >< span class = 'curlybracket' > }</ span >< span class = 'parenthesis' > )</ span > , ToRep< span class = 'anglebracket' > > </ span >< span class = 'anglebracket' > > </ span >
< span class = 'keyword' > constexpr</ span > < a href = 'qty.syn.html#concept:QuantityOf' title = '5.6.3 Class template quantity [qty.syn]' >< span id = 'conceptref:QuantityOf__' >< span class = 'texttt' > 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 > ;
2025-02-11 20:35:14 +00:00
</ code ></ div ></ div ></ div ></ div >< div class = 'para' id = '3' >< div class = 'marginalizedparent' >< a class = 'marginalized' href = '#3' > 3</ a ></ div >< div class = 'itemdescr' >< div class = 'sourceLinkParent' >< a class = 'sourceLink' href = 'https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L4631' > #</ a ></ div >< div class = 'texpara' >< div id = '3.sentence-1' class = 'sentence' >< i > Effects</ i > : Equivalent to:
2024-12-08 08:57:12 +00:00
< span class = 'codeblock' >< span class = 'keyword' > return</ span > 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 = 'curlybracket' > {</ span >< span class = 'operator' > *</ span >< span class = 'keyword' > this</ span >< span class = 'curlybracket' > }</ span > ;
</ span ></ div ></ div ></ div ></ div >< div class = 'texpara' >< div id = 'lib:quantity,force_in' >< div id = 'lib:force_in,quantity' >< div class = 'itemdecl' >< div class = 'marginalizedparent' >< a class = 'itemDeclLink' href = '#lib:force_in,quantity' > 🔗</ a ></ div >< code class = 'itemdeclcode' >< span class = 'keyword' > template</ span >< span class = 'anglebracket' > < </ span >< a class = 'index' id = 'conceptref:UnitCompatibleWith__' ></ a >< span class = 'texttt' >< i > UnitCompatibleWith</ i ></ span >< 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 = 'qty.syn.html#concept:QuantityOf' title = '5.6.3 Class template quantity [qty.syn]' >< span id = 'conceptref:QuantityOf___' >< span class = 'texttt' > 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 > ;
2025-02-11 20:35:14 +00:00
</ code ></ div ></ div ></ div ></ div >< div class = 'para' id = '4' >< div class = 'marginalizedparent' >< a class = 'marginalized' href = '#4' > 4</ a ></ div >< div class = 'itemdescr' >< div class = 'sourceLinkParent' >< a class = 'sourceLink' href = 'https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L4647' > #</ a ></ div >< div class = 'texpara' >< div id = '4.sentence-1' class = 'sentence' >< i > Effects</ i > : Equivalent to:
2024-12-08 08:57:12 +00:00
< span class = 'texttt' >< span class = 'keyword' > return</ span > value_< span class = 'shy' ></ span > cast< span class = 'anglebracket' > < </ span > ToU< span class = 'curlybracket' > {</ span >< span class = 'curlybracket' > }</ span >< span class = 'anglebracket' > > </ span >< span class = 'parenthesis' > (</ span >< span class = 'operator' > *</ span >< span class = 'keyword' > this</ span >< span class = 'parenthesis' > )</ span > ;</ span ></ div ></ div ></ div ></ div >< div class = 'texpara' >< div id = 'lib:quantity,force_in_' >< div id = 'lib:force_in,quantity_' >< div class = 'itemdecl' >< div class = 'marginalizedparent' >< a class = 'itemDeclLink' href = '#lib:force_in,quantity_' > 🔗</ a ></ div >< code class = 'itemdeclcode' >< span class = 'keyword' > template</ span >< span class = 'anglebracket' > < </ span >< a href = 'qty.rep.concepts.html#concept:RepresentationOf' title = '5.5.4 Concepts [qty.rep.concepts]' >< span id = 'conceptref:RepresentationOf__' >< span class = 'texttt' > 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 = 'qty.syn.html#concept:QuantityOf' title = '5.6.3 Class template quantity [qty.syn]' >< span id = 'conceptref:QuantityOf____' >< span class = 'texttt' > 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 > ;
2025-02-11 20:35:14 +00:00
</ code ></ div ></ div ></ div ></ div >< div class = 'para' id = '5' >< div class = 'marginalizedparent' >< a class = 'marginalized' href = '#5' > 5</ a ></ div >< div class = 'itemdescr' >< div class = 'sourceLinkParent' >< a class = 'sourceLink' href = 'https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L4661' > #</ a ></ div >< div class = 'texpara' >< div id = '5.sentence-1' class = 'sentence' >< i > Effects</ i > : Equivalent to:
2024-12-08 08:57:12 +00:00
< span class = 'texttt' >< span class = 'keyword' > return</ span > value_< span class = 'shy' ></ span > cast< span class = 'anglebracket' > < </ span > ToRep< span class = 'anglebracket' > > </ span >< span class = 'parenthesis' > (</ span >< span class = 'operator' > *</ span >< span class = 'keyword' > this</ span >< span class = 'parenthesis' > )</ span > ;</ span ></ div ></ div ></ div ></ div >< div class = 'texpara' >< div id = 'lib:quantity,force_in__' >< div id = 'lib:force_in,quantity__' >< div class = 'itemdecl' >< div class = 'marginalizedparent' >< a class = 'itemDeclLink' href = '#lib:force_in,quantity__' > 🔗</ a ></ div >< code class = 'itemdeclcode' >< span class = 'keyword' > template</ span >< span class = 'anglebracket' > < </ span >< a href = 'qty.rep.concepts.html#concept:RepresentationOf' title = '5.5.4 Concepts [qty.rep.concepts]' >< span id = 'conceptref:RepresentationOf___' >< span class = 'texttt' > RepresentationOf</ span ></ span ></ a >< span class = 'anglebracket' > < </ span > quantity_spec< span class = 'anglebracket' > > </ span > ToRep,
< a class = 'index' id = 'conceptref:UnitCompatibleWith___' ></ a >< span class = 'texttt' >< i > UnitCompatibleWith</ i ></ span >< 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 = 'qty.syn.html#concept:QuantityOf' title = '5.6.3 Class template quantity [qty.syn]' >< span id = 'conceptref:QuantityOf_____' >< span class = 'texttt' > 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 > ;
2025-02-11 20:35:14 +00:00
</ code ></ div ></ div ></ div ></ div >< div class = 'para' id = '6' >< div class = 'marginalizedparent' >< a class = 'marginalized' href = '#6' > 6</ a ></ div >< div class = 'itemdescr' >< div class = 'sourceLinkParent' >< a class = 'sourceLink' href = 'https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L4676' > #</ a ></ div >< div class = 'texpara' >< div id = '6.sentence-1' class = 'sentence' >< i > Effects</ i > : Equivalent to:
2024-12-08 08:57:12 +00:00
< span class = 'texttt' >< span class = 'keyword' > return</ span > value_< span class = 'shy' ></ span > cast< span class = 'anglebracket' > < </ span > ToU< span class = 'curlybracket' > {</ span >< span class = 'curlybracket' > }</ span > , ToRep< span class = 'anglebracket' > > </ span >< span class = 'parenthesis' > (</ span >< span class = 'operator' > *</ span >< span class = 'keyword' > this</ span >< span class = 'parenthesis' > )</ span > ;</ span ></ div ></ div ></ div ></ div ></ div ></ body ></ html >