Files
rippled/namespaceripple_1_1feeunit.html
2020-04-24 01:09:47 +00:00

553 lines
35 KiB
HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.17"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>rippled: ripple::feeunit Namespace Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">rippled
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.17 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="namespaceripple.html">ripple</a></li><li class="navelem"><a class="el" href="namespaceripple_1_1feeunit.html">feeunit</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#typedef-members">Typedefs</a> &#124;
<a href="#func-members">Functions</a> &#124;
<a href="#var-members">Variables</a> </div>
<div class="headertitle">
<div class="title">ripple::feeunit Namespace Reference</div> </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1feeunit_1_1TaggedFee.html">TaggedFee</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr class="memitem:a826b8097444ee21ee2be3b7895d6477b"><td class="memTemplParams" colspan="2">template&lt;class T &gt; </td></tr>
<tr class="memitem:a826b8097444ee21ee2be3b7895d6477b"><td class="memTemplItemLeft" align="right" valign="top">using&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceripple_1_1feeunit.html#a826b8097444ee21ee2be3b7895d6477b">enable_if_unit_t</a> = typename <a class="elRef" href="http://en.cppreference.com/w/cpp/types/enable_if.html">std::enable_if_t</a>&lt; <a class="elRef" href="http://en.cppreference.com/w/cpp/types/is_class.html">std::is_class_v</a>&lt; T &gt; &amp;&amp;<a class="elRef" href="http://en.cppreference.com/w/cpp/types/is_object.html">std::is_object_v</a>&lt; typename T::unit_type &gt; &amp;&amp;<a class="elRef" href="http://en.cppreference.com/w/cpp/types/is_object.html">std::is_object_v</a>&lt; typename T::value_type &gt; &gt;</td></tr>
<tr class="separator:a826b8097444ee21ee2be3b7895d6477b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab6055a46ddc52c563a90e603901bdeb3"><td class="memTemplParams" colspan="2">template&lt;class T &gt; </td></tr>
<tr class="memitem:ab6055a46ddc52c563a90e603901bdeb3"><td class="memTemplItemLeft" align="right" valign="top">using&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceripple_1_1feeunit.html#ab6055a46ddc52c563a90e603901bdeb3">enable_muldiv_source_t</a> = typename <a class="elRef" href="http://en.cppreference.com/w/cpp/types/enable_if.html">std::enable_if_t</a>&lt; <a class="el" href="namespaceripple_1_1feeunit.html#affd5a099128e424c211bd6b6ec0356d4">can_muldiv_source_v</a>&lt; T &gt; &gt;</td></tr>
<tr class="separator:ab6055a46ddc52c563a90e603901bdeb3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab8b725740f2cbaeef0ba8b23d82e784d"><td class="memTemplParams" colspan="2">template&lt;class T &gt; </td></tr>
<tr class="memitem:ab8b725740f2cbaeef0ba8b23d82e784d"><td class="memTemplItemLeft" align="right" valign="top">using&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceripple_1_1feeunit.html#ab8b725740f2cbaeef0ba8b23d82e784d">enable_muldiv_dest_t</a> = typename <a class="elRef" href="http://en.cppreference.com/w/cpp/types/enable_if.html">std::enable_if_t</a>&lt; <a class="el" href="namespaceripple_1_1feeunit.html#a52770690ddc7af6d464058b1d7fd454b">can_muldiv_dest_v</a>&lt; T &gt; &gt;</td></tr>
<tr class="separator:ab8b725740f2cbaeef0ba8b23d82e784d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0049d4ec9e01af1bc92b93091082331a"><td class="memTemplParams" colspan="2">template&lt;class Source1 , class Source2 &gt; </td></tr>
<tr class="memitem:a0049d4ec9e01af1bc92b93091082331a"><td class="memTemplItemLeft" align="right" valign="top">using&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceripple_1_1feeunit.html#a0049d4ec9e01af1bc92b93091082331a">enable_muldiv_sources_t</a> = typename <a class="elRef" href="http://en.cppreference.com/w/cpp/types/enable_if.html">std::enable_if_t</a>&lt; <a class="el" href="namespaceripple_1_1feeunit.html#a5b7fce21eaa0f63f6be19f24945c20c4">can_muldiv_sources_v</a>&lt; Source1, Source2 &gt; &gt;</td></tr>
<tr class="separator:a0049d4ec9e01af1bc92b93091082331a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa16a30447d57c0dd9a5f5013ad73ec05"><td class="memTemplParams" colspan="2">template&lt;class Source1 , class Source2 , class Dest &gt; </td></tr>
<tr class="memitem:aa16a30447d57c0dd9a5f5013ad73ec05"><td class="memTemplItemLeft" align="right" valign="top">using&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceripple_1_1feeunit.html#aa16a30447d57c0dd9a5f5013ad73ec05">enable_muldiv_t</a> = typename <a class="elRef" href="http://en.cppreference.com/w/cpp/types/enable_if.html">std::enable_if_t</a>&lt; <a class="el" href="namespaceripple_1_1feeunit.html#aafaef1c66b8e67bbf391746cdf2d0f2f">can_muldiv_v</a>&lt; Source1, Source2, Dest &gt; &gt;</td></tr>
<tr class="separator:aa16a30447d57c0dd9a5f5013ad73ec05"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab9486bd33af6f7c7a5a947933d94ee05"><td class="memTemplParams" colspan="2">template&lt;class Source1 , class Source2 , class Dest &gt; </td></tr>
<tr class="memitem:ab9486bd33af6f7c7a5a947933d94ee05"><td class="memTemplItemLeft" align="right" valign="top">using&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceripple_1_1feeunit.html#ab9486bd33af6f7c7a5a947933d94ee05">enable_muldiv_commute_t</a> = typename <a class="elRef" href="http://en.cppreference.com/w/cpp/types/enable_if.html">std::enable_if_t</a>&lt; <a class="el" href="namespaceripple_1_1feeunit.html#a9cc51e91c4478f0e2a3e942edc19b60e">can_muldiv_commute_v</a>&lt; Source1, Source2, Dest &gt; &gt;</td></tr>
<tr class="separator:ab9486bd33af6f7c7a5a947933d94ee05"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:a5c2528e82b1e4e0847307beea0d9b2a5"><td class="memTemplParams" colspan="2">template&lt;class Char , class Traits , class UnitTag , class T &gt; </td></tr>
<tr class="memitem:a5c2528e82b1e4e0847307beea0d9b2a5"><td class="memTemplItemLeft" align="right" valign="top"><a class="elRef" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::basic_ostream</a>&lt; Char, Traits &gt; &amp;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceripple_1_1feeunit.html#a5c2528e82b1e4e0847307beea0d9b2a5">operator&lt;&lt;</a> (<a class="elRef" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::basic_ostream</a>&lt; Char, Traits &gt; &amp;os, const <a class="el" href="classripple_1_1feeunit_1_1TaggedFee.html">TaggedFee</a>&lt; UnitTag, T &gt; &amp;q)</td></tr>
<tr class="separator:a5c2528e82b1e4e0847307beea0d9b2a5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2fcae68e9223377a6c92cc1bea73d97b"><td class="memTemplParams" colspan="2">template&lt;class UnitTag , class T &gt; </td></tr>
<tr class="memitem:a2fcae68e9223377a6c92cc1bea73d97b"><td class="memTemplItemLeft" align="right" valign="top"><a class="elRef" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceripple_1_1feeunit.html#a2fcae68e9223377a6c92cc1bea73d97b">to_string</a> (<a class="el" href="classripple_1_1feeunit_1_1TaggedFee.html">TaggedFee</a>&lt; UnitTag, T &gt; const &amp;amount)</td></tr>
<tr class="separator:a2fcae68e9223377a6c92cc1bea73d97b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a363b1c8a07bd5a0126fcdec810b58be1"><td class="memTemplParams" colspan="2">template&lt;class T &gt; </td></tr>
<tr class="memitem:a363b1c8a07bd5a0126fcdec810b58be1"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classripple_1_1feeunit_1_1TaggedFee.html">TaggedFee</a>&lt; unitlessTag, T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceripple_1_1feeunit.html#a363b1c8a07bd5a0126fcdec810b58be1">scalar</a> (T value)</td></tr>
<tr class="separator:a363b1c8a07bd5a0126fcdec810b58be1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad409fa802fc3c41187352eefe1acf383"><td class="memTemplParams" colspan="2">template&lt;class Source1 , class Source2 , class Dest , class = enable_muldiv_t&lt;Source1, Source2, Dest&gt;&gt; </td></tr>
<tr class="memitem:ad409fa802fc3c41187352eefe1acf383"><td class="memTemplItemLeft" align="right" valign="top"><a class="elRef" href="http://en.cppreference.com/w/cpp/utility/pair.html">std::pair</a>&lt; bool, Dest &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceripple_1_1feeunit.html#ad409fa802fc3c41187352eefe1acf383">mulDivU</a> (Source1 value, Dest mul, Source2 div)</td></tr>
<tr class="separator:ad409fa802fc3c41187352eefe1acf383"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a>
Variables</h2></td></tr>
<tr class="memitem:a189bd0d0f49fa6d39a6f501496e85b83"><td class="memTemplParams" colspan="2">template&lt;class T , class = enable_if_unit_t&lt;T&gt;&gt; </td></tr>
<tr class="memitem:a189bd0d0f49fa6d39a6f501496e85b83"><td class="memTemplItemLeft" align="right" valign="top">constexpr bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceripple_1_1feeunit.html#a189bd0d0f49fa6d39a6f501496e85b83">is_usable_unit_v</a></td></tr>
<tr class="memdesc:a189bd0d0f49fa6d39a6f501496e85b83"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code>is_usable_unit_v</code> is checked to ensure that only values with known valid type tags can be used (sometimes transparently) in non-fee contexts. <a href="namespaceripple_1_1feeunit.html#a189bd0d0f49fa6d39a6f501496e85b83">More...</a><br /></td></tr>
<tr class="separator:a189bd0d0f49fa6d39a6f501496e85b83"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:affd5a099128e424c211bd6b6ec0356d4"><td class="memTemplParams" colspan="2">template&lt;class Source , class = enable_if_unit_t&lt;Source&gt;&gt; </td></tr>
<tr class="memitem:affd5a099128e424c211bd6b6ec0356d4"><td class="memTemplItemLeft" align="right" valign="top">constexpr bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceripple_1_1feeunit.html#affd5a099128e424c211bd6b6ec0356d4">can_muldiv_source_v</a></td></tr>
<tr class="separator:affd5a099128e424c211bd6b6ec0356d4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a52770690ddc7af6d464058b1d7fd454b"><td class="memTemplParams" colspan="2">template&lt;class Dest , class = enable_if_unit_t&lt;Dest&gt;&gt; </td></tr>
<tr class="memitem:a52770690ddc7af6d464058b1d7fd454b"><td class="memTemplItemLeft" align="right" valign="top">constexpr bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceripple_1_1feeunit.html#a52770690ddc7af6d464058b1d7fd454b">can_muldiv_dest_v</a></td></tr>
<tr class="separator:a52770690ddc7af6d464058b1d7fd454b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5b7fce21eaa0f63f6be19f24945c20c4"><td class="memTemplParams" colspan="2">template&lt;class Source1 , class Source2 , class = enable_if_unit_t&lt;Source1&gt;, class = enable_if_unit_t&lt;Source2&gt;&gt; </td></tr>
<tr class="memitem:a5b7fce21eaa0f63f6be19f24945c20c4"><td class="memTemplItemLeft" align="right" valign="top">constexpr bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceripple_1_1feeunit.html#a5b7fce21eaa0f63f6be19f24945c20c4">can_muldiv_sources_v</a></td></tr>
<tr class="separator:a5b7fce21eaa0f63f6be19f24945c20c4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aafaef1c66b8e67bbf391746cdf2d0f2f"><td class="memTemplParams" colspan="2">template&lt;class Source1 , class Source2 , class Dest , class = enable_if_unit_t&lt;Source1&gt;, class = enable_if_unit_t&lt;Source2&gt;, class = enable_if_unit_t&lt;Dest&gt;&gt; </td></tr>
<tr class="memitem:aafaef1c66b8e67bbf391746cdf2d0f2f"><td class="memTemplItemLeft" align="right" valign="top">constexpr bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceripple_1_1feeunit.html#aafaef1c66b8e67bbf391746cdf2d0f2f">can_muldiv_v</a></td></tr>
<tr class="separator:aafaef1c66b8e67bbf391746cdf2d0f2f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9cc51e91c4478f0e2a3e942edc19b60e"><td class="memTemplParams" colspan="2">template&lt;class Source1 , class Source2 , class Dest , class = enable_if_unit_t&lt;Source1&gt;, class = enable_if_unit_t&lt;Source2&gt;, class = enable_if_unit_t&lt;Dest&gt;&gt; </td></tr>
<tr class="memitem:a9cc51e91c4478f0e2a3e942edc19b60e"><td class="memTemplItemLeft" align="right" valign="top">constexpr bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceripple_1_1feeunit.html#a9cc51e91c4478f0e2a3e942edc19b60e">can_muldiv_commute_v</a></td></tr>
<tr class="separator:a9cc51e91c4478f0e2a3e942edc19b60e"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Typedef Documentation</h2>
<a id="a826b8097444ee21ee2be3b7895d6477b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a826b8097444ee21ee2be3b7895d6477b">&#9670;&nbsp;</a></span>enable_if_unit_t</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T &gt; </div>
<table class="memname">
<tr>
<td class="memname">using <a class="el" href="namespaceripple_1_1feeunit.html#a826b8097444ee21ee2be3b7895d6477b">ripple::feeunit::enable_if_unit_t</a> = typedef typename <a class="elRef" href="http://en.cppreference.com/w/cpp/types/enable_if.html">std::enable_if_t</a>&lt; <a class="elRef" href="http://en.cppreference.com/w/cpp/types/is_class.html">std::is_class_v</a>&lt;T&gt; &amp;&amp; <a class="elRef" href="http://en.cppreference.com/w/cpp/types/is_object.html">std::is_object_v</a>&lt;typename T::unit_type&gt; &amp;&amp; <a class="elRef" href="http://en.cppreference.com/w/cpp/types/is_object.html">std::is_object_v</a>&lt;typename T::value_type&gt; &gt;</td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="FeeUnits_8h_source.html#l00053">53</a> of file <a class="el" href="FeeUnits_8h_source.html">FeeUnits.h</a>.</p>
</div>
</div>
<a id="ab6055a46ddc52c563a90e603901bdeb3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab6055a46ddc52c563a90e603901bdeb3">&#9670;&nbsp;</a></span>enable_muldiv_source_t</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T &gt; </div>
<table class="memname">
<tr>
<td class="memname">using <a class="el" href="namespaceripple_1_1feeunit.html#ab6055a46ddc52c563a90e603901bdeb3">ripple::feeunit::enable_muldiv_source_t</a> = typedef typename <a class="elRef" href="http://en.cppreference.com/w/cpp/types/enable_if.html">std::enable_if_t</a>&lt;<a class="el" href="namespaceripple_1_1feeunit.html#affd5a099128e424c211bd6b6ec0356d4">can_muldiv_source_v</a>&lt;T&gt; &gt;</td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="FeeUnits_8h_source.html#l00383">383</a> of file <a class="el" href="FeeUnits_8h_source.html">FeeUnits.h</a>.</p>
</div>
</div>
<a id="ab8b725740f2cbaeef0ba8b23d82e784d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab8b725740f2cbaeef0ba8b23d82e784d">&#9670;&nbsp;</a></span>enable_muldiv_dest_t</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T &gt; </div>
<table class="memname">
<tr>
<td class="memname">using <a class="el" href="namespaceripple_1_1feeunit.html#ab8b725740f2cbaeef0ba8b23d82e784d">ripple::feeunit::enable_muldiv_dest_t</a> = typedef typename <a class="elRef" href="http://en.cppreference.com/w/cpp/types/enable_if.html">std::enable_if_t</a>&lt;<a class="el" href="namespaceripple_1_1feeunit.html#a52770690ddc7af6d464058b1d7fd454b">can_muldiv_dest_v</a>&lt;T&gt; &gt;</td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="FeeUnits_8h_source.html#l00386">386</a> of file <a class="el" href="FeeUnits_8h_source.html">FeeUnits.h</a>.</p>
</div>
</div>
<a id="a0049d4ec9e01af1bc92b93091082331a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0049d4ec9e01af1bc92b93091082331a">&#9670;&nbsp;</a></span>enable_muldiv_sources_t</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class Source1 , class Source2 &gt; </div>
<table class="memname">
<tr>
<td class="memname">using <a class="el" href="namespaceripple_1_1feeunit.html#a0049d4ec9e01af1bc92b93091082331a">ripple::feeunit::enable_muldiv_sources_t</a> = typedef typename <a class="elRef" href="http://en.cppreference.com/w/cpp/types/enable_if.html">std::enable_if_t</a>&lt;<a class="el" href="namespaceripple_1_1feeunit.html#a5b7fce21eaa0f63f6be19f24945c20c4">can_muldiv_sources_v</a>&lt;Source1, Source2&gt; &gt;</td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="FeeUnits_8h_source.html#l00390">390</a> of file <a class="el" href="FeeUnits_8h_source.html">FeeUnits.h</a>.</p>
</div>
</div>
<a id="aa16a30447d57c0dd9a5f5013ad73ec05"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa16a30447d57c0dd9a5f5013ad73ec05">&#9670;&nbsp;</a></span>enable_muldiv_t</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class Source1 , class Source2 , class Dest &gt; </div>
<table class="memname">
<tr>
<td class="memname">using <a class="el" href="namespaceripple_1_1feeunit.html#aa16a30447d57c0dd9a5f5013ad73ec05">ripple::feeunit::enable_muldiv_t</a> = typedef typename <a class="elRef" href="http://en.cppreference.com/w/cpp/types/enable_if.html">std::enable_if_t</a>&lt;<a class="el" href="namespaceripple_1_1feeunit.html#aafaef1c66b8e67bbf391746cdf2d0f2f">can_muldiv_v</a>&lt;Source1, Source2, Dest&gt; &gt;</td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="FeeUnits_8h_source.html#l00394">394</a> of file <a class="el" href="FeeUnits_8h_source.html">FeeUnits.h</a>.</p>
</div>
</div>
<a id="ab9486bd33af6f7c7a5a947933d94ee05"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab9486bd33af6f7c7a5a947933d94ee05">&#9670;&nbsp;</a></span>enable_muldiv_commute_t</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class Source1 , class Source2 , class Dest &gt; </div>
<table class="memname">
<tr>
<td class="memname">using <a class="el" href="namespaceripple_1_1feeunit.html#ab9486bd33af6f7c7a5a947933d94ee05">ripple::feeunit::enable_muldiv_commute_t</a> = typedef typename <a class="elRef" href="http://en.cppreference.com/w/cpp/types/enable_if.html">std::enable_if_t</a>&lt;<a class="el" href="namespaceripple_1_1feeunit.html#a9cc51e91c4478f0e2a3e942edc19b60e">can_muldiv_commute_v</a>&lt;Source1, Source2, Dest&gt; &gt;</td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="FeeUnits_8h_source.html#l00398">398</a> of file <a class="el" href="FeeUnits_8h_source.html">FeeUnits.h</a>.</p>
</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a id="a5c2528e82b1e4e0847307beea0d9b2a5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5c2528e82b1e4e0847307beea0d9b2a5">&#9670;&nbsp;</a></span>operator&lt;&lt;()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class Char , class Traits , class UnitTag , class T &gt; </div>
<table class="memname">
<tr>
<td class="memname"><a class="elRef" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::basic_ostream</a>&lt;Char, Traits&gt;&amp; ripple::feeunit::operator&lt;&lt; </td>
<td>(</td>
<td class="paramtype"><a class="elRef" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::basic_ostream</a>&lt; Char, Traits &gt; &amp;&#160;</td>
<td class="paramname"><em>os</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classripple_1_1feeunit_1_1TaggedFee.html">TaggedFee</a>&lt; UnitTag, T &gt; &amp;&#160;</td>
<td class="paramname"><em>q</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="FeeUnits_8h_source.html#l00329">329</a> of file <a class="el" href="FeeUnits_8h_source.html">FeeUnits.h</a>.</p>
</div>
</div>
<a id="a2fcae68e9223377a6c92cc1bea73d97b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2fcae68e9223377a6c92cc1bea73d97b">&#9670;&nbsp;</a></span>to_string()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class UnitTag , class T &gt; </div>
<table class="memname">
<tr>
<td class="memname"><a class="elRef" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> ripple::feeunit::to_string </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classripple_1_1feeunit_1_1TaggedFee.html">TaggedFee</a>&lt; UnitTag, T &gt; const &amp;&#160;</td>
<td class="paramname"><em>amount</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="FeeUnits_8h_source.html#l00336">336</a> of file <a class="el" href="FeeUnits_8h_source.html">FeeUnits.h</a>.</p>
</div>
</div>
<a id="a363b1c8a07bd5a0126fcdec810b58be1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a363b1c8a07bd5a0126fcdec810b58be1">&#9670;&nbsp;</a></span>scalar()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T &gt; </div>
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classripple_1_1feeunit_1_1TaggedFee.html">TaggedFee</a>&lt;unitlessTag, T&gt; ripple::feeunit::scalar </td>
<td>(</td>
<td class="paramtype">T&#160;</td>
<td class="paramname"><em>value</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="FeeUnits_8h_source.html#l00402">402</a> of file <a class="el" href="FeeUnits_8h_source.html">FeeUnits.h</a>.</p>
</div>
</div>
<a id="ad409fa802fc3c41187352eefe1acf383"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad409fa802fc3c41187352eefe1acf383">&#9670;&nbsp;</a></span>mulDivU()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class Source1 , class Source2 , class Dest , class = enable_muldiv_t&lt;Source1, Source2, Dest&gt;&gt; </div>
<table class="memname">
<tr>
<td class="memname"><a class="elRef" href="http://en.cppreference.com/w/cpp/utility/pair.html">std::pair</a>&lt;bool, Dest&gt; ripple::feeunit::mulDivU </td>
<td>(</td>
<td class="paramtype">Source1&#160;</td>
<td class="paramname"><em>value</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">Dest&#160;</td>
<td class="paramname"><em>mul</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">Source2&#160;</td>
<td class="paramname"><em>div</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="FeeUnits_8h_source.html#l00413">413</a> of file <a class="el" href="FeeUnits_8h_source.html">FeeUnits.h</a>.</p>
</div>
</div>
<h2 class="groupheader">Variable Documentation</h2>
<a id="a189bd0d0f49fa6d39a6f501496e85b83"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a189bd0d0f49fa6d39a6f501496e85b83">&#9670;&nbsp;</a></span>is_usable_unit_v</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T , class = enable_if_unit_t&lt;T&gt;&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">constexpr bool ripple::feeunit::is_usable_unit_v</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">constexpr</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<b>Initial value:</b><div class="fragment"><div class="line">=</div>
<div class="line"> std::is_same_v&lt;typename T::unit_type, feeunitTag&gt; ||</div>
<div class="line"> std::is_same_v&lt;typename T::unit_type, feelevelTag&gt; ||</div>
<div class="line"> std::is_same_v&lt;typename T::unit_type, unitlessTag&gt; ||</div>
<div class="line"> std::is_same_v&lt;typename T::unit_type, dropTag&gt;</div>
</div><!-- fragment -->
<p><code>is_usable_unit_v</code> is checked to ensure that only values with known valid type tags can be used (sometimes transparently) in non-fee contexts. </p>
<p>At the time of implementation, this includes all known tags, but more may be added in the future, and they should not be added automatically unless determined to be appropriate. </p>
<p class="definition">Definition at line <a class="el" href="FeeUnits_8h_source.html#l00063">63</a> of file <a class="el" href="FeeUnits_8h_source.html">FeeUnits.h</a>.</p>
</div>
</div>
<a id="affd5a099128e424c211bd6b6ec0356d4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#affd5a099128e424c211bd6b6ec0356d4">&#9670;&nbsp;</a></span>can_muldiv_source_v</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class Source , class = enable_if_unit_t&lt;Source&gt;&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">constexpr bool ripple::feeunit::can_muldiv_source_v</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">constexpr</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<b>Initial value:</b><div class="fragment"><div class="line">=</div>
<div class="line"> std::is_convertible_v&lt;typename Source::value_type, std::uint64_t&gt;</div>
</div><!-- fragment -->
<p class="definition">Definition at line <a class="el" href="FeeUnits_8h_source.html#l00342">342</a> of file <a class="el" href="FeeUnits_8h_source.html">FeeUnits.h</a>.</p>
</div>
</div>
<a id="a52770690ddc7af6d464058b1d7fd454b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a52770690ddc7af6d464058b1d7fd454b">&#9670;&nbsp;</a></span>can_muldiv_dest_v</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class Dest , class = enable_if_unit_t&lt;Dest&gt;&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">constexpr bool ripple::feeunit::can_muldiv_dest_v</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">constexpr</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<b>Initial value:</b><div class="fragment"><div class="line">=</div>
<div class="line"> can_muldiv_source_v&lt;Dest&gt;&amp;&amp; </div>
<div class="line"> std::is_convertible_v&lt;std::uint64_t, typename Dest::value_type&gt; &amp;&amp;</div>
<div class="line"> <span class="keyword">sizeof</span>(<span class="keyword">typename</span> Dest::value_type) &gt;= <span class="keyword">sizeof</span>(<a class="codeRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint64_t</a>)</div>
</div><!-- fragment -->
<p class="definition">Definition at line <a class="el" href="FeeUnits_8h_source.html#l00346">346</a> of file <a class="el" href="FeeUnits_8h_source.html">FeeUnits.h</a>.</p>
</div>
</div>
<a id="a5b7fce21eaa0f63f6be19f24945c20c4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5b7fce21eaa0f63f6be19f24945c20c4">&#9670;&nbsp;</a></span>can_muldiv_sources_v</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class Source1 , class Source2 , class = enable_if_unit_t&lt;Source1&gt;, class = enable_if_unit_t&lt;Source2&gt;&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">constexpr bool ripple::feeunit::can_muldiv_sources_v</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">constexpr</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<b>Initial value:</b><div class="fragment"><div class="line">=</div>
<div class="line"> can_muldiv_source_v&lt;Source1&gt;&amp;&amp; can_muldiv_source_v&lt;Source2&gt;&amp;&amp; std::</div>
<div class="line"> is_same_v&lt;typename Source1::unit_type, typename Source2::unit_type&gt;</div>
</div><!-- fragment -->
<p class="definition">Definition at line <a class="el" href="FeeUnits_8h_source.html#l00356">356</a> of file <a class="el" href="FeeUnits_8h_source.html">FeeUnits.h</a>.</p>
</div>
</div>
<a id="aafaef1c66b8e67bbf391746cdf2d0f2f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aafaef1c66b8e67bbf391746cdf2d0f2f">&#9670;&nbsp;</a></span>can_muldiv_v</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class Source1 , class Source2 , class Dest , class = enable_if_unit_t&lt;Source1&gt;, class = enable_if_unit_t&lt;Source2&gt;, class = enable_if_unit_t&lt;Dest&gt;&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">constexpr bool ripple::feeunit::can_muldiv_v</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">constexpr</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<b>Initial value:</b><div class="fragment"><div class="line">=</div>
<div class="line"> can_muldiv_sources_v&lt;Source1, Source2&gt;&amp;&amp; can_muldiv_dest_v&lt;Dest&gt;</div>
</div><!-- fragment -->
<p class="definition">Definition at line <a class="el" href="FeeUnits_8h_source.html#l00367">367</a> of file <a class="el" href="FeeUnits_8h_source.html">FeeUnits.h</a>.</p>
</div>
</div>
<a id="a9cc51e91c4478f0e2a3e942edc19b60e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9cc51e91c4478f0e2a3e942edc19b60e">&#9670;&nbsp;</a></span>can_muldiv_commute_v</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class Source1 , class Source2 , class Dest , class = enable_if_unit_t&lt;Source1&gt;, class = enable_if_unit_t&lt;Source2&gt;, class = enable_if_unit_t&lt;Dest&gt;&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">constexpr bool ripple::feeunit::can_muldiv_commute_v</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">constexpr</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<b>Initial value:</b><div class="fragment"><div class="line">= can_muldiv_v&lt;Source1, Source2, Dest&gt; &amp;&amp;</div>
<div class="line"> !std::is_same_v&lt;typename Source1::unit_type, typename Dest::unit_type&gt;</div>
</div><!-- fragment -->
<p class="definition">Definition at line <a class="el" href="FeeUnits_8h_source.html#l00378">378</a> of file <a class="el" href="FeeUnits_8h_source.html">FeeUnits.h</a>.</p>
</div>
</div>
</div><!-- contents -->
<div class="ttc" id="ainteger_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint64_t</a></div></div>
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>
</body>
</html>