Some checks failed
Docker. / Ubuntu (push) Has been cancelled
User-agent updater. / User-agent (push) Failing after 15s
Lock Threads / lock (push) Failing after 10s
Waiting for answer. / waiting-for-answer (push) Failing after 22s
Close stale issues and PRs / stale (push) Successful in 13s
Needs user action. / needs-user-action (push) Failing after 8s
Can't reproduce. / cant-reproduce (push) Failing after 8s
773 lines
62 KiB
HTML
773 lines
62 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=11"/>
|
|
<meta name="generator" content="Doxygen 1.9.4"/>
|
|
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
|
<title>Range-v3: Transformation</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>
|
|
<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>
|
|
<script type="text/javascript">
|
|
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
|
$(document).ready(function() { init_search(); });
|
|
/* @license-end */
|
|
</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 id="projectrow">
|
|
<td id="projectalign">
|
|
<div id="projectname">Range-v3
|
|
</div>
|
|
<div id="projectbrief">Range algorithms, views, and actions for the Standard Library</div>
|
|
</td>
|
|
<td> <div id="MSearchBox" class="MSearchBoxInactive">
|
|
<span class="left">
|
|
<img id="MSearchSelect" src="search/mag_sel.svg"
|
|
onmouseover="return searchBox.OnSearchSelectShow()"
|
|
onmouseout="return searchBox.OnSearchSelectHide()"
|
|
alt=""/>
|
|
<input type="text" id="MSearchField" value="Search" accesskey="S"
|
|
onfocus="searchBox.OnSearchFieldFocus(true)"
|
|
onblur="searchBox.OnSearchFieldFocus(false)"
|
|
onkeyup="searchBox.OnSearchFieldChange(event)"/>
|
|
</span><span class="right">
|
|
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.svg" alt=""/></a>
|
|
</span>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
<!-- end header part -->
|
|
<!-- Generated by Doxygen 1.9.4 -->
|
|
<script type="text/javascript">
|
|
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
|
var searchBox = new SearchBox("searchBox", "search",'Search','.html');
|
|
/* @license-end */
|
|
</script>
|
|
</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:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
|
$(document).ready(function(){initNavTree('group__transformation.html',''); initResizable(); });
|
|
/* @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="#groups">Modules</a> |
|
|
<a href="#typedef-members">Typedefs</a> </div>
|
|
<div class="headertitle"><div class="title">Transformation<div class="ingroups"><a class="el" href="group__meta.html">Meta</a> » <a class="el" href="group__algorithm.html">Algorithms</a></div></div></div>
|
|
</div><!--header-->
|
|
<div class="contents">
|
|
|
|
<p>Transformation algorithms.
|
|
<a href="#details">More...</a></p>
|
|
<table class="memberdecls">
|
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="groups" name="groups"></a>
|
|
Modules</h2></td></tr>
|
|
<tr class="memitem:group__lazy__transformation"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__lazy__transformation.html">lazy</a></td></tr>
|
|
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
|
</table><table class="memberdecls">
|
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="typedef-members" name="typedef-members"></a>
|
|
Typedefs</h2></td></tr>
|
|
<tr class="memitem:gadec7869718bf0ddf69579775156b351d"><td class="memTemplParams" colspan="2">template<list_like L, typename State , invocable Fn> </td></tr>
|
|
<tr class="memitem:gadec7869718bf0ddf69579775156b351d"><td class="memTemplItemLeft" align="right" valign="top">using </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__transformation.html#gadec7869718bf0ddf69579775156b351d">meta::accumulate</a> = <a class="el" href="group__transformation.html#gace05917716be9857eb49b847b17548ff">fold</a>< L, State, Fn ></td></tr>
|
|
<tr class="memdesc:gadec7869718bf0ddf69579775156b351d"><td class="mdescLeft"> </td><td class="mdescRight">An alias for <code><a class="el" href="group__transformation.html#gace05917716be9857eb49b847b17548ff" title="Return a new meta::list constructed by doing a left fold of the list L using binary invocable Fn and ...">meta::fold</a></code>. <a href="group__transformation.html#gadec7869718bf0ddf69579775156b351d">More...</a><br /></td></tr>
|
|
<tr class="separator:gadec7869718bf0ddf69579775156b351d"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ga5e408243147a04c1ca2742211e3c0982"><td class="memTemplParams" colspan="2">template<list_like ListOfLists> </td></tr>
|
|
<tr class="memitem:ga5e408243147a04c1ca2742211e3c0982"><td class="memTemplItemLeft" align="right" valign="top">using </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__transformation.html#ga5e408243147a04c1ca2742211e3c0982">meta::cartesian_product</a> = <a class="el" href="group__transformation.html#ga731ad47dfb1f72563fdad66fa5ae2a1a">reverse_fold</a>< ListOfLists, <a class="el" href="structmeta_1_1list.html">list</a>< <a class="el" href="structmeta_1_1list.html">list</a><> >, <a class="el" href="group__composition.html#ga945a0c21082eec9a2c7b9b8bda15e580">quote_trait</a>< detail::cartesian_product_fn > ></td></tr>
|
|
<tr class="memdesc:ga5e408243147a04c1ca2742211e3c0982"><td class="mdescLeft"> </td><td class="mdescRight">Given a list of lists <code>ListOfLists</code>, return a new list of lists that is the Cartesian Product. Like the <code>sequence</code> function from the Haskell Prelude. <a href="group__transformation.html#ga5e408243147a04c1ca2742211e3c0982">More...</a><br /></td></tr>
|
|
<tr class="separator:ga5e408243147a04c1ca2742211e3c0982"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ga8d0d695134bd6b94698ae4f1c0d2f553"><td class="memTemplParams" colspan="2">template<list_like ... Ls> </td></tr>
|
|
<tr class="memitem:ga8d0d695134bd6b94698ae4f1c0d2f553"><td class="memTemplItemLeft" align="right" valign="top">using </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__transformation.html#ga8d0d695134bd6b94698ae4f1c0d2f553">meta::concat_</a> = <a class="el" href="group__invocation.html#ga08e2193149605769f6052795ff0a87b1">_t</a>< detail::concat_< Ls... > ></td></tr>
|
|
<tr class="memdesc:ga8d0d695134bd6b94698ae4f1c0d2f553"><td class="mdescLeft"> </td><td class="mdescRight">Concatenates several lists into a single list. <a href="group__transformation.html#ga8d0d695134bd6b94698ae4f1c0d2f553">More...</a><br /></td></tr>
|
|
<tr class="separator:ga8d0d695134bd6b94698ae4f1c0d2f553"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ga4883188d34dd23dc949f737c17a1a317"><td class="memTemplParams" colspan="2">template<list_like L, integral N> </td></tr>
|
|
<tr class="memitem:ga4883188d34dd23dc949f737c17a1a317"><td class="memTemplItemLeft" align="right" valign="top">using </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__transformation.html#ga4883188d34dd23dc949f737c17a1a317">meta::drop</a> = <a class="el" href="group__transformation.html#gac8f2eb92a10b78f432a4430bc4d05ba9">drop_c</a>< L, N::type::value ></td></tr>
|
|
<tr class="memdesc:ga4883188d34dd23dc949f737c17a1a317"><td class="mdescLeft"> </td><td class="mdescRight">Return a new <code><a class="el" href="structmeta_1_1list.html" title="A list of types.">meta::list</a></code> by removing the first <code>N</code> elements from <code>L</code>. <a href="group__transformation.html#ga4883188d34dd23dc949f737c17a1a317">More...</a><br /></td></tr>
|
|
<tr class="separator:ga4883188d34dd23dc949f737c17a1a317"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:gac8f2eb92a10b78f432a4430bc4d05ba9"><td class="memTemplParams" colspan="2">template<list_like L, std::size_t N> </td></tr>
|
|
<tr class="memitem:gac8f2eb92a10b78f432a4430bc4d05ba9"><td class="memTemplItemLeft" align="right" valign="top">using </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__transformation.html#gac8f2eb92a10b78f432a4430bc4d05ba9">meta::drop_c</a> = <a class="el" href="group__invocation.html#ga08e2193149605769f6052795ff0a87b1">_t</a>< detail::drop_< L, N > ></td></tr>
|
|
<tr class="memdesc:gac8f2eb92a10b78f432a4430bc4d05ba9"><td class="mdescLeft"> </td><td class="mdescRight">Return a new <code><a class="el" href="structmeta_1_1list.html" title="A list of types.">meta::list</a></code> by removing the first <code>N</code> elements from <code>L</code>. <a href="group__transformation.html#gac8f2eb92a10b78f432a4430bc4d05ba9">More...</a><br /></td></tr>
|
|
<tr class="separator:gac8f2eb92a10b78f432a4430bc4d05ba9"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:gac34d21074558f4ddc07a6206d5065619"><td class="memTemplParams" colspan="2">template<typename L , typename Pred > </td></tr>
|
|
<tr class="memitem:gac34d21074558f4ddc07a6206d5065619"><td class="memTemplItemLeft" align="right" valign="top">using </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__transformation.html#gac34d21074558f4ddc07a6206d5065619">meta::filter</a> = <a class="el" href="group__transformation.html#gae8b919ad4c2cfe9b0fc7549cedae5e37">join</a>< <a class="el" href="group__transformation.html#ga32b72eeac93fde990739bfe3d1729207">transform</a>< L, detail::filter_< Pred > > ></td></tr>
|
|
<tr class="memdesc:gac34d21074558f4ddc07a6206d5065619"><td class="mdescLeft"> </td><td class="mdescRight">Returns a new <a class="el" href="structmeta_1_1list.html" title="A list of types.">meta::list</a> where only those elements of <code>L</code> that satisfy the Callable <code>Pred</code> such that <code>invoke<Pred,A>::value</code> is <code>true</code> are present. That is, those elements that don't satisfy the <code>Pred</code> are "removed". <a href="group__transformation.html#gac34d21074558f4ddc07a6206d5065619">More...</a><br /></td></tr>
|
|
<tr class="separator:gac34d21074558f4ddc07a6206d5065619"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:gace05917716be9857eb49b847b17548ff"><td class="memTemplParams" colspan="2">template<list_like L, typename State , invocable Fn> </td></tr>
|
|
<tr class="memitem:gace05917716be9857eb49b847b17548ff"><td class="memTemplItemLeft" align="right" valign="top">using </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__transformation.html#gace05917716be9857eb49b847b17548ff">meta::fold</a> = <a class="el" href="group__invocation.html#ga08e2193149605769f6052795ff0a87b1">_t</a>< detail::fold_< L, State, Fn > ></td></tr>
|
|
<tr class="memdesc:gace05917716be9857eb49b847b17548ff"><td class="mdescLeft"> </td><td class="mdescRight">Return a new <code><a class="el" href="structmeta_1_1list.html" title="A list of types.">meta::list</a></code> constructed by doing a left fold of the list <code>L</code> using binary invocable <code>Fn</code> and initial state <code>State</code>. That is, the <code>State(N)</code> for the list element <code>A(N)</code> is computed by <code>Fn(State(N-1), A(N)) -> State(N)</code>. <a href="group__transformation.html#gace05917716be9857eb49b847b17548ff">More...</a><br /></td></tr>
|
|
<tr class="separator:gace05917716be9857eb49b847b17548ff"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:gae8b919ad4c2cfe9b0fc7549cedae5e37"><td class="memTemplParams" colspan="2">template<list_like ListOfLists> </td></tr>
|
|
<tr class="memitem:gae8b919ad4c2cfe9b0fc7549cedae5e37"><td class="memTemplItemLeft" align="right" valign="top">using </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__transformation.html#gae8b919ad4c2cfe9b0fc7549cedae5e37">meta::join</a> = <a class="el" href="group__invocation.html#ga2f71f17b6a6b48ea99134ddabd0e19a9">apply</a>< <a class="el" href="structmeta_1_1quote.html">quote</a>< concat >, ListOfLists ></td></tr>
|
|
<tr class="memdesc:gae8b919ad4c2cfe9b0fc7549cedae5e37"><td class="mdescLeft"> </td><td class="mdescRight">Joins a list of lists into a single list. <a href="group__transformation.html#gae8b919ad4c2cfe9b0fc7549cedae5e37">More...</a><br /></td></tr>
|
|
<tr class="separator:gae8b919ad4c2cfe9b0fc7549cedae5e37"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ga15c1c01dfb904208e7d71d660caff4ca"><td class="memTemplParams" colspan="2">template<list_like L, invocable Fn> </td></tr>
|
|
<tr class="memitem:ga15c1c01dfb904208e7d71d660caff4ca"><td class="memTemplItemLeft" align="right" valign="top">using </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__transformation.html#ga15c1c01dfb904208e7d71d660caff4ca">meta::partition</a> = <a class="el" href="group__transformation.html#gace05917716be9857eb49b847b17548ff">fold</a>< L, <a class="el" href="group__list.html#gafd1e131e4e3ae4b0ae9bd3d2ec3a5f74">pair</a>< <a class="el" href="structmeta_1_1list.html">list</a><>, <a class="el" href="structmeta_1_1list.html">list</a><> >, detail::partition_< Fn > ></td></tr>
|
|
<tr class="memdesc:ga15c1c01dfb904208e7d71d660caff4ca"><td class="mdescLeft"> </td><td class="mdescRight">Returns a pair of lists, where the elements of <code>L</code> that satisfy the invocable <code>Fn</code> such that <code>invoke<Fn,A>::value</code> is <code>true</code> are present in the first list and the rest are in the second. <a href="group__transformation.html#ga15c1c01dfb904208e7d71d660caff4ca">More...</a><br /></td></tr>
|
|
<tr class="separator:ga15c1c01dfb904208e7d71d660caff4ca"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:gae161f030face244119ce54815630d878"><td class="memTemplParams" colspan="2">template<list_like L> </td></tr>
|
|
<tr class="memitem:gae161f030face244119ce54815630d878"><td class="memTemplItemLeft" align="right" valign="top">using </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__transformation.html#gae161f030face244119ce54815630d878">meta::pop_front</a> = <a class="el" href="group__invocation.html#ga08e2193149605769f6052795ff0a87b1">_t</a>< detail::pop_front_< L > ></td></tr>
|
|
<tr class="memdesc:gae161f030face244119ce54815630d878"><td class="mdescLeft"> </td><td class="mdescRight">Return a new <code><a class="el" href="structmeta_1_1list.html" title="A list of types.">meta::list</a></code> by removing the first element from the front of <code>L</code>. <a href="group__transformation.html#gae161f030face244119ce54815630d878">More...</a><br /></td></tr>
|
|
<tr class="separator:gae161f030face244119ce54815630d878"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:gafee8f315356d19c47069adb56890a920"><td class="memTemplParams" colspan="2">template<list_like L, typename... Ts> </td></tr>
|
|
<tr class="memitem:gafee8f315356d19c47069adb56890a920"><td class="memTemplItemLeft" align="right" valign="top">using </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__transformation.html#gafee8f315356d19c47069adb56890a920">meta::push_back</a> = <a class="el" href="group__invocation.html#ga2f71f17b6a6b48ea99134ddabd0e19a9">apply</a>< <a class="el" href="structmeta_1_1bind__back.html">bind_back</a>< <a class="el" href="structmeta_1_1quote.html">quote</a>< <a class="el" href="structmeta_1_1list.html">list</a> >, Ts... >, L ></td></tr>
|
|
<tr class="memdesc:gafee8f315356d19c47069adb56890a920"><td class="mdescLeft"> </td><td class="mdescRight">Return a new <code><a class="el" href="structmeta_1_1list.html" title="A list of types.">meta::list</a></code> by adding the element <code>T</code> to the back of <code>L</code>. <a href="group__transformation.html#gafee8f315356d19c47069adb56890a920">More...</a><br /></td></tr>
|
|
<tr class="separator:gafee8f315356d19c47069adb56890a920"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ga26c72d739945496ab36891f495c3ca98"><td class="memTemplParams" colspan="2">template<list_like L, typename... Ts> </td></tr>
|
|
<tr class="memitem:ga26c72d739945496ab36891f495c3ca98"><td class="memTemplItemLeft" align="right" valign="top">using </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__transformation.html#ga26c72d739945496ab36891f495c3ca98">meta::push_front</a> = <a class="el" href="group__invocation.html#ga2f71f17b6a6b48ea99134ddabd0e19a9">apply</a>< <a class="el" href="structmeta_1_1bind__front.html">bind_front</a>< <a class="el" href="structmeta_1_1quote.html">quote</a>< <a class="el" href="structmeta_1_1list.html">list</a> >, Ts... >, L ></td></tr>
|
|
<tr class="memdesc:ga26c72d739945496ab36891f495c3ca98"><td class="mdescLeft"> </td><td class="mdescRight">Return a new <code><a class="el" href="structmeta_1_1list.html" title="A list of types.">meta::list</a></code> by adding the element <code>T</code> to the front of <code>L</code>. <a href="group__transformation.html#ga26c72d739945496ab36891f495c3ca98">More...</a><br /></td></tr>
|
|
<tr class="separator:ga26c72d739945496ab36891f495c3ca98"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ga44e0ae4574066da2f71dd72ec245da23"><td class="memTemplParams" colspan="2">template<list_like L, typename T , typename U > </td></tr>
|
|
<tr class="memitem:ga44e0ae4574066da2f71dd72ec245da23"><td class="memTemplItemLeft" align="right" valign="top">using </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__transformation.html#ga44e0ae4574066da2f71dd72ec245da23">meta::replace</a> = <a class="el" href="group__invocation.html#ga08e2193149605769f6052795ff0a87b1">_t</a>< detail::replace_< L, T, U > ></td></tr>
|
|
<tr class="memdesc:ga44e0ae4574066da2f71dd72ec245da23"><td class="mdescLeft"> </td><td class="mdescRight">Return a new <code><a class="el" href="structmeta_1_1list.html" title="A list of types.">meta::list</a></code> where all instances of type <code>T</code> have been replaced with <code>U</code>. <a href="group__transformation.html#ga44e0ae4574066da2f71dd72ec245da23">More...</a><br /></td></tr>
|
|
<tr class="separator:ga44e0ae4574066da2f71dd72ec245da23"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:gaa54c43f08dc95c371f1281ee1d106d80"><td class="memTemplParams" colspan="2">template<list_like L, typename C , typename U > </td></tr>
|
|
<tr class="memitem:gaa54c43f08dc95c371f1281ee1d106d80"><td class="memTemplItemLeft" align="right" valign="top">using </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__transformation.html#gaa54c43f08dc95c371f1281ee1d106d80">meta::replace_if</a> = <a class="el" href="group__invocation.html#ga08e2193149605769f6052795ff0a87b1">_t</a>< detail::replace_if_< L, C, U > ></td></tr>
|
|
<tr class="memdesc:gaa54c43f08dc95c371f1281ee1d106d80"><td class="mdescLeft"> </td><td class="mdescRight">Return a new <code><a class="el" href="structmeta_1_1list.html" title="A list of types.">meta::list</a></code> where all elements <code>A</code> of the list <code>L</code> for which <code>invoke<C,A>::value</code> is <code>true</code> have been replaced with <code>U</code>. <a href="group__transformation.html#gaa54c43f08dc95c371f1281ee1d106d80">More...</a><br /></td></tr>
|
|
<tr class="separator:gaa54c43f08dc95c371f1281ee1d106d80"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:gafb5c3e09e2b1dee384fee44fe54f7df9"><td class="memTemplParams" colspan="2">template<list_like L> </td></tr>
|
|
<tr class="memitem:gafb5c3e09e2b1dee384fee44fe54f7df9"><td class="memTemplItemLeft" align="right" valign="top">using </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__transformation.html#gafb5c3e09e2b1dee384fee44fe54f7df9">meta::reverse</a> = <a class="el" href="group__invocation.html#ga08e2193149605769f6052795ff0a87b1">_t</a>< detail::reverse_< L > ></td></tr>
|
|
<tr class="memdesc:gafb5c3e09e2b1dee384fee44fe54f7df9"><td class="mdescLeft"> </td><td class="mdescRight">Return a new <code><a class="el" href="structmeta_1_1list.html" title="A list of types.">meta::list</a></code> by reversing the elements in the list <code>L</code>. <a href="group__transformation.html#gafb5c3e09e2b1dee384fee44fe54f7df9">More...</a><br /></td></tr>
|
|
<tr class="separator:gafb5c3e09e2b1dee384fee44fe54f7df9"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ga731ad47dfb1f72563fdad66fa5ae2a1a"><td class="memTemplParams" colspan="2">template<list_like L, typename State , invocable Fn> </td></tr>
|
|
<tr class="memitem:ga731ad47dfb1f72563fdad66fa5ae2a1a"><td class="memTemplItemLeft" align="right" valign="top">using </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__transformation.html#ga731ad47dfb1f72563fdad66fa5ae2a1a">meta::reverse_fold</a> = <a class="el" href="group__invocation.html#ga08e2193149605769f6052795ff0a87b1">_t</a>< detail::reverse_fold_< L, State, Fn > ></td></tr>
|
|
<tr class="memdesc:ga731ad47dfb1f72563fdad66fa5ae2a1a"><td class="mdescLeft"> </td><td class="mdescRight">Return a new <code><a class="el" href="structmeta_1_1list.html" title="A list of types.">meta::list</a></code> constructed by doing a right fold of the list <code>L</code> using binary invocable <code>Fn</code> and initial state <code>State</code>. That is, the <code>State(N)</code> for the list element <code>A(N)</code> is computed by <code>Fn(A(N), State(N+1)) -> State(N)</code>. <a href="group__transformation.html#ga731ad47dfb1f72563fdad66fa5ae2a1a">More...</a><br /></td></tr>
|
|
<tr class="separator:ga731ad47dfb1f72563fdad66fa5ae2a1a"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ga24714e0a1e7b99a57052a63d815955a7"><td class="memTemplParams" colspan="2">template<list_like L, invocable Fn> </td></tr>
|
|
<tr class="memitem:ga24714e0a1e7b99a57052a63d815955a7"><td class="memTemplItemLeft" align="right" valign="top">using </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__transformation.html#ga24714e0a1e7b99a57052a63d815955a7">meta::sort</a> = <a class="el" href="group__invocation.html#ga08e2193149605769f6052795ff0a87b1">_t</a>< detail::sort_< L, Fn > ></td></tr>
|
|
<tr class="memdesc:ga24714e0a1e7b99a57052a63d815955a7"><td class="mdescLeft"> </td><td class="mdescRight">Return a new <code><a class="el" href="structmeta_1_1list.html" title="A list of types.">meta::list</a></code> that is sorted according to invocable predicate <code>Fn</code>. <a href="group__transformation.html#ga24714e0a1e7b99a57052a63d815955a7">More...</a><br /></td></tr>
|
|
<tr class="separator:ga24714e0a1e7b99a57052a63d815955a7"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ga32b72eeac93fde990739bfe3d1729207"><td class="memTemplParams" colspan="2">template<typename... Args> </td></tr>
|
|
<tr class="memitem:ga32b72eeac93fde990739bfe3d1729207"><td class="memTemplItemLeft" align="right" valign="top">using </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__transformation.html#ga32b72eeac93fde990739bfe3d1729207">meta::transform</a> = <a class="el" href="group__invocation.html#ga08e2193149605769f6052795ff0a87b1">_t</a>< detail::transform_< Args... > ></td></tr>
|
|
<tr class="memdesc:ga32b72eeac93fde990739bfe3d1729207"><td class="mdescLeft"> </td><td class="mdescRight">Return a new <code><a class="el" href="structmeta_1_1list.html" title="A list of types.">meta::list</a></code> constructed by transforming all the elements in <code>L</code> with the unary invocable <code>Fn</code>. <code>transform</code> can also be called with two lists of the same length and a binary invocable, in which case it returns a new list constructed with the results of calling <code>Fn</code> with each element in the lists, pairwise. <a href="group__transformation.html#ga32b72eeac93fde990739bfe3d1729207">More...</a><br /></td></tr>
|
|
<tr class="separator:ga32b72eeac93fde990739bfe3d1729207"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ga386fa55fefb4aa3f4df3227379916839"><td class="memTemplParams" colspan="2">template<list_like ListOfLists> </td></tr>
|
|
<tr class="memitem:ga386fa55fefb4aa3f4df3227379916839"><td class="memTemplItemLeft" align="right" valign="top">using </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__transformation.html#ga386fa55fefb4aa3f4df3227379916839">meta::transpose</a> = <a class="el" href="group__transformation.html#gace05917716be9857eb49b847b17548ff">fold</a>< ListOfLists, <a class="el" href="group__list.html#gab4b5da3947303335fc4139f163ed4748">repeat_n</a>< <a class="el" href="group__list.html#ga82704ab3563d63460b7ac1be6c9876c9">size</a>< <a class="el" href="group__list.html#gadd1d8e54275858523926ab20aa88ed0a">front</a>< ListOfLists > >, <a class="el" href="structmeta_1_1list.html">list</a><> >, <a class="el" href="structmeta_1_1bind__back.html">bind_back</a>< <a class="el" href="structmeta_1_1quote.html">quote</a>< <a class="el" href="group__transformation.html#ga32b72eeac93fde990739bfe3d1729207">transform</a> >, <a class="el" href="structmeta_1_1quote.html">quote</a>< <a class="el" href="group__transformation.html#gafee8f315356d19c47069adb56890a920">push_back</a> > > ></td></tr>
|
|
<tr class="memdesc:ga386fa55fefb4aa3f4df3227379916839"><td class="mdescLeft"> </td><td class="mdescRight">Given a list of lists of types <code>ListOfLists</code>, transpose the elements from the lists. <a href="group__transformation.html#ga386fa55fefb4aa3f4df3227379916839">More...</a><br /></td></tr>
|
|
<tr class="separator:ga386fa55fefb4aa3f4df3227379916839"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ga851cff9736691f16f0899eac04839d58"><td class="memTemplParams" colspan="2">template<list_like L> </td></tr>
|
|
<tr class="memitem:ga851cff9736691f16f0899eac04839d58"><td class="memTemplItemLeft" align="right" valign="top">using </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__transformation.html#ga851cff9736691f16f0899eac04839d58">meta::unique</a> = <a class="el" href="group__transformation.html#gace05917716be9857eb49b847b17548ff">fold</a>< L, <a class="el" href="structmeta_1_1list.html">list</a><>, <a class="el" href="group__composition.html#ga945a0c21082eec9a2c7b9b8bda15e580">quote_trait</a>< detail::insert_back_ > ></td></tr>
|
|
<tr class="memdesc:ga851cff9736691f16f0899eac04839d58"><td class="mdescLeft"> </td><td class="mdescRight">Return a new <code><a class="el" href="structmeta_1_1list.html" title="A list of types.">meta::list</a></code> where all duplicate elements have been removed. <a href="group__transformation.html#ga851cff9736691f16f0899eac04839d58">More...</a><br /></td></tr>
|
|
<tr class="separator:ga851cff9736691f16f0899eac04839d58"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ga559fdaee384c3d297b86ab217b26f601"><td class="memTemplParams" colspan="2">template<list_like ListOfLists> </td></tr>
|
|
<tr class="memitem:ga559fdaee384c3d297b86ab217b26f601"><td class="memTemplItemLeft" align="right" valign="top">using </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__transformation.html#ga559fdaee384c3d297b86ab217b26f601">meta::zip</a> = <a class="el" href="group__transformation.html#ga386fa55fefb4aa3f4df3227379916839">transpose</a>< ListOfLists ></td></tr>
|
|
<tr class="memdesc:ga559fdaee384c3d297b86ab217b26f601"><td class="mdescLeft"> </td><td class="mdescRight">Given a list of lists of types <code>ListOfLists</code>, construct a new list by grouping the elements from the lists pairwise into <code><a class="el" href="structmeta_1_1list.html" title="A list of types.">meta::list</a></code>s. <a href="group__transformation.html#ga559fdaee384c3d297b86ab217b26f601">More...</a><br /></td></tr>
|
|
<tr class="separator:ga559fdaee384c3d297b86ab217b26f601"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:gad8262b50af24df0244354b25ab025b15"><td class="memTemplParams" colspan="2">template<invocable Fn, list_like ListOfLists> </td></tr>
|
|
<tr class="memitem:gad8262b50af24df0244354b25ab025b15"><td class="memTemplItemLeft" align="right" valign="top">using </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__transformation.html#gad8262b50af24df0244354b25ab025b15">meta::zip_with</a> = <a class="el" href="group__transformation.html#ga32b72eeac93fde990739bfe3d1729207">transform</a>< <a class="el" href="group__transformation.html#ga386fa55fefb4aa3f4df3227379916839">transpose</a>< ListOfLists >, <a class="el" href="group__composition.html#ga5fa0228061e71036b311db6c3d93ab02">uncurry</a>< Fn > ></td></tr>
|
|
<tr class="memdesc:gad8262b50af24df0244354b25ab025b15"><td class="mdescLeft"> </td><td class="mdescRight">Given a list of lists of types <code>ListOfLists</code> and an invocable <code>Fn</code>, construct a new list by calling <code>Fn</code> with the elements from the lists pairwise. <a href="group__transformation.html#gad8262b50af24df0244354b25ab025b15">More...</a><br /></td></tr>
|
|
<tr class="separator:gad8262b50af24df0244354b25ab025b15"><td class="memSeparator" colspan="2"> </td></tr>
|
|
</table>
|
|
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
|
|
<p >Transformation algorithms. </p>
|
|
<h2 class="groupheader">Typedef Documentation</h2>
|
|
<a id="gadec7869718bf0ddf69579775156b351d" name="gadec7869718bf0ddf69579775156b351d"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#gadec7869718bf0ddf69579775156b351d">◆ </a></span>accumulate</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<div class="memtemplate">
|
|
template<list_like L, typename State , invocable Fn> </div>
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">using <a class="el" href="group__transformation.html#gadec7869718bf0ddf69579775156b351d">meta::accumulate</a> = typedef <a class="el" href="group__transformation.html#gace05917716be9857eb49b847b17548ff">fold</a><L, State, Fn></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p><code>#include <<a class="el" href="meta_8hpp.html">meta/meta.hpp</a>></code></p>
|
|
|
|
<p>An alias for <code><a class="el" href="group__transformation.html#gace05917716be9857eb49b847b17548ff" title="Return a new meta::list constructed by doing a left fold of the list L using binary invocable Fn and ...">meta::fold</a></code>. </p>
|
|
<dl class="section user"><dt>Complexity</dt><dd><code>O(N)</code>. </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="ga5e408243147a04c1ca2742211e3c0982" name="ga5e408243147a04c1ca2742211e3c0982"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#ga5e408243147a04c1ca2742211e3c0982">◆ </a></span>cartesian_product</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<div class="memtemplate">
|
|
template<list_like ListOfLists> </div>
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">using <a class="el" href="group__transformation.html#ga5e408243147a04c1ca2742211e3c0982">meta::cartesian_product</a> = typedef <a class="el" href="group__transformation.html#ga731ad47dfb1f72563fdad66fa5ae2a1a">reverse_fold</a><ListOfLists, <a class="el" href="structmeta_1_1list.html">list</a><<a class="el" href="structmeta_1_1list.html">list</a><> >, <a class="el" href="group__composition.html#ga945a0c21082eec9a2c7b9b8bda15e580">quote_trait</a><detail::cartesian_product_fn> ></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p><code>#include <<a class="el" href="meta_8hpp.html">meta/meta.hpp</a>></code></p>
|
|
|
|
<p>Given a list of lists <code>ListOfLists</code>, return a new list of lists that is the Cartesian Product. Like the <code>sequence</code> function from the Haskell Prelude. </p>
|
|
<dl class="section user"><dt>Complexity</dt><dd><code>O(N * M)</code>, where <code>N</code> is the size of the outer list, and <code>M</code> is the size of the inner lists. </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="ga8d0d695134bd6b94698ae4f1c0d2f553" name="ga8d0d695134bd6b94698ae4f1c0d2f553"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#ga8d0d695134bd6b94698ae4f1c0d2f553">◆ </a></span>concat_</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<div class="memtemplate">
|
|
template<list_like ... Ls> </div>
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">using <a class="el" href="group__transformation.html#ga8d0d695134bd6b94698ae4f1c0d2f553">meta::concat_</a> = typedef <a class="el" href="group__invocation.html#ga08e2193149605769f6052795ff0a87b1">_t</a><detail::concat_<Ls...> ></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p><code>#include <<a class="el" href="meta_8hpp.html">meta/meta.hpp</a>></code></p>
|
|
|
|
<p>Concatenates several lists into a single list. </p>
|
|
<dl class="section pre"><dt>Precondition</dt><dd>The parameters must all be instantiations of <code><a class="el" href="structmeta_1_1list.html" title="A list of types.">meta::list</a></code>. </dd></dl>
|
|
<dl class="section user"><dt>Complexity</dt><dd><code>O(L)</code> where <code>L</code> is the number of lists in the list of lists. </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="ga4883188d34dd23dc949f737c17a1a317" name="ga4883188d34dd23dc949f737c17a1a317"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#ga4883188d34dd23dc949f737c17a1a317">◆ </a></span>drop</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<div class="memtemplate">
|
|
template<list_like L, integral N> </div>
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">using <a class="el" href="group__transformation.html#ga4883188d34dd23dc949f737c17a1a317">meta::drop</a> = typedef <a class="el" href="group__transformation.html#gac8f2eb92a10b78f432a4430bc4d05ba9">drop_c</a><L, N::type::value></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">related</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p><code>#include <<a class="el" href="meta_8hpp.html">meta/meta.hpp</a>></code></p>
|
|
|
|
<p>Return a new <code><a class="el" href="structmeta_1_1list.html" title="A list of types.">meta::list</a></code> by removing the first <code>N</code> elements from <code>L</code>. </p>
|
|
<dl class="section user"><dt>Complexity</dt><dd><code>O(1)</code>. </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="gac8f2eb92a10b78f432a4430bc4d05ba9" name="gac8f2eb92a10b78f432a4430bc4d05ba9"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#gac8f2eb92a10b78f432a4430bc4d05ba9">◆ </a></span>drop_c</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<div class="memtemplate">
|
|
template<list_like L, std::size_t N> </div>
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">using <a class="el" href="group__transformation.html#gac8f2eb92a10b78f432a4430bc4d05ba9">meta::drop_c</a> = typedef <a class="el" href="group__invocation.html#ga08e2193149605769f6052795ff0a87b1">_t</a><detail::drop_<L, N> ></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p><code>#include <<a class="el" href="meta_8hpp.html">meta/meta.hpp</a>></code></p>
|
|
|
|
<p>Return a new <code><a class="el" href="structmeta_1_1list.html" title="A list of types.">meta::list</a></code> by removing the first <code>N</code> elements from <code>L</code>. </p>
|
|
<dl class="section user"><dt>Complexity</dt><dd><code>O(1)</code>. </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="gac34d21074558f4ddc07a6206d5065619" name="gac34d21074558f4ddc07a6206d5065619"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#gac34d21074558f4ddc07a6206d5065619">◆ </a></span>filter</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<div class="memtemplate">
|
|
template<typename L , typename Pred > </div>
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">using <a class="el" href="group__transformation.html#gac34d21074558f4ddc07a6206d5065619">meta::filter</a> = typedef <a class="el" href="group__transformation.html#gae8b919ad4c2cfe9b0fc7549cedae5e37">join</a><<a class="el" href="group__transformation.html#ga32b72eeac93fde990739bfe3d1729207">transform</a><L, detail::filter_<Pred> >></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">related</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p><code>#include <<a class="el" href="meta_8hpp.html">meta/meta.hpp</a>></code></p>
|
|
|
|
<p>Returns a new <a class="el" href="structmeta_1_1list.html" title="A list of types.">meta::list</a> where only those elements of <code>L</code> that satisfy the Callable <code>Pred</code> such that <code>invoke<Pred,A>::value</code> is <code>true</code> are present. That is, those elements that don't satisfy the <code>Pred</code> are "removed". </p>
|
|
<dl class="section user"><dt>Complexity</dt><dd><code>O(N)</code>. </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="gace05917716be9857eb49b847b17548ff" name="gace05917716be9857eb49b847b17548ff"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#gace05917716be9857eb49b847b17548ff">◆ </a></span>fold</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<div class="memtemplate">
|
|
template<list_like L, typename State , invocable Fn> </div>
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">using <a class="el" href="group__transformation.html#gace05917716be9857eb49b847b17548ff">meta::fold</a> = typedef <a class="el" href="group__invocation.html#ga08e2193149605769f6052795ff0a87b1">_t</a><detail::fold_<L, State, Fn> ></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p><code>#include <<a class="el" href="meta_8hpp.html">meta/meta.hpp</a>></code></p>
|
|
|
|
<p>Return a new <code><a class="el" href="structmeta_1_1list.html" title="A list of types.">meta::list</a></code> constructed by doing a left fold of the list <code>L</code> using binary invocable <code>Fn</code> and initial state <code>State</code>. That is, the <code>State(N)</code> for the list element <code>A(N)</code> is computed by <code>Fn(State(N-1), A(N)) -> State(N)</code>. </p>
|
|
<dl class="section user"><dt>Complexity</dt><dd><code>O(N)</code>. </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="gae8b919ad4c2cfe9b0fc7549cedae5e37" name="gae8b919ad4c2cfe9b0fc7549cedae5e37"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#gae8b919ad4c2cfe9b0fc7549cedae5e37">◆ </a></span>join</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<div class="memtemplate">
|
|
template<list_like ListOfLists> </div>
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">using <a class="el" href="group__transformation.html#gae8b919ad4c2cfe9b0fc7549cedae5e37">meta::join</a> = typedef <a class="el" href="group__invocation.html#ga2f71f17b6a6b48ea99134ddabd0e19a9">apply</a><<a class="el" href="structmeta_1_1quote.html">quote</a><concat>, ListOfLists></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">related</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p><code>#include <<a class="el" href="meta_8hpp.html">meta/meta.hpp</a>></code></p>
|
|
|
|
<p>Joins a list of lists into a single list. </p>
|
|
<dl class="section pre"><dt>Precondition</dt><dd>The parameter must be an instantiation of <code><a class="el" href="structmeta_1_1list.html" title="A list of types.">meta::list</a><T</code>...> where each <code>T</code> is itself an instantiation of <code><a class="el" href="structmeta_1_1list.html" title="A list of types.">meta::list</a></code>. </dd></dl>
|
|
<dl class="section user"><dt>Complexity</dt><dd><code>O(L)</code> where <code>L</code> is the number of lists in the list of lists. </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="ga15c1c01dfb904208e7d71d660caff4ca" name="ga15c1c01dfb904208e7d71d660caff4ca"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#ga15c1c01dfb904208e7d71d660caff4ca">◆ </a></span>partition</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<div class="memtemplate">
|
|
template<list_like L, invocable Fn> </div>
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">using <a class="el" href="group__transformation.html#ga15c1c01dfb904208e7d71d660caff4ca">meta::partition</a> = typedef <a class="el" href="group__transformation.html#gace05917716be9857eb49b847b17548ff">fold</a><L, <a class="el" href="group__list.html#gafd1e131e4e3ae4b0ae9bd3d2ec3a5f74">pair</a><<a class="el" href="structmeta_1_1list.html">list</a><>, <a class="el" href="structmeta_1_1list.html">list</a><> >, detail::partition_<Fn> ></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p><code>#include <<a class="el" href="meta_8hpp.html">meta/meta.hpp</a>></code></p>
|
|
|
|
<p>Returns a pair of lists, where the elements of <code>L</code> that satisfy the invocable <code>Fn</code> such that <code>invoke<Fn,A>::value</code> is <code>true</code> are present in the first list and the rest are in the second. </p>
|
|
<dl class="section user"><dt>Complexity</dt><dd><code>O(N)</code>. </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="gae161f030face244119ce54815630d878" name="gae161f030face244119ce54815630d878"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#gae161f030face244119ce54815630d878">◆ </a></span>pop_front</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<div class="memtemplate">
|
|
template<list_like L> </div>
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">using <a class="el" href="group__transformation.html#gae161f030face244119ce54815630d878">meta::pop_front</a> = typedef <a class="el" href="group__invocation.html#ga08e2193149605769f6052795ff0a87b1">_t</a><detail::pop_front_<L> ></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p><code>#include <<a class="el" href="meta_8hpp.html">meta/meta.hpp</a>></code></p>
|
|
|
|
<p>Return a new <code><a class="el" href="structmeta_1_1list.html" title="A list of types.">meta::list</a></code> by removing the first element from the front of <code>L</code>. </p>
|
|
<dl class="section user"><dt>Complexity</dt><dd><code>O(1)</code>. </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="gafee8f315356d19c47069adb56890a920" name="gafee8f315356d19c47069adb56890a920"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#gafee8f315356d19c47069adb56890a920">◆ </a></span>push_back</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<div class="memtemplate">
|
|
template<list_like L, typename... Ts> </div>
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">using <a class="el" href="group__transformation.html#gafee8f315356d19c47069adb56890a920">meta::push_back</a> = typedef <a class="el" href="group__invocation.html#ga2f71f17b6a6b48ea99134ddabd0e19a9">apply</a><<a class="el" href="structmeta_1_1bind__back.html">bind_back</a><<a class="el" href="structmeta_1_1quote.html">quote</a><<a class="el" href="structmeta_1_1list.html">list</a>>, Ts...>, L></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p><code>#include <<a class="el" href="meta_8hpp.html">meta/meta.hpp</a>></code></p>
|
|
|
|
<p>Return a new <code><a class="el" href="structmeta_1_1list.html" title="A list of types.">meta::list</a></code> by adding the element <code>T</code> to the back of <code>L</code>. </p>
|
|
<dl class="section user"><dt>Complexity</dt><dd><code>O(1)</code>. </dd></dl>
|
|
<dl class="section note"><dt>Note</dt><dd><code>pop_back</code> not provided because it cannot be made to meet the complexity guarantees one would expect. </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="ga26c72d739945496ab36891f495c3ca98" name="ga26c72d739945496ab36891f495c3ca98"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#ga26c72d739945496ab36891f495c3ca98">◆ </a></span>push_front</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<div class="memtemplate">
|
|
template<list_like L, typename... Ts> </div>
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">using <a class="el" href="group__transformation.html#ga26c72d739945496ab36891f495c3ca98">meta::push_front</a> = typedef <a class="el" href="group__invocation.html#ga2f71f17b6a6b48ea99134ddabd0e19a9">apply</a><<a class="el" href="structmeta_1_1bind__front.html">bind_front</a><<a class="el" href="structmeta_1_1quote.html">quote</a><<a class="el" href="structmeta_1_1list.html">list</a>>, Ts...>, L></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p><code>#include <<a class="el" href="meta_8hpp.html">meta/meta.hpp</a>></code></p>
|
|
|
|
<p>Return a new <code><a class="el" href="structmeta_1_1list.html" title="A list of types.">meta::list</a></code> by adding the element <code>T</code> to the front of <code>L</code>. </p>
|
|
<dl class="section user"><dt>Complexity</dt><dd><code>O(1)</code>. </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="ga44e0ae4574066da2f71dd72ec245da23" name="ga44e0ae4574066da2f71dd72ec245da23"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#ga44e0ae4574066da2f71dd72ec245da23">◆ </a></span>replace</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<div class="memtemplate">
|
|
template<list_like L, typename T , typename U > </div>
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">using <a class="el" href="group__transformation.html#ga44e0ae4574066da2f71dd72ec245da23">meta::replace</a> = typedef <a class="el" href="group__invocation.html#ga08e2193149605769f6052795ff0a87b1">_t</a><detail::replace_<L, T, U> ></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">related</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p><code>#include <<a class="el" href="meta_8hpp.html">meta/meta.hpp</a>></code></p>
|
|
|
|
<p>Return a new <code><a class="el" href="structmeta_1_1list.html" title="A list of types.">meta::list</a></code> where all instances of type <code>T</code> have been replaced with <code>U</code>. </p>
|
|
<dl class="section user"><dt>Complexity</dt><dd><code>O(N)</code>. </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="gaa54c43f08dc95c371f1281ee1d106d80" name="gaa54c43f08dc95c371f1281ee1d106d80"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#gaa54c43f08dc95c371f1281ee1d106d80">◆ </a></span>replace_if</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<div class="memtemplate">
|
|
template<list_like L, typename C , typename U > </div>
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">using <a class="el" href="group__transformation.html#gaa54c43f08dc95c371f1281ee1d106d80">meta::replace_if</a> = typedef <a class="el" href="group__invocation.html#ga08e2193149605769f6052795ff0a87b1">_t</a><detail::replace_if_<L, C, U> ></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">related</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p><code>#include <<a class="el" href="meta_8hpp.html">meta/meta.hpp</a>></code></p>
|
|
|
|
<p>Return a new <code><a class="el" href="structmeta_1_1list.html" title="A list of types.">meta::list</a></code> where all elements <code>A</code> of the list <code>L</code> for which <code>invoke<C,A>::value</code> is <code>true</code> have been replaced with <code>U</code>. </p>
|
|
<dl class="section user"><dt>Complexity</dt><dd><code>O(N)</code>. </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="gafb5c3e09e2b1dee384fee44fe54f7df9" name="gafb5c3e09e2b1dee384fee44fe54f7df9"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#gafb5c3e09e2b1dee384fee44fe54f7df9">◆ </a></span>reverse</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<div class="memtemplate">
|
|
template<list_like L> </div>
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">using <a class="el" href="group__transformation.html#gafb5c3e09e2b1dee384fee44fe54f7df9">meta::reverse</a> = typedef <a class="el" href="group__invocation.html#ga08e2193149605769f6052795ff0a87b1">_t</a><detail::reverse_<L> ></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">related</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p><code>#include <<a class="el" href="meta_8hpp.html">meta/meta.hpp</a>></code></p>
|
|
|
|
<p>Return a new <code><a class="el" href="structmeta_1_1list.html" title="A list of types.">meta::list</a></code> by reversing the elements in the list <code>L</code>. </p>
|
|
<dl class="section user"><dt>Complexity</dt><dd><code>O(N)</code>. </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="ga731ad47dfb1f72563fdad66fa5ae2a1a" name="ga731ad47dfb1f72563fdad66fa5ae2a1a"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#ga731ad47dfb1f72563fdad66fa5ae2a1a">◆ </a></span>reverse_fold</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<div class="memtemplate">
|
|
template<list_like L, typename State , invocable Fn> </div>
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">using <a class="el" href="group__transformation.html#ga731ad47dfb1f72563fdad66fa5ae2a1a">meta::reverse_fold</a> = typedef <a class="el" href="group__invocation.html#ga08e2193149605769f6052795ff0a87b1">_t</a><detail::reverse_fold_<L, State, Fn> ></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p><code>#include <<a class="el" href="meta_8hpp.html">meta/meta.hpp</a>></code></p>
|
|
|
|
<p>Return a new <code><a class="el" href="structmeta_1_1list.html" title="A list of types.">meta::list</a></code> constructed by doing a right fold of the list <code>L</code> using binary invocable <code>Fn</code> and initial state <code>State</code>. That is, the <code>State(N)</code> for the list element <code>A(N)</code> is computed by <code>Fn(A(N), State(N+1)) -> State(N)</code>. </p>
|
|
<dl class="section user"><dt>Complexity</dt><dd><code>O(N)</code>. </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="ga24714e0a1e7b99a57052a63d815955a7" name="ga24714e0a1e7b99a57052a63d815955a7"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#ga24714e0a1e7b99a57052a63d815955a7">◆ </a></span>sort</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<div class="memtemplate">
|
|
template<list_like L, invocable Fn> </div>
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">using <a class="el" href="group__transformation.html#ga24714e0a1e7b99a57052a63d815955a7">meta::sort</a> = typedef <a class="el" href="group__invocation.html#ga08e2193149605769f6052795ff0a87b1">_t</a><detail::sort_<L, Fn> ></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">related</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p><code>#include <<a class="el" href="meta_8hpp.html">meta/meta.hpp</a>></code></p>
|
|
|
|
<p>Return a new <code><a class="el" href="structmeta_1_1list.html" title="A list of types.">meta::list</a></code> that is sorted according to invocable predicate <code>Fn</code>. </p>
|
|
<dl class="section user"><dt>Complexity</dt><dd>Expected: <code>O(N log N)</code> Worst case: <code>O(N^2)</code>. <div class="fragment"><div class="line"><span class="keyword">using </span>L0 = <a class="code hl_struct" href="structmeta_1_1list.html">list<char[5], char[3], char[2], char[6], char[1], char[5], char[10]></a>;</div>
|
|
<div class="line"><span class="keyword">using </span>L1 = <a class="code hl_typedef" href="group__transformation.html#ga24714e0a1e7b99a57052a63d815955a7">meta::sort<L0, lambda<_a, _b, lazy::less<lazy::sizeof_<_a></a>, <a class="code hl_struct" href="structmeta_1_1defer.html">lazy::sizeof_<_b></a>>>>;</div>
|
|
<div class="line"><span class="keyword">static_assert</span>(std::is_same_v<L1, list<char[1], char[2], char[3], char[5], char[5], char[6], char[10]>>, <span class="stringliteral">""</span>);</div>
|
|
<div class="ttc" id="agroup__transformation_html_ga24714e0a1e7b99a57052a63d815955a7"><div class="ttname"><a href="group__transformation.html#ga24714e0a1e7b99a57052a63d815955a7">meta::sort</a></div><div class="ttdeci">_t< detail::sort_< L, Fn > > sort</div><div class="ttdoc">Return a new meta::list that is sorted according to invocable predicate Fn.</div><div class="ttdef"><b>Definition:</b> meta.hpp:3277</div></div>
|
|
<div class="ttc" id="astructmeta_1_1defer_html"><div class="ttname"><a href="structmeta_1_1defer.html">meta::defer</a></div><div class="ttdoc">A wrapper that defers the instantiation of a template C with type parameters Ts in a lambda or let ex...</div><div class="ttdef"><b>Definition:</b> meta.hpp:787</div></div>
|
|
<div class="ttc" id="astructmeta_1_1list_html"><div class="ttname"><a href="structmeta_1_1list.html">meta::list</a></div><div class="ttdoc">A list of types.</div><div class="ttdef"><b>Definition:</b> meta.hpp:1684</div></div>
|
|
</div><!-- fragment --> </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="ga32b72eeac93fde990739bfe3d1729207" name="ga32b72eeac93fde990739bfe3d1729207"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#ga32b72eeac93fde990739bfe3d1729207">◆ </a></span>transform</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<div class="memtemplate">
|
|
template<typename... Args> </div>
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">using <a class="el" href="group__transformation.html#ga32b72eeac93fde990739bfe3d1729207">meta::transform</a> = typedef <a class="el" href="group__invocation.html#ga08e2193149605769f6052795ff0a87b1">_t</a><detail::transform_<Args...> ></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">related</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p><code>#include <<a class="el" href="meta_8hpp.html">meta/meta.hpp</a>></code></p>
|
|
|
|
<p>Return a new <code><a class="el" href="structmeta_1_1list.html" title="A list of types.">meta::list</a></code> constructed by transforming all the elements in <code>L</code> with the unary invocable <code>Fn</code>. <code>transform</code> can also be called with two lists of the same length and a binary invocable, in which case it returns a new list constructed with the results of calling <code>Fn</code> with each element in the lists, pairwise. </p>
|
|
<dl class="section user"><dt>Complexity</dt><dd><code>O(N)</code>. </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="ga386fa55fefb4aa3f4df3227379916839" name="ga386fa55fefb4aa3f4df3227379916839"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#ga386fa55fefb4aa3f4df3227379916839">◆ </a></span>transpose</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<div class="memtemplate">
|
|
template<list_like ListOfLists> </div>
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">using <a class="el" href="group__transformation.html#ga386fa55fefb4aa3f4df3227379916839">meta::transpose</a> = typedef <a class="el" href="group__transformation.html#gace05917716be9857eb49b847b17548ff">fold</a><ListOfLists, <a class="el" href="group__list.html#gab4b5da3947303335fc4139f163ed4748">repeat_n</a><<a class="el" href="group__list.html#ga82704ab3563d63460b7ac1be6c9876c9">size</a><<a class="el" href="group__list.html#gadd1d8e54275858523926ab20aa88ed0a">front</a><ListOfLists> >, <a class="el" href="structmeta_1_1list.html">list</a><> >, <a class="el" href="structmeta_1_1bind__back.html">bind_back</a><<a class="el" href="structmeta_1_1quote.html">quote</a><<a class="el" href="group__transformation.html#ga32b72eeac93fde990739bfe3d1729207">transform</a>>, <a class="el" href="structmeta_1_1quote.html">quote</a><<a class="el" href="group__transformation.html#gafee8f315356d19c47069adb56890a920">push_back</a>> >></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p><code>#include <<a class="el" href="meta_8hpp.html">meta/meta.hpp</a>></code></p>
|
|
|
|
<p>Given a list of lists of types <code>ListOfLists</code>, transpose the elements from the lists. </p>
|
|
<dl class="section user"><dt>Complexity</dt><dd><code>O(N * M)</code>, where <code>N</code> is the size of the outer list, and <code>M</code> is the size of the inner lists. </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="ga851cff9736691f16f0899eac04839d58" name="ga851cff9736691f16f0899eac04839d58"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#ga851cff9736691f16f0899eac04839d58">◆ </a></span>unique</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<div class="memtemplate">
|
|
template<list_like L> </div>
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">using <a class="el" href="group__transformation.html#ga851cff9736691f16f0899eac04839d58">meta::unique</a> = typedef <a class="el" href="group__transformation.html#gace05917716be9857eb49b847b17548ff">fold</a><L, <a class="el" href="structmeta_1_1list.html">list</a><>, <a class="el" href="group__composition.html#ga945a0c21082eec9a2c7b9b8bda15e580">quote_trait</a><detail::insert_back_> ></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">related</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p><code>#include <<a class="el" href="meta_8hpp.html">meta/meta.hpp</a>></code></p>
|
|
|
|
<p>Return a new <code><a class="el" href="structmeta_1_1list.html" title="A list of types.">meta::list</a></code> where all duplicate elements have been removed. </p>
|
|
<dl class="section user"><dt>Complexity</dt><dd><code>O(N^2)</code>. </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="ga559fdaee384c3d297b86ab217b26f601" name="ga559fdaee384c3d297b86ab217b26f601"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#ga559fdaee384c3d297b86ab217b26f601">◆ </a></span>zip</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<div class="memtemplate">
|
|
template<list_like ListOfLists> </div>
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">using <a class="el" href="group__transformation.html#ga559fdaee384c3d297b86ab217b26f601">meta::zip</a> = typedef <a class="el" href="group__transformation.html#ga386fa55fefb4aa3f4df3227379916839">transpose</a><ListOfLists></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">related</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p><code>#include <<a class="el" href="meta_8hpp.html">meta/meta.hpp</a>></code></p>
|
|
|
|
<p>Given a list of lists of types <code>ListOfLists</code>, construct a new list by grouping the elements from the lists pairwise into <code><a class="el" href="structmeta_1_1list.html" title="A list of types.">meta::list</a></code>s. </p>
|
|
<dl class="section user"><dt>Complexity</dt><dd><code>O(N * M)</code>, where <code>N</code> is the size of the outer list, and <code>M</code> is the size of the inner lists. </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="gad8262b50af24df0244354b25ab025b15" name="gad8262b50af24df0244354b25ab025b15"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#gad8262b50af24df0244354b25ab025b15">◆ </a></span>zip_with</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<div class="memtemplate">
|
|
template<invocable Fn, list_like ListOfLists> </div>
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">using <a class="el" href="group__transformation.html#gad8262b50af24df0244354b25ab025b15">meta::zip_with</a> = typedef <a class="el" href="group__transformation.html#ga32b72eeac93fde990739bfe3d1729207">transform</a><<a class="el" href="group__transformation.html#ga386fa55fefb4aa3f4df3227379916839">transpose</a><ListOfLists>, <a class="el" href="group__composition.html#ga5fa0228061e71036b311db6c3d93ab02">uncurry</a><Fn> ></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">related</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p><code>#include <<a class="el" href="meta_8hpp.html">meta/meta.hpp</a>></code></p>
|
|
|
|
<p>Given a list of lists of types <code>ListOfLists</code> and an invocable <code>Fn</code>, construct a new list by calling <code>Fn</code> with the elements from the lists pairwise. </p>
|
|
<dl class="section user"><dt>Complexity</dt><dd><code>O(N * M)</code>, where <code>N</code> is the size of the outer list, and <code>M</code> is the size of the inner lists. </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
</div><!-- contents -->
|
|
</div><!-- doc-content -->
|
|
<!-- start footer part -->
|
|
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
|
|
<ul>
|
|
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.4 </li>
|
|
</ul>
|
|
</div>
|
|
</body>
|
|
</html>
|