2024-12-08 08:57:12 +00:00
<!DOCTYPE html> < html lang = 'en' >< head >< title > [qty.cons]</ 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#cons' > [qty]</ a ></ h2 >< h3 >< a class = 'secnum' style = 'min-width:80pt' > 5.6.5</ a > Constructors and assignment < a class = 'abbr_ref' > [qty.cons]</ a ></ h3 >< div class = 'texpara' >< div id = 'lib:quantity,constructor' >< div class = 'itemdecl' >< div class = 'marginalizedparent' >< a class = 'itemDeclLink' href = '#lib:quantity,constructor' > 🔗</ a ></ div >< code class = 'itemdeclcode' >< 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 = 'texttt' > Reference</ span ></ span ></ a > R2< span class = 'anglebracket' > > </ span >
< span class = 'keyword' > requires</ span > < a class = 'index' id = 'conceptref:SameValueAs' ></ a >< span class = 'texttt' >< i > SameValueAs</ i ></ span >< 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 >< a class = 'index' id = 'conceptref:ValuePreservingTo' ></ a >< span class = 'texttt' >< i > ValuePreservingTo</ i ></ span >< 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 > ;
2025-02-11 20:35:14 +00:00
</ code ></ 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#L4517' > #</ a ></ div >< div class = 'texpara' >< div id = '1.sentence-1' class = 'sentence' >< i > Effects</ i > : Initializes < span class = 'texttt' >< i > numerical-value</ i ></ span > with < span class = 'texttt' > std< span class = 'operator' > ​ ::​ </ span > forward< span class = 'anglebracket' > < </ span > FwdValue< span class = 'anglebracket' > > </ span >< span class = 'parenthesis' > (</ span > v< span class = 'parenthesis' > )</ span ></ span >< a class = 'hidden_link' href = '#1.sentence-1' > .</ a ></ div ></ div ></ div ></ div >< div class = 'texpara' >< div id = 'lib:quantity,constructor_' >< div class = 'itemdecl' >< div class = 'marginalizedparent' >< a class = 'itemDeclLink' href = '#lib:quantity,constructor_' > 🔗</ a ></ div >< code class = 'itemdeclcode' >< 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 = 'texttt' > 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 >
2024-12-08 08:57:12 +00:00
< span class = 'keyword' > requires</ span >< span class = 'parenthesis' > (</ span >< span class = 'operator' > !</ span >< a class = 'index' id = 'conceptref:SameValueAs_' ></ a >< span class = 'texttt' >< i > SameValueAs</ i ></ span >< 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 >< span class = 'texttt' >< i > QuantityConvertibleTo</ i ></ span >< 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 > ;
2025-02-11 20:35:14 +00:00
</ code ></ 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#L4531' > #</ 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' > quantity< span class = 'parenthesis' > (</ span > quantity< span class = 'anglebracket' > < </ span > R2< span class = 'curlybracket' > {</ span >< span class = 'curlybracket' > }</ span > , Value< span class = 'anglebracket' > > </ span >< span class = 'curlybracket' > {</ span > std< span class = 'operator' > ​ ::​ </ span > forward< span class = 'anglebracket' > < </ span > FwdValue< span class = 'anglebracket' > > </ span >< span class = 'parenthesis' > (</ span > v< span class = 'parenthesis' > )</ span > , R2< span class = 'curlybracket' > {</ span >< span class = 'curlybracket' > }</ span >< span class = 'curlybracket' > }</ span >< span class = 'parenthesis' > )</ span ></ span >< a class = 'hidden_link' href = '#2.sentence-1' > .</ a ></ div ></ div ></ div ></ div >< div class = 'texpara' >< div id = 'lib:quantity,constructor__' >< div class = 'itemdecl' >< div class = 'marginalizedparent' >< a class = 'itemDeclLink' href = '#lib:quantity,constructor__' > 🔗</ a ></ div >< code class = 'itemdeclcode' >< span class = 'keyword' > template</ span >< span class = 'anglebracket' > < </ span >< a class = 'index' id = 'conceptref:QuantityConvertibleTo_' ></ a >< span class = 'texttt' >< i > QuantityConvertibleTo</ i ></ span >< 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 >< span class = 'operator' > !</ span > std< span class = 'operator' > ::</ span > convertible_to< span class = 'anglebracket' > < </ span >< span class = 'keyword' > typename</ span > Q< span class = 'operator' > ::</ span > rep, Rep< span class = 'anglebracket' > > </ span >< span class = 'parenthesis' > )</ span > quantity< span class = 'parenthesis' > (</ span >< span class = 'keyword' > const</ span > Q< span class = 'operator' > & </ span > q< span class = 'parenthesis' > )</ span > ;
2025-02-11 20:35:14 +00:00
</ code ></ 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#L4544' > #</ a ></ div >< div class = 'texpara' >< div id = '3.sentence-1' class = 'sentence' >< i > Effects</ i > : Equivalent to < span class = 'texttt' >< span class = 'texttt' >< i > sudo-cast</ i ></ span >< span class = 'anglebracket' > < </ span > quantity< span class = 'anglebracket' > > </ span >< span class = 'parenthesis' > (</ span > q< span class = 'parenthesis' > )</ span ></ span > (< 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 > )< a class = 'hidden_link' href = '#3.sentence-1' > .</ a ></ div ></ div ></ div ></ div >< div class = 'texpara' >< div id = 'lib:quantity,constructor___' >< div class = 'itemdecl' >< div class = 'marginalizedparent' >< a class = 'itemDeclLink' href = '#lib:quantity,constructor___' > 🔗</ a ></ div >< code class = 'itemdeclcode' >< 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 = 'texttt' > QuantityLike</ span ></ span ></ a > Q< span class = 'anglebracket' > > </ span >
2024-12-08 08:57:12 +00:00
< span class = 'keyword' > requires</ span > < a class = 'index' id = 'conceptref:QuantityConvertibleTo__' ></ a >< span class = 'texttt' >< i > QuantityConvertibleTo</ i ></ span >< span class = 'anglebracket' > < </ span >< span class = 'texttt' >< i > quantity-like-type</ i ></ span >< 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 > ;
2025-02-11 20:35:14 +00:00
</ code ></ 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#L4557' > #</ 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 = 'codeblock' > quantity< span class = 'parenthesis' > (</ span >< span class = 'operator' > ::</ span > mp_units< span class = 'operator' > ::</ span > quantity< span class = 'curlybracket' > {</ span > quantity_like_traits< span class = 'anglebracket' > < </ span > Q< span class = 'anglebracket' > > </ span >< span class = 'operator' > ::</ span > to_numerical_value< span class = 'parenthesis' > (</ span > q< span class = 'parenthesis' > )</ span > ,
quantity_like_traits< span class = 'anglebracket' > < </ span > Q< span class = 'anglebracket' > > </ span >< span class = 'operator' > ::</ span > reference< span class = 'curlybracket' > }</ span >< span class = 'parenthesis' > )</ span >
2025-02-11 20:35:14 +00:00
</ span ></ 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#L4565' > #</ a ></ div >< div class = 'texpara' >< div id = '5.sentence-1' class = 'sentence' >< i > Remarks</ i > : The expression inside < span class = 'texttt' >< span class = 'keyword' > explicit</ span ></ span > is equivalent to:
2024-12-08 08:57:12 +00:00
< span class = 'codeblock' > quantity_like_traits< span class = 'anglebracket' > < </ span > Q< span class = 'anglebracket' > > </ span >< span class = 'operator' > ::</ span > explicit_import < span class = 'operator' > |</ span >< span class = 'operator' > |</ span >
< span class = 'operator' > !</ span > std< span class = 'operator' > ::</ span > convertible_to< span class = 'anglebracket' > < </ span >< span class = 'keyword' > typename</ span > quantity_like_traits< span class = 'anglebracket' > < </ span > Q< span class = 'anglebracket' > > </ span >< span class = 'operator' > ::</ span > rep, Rep< span class = 'anglebracket' > > </ span >
</ span ></ div ></ div ></ div ></ div >< div class = 'texpara' >< div id = 'lib:quantity,operator=' >< div id = 'lib:operator=,quantity' >< div class = 'itemdecl' >< div class = 'marginalizedparent' >< a class = 'itemDeclLink' href = '#lib:operator=,quantity' > 🔗</ a ></ div >< code class = 'itemdeclcode' >< span class = 'keyword' > template</ span >< span class = 'anglebracket' > < </ span >< a class = 'index' id = 'conceptref:ValuePreservingTo_' ></ a >< span class = 'texttt' >< i > ValuePreservingTo</ i ></ span >< 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 > ;
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#L4582' > #</ a ></ div >< div class = 'texpara' >< div id = '6.sentence-1' class = 'sentence' >< i > Effects</ i > : Equivalent to < span class = 'texttt' >< span class = 'texttt' >< i > numerical-value</ i ></ span > < span class = 'operator' > =</ span > std< span class = 'operator' > ​ ::​ </ span > forward< span class = 'anglebracket' > < </ span > FwdValue< span class = 'anglebracket' > > </ span >< span class = 'parenthesis' > (</ span > v< span class = 'parenthesis' > )</ span ></ span >< a class = 'hidden_link' href = '#6.sentence-1' > .</ a ></ div ></ div ></ div ></ div >< div class = 'para' id = '7' >< div class = 'marginalizedparent' >< a class = 'marginalized' href = '#7' > 7</ a ></ div >< div class = 'itemdescr' >< div class = 'sourceLinkParent' >< a class = 'sourceLink' href = 'https://github.com/mpusz/mp-unitse9c5f7236ebfe1b287a5a4a49aaf57fbefa87233/source/quantities.tex#L4586' > #</ a ></ div >< div class = 'texpara' >< div id = '7.sentence-1' class = 'sentence' >< i > Returns</ i > : < span class = 'texttt' >< span class = 'operator' > *</ span >< span class = 'keyword' > this</ span ></ span >< a class = 'hidden_link' href = '#7.sentence-1' > .</ a ></ div ></ div ></ div ></ div ></ div ></ body ></ html >