Files
mp-units/HEAD/api_reference/gen/mp.units.core.syn.html
T
2024-11-05 18:52:17 +01:00

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&emsp;Traits'>[qty.<span class='shy'></span>traits]</a>, traits</span>
<span class='keyword'>template</span><span class='anglebracket'>&lt;</span><span class='keyword'>typename</span> Rep<span class='anglebracket'>&gt;</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'>&lt;</span>Rep<span class='anglebracket'>&gt;</span>;
<span class='keyword'>template</span><span class='anglebracket'>&lt;</span><span class='keyword'>typename</span> Rep<span class='anglebracket'>&gt;</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'>&lt;</span>Rep<span class='anglebracket'>&gt;</span> <span class='operator'>|</span><span class='operator'>|</span> <span class='parenthesis'>(</span>std<span class='operator'>::</span>is_integral_v<span class='anglebracket'>&lt;</span>Rep<span class='anglebracket'>&gt;</span> <span class='operator'>&amp;</span><span class='operator'>&amp;</span> <span class='operator'>!</span>is_same_v<span class='anglebracket'>&lt;</span>Rep, <span class='keyword'>bool</span><span class='anglebracket'>&gt;</span><span class='parenthesis'>)</span>;
<span class='keyword'>template</span><span class='anglebracket'>&lt;</span><span class='keyword'>typename</span> Rep<span class='anglebracket'>&gt;</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'>&lt;</span><span class='keyword'>typename</span> Rep<span class='anglebracket'>&gt;</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'>&lt;</span><span class='keyword'>typename</span> Rep<span class='anglebracket'>&gt;</span>
<span class='keyword'>struct</span> quantity_values;
<span class='keyword'>template</span><span class='anglebracket'>&lt;</span><span class='keyword'>typename</span> T<span class='anglebracket'>&gt;</span>
<span class='keyword'>struct</span> quantity_like_traits;
<span class='keyword'>template</span><span class='anglebracket'>&lt;</span><span class='keyword'>typename</span> T<span class='anglebracket'>&gt;</span>
<span class='keyword'>struct</span> quantity_point_like_traits;
<span class='comment'>// <a href='qty.concepts.html' title='5.7&emsp;Concepts'>[qty.<span class='shy'></span>concepts]</a>, concepts</span>
<span class='keyword'>template</span><span class='anglebracket'>&lt;</span><span class='keyword'>typename</span> T<span class='anglebracket'>&gt;</span>
<span class='keyword'>concept</span> <a class='hidden_link' href='#concept:some_reference' title='5.3&emsp;Module mp_&shy;units.core synopsis&emsp;[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'>&lt;</span>T<span class='anglebracket'>&gt;</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'>&lt;</span><span class='keyword'>typename</span> T<span class='anglebracket'>&gt;</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'>&lt;</span><span class='keyword'>typename</span> T, quantity_character Ch<span class='anglebracket'>&gt;</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'>&lt;</span><span class='keyword'>typename</span> T<span class='anglebracket'>&gt;</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&emsp;Types'>[qty.<span class='shy'></span>types]</a>, types</span>
<span class='keyword'>template</span><span class='anglebracket'>&lt;</span><span class='keyword'>auto</span><span class='operator'>.</span><span class='operator'>.</span><span class='operator'>.</span><span class='anglebracket'>&gt;</span>
<span class='keyword'>struct</span> quantity_spec; <span class='comment'>// <i >not defined</i></span>
<span class='keyword'>template</span><span class='anglebracket'>&lt;</span><span class='keyword'>auto</span> Q<span class='anglebracket'>&gt;</span>
<span class='keyword'>struct</span> kind_of_; <span class='comment'>// <i >not defined</i></span>
<span class='keyword'>template</span><span class='anglebracket'>&lt;</span><i ><span class='texttt'>unspecified</span></i><span class='operator'>.</span><span class='operator'>.</span><span class='operator'>.</span> Expr<span class='anglebracket'>&gt;</span>
<span class='keyword'>struct</span> derived_quantity_spec;
<span class='comment'>// <a href='qty.type.html' title='5.8.2&emsp;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'>&lt;</span><a href='#concept:some_reference' title='5.3&emsp;Module mp_&shy;units.core synopsis&emsp;[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&emsp;Concepts&emsp;[qty.concepts]'><span id='conceptref:representation_of'><span class='tcode_in_codeblock'>representation_<span class='shy'></span>of</span></span></a><span class='anglebracket'>&lt;</span>get_quantity_spec<span class='parenthesis'>(</span>R<span class='parenthesis'>)</span><span class='operator'>.</span>character<span class='anglebracket'>&gt;</span> Rep <span class='operator'>=</span> <span class='keyword'>double</span><span class='anglebracket'>&gt;</span>
<span class='keyword'>class</span> quantity;
<span class='comment'>// <a href='qty.point.type.html' title='5.8.3&emsp;Class template quantity_&shy;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'>&lt;</span><i ><span class='texttt'>unspecified</span></i><span class='anglebracket'>&gt;</span>
<span class='keyword'>class</span> quantity_point;
<span class='curlybracket'>}</span>
</span></span></div></div></body></html>