<!DOCTYPE html><htmllang='en'><head><title>[spec]</title><metacharset='UTF-8'/><linkrel='stylesheet'type='text/css'href='14882.css'/><linkrel='stylesheet'type='text/css'href='https://fonts.googleapis.com/css2?family=Noto+Serif'/><linkrel='stylesheet'type='text/css'href='https://fonts.googleapis.com/css2?family=Noto+Sans'/><linkrel='stylesheet'type='text/css'href='https://fonts.googleapis.com/css2?family=Noto+Sans+Mono'/><linkrel='icon'href='icon.png'/><linkrel='stylesheet'type='text/css'href='expanded.css'title='Normal'/><linkrel='alternate stylesheet'type='text/css'href='colored.css'title='Notes and examples colored'/><linkrel='alternate stylesheet'type='text/css'href='normative-only.css'title='Notes and examples hidden'/></head><body><divclass='wrapper'><h1><aclass='secnum'style='min-width:50pt'>4</a> Specification <aclass='abbr_ref'href='index.html#spec'>[spec]</a></h1><divid='ext'class='section'><h2><aclass='secnum'href='#ext'style='min-width:65pt'>4.1</a> External <aclass='abbr_ref'href='spec.ext.html'>[spec.ext]</a></h2><divclass='para'id='ext-1'><divclass='marginalizedparent'><aclass='marginalized'href='#ext-1'>1</a></div><divclass='sourceLinkParent'><aclass='sourceLink'href='https://github.com/mpusz/mp-units6e06eddf205deaf6c2f2f63500c8c70ec220a99f/source/intro.tex#L76'>#</a></div><divclass='texpara'><divid='ext-1.sentence-1'class='sentence'>The specification of the mp-units library subsumes
<ahref="https://wg21.link/description">N4971, [description]</a>, <ahref="https://wg21.link/requirements">N4971, [requirements]</a>, <ahref="https://wg21.link/concepts.equality">N4971, [concepts.equality]</a>, and SD-8,
all assumingly amended for the context of this library<aclass='hidden_link'href='#ext-1.sentence-1'>.</a></div><divid='ext-note-1'class='note'><divclass='texpara'>[<i>Note <ahref='#ext-note-1'>1</a></i>: <divid='ext-1.sentence-2'class='sentence'>This means that, non exhaustively,
<ulclass='itemize'><liid='ext-1.1'><divclass='marginalizedparent'style='left:-27mm'><aclass='marginalized'href='#ext-1.1'>(1.1)</a></div><spanclass='texttt'><spanclass='operator'>​::​</span>mp_<spanclass='shy'></span>units2</span> is a reserved namespace, and</li><liid='ext-1.2'><divclass='marginalizedparent'style='left:-27mm'><aclass='marginalized'href='#ext-1.2'>(1.2)</a></div><spanclass='texttt'>std<spanclass='operator'>​::​</span>vector<spanclass='anglebracket'><</span>mp_<spanclass='shy'></span>units<spanclass='operator'>​::​</span><i>type</i><spanclass='anglebracket'>></span></span>
is a program-defined specialization and a library-defined specialization
from the point of view of the C++ standard library and the mp-units library, respectively<aclass='hidden_link'href='#ext-1.sentence-2'>.</a></li></ul></div> — <i>end note</i>]</div></div></div></div><divclass='para'id='ext-2'><divclass='marginalizedparent'><aclass='marginalized'href='#ext-2'>2</a></div><divclass='sourceLinkParent'><aclass='sourceLink'href='https://github.com/mpusz/mp-units6e06eddf205deaf6c2f2f63500c8c70ec220a99f/source/intro.tex#L91'>#</a></div><divclass='texpara'><divid='ext-2.sentence-1'class='sentence'>The mp-units library is not part of the C++ implementation<aclass='hidden_link'href='#ext-2.sentence-1'>.</a></div></div></div></div><divid='cats'class='section'><h2><aclass='secnum'href='#cats'style='min-width:65pt'>4.2</a> Categories <aclass='abbr_ref'href='spec.cats.html'>[spec.cats]</a></h2><divclass='para'id='cats-1'><divclass='marginalizedparent'><aclass='marginalized'href='#cats-1'>1</a></div><divclass='sourceLinkParent'><aclass='sourceLink'href='https://github.com/mpusz/mp-units6e06eddf205deaf6c2f2f63500c8c70ec220a99f/source/intro.tex#L96'>#</a></div><divclass='texpara'><divid='cats-1.sentence-1'class='sentence'>Detailed specifications for each of the components in the library are in
as shown in Table <ahref='#tab:lib.cats'title='Table 1: Library categories'>1</a><aclass='hidden_link'href='#cats-1.sentence-1'>.</a></div></div><divclass='texpara'><divclass='numberedTable'id='tab:lib.cats'>Table <ahref='#tab:lib.cats'>1</a>: Library categories <ahref='./tab:lib.cats.html'>[tab:lib.cats]</a><br><table><trid='tab:lib.cats-row-1'class='rowsep'><tdclass='hidden'><divclass='marginalizedparent'><aclass='itemDeclLink'href='#tab:lib.cats-row-1'>🔗</a></div></td><tdclass='left'><divclass='texpara'><divid='tab:lib.cats-row-1-column-1-sentence-1'class='sentence'><b>Clause</b></div></div></td><tdclass='left'><divclass='texpara'><divid='tab:lib.cats-row-1-column-2-sentence-1'class='sentence'><b>Category</b></div></div></td></tr><trid='tab:lib.cats-row-2'class='capsep'><tdclass='hidden'><divclass='marginalizedparent'><aclass='itemDeclLink'href='#tab:lib.cats-row-2'>🔗</a></div></td><tdclass='left'><divclass='texpara'><divid='tab:lib.cats-row-2-column-1-sentence-1'class='sentence'><ahref='qties.html'title='5 Quantities library'>[qties]</a></div></div></td><tdclass='left'><divclass='texpara'><divid='tab:lib.cats-row-2-column-2-sentence-1'class='sentence'>Quantities library</div></div></td></tr></table></div></div></div><divclass='para'id='cats-2'><divclass='marginalizedparent'><aclass='marginalized'href='#cats-2'>2</a></div><divclass='sourceLinkParent'><aclass='sourceLink'href='https://github.com/mpusz/mp-units6e06eddf205deaf6c2f2f63500c8c70ec220a99f/source/intro.tex#L108'>#</a></div><divclass='texpara'><divid='cats-2.sentence-1'class='sentence'>The quantities library (<ahref='qties.html'title='5 Quantities library'>[qties]</a>)
describes components for dealing with quantities<aclass='hidden_link'href='#cats-2.sentence-1'>.</a></div></div></div></div><divid='mods'class='section'><h2><aclass='secnum'href='#mods'style='min-width:65pt'>4.3</a> Modules <aclass='abbr_ref'href='spec.mods.html'>[spec.mods]</a></h2><divclass='para'id='mods-1'><divclass='marginalizedparent'><aclass='marginalized'href='#mods-1'>1</a></div><divclass='sourceLinkParent'><aclass='sourceLink'href='https://github.com/mpusz/mp-units6e06eddf205deaf6c2f2f63500c8c70ec220a99f/source/intro.tex#L114'>#</a></div><divclass='texpara'><divid='mods-1.sentence-1'class='sentence'>The mp-units library provides the