utl/doc/html/stl_8h.html
Christos Houtouridis bebb193278 DEV: minor changes
2019-11-14 12:24:04 +02:00

383 lines
58 KiB
HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://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.14"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>uTL: include/utl/concepts/stl.h File 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="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(initResizable);
/* @license-end */</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">uTL
</div>
<div id="projectbrief">micro Template library</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.14 -->
<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>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('stl_8h.html','');});
/* @license-end */
</script>
<div id="doc-content">
<!-- 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 class="header">
<div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#namespaces">Namespaces</a> &#124;
<a href="#typedef-members">Typedefs</a> &#124;
<a href="#var-members">Variables</a> </div>
<div class="headertitle">
<div class="title">stl.h File Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>STL's Concepts.
<a href="#details">More...</a></p>
<div class="textblock"><code>#include &lt;<a class="el" href="impl_8h_source.html">utl/core/impl.h</a>&gt;</code><br />
<code>#include &lt;<a class="el" href="meta_8h_source.html">utl/meta/meta.h</a>&gt;</code><br />
<code>#include &lt;<a class="el" href="utility_2invoke_8h_source.html">utl/utility/invoke.h</a>&gt;</code><br />
<code>#include &lt;<a class="el" href="defines_8h_source.html">utl/concepts/defines.h</a>&gt;</code><br />
</div>
<p><a href="stl_8h_source.html">Go to the source code of this file.</a></p>
<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">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structutl_1_1common__impl_1_1____copy__cv__.html">utl::common_impl::__copy_cv_&lt; From &gt;</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structutl_1_1common__impl_1_1____copy__cv___3_01const_01_from_01_4.html">utl::common_impl::__copy_cv_&lt; const From &gt;</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structutl_1_1common__impl_1_1____copy__cv___3_01volatile_01_from_01_4.html">utl::common_impl::__copy_cv_&lt; volatile From &gt;</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structutl_1_1common__impl_1_1____copy__cv___3_01const_01volatile_01_from_01_4.html">utl::common_impl::__copy_cv_&lt; const volatile From &gt;</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structutl_1_1common__impl_1_1____common__ref__.html">utl::common_impl::__common_ref_&lt; T, U, class &gt;</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structutl_1_1common__impl_1_1____common__ref___3_01_t_01_6_00_01_u_01_6_00_01meta_1_1void__t_3_05e5aa384829bb34312a7b8ee4ecaa00f.html">utl::common_impl::__common_ref_&lt; T &amp;, U &amp;, meta::void_t&lt; __lref_res&lt; T, U &gt;, meta::when&lt; std::is_reference&lt; __lref_res&lt; T, U &gt; &gt;::value &gt; &gt; &gt;</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structutl_1_1common__impl_1_1____common__ref___3_01_t_01_6_6_00_01_u_01_6_6_00_01meta_1_1void__tc4e71c227f251cadf0e0fb7b1ba6f1e9.html">utl::common_impl::__common_ref_&lt; T &amp;&amp;, U &amp;&amp;, meta::void_t&lt; __common_ref&lt; T &amp;, U &amp; &gt;, meta::when&lt; ConvertibleTo&lt; T &amp;&amp;, __rref_res&lt; T, U &gt; &gt; &gt;, meta::when&lt; ConvertibleTo&lt; U &amp;&amp;, __rref_res&lt; T, U &gt; &gt; &gt; &gt; &gt;</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structutl_1_1common__impl_1_1____common__ref___3_01_t_01_6_6_00_01_u_01_6_00_01meta_1_1void__t_3972a8d6e6799b6ee6537c969cdced343.html">utl::common_impl::__common_ref_&lt; T &amp;&amp;, U &amp;, meta::void_t&lt; __common_ref&lt; const T &amp;, U &amp; &gt;, meta::when&lt; ConvertibleTo&lt; T &amp;&amp;, __common_ref&lt; const T &amp;, U &amp; &gt; &gt; &gt; &gt; &gt;</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structutl_1_1common__impl_1_1____common__ref___3_01_t_01_6_00_01_u_01_6_6_00_01meta_1_1void__t_329fba5aeac3b93aa9cfa5aa7e282e196.html">utl::common_impl::__common_ref_&lt; T &amp;, U &amp;&amp;, meta::void_t&lt; __common_ref&lt; T &amp;, const U &amp; &gt;, meta::when&lt; ConvertibleTo&lt; U &amp;&amp;, __common_ref&lt; T &amp;, const U &amp; &gt; &gt; &gt; &gt; &gt;</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structutl_1_1common__impl_1_1____xref.html">utl::common_impl::__xref&lt; class &gt;</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structutl_1_1common__impl_1_1____xref_3_01const_01_t_01_4.html">utl::common_impl::__xref&lt; const T &gt;</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structutl_1_1common__impl_1_1____xref_3_01volatile_01_t_01_4.html">utl::common_impl::__xref&lt; volatile T &gt;</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structutl_1_1common__impl_1_1____xref_3_01const_01volatile_01_t_01_4.html">utl::common_impl::__xref&lt; const volatile T &gt;</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structutl_1_1common__impl_1_1____xref_3_01_t_01_6_01_4.html">utl::common_impl::__xref&lt; T &amp; &gt;</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structutl_1_1common__impl_1_1____xref_3_01_t_01_6_6_01_4.html">utl::common_impl::__xref&lt; T &amp;&amp; &gt;</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structutl_1_1common__impl_1_1basic__common__reference.html">utl::common_impl::basic_common_reference&lt; class, class, class, class &gt;</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structutl_1_1common__impl_1_1common__reference.html">utl::common_impl::common_reference&lt;... &gt;</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structutl_1_1common__impl_1_1common__reference_3_01_t_01_4.html">utl::common_impl::common_reference&lt; T &gt;</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structutl_1_1common__impl_1_1____common__reference3.html">utl::common_impl::__common_reference3&lt; T, U,... &gt;</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structutl_1_1common__impl_1_1____common__reference3_3_01_t_00_01_u_00_01meta_1_1void__t_3_01____015b01ed12d2d90ee57fbf756ab847e9.html">utl::common_impl::__common_reference3&lt; T, U, meta::void_t&lt; __cond_res&lt; T, U &gt; &gt; &gt;</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structutl_1_1common__impl_1_1____common__reference2.html">utl::common_impl::__common_reference2&lt; T, U,... &gt;</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structutl_1_1common__impl_1_1____common__reference2_3_01_t_00_01_u_00_01meta_1_1void__t_3_01____785d0aa2f8a62416e19573fcbdd83836.html">utl::common_impl::__common_reference2&lt; T, U, meta::void_t&lt; __basic_common_reference_t&lt; T, U &gt; &gt; &gt;</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structutl_1_1common__impl_1_1____common__reference.html">utl::common_impl::__common_reference&lt; T, U,... &gt;</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structutl_1_1common__impl_1_1____common__reference_3_01_t_00_01_u_00_01meta_1_1when_3_01std_1_1i23b95b4b3a65ce598dbcc7f52e9dab2c.html">utl::common_impl::__common_reference&lt; T, U, meta::when&lt; std::is_reference&lt; T &gt;::value &amp;&amp;std::is_reference&lt; U &gt;::value &gt; &gt;</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structutl_1_1common__impl_1_1common__reference_3_01_t_00_01_u_01_4.html">utl::common_impl::common_reference&lt; T, U &gt;</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structutl_1_1common__impl_1_1common__reference_3_01_t_00_01_u_00_01_v_00_01_w_8_8_8_01_4.html">utl::common_impl::common_reference&lt; T, U, V, W... &gt;</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structutl_1_1details_1_1is__boolean__.html">utl::details::is_boolean_&lt; B, typename &gt;</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structutl_1_1details_1_1is__boolean___3_01_b_00_01meta_1_1void__t_3_01meta_1_1use__if__same__t_37e77ed45a431955fc15b4c1210ad8491.html">utl::details::is_boolean_&lt; B, meta::void_t&lt; meta::use_if_same_t&lt; bool, decltype(!std::declval&lt; cref_&lt; B &gt;&gt;())&gt;, meta::use_if_same_t&lt; bool, decltype(std::declval&lt; cref_&lt; B &gt;&gt;()==std::declval&lt; cref_&lt; B &gt;&gt;())&gt;, meta::use_if_same_t&lt; bool, decltype(std::declval&lt; cref_&lt; B &gt;&gt;() !=std::declval&lt; cref_&lt; B &gt;&gt;())&gt;, meta::use_if_same_t&lt; bool, decltype(std::declval&lt; cref_&lt; B &gt;&gt;() &amp;&amp;std::declval&lt; cref_&lt; B &gt;&gt;())&gt;, meta::use_if_same_t&lt; bool, decltype(std::declval&lt; cref_&lt; B &gt;&gt;()||std::declval&lt; cref_&lt; B &gt;&gt;())&gt; &gt; &gt;</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structutl_1_1details_1_1is__weakly__equality__comparable__with__.html">utl::details::is_weakly_equality_comparable_with_&lt; T, U, typename &gt;</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structutl_1_1details_1_1is__weakly__equality__comparable__with___3_01_t_00_01_u_00_01meta_1_1voi4404f901930622694666ca68fb75381b.html">utl::details::is_weakly_equality_comparable_with_&lt; T, U, meta::void_t&lt; meta::use_if_same_t&lt; bool, decltype(std::declval&lt; cref_&lt; T &gt;&gt;()==std::declval&lt; cref_&lt; U &gt;&gt;())&gt;, meta::use_if_same_t&lt; bool, decltype(std::declval&lt; cref_&lt; T &gt;&gt;() !=std::declval&lt; cref_&lt; U &gt;&gt;())&gt;, meta::use_if_same_t&lt; bool, decltype(std::declval&lt; cref_&lt; U &gt;&gt;()==std::declval&lt; cref_&lt; T &gt;&gt;())&gt;, meta::use_if_same_t&lt; bool, decltype(std::declval&lt; cref_&lt; U &gt;&gt;() !=std::declval&lt; cref_&lt; T &gt;&gt;())&gt; &gt; &gt;</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structutl_1_1details_1_1is__strict__totally__ordered__.html">utl::details::is_strict_totally_ordered_&lt; T, typename &gt;</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structutl_1_1details_1_1is__strict__totally__ordered___3_01_t_00_01meta_1_1void__t_3_01meta_1_1uab48bcfc89164f446368b35bcc7c8bcd.html">utl::details::is_strict_totally_ordered_&lt; T, meta::void_t&lt; meta::use_if_same_t&lt; bool, decltype(std::declval&lt; cref_&lt; T &gt;&gt;()&lt; std::declval&lt; cref_&lt; T &gt;&gt;())&gt;, meta::use_if_same_t&lt; bool, decltype(std::declval&lt; cref_&lt; T &gt;&gt;() &gt; std::declval&lt; cref_&lt; T &gt;&gt;())&gt;, meta::use_if_same_t&lt; bool, decltype(std::declval&lt; cref_&lt; T &gt;&gt;()&lt;=std::declval&lt; cref_&lt; T &gt;&gt;())&gt;, meta::use_if_same_t&lt; bool, decltype(std::declval&lt; cref_&lt; T &gt;&gt;() &gt;=std::declval&lt; cref_&lt; T &gt;&gt;())&gt; &gt; &gt;</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structutl_1_1details_1_1is__strict__totally__ordered__with__.html">utl::details::is_strict_totally_ordered_with_&lt; T, U, typename &gt;</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structutl_1_1details_1_1is__strict__totally__ordered__with___3_01_t_00_01_u_00_01meta_1_1void__t8fb7dd5a6ad25952241e37c6f163f434.html">utl::details::is_strict_totally_ordered_with_&lt; T, U, meta::void_t&lt; meta::use_if_same_t&lt; bool, decltype(std::declval&lt; cref_&lt; T &gt;&gt;()&lt; std::declval&lt; cref_&lt; U &gt;&gt;())&gt;, meta::use_if_same_t&lt; bool, decltype(std::declval&lt; cref_&lt; T &gt;&gt;() &gt; std::declval&lt; cref_&lt; U &gt;&gt;())&gt;, meta::use_if_same_t&lt; bool, decltype(std::declval&lt; cref_&lt; T &gt;&gt;()&lt;=std::declval&lt; cref_&lt; U &gt;&gt;())&gt;, meta::use_if_same_t&lt; bool, decltype(std::declval&lt; cref_&lt; T &gt;&gt;() &gt;=std::declval&lt; cref_&lt; U &gt;&gt;())&gt;, meta::use_if_same_t&lt; bool, decltype(std::declval&lt; cref_&lt; U &gt;&gt;()&lt; std::declval&lt; cref_&lt; T &gt;&gt;())&gt;, meta::use_if_same_t&lt; bool, decltype(std::declval&lt; cref_&lt; U &gt;&gt;() &gt; std::declval&lt; cref_&lt; T &gt;&gt;())&gt;, meta::use_if_same_t&lt; bool, decltype(std::declval&lt; cref_&lt; U &gt;&gt;()&lt;=std::declval&lt; cref_&lt; T &gt;&gt;())&gt;, meta::use_if_same_t&lt; bool, decltype(std::declval&lt; cref_&lt; U &gt;&gt;() &gt;=std::declval&lt; cref_&lt; T &gt;&gt;())&gt; &gt; &gt;</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="namespaces"></a>
Namespaces</h2></td></tr>
<tr class="memitem:namespaceutl"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceutl.html">utl</a></td></tr>
<tr class="memdesc:namespaceutl"><td class="mdescLeft">&#160;</td><td class="mdescRight">STL's core language concepts. <br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:namespaceutl_1_1common__impl"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceutl_1_1common__impl.html">utl::common_impl</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:namespaceutl_1_1details"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceutl_1_1details.html">utl::details</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:a7a9d26263662e02fbe3b238da5fd7338"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:a7a9d26263662e02fbe3b238da5fd7338"><td class="memTemplItemLeft" align="right" valign="top">using&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceutl.html#a7a9d26263662e02fbe3b238da5fd7338">utl::remove_cvref_t</a> = std::remove_cv_t&lt; std::remove_reference_t&lt; T &gt; &gt;</td></tr>
<tr class="separator:a7a9d26263662e02fbe3b238da5fd7338"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7d69beba08b81379703fd3b0ca42044d"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:a7d69beba08b81379703fd3b0ca42044d"><td class="memTemplItemLeft" align="right" valign="top">using&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceutl.html#a7d69beba08b81379703fd3b0ca42044d">utl::cref_</a> = const std::remove_reference_t&lt; T &gt; &amp;</td></tr>
<tr class="separator:a7d69beba08b81379703fd3b0ca42044d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa3f95fc48a94b2fae3c2959b7c024998"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:aa3f95fc48a94b2fae3c2959b7c024998"><td class="memTemplItemLeft" align="right" valign="top">using&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceutl.html#aa3f95fc48a94b2fae3c2959b7c024998">utl::_ref_t</a> = std::add_lvalue_reference_t&lt; T &gt;</td></tr>
<tr class="separator:aa3f95fc48a94b2fae3c2959b7c024998"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac5e425d39e8ee62e68664c6166d02d0c"><td class="memTemplParams" colspan="2">template&lt;typename _T1 , typename _T2 , typename _Ret = _T1&gt; </td></tr>
<tr class="memitem:ac5e425d39e8ee62e68664c6166d02d0c"><td class="memTemplItemLeft" align="right" valign="top">using&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceutl.html#ac5e425d39e8ee62e68664c6166d02d0c">utl::use_if_same_t</a> = meta::eval&lt; meta::enable_if&lt; meta::same_&lt; _T1, _T2 &gt;::value, _Ret &gt; &gt;</td></tr>
<tr class="separator:ac5e425d39e8ee62e68664c6166d02d0c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab43a461d352a35dc1b3de39bfe17e38b"><td class="memTemplParams" colspan="2">template&lt;class T , class U &gt; </td></tr>
<tr class="memitem:ab43a461d352a35dc1b3de39bfe17e38b"><td class="memTemplItemLeft" align="right" valign="top">using&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceutl_1_1common__impl.html#ab43a461d352a35dc1b3de39bfe17e38b">utl::common_impl::__cond_res</a> = decltype(false ? std::declval&lt; T(&amp;)()&gt;()() :std::declval&lt; U(&amp;)()&gt;()())</td></tr>
<tr class="separator:ab43a461d352a35dc1b3de39bfe17e38b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aed700217ef1518692242c1059f3dff27"><td class="memTemplParams" colspan="2">template&lt;class From , class To &gt; </td></tr>
<tr class="memitem:aed700217ef1518692242c1059f3dff27"><td class="memTemplItemLeft" align="right" valign="top">using&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceutl_1_1common__impl.html#aed700217ef1518692242c1059f3dff27">utl::common_impl::__copy_cv</a> = meta::invoke&lt; __copy_cv_&lt; From &gt;, To &gt;</td></tr>
<tr class="separator:aed700217ef1518692242c1059f3dff27"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3d7922723a5d41f399f3c8a99e016e73"><td class="memTemplParams" colspan="2">template&lt;class T &gt; </td></tr>
<tr class="memitem:a3d7922723a5d41f399f3c8a99e016e73"><td class="memTemplItemLeft" align="right" valign="top">using&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceutl_1_1common__impl.html#a3d7922723a5d41f399f3c8a99e016e73">utl::common_impl::__cref</a> = std::add_lvalue_reference_t&lt; const std::remove_reference_t&lt; T &gt; &gt;</td></tr>
<tr class="separator:a3d7922723a5d41f399f3c8a99e016e73"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8913f9d610ed8720c817081662fa9f1f"><td class="memTemplParams" colspan="2">template&lt;class T , class U &gt; </td></tr>
<tr class="memitem:a8913f9d610ed8720c817081662fa9f1f"><td class="memTemplItemLeft" align="right" valign="top">using&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceutl_1_1common__impl.html#a8913f9d610ed8720c817081662fa9f1f">utl::common_impl::__common_ref</a> = meta::eval&lt; __common_ref_&lt; T, U &gt; &gt;</td></tr>
<tr class="separator:a8913f9d610ed8720c817081662fa9f1f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae2f3d56c7e5144e099cdf37b19523290"><td class="memTemplParams" colspan="2">template&lt;class T , class U &gt; </td></tr>
<tr class="memitem:ae2f3d56c7e5144e099cdf37b19523290"><td class="memTemplItemLeft" align="right" valign="top">using&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceutl_1_1common__impl.html#ae2f3d56c7e5144e099cdf37b19523290">utl::common_impl::__lref_res</a> = __cond_res&lt; __copy_cv&lt; T, U &gt; &amp;, __copy_cv&lt; U, T &gt; &amp;&gt;</td></tr>
<tr class="separator:ae2f3d56c7e5144e099cdf37b19523290"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a312c9f3e740103f831a49624097948f5"><td class="memTemplParams" colspan="2">template&lt;class T , class U , class R = __common_ref&lt;T&amp;, U&amp;&gt;&gt; </td></tr>
<tr class="memitem:a312c9f3e740103f831a49624097948f5"><td class="memTemplItemLeft" align="right" valign="top">using&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceutl_1_1common__impl.html#a312c9f3e740103f831a49624097948f5">utl::common_impl::__rref_res</a> = std::remove_reference_t&lt; R &gt; &amp;&amp;</td></tr>
<tr class="separator:a312c9f3e740103f831a49624097948f5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3bbe5eb74a1c6017f60e3034519d69d6"><td class="memTemplParams" colspan="2">template&lt;class T , class U &gt; </td></tr>
<tr class="memitem:a3bbe5eb74a1c6017f60e3034519d69d6"><td class="memTemplItemLeft" align="right" valign="top">using&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceutl_1_1common__impl.html#a3bbe5eb74a1c6017f60e3034519d69d6">utl::common_impl::__basic_common_reference_t</a> = meta::eval&lt; basic_common_reference&lt; remove_cvref_t&lt; T &gt;, remove_cvref_t&lt; U &gt;, __xref&lt; T &gt;::template apply, __xref&lt; U &gt;::template apply &gt; &gt;</td></tr>
<tr class="separator:a3bbe5eb74a1c6017f60e3034519d69d6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adc4b085a84c0355fda341475074ff230"><td class="memTemplParams" colspan="2">template&lt;class... Ts&gt; </td></tr>
<tr class="memitem:adc4b085a84c0355fda341475074ff230"><td class="memTemplItemLeft" align="right" valign="top">using&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceutl_1_1common__impl.html#adc4b085a84c0355fda341475074ff230">utl::common_impl::common_reference_t</a> = meta::eval&lt; common_reference&lt; Ts... &gt; &gt;</td></tr>
<tr class="separator:adc4b085a84c0355fda341475074ff230"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7f9309206778a6e9f0859c328b4288df"><td class="memTemplParams" colspan="2">template&lt;typename B &gt; </td></tr>
<tr class="memitem:a7f9309206778a6e9f0859c328b4288df"><td class="memTemplItemLeft" align="right" valign="top">using&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceutl_1_1details.html#a7f9309206778a6e9f0859c328b4288df">utl::details::is_boolean_t</a> = meta::eval&lt; is_boolean_&lt; B &gt; &gt;</td></tr>
<tr class="separator:a7f9309206778a6e9f0859c328b4288df"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a499205eb8ca7f46d1e417a27f52442b8"><td class="memTemplParams" colspan="2">template&lt;typename T , typename U &gt; </td></tr>
<tr class="memitem:a499205eb8ca7f46d1e417a27f52442b8"><td class="memTemplItemLeft" align="right" valign="top">using&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceutl_1_1details.html#a499205eb8ca7f46d1e417a27f52442b8">utl::details::is_weakly_equality_comparable_with_t</a> = meta::eval&lt; is_weakly_equality_comparable_with_&lt; T, U &gt; &gt;</td></tr>
<tr class="separator:a499205eb8ca7f46d1e417a27f52442b8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3d90ca0461264f84f75c7698f7bbb811"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:a3d90ca0461264f84f75c7698f7bbb811"><td class="memTemplItemLeft" align="right" valign="top">using&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceutl_1_1details.html#a3d90ca0461264f84f75c7698f7bbb811">utl::details::is_strict_totally_ordered_t</a> = meta::eval&lt; is_strict_totally_ordered_&lt; T &gt; &gt;</td></tr>
<tr class="separator:a3d90ca0461264f84f75c7698f7bbb811"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acd9fac18316e44b7abd920686de886f0"><td class="memTemplParams" colspan="2">template&lt;typename T , typename U &gt; </td></tr>
<tr class="memitem:acd9fac18316e44b7abd920686de886f0"><td class="memTemplItemLeft" align="right" valign="top">using&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceutl_1_1details.html#acd9fac18316e44b7abd920686de886f0">utl::details::is_strict_totally_ordered_with_t</a> = meta::eval&lt; is_strict_totally_ordered_with_&lt; T, U &gt; &gt;</td></tr>
<tr class="separator:acd9fac18316e44b7abd920686de886f0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr><td colspan="2"><div class="groupHeader"></div></td></tr>
<tr class="memitem:a3970b90f0e0fd9f801cfcb1d955e3d42"><td class="memTemplParams" colspan="2">template&lt;typename... Ts&gt; </td></tr>
<tr class="memitem:a3970b90f0e0fd9f801cfcb1d955e3d42"><td class="memTemplItemLeft" align="right" valign="top">using&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceutl.html#a3970b90f0e0fd9f801cfcb1d955e3d42">utl::common_reference</a> = common_impl::common_reference&lt; Ts... &gt;</td></tr>
<tr class="separator:a3970b90f0e0fd9f801cfcb1d955e3d42"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4d76d9e29b830c16ad7dd34e3800a746"><td class="memTemplParams" colspan="2">template&lt;typename... Ts&gt; </td></tr>
<tr class="memitem:a4d76d9e29b830c16ad7dd34e3800a746"><td class="memTemplItemLeft" align="right" valign="top">using&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceutl.html#a4d76d9e29b830c16ad7dd34e3800a746">utl::common_reference_t</a> = meta::eval&lt; common_reference&lt; Ts... &gt; &gt;</td></tr>
<tr class="separator:a4d76d9e29b830c16ad7dd34e3800a746"><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:af86da3571c3026c6bbd501c6b7bc5093"><td class="memTemplParams" colspan="2">template&lt;class T , class U &gt; </td></tr>
<tr class="memitem:af86da3571c3026c6bbd501c6b7bc5093"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="group__concepts.html#gaf81026787698cd63592563ab8223062b">_utlConcept</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceutl.html#af86da3571c3026c6bbd501c6b7bc5093">utl::Same</a> = meta::same_&lt;T, U&gt;::value</td></tr>
<tr class="separator:af86da3571c3026c6bbd501c6b7bc5093"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0904cc4071a8ea97a1d646dc0a9ca85b"><td class="memTemplParams" colspan="2">template&lt;class Derived , class Base &gt; </td></tr>
<tr class="memitem:a0904cc4071a8ea97a1d646dc0a9ca85b"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="group__concepts.html#gaf81026787698cd63592563ab8223062b">_utlConcept</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceutl.html#a0904cc4071a8ea97a1d646dc0a9ca85b">utl::DerivedFrom</a></td></tr>
<tr class="separator:a0904cc4071a8ea97a1d646dc0a9ca85b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9c88a03a5b6dd66200e86f98fb1eb9eb"><td class="memTemplParams" colspan="2">template&lt;class From , class To &gt; </td></tr>
<tr class="memitem:a9c88a03a5b6dd66200e86f98fb1eb9eb"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="group__concepts.html#gaf81026787698cd63592563ab8223062b">_utlConcept</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceutl.html#a9c88a03a5b6dd66200e86f98fb1eb9eb">utl::ConvertibleTo</a> = std::is_convertible&lt;From, To&gt;::value</td></tr>
<tr class="separator:a9c88a03a5b6dd66200e86f98fb1eb9eb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1cc37f121888dcc030b8e676b077024f"><td class="memTemplParams" colspan="2">template&lt;class T , class U &gt; </td></tr>
<tr class="memitem:a1cc37f121888dcc030b8e676b077024f"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="group__concepts.html#gaf81026787698cd63592563ab8223062b">_utlConcept</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceutl.html#a1cc37f121888dcc030b8e676b077024f">utl::CommonReference</a></td></tr>
<tr class="separator:a1cc37f121888dcc030b8e676b077024f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a79e23f98aa58c2dcd111743a096ef092"><td class="memTemplParams" colspan="2">template&lt;class T , class U &gt; </td></tr>
<tr class="memitem:a79e23f98aa58c2dcd111743a096ef092"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="group__concepts.html#gaf81026787698cd63592563ab8223062b">_utlConcept</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceutl.html#a79e23f98aa58c2dcd111743a096ef092">utl::Common</a></td></tr>
<tr class="separator:a79e23f98aa58c2dcd111743a096ef092"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ada9137016ddccf3339b2f6b3c409cc3c"><td class="memTemplParams" colspan="2">template&lt;class T &gt; </td></tr>
<tr class="memitem:ada9137016ddccf3339b2f6b3c409cc3c"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="group__concepts.html#gaf81026787698cd63592563ab8223062b">_utlConcept</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceutl.html#ada9137016ddccf3339b2f6b3c409cc3c">utl::Integral</a> = std::is_integral&lt;T&gt;::value</td></tr>
<tr class="separator:ada9137016ddccf3339b2f6b3c409cc3c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a667b758d906c466d1b8a878a45750bf1"><td class="memTemplParams" colspan="2">template&lt;class T &gt; </td></tr>
<tr class="memitem:a667b758d906c466d1b8a878a45750bf1"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="group__concepts.html#gaf81026787698cd63592563ab8223062b">_utlConcept</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceutl.html#a667b758d906c466d1b8a878a45750bf1">utl::SignedIntegral</a> = Integral&lt;T&gt; &amp;&amp; std::is_signed&lt;T&gt;::value</td></tr>
<tr class="separator:a667b758d906c466d1b8a878a45750bf1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7fb6eaf8fc1c5d65755c8c96a7a9b61f"><td class="memTemplParams" colspan="2">template&lt;class T &gt; </td></tr>
<tr class="memitem:a7fb6eaf8fc1c5d65755c8c96a7a9b61f"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="group__concepts.html#gaf81026787698cd63592563ab8223062b">_utlConcept</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceutl.html#a7fb6eaf8fc1c5d65755c8c96a7a9b61f">utl::UnsignedIntegral</a> = Integral&lt;T&gt; &amp;&amp; !std::is_signed&lt;T&gt;::value</td></tr>
<tr class="separator:a7fb6eaf8fc1c5d65755c8c96a7a9b61f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7b8e4a26148ed5f2c60e4fd7d41e7e63"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:a7b8e4a26148ed5f2c60e4fd7d41e7e63"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="group__concepts.html#gaf81026787698cd63592563ab8223062b">_utlConcept</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceutl.html#a7b8e4a26148ed5f2c60e4fd7d41e7e63">utl::MoveAssignable</a> = std::is_move_assignable&lt;T&gt;::value</td></tr>
<tr class="separator:a7b8e4a26148ed5f2c60e4fd7d41e7e63"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1be866c815c4fcb2a7344650c3491c0c"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:a1be866c815c4fcb2a7344650c3491c0c"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="group__concepts.html#gaf81026787698cd63592563ab8223062b">_utlConcept</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceutl.html#a1be866c815c4fcb2a7344650c3491c0c">utl::CopyAssignable</a> = std::is_copy_assignable&lt;T&gt;::value</td></tr>
<tr class="separator:a1be866c815c4fcb2a7344650c3491c0c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acfbced82f83ceb87eeb77d31941c011a"><td class="memTemplParams" colspan="2">template&lt;class LHS , class RHS &gt; </td></tr>
<tr class="memitem:acfbced82f83ceb87eeb77d31941c011a"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="group__concepts.html#gaf81026787698cd63592563ab8223062b">_utlConcept</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceutl.html#acfbced82f83ceb87eeb77d31941c011a">utl::Assignable</a></td></tr>
<tr class="separator:acfbced82f83ceb87eeb77d31941c011a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acf2f1df100b0cc4f127243a1a83a8469"><td class="memTemplParams" colspan="2">template&lt;class T &gt; </td></tr>
<tr class="memitem:acf2f1df100b0cc4f127243a1a83a8469"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="group__concepts.html#gaf81026787698cd63592563ab8223062b">_utlConcept</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceutl.html#acf2f1df100b0cc4f127243a1a83a8469">utl::Destructible</a> = std::is_nothrow_destructible&lt;T&gt;::value</td></tr>
<tr class="separator:acf2f1df100b0cc4f127243a1a83a8469"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2a3ef7a9c788ffc1291ce15d2e5869bf"><td class="memTemplParams" colspan="2">template&lt;class T , class... Args&gt; </td></tr>
<tr class="memitem:a2a3ef7a9c788ffc1291ce15d2e5869bf"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="group__concepts.html#gaf81026787698cd63592563ab8223062b">_utlConcept</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceutl.html#a2a3ef7a9c788ffc1291ce15d2e5869bf">utl::Constructible</a></td></tr>
<tr class="separator:a2a3ef7a9c788ffc1291ce15d2e5869bf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aacd3a17129d764e8a80c615eb4b88dc3"><td class="memTemplParams" colspan="2">template&lt;class T &gt; </td></tr>
<tr class="memitem:aacd3a17129d764e8a80c615eb4b88dc3"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="group__concepts.html#gaf81026787698cd63592563ab8223062b">_utlConcept</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceutl.html#aacd3a17129d764e8a80c615eb4b88dc3">utl::DefaultConstructible</a> = Constructible&lt;T&gt;</td></tr>
<tr class="separator:aacd3a17129d764e8a80c615eb4b88dc3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2a728f3d477d96f4f719bf62079321cf"><td class="memTemplParams" colspan="2">template&lt;class T &gt; </td></tr>
<tr class="memitem:a2a728f3d477d96f4f719bf62079321cf"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="group__concepts.html#gaf81026787698cd63592563ab8223062b">_utlConcept</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceutl.html#a2a728f3d477d96f4f719bf62079321cf">utl::MoveConstructible</a></td></tr>
<tr class="separator:a2a728f3d477d96f4f719bf62079321cf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afb0f121b33b44640406b724c4d582b70"><td class="memTemplParams" colspan="2">template&lt;class T &gt; </td></tr>
<tr class="memitem:afb0f121b33b44640406b724c4d582b70"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="group__concepts.html#gaf81026787698cd63592563ab8223062b">_utlConcept</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceutl.html#afb0f121b33b44640406b724c4d582b70">utl::CopyConstructible</a></td></tr>
<tr class="separator:afb0f121b33b44640406b724c4d582b70"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afc25cb525eb29162042c21238f28f26e"><td class="memTemplParams" colspan="2">template&lt;class T &gt; </td></tr>
<tr class="memitem:afc25cb525eb29162042c21238f28f26e"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="group__concepts.html#gaf81026787698cd63592563ab8223062b">_utlConcept</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceutl.html#afc25cb525eb29162042c21238f28f26e">utl::Movable</a></td></tr>
<tr class="separator:afc25cb525eb29162042c21238f28f26e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac300f0e204f0ec4bd0ca38a551bb2b88"><td class="memTemplParams" colspan="2">template&lt;class T &gt; </td></tr>
<tr class="memitem:ac300f0e204f0ec4bd0ca38a551bb2b88"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="group__concepts.html#gaf81026787698cd63592563ab8223062b">_utlConcept</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceutl.html#ac300f0e204f0ec4bd0ca38a551bb2b88">utl::Copyable</a></td></tr>
<tr class="separator:ac300f0e204f0ec4bd0ca38a551bb2b88"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a38e00606b4b45a2ac59fa4576b4498c6"><td class="memTemplParams" colspan="2">template&lt;class B &gt; </td></tr>
<tr class="memitem:a38e00606b4b45a2ac59fa4576b4498c6"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="group__concepts.html#gaf81026787698cd63592563ab8223062b">_utlConcept</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceutl.html#a38e00606b4b45a2ac59fa4576b4498c6">utl::Boolean</a></td></tr>
<tr class="separator:a38e00606b4b45a2ac59fa4576b4498c6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a216f6e14ca647d85841fa13c40dc4ee3"><td class="memTemplParams" colspan="2">template&lt;class T , class U &gt; </td></tr>
<tr class="memitem:a216f6e14ca647d85841fa13c40dc4ee3"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="group__concepts.html#gaf81026787698cd63592563ab8223062b">_utlConcept</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceutl.html#a216f6e14ca647d85841fa13c40dc4ee3">utl::WeaklyEqualityComparableWith</a></td></tr>
<tr class="separator:a216f6e14ca647d85841fa13c40dc4ee3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a92a38a3d1638ccad068c24d1242ef63a"><td class="memTemplParams" colspan="2">template&lt;class T &gt; </td></tr>
<tr class="memitem:a92a38a3d1638ccad068c24d1242ef63a"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="group__concepts.html#gaf81026787698cd63592563ab8223062b">_utlConcept</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceutl.html#a92a38a3d1638ccad068c24d1242ef63a">utl::EqualityComparable</a> = WeaklyEqualityComparableWith&lt;T, T&gt;</td></tr>
<tr class="separator:a92a38a3d1638ccad068c24d1242ef63a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa2be0b64c41b392c5264de5f5fee094e"><td class="memTemplParams" colspan="2">template&lt;class T , class U &gt; </td></tr>
<tr class="memitem:aa2be0b64c41b392c5264de5f5fee094e"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="group__concepts.html#gaf81026787698cd63592563ab8223062b">_utlConcept</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceutl.html#aa2be0b64c41b392c5264de5f5fee094e">utl::EqualityComparableWith</a></td></tr>
<tr class="separator:aa2be0b64c41b392c5264de5f5fee094e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a720d6ece86f3f3320816aaae02eb16e4"><td class="memTemplParams" colspan="2">template&lt;class T &gt; </td></tr>
<tr class="memitem:a720d6ece86f3f3320816aaae02eb16e4"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="group__concepts.html#gaf81026787698cd63592563ab8223062b">_utlConcept</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceutl.html#a720d6ece86f3f3320816aaae02eb16e4">utl::StrictTotallyOrdered</a></td></tr>
<tr class="separator:a720d6ece86f3f3320816aaae02eb16e4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5599d14d1bd008e4c14787d610a2b429"><td class="memTemplParams" colspan="2">template&lt;class T , class U &gt; </td></tr>
<tr class="memitem:a5599d14d1bd008e4c14787d610a2b429"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="group__concepts.html#gaf81026787698cd63592563ab8223062b">_utlConcept</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceutl.html#a5599d14d1bd008e4c14787d610a2b429">utl::StrictTotallyOrderedWith</a></td></tr>
<tr class="separator:a5599d14d1bd008e4c14787d610a2b429"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af6b010e85897cb590e66a52157be1af5"><td class="memTemplParams" colspan="2">template&lt;class T &gt; </td></tr>
<tr class="memitem:af6b010e85897cb590e66a52157be1af5"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="group__concepts.html#gaf81026787698cd63592563ab8223062b">_utlConcept</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceutl.html#af6b010e85897cb590e66a52157be1af5">utl::Semiregular</a> = Copyable&lt;T&gt; &amp;&amp; DefaultConstructible&lt;T&gt;</td></tr>
<tr class="separator:af6b010e85897cb590e66a52157be1af5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3accaa436a17248b4214baebc582b2f6"><td class="memTemplParams" colspan="2">template&lt;class T &gt; </td></tr>
<tr class="memitem:a3accaa436a17248b4214baebc582b2f6"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="group__concepts.html#gaf81026787698cd63592563ab8223062b">_utlConcept</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceutl.html#a3accaa436a17248b4214baebc582b2f6">utl::Regular</a> = Semiregular&lt;T&gt; &amp;&amp; EqualityComparable&lt;T&gt;</td></tr>
<tr class="separator:a3accaa436a17248b4214baebc582b2f6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7f86c4bf42b13d9525481d731b194308"><td class="memTemplParams" colspan="2">template&lt;class T &gt; </td></tr>
<tr class="memitem:a7f86c4bf42b13d9525481d731b194308"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="group__concepts.html#gaf81026787698cd63592563ab8223062b">_utlConcept</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceutl.html#a7f86c4bf42b13d9525481d731b194308">utl::Scalar</a></td></tr>
<tr class="separator:a7f86c4bf42b13d9525481d731b194308"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a41733496c30138efd3d88f13d9382aad"><td class="memTemplParams" colspan="2">template&lt;class T &gt; </td></tr>
<tr class="memitem:a41733496c30138efd3d88f13d9382aad"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="group__concepts.html#gaf81026787698cd63592563ab8223062b">_utlConcept</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceutl.html#a41733496c30138efd3d88f13d9382aad">utl::Arithmetic</a></td></tr>
<tr class="separator:a41733496c30138efd3d88f13d9382aad"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a07e83d4763a298c1faf2b1069b55e286"><td class="memTemplParams" colspan="2">template&lt;class T &gt; </td></tr>
<tr class="memitem:a07e83d4763a298c1faf2b1069b55e286"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="group__concepts.html#gaf81026787698cd63592563ab8223062b">_utlConcept</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceutl.html#a07e83d4763a298c1faf2b1069b55e286">utl::FloatingPoint</a></td></tr>
<tr class="separator:a07e83d4763a298c1faf2b1069b55e286"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9d5bbdf19b08d6d714ec696b0ec44d0a"><td class="memTemplParams" colspan="2">template&lt;class F , class... Args&gt; </td></tr>
<tr class="memitem:a9d5bbdf19b08d6d714ec696b0ec44d0a"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="group__concepts.html#gaf81026787698cd63592563ab8223062b">_utlConcept</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceutl.html#a9d5bbdf19b08d6d714ec696b0ec44d0a">utl::Invocable</a> = is_invocable&lt;F, Args...&gt;::value</td></tr>
<tr class="separator:a9d5bbdf19b08d6d714ec696b0ec44d0a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ace9ef6da96e8cf5dc72762cd66240186"><td class="memTemplParams" colspan="2">template&lt;class F , class... Args&gt; </td></tr>
<tr class="memitem:ace9ef6da96e8cf5dc72762cd66240186"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="group__concepts.html#gaf81026787698cd63592563ab8223062b">_utlConcept</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceutl.html#ace9ef6da96e8cf5dc72762cd66240186">utl::RegularInvocable</a> = Invocable&lt;F, Args...&gt;</td></tr>
<tr class="separator:ace9ef6da96e8cf5dc72762cd66240186"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aae56a019cdd2006c4f07d2e207289195"><td class="memTemplParams" colspan="2">template&lt;class F , class... Args&gt; </td></tr>
<tr class="memitem:aae56a019cdd2006c4f07d2e207289195"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="group__concepts.html#gaf81026787698cd63592563ab8223062b">_utlConcept</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceutl.html#aae56a019cdd2006c4f07d2e207289195">utl::Predicate</a></td></tr>
<tr class="separator:aae56a019cdd2006c4f07d2e207289195"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6d1e9b4853dd005ddaf61a79333cab98"><td class="memTemplParams" colspan="2">template&lt;class R , class T , class U &gt; </td></tr>
<tr class="memitem:a6d1e9b4853dd005ddaf61a79333cab98"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="group__concepts.html#gaf81026787698cd63592563ab8223062b">_utlConcept</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceutl.html#a6d1e9b4853dd005ddaf61a79333cab98">utl::Relation</a></td></tr>
<tr class="separator:a6d1e9b4853dd005ddaf61a79333cab98"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa4b7b9105cfab3cd72865b5e0db23b11"><td class="memTemplParams" colspan="2">template&lt;class R , class T , class U &gt; </td></tr>
<tr class="memitem:aa4b7b9105cfab3cd72865b5e0db23b11"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="group__concepts.html#gaf81026787698cd63592563ab8223062b">_utlConcept</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceutl.html#aa4b7b9105cfab3cd72865b5e0db23b11">utl::StrictWeakOrder</a> = Relation&lt;R, T, U&gt;</td></tr>
<tr class="separator:aa4b7b9105cfab3cd72865b5e0db23b11"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1d50e9abd420e77555624f3e52bc7479"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceutl.html#a1d50e9abd420e77555624f3e52bc7479">utl::is_swappable</a> = std::is_swappable</td></tr>
<tr class="separator:a1d50e9abd420e77555624f3e52bc7479"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab437a6d3a1f420b44e01378ae37fcb24"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceutl.html#ab437a6d3a1f420b44e01378ae37fcb24">utl::is_swappable_with</a> = std::is_swappable_with</td></tr>
<tr class="separator:ab437a6d3a1f420b44e01378ae37fcb24"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4a3bb850ba59d499382bd11153104af7"><td class="memTemplParams" colspan="2">template&lt;class T , class U &gt; </td></tr>
<tr class="memitem:a4a3bb850ba59d499382bd11153104af7"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="group__concepts.html#gaf81026787698cd63592563ab8223062b">_utlConcept</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceutl.html#a4a3bb850ba59d499382bd11153104af7">utl::SwappableWith</a></td></tr>
<tr class="separator:a4a3bb850ba59d499382bd11153104af7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae2b149b19fb3d69a4fc555e4474bf9de"><td class="memTemplParams" colspan="2">template&lt;class T &gt; </td></tr>
<tr class="memitem:ae2b149b19fb3d69a4fc555e4474bf9de"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="group__concepts.html#gaf81026787698cd63592563ab8223062b">_utlConcept</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceutl.html#ae2b149b19fb3d69a4fc555e4474bf9de">utl::Swappable</a> = is_swappable_with&lt;T, T&gt;::type::value</td></tr>
<tr class="separator:ae2b149b19fb3d69a4fc555e4474bf9de"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>STL's Concepts. </p>
<p>Copyright (C) 2018 - 2019 Christos Choutouridis</p>
<p>This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.</p>
<p>This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.</p>
<p>You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <a href="http://www.gnu.org/licenses/">http://www.gnu.org/licenses/</a>. </p>
<p class="definition">Definition in file <a class="el" href="stl_8h_source.html">stl.h</a>.</p>
</div></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_82754f54d9380477ef02477185c1f103.html">utl</a></li><li class="navelem"><a class="el" href="dir_1de759a74730efb26e16b92a33818a86.html">concepts</a></li><li class="navelem"><a class="el" href="stl_8h.html">stl.h</a></li>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
</ul>
</div>
</body>
</html>