forked from mpusz/mp-units
68 lines
9.0 KiB
HTML
68 lines
9.0 KiB
HTML
<!DOCTYPE html><html lang='en'><head><title>[mp.units.core.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 library <a class='abbr_ref' href='index.html#qties'>[qties]</a></h1><h2 ><a class='secnum' style='min-width:65pt'>5.3</a> Module <span class='texttt'>mp_<span class='shy'></span>units.core</span> synopsis <a class='abbr_ref'>[mp.units.core.syn]</a></h2><div class='texpara'><span id='module:mp_units.core'><div class='marginalizedparent'><a class='itemDeclLink' href='#module:mp_units.core'>🔗</a></div><span class='codeblock'><span class='keyword'>export</span> <span class='keyword'>module</span> mp_units<span class='operator'>.</span>core;
|
|
|
|
<span class='keyword'>import</span> std;
|
|
|
|
<span class='keyword'>export</span> <span class='keyword'>namespace</span> mp_units <span class='curlybracket'>{</span>
|
|
|
|
<span class='keyword'>export</span> <span class='keyword'>enum</span> <span class='keyword'>class</span> quantity_character <span class='curlybracket'>{</span> scalar, vector, tensor <span class='curlybracket'>}</span>;
|
|
|
|
<span class='comment'>// <a href='qty.traits.html' title='5.6 Traits'>[qty.<span class='shy'></span>traits]</a>, traits</span>
|
|
|
|
<span class='keyword'>template</span><span class='anglebracket'><</span><span class='keyword'>typename</span> Rep<span class='anglebracket'>></span>
|
|
<span class='keyword'>constexpr</span> <span class='keyword'>bool</span> treat_as_floating_point <span class='operator'>=</span> std<span class='operator'>::</span>is_floating_point_v<span class='anglebracket'><</span>Rep<span class='anglebracket'>></span>;
|
|
|
|
<span class='keyword'>template</span><span class='anglebracket'><</span><span class='keyword'>typename</span> Rep<span class='anglebracket'>></span>
|
|
<span class='keyword'>constexpr</span> <span class='keyword'>bool</span> is_scalar <span class='operator'>=</span>
|
|
std<span class='operator'>::</span>is_floating_point_v<span class='anglebracket'><</span>Rep<span class='anglebracket'>></span> <span class='operator'>|</span><span class='operator'>|</span> <span class='parenthesis'>(</span>std<span class='operator'>::</span>is_integral_v<span class='anglebracket'><</span>Rep<span class='anglebracket'>></span> <span class='operator'>&</span><span class='operator'>&</span> <span class='operator'>!</span>is_same_v<span class='anglebracket'><</span>Rep, <span class='keyword'>bool</span><span class='anglebracket'>></span><span class='parenthesis'>)</span>;
|
|
|
|
<span class='keyword'>template</span><span class='anglebracket'><</span><span class='keyword'>typename</span> Rep<span class='anglebracket'>></span>
|
|
<span class='keyword'>constexpr</span> <span class='keyword'>bool</span> is_vector <span class='operator'>=</span> <span class='literal'>false</span>;
|
|
|
|
<span class='keyword'>template</span><span class='anglebracket'><</span><span class='keyword'>typename</span> Rep<span class='anglebracket'>></span>
|
|
<span class='keyword'>constexpr</span> <span class='keyword'>bool</span> is_tensor <span class='operator'>=</span> <span class='literal'>false</span>;
|
|
|
|
<span class='keyword'>template</span><span class='anglebracket'><</span><span class='keyword'>typename</span> Rep<span class='anglebracket'>></span>
|
|
<span class='keyword'>struct</span> quantity_values;
|
|
|
|
<span class='keyword'>template</span><span class='anglebracket'><</span><span class='keyword'>typename</span> T<span class='anglebracket'>></span>
|
|
<span class='keyword'>struct</span> quantity_like_traits;
|
|
|
|
<span class='keyword'>template</span><span class='anglebracket'><</span><span class='keyword'>typename</span> T<span class='anglebracket'>></span>
|
|
<span class='keyword'>struct</span> quantity_point_like_traits;
|
|
|
|
<span class='comment'>// <a href='qty.concepts.html' title='5.7 Concepts'>[qty.<span class='shy'></span>concepts]</a>, concepts</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:some_reference' title='5.3 Module mp_­units.core synopsis [mp.units.core.syn]'><span id='concept:some_reference'><span id='lib:some_reference'><span class='tcode_in_codeblock'>some_<span class='shy'></span>reference</span></span></span></a> <span class='operator'>=</span> template_of<span class='parenthesis'>(</span><span class='operator'>^</span>std<span class='operator'>::</span>remove_cvref_t<span class='anglebracket'><</span>T<span class='anglebracket'>></span><span class='parenthesis'>)</span> <span class='operator'>=</span><span class='operator'>=</span> <span class='operator'>^</span>reference;
|
|
|
|
<span class='keyword'>template</span><span class='anglebracket'><</span><span class='keyword'>typename</span> T<span class='anglebracket'>></span>
|
|
<span class='keyword'>concept</span> representation <span class='operator'>=</span> <i ><span class='texttt'>see below</span></i>;
|
|
|
|
<span class='keyword'>template</span><span class='anglebracket'><</span><span class='keyword'>typename</span> T, quantity_character Ch<span class='anglebracket'>></span>
|
|
<span class='keyword'>concept</span> representation_of <span class='operator'>=</span> <i ><span class='texttt'>see below</span></i>;
|
|
|
|
<span class='keyword'>template</span><span class='anglebracket'><</span><span class='keyword'>typename</span> T<span class='anglebracket'>></span>
|
|
<span class='keyword'>concept</span> some_quantity_spec <span class='operator'>=</span> <i ><span class='texttt'>see below</span></i>;
|
|
|
|
<span class='comment'>// <a href='qty.types.html' title='5.8 Types'>[qty.<span class='shy'></span>types]</a>, types</span>
|
|
|
|
<span class='keyword'>template</span><span class='anglebracket'><</span><span class='keyword'>auto</span><span class='operator'>.</span><span class='operator'>.</span><span class='operator'>.</span><span class='anglebracket'>></span>
|
|
<span class='keyword'>struct</span> quantity_spec; <span class='comment'>// <i >not defined</i></span>
|
|
|
|
<span class='keyword'>template</span><span class='anglebracket'><</span><span class='keyword'>auto</span> Q<span class='anglebracket'>></span>
|
|
<span class='keyword'>struct</span> kind_of_; <span class='comment'>// <i >not defined</i></span>
|
|
|
|
<span class='keyword'>template</span><span class='anglebracket'><</span><i ><span class='texttt'>unspecified</span></i><span class='operator'>.</span><span class='operator'>.</span><span class='operator'>.</span> Expr<span class='anglebracket'>></span>
|
|
<span class='keyword'>struct</span> derived_quantity_spec;
|
|
|
|
<span class='comment'>// <a href='qty.type.html' title='5.8.2 Class template quantity'>[qty.<span class='shy'></span>type]</a>, class template <span class='tcode_in_codeblock'>quantity</span></span>
|
|
<span class='keyword'>export</span> <span class='keyword'>template</span><span class='anglebracket'><</span><a href='#concept:some_reference' title='5.3 Module mp_­units.core synopsis [mp.units.core.syn]'><span id='conceptref:some_reference'><span class='tcode_in_codeblock'>some_<span class='shy'></span>reference</span></span></a> <span class='keyword'>auto</span> R,
|
|
<a href='qty.concepts.html#concept:representation_of' title='5.7 Concepts [qty.concepts]'><span id='conceptref:representation_of'><span class='tcode_in_codeblock'>representation_<span class='shy'></span>of</span></span></a><span class='anglebracket'><</span>get_quantity_spec<span class='parenthesis'>(</span>R<span class='parenthesis'>)</span><span class='operator'>.</span>character<span class='anglebracket'>></span> Rep <span class='operator'>=</span> <span class='keyword'>double</span><span class='anglebracket'>></span>
|
|
<span class='keyword'>class</span> quantity;
|
|
|
|
<span class='comment'>// <a href='qty.point.type.html' title='5.8.3 Class template quantity_­point'>[qty.<span class='shy'></span>point.<span class='shy'></span>type]</a>, class template <span class='tcode_in_codeblock'>quantity_<span class='shy'></span>point</span></span>
|
|
<span class='keyword'>template</span><span class='anglebracket'><</span><i ><span class='texttt'>unspecified</span></i><span class='anglebracket'>></span>
|
|
<span class='keyword'>class</span> quantity_point;
|
|
|
|
<span class='curlybracket'>}</span>
|
|
</span></span></div></div></body></html> |