Files
mp-units/head/users_guide/examples/avg_speed/index.html
T

2679 lines
107 KiB
HTML

<!doctype html>
<html lang="en" class="no-js">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<meta name="description" content="The quantities and units library for C++">
<meta name="author" content="mp-units Team">
<link rel="canonical" href="https://mpusz.github.io/mp-units/head/users_guide/examples/avg_speed/">
<link rel="prev" href="../hello_units/">
<link rel="next" href="../si_constants/">
<link rel="alternate" type="application/rss+xml" title="RSS feed" href="../../../feed_rss_created.xml">
<link rel="alternate" type="application/rss+xml" title="RSS feed of updated content" href="../../../feed_rss_updated.xml">
<link rel="icon" href="../../../assets/images/mp-units-color.svg">
<meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.5.42">
<title>avg_speed - mp-units</title>
<link rel="stylesheet" href="../../../assets/stylesheets/main.0253249f.min.css">
<link rel="stylesheet" href="../../../assets/stylesheets/palette.06af60db.min.css">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&display=fallback">
<style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style>
<link rel="stylesheet" href="../../../stylesheets/extra.css">
<script>__md_scope=new URL("../../..",location),__md_hash=e=>[...e].reduce(((e,_)=>(e<<5)-e+_.charCodeAt(0)),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
<meta property="og:type" content="website" >
<meta property="og:title" content="avg_speed - mp-units" >
<meta property="og:description" content="The quantities and units library for C++" >
<meta property="og:image" content="https://mpusz.github.io/mp-units/head/assets/images/social/users_guide/examples/avg_speed.png" >
<meta property="og:image:type" content="image/png" >
<meta property="og:image:width" content="1200" >
<meta property="og:image:height" content="630" >
<meta property="og:url" content="https://mpusz.github.io/mp-units/head/users_guide/examples/avg_speed/" >
<meta name="twitter:card" content="summary_large_image" >
<meta name="twitter:title" content="avg_speed - mp-units" >
<meta name="twitter:description" content="The quantities and units library for C++" >
<meta name="twitter:image" content="https://mpusz.github.io/mp-units/head/assets/images/social/users_guide/examples/avg_speed.png" >
</head>
<body dir="ltr" data-md-color-scheme="default" data-md-color-primary="indigo" data-md-color-accent="indigo">
<input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off">
<input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off">
<label class="md-overlay" for="__drawer"></label>
<div data-md-component="skip">
<a href="#avg_speed" class="md-skip">
Skip to content
</a>
</div>
<div data-md-component="announce">
</div>
<div data-md-color-scheme="default" data-md-component="outdated" hidden>
<aside class="md-banner md-banner--warning">
<div class="md-banner__inner md-grid md-typeset">
You're not viewing the latest version.
<a href="../../../..">
<strong>Click here to go to latest.</strong>
</a>
</div>
<script>var el=document.querySelector("[data-md-component=outdated]"),outdated=__md_get("__outdated",sessionStorage);!0===outdated&&el&&(el.hidden=!1)</script>
</aside>
</div>
<header class="md-header" data-md-component="header">
<nav class="md-header__inner md-grid" aria-label="Header">
<a href="../../.." title="mp-units" class="md-header__button md-logo" aria-label="mp-units" data-md-component="logo">
<img src="../../../assets/images/mp-units-transparent-white.svg" alt="logo">
</a>
<label class="md-header__button md-icon" for="__drawer">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3zm0 5h18v2H3zm0 5h18v2H3z"/></svg>
</label>
<div class="md-header__title" data-md-component="header-title">
<div class="md-header__ellipsis">
<div class="md-header__topic">
<span class="md-ellipsis">
mp-units
</span>
</div>
<div class="md-header__topic" data-md-component="header-topic">
<span class="md-ellipsis">
avg_speed
</span>
</div>
</div>
</div>
<form class="md-header__option" data-md-component="palette">
<input class="md-option" data-md-color-media="(prefers-color-scheme)" data-md-color-scheme="default" data-md-color-primary="indigo" data-md-color-accent="indigo" aria-label="Switch to light mode" type="radio" name="__palette" id="__palette_0">
<label class="md-header__button md-icon" title="Switch to light mode" for="__palette_1" hidden>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7a5 5 0 0 0-5 5 5 5 0 0 0 5 5h4v-1.9H7c-1.71 0-3.1-1.39-3.1-3.1M8 13h8v-2H8zm9-6h-4v1.9h4c1.71 0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4a5 5 0 0 0 5-5 5 5 0 0 0-5-5"/></svg>
</label>
<input class="md-option" data-md-color-media="(prefers-color-scheme: light)" data-md-color-scheme="default" data-md-color-primary="custom" data-md-color-accent="custom" aria-label="Switch to dark mode" type="radio" name="__palette" id="__palette_1">
<label class="md-header__button md-icon" title="Switch to dark mode" for="__palette_2" hidden>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 7a5 5 0 0 1 5 5 5 5 0 0 1-5 5 5 5 0 0 1-5-5 5 5 0 0 1 5-5m0 2a3 3 0 0 0-3 3 3 3 0 0 0 3 3 3 3 0 0 0 3-3 3 3 0 0 0-3-3m0-7 2.39 3.42C13.65 5.15 12.84 5 12 5s-1.65.15-2.39.42zM3.34 7l4.16-.35A7.2 7.2 0 0 0 5.94 8.5c-.44.74-.69 1.5-.83 2.29zm.02 10 1.76-3.77a7.131 7.131 0 0 0 2.38 4.14zM20.65 7l-1.77 3.79a7.02 7.02 0 0 0-2.38-4.15zm-.01 10-4.14.36c.59-.51 1.12-1.14 1.54-1.86.42-.73.69-1.5.83-2.29zM12 22l-2.41-3.44c.74.27 1.55.44 2.41.44.82 0 1.63-.17 2.37-.44z"/></svg>
</label>
<input class="md-option" data-md-color-media="(prefers-color-scheme: dark)" data-md-color-scheme="slate" data-md-color-primary="black" data-md-color-accent="custom" aria-label="Switch to system preference" type="radio" name="__palette" id="__palette_2">
<label class="md-header__button md-icon" title="Switch to system preference" for="__palette_0" hidden>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="m17.75 4.09-2.53 1.94.91 3.06-2.63-1.81-2.63 1.81.91-3.06-2.53-1.94L12.44 4l1.06-3 1.06 3zm3.5 6.91-1.64 1.25.59 1.98-1.7-1.17-1.7 1.17.59-1.98L15.75 11l2.06-.05L18.5 9l.69 1.95zm-2.28 4.95c.83-.08 1.72 1.1 1.19 1.85-.32.45-.66.87-1.08 1.27C15.17 23 8.84 23 4.94 19.07c-3.91-3.9-3.91-10.24 0-14.14.4-.4.82-.76 1.27-1.08.75-.53 1.93.36 1.85 1.19-.27 2.86.69 5.83 2.89 8.02a9.96 9.96 0 0 0 8.02 2.89m-1.64 2.02a12.08 12.08 0 0 1-7.8-3.47c-2.17-2.19-3.33-5-3.49-7.82-2.81 3.14-2.7 7.96.31 10.98 3.02 3.01 7.84 3.12 10.98.31"/></svg>
</label>
</form>
<script>var palette=__md_get("__palette");if(palette&&palette.color){if("(prefers-color-scheme)"===palette.color.media){var media=matchMedia("(prefers-color-scheme: light)"),input=document.querySelector(media.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']");palette.color.media=input.getAttribute("data-md-color-media"),palette.color.scheme=input.getAttribute("data-md-color-scheme"),palette.color.primary=input.getAttribute("data-md-color-primary"),palette.color.accent=input.getAttribute("data-md-color-accent")}for(var[key,value]of Object.entries(palette.color))document.body.setAttribute("data-md-color-"+key,value)}</script>
<label class="md-header__button md-icon" for="__search">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg>
</label>
<div class="md-search" data-md-component="search" role="dialog">
<label class="md-search__overlay" for="__search"></label>
<div class="md-search__inner" role="search">
<form class="md-search__form" name="search">
<input type="text" class="md-search__input" name="query" aria-label="Search" placeholder="Search" autocapitalize="off" autocorrect="off" autocomplete="off" spellcheck="false" data-md-component="search-query" required>
<label class="md-search__icon md-icon" for="__search">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11z"/></svg>
</label>
<nav class="md-search__options" aria-label="Search">
<a href="javascript:void(0)" class="md-search__icon md-icon" title="Share" aria-label="Share" data-clipboard data-clipboard-text="" data-md-component="search-share" tabindex="-1">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M18 16.08c-.76 0-1.44.3-1.96.77L8.91 12.7c.05-.23.09-.46.09-.7s-.04-.47-.09-.7l7.05-4.11c.54.5 1.25.81 2.04.81a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3c0 .24.04.47.09.7L8.04 9.81C7.5 9.31 6.79 9 6 9a3 3 0 0 0-3 3 3 3 0 0 0 3 3c.79 0 1.5-.31 2.04-.81l7.12 4.15c-.05.21-.08.43-.08.66 0 1.61 1.31 2.91 2.92 2.91s2.92-1.3 2.92-2.91A2.92 2.92 0 0 0 18 16.08"/></svg>
</a>
<button type="reset" class="md-search__icon md-icon" title="Clear" aria-label="Clear" tabindex="-1">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"/></svg>
</button>
</nav>
<div class="md-search__suggest" data-md-component="search-suggest"></div>
</form>
<div class="md-search__output">
<div class="md-search__scrollwrap" tabindex="0" data-md-scrollfix>
<div class="md-search-result" data-md-component="search-result">
<div class="md-search-result__meta">
Initializing search
</div>
<ol class="md-search-result__list" role="presentation"></ol>
</div>
</div>
</div>
</div>
</div>
<div class="md-header__source">
<a href="https://github.com/mpusz/mp-units" title="Go to repository" class="md-source" data-md-component="source">
<div class="md-source__icon md-icon">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.6.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81"/></svg>
</div>
<div class="md-source__repository">
mpusz/mp-units
</div>
</a>
</div>
</nav>
</header>
<div class="md-container" data-md-component="container">
<nav class="md-tabs" aria-label="Tabs" data-md-component="tabs">
<div class="md-grid">
<ul class="md-tabs__list">
<li class="md-tabs__item">
<a href="../../.." class="md-tabs__link">
Home
</a>
</li>
<li class="md-tabs__item">
<a href="../../../getting_started/introduction/" class="md-tabs__link">
Getting Started
</a>
</li>
<li class="md-tabs__item md-tabs__item--active">
<a href="../../terms_and_definitions/" class="md-tabs__link">
User's Guide
</a>
</li>
<li class="md-tabs__item">
<a href="../../../api_reference/" class="md-tabs__link">
API Reference
</a>
</li>
<li class="md-tabs__item">
<a href="../../../blog/" class="md-tabs__link">
Blog
</a>
</li>
<li class="md-tabs__item">
<a href="../../../release_notes/" class="md-tabs__link">
Release Notes
</a>
</li>
</ul>
</div>
</nav>
<main class="md-main" data-md-component="main">
<div class="md-main__inner md-grid">
<div class="md-sidebar md-sidebar--primary" data-md-component="sidebar" data-md-type="navigation" >
<div class="md-sidebar__scrollwrap">
<div class="md-sidebar__inner">
<nav class="md-nav md-nav--primary md-nav--lifted md-nav--integrated" aria-label="Navigation" data-md-level="0">
<label class="md-nav__title" for="__drawer">
<a href="../../.." title="mp-units" class="md-nav__button md-logo" aria-label="mp-units" data-md-component="logo">
<img src="../../../assets/images/mp-units-transparent-white.svg" alt="logo">
</a>
mp-units
</label>
<div class="md-nav__source">
<a href="https://github.com/mpusz/mp-units" title="Go to repository" class="md-source" data-md-component="source">
<div class="md-source__icon md-icon">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.6.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81"/></svg>
</div>
<div class="md-source__repository">
mpusz/mp-units
</div>
</a>
</div>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../.." class="md-nav__link">
<span class="md-ellipsis">
Home
</span>
</a>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2" >
<label class="md-nav__link" for="__nav_2" id="__nav_2_label" tabindex="0">
<span class="md-ellipsis">
Getting Started
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_2_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_2">
<span class="md-nav__icon md-icon"></span>
Getting Started
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../../getting_started/introduction/" class="md-nav__link">
<span class="md-ellipsis">
Introduction
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../getting_started/quick_start/" class="md-nav__link">
<span class="md-ellipsis">
Quick Start
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../getting_started/look_and_feel/" class="md-nav__link">
<span class="md-ellipsis">
Look and Feel
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../getting_started/project_structure/" class="md-nav__link">
<span class="md-ellipsis">
Project Structure
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../getting_started/cpp_compiler_support/" class="md-nav__link">
<span class="md-ellipsis">
C++ compiler support (API/ABI)
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../getting_started/installation_and_usage/" class="md-nav__link">
<span class="md-ellipsis">
Installation and Usage
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../getting_started/contributing/" class="md-nav__link">
<span class="md-ellipsis">
Contributing
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../getting_started/faq/" class="md-nav__link">
<span class="md-ellipsis">
FAQ
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--active md-nav__item--section md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3" checked>
<label class="md-nav__link" for="__nav_3" id="__nav_3_label" tabindex="">
<span class="md-ellipsis">
User's Guide
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_3_label" aria-expanded="true">
<label class="md-nav__title" for="__nav_3">
<span class="md-nav__icon md-icon"></span>
User's Guide
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../terms_and_definitions/" class="md-nav__link">
<span class="md-ellipsis">
Terms and Definitions
</span>
</a>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_2" >
<label class="md-nav__link" for="__nav_3_2" id="__nav_3_2_label" tabindex="0">
<span class="md-ellipsis">
Framework Basics
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_3_2_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_2">
<span class="md-nav__icon md-icon"></span>
Framework Basics
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../framework_basics/interface_introduction/" class="md-nav__link">
<span class="md-ellipsis">
Interface Introduction
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../framework_basics/design_overview/" class="md-nav__link">
<span class="md-ellipsis">
Design Overview
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../framework_basics/systems_of_quantities/" class="md-nav__link">
<span class="md-ellipsis">
Systems of Quantities
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../framework_basics/systems_of_units/" class="md-nav__link">
<span class="md-ellipsis">
Systems of Units
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../framework_basics/simple_and_typed_quantities/" class="md-nav__link">
<span class="md-ellipsis">
Simple and Typed Quantities
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../framework_basics/value_conversions/" class="md-nav__link">
<span class="md-ellipsis">
Value Conversions
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../framework_basics/character_of_a_quantity/" class="md-nav__link">
<span class="md-ellipsis">
Character of a Quantity
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../framework_basics/dimensionless_quantities/" class="md-nav__link">
<span class="md-ellipsis">
Dimensionless Quantities
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../framework_basics/quantity_arithmetics/" class="md-nav__link">
<span class="md-ellipsis">
Quantity Arithmetics
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../framework_basics/generic_interfaces/" class="md-nav__link">
<span class="md-ellipsis">
Generic Interfaces
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../framework_basics/faster_than_lightspeed_constants/" class="md-nav__link">
<span class="md-ellipsis">
Faster-than-lightspeed Constants
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../framework_basics/the_affine_space/" class="md-nav__link">
<span class="md-ellipsis">
The Affine Space
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../framework_basics/obtaining_metadata/" class="md-nav__link">
<span class="md-ellipsis">
Obtaining Metadata
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../framework_basics/concepts/" class="md-nav__link">
<span class="md-ellipsis">
Concepts
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../framework_basics/text_output/" class="md-nav__link">
<span class="md-ellipsis">
Text Output
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_3" >
<label class="md-nav__link" for="__nav_3_3" id="__nav_3_3_label" tabindex="0">
<span class="md-ellipsis">
Systems
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_3_3_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_3">
<span class="md-nav__icon md-icon"></span>
Systems
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../systems/introduction/" class="md-nav__link">
<span class="md-ellipsis">
Introduction
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../systems/isq/" class="md-nav__link">
<span class="md-ellipsis">
International System of Quantities (ISQ)
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../systems/si/" class="md-nav__link">
<span class="md-ellipsis">
International System of Units (SI)
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../systems/strong_angular_system/" class="md-nav__link">
<span class="md-ellipsis">
Strong Angular System
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../systems/natural_units/" class="md-nav__link">
<span class="md-ellipsis">
Natural Units
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_4" >
<label class="md-nav__link" for="__nav_3_4" id="__nav_3_4_label" tabindex="0">
<span class="md-ellipsis">
Use Cases
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_3_4_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_4">
<span class="md-nav__icon md-icon"></span>
Use Cases
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../use_cases/pure_dimensional_analysis/" class="md-nav__link">
<span class="md-ellipsis">
Pure Dimensional Analysis
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../use_cases/working_with_legacy_interfaces/" class="md-nav__link">
<span class="md-ellipsis">
Working with Legacy Interfaces
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../use_cases/using_custom_representation_types/" class="md-nav__link">
<span class="md-ellipsis">
Using Custom Representation Types
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../use_cases/interoperability_with_other_libraries/" class="md-nav__link">
<span class="md-ellipsis">
Interoperability with Other Libraries
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../use_cases/extending_the_library/" class="md-nav__link">
<span class="md-ellipsis">
Extending the Library
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../use_cases/wide_compatibility/" class="md-nav__link">
<span class="md-ellipsis">
Wide Compatibility
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--active md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_5" checked>
<label class="md-nav__link" for="__nav_3_5" id="__nav_3_5_label" tabindex="0">
<span class="md-ellipsis">
Examples
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_3_5_label" aria-expanded="true">
<label class="md-nav__title" for="__nav_3_5">
<span class="md-nav__icon md-icon"></span>
Examples
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../tags_index/" class="md-nav__link">
<span class="md-ellipsis">
Tags Index
</span>
</a>
</li>
<li class="md-nav__item md-nav__item--active md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_5_2" checked>
<label class="md-nav__link" for="__nav_3_5_2" id="__nav_3_5_2_label" tabindex="0">
<span class="md-ellipsis">
All Examples
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_3_5_2_label" aria-expanded="true">
<label class="md-nav__title" for="__nav_3_5_2">
<span class="md-nav__icon md-icon"></span>
All Examples
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../hello_units/" class="md-nav__link">
<span class="md-ellipsis">
hello_units
</span>
</a>
</li>
<li class="md-nav__item md-nav__item--active">
<input class="md-nav__toggle md-toggle" type="checkbox" id="__toc">
<a href="./" class="md-nav__link md-nav__link--active">
<span class="md-ellipsis">
avg_speed
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../si_constants/" class="md-nav__link">
<span class="md-ellipsis">
si_constants
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../hw_voltage/" class="md-nav__link">
<span class="md-ellipsis">
hw_voltage
</span>
</a>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_6" >
<label class="md-nav__link" for="__nav_3_6" id="__nav_3_6_label" tabindex="0">
<span class="md-ellipsis">
Appendix
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_3_6_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_6">
<span class="md-nav__icon md-icon"></span>
Appendix
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../../appendix/glossary/" class="md-nav__link">
<span class="md-ellipsis">
Glossary
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../appendix/references/" class="md-nav__link">
<span class="md-ellipsis">
References
</span>
</a>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="../../../api_reference/" class="md-nav__link">
<span class="md-ellipsis">
API Reference
</span>
</a>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_5" >
<div class="md-nav__link md-nav__container">
<a href="../../../blog/" class="md-nav__link ">
<span class="md-ellipsis">
Blog
</span>
</a>
<label class="md-nav__link " for="__nav_5" id="__nav_5_label" tabindex="0">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_5_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_5">
<span class="md-nav__icon md-icon"></span>
Blog
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_5_2" >
<label class="md-nav__link" for="__nav_5_2" id="__nav_5_2_label" tabindex="0">
<span class="md-ellipsis">
Archive
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_5_2_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_5_2">
<span class="md-nav__icon md-icon"></span>
Archive
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../../blog/archive/2024/" class="md-nav__link">
<span class="md-ellipsis">
2024
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../blog/archive/2023/" class="md-nav__link">
<span class="md-ellipsis">
2023
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_5_3" >
<label class="md-nav__link" for="__nav_5_3" id="__nav_5_3_label" tabindex="0">
<span class="md-ellipsis">
Categories
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_5_3_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_5_3">
<span class="md-nav__icon md-icon"></span>
Categories
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../../blog/category/metrology/" class="md-nav__link">
<span class="md-ellipsis">
Metrology
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../blog/category/releases/" class="md-nav__link">
<span class="md-ellipsis">
Releases
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../blog/category/wg21-updates/" class="md-nav__link">
<span class="md-ellipsis">
WG21 Updates
</span>
</a>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="../../../release_notes/" class="md-nav__link">
<span class="md-ellipsis">
Release Notes
</span>
</a>
</li>
</ul>
</nav>
</div>
</div>
</div>
<div class="md-content" data-md-component="content">
<article class="md-content__inner md-typeset">
<nav class="md-tags" >
<a href="../tags_index/#cgs-system" class="md-tag">CGS System</a>
<a href="../tags_index/#international-system" class="md-tag">International System</a>
</nav>
<a href="https://github.com/mpusz/mp-units/edit/master/docs/users_guide/examples/avg_speed.md" title="Edit this page" class="md-content__button md-icon">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M10 20H6V4h7v5h5v3.1l2-2V8l-6-6H6c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h4zm10.2-7c.1 0 .3.1.4.2l1.3 1.3c.2.2.2.6 0 .8l-1 1-2.1-2.1 1-1c.1-.1.2-.2.4-.2m0 3.9L14.1 23H12v-2.1l6.1-6.1z"/></svg>
</a>
<a href="https://github.com/mpusz/mp-units/raw/master/docs/users_guide/examples/avg_speed.md" title="View source of this page" class="md-content__button md-icon">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M17 18c.56 0 1 .44 1 1s-.44 1-1 1-1-.44-1-1 .44-1 1-1m0-3c-2.73 0-5.06 1.66-6 4 .94 2.34 3.27 4 6 4s5.06-1.66 6-4c-.94-2.34-3.27-4-6-4m0 6.5a2.5 2.5 0 0 1-2.5-2.5 2.5 2.5 0 0 1 2.5-2.5 2.5 2.5 0 0 1 2.5 2.5 2.5 2.5 0 0 1-2.5 2.5M9.27 20H6V4h7v5h5v4.07c.7.08 1.36.25 2 .49V8l-6-6H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h4.5a8.2 8.2 0 0 1-1.23-2"/></svg>
</a>
<h1 id="avg_speed"><code>avg_speed</code><a class="headerlink" href="#avg_speed" title="Permanent link">&para;</a></h1>
<div class="admonition example">
<p class="admonition-title"><a href="https://godbolt.org/z/v9c5T6bc4">Try it on Compiler Explorer</a></p>
</div>
<p>Let's continue the previous example. This time, our purpose will not be to showcase as many
library features as possible, but we will scope on different interfaces one can provide
with the <strong>mp-units</strong>. We will also describe some advantages and disadvantages of presented
solutions.</p>
<p>First, we either import a module or include all the necessary header files and import all
the identifiers from the <code>mp_units</code> namespace:</p>
<div class="language-cpp highlight"><table class="highlighttable"><tr><th colspan="2" class="filename"><span class="filename">avg_speed.cpp</span></th></tr><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-1"> 1</a></span>
<span class="normal"><a href="#__codelineno-0-2"> 2</a></span>
<span class="normal"><a href="#__codelineno-0-3"> 3</a></span>
<span class="normal"><a href="#__codelineno-0-4"> 4</a></span>
<span class="normal"><a href="#__codelineno-0-5"> 5</a></span>
<span class="normal"><a href="#__codelineno-0-6"> 6</a></span>
<span class="normal"><a href="#__codelineno-0-7"> 7</a></span>
<span class="normal"><a href="#__codelineno-0-8"> 8</a></span>
<span class="normal"><a href="#__codelineno-0-9"> 9</a></span>
<span class="normal"><a href="#__codelineno-0-10">10</a></span>
<span class="normal"><a href="#__codelineno-0-11">11</a></span>
<span class="normal"><a href="#__codelineno-0-12">12</a></span>
<span class="normal"><a href="#__codelineno-0-13">13</a></span>
<span class="normal"><a href="#__codelineno-0-14">14</a></span>
<span class="normal"><a href="#__codelineno-0-15">15</a></span>
<span class="normal"><a href="#__codelineno-0-16">16</a></span>
<span class="normal"><a href="#__codelineno-0-17">17</a></span>
<span class="normal"><a href="#__codelineno-0-18">18</a></span>
<span class="normal"><a href="#__codelineno-0-19">19</a></span></pre></div></td><td class="code"><div><pre><span></span><code><span id="__span-0-1"><a id="__codelineno-0-1" name="__codelineno-0-1"></a><span class="cp">#ifdef MP_UNITS_IMPORT_STD</span>
</span><span id="__span-0-2"><a id="__codelineno-0-2" name="__codelineno-0-2"></a><span class="k">import</span><span class="w"> </span><span class="n">std</span><span class="p">;</span>
</span><span id="__span-0-3"><a id="__codelineno-0-3" name="__codelineno-0-3"></a><span class="cp">#else</span>
</span><span id="__span-0-4"><a id="__codelineno-0-4" name="__codelineno-0-4"></a><span class="cp">#include</span><span class="w"> </span><span class="cpf">&lt;exception&gt;</span>
</span><span id="__span-0-5"><a id="__codelineno-0-5" name="__codelineno-0-5"></a><span class="cp">#include</span><span class="w"> </span><span class="cpf">&lt;iostream&gt;</span>
</span><span id="__span-0-6"><a id="__codelineno-0-6" name="__codelineno-0-6"></a><span class="cp">#endif</span>
</span><span id="__span-0-7"><a id="__codelineno-0-7" name="__codelineno-0-7"></a><span class="cp">#ifdef MP_UNITS_MODULES</span>
</span><span id="__span-0-8"><a id="__codelineno-0-8" name="__codelineno-0-8"></a><span class="k">import</span><span class="w"> </span><span class="n">mp_units</span><span class="p">;</span>
</span><span id="__span-0-9"><a id="__codelineno-0-9" name="__codelineno-0-9"></a><span class="cp">#else</span>
</span><span id="__span-0-10"><a id="__codelineno-0-10" name="__codelineno-0-10"></a><span class="cp">#include</span><span class="w"> </span><span class="cpf">&lt;mp-units/ostream.h&gt;</span>
</span><span id="__span-0-11"><a id="__codelineno-0-11" name="__codelineno-0-11"></a><span class="cp">#include</span><span class="w"> </span><span class="cpf">&lt;mp-units/systems/cgs.h&gt;</span>
</span><span id="__span-0-12"><a id="__codelineno-0-12" name="__codelineno-0-12"></a><span class="cp">#include</span><span class="w"> </span><span class="cpf">&lt;mp-units/systems/international.h&gt;</span>
</span><span id="__span-0-13"><a id="__codelineno-0-13" name="__codelineno-0-13"></a><span class="cp">#include</span><span class="w"> </span><span class="cpf">&lt;mp-units/systems/isq.h&gt;</span>
</span><span id="__span-0-14"><a id="__codelineno-0-14" name="__codelineno-0-14"></a><span class="cp">#include</span><span class="w"> </span><span class="cpf">&lt;mp-units/systems/si.h&gt;</span>
</span><span id="__span-0-15"><a id="__codelineno-0-15" name="__codelineno-0-15"></a><span class="cp">#endif</span>
</span><span id="__span-0-16"><a id="__codelineno-0-16" name="__codelineno-0-16"></a>
</span><span id="__span-0-17"><a id="__codelineno-0-17" name="__codelineno-0-17"></a><span class="k">namespace</span><span class="w"> </span><span class="p">{</span>
</span><span id="__span-0-18"><a id="__codelineno-0-18" name="__codelineno-0-18"></a>
</span><span id="__span-0-19"><a id="__codelineno-0-19" name="__codelineno-0-19"></a><span class="k">using</span><span class="w"> </span><span class="k">namespace</span><span class="w"> </span><span class="nn">mp_units</span><span class="p">;</span>
</span></code></pre></div></td></tr></table></div>
<p>Next, we define two functions calculating average speed based on quantities of fixed units
and integral and floating-point representation types, respectively, and a third function
that we introduced in the <a href="../hello_units/">previous example</a>:</p>
<div class="language-cpp highlight"><table class="highlighttable"><tr><th colspan="2" class="filename"><span class="filename">avg_speed.cpp</span></th></tr><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-1-20">20</a></span>
<span class="normal"><a href="#__codelineno-1-21">21</a></span>
<span class="normal"><a href="#__codelineno-1-22">22</a></span>
<span class="normal"><a href="#__codelineno-1-23">23</a></span>
<span class="normal"><a href="#__codelineno-1-24">24</a></span>
<span class="normal"><a href="#__codelineno-1-25">25</a></span>
<span class="normal"><a href="#__codelineno-1-26">26</a></span>
<span class="normal"><a href="#__codelineno-1-27">27</a></span>
<span class="normal"><a href="#__codelineno-1-28">28</a></span>
<span class="normal"><a href="#__codelineno-1-29">29</a></span>
<span class="normal"><a href="#__codelineno-1-30">30</a></span>
<span class="normal"><a href="#__codelineno-1-31">31</a></span>
<span class="normal"><a href="#__codelineno-1-32">32</a></span>
<span class="normal"><a href="#__codelineno-1-33">33</a></span>
<span class="normal"><a href="#__codelineno-1-34">34</a></span></pre></div></td><td class="code"><div><pre><span></span><code><span id="__span-1-20"><a id="__codelineno-1-20" name="__codelineno-1-20"></a><span class="k">constexpr</span><span class="w"> </span><span class="n">quantity</span><span class="o">&lt;</span><span class="n">si</span><span class="o">::</span><span class="n">metre</span><span class="w"> </span><span class="o">/</span><span class="w"> </span><span class="n">si</span><span class="o">::</span><span class="n">second</span><span class="p">,</span><span class="w"> </span><span class="kt">int</span><span class="o">&gt;</span><span class="w"> </span><span class="n">fixed_int_si_avg_speed</span><span class="p">(</span><span class="n">quantity</span><span class="o">&lt;</span><span class="n">si</span><span class="o">::</span><span class="n">metre</span><span class="p">,</span><span class="w"> </span><span class="kt">int</span><span class="o">&gt;</span><span class="w"> </span><span class="n">d</span><span class="p">,</span>
</span><span id="__span-1-21"><a id="__codelineno-1-21" name="__codelineno-1-21"></a><span class="w"> </span><span class="n">quantity</span><span class="o">&lt;</span><span class="n">si</span><span class="o">::</span><span class="n">second</span><span class="p">,</span><span class="w"> </span><span class="kt">int</span><span class="o">&gt;</span><span class="w"> </span><span class="n">t</span><span class="p">)</span>
</span><span id="__span-1-22"><a id="__codelineno-1-22" name="__codelineno-1-22"></a><span class="p">{</span>
</span><span id="__span-1-23"><a id="__codelineno-1-23" name="__codelineno-1-23"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">d</span><span class="w"> </span><span class="o">/</span><span class="w"> </span><span class="n">t</span><span class="p">;</span>
</span><span id="__span-1-24"><a id="__codelineno-1-24" name="__codelineno-1-24"></a><span class="p">}</span>
</span><span id="__span-1-25"><a id="__codelineno-1-25" name="__codelineno-1-25"></a>
</span><span id="__span-1-26"><a id="__codelineno-1-26" name="__codelineno-1-26"></a><span class="k">constexpr</span><span class="w"> </span><span class="n">quantity</span><span class="o">&lt;</span><span class="n">si</span><span class="o">::</span><span class="n">metre</span><span class="w"> </span><span class="o">/</span><span class="w"> </span><span class="n">si</span><span class="o">::</span><span class="n">second</span><span class="o">&gt;</span><span class="w"> </span><span class="n">fixed_double_si_avg_speed</span><span class="p">(</span><span class="n">quantity</span><span class="o">&lt;</span><span class="n">si</span><span class="o">::</span><span class="n">metre</span><span class="o">&gt;</span><span class="w"> </span><span class="n">d</span><span class="p">,</span><span class="w"> </span><span class="n">quantity</span><span class="o">&lt;</span><span class="n">si</span><span class="o">::</span><span class="n">second</span><span class="o">&gt;</span><span class="w"> </span><span class="n">t</span><span class="p">)</span>
</span><span id="__span-1-27"><a id="__codelineno-1-27" name="__codelineno-1-27"></a><span class="p">{</span>
</span><span id="__span-1-28"><a id="__codelineno-1-28" name="__codelineno-1-28"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">d</span><span class="w"> </span><span class="o">/</span><span class="w"> </span><span class="n">t</span><span class="p">;</span>
</span><span id="__span-1-29"><a id="__codelineno-1-29" name="__codelineno-1-29"></a><span class="p">}</span>
</span><span id="__span-1-30"><a id="__codelineno-1-30" name="__codelineno-1-30"></a>
</span><span id="__span-1-31"><a id="__codelineno-1-31" name="__codelineno-1-31"></a><span class="k">constexpr</span><span class="w"> </span><span class="n">QuantityOf</span><span class="o">&lt;</span><span class="n">isq</span><span class="o">::</span><span class="n">speed</span><span class="o">&gt;</span><span class="w"> </span><span class="k">auto</span><span class="w"> </span><span class="n">avg_speed</span><span class="p">(</span><span class="n">QuantityOf</span><span class="o">&lt;</span><span class="n">isq</span><span class="o">::</span><span class="n">length</span><span class="o">&gt;</span><span class="w"> </span><span class="k">auto</span><span class="w"> </span><span class="n">d</span><span class="p">,</span><span class="w"> </span><span class="n">QuantityOf</span><span class="o">&lt;</span><span class="n">isq</span><span class="o">::</span><span class="n">time</span><span class="o">&gt;</span><span class="w"> </span><span class="k">auto</span><span class="w"> </span><span class="n">t</span><span class="p">)</span>
</span><span id="__span-1-32"><a id="__codelineno-1-32" name="__codelineno-1-32"></a><span class="p">{</span>
</span><span id="__span-1-33"><a id="__codelineno-1-33" name="__codelineno-1-33"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">d</span><span class="w"> </span><span class="o">/</span><span class="w"> </span><span class="n">t</span><span class="p">;</span>
</span><span id="__span-1-34"><a id="__codelineno-1-34" name="__codelineno-1-34"></a><span class="p">}</span>
</span></code></pre></div></td></tr></table></div>
<p>We also added a simple utility to print our results:</p>
<div class="language-cpp highlight"><table class="highlighttable"><tr><th colspan="2" class="filename"><span class="filename">avg_speed.cpp</span></th></tr><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-2-35">35</a></span>
<span class="normal"><a href="#__codelineno-2-36">36</a></span>
<span class="normal"><a href="#__codelineno-2-37">37</a></span>
<span class="normal"><a href="#__codelineno-2-38">38</a></span>
<span class="normal"><a href="#__codelineno-2-39">39</a></span>
<span class="normal"><a href="#__codelineno-2-40">40</a></span>
<span class="normal"><a href="#__codelineno-2-41">41</a></span></pre></div></td><td class="code"><div><pre><span></span><code><span id="__span-2-35"><a id="__codelineno-2-35" name="__codelineno-2-35"></a><span class="k">template</span><span class="o">&lt;</span><span class="n">QuantityOf</span><span class="o">&lt;</span><span class="n">isq</span><span class="o">::</span><span class="n">length</span><span class="o">&gt;</span><span class="w"> </span><span class="n">D</span><span class="p">,</span><span class="w"> </span><span class="n">QuantityOf</span><span class="o">&lt;</span><span class="n">isq</span><span class="o">::</span><span class="n">time</span><span class="o">&gt;</span><span class="w"> </span><span class="n">T</span><span class="p">,</span><span class="w"> </span><span class="n">QuantityOf</span><span class="o">&lt;</span><span class="n">isq</span><span class="o">::</span><span class="n">speed</span><span class="o">&gt;</span><span class="w"> </span><span class="n">V</span><span class="o">&gt;</span>
</span><span id="__span-2-36"><a id="__codelineno-2-36" name="__codelineno-2-36"></a><span class="kt">void</span><span class="w"> </span><span class="n">print_result</span><span class="p">(</span><span class="n">D</span><span class="w"> </span><span class="n">distance</span><span class="p">,</span><span class="w"> </span><span class="n">T</span><span class="w"> </span><span class="n">duration</span><span class="p">,</span><span class="w"> </span><span class="n">V</span><span class="w"> </span><span class="n">speed</span><span class="p">)</span>
</span><span id="__span-2-37"><a id="__codelineno-2-37" name="__codelineno-2-37"></a><span class="p">{</span>
</span><span id="__span-2-38"><a id="__codelineno-2-38" name="__codelineno-2-38"></a><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="k">auto</span><span class="w"> </span><span class="n">result_in_kmph</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">speed</span><span class="p">.</span><span class="n">force_in</span><span class="p">(</span><span class="n">si</span><span class="o">::</span><span class="n">kilo</span><span class="o">&lt;</span><span class="n">si</span><span class="o">::</span><span class="n">metre</span><span class="o">&gt;</span><span class="w"> </span><span class="o">/</span><span class="w"> </span><span class="n">non_si</span><span class="o">::</span><span class="n">hour</span><span class="p">);</span>
</span><span id="__span-2-39"><a id="__codelineno-2-39" name="__codelineno-2-39"></a><span class="w"> </span><span class="n">std</span><span class="o">::</span><span class="n">cout</span><span class="w"> </span><span class="o">&lt;&lt;</span><span class="w"> </span><span class="s">&quot;Average speed of a car that makes &quot;</span><span class="w"> </span><span class="o">&lt;&lt;</span><span class="w"> </span><span class="n">distance</span><span class="w"> </span><span class="o">&lt;&lt;</span><span class="w"> </span><span class="s">&quot; in &quot;</span><span class="w"> </span><span class="o">&lt;&lt;</span><span class="w"> </span><span class="n">duration</span><span class="w"> </span><span class="o">&lt;&lt;</span><span class="w"> </span><span class="s">&quot; is &quot;</span><span class="w"> </span><span class="o">&lt;&lt;</span><span class="w"> </span><span class="n">result_in_kmph</span>
</span><span id="__span-2-40"><a id="__codelineno-2-40" name="__codelineno-2-40"></a><span class="w"> </span><span class="o">&lt;&lt;</span><span class="w"> </span><span class="s">&quot;.</span><span class="se">\n</span><span class="s">&quot;</span><span class="p">;</span>
</span><span id="__span-2-41"><a id="__codelineno-2-41" name="__codelineno-2-41"></a><span class="p">}</span>
</span></code></pre></div></td></tr></table></div>
<p>Now, let's analyze how those three utility functions behave with different sets of arguments.
First, we are going to use quantities of SI units and integral representation:</p>
<div class="language-cpp highlight"><table class="highlighttable"><tr><th colspan="2" class="filename"><span class="filename">avg_speed.cpp</span></th></tr><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-3-42">42</a></span>
<span class="normal"><a href="#__codelineno-3-43">43</a></span>
<span class="normal"><a href="#__codelineno-3-44">44</a></span>
<span class="normal"><a href="#__codelineno-3-45">45</a></span>
<span class="normal"><a href="#__codelineno-3-46">46</a></span>
<span class="normal"><a href="#__codelineno-3-47">47</a></span>
<span class="normal"><a href="#__codelineno-3-48">48</a></span>
<span class="normal"><a href="#__codelineno-3-49">49</a></span>
<span class="normal"><a href="#__codelineno-3-50">50</a></span>
<span class="normal"><a href="#__codelineno-3-51">51</a></span>
<span class="normal"><a href="#__codelineno-3-52">52</a></span>
<span class="normal"><a href="#__codelineno-3-53">53</a></span>
<span class="normal"><a href="#__codelineno-3-54">54</a></span>
<span class="normal"><a href="#__codelineno-3-55">55</a></span>
<span class="normal"><a href="#__codelineno-3-56">56</a></span></pre></div></td><td class="code"><div><pre><span></span><code><span id="__span-3-42"><a id="__codelineno-3-42" name="__codelineno-3-42"></a><span class="kt">void</span><span class="w"> </span><span class="nf">example</span><span class="p">()</span>
</span><span id="__span-3-43"><a id="__codelineno-3-43" name="__codelineno-3-43"></a><span class="p">{</span>
</span><span id="__span-3-44"><a id="__codelineno-3-44" name="__codelineno-3-44"></a><span class="w"> </span><span class="k">using</span><span class="w"> </span><span class="k">namespace</span><span class="w"> </span><span class="nn">mp_units</span><span class="o">::</span><span class="nn">si</span><span class="o">::</span><span class="nn">unit_symbols</span><span class="p">;</span>
</span><span id="__span-3-45"><a id="__codelineno-3-45" name="__codelineno-3-45"></a>
</span><span id="__span-3-46"><a id="__codelineno-3-46" name="__codelineno-3-46"></a><span class="w"> </span><span class="c1">// SI (int)</span>
</span><span id="__span-3-47"><a id="__codelineno-3-47" name="__codelineno-3-47"></a><span class="w"> </span><span class="p">{</span>
</span><span id="__span-3-48"><a id="__codelineno-3-48" name="__codelineno-3-48"></a><span class="w"> </span><span class="k">constexpr</span><span class="w"> </span><span class="k">auto</span><span class="w"> </span><span class="n">distance</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">220</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="n">km</span><span class="p">;</span>
</span><span id="__span-3-49"><a id="__codelineno-3-49" name="__codelineno-3-49"></a><span class="w"> </span><span class="k">constexpr</span><span class="w"> </span><span class="k">auto</span><span class="w"> </span><span class="n">duration</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">2</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="n">h</span><span class="p">;</span>
</span><span id="__span-3-50"><a id="__codelineno-3-50" name="__codelineno-3-50"></a>
</span><span id="__span-3-51"><a id="__codelineno-3-51" name="__codelineno-3-51"></a><span class="w"> </span><span class="n">std</span><span class="o">::</span><span class="n">cout</span><span class="w"> </span><span class="o">&lt;&lt;</span><span class="w"> </span><span class="s">&quot;SI units with &#39;int&#39; as representation</span><span class="se">\n</span><span class="s">&quot;</span><span class="p">;</span>
</span><span id="__span-3-52"><a id="__codelineno-3-52" name="__codelineno-3-52"></a>
</span><span id="__span-3-53"><a id="__codelineno-3-53" name="__codelineno-3-53"></a><span class="w"> </span><span class="n">print_result</span><span class="p">(</span><span class="n">distance</span><span class="p">,</span><span class="w"> </span><span class="n">duration</span><span class="p">,</span><span class="w"> </span><span class="n">fixed_int_si_avg_speed</span><span class="p">(</span><span class="n">distance</span><span class="p">,</span><span class="w"> </span><span class="n">duration</span><span class="p">));</span>
</span><span id="__span-3-54"><a id="__codelineno-3-54" name="__codelineno-3-54"></a><span class="w"> </span><span class="n">print_result</span><span class="p">(</span><span class="n">distance</span><span class="p">,</span><span class="w"> </span><span class="n">duration</span><span class="p">,</span><span class="w"> </span><span class="n">fixed_double_si_avg_speed</span><span class="p">(</span><span class="n">distance</span><span class="p">,</span><span class="w"> </span><span class="n">duration</span><span class="p">));</span>
</span><span id="__span-3-55"><a id="__codelineno-3-55" name="__codelineno-3-55"></a><span class="w"> </span><span class="n">print_result</span><span class="p">(</span><span class="n">distance</span><span class="p">,</span><span class="w"> </span><span class="n">duration</span><span class="p">,</span><span class="w"> </span><span class="n">avg_speed</span><span class="p">(</span><span class="n">distance</span><span class="p">,</span><span class="w"> </span><span class="n">duration</span><span class="p">));</span>
</span><span id="__span-3-56"><a id="__codelineno-3-56" name="__codelineno-3-56"></a><span class="w"> </span><span class="p">}</span>
</span></code></pre></div></td></tr></table></div>
<p>The above provides the following output:</p>
<div class="language-text highlight"><pre><span></span><code><span id="__span-4-1"><a id="__codelineno-4-1" name="__codelineno-4-1" href="#__codelineno-4-1"></a>SI units with &#39;int&#39; as representation
</span><span id="__span-4-2"><a id="__codelineno-4-2" name="__codelineno-4-2" href="#__codelineno-4-2"></a>Average speed of a car that makes 220 km in 2 h is 108 km/h.
</span><span id="__span-4-3"><a id="__codelineno-4-3" name="__codelineno-4-3" href="#__codelineno-4-3"></a>Average speed of a car that makes 220 km in 2 h is 110 km/h.
</span><span id="__span-4-4"><a id="__codelineno-4-4" name="__codelineno-4-4" href="#__codelineno-4-4"></a>Average speed of a car that makes 220 km in 2 h is 110 km/h.
</span></code></pre></div>
<p>Please note that in the first two cases, we must convert length from <code>km</code> to <code>m</code> and
time from <code>h</code> to <code>s</code>. The converted values are used to calculate speed in <code>m/s</code> which
is then again converted to the one in <code>km/h</code>. Those conversions not only impact the
application's runtime performance but may also affect the precision of the final result.
Such truncation can be easily observed in the first case where we deal with integral
representation types (the resulting speed is <code>108 km/h</code>).</p>
<p>The second scenario is really similar to the previous one, but this time, function arguments
have floating-point representation types:</p>
<div class="language-cpp highlight"><table class="highlighttable"><tr><th colspan="2" class="filename"><span class="filename">avg_speed.cpp</span></th></tr><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-5-57">57</a></span>
<span class="normal"><a href="#__codelineno-5-58">58</a></span>
<span class="normal"><a href="#__codelineno-5-59">59</a></span>
<span class="normal"><a href="#__codelineno-5-60">60</a></span>
<span class="normal"><a href="#__codelineno-5-61">61</a></span>
<span class="normal"><a href="#__codelineno-5-62">62</a></span>
<span class="normal"><a href="#__codelineno-5-63">63</a></span>
<span class="normal"><a href="#__codelineno-5-64">64</a></span>
<span class="normal"><a href="#__codelineno-5-65">65</a></span>
<span class="normal"><a href="#__codelineno-5-66">66</a></span>
<span class="normal"><a href="#__codelineno-5-67">67</a></span>
<span class="normal"><a href="#__codelineno-5-68">68</a></span></pre></div></td><td class="code"><div><pre><span></span><code><span id="__span-5-57"><a id="__codelineno-5-57" name="__codelineno-5-57"></a><span class="w"> </span><span class="c1">// SI (double)</span>
</span><span id="__span-5-58"><a id="__codelineno-5-58" name="__codelineno-5-58"></a><span class="w"> </span><span class="p">{</span>
</span><span id="__span-5-59"><a id="__codelineno-5-59" name="__codelineno-5-59"></a><span class="w"> </span><span class="k">constexpr</span><span class="w"> </span><span class="k">auto</span><span class="w"> </span><span class="n">distance</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mf">220.</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="n">km</span><span class="p">;</span>
</span><span id="__span-5-60"><a id="__codelineno-5-60" name="__codelineno-5-60"></a><span class="w"> </span><span class="k">constexpr</span><span class="w"> </span><span class="k">auto</span><span class="w"> </span><span class="n">duration</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mf">2.</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="n">h</span><span class="p">;</span>
</span><span id="__span-5-61"><a id="__codelineno-5-61" name="__codelineno-5-61"></a>
</span><span id="__span-5-62"><a id="__codelineno-5-62" name="__codelineno-5-62"></a><span class="w"> </span><span class="n">std</span><span class="o">::</span><span class="n">cout</span><span class="w"> </span><span class="o">&lt;&lt;</span><span class="w"> </span><span class="s">&quot;</span><span class="se">\n</span><span class="s">SI units with &#39;double&#39; as representation</span><span class="se">\n</span><span class="s">&quot;</span><span class="p">;</span>
</span><span id="__span-5-63"><a id="__codelineno-5-63" name="__codelineno-5-63"></a>
</span><span id="__span-5-64"><a id="__codelineno-5-64" name="__codelineno-5-64"></a><span class="w"> </span><span class="c1">// conversion from a floating-point to an integral type is a truncating one so an explicit cast is needed</span>
</span><span id="__span-5-65"><a id="__codelineno-5-65" name="__codelineno-5-65"></a><span class="w"> </span><span class="n">print_result</span><span class="p">(</span><span class="n">distance</span><span class="p">,</span><span class="w"> </span><span class="n">duration</span><span class="p">,</span><span class="w"> </span><span class="n">fixed_int_si_avg_speed</span><span class="p">(</span><span class="n">value_cast</span><span class="o">&lt;</span><span class="kt">int</span><span class="o">&gt;</span><span class="p">(</span><span class="n">distance</span><span class="p">),</span><span class="w"> </span><span class="n">value_cast</span><span class="o">&lt;</span><span class="kt">int</span><span class="o">&gt;</span><span class="p">(</span><span class="n">duration</span><span class="p">)));</span>
</span><span id="__span-5-66"><a id="__codelineno-5-66" name="__codelineno-5-66"></a><span class="w"> </span><span class="n">print_result</span><span class="p">(</span><span class="n">distance</span><span class="p">,</span><span class="w"> </span><span class="n">duration</span><span class="p">,</span><span class="w"> </span><span class="n">fixed_double_si_avg_speed</span><span class="p">(</span><span class="n">distance</span><span class="p">,</span><span class="w"> </span><span class="n">duration</span><span class="p">));</span>
</span><span id="__span-5-67"><a id="__codelineno-5-67" name="__codelineno-5-67"></a><span class="w"> </span><span class="n">print_result</span><span class="p">(</span><span class="n">distance</span><span class="p">,</span><span class="w"> </span><span class="n">duration</span><span class="p">,</span><span class="w"> </span><span class="n">avg_speed</span><span class="p">(</span><span class="n">distance</span><span class="p">,</span><span class="w"> </span><span class="n">duration</span><span class="p">));</span>
</span><span id="__span-5-68"><a id="__codelineno-5-68" name="__codelineno-5-68"></a><span class="w"> </span><span class="p">}</span>
</span></code></pre></div></td></tr></table></div>
<p>Conversion from floating-point to integral representation types is
<a href="../../framework_basics/value_conversions/#value-truncating-conversions">considered value-truncating</a>
and that is why now, in the first case, we need an explicit call to <code>value_cast&lt;int&gt;</code>.</p>
<p>In the text output, we can observe that, again, the resulting value gets truncated during conversions
in the first cast:</p>
<div class="language-text highlight"><pre><span></span><code><span id="__span-6-1"><a id="__codelineno-6-1" name="__codelineno-6-1" href="#__codelineno-6-1"></a>SI units with &#39;double&#39; as representation
</span><span id="__span-6-2"><a id="__codelineno-6-2" name="__codelineno-6-2" href="#__codelineno-6-2"></a>Average speed of a car that makes 220 km in 2 h is 108 km/h.
</span><span id="__span-6-3"><a id="__codelineno-6-3" name="__codelineno-6-3" href="#__codelineno-6-3"></a>Average speed of a car that makes 220 km in 2 h is 110 km/h.
</span><span id="__span-6-4"><a id="__codelineno-6-4" name="__codelineno-6-4" href="#__codelineno-6-4"></a>Average speed of a car that makes 220 km in 2 h is 110 km/h.
</span></code></pre></div>
<p>Next, let's do the same for integral and floating-point representations, but this time
using international mile:</p>
<div class="language-cpp highlight"><table class="highlighttable"><tr><th colspan="2" class="filename"><span class="filename">avg_speed.cpp</span></th></tr><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-7-69"> 69</a></span>
<span class="normal"><a href="#__codelineno-7-70"> 70</a></span>
<span class="normal"><a href="#__codelineno-7-71"> 71</a></span>
<span class="normal"><a href="#__codelineno-7-72"> 72</a></span>
<span class="normal"><a href="#__codelineno-7-73"> 73</a></span>
<span class="normal"><a href="#__codelineno-7-74"> 74</a></span>
<span class="normal"><a href="#__codelineno-7-75"> 75</a></span>
<span class="normal"><a href="#__codelineno-7-76"> 76</a></span>
<span class="normal"><a href="#__codelineno-7-77"> 77</a></span>
<span class="normal"><a href="#__codelineno-7-78"> 78</a></span>
<span class="normal"><a href="#__codelineno-7-79"> 79</a></span>
<span class="normal"><a href="#__codelineno-7-80"> 80</a></span>
<span class="normal"><a href="#__codelineno-7-81"> 81</a></span>
<span class="normal"><a href="#__codelineno-7-82"> 82</a></span>
<span class="normal"><a href="#__codelineno-7-83"> 83</a></span>
<span class="normal"><a href="#__codelineno-7-84"> 84</a></span>
<span class="normal"><a href="#__codelineno-7-85"> 85</a></span>
<span class="normal"><a href="#__codelineno-7-86"> 86</a></span>
<span class="normal"><a href="#__codelineno-7-87"> 87</a></span>
<span class="normal"><a href="#__codelineno-7-88"> 88</a></span>
<span class="normal"><a href="#__codelineno-7-89"> 89</a></span>
<span class="normal"><a href="#__codelineno-7-90"> 90</a></span>
<span class="normal"><a href="#__codelineno-7-91"> 91</a></span>
<span class="normal"><a href="#__codelineno-7-92"> 92</a></span>
<span class="normal"><a href="#__codelineno-7-93"> 93</a></span>
<span class="normal"><a href="#__codelineno-7-94"> 94</a></span>
<span class="normal"><a href="#__codelineno-7-95"> 95</a></span>
<span class="normal"><a href="#__codelineno-7-96"> 96</a></span>
<span class="normal"><a href="#__codelineno-7-97"> 97</a></span>
<span class="normal"><a href="#__codelineno-7-98"> 98</a></span>
<span class="normal"><a href="#__codelineno-7-99"> 99</a></span>
<span class="normal"><a href="#__codelineno-7-100">100</a></span></pre></div></td><td class="code"><div><pre><span></span><code><span id="__span-7-69"><a id="__codelineno-7-69" name="__codelineno-7-69"></a><span class="w"> </span><span class="c1">// International mile (int)</span>
</span><span id="__span-7-70"><a id="__codelineno-7-70" name="__codelineno-7-70"></a><span class="w"> </span><span class="p">{</span>
</span><span id="__span-7-71"><a id="__codelineno-7-71" name="__codelineno-7-71"></a><span class="w"> </span><span class="k">using</span><span class="w"> </span><span class="k">namespace</span><span class="w"> </span><span class="nn">mp_units</span><span class="o">::</span><span class="nn">international</span><span class="o">::</span><span class="nn">unit_symbols</span><span class="p">;</span>
</span><span id="__span-7-72"><a id="__codelineno-7-72" name="__codelineno-7-72"></a>
</span><span id="__span-7-73"><a id="__codelineno-7-73" name="__codelineno-7-73"></a><span class="w"> </span><span class="k">constexpr</span><span class="w"> </span><span class="k">auto</span><span class="w"> </span><span class="n">distance</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">140</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="n">mi</span><span class="p">;</span>
</span><span id="__span-7-74"><a id="__codelineno-7-74" name="__codelineno-7-74"></a><span class="w"> </span><span class="k">constexpr</span><span class="w"> </span><span class="k">auto</span><span class="w"> </span><span class="n">duration</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">2</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="n">h</span><span class="p">;</span>
</span><span id="__span-7-75"><a id="__codelineno-7-75" name="__codelineno-7-75"></a>
</span><span id="__span-7-76"><a id="__codelineno-7-76" name="__codelineno-7-76"></a><span class="w"> </span><span class="n">std</span><span class="o">::</span><span class="n">cout</span><span class="w"> </span><span class="o">&lt;&lt;</span><span class="w"> </span><span class="s">&quot;</span><span class="se">\n</span><span class="s">International mile with &#39;int&#39; as representation</span><span class="se">\n</span><span class="s">&quot;</span><span class="p">;</span>
</span><span id="__span-7-77"><a id="__codelineno-7-77" name="__codelineno-7-77"></a>
</span><span id="__span-7-78"><a id="__codelineno-7-78" name="__codelineno-7-78"></a><span class="w"> </span><span class="c1">// it is not possible to make a lossless conversion of miles to meters on an integral type</span>
</span><span id="__span-7-79"><a id="__codelineno-7-79" name="__codelineno-7-79"></a><span class="w"> </span><span class="c1">// (explicit cast needed)</span>
</span><span id="__span-7-80"><a id="__codelineno-7-80" name="__codelineno-7-80"></a><span class="w"> </span><span class="n">print_result</span><span class="p">(</span><span class="n">distance</span><span class="p">,</span><span class="w"> </span><span class="n">duration</span><span class="p">,</span><span class="w"> </span><span class="n">fixed_int_si_avg_speed</span><span class="p">(</span><span class="n">distance</span><span class="p">.</span><span class="n">force_in</span><span class="p">(</span><span class="n">m</span><span class="p">),</span><span class="w"> </span><span class="n">duration</span><span class="p">));</span>
</span><span id="__span-7-81"><a id="__codelineno-7-81" name="__codelineno-7-81"></a><span class="w"> </span><span class="n">print_result</span><span class="p">(</span><span class="n">distance</span><span class="p">,</span><span class="w"> </span><span class="n">duration</span><span class="p">,</span><span class="w"> </span><span class="n">fixed_double_si_avg_speed</span><span class="p">(</span><span class="n">distance</span><span class="p">,</span><span class="w"> </span><span class="n">duration</span><span class="p">));</span>
</span><span id="__span-7-82"><a id="__codelineno-7-82" name="__codelineno-7-82"></a><span class="w"> </span><span class="n">print_result</span><span class="p">(</span><span class="n">distance</span><span class="p">,</span><span class="w"> </span><span class="n">duration</span><span class="p">,</span><span class="w"> </span><span class="n">avg_speed</span><span class="p">(</span><span class="n">distance</span><span class="p">,</span><span class="w"> </span><span class="n">duration</span><span class="p">));</span>
</span><span id="__span-7-83"><a id="__codelineno-7-83" name="__codelineno-7-83"></a><span class="w"> </span><span class="p">}</span>
</span><span id="__span-7-84"><a id="__codelineno-7-84" name="__codelineno-7-84"></a>
</span><span id="__span-7-85"><a id="__codelineno-7-85" name="__codelineno-7-85"></a><span class="w"> </span><span class="c1">// International mile (double)</span>
</span><span id="__span-7-86"><a id="__codelineno-7-86" name="__codelineno-7-86"></a><span class="w"> </span><span class="p">{</span>
</span><span id="__span-7-87"><a id="__codelineno-7-87" name="__codelineno-7-87"></a><span class="w"> </span><span class="k">using</span><span class="w"> </span><span class="k">namespace</span><span class="w"> </span><span class="nn">mp_units</span><span class="o">::</span><span class="nn">international</span><span class="o">::</span><span class="nn">unit_symbols</span><span class="p">;</span>
</span><span id="__span-7-88"><a id="__codelineno-7-88" name="__codelineno-7-88"></a>
</span><span id="__span-7-89"><a id="__codelineno-7-89" name="__codelineno-7-89"></a><span class="w"> </span><span class="k">constexpr</span><span class="w"> </span><span class="k">auto</span><span class="w"> </span><span class="n">distance</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mf">140.</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="n">mi</span><span class="p">;</span>
</span><span id="__span-7-90"><a id="__codelineno-7-90" name="__codelineno-7-90"></a><span class="w"> </span><span class="k">constexpr</span><span class="w"> </span><span class="k">auto</span><span class="w"> </span><span class="n">duration</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mf">2.</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="n">h</span><span class="p">;</span>
</span><span id="__span-7-91"><a id="__codelineno-7-91" name="__codelineno-7-91"></a>
</span><span id="__span-7-92"><a id="__codelineno-7-92" name="__codelineno-7-92"></a><span class="w"> </span><span class="n">std</span><span class="o">::</span><span class="n">cout</span><span class="w"> </span><span class="o">&lt;&lt;</span><span class="w"> </span><span class="s">&quot;</span><span class="se">\n</span><span class="s">International mile with &#39;double&#39; as representation</span><span class="se">\n</span><span class="s">&quot;</span><span class="p">;</span>
</span><span id="__span-7-93"><a id="__codelineno-7-93" name="__codelineno-7-93"></a>
</span><span id="__span-7-94"><a id="__codelineno-7-94" name="__codelineno-7-94"></a><span class="w"> </span><span class="c1">// conversion from a floating-point to an integral type is a truncating one so an explicit cast is needed</span>
</span><span id="__span-7-95"><a id="__codelineno-7-95" name="__codelineno-7-95"></a><span class="w"> </span><span class="c1">// also it is not possible to make a lossless conversion of miles to meters on an integral type</span>
</span><span id="__span-7-96"><a id="__codelineno-7-96" name="__codelineno-7-96"></a><span class="w"> </span><span class="c1">// (explicit cast needed)</span>
</span><span id="__span-7-97"><a id="__codelineno-7-97" name="__codelineno-7-97"></a><span class="w"> </span><span class="n">print_result</span><span class="p">(</span><span class="n">distance</span><span class="p">,</span><span class="w"> </span><span class="n">duration</span><span class="p">,</span><span class="w"> </span><span class="n">fixed_int_si_avg_speed</span><span class="p">(</span><span class="n">value_cast</span><span class="o">&lt;</span><span class="n">m</span><span class="p">,</span><span class="w"> </span><span class="kt">int</span><span class="o">&gt;</span><span class="p">(</span><span class="n">distance</span><span class="p">),</span><span class="w"> </span><span class="n">value_cast</span><span class="o">&lt;</span><span class="kt">int</span><span class="o">&gt;</span><span class="p">(</span><span class="n">duration</span><span class="p">)));</span>
</span><span id="__span-7-98"><a id="__codelineno-7-98" name="__codelineno-7-98"></a><span class="w"> </span><span class="n">print_result</span><span class="p">(</span><span class="n">distance</span><span class="p">,</span><span class="w"> </span><span class="n">duration</span><span class="p">,</span><span class="w"> </span><span class="n">fixed_double_si_avg_speed</span><span class="p">(</span><span class="n">distance</span><span class="p">,</span><span class="w"> </span><span class="n">duration</span><span class="p">));</span>
</span><span id="__span-7-99"><a id="__codelineno-7-99" name="__codelineno-7-99"></a><span class="w"> </span><span class="n">print_result</span><span class="p">(</span><span class="n">distance</span><span class="p">,</span><span class="w"> </span><span class="n">duration</span><span class="p">,</span><span class="w"> </span><span class="n">avg_speed</span><span class="p">(</span><span class="n">distance</span><span class="p">,</span><span class="w"> </span><span class="n">duration</span><span class="p">));</span>
</span><span id="__span-7-100"><a id="__codelineno-7-100" name="__codelineno-7-100"></a><span class="w"> </span><span class="p">}</span>
</span></code></pre></div></td></tr></table></div>
<p>One important difference here is the fact that as it is not possible to make a lossless conversion
of miles to meters on a quantity using an integral representation type, so this time, we need a
<code>value_cast&lt;m, int&gt;</code> to force it.</p>
<p>If we check the text output of the above, we will see the following:</p>
<div class="language-text highlight"><pre><span></span><code><span id="__span-8-1"><a id="__codelineno-8-1" name="__codelineno-8-1" href="#__codelineno-8-1"></a>International mile with &#39;int&#39; as representation
</span><span id="__span-8-2"><a id="__codelineno-8-2" name="__codelineno-8-2" href="#__codelineno-8-2"></a>Average speed of a car that makes 140 mi in 2 h is 111 km/h.
</span><span id="__span-8-3"><a id="__codelineno-8-3" name="__codelineno-8-3" href="#__codelineno-8-3"></a>Average speed of a car that makes 140 mi in 2 h is 112.654 km/h.
</span><span id="__span-8-4"><a id="__codelineno-8-4" name="__codelineno-8-4" href="#__codelineno-8-4"></a>Average speed of a car that makes 140 mi in 2 h is 112 km/h.
</span><span id="__span-8-5"><a id="__codelineno-8-5" name="__codelineno-8-5" href="#__codelineno-8-5"></a>
</span><span id="__span-8-6"><a id="__codelineno-8-6" name="__codelineno-8-6" href="#__codelineno-8-6"></a>International mile with &#39;double&#39; as representation
</span><span id="__span-8-7"><a id="__codelineno-8-7" name="__codelineno-8-7" href="#__codelineno-8-7"></a>Average speed of a car that makes 140 mi in 2 h is 111 km/h.
</span><span id="__span-8-8"><a id="__codelineno-8-8" name="__codelineno-8-8" href="#__codelineno-8-8"></a>Average speed of a car that makes 140 mi in 2 h is 112.654 km/h.
</span><span id="__span-8-9"><a id="__codelineno-8-9" name="__codelineno-8-9" href="#__codelineno-8-9"></a>Average speed of a car that makes 140 mi in 2 h is 112.654 km/h.
</span></code></pre></div>
<p>Please note how the first and third results get truncated using integral representation types.</p>
<p>In the end, we repeat the scenario for CGS units:</p>
<div class="language-cpp highlight"><table class="highlighttable"><tr><th colspan="2" class="filename"><span class="filename">avg_speed.cpp</span></th></tr><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-9-101">101</a></span>
<span class="normal"><a href="#__codelineno-9-102">102</a></span>
<span class="normal"><a href="#__codelineno-9-103">103</a></span>
<span class="normal"><a href="#__codelineno-9-104">104</a></span>
<span class="normal"><a href="#__codelineno-9-105">105</a></span>
<span class="normal"><a href="#__codelineno-9-106">106</a></span>
<span class="normal"><a href="#__codelineno-9-107">107</a></span>
<span class="normal"><a href="#__codelineno-9-108">108</a></span>
<span class="normal"><a href="#__codelineno-9-109">109</a></span>
<span class="normal"><a href="#__codelineno-9-110">110</a></span>
<span class="normal"><a href="#__codelineno-9-111">111</a></span>
<span class="normal"><a href="#__codelineno-9-112">112</a></span>
<span class="normal"><a href="#__codelineno-9-113">113</a></span>
<span class="normal"><a href="#__codelineno-9-114">114</a></span>
<span class="normal"><a href="#__codelineno-9-115">115</a></span>
<span class="normal"><a href="#__codelineno-9-116">116</a></span>
<span class="normal"><a href="#__codelineno-9-117">117</a></span>
<span class="normal"><a href="#__codelineno-9-118">118</a></span>
<span class="normal"><a href="#__codelineno-9-119">119</a></span>
<span class="normal"><a href="#__codelineno-9-120">120</a></span>
<span class="normal"><a href="#__codelineno-9-121">121</a></span>
<span class="normal"><a href="#__codelineno-9-122">122</a></span>
<span class="normal"><a href="#__codelineno-9-123">123</a></span>
<span class="normal"><a href="#__codelineno-9-124">124</a></span>
<span class="normal"><a href="#__codelineno-9-125">125</a></span>
<span class="normal"><a href="#__codelineno-9-126">126</a></span>
<span class="normal"><a href="#__codelineno-9-127">127</a></span>
<span class="normal"><a href="#__codelineno-9-128">128</a></span>
<span class="normal"><a href="#__codelineno-9-129">129</a></span>
<span class="normal"><a href="#__codelineno-9-130">130</a></span>
<span class="normal"><a href="#__codelineno-9-131">131</a></span>
<span class="normal"><a href="#__codelineno-9-132">132</a></span></pre></div></td><td class="code"><div><pre><span></span><code><span id="__span-9-101"><a id="__codelineno-9-101" name="__codelineno-9-101"></a><span class="w"> </span><span class="c1">// CGS (int)</span>
</span><span id="__span-9-102"><a id="__codelineno-9-102" name="__codelineno-9-102"></a><span class="w"> </span><span class="p">{</span>
</span><span id="__span-9-103"><a id="__codelineno-9-103" name="__codelineno-9-103"></a><span class="w"> </span><span class="k">constexpr</span><span class="w"> </span><span class="k">auto</span><span class="w"> </span><span class="n">distance</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">22&#39;000&#39;000</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="n">cgs</span><span class="o">::</span><span class="n">centimetre</span><span class="p">;</span>
</span><span id="__span-9-104"><a id="__codelineno-9-104" name="__codelineno-9-104"></a><span class="w"> </span><span class="k">constexpr</span><span class="w"> </span><span class="k">auto</span><span class="w"> </span><span class="n">duration</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">7200</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="n">cgs</span><span class="o">::</span><span class="n">second</span><span class="p">;</span>
</span><span id="__span-9-105"><a id="__codelineno-9-105" name="__codelineno-9-105"></a>
</span><span id="__span-9-106"><a id="__codelineno-9-106" name="__codelineno-9-106"></a><span class="w"> </span><span class="n">std</span><span class="o">::</span><span class="n">cout</span><span class="w"> </span><span class="o">&lt;&lt;</span><span class="w"> </span><span class="s">&quot;</span><span class="se">\n</span><span class="s">CGS units with &#39;int&#39; as representation</span><span class="se">\n</span><span class="s">&quot;</span><span class="p">;</span>
</span><span id="__span-9-107"><a id="__codelineno-9-107" name="__codelineno-9-107"></a>
</span><span id="__span-9-108"><a id="__codelineno-9-108" name="__codelineno-9-108"></a><span class="w"> </span><span class="c1">// it is not possible to make a lossless conversion of centimeters to meters on an integral type</span>
</span><span id="__span-9-109"><a id="__codelineno-9-109" name="__codelineno-9-109"></a><span class="w"> </span><span class="c1">// (explicit cast needed)</span>
</span><span id="__span-9-110"><a id="__codelineno-9-110" name="__codelineno-9-110"></a><span class="w"> </span><span class="n">print_result</span><span class="p">(</span><span class="n">distance</span><span class="p">,</span><span class="w"> </span><span class="n">duration</span><span class="p">,</span><span class="w"> </span><span class="n">fixed_int_si_avg_speed</span><span class="p">(</span><span class="n">distance</span><span class="p">.</span><span class="n">force_in</span><span class="p">(</span><span class="n">m</span><span class="p">),</span><span class="w"> </span><span class="n">duration</span><span class="p">));</span>
</span><span id="__span-9-111"><a id="__codelineno-9-111" name="__codelineno-9-111"></a><span class="w"> </span><span class="n">print_result</span><span class="p">(</span><span class="n">distance</span><span class="p">,</span><span class="w"> </span><span class="n">duration</span><span class="p">,</span><span class="w"> </span><span class="n">fixed_double_si_avg_speed</span><span class="p">(</span><span class="n">distance</span><span class="p">,</span><span class="w"> </span><span class="n">duration</span><span class="p">));</span>
</span><span id="__span-9-112"><a id="__codelineno-9-112" name="__codelineno-9-112"></a><span class="w"> </span><span class="n">print_result</span><span class="p">(</span><span class="n">distance</span><span class="p">,</span><span class="w"> </span><span class="n">duration</span><span class="p">,</span><span class="w"> </span><span class="n">avg_speed</span><span class="p">(</span><span class="n">distance</span><span class="p">,</span><span class="w"> </span><span class="n">duration</span><span class="p">));</span>
</span><span id="__span-9-113"><a id="__codelineno-9-113" name="__codelineno-9-113"></a><span class="w"> </span><span class="p">}</span>
</span><span id="__span-9-114"><a id="__codelineno-9-114" name="__codelineno-9-114"></a>
</span><span id="__span-9-115"><a id="__codelineno-9-115" name="__codelineno-9-115"></a><span class="w"> </span><span class="c1">// CGS (double)</span>
</span><span id="__span-9-116"><a id="__codelineno-9-116" name="__codelineno-9-116"></a><span class="w"> </span><span class="p">{</span>
</span><span id="__span-9-117"><a id="__codelineno-9-117" name="__codelineno-9-117"></a><span class="w"> </span><span class="k">constexpr</span><span class="w"> </span><span class="k">auto</span><span class="w"> </span><span class="n">distance</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mf">22&#39;000&#39;000.</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="n">cgs</span><span class="o">::</span><span class="n">centimetre</span><span class="p">;</span>
</span><span id="__span-9-118"><a id="__codelineno-9-118" name="__codelineno-9-118"></a><span class="w"> </span><span class="k">constexpr</span><span class="w"> </span><span class="k">auto</span><span class="w"> </span><span class="n">duration</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mf">7200.</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="n">cgs</span><span class="o">::</span><span class="n">second</span><span class="p">;</span>
</span><span id="__span-9-119"><a id="__codelineno-9-119" name="__codelineno-9-119"></a>
</span><span id="__span-9-120"><a id="__codelineno-9-120" name="__codelineno-9-120"></a><span class="w"> </span><span class="n">std</span><span class="o">::</span><span class="n">cout</span><span class="w"> </span><span class="o">&lt;&lt;</span><span class="w"> </span><span class="s">&quot;</span><span class="se">\n</span><span class="s">CGS units with &#39;double&#39; as representation</span><span class="se">\n</span><span class="s">&quot;</span><span class="p">;</span>
</span><span id="__span-9-121"><a id="__codelineno-9-121" name="__codelineno-9-121"></a>
</span><span id="__span-9-122"><a id="__codelineno-9-122" name="__codelineno-9-122"></a><span class="w"> </span><span class="c1">// conversion from a floating-point to an integral type is a truncating one so an explicit cast is needed</span>
</span><span id="__span-9-123"><a id="__codelineno-9-123" name="__codelineno-9-123"></a><span class="w"> </span><span class="c1">// it is not possible to make a lossless conversion of centimeters to meters on an integral type</span>
</span><span id="__span-9-124"><a id="__codelineno-9-124" name="__codelineno-9-124"></a><span class="w"> </span><span class="c1">// (explicit cast needed)</span>
</span><span id="__span-9-125"><a id="__codelineno-9-125" name="__codelineno-9-125"></a><span class="w"> </span><span class="n">print_result</span><span class="p">(</span><span class="n">distance</span><span class="p">,</span><span class="w"> </span><span class="n">duration</span><span class="p">,</span><span class="w"> </span><span class="n">fixed_int_si_avg_speed</span><span class="p">(</span><span class="n">value_cast</span><span class="o">&lt;</span><span class="n">m</span><span class="p">,</span><span class="w"> </span><span class="kt">int</span><span class="o">&gt;</span><span class="p">(</span><span class="n">distance</span><span class="p">),</span><span class="w"> </span><span class="n">value_cast</span><span class="o">&lt;</span><span class="kt">int</span><span class="o">&gt;</span><span class="p">(</span><span class="n">duration</span><span class="p">)));</span>
</span><span id="__span-9-126"><a id="__codelineno-9-126" name="__codelineno-9-126"></a>
</span><span id="__span-9-127"><a id="__codelineno-9-127" name="__codelineno-9-127"></a><span class="w"> </span><span class="n">print_result</span><span class="p">(</span><span class="n">distance</span><span class="p">,</span><span class="w"> </span><span class="n">duration</span><span class="p">,</span><span class="w"> </span><span class="n">fixed_double_si_avg_speed</span><span class="p">(</span><span class="n">distance</span><span class="p">,</span><span class="w"> </span><span class="n">duration</span><span class="p">));</span>
</span><span id="__span-9-128"><a id="__codelineno-9-128" name="__codelineno-9-128"></a><span class="w"> </span><span class="n">print_result</span><span class="p">(</span><span class="n">distance</span><span class="p">,</span><span class="w"> </span><span class="n">duration</span><span class="p">,</span><span class="w"> </span><span class="n">avg_speed</span><span class="p">(</span><span class="n">distance</span><span class="p">,</span><span class="w"> </span><span class="n">duration</span><span class="p">));</span>
</span><span id="__span-9-129"><a id="__codelineno-9-129" name="__codelineno-9-129"></a><span class="w"> </span><span class="p">}</span>
</span><span id="__span-9-130"><a id="__codelineno-9-130" name="__codelineno-9-130"></a><span class="p">}</span>
</span><span id="__span-9-131"><a id="__codelineno-9-131" name="__codelineno-9-131"></a>
</span><span id="__span-9-132"><a id="__codelineno-9-132" name="__codelineno-9-132"></a><span class="p">}</span><span class="w"> </span><span class="c1">// namespace</span>
</span></code></pre></div></td></tr></table></div>
<p>Again, we observe <code>value_cast</code> being used in the same places and consistent truncation errors
in the text output:</p>
<div class="language-text highlight"><pre><span></span><code><span id="__span-10-1"><a id="__codelineno-10-1" name="__codelineno-10-1" href="#__codelineno-10-1"></a>CGS units with &#39;int&#39; as representation
</span><span id="__span-10-2"><a id="__codelineno-10-2" name="__codelineno-10-2" href="#__codelineno-10-2"></a>Average speed of a car that makes 22000000 cm in 7200 s is 108 km/h.
</span><span id="__span-10-3"><a id="__codelineno-10-3" name="__codelineno-10-3" href="#__codelineno-10-3"></a>Average speed of a car that makes 22000000 cm in 7200 s is 110 km/h.
</span><span id="__span-10-4"><a id="__codelineno-10-4" name="__codelineno-10-4" href="#__codelineno-10-4"></a>Average speed of a car that makes 22000000 cm in 7200 s is 109 km/h.
</span><span id="__span-10-5"><a id="__codelineno-10-5" name="__codelineno-10-5" href="#__codelineno-10-5"></a>
</span><span id="__span-10-6"><a id="__codelineno-10-6" name="__codelineno-10-6" href="#__codelineno-10-6"></a>CGS units with &#39;double&#39; as representation
</span><span id="__span-10-7"><a id="__codelineno-10-7" name="__codelineno-10-7" href="#__codelineno-10-7"></a>Average speed of a car that makes 2.2e+07 cm in 7200 s is 108 km/h.
</span><span id="__span-10-8"><a id="__codelineno-10-8" name="__codelineno-10-8" href="#__codelineno-10-8"></a>Average speed of a car that makes 2.2e+07 cm in 7200 s is 110 km/h.
</span><span id="__span-10-9"><a id="__codelineno-10-9" name="__codelineno-10-9" href="#__codelineno-10-9"></a>Average speed of a car that makes 2.2e+07 cm in 7200 s is 110 km/h.
</span></code></pre></div>
<p>The example file ends with a simple <code>main()</code> function:</p>
<div class="language-cpp highlight"><table class="highlighttable"><tr><th colspan="2" class="filename"><span class="filename">avg_speed.cpp</span></th></tr><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-11-133">133</a></span>
<span class="normal"><a href="#__codelineno-11-134">134</a></span>
<span class="normal"><a href="#__codelineno-11-135">135</a></span>
<span class="normal"><a href="#__codelineno-11-136">136</a></span>
<span class="normal"><a href="#__codelineno-11-137">137</a></span>
<span class="normal"><a href="#__codelineno-11-138">138</a></span>
<span class="normal"><a href="#__codelineno-11-139">139</a></span>
<span class="normal"><a href="#__codelineno-11-140">140</a></span>
<span class="normal"><a href="#__codelineno-11-141">141</a></span>
<span class="normal"><a href="#__codelineno-11-142">142</a></span></pre></div></td><td class="code"><div><pre><span></span><code><span id="__span-11-133"><a id="__codelineno-11-133" name="__codelineno-11-133"></a><span class="kt">int</span><span class="w"> </span><span class="nf">main</span><span class="p">()</span>
</span><span id="__span-11-134"><a id="__codelineno-11-134" name="__codelineno-11-134"></a><span class="p">{</span>
</span><span id="__span-11-135"><a id="__codelineno-11-135" name="__codelineno-11-135"></a><span class="w"> </span><span class="k">try</span><span class="w"> </span><span class="p">{</span>
</span><span id="__span-11-136"><a id="__codelineno-11-136" name="__codelineno-11-136"></a><span class="w"> </span><span class="n">example</span><span class="p">();</span>
</span><span id="__span-11-137"><a id="__codelineno-11-137" name="__codelineno-11-137"></a><span class="w"> </span><span class="p">}</span><span class="w"> </span><span class="k">catch</span><span class="w"> </span><span class="p">(</span><span class="k">const</span><span class="w"> </span><span class="n">std</span><span class="o">::</span><span class="n">exception</span><span class="o">&amp;</span><span class="w"> </span><span class="n">ex</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
</span><span id="__span-11-138"><a id="__codelineno-11-138" name="__codelineno-11-138"></a><span class="w"> </span><span class="n">std</span><span class="o">::</span><span class="n">cerr</span><span class="w"> </span><span class="o">&lt;&lt;</span><span class="w"> </span><span class="s">&quot;Unhandled std exception caught: &quot;</span><span class="w"> </span><span class="o">&lt;&lt;</span><span class="w"> </span><span class="n">ex</span><span class="p">.</span><span class="n">what</span><span class="p">()</span><span class="w"> </span><span class="o">&lt;&lt;</span><span class="w"> </span><span class="sc">&#39;\n&#39;</span><span class="p">;</span>
</span><span id="__span-11-139"><a id="__codelineno-11-139" name="__codelineno-11-139"></a><span class="w"> </span><span class="p">}</span><span class="w"> </span><span class="k">catch</span><span class="w"> </span><span class="p">(...)</span><span class="w"> </span><span class="p">{</span>
</span><span id="__span-11-140"><a id="__codelineno-11-140" name="__codelineno-11-140"></a><span class="w"> </span><span class="n">std</span><span class="o">::</span><span class="n">cerr</span><span class="w"> </span><span class="o">&lt;&lt;</span><span class="w"> </span><span class="s">&quot;Unhandled unknown exception caught</span><span class="se">\n</span><span class="s">&quot;</span><span class="p">;</span>
</span><span id="__span-11-141"><a id="__codelineno-11-141" name="__codelineno-11-141"></a><span class="w"> </span><span class="p">}</span>
</span><span id="__span-11-142"><a id="__codelineno-11-142" name="__codelineno-11-142"></a><span class="p">}</span>
</span></code></pre></div></td></tr></table></div>
</article>
</div>
<script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script>
</div>
<button type="button" class="md-top md-icon" data-md-component="top" hidden>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M13 20h-2V8l-5.5 5.5-1.42-1.42L12 4.16l7.92 7.92-1.42 1.42L13 8z"/></svg>
Back to top
</button>
</main>
<footer class="md-footer">
<nav class="md-footer__inner md-grid" aria-label="Footer" >
<a href="../hello_units/" class="md-footer__link md-footer__link--prev" aria-label="Previous: hello_units">
<div class="md-footer__button md-icon">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11z"/></svg>
</div>
<div class="md-footer__title">
<span class="md-footer__direction">
Previous
</span>
<div class="md-ellipsis">
hello_units
</div>
</div>
</a>
<a href="../si_constants/" class="md-footer__link md-footer__link--next" aria-label="Next: si_constants">
<div class="md-footer__title">
<span class="md-footer__direction">
Next
</span>
<div class="md-ellipsis">
si_constants
</div>
</div>
<div class="md-footer__button md-icon">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M4 11v2h12l-5.5 5.5 1.42 1.42L19.84 12l-7.92-7.92L10.5 5.5 16 11z"/></svg>
</div>
</a>
</nav>
<div class="md-footer-meta md-typeset">
<div class="md-footer-meta__inner md-grid">
<div class="md-copyright">
<div class="md-copyright__highlight">
Copyright &copy; 2018-2023 Mateusz Pusz
</div>
Made with
<a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener">
Material for MkDocs
</a>
</div>
</div>
</div>
</footer>
</div>
<div class="md-dialog" data-md-component="dialog">
<div class="md-dialog__inner md-typeset"></div>
</div>
<script id="__config" type="application/json">{"base": "../../..", "features": ["content.action.edit", "content.action.view", "content.code.annotate", "content.code.copy", "navigation.indexes", "navigation.tabs", "navigation.footer", "navigation.top", "search.highlight", "search.share", "search.suggest", "toc.follow", "toc.integrate"], "search": "../../../assets/javascripts/workers/search.6ce7567c.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}, "version": {"provider": "mike"}}</script>
<script src="../../../assets/javascripts/bundle.83f73b43.min.js"></script>
<script src="../../../javascripts/mathjax.js"></script>
<script src="https://polyfill.io/v3/polyfill.min.js?features=es6"></script>
<script src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"></script>
</body>
</html>